带宽测量

因为bbr算法是基于带宽测量的,因此带宽的计算便是算法的一个关键点。为实现带宽计算,bbr算法会跟踪最近收到ack消息的包,同时记录所有发出的包。当一个包收到ack消息时(A_1),就能得到这个包发送时的信息(S_1),同时也能得到前一个收到ack消息的包的信息(A_0、S_0),利用这些信息就可以计算出send rate和ack rate。

send_rate = (bytes(S_1) – bytes(S_0)) / (time(S_1) – time(S_0));

ack_rate = (bytes(A_1) – bytes(A_0)) / (time(A_1) – time(A_0));

ack_rate很明显就是接收端的接收速度,这个速度可以做为带宽值。但考虑到一个ack包内部可能确认了多个数据包,所以会出现ack_rate > send_rate的情况,因此获取带宽值的时间还需要做个限制:rate_sample = min(send_rate, ack_rate);

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《带宽测量》
文章链接:https://zhuji.vsping.com/6385.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。