Whether the BBR algorithm affects tcp_info parameter update

48 views
Skip to first unread message

sicheng Huang

unread,
May 5, 2024, 10:47:11 AMMay 5
to BBR Development
Hello, I am a senior student, and I am learning about network status detection. Since I need to check the quality of the network, I need to get the data of the tcp connection, including RTT and RTT_VAR. I found this information available through tcp_info.

My question:
Whether the BBR algorithm affects tcp info parameter update, including rtt and rtt_var? If yes, does it affect the calculation of rtt and rtt_var or update time.

What I've done:
I did my best to read some of the source code for tcp_info and found that updates to rtt_var were actually associated with mdev in tcp_sock,This mechanism seems to be based on the earlier Jacobson/Karels algorithm (get rtt ->caculate srtt->caculate mdev->get rtt_var). Knowing that BBR has its own rtt estimation algorithm, I'm not sure if this congestion control algorithm will have an impact on tcp_info parameter updates. At the same time, I noticed that it is also possible to obtain socket information (including estimated bandwidth, estimated minimum latency, etc.) specific to the BBR algorithm using the getsockop() function. The combination of getting rtt information from both places, and the algorithmic nature of BBR itself, makes me suspicious

I'm sorry that my ability is limited. I just engaged in this field of study and can only learn so much information. Thank you very much for your help!

Neal Cardwell

unread,
May 5, 2024, 11:11:20 AMMay 5
to sicheng Huang, BBR Development
On Sun, May 5, 2024 at 10:47 AM 'sicheng Huang' via BBR Development <bbr...@googlegroups.com> wrote:
Hello, I am a senior student, and I am learning about network status detection. Since I need to check the quality of the network, I need to get the data of the tcp connection, including RTT and RTT_VAR. I found this information available through tcp_info.

My question:
Whether the BBR algorithm affects tcp info parameter update, including rtt and rtt_var? If yes, does it affect the calculation of rtt and rtt_var or update time.

BBR does not directly affect the tcp_info parameters, except obviously for the cwnd and pacing rate values, since those are always chosen by the congestion control algorithm. In particular, BBR does not affect the tcp_info struct's rtt, rttvar, or min_rtt fields, except indirectly, by potentially keeping the various RTT-related values lower than Reno or CUBIC would.
 

What I've done:
I did my best to read some of the source code for tcp_info and found that updates to rtt_var were actually associated with mdev in tcp_sock,This mechanism seems to be based on the earlier Jacobson/Karels algorithm (get rtt ->caculate srtt->caculate mdev->get rtt_var).

Yes, the Linux TCP rtt and rttvar calculations pretty closely follow the algorithm in appendix A.2 of Van Jacobson's 1988 SIGCOMM paper, "Congestion Avoidance and Control" ( https://dl.acm.org/doi/10.1145/52324.52356 ).
 
Knowing that BBR has its own rtt estimation algorithm, I'm not sure if this congestion control algorithm will have an impact on tcp_info parameter updates. At the same time, I noticed that it is also possible to obtain socket information (including estimated bandwidth, estimated minimum latency, etc.) specific to the BBR algorithm using the getsockop() function. The combination of getting rtt information from both places, and the algorithmic nature of BBR itself, makes me suspicious

The RTT information that you'll get from BBR with getsockopt(...TCP_CC_INFO...) is different from the RTT info you'll get from tcp_info.

The RTT information that you'll get from BBR with getsockopt(...TCP_CC_INFO...) is just BBR's min_rtt estimate, which is a min over the last 10 seconds.

The RTT info you'll get from tcp_info includes smoothed RTT (rtt), RTT variance (rttvar), and minimum RTT over the last 5 minutes (min_rtt).

best regards,
neal


 
I'm sorry that my ability is limited. I just engaged in this field of study and can only learn so much information. Thank you very much for your help!

--
You received this message because you are subscribed to the Google Groups "BBR Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bbr-dev/92686d2f-a7d8-497d-b6b4-a1206d1b6317n%40googlegroups.com.

sicheng Huang

unread,
May 7, 2024, 11:29:14 AMMay 7
to BBR Development
I understand. Thank you very much
Reply all
Reply to author
Forward
0 new messages