问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

可靠传输机制

发布网友 发布时间:2022-10-20 20:22

我来回答

1个回答

热心网友 时间:2024-11-18 05:34

  TCP发送的报文段是交给IP层传送的,但IP层只能提供尽最大努力服务。也就是说,TCP下面的网络所提供的是不可靠的传输。因此,TCP必须采用适当的措施才能使得两个传输层之间的通信变得可靠。

  理想的传输条件有以下特点:

  在这样的情况下,不采取任何措施就能实现可靠传输。

  然而实际的网络都不具备上述的两个条件。但是我们可以使用一些可靠传输协议,当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到的数据时,及时告知发送方降低数据发送的速度——流量控制。这样本来不可靠的信道就能实现可靠的传输。

  可靠传输:即发送端发送的是什么,接收端接收到的就是什么。也就是在数据传输的过程中没有传输差错。
  数据传输过程中可能出现的问题:比特出差错丢包

  可靠传输的方法:停止-等待协议、滑动窗口协议

  (1) 全双工通信的双方既是发送方也是接收方,但是为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
  (2) 数据传输的过程中既可能出现差错,又有可能出现丢包的现象。
  (3) 所有传输的数据单元称为分组。

  发送方每发送一分组就停止等待,只有等到了接收方发送来的确认后才可以发送下一个分组

  (1) 分组丢失或检测到分组出错
  发送方在传输过程中分组丢失,这时接收方没有接收到分组不会知道发送方发送了分组,就不会给发送方返回确认信息(分组出错,接收方会直接丢弃分组也不会返回确认信息),而发送方在等待接收方的确认信息以此来发送下一个分组。所以可靠传输协议这样规定:当发送方超过一段时间没有仍然没有收到的确认,就认为刚才的分组丢失了,因而重传前面的发送过的分组。这就是超时重传

  超时重传要求在每次发送完一个分组时设置一个超时计时器,如果在超时计时器到期之前收到了对方的确认,就撤销已设置的超时计时器。

  (2) 确认分组(ACK)丢失
  接收端接收了发送方传输的分组后,向发送方发送ACK,但是ACK在传输过程中丢失了,那么发送方就收不到确认信息,这时发送端超时计时器到期后就要重传分组,接收方仍会重复接收分组,并且丢弃重复的分组,并重传ACK。

  (3) ACK分组迟到
  下图的传输过程没有出现差错,接收方接收分组后向发送方发送ACK,但是确认信息迟到了,在超时计时器到期后发送方会重新发送分组,接收方仍然会重复接收分组,并且丢弃重复的分组,并重传ACK。当发送方收到ACK后会发送下一个分组,在后来发送方收到迟到的ACK时,发送方会收下并直接丢失

  优缺点:停止等待协议优点是简单,但缺点是信道利用率太低。

  假定A发送分组需要的时间是TD。显然,TD等于分组的长度除以数据率。再假定分组正确到达B后,B处理分组的时间可以忽略不计,同时立即发回确认。假定B发送确认分组需要时间TA,如果A处理确认分组的时间也可以忽略不计,那么A在经过(TD+ RTT + TA)后就可以再发送下一个分组,这里的RTT是往返时间。

  信道利用率:发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率

  因为仅仅是在时间TD内才用来传送有用数据(包括分组的首部),因此信道利用率U为:

  为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用流水线传输

  流水线传输就是发送方可以连续发送多个分组,不必每次发完一个分组就停下来等待对方的确认。这样信道上一直有数据在不断的传送,显然这样会提供信道利用率。

  在回退N步协议中,允许发送方发送多个分组而不需等待确认,但它也受限于流水线中未确认的分组数不能超过某个最大允许数N。

  发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。如上图所示,发送方收到了对第0分组的确认后,将发送窗口向前移动一个分组的位置。

  上图表示了GBN协议的序号范围示意图。其中

  序号被分割成了四个部分,各个部分的含义如图所示。

  (1) 上层的调用

  (2) 收到一个ACK:GBN协议中,对序号为n的分组的确认是采用累积确认(cumulative acknowledgement)的方式。

  (3) 超时事件:如果发生超时事件,发送方重传所有已发送但还未被确认过的分组

  (1) 如果接收方正确收到n号分组,并且按序(即上次交付给上层的分组序号是n-1),则接收方位分组n发送一个ACK,并将该分组交付给上层。

  (2) 其他情况,接收方丢弃分组,并为最近按序接收到的分组重新发送ACK。即GBN协议中,接收方丢失所有失序的分组,接收方不缓存任何的失序分组,只需要维护一个下一个按序接收的分组序号:expectedseqnum

  很显然,GBN协议对失序的分组选择直接丢失的行为优点是使得接收缓存简单,即接收方不缓存任何失序的分组,但是缺点也是非常明显的,由于一个分组出错可能需要重传原来已经正确传送的分组,这对资源无疑是一种浪费,其次这些重传的分组也许也会丢失或出错,从而导致更多的重传。

  最后,用一个例子总结下一GBN协议的工作流程

  (1) 发送端发送0、1、2、3号分组,此时发送窗口已满,不能在发送新的分组,在4个分组的传输的过程中,其中2号分组丢失。

  (2) 接收方返回对0号分组的确认,此时窗口向前滑动一个分组位置,并同时发送4号分组。此时,由于0号分组已被确认,计时器重新启动,开始为分组1开始计时....

  (3) 接收方在接收到发送方的0号分组后期望接下来收到1号分组,但是没有收到1号分组,但是却收到2号分组和3号分组,所以直接丢失,并向发送方返回ACK 0,同样对于之后收到的4号分组也是直接丢失并返回ACK 0,此时窗口已经满了,也无法发送新的分组。

  (4) 在计时器超时后,发送方重传所有已发送但是没有被确认的分组,即1号、2号、3号和4号分组,如果这次没有分组丢失,那么接收方会返回这4个分组的确认,发送方在收到确认后,将窗口向前移动4个分组位置。

  (1) GBN协议使用累积确认机制
  (2) 接收方只按顺序接收分组,不按序的分组直接丢失
  (3) 重传时需要重传全部已发送但是没有被确认的分组
  (4) 确认序列号最大的、按序到达的分组

  选择重传协议是对GBN协议的缺点进行了改进,GNB超时重传会对那些已经正确传送的分组都重新传送,并且对失序到达的分组直接丢失。

  选择重选协议通过让发送方仅重传那些可能在接收方出错(即丢失或受损)的分组而避免了不必须要的重传。SR协议的改进措施:

  下图表示选择重选协议的发送窗口和接收窗口。发送窗口和同步窗口是不同步的

  (1) 上层的调用

  (2) 收到一个ACK

  如下图所示,当收到2号分组的确认后,窗口向前滑动一直到最小序号的未确认的分组处,即5号分组处。

  (3) 超时:定时器再次被用来发送丢失的分组。每个分组都有自己的逻辑定时器,因为超时发生后只能发送一个分组。

  (1) SR接收方将确认一个正确接收的分组(在窗口内)而不管其是否按序。失序的分组将被缓存直到所有丢失的分组(即序号更小的分组)都被收到为止,这是才可将一批分组按序交付给上层,然后向前移动滑动窗口。

  如果接收方收到一个在窗口左侧的分组(确切的来说,左边一个窗口大小范围的序号分组,即rev_base - N~rev_base - 1),在这种情况下,必须发送一个ACk,即使该分组是接收方以前已确认的分组。

  对于其他情况,则忽略分组即可。

  下面的图可以表示SR协议的工作过程,具体分析过程和GBN协议相似,这里就不细说了。

  (1) 对窗口内的分组逐一确认,收一个确认一个
  (2) 只传出错的分组
  (3) 接收方有缓存机制,存放失序的分组

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 细说TCP的可靠传输、流量控制、拥塞控制 二手货车4.2米厢货五年车多少钱 有没有类似这种的图 求图。敬礼的动漫图 廖承志写的《致蒋经国先生信》中的此诚憾事什么意思,单个字诚又是什么... 旨哉斯言,盍不实践与统一大业 波斯是什么意思 求哪里有腕带购买?医用的,急,大家帮忙介绍介绍啊 给一些好的做母婴识别... 求哪里有腕带购买?医用的,急,大家帮忙介绍介绍啊 先谢谢大家! ...有做医用腕带的?急需啊… 有谁知道到哪里可以购买到质量价格都满意的... AGPS主要的优势是什么? 400m标准田径场内突沿围长是多少 标准田径场的内突沿周长是398米吗 标准田径场内突沿围长是多少? 标准半圆式田径场内突沿的周长为多少米 请问一下 标准田径场内突沿围长是多少啊 ? 标准田径场的内突沿长时是多少? 内突沿整圈的长度是多少? 电视剧【领养】大瓶子和崔大爷请专家鉴别蜜蜡那一部分!为什么专家一... 绿林四杰,风尘三奇是哪本武侠小说人物? 崔大爷是谁 TCP怎么保证可靠性的? 想知道:邢台市 从威县到天河山旅游区怎么坐公交? 邢西汽车站到天河山旅游区怎么走 读书三要 汪电兵姓名测试结果 韩语“汪汪汪”的梗是怎么来的 邹浩南靓吗。 泳池漏电发生在哪 给邹姓男孩起名,妈妈姓陈,阳历11年2月16日16时45分出生, 五行缺水_百... 帮我儿子起名字,方字辈,姓邹, 也可以起两个字的,姓 加名字就可以了_百... 硫化纳对人有没有危害 2010年1 月29日下午8:00出生,女孩,父亲姓邹,取名,谢谢 迟悟什么意思?? 有一首歌歌词那个念念不忘的人是什么歌 有没有一瞬间,你突然觉得很沮丧? 《迟悟的心动》txt下载在线阅读全文,求百度网盘云资源 真皮加绒外套能不能手洗 ...浮浮沉沉总在我心里…心情,该如何平静"这是什么歌?原唱是谁... ...她总是喜欢对着我哈气,但是她的口臭实在是太严重,她一对着我哈气,那... ...啊?我老是觉得自己有口臭,因为有时候口腔里很难受,总感觉有股臭气向...