我看到计算的窗口大小在三次握手时设置为 5888,但是在第一次 ACK 时它跳到 7808。有人可以解释一下为什么以及 Linux(Linux OS 和 Wireshark)用来计算这个窗口的算法吗?
我了解窗口缩放概念,此时我没有任何拥塞或启动缓慢。5888 是 SYN。经过两次 seg push 后,2000 在飞行中。所以你现在有 3888 可用。此时您发送 ACK 1001,因此接收器会以更新的窗口大小 (3888+1000=4888) 发出 ACK。但是我看到了7808!如何?我观察到每个 ack 都有这样的增加,无法定量地推断出这一点。