Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

重复数据包

重复数据包是一种经常观察到的网络行为。

某个数据包在网络中的某处被复制,并在接收主机处收到两次。通常不希望出现这些重复包,因为接收应用程序可能会认为这是“新”数据(但它并不是)。

如果发送主机因为 PacketLoss 而认为某个数据包没有正确传输,它可能会 Retransmit 该数据包。接收主机可能已经收到了第一个数据包,并将收到第二个数据包,这就是重复数据包。

ConnectionOrientedProtocols(例如 TCP)会检测重复数据包,并会完全忽略它们。

ConnectionlessProtocols(例如 UDP)不会检测重复数据包,因为例如 UDP 头中没有用于标识数据包的信息,无法据此识别重复包。该数据包中的数据会被指示给应用程序两次(甚至更多次);如果有必要,应用程序有责任检测重复包(或许通过在其头部提供足够信息来实现)并适当处理它们。

原因

对于大多数网络而言,重复数据包是一种典型行为;例如,当发送端正确传输了一个数据包,但认为该数据包根本没有被接收时,就会发生这种情况。

有时,有缺陷的硬件/软件会直接复制数据包。

故障排除

如果网络配置正确,对于重复数据包并没有太多可以采取的措施,因为这在某种程度上是一种“预期”行为。

讨论

问:是否可以关闭重复数据包的显示?在我的许多 TCP 扫描中,超过 25% 的数据包是重复包。我现在必须解码这些系统的流量,而网络工程师还没有时间排查造成拥塞的原因。 答:尝试使用

 not tcp.analysis.duplicate_ack and not tcp.analysis.retransmission

(或其中的某个子集)作为显示过滤器。- Gerald Combs

导入自 https://wiki.wireshark.org/DuplicatePackets,时间为 2020-08-11 23:13:40 UTC

相关 Wireshark Wiki 页面

网络分析技术档案