TCP ヘッダーの各フィールドの意味を理解すると、TCP プロトコルをより明確に理解できるようになります。 TCP ヘッダーには 20 バイトが固定されており、その後はオプションのオプションがあります。 TCP は 32 ビット (4 バイト) アライメントされています。
ソース ポートと宛先ポート: TCP は、ポート番号を通じてアプリケーション プロセス間で通信します。
シリアル番号: 32ビットを占有します。シリアル番号の範囲は0~(2^32-1)です。シリアル番号が2^32-1になると、次の番号が続きます。シリアル番号は再び0から始まります。メッセージ セグメントのシーケンス番号が 1001 で、その長さが 100 バイトの場合、次のメッセージ セグメントのシーケンス番号は 1101 になります。
確認番号: 32 桁。確認番号は、受信したパケットを確認するために使用されます。 A が B にメッセージ セグメントを送信し、A のシーケンス番号が 101、メッセージ セグメントの長さが 100 バイトである場合、B はメッセージ セグメントを受信した後、確認メッセージ セグメントを A に送信する必要があります。この確認メッセージは、段落は201です。次の式があります。
確認番号が N 1 の場合は、シーケンス番号 N の位置までのデータをすべて受信したことを意味します。
Data offset: このフィールドは tcp ヘッダーの長さを示し、このフィールドは 4 ビットを占め、単位は 4 バイトです。したがって、TCP ヘッダーの最大サイズは 60 バイトです。
6 つの制御ビット: 各制御ビットは 1 ビットのみを占有します。
UGR: 緊急フィールド値が 1 の場合、このセグメントには緊急データが含まれており、最初に送信する必要があることを意味します。このフィールドは、後述する緊急ポインタと組み合わせて使用する必要があります。
ACK: 確認フィールド。このフィールドは接続の確立および切断時に使用され、データ送信フェーズは常に 1 です。
PSH: フィールドをプッシュします。値 1 はプッシュ フラグ付きのデータを示し、セグメントを受信した後、受信側がセグメントをバッファーにキューに入れるのではなく、できるだけ早くアプリケーションに渡す必要があることを示します。
ウィンドウ: 16 ビット。ウィンドウ値は [0, 2^16-1] の範囲の整数です。これは受け入れウィンドウを表し、受け入れが許可されるバイト数を示すことに注意してください。たとえば、B が A に確認メッセージ セグメントを送信します。メッセージ セグメントの確認番号は 101、ウィンドウ値は 1000 です。この場合、B が受け入れる次のメッセージ セグメント番号は 101 でなければならず、メッセージの長さは 101 である必要があることを意味します。セグメントは 1000 バイトを超えることはできません。
チェックサム: 16 ビット。メッセージセグメントにエラーがあるかどうかを確認するために使用されます。
緊急ポインタ: 16 ビットを占有します。このフィールドは、URG フィールドが 1 の場合にのみ関係します。緊急データの長さを示します
関連する推奨事項:「linux ビデオ チュートリアル」
以上がTCPデータセグメントヘッダー形式の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。