我正在使用tcpdump捕获http流量,并且对TCP慢启动和窗口大小增加感兴趣:
$sudo tcpdump -i eth1 -w wget++.tcpdump tcp and port 80
当我使用Wireshark查看转储文件时,窗口大小的进展看起来正常,即5840,5888,8576,11264等……
但是当我查看转储文件时
$tcpdump -r wget++.tcpdump -tnN | less
我得到了似乎毫无意义的窗口大小(为简洁省略了IP地址):
: S 1069713761:1069713761(0) win 5840
有没有办法在命令行上获得正常/绝对窗口大小?
最佳答案
窗口大小是正确的 – 它们只是未缩放.
连接启动器已将wscale(窗口缩放系数)设置为7,因此其后续的win值必须乘以128才能获得以字节为单位的窗口大小.因此,胜利46表示5888字节的窗口.
连接接收者已将wscale设置为6,因此其win值必须乘以64.因此,win 133表示8512字节的窗口,win 178表示11392字节.