3.4 可靠传输

作者:神秘网友 发布时间:2021-10-13 07:24:07

3.4 可靠传输

3.4.1 基本概念

假如接收端检测到了有一个帧出现错误,那就告诉发送方:哥们,有一个帧出错了,麻烦重发一下。

试想一下这样一种情况,假如接收方告诉发送方的话是有误的,欺骗的,那会引起更大的灾难。

后面我们会介绍三种实现可靠传输的方法。

一般情况下,有线链路的误码率比较低,为了减少开销,并不要求数据链路层向上层提供可靠传输服务,即使出现误码,可靠传输的问题由上层处理。

无线链路易受干扰,误码率较高,因此要求数据链路层必须向上层提供可靠传输服务。

3.4.1 停止-等待协议

发送方每发送完一个分组后,就停止发送下一个分组。并且缓存还不能清掉,等到接收到接收方的确认ACK那就清掉缓存,并且发送下一个分组。如果接收方发送的是否认NAK没有收到,那就重发。

但是实际情况更复杂,我们来看下面这种情况。一开始传输的时候就出现错误,并且接收方收不到,也就不会发ACK或者NAK,那这样就一直等着。破冰的办法就是超时计时器。比往返时间略大一点,超时了还没收到回复,那就重传。

既然发送方发送的数据分组可能丢失,那我接收方发送的接收分组也可能会丢失。这必然会造成超时重传。假设这个重传的也达到了接收方,那么问题来了,接收方如何判断该数据分组是不是重复的呢

为了避免出现分组重复,必须给分组带上序号。

通过确认分组丢失的情况,引出了给确认分组编号的操作。

请大家思考一下:既然数据分组需要编号,那么确认分组是否也需要编号呢

如果我们的确认迟到了,发送方到点重传了,收到重复确认,那他怎么知道是对1还是0的确认呢所以得编号

需要说明的是:对于数据链路层的点对点信道,往返时间比较固定,不会出现确认迟到的情况。因此,如果只在数据链路层实现停止等待协议,不用给确认分组编号。

注意事项:

练习题:

3.4.2 回退N帧协议

我们可以看出,停止等待协议信道利用率很低,并且如果发生超时重传的话,信道利用率更低,所以我们可以用流水线的方式发送数据分组,一次发5个,提高信道的利用率

那么我们的回退N帧协议GBN(Go -Back -N)就是在流水线的基础上设计的。利用发送窗口来限制发送方可发送的数据分组的个数。在发送窗口里面的数据分组可被连续发送,而不必等待。

发送窗口的尺寸记为WT。

如果WT的值取1就是停止等待协议。如果WT的值超过取值范围的上限,则会造成严重的错误。

接收窗口的大小为Wr:对于回退N帧协议,其取值只能为1。

我们先来看最简单的没差错的情况:

发送方按序发送,接收方一个一个接收,每接收一个,接收窗口就向前滑动一个位置。并给发送方发送所接收分组的确认分组。

发送方每接收一个接收方的ACK,发送窗口就向前滑动一个位置。

并且发送方可以将已发送的分组缓存清除,接收方呢就将已接收的分组交付给上层去处理。

接下来我们看看累积确认的概念:使用后退N帧协议的接收方,可以使用累积确认的机制。也就是我接收方不必啰嗦的每个都发个收到。而是收到5个分组之后再说一句收到5个了。ACKn表示N以及之前的分组全部都接收了。

使用累积的一个优势:比如你先发一个ACK1,之后又发了一个ACK4,ACK1在路上丢失了,但是最后我发送方还是接收到ACK4,不会因为ACK1的丢失而发生重传。还有其他优点:减少接收方的开销,减少网络资源的占用等。

使用累积确认的缺点:不能及时的反映接收方已经接收的信息。

我们来看一种出错的情况:发送方发送的数据1丢失了,5670跟着受到牵连,也不被接收方接收。那超时之后引起重传,重传的话我5670这四个倒霉蛋又被重传了一次。可见网络不好的时候,回退N帧协议的信道利用率不见得要比停止等待协议的好。

接下来我们看一看发送窗口尺寸超出上限会怎么样:

现在我Wt是8,我序号编的是0-7,接收方接收到之后,发送ACK7,但是ACK7在路上丢失了,没有正确达到发送方,超时之后,发送方重传0-7,此时接收方一看,丫的,这0-7到底是重传的还是新的啊,我也看不出来。

回退N帧协议名字的由来:一人犯错,牵连全家。

练习题:

因为该协议的发送窗口和接收窗口是不断滑动的,所以又叫滑动窗口协议。

3.4.3 选择重传协议SR

回退N帧协议的接收窗口只能为1,因此接收方只能按序接收正确达到的数据分组。

一颗老鼠屎会坏了一锅汤,前面只要有一个接收有误,那后面的就不能被正确接收,引起超时重传,对通信资源造成浪费。

那么我们可不可以只重传出错的那个分组,不连累其它人呢

那我的接收窗口就不应该为1,应该大于1,哪些没错的就接受让他们先在接收方休息,只重传出错的那个,等重传的到达后他们再一起送到上一层去。这个就是选择重传协议。

需要注意:你如果想要发送方发送出错的那个分组,那你接收方就不能再采用累积确认的机制了。应该是对每一个正确到达的分组逐一确认。

这个协议需要注意的就是发送窗口和接收窗口大小的设计

如果发送窗口和接受窗口的尺寸超过了范围。那也会引起上面的新旧不分的问题

发送方发了0-4,接收方接收到0-4之后自己的滑动窗口就向前移动了,然后发ACK给发送方,但是ACK0丢失了。一段时间超时了,发送方重发0,但是此时滑动窗口已经不再是当年那个滑动窗口了,此时的0非当年的0。

练习题:

3号帧题目没说啥,那就别考虑他。


本文章教程介绍完毕,更多请访问跳墙网其他文章教程!

3.4 可靠传输 相关文章

  1. 计算机网络之传输层-TCP协议的可靠传输

    计算机网络之传输层-TCP协议的可靠传输 例如发送方的第一个报文的序号是23,窗口大小为7,那么发送方的下一个报文的序号就是30。如果发送方的第一个报文被接收方确认了,那么第一个报文的确认号就有效了,这个确认号就...

  2. 我tcp可是铁齿金不换,诚实可靠小郎君谈谈可靠数据传输服务

    我tcp可是铁齿金不换,诚实可靠小郎君谈谈可靠数据传输服务 附 rdt_send() 函数:上层可以调用数据传输协议的发送方。其中 rdt 为 reliable data transmission。 它将要发送的数据交付给位于接收方的上层。 rdt_rev() 函数:当数据被...

  3. TCP可靠传输

    TCP可靠传输 一,理想传输条件 TCP下面的网络层提供的是不可靠的传输,因此TCP必须采取适当的措施来使得两个运输层之间的通信变得可靠 理想的传输条件: 传输信道不发生差错 不管发送方以多快的速度发送数据,接收方总能...

  4. TCP和UDP的传输过程以及TCP如何保障传输的可靠性

    TCP和UDP的传输过程以及TCP如何保障传输的可靠性 TCP和UDP都是传输层的协议,传输层的主要任务就是建立应用程序端对端的连接,并且为数据传输提供可靠或不可靠的通信服务。 TCP:提供面向连接的服务,在传送数据之前必须先...

  5. TCP如何实现可靠性传输

    TCP如何实现可靠性传输 1、UDP与TCP的区别 TCP(TransmissionControl Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 UDP是User Datagram Protocol,一种无连接的传输层协议,提供面向事务的简单不可靠信...

  6. 可靠数据传输 思维导图

    可靠数据传输 思维导图 高清思维导图见文章末链接。(xmind格式) 不可靠数据传输 #todo 可靠数据传输的要求 要求 数据可以通过一条可靠的信道进行传输,借助于可靠信道,传输数据比特就不会受到损坏或者丢失 数据可以通过...

  7. 如何实现可靠UDP传输

    如何实现可靠UDP传输 既然已经有TCP了,为什么还需要UDP可靠? TCP是强制的可靠性传输,其在IP协议的基础上,发送端对所有的数据进行定时重传,接受端对所有的数据进行排序,以此(当然还有很多其他的机制)来实现发送端是什...

  8. TCP协议如何实现可靠传输

    TCP协议如何实现可靠传输 1. 可靠传输的工作原理停止等待协议 1. 使用确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信 2. 这种可靠传输协议常称为自动重传请求ARQ(Automatic Repeat reQuest)。 3. ARQ表明重传...

  9. TCP 的可靠传输

    TCP 的可靠传输 摘自:《深入理解计算机网络》 王达著 机械工业出版社 相关知识链接 1. IPV4数据报头部格式 2. IPv6数据报头部格式 3. IPv4数据报的封装与解封装 4. IPv4数据报的分段与重组 5. ARP协议报文格式及ARP表 6. ARP地址解析原...

  10. TCP协议可靠传输和拥塞控制原理

    TCP协议可靠传输和拥塞控制原理 TCP协议如何实现可靠传输 停止等待协议 确认丢失和确认迟到 ? 诀窍 :只要接收端没有告诉发送收到了,发送端就认为接收端没有收到,发送端就重传 TCP协议如何避免网络拥塞 慢开始和拥塞避免...

  11. 章节五可靠数据传输原理

    章节五:可靠数据传输原理 概览 1 可靠数据传输原理 2 经完全可靠信道的可靠数据传输 3 经具有比特差错信道的可靠数据传输 4 经具有比特差错的丢包信道的可靠数据传输 5 流水线可靠数据传输协议 6 回退N步 7 选择重传 在上一...

  12. TCP传输可靠性排序丢弃重发

    TCP传输可靠性、排序丢弃重发 排序、顺序发送、顺序组装,当用TCP进行一条数据发送的时候,首先TCP会将这条数据拆分成不同的片段,然后把片段进行排序,把排序好的片段顺序的进行组装进行发送, 丢弃、超时。重发机制,...

  13. 计算机网络之TCP可靠传输

    计算机网络之TCP可靠传输 计算机网络之TCP可靠传输 由于计算机网络是分层的,TCP发送的报文段是交给网络层的IP协议处理的。但是IP只能提供最大努力服务,也就是说下层的网络提供的是不可靠传输,因此TCP必须采取一些措施保...

  14. 网络协议可靠的数据流传输服务TCP

    网络协议:可靠的数据流传输服务TCP 本文将讨论: TCP 的基本概念; 数据流的收发; TCP 报文; 建立和关闭连接; 糊涂窗口; 现在所用的网络上,我们常用的运输层协议是 TCP 和 UDP 。现在我们来讨论 TCP 。 TCP 具有的特征有 4 ...

  15. 运输层相关信息(可靠传输的原理运输连接管理)

    运输层相关信息(可靠传输的原理、运输连接管理) 注意 1、IP层只能提供尽最大能力努力服务,TCP下面的网络所提供的是不可靠的传输 解决方法 我们用可靠传输协议,出现差错的时候让发送方重传出现错误的数据, 在接收方...

  16. 学习TCP传输如何体现其可靠性

    【学习】TCP传输如何体现其可靠性 【学习】TCP可靠性体现在哪里 TCP是一种可靠的传输方式 TCP(传输控制协议)是一种最常见的网络通信协议(另一种常见的是UDP协议)。它是传输层协议中的一种,与UDP协议相比,它的 可靠性 ...

  17. 3.1.4 流量控制与可靠传输机制

    3.1.4 流量控制与可靠传输机制 3.1.4 流量控制与可靠传输机制 1.数据链路层的流量控制 1.较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作 2.流量控制在传输层也有 链路...

  18. TCP/IP协议如何保证可靠性传输

    TCP/IP协议如何保证可靠性传输 TCP : 传输控制协议 面向连接 的, 可靠 的传输协议 面向连接 :在传输数据之前,必须要先在两个程序之间建立连接 在数据传输的时候,必须要保证对方收到了数据 数据传输结束之后,要断开连接...

  19. 计算机网络(14) 流量控制和可靠传输

    计算机网络(14) 流量控制和可靠传输 较高的发送速度和较低的接受能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。 ...

  20. 关于tcp协议可靠数据传输原理的记录

    关于tcp协议可靠数据传输原理的记录 首先各位推荐b站上的一个计算机网络课程,讲的很好很全面: 计算机网络之探赜索隐 http://www.bilibili.com/video/av8377571/ 网络层的数据传输是 不可靠 的,分组在传送的过程中可能会产生 位错误...

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2021, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词