Sam*_*Sam 19 windows-server-2003 windows-xp tcp wireshark
我们正在审查来自一些客户端机器的 Wireshark 捕获,这些机器显示多个重复的 ACK 记录,然后触发重新传输和失序数据包。
这些显示在以下屏幕截图中。.26 是客户端,.252 是服务器。

是什么导致重复的ACK记录?
如果有帮助,请提供更多背景信息:
我们正在调查某一特定客户站点的网络吞吐量问题。从用户界面的角度来看,感知到的问题是,尽管 1gbps WAN 连接未得到充分利用,但数据传输速度很慢。
几乎所有的客户端机器都有同样的问题,在 20 多台机器上测试过。我们确实找到了两台没有问题的机器。我们正在确定它们的配置有何不同。我们确实注意到,在没有问题的两台机器中,我们最多只看到一个重复的 ACK 记录。有问题的机器通常有三个重复的 ACK 记录。一个显着的区别是,运行良好的机器都属于网络运营团队的成员,而所有其他机器都是为“普通”员工使用的。这些机器应该是标准的,但网络管理员可以对他们的本地系统进行更改,这是我们正在研究的另一个方面。
我们尝试更改服务器上的TcpMaxDupAcks设置,但我们真正需要的值是 5,有效范围仅为 1-3。
服务器是 Windows Server 2003。客户端都是企业管理的 Windows XP。所有客户端,包括两个正在运行的客户端,都安装了赛门铁克防病毒软件。
这是数百个出现此问题的客户端站点中唯一的一个。
pathping 显示 56 毫秒 RTT 和一致的 0/100 数据包丢失,即使是来自问题机器。
谢谢,
山姆
Mur*_*iar 25
注意:我假设此捕获是在客户端计算机上进行的。
TCP 排序的简要总结:TCP 在两个应用程序之间可靠地传送字节流。在这种情况下,“可靠”意味着除其他外,TCP 保证永远不会将乱序数据传送到侦听应用程序。
通过使用序列号来实现有序、可靠的交付。每个流中的每个数据包都分配了一个 32 位的序列号(请记住,TCP 实际上是两个独立的数据流,A->B 和 B->A)。如果 A 向 B 发送 ACK,则 ACK 字段中的值是 A 希望从 B 看到的下一个序列号。
从上面可以看出,至少有一个从服务器发送到客户端的 TCP 段丢失了。依次重复的三个 ACK 是客户端尝试触发快速重传。当 TCP 发送方收到 3 个对同一条数据的重复确认(即同一段的 4 个 ACK,不是最近发送的数据段)时,可以合理地假设在被 ACK 的段之后的段丢失了在网络中,并导致立即重新传输。
在这种情况下,重传通过,并被 Wireshark 识别为乱序。
正如joeqwerty所提到的,丢包最常由拥塞引起。这也可能是由于接口卡损坏、电缆松动等导致的 CRC 或链路上的其他错误。我会查看路径上每个链路的统计信息,看看是否有任何链路被高度利用和/或正在经历大量错误。
如果您看不到任何明显的候选对象,请在路径上的多个点执行并发数据包捕获,以尝试隔离发生丢失的位置。
这里使用的是哪种 WAN 连接?是专线吗?MPLS VPN 链接?公共互联网上的 IPsec VPN?还有什么?
| 归档时间: |
|
| 查看次数: |
99752 次 |
| 最近记录: |