0
点赞
收藏
分享

微信扫一扫

TCP RTT 和乱序重传计算

晚熟的猫 2022-02-09 阅读 57

目录

RTT

乱序重传


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

RTT

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

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

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

乱序重传

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

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

快速重传:TCP_A_FAST_RETRANSMISSION  (两个连续上行包间隔20ms以内)当前上行包之前已有连续多次下行冗余的ACK, 同时当前上行包的seq == 之前下行包的ack记录到重传重传包+=1, 重传流量+= gtp内层流量

否则是乱序和其他重传

 

乱序:TCP_A_OUT_OF_ORDER  (两个连续上行包间隔3ms以内),seq_num + len = 上一个包的seq_num + len (不是发送的数据包) 是乱序,记录相应的乱序数据。

都不是的话都归类重传。记录相应重传数据。


凡是过往,即为序章

举报

相关推荐

0 条评论