需要帮助来理解数据传输的 wireshark 结果

需要帮助来理解数据传输的 wireshark 结果

在我的局域网中,我有一个运行 Samba 服务器的路由器,我的 PC 连接到该路由器。

我在将文件从我的电脑上传到 samba 服务器时使用了 wireshark。

以下是 wireshark 结果的快捷方式,

在此处输入图片描述

可以看出,在服务器回复第 7560 帧后,我的电脑发送了几个全尺寸的数据包(帧大小为 1514 字节)。

在此处输入图片描述

但在第 7560 帧中,公布的窗口大小为 94 字节。

上述情况在整个结果中都会发生。

因此,我无法理解的是,我的电脑如何能够发送近 30000 多个字节,而来自服务器的最后一个数据包只通告一个 94 字节的窗口。

答案1

窗口大小受网络缓冲区大小影响,Linux 2.6 中的默认设置应该没问题,如果网络缓冲区太小,请使用千兆以太网的以下推荐值

sysctl -w net.ipv4.tcp_rmem="40960       1048560 4194304"
sysctl -w net.ipv4.tcp_wmem="40960       196608  4194304"
sysctl -w net.core.rmem_max=4194304
sysctl -w net.core.wmem_max=4194304

更多细节 http://honglus.blogspot.com/2010/01/double-network-throughput-by-tuning.htm

您可以使用 iperf 检测窗口大小,如果它报告服务器本地网卡正常,那么可能是路由器或应用程序的问题

答案2

我认为这TCP 窗口缩放在工作中 - 它可能已在连接设置时协商,但未被 Wireshark 考虑在内。因此,公布的窗口大小不是 94 字节,而是 (2^X) * 94 其中X是缩放因子。

相关内容