ホームページ  >  記事  >  運用・保守  >  TCPデータセグメントヘッダー形式

TCPデータセグメントヘッダー形式

齐天大圣
齐天大圣オリジナル
2020-12-19 14:15:193424ブラウズ

TCP ヘッダーの各フィールドの意味を理解すると、TCP プロトコルをより明確に理解できるようになります。 TCP ヘッダーには 20 バイトが固定されており、その後はオプションのオプションがあります。 TCP は 32 ビット (4 バイト) アライメントされています。

TCPデータセグメントヘッダー形式

ソース ポートと宛先ポート : 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 はプッシュ フラグ付きのデータを示し、セグメントを受信した後、受信側がセグメントをバッファーにキューに入れるのではなく、できるだけ早くアプリケーションに渡す必要があることを示します。

  • #RST: 接続フィールドのログをリセットします。ホストのクラッシュまたはその他の理由により失敗した接続をリセットするために使用されます。または、不正なメッセージ セグメントを拒否し、接続要求を拒否するために使用されます。

  • SYN: 同期フィールド。接続を確立するときに使用されます。

  • FIN: 終了フィールド。コネクションを解放するときに使用します。

ウィンドウ: 16 ビット。ウィンドウ値は [0, 2^16-1] の範囲の整数です。これは受け入れウィンドウを表し、受け入れが許可されるバイト数を示すことに注意してください。たとえば、B が A に確認メッセージ セグメントを送信します。メッセージ セグメントの確認番号は 101、ウィンドウ値は 1000 です。この場合、B が受け入れる次のメッセージ セグメント番号は 101 でなければならず、メッセージの長さは 101 である必要があることを意味します。セグメントは 1000 バイトを超えることはできません。

チェックサム: 16 ビット。メッセージセグメントにエラーがあるかどうかを確認するために使用されます。

緊急ポインタ: 16 ビットを占有します。このフィールドは、URG フィールドが 1 の場合にのみ関係します。緊急データの長さを示します

関連する推奨事項:「

linux ビデオ チュートリアル

以上がTCPデータセグメントヘッダー形式の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。