当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
猜你喜欢
Littlest JupyterHub| 02 使用nbgitpuller分发共享文件
【计算机网络】学习笔记,第三篇:数据链路层(谢希仁版)
Solve the problem of rabbitmq message loss and repeated consumption
Astra: the future of Apache Cassandra is cloud native
Blazor 准备好为企业服务了吗?
IOS learning note 2 [problems and solutions encountered during the installation and use of cocopods] [update 20160725]
If you don't understand the gap with others, you will never become an architect! What's the difference between a monthly salary of 15K and a monthly salary of 65K?
C++在C的基础上改进了哪些细节
413【毕设课设】基于51单片机无线zigbee无线智能家居光照温湿度传输监测系统
双向LSTM在时间序列异常值检测的应用
随机推荐
Littlest JupyterHub| 02 使用nbgitpuller分发共享文件
攻防世界之web新手题
抖音直播监控Api:随机推荐
Adobe Prelude /Pl 2020软件安装包(附安装教程)
归纳一些比较好用的函数
Close to the double 11, he made up for two months and successfully took the offer from a large factory and transferred to Alibaba
Japan PSE certification
TCP协议如何确保可靠传输
Template linked list learning
Littlest jupyterhub| 02 using nbgitpuller to distribute shared files
SQL Server 2008R2 18456错误解决方案
What is the difference between vivoy73s and vivoy70s
Spotify是如何推动数据驱动决策的?
Python loop distinction (while loop and for loop)
阅读心得:FGAGT: Flow-Guided Adaptive Graph Tracking
VC + + specified directory file output by time
Is there a big difference between i5 1135g7 and i51035g1? Which is better?
Mate 40 series launch with Huawei sports health service to bring healthy digital life
Flink's sink: a preliminary study
虚拟机中安装 macOS 11 big sur