当前位置:网站首页>How TCP protocol ensures reliable transmission
How TCP protocol ensures reliable transmission
2020-11-08 09:45:00 【Total cost】
About “tcp How protocols ensure reliable transmission ” This problem , The information on the Internet is uneven . Recently, I began to read some textbooks in the library , Read the following bibliography with questions about TCP Chapter of , The summary is recorded .
- University of Potsdam, Germany 《internetworking Technische Grundlagen und Anwendungen》/《 Network technology foundation and Application 》(christoph meinel,harald sack)
- 《 In depth understanding of computer networks 》( Wang Da )
- 《 Computer network tutorial top-down method 》(Behrouz A.Forouzan Firouz Mosharraf)
- 《 computer network 》( Zhang Zengke 、 Yang Xianhui )
- 《 computer network 》 The first 7 edition ( Xie Xiren )
Why? TCP We need reliable transmission
- The network layer is unreliable . The task of the network layer is only to select the appropriate inter network routing and switching nodes , Make sure the data is transmitted in time .
- Due to the nature of the transport layer , The upper level needs reliability . Therefore, the main task of transport layer is to make the best use of network resources according to the characteristics of communication subnet , And Reliability and economy The way , Between the conversation layers , Provide to build 、 Function of maintaining and canceling transmission connection , Responsible for reliable transmission of data .
- UDP By sacrificing reliability , In exchange for best effort delivery 、 High communication efficiency 、 Ensure the real-time characteristics of the data . Natural needs TCP Appearance , Come on Use needs complement each other .
So the above 3 spot , The burden of reliable transmission has been placed on TCP above .
TCP How to achieve reliable transmission
For the purpose of reliable transmission ,TCP Use 4 Solutions : Connection oriented transport mechanism 、 Timeout retransmission control 、 Variable sliding window flow control 、 Congestion control .
Connection oriented transport mechanism
Used Three handshakes 、 Four waves , This is more common , Everybody is familiar with , There is no redundancy .
The checksum , Confirm response (ACK), Serial number .
And it doesn't work for repetition ACK To deal with , Take it and discard it , Realize automatic retransmission request .
Timeout retransmission control
When the message is sent, the receiver's confirmation is not received within a certain period of time , The sender will retransmit . Every time a packet is sent , Just set up a Timeout retransmission timer , When the other party returns ack, To undo the set timeout timer . To achieve this , There are three points to note :
- Keep after sending copy , For retransmission , Received the return of the other party ack after , To clear the copy .
- Number .
- The time setting of the timeout retransmission timer takes the delay into account 、 Congestion and other uncertain factors , thus Retransmission time The setting will be longer than the average round-trip time of data packets .
Variable slide window flow control
The window is divided into sending window and receiving window . Briefly , The receiver puts the acceptable data size ( Accept window size ), adopt ACK Feedback to the sender , To set the coordinated sending content size . The details are as follows :
- When the sending data exceeds the size of the receiver window , Retransmit the excess ;
- When the sending data is smaller than the size of the receiver window , The sender continues to send the content ;
- Not for every segment ACK Reply to , When possible, one or more segments , Send a ACK;
- When the number of received message segments is missing , The received segment is stored in the cache , Wait for the sender to retransmit the missing segment ; Merge complete , Back again ACK; If the missing segment is not received for a long time , Then the message segments in the cache will be emptied .
Congestion control
There are four kinds of control algorithms : Slow start 、 Congestion avoidance 、 Fast retransmission and fast recovery .
- Slow start : Gradually increase the value of congestion window from small to large .
Initial value of congestion window = 1 The value of the maximum segment to two senders ;
Congestion window increases each time = min( The number of bytes of the newly received acknowledgement message , The value of the maximum message segment of the sender ).
- Congestion avoidance : Let the congestion window slow down and increase .
Every time I pass by RTT Just slide the window size and just add 1;
- Fast retransmission : The data received by the receiver shall be confirmed immediately , A packet returns a confirmation ACK, In order to know the loss of individual messages as soon as possible .
for example , When sending M3 Packet loss , The receiver only received M2 And M4 Packet time , The receiver returns in succession 3 individual M2 Of ACK To the sender ( The sender is missing M3 Little brother );
The sender received 3 A continuous M2 Of ACK after , immediately Retransmission M3 Data packets .
- Fast recovery : After encountering network congestion , Reduce congestion window immediately .
Set up a ssthresh As a starting point for using congestion avoidance algorithms , Through this ssthresh value It is half of the maximum threshold of sliding window .
Understand the above four algorithms , It's easy to look at the picture below :
summary :TCP Because it's in the transport layer , The essential , Solve the unreliable problem of the lower network layer , Provides a reliable connection to the session layer ; And realize the right to UDP The use of complementary .
TCP Reliability is mainly through connection oriented transport mechanism 、 Timeout retransmission control 、 Variable sliding window flow control 、 Congestion control implementation .
版权声明
本文为[Total cost]所创,转载请带上原文链接,感谢
边栏推荐
- 413【毕设课设】基于51单片机无线zigbee无线智能家居光照温湿度传输监测系统
- [summary series] technical system of Internet server: high performance database index
- Template linked list learning
- 洞察——风格注意力网络(SANet)在任意风格迁移中的应用
- Unparseable date: 'mon Aug 15 11:24:39 CST 2016', time format conversion exception
- print( 'Hello,NumPy!' )
- 分布式共识机制
- FORTRAN77从文件中读入若干数据并用heron迭代公式开方
- 游戏优化性能杂谈(十一) - 知乎
- Flink的sink实战之一:初探
猜你喜欢
阅读心得:FGAGT: Flow-Guided Adaptive Graph Tracking
Seven features of Python 3.9
vivoS7e和vivoS7的区别 哪个更值得入手
python 循环区分(while循环和for循环)
数据科学面试应关注的6个要点
Littlest JupyterHub| 02 使用nbgitpuller分发共享文件
解决Safari浏览器下载文件文件名称乱码的问题
SQL Server 2008R2 18456 error resolution
VC + + specified directory file output by time
Flink's sink: a preliminary study
随机推荐
Test requirements for MIC certification of Bluetooth 2.4G products in Japan
5G+AR出圈,中国移动咪咕成第33届中国电影金鸡奖全程战略合作伙伴
Adobe Prelude /Pl 2020软件安装包(附安装教程)
Template linked list learning
SQL Server 2008R2 18456 error resolution
Python learning Day1 -- Basic Learning
M 端软件产品设计思虑札记 - 知乎
面部识别:攻击类型和反欺骗技术
Julia 是如何风靡起来的?
Dogs can also operate drones! You're right, but it's actually an autonomous drone - you know
Review the cloud computing application scenarios you didn't expect (Part 1)
Mate 40系列发布 搭载华为运动健康服务带来健康数字生活
Tiktok live monitoring Api: random recommendation
Mozi college SQL injection solution
Rust:命令行参数与环境变量操作
Flink's sink: a preliminary study
盘点那些你没想到的云计算应用场景(上)
Game optimization performance (11) - Zhihu
[summary series] technical system of Internet server: high performance database index
Improvement of rate limit for laravel8 update