2009-08-19 16 views
0

私はTCPの周りで頭を上げようとしており、大量のRFCを解析することは役に立たない。私は、接続とクローズの握手を理解していると信じていますが、実際のデータストリームがどのようなものかを要約するものは見つけられません。ハンドシェイク後のTCPパケット

の間のTCPパケットは、の接続ハンドシェイクとクローズハンドシェイクの間に何がありますか? (特にヘッダ)

答えて

4

接続時の通常定常状態の場合、ヘッダがあります:

  • 適切に設定された宛先及びソースポートを、
  • ACKフラグがセットされている。
  • 接続は、本質的に、トランザクション(よりむしろバルク転送)の場合、PSHフラグもセットされる可能性があります。
  • シーケンス番号フィールドは、(もしあれば「送信される」と、このパケット内のデータを数えて)、この端によって送信される次のバイトのシーケンス番号に設定されています。
  • アクノリッジフィールドは、もう一方の端からまだ受信されていない最も早いバイトのシーケンス番号に設定されます。
  • ウィンドウのフィールドには、この端の受信ウィンドウの残りのスペースが表示されます。使用されるエンコーディングは、初期接続設定でウィンドウの拡大縮小がネゴシエートされたかどうかによって異なります。

また、RFC1323で説明されているタイムスタンプオプションを表すタイプ8オプションフィールドが存在する可能性があります。

したがって、例えば、サーバがクライアントにデータを大量に送信されたHTTP接続の部分の間に、クライアントは一定のままACKセット、シーケンス番号フィールドでパケットを送信するであろう、アクノリッジフィールドは、サーバーが送信しているセグメントのサイズによって増分され、ウィンドウのサイズは1つのセグメントのサイズのどこかで増加します。サーバは、ACKがセットされたパケット、送信されているセグメントのサイズだけ進んでいるシーケンス番号フィールド、確認フィールドの残りの定数、最大のウィンドウサイズを送信します。

Wiresharkを使用して、さまざまな現実世界の接続を調べることをおすすめします。

+0

ありがとうございました。これはまさに私が探していたものです。 –

関連する問題