この場合のEndは、ここでは、通信を行うProgramを指す。
Endという意味でUser ( End User )を指すこともあれば、Host ( End Host )を指す場合もあるので、注意する。
「できる」という可能性をのべているわけであるが、それは逆に言えば「しなくてもよい」わけである。つまり、「要求に応じて保証できる」ので、「要求しなければ保証しない」階層でもある。
この場合、得られるのは保証の変りに性能を得ることができる。
TCP/IP model(3)のトランスポート層はTCPとUDPの二つがある。
通常IP AddressとPort Numberを対にしてSocketと呼ぶ。TCP/IPの通信の基本は、自分のSocketと相手のSocketを結びつけることによって、End-to-Endの通信が確立する。
UDP ( User Datagram Protocol )は、IPの上に被された、薄い皮と考えることができる。
以下にUDP Headerの構造(4)を示す。
0 16 32 (bit) +-----------------------+-----------------------+ | 転送元ポート | 転送先ポート | +-----------------------+-----------------------+ | 長さ | チェックサム | +-----------------------+-----------------------+ | データ ( ある場合 ) | +-----------------------+-----------------------+
HeaderのSizeは8 byteしかない。
UDPはデータブロックが与えられるとそれをセグメントに分解して、ヘッダーを付け、送るだけである(5)。
通信そのもののオーバヘッドが小さいため、高速だが、色々な点で、使う人を選ぶ。
TCPは、信頼性を保証(6)するProtocolであり、TCP/IP Networkの基本Protocolといえる。
逆にTCPは、信頼性を保証するために、様々な振舞いをする。
TCPでは、ストリームを渡すとこれを、セグメントに分割して転送する。
Sesstionの作成: TCPでは、相手が通信可能かどうかを確認するために、最初にSessionの作成行う。
最初にsynパケットを送り、相手にセッションの作成を要求し、相手から同意をえた場合( Ack応答)に、更に、通信に必要なパラメータを相手に送り、セッションが作成が完了します( 3 -ハンドシェーク)。
このwindow制御をTCPが行うので、Internetが共有できているとも言える。TCPは、(トラフィック量が多く、途中の経路で輻輳が生じて..)到達するパケット量が少いと判断すると、自動的に、Windowsサイズをせばめ、自分の通信量制限する。
このため(輻輳が回避され.. ) Internetのリソースが有効利用できるようになる。
属性 | TCP | UDP |
---|---|---|
セグメント順序 | 保つ | 保たない |
信頼性 | 保証する | 保証しない |
接続形態 | コネクション型 | コネクションレス型 |
特徴 | バーチャルサーキットを構成する | オーバヘットが小さい |
データの受渡し | ストリーム | ブロック |
振舞い | 電話 | 葉書 |