TCP/IP——TCP的成块数据流、滑动窗口、慢启动、PUSH和URG

本文详细介绍了TCP/IP中的TCP数据流控制,包括滑动窗口协议,慢启动算法以防止拥塞,以及PUSH和URG标志在数据传输中的作用。在滑动窗口机制中,发送方和接收方通过窗口更新控制数据传输,慢启动算法初期以较小的速率增加发送数据量。PUSH标志促使接收方立即处理数据,而URG标志用于标记紧急数据。
摘要由CSDN通过智能技术生成

一、引言

我们看到TFTP使用了停止等待协议。数据发送方再发送下一个数据块之前需要等待接收对已发送数据的确认。TCP所使用的被称为滑动窗口协议的另一种形式的流量控制方法。该协议允许发送方再停止并等待确认前可以连续发送多个分组(但发送分组的总大小不能超过通告窗口)。由于发送方不必每发送一个分组就停下来等待确认,因此该协议可以加速数据的传输。

二、正常数据流

通常使用的“隔一个报文段确认”的策略(即每收到两个报文段发送一次确认,不是一定都是这样)。

当发送方发送一段数据后,接受发发送ACK,但通告其窗口大小为0,这说明接收方已收到所有数据,但这些数据都在接收方的TCP缓冲区,因为应用程序还没有机会读取这些数据。这时候发送发就会停止后续数据发送,等待接收方发送一个窗口更新。当接收方处理TCP缓冲区里的数据后,有闲置的空间时就会发送一个ACK(许多TCP实现在窗口大小增加了两个最大报文段长度或者最大可用窗口的50%时发送这个窗口更新,不会因为应用程序读取了10个字节,就通告窗口大小为10个字节),并通告窗口大小为缓冲区的大小。

三、滑动窗口

TCP有两个缓冲区,发送缓冲区和接收缓冲区,对应两个窗口,即发送窗口和接收窗口。即,滑动窗口即包括接收窗口,也包括发送窗口。通常所说的通告窗口,指的是接收窗口。
在这里插入图片描述
在这个图中,我们将字节从1至11进行标号。接收方通告的窗口称为提供的窗口,它覆盖了从第4字节到第9字节的区域,表明接收方已经确认了包括第3字节在内的数据,且通告窗口大小为6。我们知道窗口大小是与确认序号相对应的。发送方计算它的可用窗口,该窗口表明多少数据可以立即被发送。当接收方确认数据后,这个滑动窗口不时地向右移动。窗口两个边沿的相对运动增加或减少了窗口的大小。

称窗口左边沿向右边沿靠近为窗口合拢。这种象限发生在数据被发送和确认时。

在这里插入图片描述
当窗口右边沿向右移动时将允许发送更多的数据,我们称之为窗口张开。这种现象发生在另一端的接收进程读取已经确认的数据并释放了TCP的接收缓存时。
当右边沿向左移动时,我们称之为窗口收缩。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值