Skip to content

Instantly share code, notes, and snippets.

@tarunama
Last active October 2, 2016 04:02
Show Gist options
  • Save tarunama/94033348d581f97220b5d0379e9f7d87 to your computer and use it in GitHub Desktop.
Save tarunama/94033348d581f97220b5d0379e9f7d87 to your computer and use it in GitHub Desktop.
[Network]TCP RFC 793 超意訳

1. Introduction

TCPはパケット交換型のネットワーク上で、ホストからホストへ高い信頼性のあるプロトコル。

1.1. Motivation

軍的利用への要求に焦点を当てている。だけども、高信頼性の通信を実現できていない。

TCPは接続志向で、マルチネットワークアプリケーションをサポートするプロトコルの階層に合わせてデザインされた、通信の開始から終了まで信頼できるプロトコルである。

原則として、TCPはケーブルを利用したパケット通信、または回線交換通信など広範囲の通信システム上で操作できなければならない。

TCPはCerfとKahnが提唱したコンセプトに基づいている。

TCPはインターネットプロトコルの上の、階層されたプロトコル構成に適合している。 

インターネットプロトコルはTCPを送る手段と、インターネットデータグラム内に付与されている可変数長の情報のセグメントを受け取る手段を提供している。

インターネットデータグラムは、異なるネットワーク上で、ソースが正しいこととTCPの目的地を示す手段を提供している

またインターネットプロトコルは、変換の実行と複数のネットワークと内部接続ゲートウェイへの送信、が求められるTCPセグメントの複数のフラグメンテーション・再構成も扱う。

さらに、優先順位、セキュリティの分類とTCPセグメントのcompartmenttationを運ぶので、この情報は複数のインターネット上で、end-to-endで通信が可能になる。

1.2. Scope

1.4. Interfaces

TCPインターフェイスは、OSとアプリケーション間のように多数存在する。たとえばデータの送受信で、TCPは、アプリケーションプログラム上で、非同期な通信を期待されている。

1.5. Operation

TCPの第一の目的は、プロセス間で保守的でセキュアな通信を与えることである。

それらを実現するためには以下が必要。

  • Basic Data Transfer

    • TCPはデータを伝達する、しないを決める。
    • TCPでのデータ伝達を確認するためにpush機能が必要。
  • Reliability

    • TCPのデータ復元は、送信したデータ単位に連続した番号を振ることと、受け取ったTCPから通信成功の了承を求めることで実現される。
    • 受信者は連番を、segmentを順番に並べるのと重複を削除することに使用される。
    • データの損失には、それぞれのフラグメントにチェックサムを足して、受信者がデータを捨てるどうか決める。
  • Flow Control

  • Multiplexing

  • Connections

  • Precedence and Security

Reference

https://tools.ietf.org/html/rfc793

@tarunama
Copy link
Author

Keywords

  • datagram
  • fragmention
  • compartmenttaion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment