【问题标题】:Packet loss showing at point of entry onto network - what could cause?进入网络时出现数据包丢失 - 可能是什么原因?
【发布时间】:2013-02-08 02:52:44
【问题描述】:

具有 1 Gb NIC 的流量源(服务器)连接到 Cisco 交换机的 1 Gb 端口。

我将此流量 (SPAN) 镜像到同一交换机上的单独千兆端口,然后在高吞吐量捕获设备(河床鲨鱼)上捕获此流量。 Wireshark 对捕获的分析表明存在一定程度的数据包丢失 - 大约 0.1% 的 TCP 段丢失(基于序列号分析)。

鉴于这是此流量在网络上的第一个点,什么会导致此丢失? 吞吐量不接近 1g,没有端口错误(这可能表明补丁引导不可靠)。

在 Richard Stevens 的 TCP 插图书中,他提到了“本地拥塞”——TCP 堆栈以比底层本地队列可以清空的速度更快的速度生成数据。

这可能是我所看到的吗? 如果是这样,有没有办法在 AIX 机器上确认它? (Stevens 的示例使用 Linux 'tc' 命令对 ppp0 设备演示了较低级别的 drop)

【问题讨论】:

    标签: networking tcp wireshark cisco


    【解决方案1】:

    丢失的可能是网络路径上的任何地方。

    如果两台主机之间有数据丢失,您应该会看到 DUP ACK。您需要查看发送 DUP ACK 的一方。这将是没有接收所有数据包的主机。 (当没有看到一个数据包时,它会发送一个 DUP ACK 再次请求数据包。)

    沿途其他地方可能会出现拥堵。查找接口上的输出丢弃。或者 CRC 错误。

    【讨论】:

    • 我觉得我的描述可能有点欠缺。
    • 我觉得我的描述可能有点欠缺。捕获是在源将流量放入网络的点进行的。尽管它是网络上的第一个点,但捕获显示 TCP 段丢失。流量没有通过中间的交换机,也没有通过拥塞或 qos 规则被丢弃——这是它在网络上出来的第一个点。我确实看到了由于丢失而导致的预期重复确认和重新传输 - 但我试图弄清楚数据包是如何在旅程的早期丢失的。
    • 我可能找到了“丢失”的片段。在几乎所有情况下,跟踪中的“TCP 前一个段丢失”警告条目在几个段内之后是“TCP 无序”警告 - 这对应于被认为丢失的段。 (我想我的下一个任务是弄清楚为什么它们被乱序发送)
    • 如果段丢失,那么您也会收到乱序警告......这些是丢失的段正在重新传输。您需要逐跳地嗅探数据包到乱序数据包的来源,直到您可以看到原始数据包和乱序(重新传输)数据包。这将是最后一个看到原始数据包的设备。
    • 谢谢 - 我无法逐跳嗅探,因为它是出现“损失”的第一跳。仔细观察后,我可以看到在大多数情况下,乱序段不是 re 传输的结果 - 在大多数情况下,发送方在接收到三个 DUP 之前发送数据包会启动快速重传的 ACK——这似乎表明“段改组”发生在源点——而不是通常的段恢复机制的结果。
    猜你喜欢
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多