tcpdump win的大小问题

IP 1 > 2: S 2947590611:2947590611(0) win 8192 <mss 1400,nop,wscale 8,nop,nop,sackOK>

IP 2 > 1: S 3396087755:3396087755(0) ack 2947590612 win 64240 <mss 1460,nop,nop,sackOK,nop,wscale 12>

IP 1 > 2: . ack 1 win 257

IP 1 > 2: P 1:166(165) ack 1 win 257

IP 2 > 1: . ack 166 win 16

为什么一开始的win 一个 8192, 一个64240, 到了下面的ack一下就变成257和16了? 不是应该随着双方发送和接收数据后才慢慢变化吗?

而且,为什么Ip 2 告诉 1, win是16, 后面1还是会向2发送超过16字节的数据包? 那这个win有什么用?

阅读 8.3k
2 个回答

The general format of a TCP protocol line is:

src > dst: Flags [tcpflags], seq data-seqno, ack ackno, win window, urg urgent, options [opts], length len

Window is the number of bytes of receive buffer space available the other direction on this connection.

https://www.tcpdump.org/tcpdu...

握手时的 wscale 参数影响了,后面的win 都是扩大后

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进