TCP协议的传输控制和管理


对于TCP协议,它的主要作用就是传输和控制。但是具体的操作流程并非说说那么简单。现在我们就来了解一下这方面的知识。首先我们来说一下传输策略的相关内容。希望从中能为大家做个参考。

传输策略

TCP协议中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据。

发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。

当滑动窗口为0时,发送方一般不能再发送数据报,但有两种情况除外,一种情况是可以发送紧急数据,例如,允许用户终止在远端机上的运行进程。

另一种情况是发送方可以发送一个1字节的数据报来通知接收方重新声明它希望接收的下一字节及发送方的滑动窗口大小。

拥塞控制

当加载到某个网络上的载荷能力超过其处理能力时,便会出现拥塞现象。

对于因特网来说有两个潜在的问题--网络的容量和接收方的容量,应该分别进行处理。发送方始终保持两个窗口:接收方承认的窗口和拥塞窗口。

取两个窗口的最小值作为可以发送的字节数。

当建TCP协议立连接时,发送方将拥塞窗口大小初始化为该连接所用的最大数据报的长度值,并随后发送一个最大长度的数据报。

如果该数据报在定时器超时之前得到了确认,那么发送方会在原拥塞窗口的基础上再增加一个数据报的字节值,使其为两倍最大数据报的大小,然后发送两个数据报。

当这些数据报中的每一个都被确认后,拥塞窗口大小就再增加一个最大数据报的长度。

当拥塞窗口是N个数据报的大小时,如果发送的所有N个数据报都被及时确认,那么将拥塞窗口大小增加N个数据报对应的字节数目。

拥塞窗口保持指数规律增大,直到数据传输超时或者达到接收方设定的窗口大小。

拥塞窗口便设置为恰好不造成超时或达到接收方的窗口大小的字节数。

定时器管理

TCP协议使用多个定时器,如重发定时器、持续定时器、"keep alive"定时器等。

最重要的是重发定时器。在发送一个数据报的同时,启动一个数据重发定时器。

如果在定时器超时前该数据报被确认,则关闭该定时器;相反,如果在确认到达之前定时器超时,则需要重发该数据报。

持续定时器用于防止出现死锁情况。当一个连接长时间闲置时,"keep alive"定时器会超时而使一方去检测另一方是否仍然存在。如果它未得到响应,便终止该连接。
 

相关内容