gpt4 book ai didi

tcp - 为什么我收到缩小窗口的 tcp 段?

转载 作者:可可西里 更新时间:2023-11-01 02:47:54 24 4
gpt4 key购买 nike

我在我的笔记本电脑上使用 Wireshark 捕获数据包,发现服务器发送的数据包缩小了它的接收窗口。这是从我的 ubuntu18.04 到“connectivity-check.ubuntu.com”的连接。

我读了 rfc793 和 TCPIP Illustrated volumn1,都说“强烈建议不要缩小窗口”。

这是 Wireshark 的输出。我在 Wireshark 中禁用 HTTP 解析以防止分心。

   4198 0.026547255    2019-04-03 12:27:48.870761715 192.168.3.141         35.222.85.5           TCP      74     53846 → 80 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=3960112411 TSecr=0 WS=128
4199 0.281380222 2019-04-03 12:27:49.152141937 35.222.85.5 192.168.3.141 TCP 74 80 → 53846 [SYN, ACK] Seq=0 Ack=1 Win=28160 Len=0 MSS=1412 SACK_PERM=1 TSval=2281826280 TSecr=3960112411 WS=128
4200 0.000092140 2019-04-03 12:27:49.152234077 192.168.3.141 35.222.85.5 TCP 66 53846 → 80 [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=3960112693 TSecr=2281826280
4201 0.000191823 2019-04-03 12:27:49.152425900 192.168.3.141 35.222.85.5 TCP 153 53846 → 80 [PSH, ACK] Seq=1 Ack=1 Win=29312 Len=87 TSval=3960112693 TSecr=2281826280
4202 0.306769219 2019-04-03 12:27:49.459195119 35.222.85.5 192.168.3.141 TCP 66 80 → 53846 [ACK] Seq=1 Ack=88 Win=26112 Len=0 TSval=2281826585 TSecr=3960112693
4203 0.000076022 2019-04-03 12:27:49.459271141 35.222.85.5 192.168.3.141 TCP 214 80 → 53846 [PSH, ACK] Seq=1 Ack=88 Win=26112 Len=148 TSval=2281826586 TSecr=3960112693
4204 0.000028644 2019-04-03 12:27:49.459299785 192.168.3.141 35.222.85.5 TCP 66 53846 → 80 [ACK] Seq=88 Ack=149 Win=30336 Len=0 TSval=3960113000 TSecr=2281826586
4205 0.000045328 2019-04-03 12:27:49.459345113 35.222.85.5 192.168.3.141 TCP 66 80 → 53846 [FIN, ACK] Seq=149 Ack=88 Win=26112 Len=0 TSval=2281826586 TSecr=3960112693
4206 0.000183562 2019-04-03 12:27:49.459528675 192.168.3.141 35.222.85.5 TCP 66 53846 → 80 [FIN, ACK] Seq=88 Ack=150 Win=30336 Len=0 TSval=3960113000 TSecr=2281826586
4207 0.245163856 2019-04-03 12:27:49.704692531 35.222.85.5 192.168.3.141 TCP 66 80 → 53846 [ACK] Seq=150 Ack=89 Win=26112 Len=0 TSval=2281826890 TSecr=3960113000

抓取结果显示,服务器的第4199帧通告了一个28160的窗口,但是在4201接收到87字节的数据后,窗口在4202中缩小到26112正好等于2048(是因为服务器刚换出一个内存页?)

我想知道服务器缩小其 TCP 接收窗口的原因是什么? RFC 强烈反对这种做法,我认为这种行为不会在操作系统的 TCPIP 堆栈中实现。

最佳答案

这是正常行为。当服务器在其缓冲区中接收到数据并且不能立即将其发送到应用层时,它会减小通告的窗口大小以防止接收到的数据包丢失。 您将这种预期行为与窗口缩小问题混淆了,当我们将发送者缓冲区的右边缘移到左侧时会发生这种情况。

您可以引用此以获取有关窗口收缩问题的更多指导:http://www.tcpipguide.com/free/t_TCPWindowManagementIssues.htm

关于tcp - 为什么我收到缩小窗口的 tcp 段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55489787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com