检测TCP丢包

Detect TCP Packet Loss

本文关键字:丢包 TCP 检测      更新时间:2023-10-16

我正在尝试验证TCP协议及其容错特性。在客户机和服务器对中,我想检测由于丢失数据包而没有确认的数据包的重传。TCP确实重传,但是有没有一种方法可以在客户端/服务器程序中以编程方式检测到这一点。

Method1:检查重传序号

如果重传,其序列号保持不变。可以保存所有传输报文的所有序列号。在每次传输时检查是否已经遇到此序列号。如果有,那就是重传。如果没有,就把它添加到数据结构中。

方法2:传输失序

As数据包序列号在重传中保持不变,因为序列号是单调递增的。对于每次传输,可以检查当前数据包的序列号是否小于前一个数据包。如果是,则是重传。

旁注:这就是像WireShark这样的数据包分析器将数据包标记为重传的方式