2017-10-13 15 views
0

次のパケットのシーケンス番号にack nrと長さが加算されますか?wiresharkのパケットを理解するのに問題があります

OR

次のパケットのシーケンス番号は、配列を取得していNRプラス以前

の長さは、パケットがランダムな順序になることはできますか?もしそうなら、パケットが失われた理由と方法を知ることができますか?

答えて

0

最初に、2組のシーケンスと確認応答番号のペアがあり、1つは会話の各側に設定されています。シーケンス番号は、送信者の現在の番号であり、確認応答番号は、送信者からの「次の予想されるシーケンス番号」の受信者の考えである。一般的には、このように動作します...

前提条件 HostAの初期シーケンス番号は100、HostBの初期シーケンス番号は200です(これらの番号はランダムで、開始値はまったく問題はありませんが、 TCP 3ウェイハンドシェイク)

シナリオ:ホストAはホストBへのTCPペイロードの1000のバイトを送信します。

ここ
Seq # Ack # TCP Payload (bytes) Next Seq # 
----- ----- ------------------- ---------- 
100 200     1000  1100 

、ホストAの初期シーケンス番号は100であると仮定され、我々はそれを想定しているので、 1000バイトのTCPペイロードを送信している場合、次の予想されるシーケンス番号を100 + 1000 = HostBが1000バイトのペイロードをすべて受信し、HostAからの次のTCPセグメントが1100のシーケンス番号を持つことを期待していることをHostAに示すACK#です。

HostB acknowledge HostAからの上記のTCPセグメントの受信:

Seq # Ack # TCP Payload (bytes) Next Seq # 
----- ----- ------------------- ---------- 
200 1100      0   200 

これは、ホストBの一連のシーケンス番号と確認応答番号です。このセットは、HostAのセットとは完全に独立しています。ここで、HostBは、HostAに1100のACK#(初期シーケンス番号100 +ペイロードの追加1000バイト)を送信することによって、送信者が以前のパケットで送信した1000バイトのデータの受信をすべてHostAに認識した。 HostB自身のシーケンス番号200は、このデータ転送では役割を果たさないが、ホストBが逆方向にHostAにデータを送信していないことをHostAに示すことを除いて。ホストBは、ホストAはホストBが1000バイトを運ぶセグメントを受信しなかったことを知っているであろうように、ホストAからこのセグメントを受信しないは、ACKホストBは、最終的に、わずか100のACK番号を運んでいるだろうホストAに送り返すでしょうしなかった場合は

したがって、再送信する必要があります。

私はそれが役に立ちますか?

詳細および詳細については、RFC 793を参照してください。

関連する問題