第4層のトランスポート層には、TCPとUDPという、2つのプロトコルがある。
TCP(Transmission Control Protocol)は、パケットの順番やポート番号を管理する機能を持っている。
送信元ポート番号 | 宛先ポート番号 | |||
シーケンス番号 | ||||
確認応答番号 | ||||
データオフセット | 予約 | コードビット | ウィンドウ | |
チェックサム | 緊急ポインタ | |||
オプション | パディング | |||
データ |
シーケンス番号(Sequence Number)は相手先との接続が行われた時(コネクションの確立時)に初期化され、 パケットが送信されるたびに1ずつ加算される。 正しく届いたかは、送信先からの確認応答番号(Ackowledgement Number)で判断できる。
確認番号は、送信したシーケンス番号に1加算した値が返ってくる。 次に送るシーケンス番号がすでに戻ってきた確認応答番号と等しければ、 前に送った情報が正しく相手に送信されていると判断できる。
この処理は1つのパケットごとにやり取りされるので、シーケンス番号と確認応答番号の 存在により、パケットのやり取りの信頼性が高まる。
ウィンドウサイズでパケットの個数を指定して、パケットをいくつかまとめて送信できる。 連続して送信されてきたパケットが受信可能な許容量を超ええいた場合、 受信可能なデータ量を指定して送信元に通知する。
6ビットで構成されており、各ビットに、 URG(URGent flag)、ACK(ACKnowledgement flag)、PSH(PuSH flag)、RST(ReSeT flag)、SYN(SYNchronize flag)、 FIN(FIN flag)という名前が付いている。
UDP(User Datagram Proyocol)はシーケンス制御などを行わないので高速で効率のよい通信ができる。