TCP DUP ACK 是什么意思?

网络工程 思科 通讯协议 数据包丢失 传输协议
2021-07-11 16:30:18

在 Wireshark 中,我看到TCP duplicate ACK从接收方发送到发送方的数据包。这是什么意思?这是否意味着丢包?

谢谢

1个回答

可能有几种情况正在发生 - 最常见的是使用TCP 快速重传,这是一种机制,接收者可以通过这种机制表明它在接收到的序列号中看到了一个间隙,这意味着一个或多个数据包丢失过境。在发送方应重传的数据包之前的最后一个已知值的重复确认信号。这可以在不等待丢失数据包的确认超时到达发送器的情况下发生 - 顾名思义,这意味着恢复得更快。

在数据包无序传送的情况下,也可能会看到相同的序列号间隙症状。如上所述,如果接收器在看到序列 #6 之前看到(例如)一个序列为 #5 的片段,然后是另一个序列为 #7 的片段,那么它可能会尝试开始触发快速重传。但是,在看到 #6 到达时,它将停止发送重复的确认。

一个不太常见的原因是某些媒体问题,其中某些数据包可能会被多次看到。但是,如果是这种情况,您可能会在链接上看到其他问题(...包括在 Wireshark 中显示为欺骗的其他数据包)。

所以 - 如果你看到一些随机重复的 ACK 但没有(或很少)实际重传,那么很可能是数据包乱序到达。如果您看到更多重复的 ACK,然后是实际的重传,那么就会发生一定数量的数据包丢失。不幸的是,这两种情况在全球互联网上都是完全可能的。如果您将其他类型的重复数据包视为 CRC 问题并且通常会降低性能,那么查看您自己网络上的链接问题可能是有意义的。