RTT测算方式

1、利用tcp协议中的可选字段,选择timestamp字段,用于记录当前请求发送出去的时间,当收到接收方的ack报文的时候可以利用当前的时间和ack报文中的时间计算出RTT
PS:
1、在TCP报文中,timestamps不是必填字段,而是可选则断,如果需要依赖报文中的timestamps字段来进行RTT计算,则需要开启选填字段中的timestamp;
2、ack中的timestamp字段和发送方报文中的timestamp字段的值是一致的,接收方在收到报文段之后,不会对timestamp字段进行修改,而是原文回显
3、在TCP报文中,一个请求会可能会被拆分成多个报文段(由于报文数据长度限制),但是ack是按照请求来进行回复的,一个ack可以回复多个报文段

2、利用TCP重发队列中的数据控制块的时间戳进行RTT计算;
重发队列:是指已经发送了,但是还没有收到ack的数据包
在重发队列中的数据,每一个数据包都有一个数据控制块,数据控制块中会包含数据包发送的时间,当收到数据的ack报文的时候,我们可以利用收到ack报文的时间与数据控制块中保存的时间,来计算RTT,


版权声明:本文为weixin_42146646原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。