面试问题之计算机网络:TCP如何保证数据可靠传输

转载于:https://blog.csdn.net/liuchenxia8/article/details/80428157网络

TCP协议传输的特色主要就是面向字节流、传输可靠、面向链接。性能

TCP保证数据可靠传输的方式主要有如下六点:校验和、确认应答与序列号、超时重传、链接管理、流量控制、拥塞控制。.net

一、校验和blog

在数据传输的过程当中,将发送的数据段都当作一个16位的整数。将这些整数加起来。而且前面的进位不能丢弃,补在后面,最后取反,获得校验和。发送方在发送数据以前计算校验和,并进行校验和的填充。接收方收到数据后,对数据以一样的方式进行计算,求出校验和,与发送方的进行比对。排序

注意:若是接收方比对校验和与发送方不一致,那么数据必定传输有误。可是若是接收方比对校验和与发送方一致,数据不必定传输成功。通信

二、确认应答与序列号数据

序列号:TCP传输时将每一个字节的数据都进行了编号,这就是序列号。协议

确认应答:TCP传输的过程当中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。这个ACK报文当中带有对应的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。高性能

序列号的做用不单单是应答的做用,有了序列号可以将接收到的数据根据序列号排序,而且去掉重复序列号的数据。这也是TCP传输可靠性的保证之一。注入

三、超时重传

简单理解就是发送方在发送完数据后等待一个时间,时间到达没有接受到ACK报文,那么对刚才发送的数据进行从新发送。因为TCP传输时保证可以在任何环境下都有一个高性能的通讯,所以这个最大超时时间(也就是等待时间)是动态计算的。

四、链接管理

链接管理就是三次握手和四次挥手的过程,保证可靠的链接,是保证可靠性的前提。

五、流量控制

接收端在接收到数据后,对其进行处理。若是发送端的发送速度太快,致使接收端的结束缓冲区很快的填充满了。此时若是发送端仍旧发送数据,那么接下来发送的数据都会丢包,继而致使丢包的一系列连锁反应,超时重传。而TCP根据接收端对数据的处理能力,决定发送端的发送速度,这个机制就是流量控制。

六、拥塞控制

TCP经过维护一个拥塞窗口来进行拥塞控制。网络中没有出现拥塞,拥塞窗口的值就能够再增大一些,以便把更多的数据发送出去。网络出现拥塞,拥塞窗口的值就应该减少一些,以减小注入到网络中的数据包数。

相关文章
相关标签/搜索