当前位置: 首页 > news >正文

计网_可靠传输ARQ机制

2024.09.04:网工老姜&beokayy网工学习笔记

第5节 可靠传输机制

  • 5.1 可靠传输
  • 5.2 ARQ机制、ARQ协议
  • 5.3 ARQ简介(可靠传输)
    • 5.3.1 停止等待协议
      • (1)无差错情况
      • (2)有差错情况
        • 确认丢失
        • 确认迟到
    • 5.3.2 连续ARQ协议
      • (1)流水线传输
      • (2)滑动窗口
      • (3)累计确认
      • (4)后退N帧协议GBN
      • (5)选择重传协议SR
  • 5.4 信道利用率
  • 5.5 本章小结


注意数据链路层不是一定要实现可靠传输

5.1 可靠传输

通俗理解:发送端发送什么,接收端就接收什么

传输差错除了可能发生的比特差错,还可能存在在传输过程中失序、重复、丢失等差错
在这里插入图片描述
过去,OSI模型比较老,在当时那个时期就必须要求数据链路层必须向上提供一个可靠传输,因此在CRC检测的基础上,就增加了编号、确认、重传

现在,计算机网络并没有强制数据链路层提供可靠传输。

  • 如果数据链路质量好,数据链路层就不使用可靠传输机制,相应的,如果数据链路层传输数据时出了差错需要纠正,那么将由上层协议(如传输层TCP)来完成
  • 如果数据链路质量差,那还是需要数据链路层使用可靠传输机制的

5.2 ARQ机制、ARQ协议

ARQ机制:ARQ机制是一种通用的错误控制原理,用于在不可靠的通信信道中保证数据传输的可靠性。
在这里插入图片描述
ARQ协议:ARQ协议是基于ARQ机制具体实现的通信规则和标准,定义了数据包格式、时序、状态机等细节。

类比理解

  • ARQ机制 ≈ 交通规则中的“红灯停、绿灯行”(通用原则)
  • ARQ协议 ≈ 某城市具体的交通信号灯时序方案(如绿灯持续30秒,黄灯3秒)

5.3 ARQ简介(可靠传输)

面向连接?发送数据前打招呼,发送完数据后要反馈
无连接?广场发广告单,无需认识、无需反馈

ARQ协议,即自动重传请求,是OSI模型中的(数据链路层)和(传输层)错误纠正协议之一,它通过使用(确认)和(重传)这两个机制,在不可靠的基础上实现可靠的信息传输,是一种面向连接的协议

数据链路层的HDLC协议、传输层的TCP协议均使用了ARQ机制

采用确认和超时重传两种机制的可靠传输协议称为自动重传请求(ARQ)

  • 如果发送方在发送后一段时间内没有收到确认帧,它通常会重新发送
  • 重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组

ARQ协议有3种:停止等待ARQ协议、连续ARQ协议(连续后退N帧协议、选择重传协议)


5.3.1 停止等待协议

在这里插入图片描述
发送方每次只允许发送一个帧,接收方每接收一个帧都要反馈应答,表示可以接收下一个帧,发送方收到应答信号后才能发送下一个帧

(1)无差错情况

做题目一般会忽略确认帧的发送时间,或者数据帧和确认帧都在考虑在内
在这里插入图片描述
在这里插入图片描述


(2)有差错情况

在这里插入图片描述

另一种设置:可靠传输协议中,也可以在有差错的时候发送“否认报文NAK”给对方,这样能让发送方及时知道出了差错。但是这样的处理会让协议复杂化,目前实用的可靠传输协议都不使用这种否认报文了

为了实现超时重传,需要注意三点:

这里是引用
在这里插入图片描述

  • 发送方发送完一个帧后,需要暂时保留已发送帧的副本供超时重传时使用,只有收到确认后才能清除副本
  • 帧和确认帧都需要编号,这样才能明确是哪一个发出去的帧收到了确认。编号是循环使用的,比如使用2bit来编号,范围就只能是0~3,再增加一个号又会回到0
  • 超时计时器设置的重传时间应比帧传输的RTT更长一些在这里插入图片描述

确认丢失

在这里插入图片描述


确认迟到

在这里插入图片描述
丢掉后来的重复确认帧


5.3.2 连续ARQ协议

在这里插入图片描述

(1)流水线传输

在这里插入图片描述

(2)滑动窗口

为了搞懂剩下的两种连续ARQ协议,我们需要引入滑动窗口的概念
在这里插入图片描述

在这里插入图片描述

滑动窗口机制特点

  • 发送方只有收到一帧的确认,才能将窗口划过该帧
  • 接收方只有收到一帧并发送确认,才能将窗口划过该帧
  • 当接收窗口大小为1时,可以保证按序接收
  • 数据链路层的滑动窗口大小不变,而传输层的滑动窗口大小可变
    在这里插入图片描述

(3)累计确认

在这里插入图片描述


(4)后退N帧协议GBN

在这里插入图片描述


(5)选择重传协议SR

在这里插入图片描述


5.4 信道利用率

在这里插入图片描述

在这里插入图片描述

发送周期指的是发送方去发送分组(一般化,信道利用率的问题也不只是在数据链路层出现,每层的PDU不一样,统称分组)到它收到第一个确认分组的时间

  • 信道利用率
  • 有效数据传输速率 = 有效数据长度 / 发送周期
  • 信道吞吐率 = 信道利用率 * 发送方发送速率(数据传输速率)

5.5 本章小结

在这里插入图片描述

http://www.xdnf.cn/news/266131.html

相关文章:

  • neo4j初尝试
  • Java从入门到精通 - Java语法
  • C++ 简单工厂模式详解
  • QT6 源(72):阅读与注释单选框这个类型的按钮 QRadioButton,及各种属性验证,
  • 【Linux知识】find命令行使用详解
  • 数据结构*队列
  • nessus最新版本安装教程+windows一键更新最新插件
  • 计算机网络-同等学力计算机综合真题及答案
  • 【AI零件】openrouter.ai生成密钥的操作
  • 广义线性模型三剑客:线性回归、逻辑回归与Softmax分类的统一视角
  • JavaScript 星河:类型流转的诗意旅程
  • 基于LangChain 实现 Advanced RAG-后检索优化(上)-Reranker
  • 第4章 Python 3 基础语法规则补充
  • LangChain与MCP:大模型时代的工具生态之争与协同未来
  • STM32F103C8T6使用MLX90614模块
  • VTK实战笔记(1)在win11搭建VTK-9.4.2 + qt5.15.2 + VS2019_x64开发环境
  • 通往“共识空域”的系统伦理演化
  • [方法论]软件工程中的设计模式:从理论到实践的深度解析
  • 排序算法——归并排序
  • 【Mytais系列】Type模块:类型转换
  • 基于51单片机和LCD1602、矩阵按键的小游戏《猜数字》
  • 【BLE】【nRF Connect】 精讲nRF Connect自动化测试套件(宏录制、XML脚本)
  • 大数据:数字时代的驱动力
  • 应用层自定义协议序列与反序列化
  • toLua笔记
  • 突破认知边界:神经符号AI的未来与元认知挑战
  • Vmware设置静态IP和主机访问
  • 用单目相机和apriltag二维码aruco实现单目定位
  • Go语言的优势与应用场景 -《Go语言实战指南》
  • 5月3日日记