文章目录

  • 1.可靠传输的基本概念
  • 2.实现机制
    • 1.停止—等待协议SW
    • 2.回退N帧协议GBN(Go-Back-N)
    • 3.选择重传协议SR

1.可靠传输的基本概念

    前面提到差错检测技术类似CRC,通过这种手段接收端就能发现帧在传输过程中是否产生了误码。而如果发现产生了误码,对于不可靠传输而言,仅仅丢弃有误码的帧,其他什么也不做。而可靠传输则不一样,它会实现发送端发送什么,接收端就接收到什么。
    一般情况下,有线链路的误码率比较小,不要求数据链路层向上提供可靠传输服务,即使有误码,问题也由上层解决。无线链路容易受干扰,因此要求提供可靠传输服务。
    从整个计算机系统看,比特差错只是传输差错中的一种,还有诸如分组丢失、分组失序、分组重复,这些错误一般不出现在数据链路层,而是在其上层。可靠传输服务也不局限于数据链路层,其它层均可以实现可靠传输。而可靠传输的实现手段就是我们需要进一步了解的。


2.实现机制

1.停止—等待协议SW


    停止—等待协议就是当发送发发送一段数据后,会停下来等到接收方返回消息,确认收到或没有收到数据。如果收到数据,会返回确认消息ACK,发送方就可以继续发送,而如果没收到就会返回否认消息NAK,接收方会重新发送之前的数据。

    但如果数据丢失了,发送方一直在等待接收方的确认或否认,数据传输就陷入停滞。针对这种情况可以设置超时计时器,设置重传时间,其值应略大于从发送方到接收方的平均往返时间,当接收方在重传时间内一直未得到反馈,就会重新发送原来的数据。

    当出现超时重传的情况后,接收方需要判断接收到的数据分组是不是重复的,因此需要给每一个分组编号,因为每次发送端发送数据后都会停下来等待,所以相邻数据分组的编号只要互不相同即可,依次取0,1,0,1…当发现两次接收到同样编号的数据分组,将其丢弃即可。

    同样的道理,确认信息也有可能出现晚点,这样就可能导致原本是上一个数据分组的确认信息,却被以为是新的分组的确认信息,造成误会。也可以给确认信息像发送端发送的数据分组一样编号。

    SW协议的新到利用率如上图所示,在忽略处理数据时延的情况下,取决于发送实验TD,往返时间RTT,一般TA较小可忽略。

2.回退N帧协议GBN(Go-Back-N)


    停止—等待协议的信道利用率比较低,如果采用上图所示的流水线传输,即一次性传输多个数据分组,可提升行动利用率,再次基础上,就可以引出回退N帧协议

    加入采用3个比特给分组编号,即序号0-7,选择发送窗口的尺寸在1~2^3-1之间,如果选择尺寸为8,会导致无法分辨新旧两组数据的问题。这里假设发送窗口分组数为5,接收窗口分组数为1。则发送方可以同时发送5个分组。

    接收窗口每接收一个分组就向前进一格,并向发送端发送确认信息,发送窗口收到确认信息后,也会前进相应的分组数。

    接收方不一定需要对收到的分组逐个发送确认,可以在收到几个分组后,对按序到达的最后一个分组发送确认。比如上图中接收方收到了5个数据分组,对分组4发送了确认,这样接收方就知道了这些分组被正确接收。并且即使其中有分组丢失了,也不需要发送方重传。

    而如果上图中的分组5出现了误码被丢弃,那么接下来的4个分组序号就不匹配了,此时就会触发退回机制。

    每接收到一个序号不符合的分组,接收方就会产生一个对接受到的最后一个分组4的确认,并发送给发送方,发送方就知道需要进行重传。

3.选择重传协议SR

    GBN协议中一个数据分组的误码就会导致其后续多个数据分组被丢弃,会引起发送方的超时重传,这是对通信资源的巨大浪费。为了进一步提高性能,可以设法只传送出现误码的数据分组。接收窗口的尺寸不应该在等于1,当接收方收下失序到达但无误码、并且序号落在接收窗口内的数据分组,等待缺失分组收齐后再一起上交,这就是选择重传协议。

    发送窗口的尺寸应在1~2^(3-1)之间,超过这个范围同样会引起无法分辨新老分组的情况。选择接收窗口和发送窗口的尺寸都为4,发送窗口传输4个分组到达接收方,其中分组2丢失了。

    接收到前两个分组后,接收窗口前移两格,再将没有误码的分组3也接收,但并不前移。发送对0,1,3的确认给发送方,发送窗口会前移两格。
    发送窗口将进入窗口的分组4和5页发送出去,并获得确认。而当重传计时器超时,发送方会重新发送分组2到接收方,接收完成后,接收窗口和发送窗口都向前移动4格。

计算机网络——可靠传输及其实现机制相关推荐

  1. 可靠传输的实现机制——回退N帧协议GBN(Go Back N)

    可靠传输的实现机制--回退N帧协议GBN(Go Back N) 因为使用停等协议的发送方式,在发送过程中,信道利用率很低,如果出现超时重传,则信道利用率更低 如果可以同时发送很多个数据分组,采用一种流 ...

  2. 计算机网络可靠传输是什么意思,可靠传输

    传输技术 指充分利用不同信道的传输能力构成一个完整的传输系统,使信息得以可靠传输的技术.传输系统是通信系统的重要组成部分,传输技术主要依赖于具体信道的传输特性. 充分利用不同信道的传输能力,使信息得到 ...

  3. 【计算机网络】可靠传输

    [计算机网络]可靠传输 1.基本概念 2.三种可靠传输的实现机制 2.1停止-等待协议SW 2.1.1 错误状况 2.1.1.1确认与否认 2.1.1.2 超时重传 2.1.1.3 确认丢失 2.1. ...

  4. 基于UDP服务实现可靠传输

    基于UDP服务实现可靠传输原理+C++实现 文章目录 基于UDP服务实现可靠传输原理+C++实现 0 作业要求 1 实现思路 1.1 TCP实现可靠传输的机制 1.1.1 报文分析 1.1.2 连接管 ...

  5. 计算机网络之流量控制与可靠传输机制

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

  6. 【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )

    文章目录 一.TCP 可靠传输 二.TCP 可靠传输机制 三.TCP 快速重传 机制 一.TCP 可靠传输 可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 ...

  7. 【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )

    文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...

  8. 3.4.1 计算机网络之流量控制(停止-等待协议、滑动窗口、后退N帧协议GBN、选择重传协议SR)、滑动窗口、可靠传输机制

    文章目录 0.思维导图 1.什么是流量控制? 2.什么是可靠传输机制? 3.什么是滑动窗口机制? 4.可靠传输.流量控制.滑动窗口之间的关系 5.停止-等待协议 (1)为什么要有停止-等待协议? (2 ...

  9. 【计算机网络复习 数据链路层】3.4.1 流量控制与可靠传输机制

    流量控制与可靠传输机制 一.数据链路层的流量控制 二.流量控制的方法 三.可靠传输.滑动窗口.流量控制 一.数据链路层的流量控制 较高的发送速度和较低的接收能力不匹配,会造成传输出错,因此流量控制也是 ...

最新文章

  1. 链表问题7——判断一个链表是否为回文结构(进阶)
  2. golang中的flag模块小结
  3. News Distribution
  4. Linux内核地址空间为什么1GB,为什么Windows为其系统地址空间预留1Gb(或2 Gb)?
  5. Spring框架—IoC容器
  6. Base64编码 - Java加密与安全
  7. 根据线程名获取线程及停止线程
  8. 蓝桥杯2016年C/C++ 混搭
  9. 《11.02-构建之法:现代软件工程-阅读笔记》
  10. 【SCIR AAAI2021】数据增强没效果?试试用Cluster-to-Cluster生成更多样化的新数据吧...
  11. 解决mavencommons-cli:commons-cli:jar:1.0 下载不下来的错误
  12. matlab均值滤波代码6,均值滤波matlab程序代码
  13. 拖机软件Betwinnbsp;VSnbsp;2.0.0.368+破解…
  14. matlab eiq函数,Matlab学习笔记(9)——textread函数
  15. C#更新word目录
  16. Android开发工程师已难找工作
  17. javaJVM高级特性与实践1.4.1Sun Classic/Eact VM (原始精确的早一辈的虚拟机)1.4.2 sun HotStop VM
  18. 【财富空间】陈春花:向内打破,为成长赋能;面对全球市场,要有全球化思维、本土化行动
  19. GFW 三定律,太有创意了,太真实了,胆太大,竟敢光天化日下说实话!
  20. 智力杂志智力杂志社智力编辑部2023年第6期目录

热门文章

  1. 从离岛大屿山到香港岛中环街市,万豪旅享家以七种全新视角重新探索香港
  2. Lombok插件的安装与使用
  3. 使用Bigemap计算挖填土石方量
  4. 操作系统(设备管理)
  5. 互联网江湖,“鲶鱼”如何变“鲨鱼”?
  6. 逻辑运算符 [MySQL][数据库]
  7. common commands
  8. 数据结构之链式存储结构和顺序存储结构
  9. 一篇文章看懂makefile编写规则
  10. 第25回 给飞飞打个骚扰电话