当前位置:网站首页>TCP MIN_ A dialectical study of RTO
TCP MIN_ A dialectical study of RTO
2022-06-25 08:10:00 【dog250】
TCP In the process of continuous evolution, there are many things that are self defeating , All of these things are “ I guess it is. X, But I'm not sure ” Lead to .
There is no need to say more about packet loss judgment in congestion control , Nagle Algorithm and Delayed ACK I have said that . Talk to colleagues RTO What happened , This is another example .
Linux TCP In the implementation MIN_RTO Why? 200ms So big , about IDC Internal communication is obviously very unreasonable ,100us Class RTT It is obvious that there is no need for 1000 Times the time to determine the timeout .
It's not difficult to solve this problem , Extract a configuration parameter , Give Way MIN_RTO Just match it . This is also the most natural idea , I believe many private implementations do this . But the question is why the famous LInux The configuration was not exported ?
In order to cater to Delayed ACK, It is also the standard ,Delayed ACK There is a delay upper bound , For example 200ms ( The exact number is not important ),RTO This must be considered Delay, Otherwise, it may be pseudo timeout .
therefore MIN_RTO configure Delayed ACK Delay Magnitude , such as 200ms .
It looks like it's going well . But things got complicated :
- The opposite end can Delay To Delayed ACK Is the upper bound of ? If only Delay 了 10ms Well ?
- Delayed ACK Of Delay Is time a constant value or an adaptive value ?
- The end of a set of data , Not enough ACK When a fast retransmission is triggered , Need to be compared with RTO Small TLP.
- If not for Delayed ACK Lead to RTO Too big ,TLP There is little need to introduce .
…
then Google Came up with a plan :draft-wang-tcpm-low-latency-opt-00
In fact, all this is not necessary , In a circle .
In order to reduce ACK Number , extraction Delayed ACK, To cater to Delayed ACK Upper bound of delay ,MIN_RTO It's obviously too big , For more efficient detection of tail drop , extraction TLP, To adapt IDC RTT But also abide by Delayed ACK upper bound ,Google extraction TCP Low Latency Option.
The root cause is Delayed ACK, Then solve it .
Read the following article :
TCP Delayed ACK Dialectical examination
How to solve MIN_RTO The problem? ?
MIN_RTO No longer need , No need to pander to Delayed ACK,RTO Completely based on RTT Calculation .TLP And there's no need for , Just in PSH Package settings “ It must be done immediately ACK” sign . With the above guarantee , There is no need to worry about pseudo timeouts :
- Spaced “ immediately ACK” Flags always trigger a fast retransmission before the timeout .
- If it does time out , That's almost a real packet loss .
Special , In case of unidirectional transmission , Knowing that the opposite side is unwilling to carry ACK Under the circumstances , Why not just tell the opposite end , Instead of having to adapt . in fact Linux TCP A... Is maintained for the connection pingpong Variable , It's adaptive TCP timeout . The reality is even more complicated .
You can set it for every package “ immediately ACK” sign , Or ease up a little , Every time 2 individual ,3 individual … Set once “ immediately ACK”. Even the first few packages and the last one PSH Set on the package “ immediately ACK”. It depends on the congestion control algorithm .
Is it very refreshing ?
Just promise RTT There is one in the order of magnitude “ immediately ACK“ Data packets can be sent at RTT Plan within a certain amount of time RTO, There is no need to set MIN_RTO, Make your own decisions , Instead of guessing the other person's behavior . Don't guess the behavior of the link .
TCP Poor performance , Include QUIC There is also an upper limit to performance , The basic reason is that the link behavior basically depends on guessing , This is the end-to-end principle that leads to , As long as you agree with end-to-end self-determination , This problem cannot be solved , You can't get the link behavior information , It can only be predicted , inspire , In the final analysis, it's all guessing .
This is me. “ Suggest ” very good , But the opposite end does not necessarily support , So we have to negotiate ?
The negotiation is always larger than the previous export “ Mechanism ” It is better to . So , If it can be standardized, it can be standardized , Negotiation without standardization , But don't guess .
Who cares? 7 Are 100 million Chinese men tired of walking ? Aokang cares .
Zhejiang Wenzhou leather shoes wet , It's not fat when it's raining .
边栏推荐
- Introduction to the main functions of the can & canfd comprehensive test and analysis software lkmaster of the new usbcan card can analyzer
- Logu P2486 [sdoi2011] coloring (tree chain + segment tree + merging of intervals on the tree)
- 2022年毕业生求职找工作青睐哪个行业?
- [deep learning lightweight backbone] 2022 edgevits CVPR
- 协议和服务的区别?
- Electronics: Lesson 011 - experiment 10: transistor switches
- Electronics: Lesson 013 - Experiment 14: Wearable pulsed luminaries
- 洛谷P3313 [SDOI2014]旅行(树链+边权转点权)
- c#磁盘驱动器及文件夹还有文件类的操作
- socket问题记录
猜你喜欢
C examples of using colordialog to change text color and fontdialog to change text font
深度学习系列45:图像恢复综述
Use the frame statistics function of the message and waveform recording analyzer royalscope to troubleshoot the accidental faults of the CAN bus
Drawing of clock dial
五分钟快速搭建一个实时人脸口罩检测系统(OpenCV+PaddleHub 含源码)
电子学:第009课——实验 7:研究继电器
电子学:第012课——实验 11:光和声
力扣 272. 最接近的二叉搜索树值 II 递归
TCP的那点玩意儿
C disk drives, folders and file operations
随机推荐
2265. number of nodes with statistical value equal to the average value of subtree
六月集训(第25天) —— 树状数组
c#中设置lable控件的TextAlign属性控制文字居中的方法
洛谷P2048 [NOI2010] 超级钢琴(RMQ+优先队列)
共话云原生数据库的未来
The first game of 2021 ICPC online game
Apache CouchDB 代码执行漏洞(CVE-2022-24706 )批量POC
深度学习系列45:图像恢复综述
线程+线程问题记录
php数组函数大全
C examples of using colordialog to change text color and fontdialog to change text font
Can bus working condition and signal quality "physical examination"
[deep learning lightweight backbone] 2022 edgevits CVPR
C disk drives, folders and file operations
Electronics: Lesson 008 - Experiment 6: very simple switches
电子学:第013课——实验 14:可穿戴的脉冲发光体
Sword finger offer (simple level)
黑点==白点(MST)
Static web server
Electronics: Lesson 012 - Experiment 13: barbecue LED