谈一谈运输层(二):滑动窗口、流量控制、拥塞控制、可靠传输

谈谈滑动窗口协议吧滑动窗口?不能将缓冲区的数据一次全部传输完毕吗?显然,从字面上理解,滑动窗口控制数据的传输速率,它属于传输控制协议的一种。遵循滑动窗口协议的发送方,每次只能发送有限的分组,当发送窗口中已发送的报文被确认后,窗口便可以向右滑动(窗口是一种思想,可变还是不可变看具体实现),而接收方窗口指明了希望接收的分组。首先明确,滑动窗口不是一个具体的协议,它是一类协议或者说一组控制传输的思想,它并不是属于某一层的协议,只是滑动窗口思想可以用于实现传输控制。基于滑动窗口思想的传输控制协议要求发送方或接收
摘要由CSDN通过智能技术生成

谈谈滑动窗口协议吧

滑动?窗口?
为什么会有窗口的概念,因为TCP不允许发送方一次发送太多数据,这个“窗口”的概念,在TCP中通过“窗口字段”来表示。从这个角度看,滑动窗口协议像是用来控制发送流量的。

窗口字段是TCP报文段中的一个标准字段,窗口字段表示接收方的接收缓存还可以接受多少字节的数据。接收方通过窗口值字段对发送方的发送速率进行控制

滑动?什么时候滑动?TCP滑动窗口协议中把窗口具体分为发送方窗口和接收方窗口,发送方窗口中又可以分为已发送但未确认和未发送的数据(字节),接收方窗口表示可以接收但是未达到的数据。一旦数据全部发送完毕,那么发送方必须等待接收方的确认报文。而一旦发送方报文到达接收方,接收方将接收报文中的数据,存入接收缓冲区并给出确认,此时接收方的接收窗口左边界右移。而当发送方接收到接收方的确认报文,他将释放相应的缓冲区,同时发送窗口左边界右移。从这个角度来看,滑动窗口协议有具有一定可靠传输的意义。(保存未确认分组不滑动,是为了进行重传)

如果让我谈谈滑动窗口协议,我会从“滑动”和“窗口”方面引出其“流量控制”和“可靠传输”层面的意义。

滑动窗口协议不是某个具体协议,它是一类协议,或者说具有某种思想的协议族。它的两个特征就是:窗口——限制发送速率/流量控制,滑动——传输控制/可靠传输。其中ARQ(停等)可以看作单窗口、一应一答的滑动窗口协议,GBN(回退N步)和SR(选择重传)也是多单位窗口、流水线发送和累加确认的滑动窗口协议。TCP像是GBN与SR的混合体。
因此当解释滑动窗口协议时,应该更注重理解“滑动”和“窗口”的意义,而不是回答具体有哪些实现。

聊聊可靠传输

可靠传输?这里的可靠没有加任何限定词,那么请自问一下:绝对的可靠,或者说理想的可靠传输是一个怎么样的传输过程?一句话:字节流从一端发出,一模一样的到达另一端。
再拆解一下,从两端发出去的肯定不能是一条长字节,字节组合为分组,分组加上控制首部作为报文段。绝对的可靠:报文有序到达、报文无差错、报文不重复、报文不丢失

我们不是神,只能尽量让报文传输达到“可靠”。
【1】报文有序到达可能保证(ARQ),但是吞吐量太低了。我们可以退一步,不要求传输过程的有序,但是要求有序的接收——序号机制+累加确认
【2】我们无法做到传输过程中无差错,但是我们让接收方主动丢弃出错的包,然后发送方重传出错报文,就可以达到“接收无差错”——校验和+重传机制
【3】同理,对于不重复、我们无法做到传输的过程不产生重复的包,但是我们可以保证不接收重复的包——序号机制
【4】我们无法保证过程中不丢包,但是我们通过重传或者冗余ACK感知丢包事件,从而触发重传行为,另一方面,通过滑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值