トランスポート層のプロトコル <TCP UDP>
IPパケットで送受信されるデータを適切なプログラムと繋ぐ役割
IPパケットのデータ部に「データグラム」を格納し、コンピュータ間を伝送する
データグラムのヘッダ情報
送信元ポート番号 と 宛先ポート番号
・ポート番号…0~65535番
・ウェルノウンポート…0~1023番
FTP(20/21)、SSH(22)、TELNET(23)、SMTP(25)、DNS(53)、HTTP(80)、POP3(110)、HTTPS(443)
・登録済ポート…1024~49151番 ベンダ固有のアプリケーションに割り当てる
・プライベートポート…49152~65535番 システムが自動で割り当てる
TCP (Transmission Control Protocol)
上位プログラムに対し、透過的な双方向通信を提供する
複数のデータグラムに分割し、受信側で元のデータに修正する
送出したデータフラムが相手に届かなかった場合、再送する
送信側コンピュータがデータグラムを送出する。
データサイズとシーケンス番号(全体データのうち、データの先頭が何バイト目)情報が記載される
受信側コンピュータがデータグラムを受け取る。
実際に受信したデータサイズにシーケンス番号を加えた値をACK番号(Acknowledgement)として受信側コンピュータへ返信する。
送信側コンピュータはACK番号の値と実際に送出したデータサイズを比較する。
正常な場合、次のシーケンス番号(前回のシーケンス番号+前回データサイズを付加する)と次のデータサイズをヘッダに付加して送出する。
異常な場合、データグラムの再送処理を行う。
通常この方式ではACK番号が返ってくるまでの待機時間が発生するが、ウインドウ制御方式を用いることで、受信側にバッファを設け連続してデータを送出する。
UDP (User Datagram Protocol)
単純に目的のポート番号へデータを送出する コネクションレス型通信
転送効率は良いが、通信中のパケット喪失やデータ誤り検出がないため、必要な場合は上位のアプリケーション層で実施する。
リアルタイム性が求められるIP電話や動画配信に用いられる。
TCP/IPにおける階層化のイメージ
TCPデータグラム
送信元ポート番号 | 宛先ポート番号 | その他 | データ |
IPパケット
送信元IPアドレス | 宛先IPアドレス | その他 | データ |
イーサネットフレーム
宛先MACアドレス | 送信元MACアドレス | その他 | データ |