3

我接受具有默认值的 TCP 连接,并观察到 ​​SYN、ACK 以 64K 的窗口大小和 7 的窗口比例因子发送。

在 3 次握手完成并为我的应用程序交换一些控制数据包后,我使用 setsockopt() 将 SO_RCVBUF 设置为 20K。我的问题是,在这种情况下,广告窗口何时会更新?由于 sb_hiwat 已修改为较小的值,我不应该立即看到窗口更新数据包吗?我看到的是广告窗口逐渐减少,从 ~7MB 到 20K 需要约 4 秒。

4

1 回答 1

0

我不知道为什么你会想要减少接收缓冲区。

一旦传输开始,您甚至可能无法做到这一点,但无论如何,如果接收缓冲区中有数据,您当然不能指望它立即设置为小于该值。否则数据将不得不被丢弃,而 TCP 不允许这样做。

我建议你别管它。

于 2013-07-26T07:17:25.530 回答