Solaris のシステム管理 (IP サービス)

トランスポート層: データのカプセル化の開始

データがトランスポート層に到達すると、トランスポート層のプロトコルは、データのカプセル化プロセスを開始します。トランスポート層は、アプリケーションデータをトランスポートプロトコルのデータ単位にカプセル化します。

トランスポート層プロトコルは、転送ポート番号で区別される送信側アプリケーションと受信側アプリケーション間に仮想のデータフローを作成します。ポート番号は、メモリー内のデータ送受信専用の場所である「ポート」を識別します。さらに、トランスポートプロトコル層は、信頼性の高い順序どおりのデータ転送など、その他のサービスを提供する場合もあります。最終的な結果は、TCP、SCTP または UDP のどれで情報を処理したかによって異なります。

TCP のセグメンテーション

TCP はデータを確実に受信側ホストに送信できるため、「接続指向」のプロトコルと呼ばれます。図 1–1 は、TCP プロトコルがどのように rlogin コマンドからのストリームを受信するかを示しています。次に TCP は、アプリケーション層から受け取ったデータをセグメントに分割し、各セグメントにヘッダーを添付します。

セグメントヘッダーには、送信側と受信側のポート、セグメント順序に関する情報、「検査合計」と呼ばれるデータフィールドが含まれています。両方のホストの TCP プロトコルがこの検査合計データを使用して、データがエラーなしに転送されたかどうかを判別します。

TCP 接続の確立

TCP は、受信側システムでデータを受信する準備ができているかどうかを、セグメントを使用して判断します。まず、送信側 TCP は「SYN」というセグメントを受信側ホストの TCP プロトコルに送信して、接続を確立することを知らせます。次に、受信側 TCP は「ACK」というセグメントを戻して、セグメントを正しく受信したことを知らせます。送信側 TCP は新たな ACK セグメントを送信して、それからデータの送信を開始します。このような制御情報の交換を「3 相ハンドシェーク」と呼びます。

UDP パケット

UDPは「接続のない」プロトコルです。TCP の場合と異なり、UDP は、受信側ホストにデータが到達したかどうかを確認しません。その代わりに、UDP は、アプリケーション層から受信したメッセージを「UDP パケット」の形式に設定します。UDP は、各パケットにヘッダーを付加します。ヘッダーには、送信側ポートと受信側ポート、パケットの長さを示すフィールド、検査合計が含まれます。

送信側の UDP プロセスは、受信側ホストのピア UDP プロセスにパケットを送信しようとします。アプリケーション層は、受信側 UDP プロセスが、パケットを受信したことを示す肯定応答を戻すかどうかを判別します。UDP は受領の通知を必要としません。UDP は 3 相ハンドシェークを使用しません。