TCP RTT 和乱序重传计算

目录

RTT

乱序重传


工作中需要计算tcp 的rtt和重传连续包,以下是我们计算的方法。

RTT

Round trip time 往返时间 (RTT),是网络请求从起点到达目的地并再次返回起点所需的持续时间。

在tcp中是发送包到与接收到与此数据包对应的ack包的持续时间,在我们的计算中对于下图第三种情况,我们只计算了两次rtt。

TCP RTT 和乱序重传计算

下图是一个网络包的情况,在tcp中,当前包的seq + payload_len 即为下一个包的seq值,同时也为当前包的回复包的ack值。图中6、8包为一对rtt计算区间,6包的seq(1341) ,payload(1340), 则next_seq = seq + payload = 2681, 正好与8包的ack等值,所以这是一对rtt计算区间。

TCP RTT 和乱序重传计算

乱序重传

先重传乱序包判断:在此以上行为例,当前上行包的seq 不是期望的值(上一个上行包的seq+ payload_len),就认为当前包乱序或者重传。

TCP RTT 和乱序重传计算

在此基础上检查 按照优先级检查。

检查快速重传:TCP_A_FAST_RETRANSMISSION  ,当前上行包之前已有连续多次下行冗余的ACK, 同时当前上行包的seq == 之前下行包的ack,则认为此包为快速重传包。

TCP RTT 和乱序重传计算

 TCP RTT 和乱序重传计算

如果不是快速重传才检查乱序。

检查乱序:TCP_A_OUT_OF_ORDER  ,当前包的seq_num + payload_len!= 上一个包的seq_num + payload_len(不是重复发送的的数据包), 就是乱序。

都不是的话全都归类到其他重传。


凡是过往,即为序章

上一篇:LeetCode 1140. Stone Game II


下一篇:[Agc002E/At1999] Candy Piles - 博弈论