2016-12-14 9 views
0

wiresharkを使用してアップロードしたパケットを盗聴し、どのようにACKが初期化され、どのように最終番号に到達したのか把握しようとしています。Wireshark、seq&ack numbers

私のブラウザが最初にサーバと通信するとき、シーケンス番号は152461で、次のシーケンス番号は152871であり、送信されるバイト数は152461 +バイト数にすぎません。 152871は、ブラウザがサーバとのTCP通信を開始したときに、ackがインクリメントされる最後の番号です。しかし、最初に通信を開始すると、seqとackは逆になり、seq = 1とack = 88705になります。ackは152871まで増加します。なぜ私は88705で始まるのですか? seqは送信されるバイト数ごとに増加することがわかりますが、ackはどのように増加し、なぜ88705で具体的に開始されますか?

答えて

0

Wiresharkは相対的なシーケンスと確認番号を表示すると思います。

常にハンドシェイクを[SYN]Seq=0,[SYN, ACK]Seq=0 Ack=1[ACK]Seq=1 Ack=1と表示します。

設定が不明です。しかし、seq = 1とack = 88705は、TCPハンドシェイク中にブラウザが送信した2番目のパケット([ACK])のようです。

私はちょうど152461と88705が本当のseq & ack番号であると仮定します。

したがって、152461はクライアント側の最初のランダムシーケンス番号です。 88704は、サーバー側の初期ランダムシーケンス番号です。 (88705 == 88704 +1)。どちらも乱数です。

TCPハンドシェイク中にブラウザから送信された2番目のパケットには、シーケンス番号152462(152461 + 1)および確認番号88705(88704 +1)が含まれている必要があります。


編集:実際のシーケンス番号152461をどのように見つけたかわかりません。たぶんWiresharkの設定が異なっていたり、他のツールから取得しているかもしれません。

Wiresharkは通常[ACK]Seq=1 Ack=1を表示します。あなたが見つけたseq = 1 and ack = 88705は、ハンドシェイクかもしれません、またはそれの次のパケットかもしれません。それはスクリーンショットではっきりするはずです。

+0

だから、wiresharkはこれらの値をランダムに割り当てますか? – alex067

+0

@ alex067 Wiresharkはキャプチャして表示するだけです。 Wiresharkは何にも干渉しません。あなたのtcpクライアント(ブラウザ)はランダムなシーケンス番号を生成します。サーバー側では、別の乱数も生成されます。 – cshu

+0

私は見るので、エイリアスのようなものですか?実際の承認とシーケンス番号ではなく、ただの表現ですか? – alex067