检测TCP数据包丢失

时间:2015-08-04 21:22:18

标签: java c++ c tcp

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

1 个答案:

答案 0 :(得分:2)

方法1:检查序列号

的重新传输

如果重新发送数据包,则其序列号保持不变。您可以存储所有传输数据包的所有序列号。在每次传输时检查您是否已经遇到此序列号。如果你有,那就是转发。你还没有把它添加到数据结构中。

方法2:无序传输

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

旁注:这就是像WireShark这样的数据包分析器如何将数据包标记为重新传输