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

TCP可靠传输的ARQ协议

基本知识

  • ARQ(Automatic Repeat-reQuest)协议主要包含:停等ARQ协议连续ARQ协议,其中连续ARQ协议是为了解决停等ARQ协议信道利用率低的问题,目前传统的连续ARQ协议有回退N帧ARQ协议选择性重传ARQ协议
    • 注意: AQR协议的一个特点是:发送窗口的大小 <= 窗口总数
  • ARQ协议通过使用确认超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。具体来说,如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送数据。

工作原理

  • 发送方在超时发生前收到接收方的确认,这意味着帧或数据包已被正确接收,超时是接收方必须向发送方发送确认的特定时间段
  • 如果发生超时:发送方在规定时间内未收到确认,则意味着帧或数据包在传输过程中损坏或丢失。
  • 发送方会重新发送数据包,这些协议确保重复这一过程,直到发送正确的数据包为止。

协议类型

ARQ 包含三个协议:停止 – 等待协议(SW),回退N帧协议(GBN),选择重传协议(SR)

  • 停止 – 等待协议(SW):发送方每发送一帧之后就必须等待接受方的确认返回,仅当接受放确认正确接收后,再继续发送下一帧。即开始下一个分组传输前必须保证当前分组被正确接受。该方法所需缓冲存储空间最小,在等待确认信号时不发送数据,导致信道利用率低,尤其是传输时延很大时,信道效率很低。
  • 回退N帧协议(GBN):发送端发送完一个数据分组后,并不停下来等待确认消息,而是连续发送N个数据分组消息。当发送方接受到接受方的状态报告指示报文出错,发送方将重传过去的n个报文。该方法比停等式减少等待时间,提高吞吐率;但是一帧出错,必须重传其帧和后面n-1帧,增加了系统开销,在信道越差时,有待于确认的帧越多,可能要退回来重发很多帧,所以此方法性能不一定比停等式优越。
    • “N”:表示你一次性可以传多少个球(数据包)。比如,你一次性可以传3个球,那么“N”就是3。

    • “回退”:如果某个球丢了,你不是只重新传那个球,而是从那个球开始,重新传后面所有的球。比如,球3丢了,你重新传球3、球4、球5……直到朋友确认收到。

    • 在后退N帧协议中,当接收方检测到某个帧出错后,则简单地丢弃该帧及其后所有的后续帧,发送方超时后需重传该数据帧及其后续的所有帧。这里应注意,连续ARQ协议中,接收方一般采用累积确认的方式,即接收方对按序到达的最后一个分组发送确认,因此本题中收到3的确认帧就表示编号为0、1、2、3的帧已接收,而此时发送方未收到1号帧的确认只能代表确认帧在返回的过程中丢失了,而不代表1号帧未到达接收方。因此需要重传的帧为编号是4、5、6、7的帧。

  • 选择重传协议(SR):当发送方接受到接受方的状态报告指示报文出错时,发送方只发送出错的报文。因此必须在接受端加大缓存,以备所有序号都收到且连续然后一并交给主机。

参考文章

TCP可靠传输:ARQ协议(停止等待、超时重传、滑动窗口、回退N帧、选择重传)-CSDN博客


http://www.kler.cn/a/546513.html

相关文章:

  • 每日Attention学习23——KAN-Block
  • 【编写UI自动化测试集】Appium+Python+Unittest+HTMLRunner​
  • 计算机组成原理—— 总线系统(十一)
  • 【练习】图论
  • 我的新书《青少年Python趣学编程(微课视频版)》出版了!
  • 27、深度学习-自学之路-NLP自然语言处理-做一个简单的项目识别一组电影评论,来判断电影评论是积极的,还是消极的。
  • C++ 中的继承与派生
  • 单调队列及其相关题解
  • 华为2288H V5服务器无法启动问题处理
  • 【2023 K8s CKA】云原生K8s管理员认证课-零基础 考题更新免费学-全新PSI考试系统
  • 学习京东写测试用例
  • Linux 服务器部署deepseek
  • 2025 docker可视化管理面板DPanel的安装
  • 探索后端开发中的异步API:基于Resilience4j与Reactive Programming的高性能设计
  • AI Agent未来走向何方?
  • 数值积分:通过复合梯形法计算
  • 网络将内网服务转换到公网上
  • Spring Boot 的约定优于配置,你的理解是什么?
  • 域森林基础及环境搭建
  • Kubernetes 面试题精解:从入门到进阶
  • JAVA实战开源项目:宠物咖啡馆平台(Vue+SpringBoot) 附源码
  • 【代码随想录】刷题记录(114)-岛屿数量(深搜)
  • 无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架
  • 【LLM强化学习】LLM 强化学习中 Critic 模型训练详解
  • 蓝桥杯篇---实时时钟 DS1302
  • 若依 ruoyi-vue 隐藏字典样式