如何确保TCP协议传输稳定可靠?
TCP,控制传输协议,它充分实现了数据传输时的各种控制功能: 针对发送端发出的数据包确认应答信号ACK; 针对数据包丢失或者出现定时器超时的重发机制; 针对数据包到达接收端主机顺序乱掉的顺序控制; 针对高效传输数据包的滑动窗口控制; 针对避免网络拥堵时候的流量控制; 针对刚开始启动的时候避免一下子发送大量数据包而导致网络瘫痪的慢启动算法和拥塞控制。
此外,TCP作为一种面向有连接的控制传输协议,只有在确认对端主机存在时才会发送数据,从而可以控制通信流量的浪费。
TCP通过序列号、超时重传、检验和、流量控制、滑动窗口、拥塞控制实现可靠性。
1、应用数据被分割成TCP认为最适合发送的数据块。
2、TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
3、TCP的接收端会丢弃重复的数据。
4、超时重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
5、校验和:TCP将保持它首部和数据的检验和,发送的数据包的二进制相加然后取反。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。
6、流量控制:TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的我数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议。接收方有即时窗口(滑动窗口),随ACK报文发送。(TCP 利用滑动窗口实现流量控制)
7、滑动窗口:实际中的传输方式, 需要说明一下,如果你不了解TCP的滑动窗口这个事,你等于不了解TCP协议。 我们都知道,TCP必需要解决的可靠传输以及包乱序的问题, 所以,TCP必需要知道网络实际的数据处理带宽或是数据处理速度,这样才不会引起网络拥塞,导致丢包。
8、拥塞控制:当网络拥塞时,减少数据的发送。发送方有拥塞窗口,发送数据前比对接收方发过来的即使窗口,取小慢启动、拥塞避免、拥塞发送、快速恢复。应用数据被分割成TCP认为最适合发送的数据块,TCP的接收端会丢弃重复的数据。
停止等待协议也是为了TCP协议传输稳定可靠,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
下一篇:大文件数据如何做到安全传输?