我正在验证TCP协议及其容错特性。在客户端和服务器对中,我想检测由于丢失数据包而没有确认的数据包的重传。 TCP进行重传,但有一种方法可以在客户端/服务器程序中以编程方式检测它。
答案 0 :(得分:2)
方法1:检查序列号
的重新传输如果重新发送数据包,则其序列号保持不变。您可以存储所有传输数据包的所有序列号。在每次传输时检查您是否已经遇到此序列号。如果你有,那就是转发。你还没有把它添加到数据结构中。
方法2:无序传输
由于数据包序列号在重传中保持不变,并且因为序列号单调增加。如果当前数据包的序列号小于前一个数据包,您可以检查每次传输。如果是,则重传。
旁注:这就是像WireShark这样的数据包分析器如何将数据包标记为重新传输