6

tcpdumpを使用してhttpトラフィックをキャプチャしており、TCPスロースタートとウィンドウサイズの増加に関心があります。

$ sudo tcpdump -i eth1 -w wget++.tcpdump tcp and port 80

Wiresharkでダンプファイルを表示すると、ウィンドウサイズの進行は正常に見えます。つまり、5840、5888、5888、8576、11264などです。

しかし、私が経由してダンプファイルを表示すると

$ tcpdump -r wget++.tcpdump -tnN | less

私は無意味なウィンドウサイズのように見えるものを取得します(簡潔にするためにIPアドレスは省略されています):

: S 1069713761:1069713761(0) win 5840 <mss 1460,sackOK,timestamp 24220583 0,nop,wscale 7>
: S 1198053215:1198053215(0) ack 1069713762 win 5672 <mss 1430,sackOK,timestamp 2485833728 24220583,nop,wscale 6>
: . ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: . 1:1419(1418) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: P 1419:2002(583) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: . ack 1419 win 133 <nop,nop,timestamp 2485833824 24220604>
: . ack 2002 win 178 <nop,nop,timestamp 2485833830 24220604>

コマンドラインで通常/絶対ウィンドウサイズを取得する方法はありますか?

4

2 に答える 2

13

ウィンドウサイズは正しいです-それらは単にスケーリングされていません。

接続イニシエーターはwscale(ウィンドウスケーリング係数)を7に設定winしているため、ウィンドウサイズをバイト単位で取得するには、後続の値に128を掛ける必要があります。したがって、win 46は5888バイトのウィンドウを示します。

接続受信者はawscaleを6に設定しているため、そのwin値に64を掛ける必要があります。したがってwin 133、8512バイトのウィンドウをwin 178示し、11392バイトを示します。

于 2010-07-16T07:18:52.060 に答える
4

また、ツール(wiresharkまたはtcpdump、関係ありません)がsynを認識しない場合は、スケーリングされていない値を出力する必要があり、これはあなたを騙す可能性があります

于 2012-07-24T16:06:52.387 に答える