零基础入门计算机网络可靠传输:从基本概念到三大实现机制(停止 - 等待 / 回退 N 帧 / 选择重传)全解析

在计算机网络中,数据在传输过程中不可避免地会遇到各种问题:信号干扰导致的比特错误、路由器拥塞造成的分组丢失、网络延迟引发的分组失序和重复。如何确保 "发送方发送什么,接收方就收到什么",就是可靠传输需要解决的核心问题。本文将从最基础的概念讲起,全面解析可靠传输的三大经典实现机制,帮助你彻底掌握这一计算机网络的核心知识点。

一、可靠传输的基本概念

1.1 差错检测与可靠传输的关系

  • 差错检测技术(如循环冗余校验 CRC)只能检测出传输过程中是否产生了比特错误,但无法纠正错误

  • 检测到错误后的处理方式取决于数据链路层向上层提供的服务类型:

    • 不可靠传输服务:仅丢弃有误码的帧,不做其他处理

    • 可靠传输服务:通过重传机制确保数据正确到达

1.2 不同链路的可靠传输需求

  • 有线链路:误码率较低,为减小开销,一般不要求数据链路层提供可靠传输服务,可靠传输问题由上层处理

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

1.3 传输差错的完整类型

传输差错不仅仅局限于数据链路层的比特差错,从整个计算机网络体系结构来看,还包括:

  • 分组丢失:路由器输入队列满时,根据丢弃策略丢弃分组

  • 分组失序:分组未按照发送顺序到达接收方

  • 分组重复:由于网络滞留导致超时重发,原分组和重发分组先后到达

1.4 可靠传输的层次实现

可靠传输服务并不仅局限于数据链路层,计算机网络体系结构的各层均可选择实现:

  • 网络接口层:802.11 无线局域网要求数据链路层实现可靠传输,以太网则不要求

  • 网际层:IP 协议提供无连接不可靠的传输服务

  • 运输层:TCP 协议提供面向连接的可靠传输服务,UDP 协议提供无连接不可靠的传输服务

1.5 可靠传输的权衡

可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于具体的应用需求。

二、可靠传输的三大实现机制

这三种机制的基本原理不仅适用于数据链路层,还可以应用到计算机网络体系结构的各层协议中。

2.1 停止 - 等待协议(Stop-and-Wait ARQ)

基本原理

发送方每发送完一个数据分组后,就停止发送下一个分组,等待接收方的确认分组(ACK)或否认分组(NAK):

  • 收到 ACK:继续发送下一个数据分组

  • 收到 NAK:重传之前发送的那个数据分组

关键机制
  1. 超时重传:解决数据分组丢失问题

    1. 发送方发送完一个数据分组时启动超时计时器

    2. 若到了重传时间仍未收到确认或否认分组,则重传原数据分组

    3. 重传时间一般选为略大于从发送方到接收方的平均往返时间(RTT)

  2. 数据分组编号:解决确认分组丢失导致的重复分组问题

    1. 停止 - 等待协议只需 1 比特编号(0 和 1)即可

    2. 接收方根据序号判断是否为重复分组,若是则丢弃并重新发送确认

  3. 确认分组编号:解决确认分组迟到导致的误判问题

    1. 数据链路层点对点信道往返时间固定,一般不会出现确认迟到情况,因此可以不用给确认分组编号
信道利用率
  • 计算公式:U = \\frac{T_d}{T_d + RTT + T_aT_为数据分组发送时延,T_为确认分组发送时延,一般可忽略)

  • 当 RTT 远大于T_时(如卫星链路),信道利用率非常低

  • 若出现重传,信道利用率会进一步降低

2.2 回退 N 帧协议(Go-Back-N, GBN)

为克服停止 - 等待协议信道利用率低的缺点,引入了流水线传输技术,发送方可以在收到确认之前连续发送多个数据分组。

窗口机制
  • 发送窗口:限制发送方连续发送分组的个数,序号落在窗口内的分组可被连续发送

  • 接收窗口:限制接收方可以接收的分组序号

  • 回退 N 帧协议参数:

    • 发送窗口尺寸:1 \< W_t \\leq 2\^n - (n 为序号比特数)

    • 接收窗口尺寸:W_r = (只能按序接收)

关键机制
  1. 累积确认:接收方不必对每个分组逐个确认,可在收到几个分组后对按序到达的最后一个分组发送确认

    1. ACKn 表示序号为 n 及以前的所有分组都已正确接收

    2. 优点:减少确认分组数量,降低开销;即使部分确认丢失,发送方也可能不必重传

    3. 缺点:不能及时向发送方反映已正确接收的分组信息

  2. 回退重传:当某个分组出错时,发送方需要重传该分组及其后续所有已发送的分组

    1. 接收方丢弃出错分组及所有后续到达的分组

    2. 每丢弃一个分组,就发送一个对最近按序接收分组的确认

    3. 发送方收到重复确认或超时后,重传发送窗口内所有已发送但未确认的分组

特点
  • 信道利用率比停止 - 等待协议高

  • 当通信线路质量不好时,信道利用率并不比停止 - 等待协议高

  • 实现相对简单

2.3 选择重传协议(Selective Repeat, SR)

回退 N 帧协议会重传很多正确到达的分组,造成通信资源浪费。选择重传协议通过增大接收窗口,只重传出错的分组,进一步提高了性能。

窗口机制
  • 发送窗口尺寸:1 \< W_t \\leq 2\^{n-1(n 为序号比特数)

  • 接收窗口尺寸:1 \< W_r \\leq W_(一般与发送窗口尺寸相同)

关键机制
  1. 逐一确认:接收方对每个正确接收到的分组进行单独确认,不再使用累积确认

  2. 选择性重传:发送方仅重传出现差错或超时的分组

  3. 失序接收:接收方可以先收下失序到达但无误码且序号落在接收窗口内的分组,等到缺失的分组收齐后再一并送交上层

特点
  • 信道利用率最高

  • 实现复杂

  • 适用于通信线路质量较差的场景

三、三大可靠传输协议对比汇总表

|--------|---------------|----------------------------|----------------------------|
| 对比维度 | 停止 - 等待协议 | 回退 N 帧协议(GBN) | 选择重传协议(SR) |
| 发送窗口尺寸 | W_t= | 1 \< W_t \\leq 2\^n - | 1 \< W_t \\leq 2\^{n-1 |
| 接收窗口尺寸 | W_r= | W_r= | 1 \< W_r \\leq W_ |
| 确认方式 | 逐个确认 | 累积确认 | 逐个确认 |
| 重传方式 | 重传出错或超时的单个分组 | 重传出错分组及其后续所有已发送分组 | 仅重传出错或超时的单个分组 |
| 信道利用率 | 最低 | 中等 | 最高 |
| 实现复杂度 | 最简单 | 中等 | 最复杂 |
| 适用场景 | 往返时间短、误码率低的链路 | 往返时间较长、误码率较低的链路 | 误码率较高的链路(如无线链路) |
| 主要缺点 | 信道利用率极低 | 重传冗余分组,浪费资源 | 实现复杂,需要更多缓存 |

四、重点知识回顾

  1. 传输差错的完整类型:比特差错、分组丢失、分组失序、分组重复,后三种主要出现在数据链路层以上

  2. 可靠传输的层次无关性:三种实现机制的原理适用于计算机网络体系结构的各层

  3. 窗口尺寸的限制

    1. 回退 N 帧协议:,否则无法分辨新旧分组

    2. 选择重传协议:,否则无法分辨新旧分组

  4. 超时重传时间的设置:一般略大于平均往返时间,运输层 TCP 的重传时间设置更为复杂

  5. 累积确认的优缺点:减少开销但不能及时反映接收情况

  6. 信道利用率的计算:停止 - 等待协议的信道利用率公式及影响因素

五、总结

可靠传输是计算机网络的核心问题之一,其本质是通过确认和重传机制来解决传输过程中的各种差错。停止 - 等待协议是最基础的实现方式,虽然简单但信道利用率极低;回退 N 帧协议通过流水线传输提高了信道利用率,但在误码率高的场景下会产生大量冗余重传;选择重传协议通过选择性重传进一步优化了性能,但实现复杂度也最高。

在实际应用中,不同的协议适用于不同的场景。例如,TCP 协议在运输层实现了可靠传输,其本质是选择重传协议的改进版本;而数据链路层的 PPP 协议则不提供可靠传输服务,将这一任务交给了上层。理解这三种协议的工作原理和优缺点,对于深入学习计算机网络协议至关重要。

相关推荐
luweis1 小时前
企智孪生 ETA (6.5 人机协同:定义“协作界面 (Collaboration UI)”)【杭州联保致新科技有限公司 卢伟舜】
网络·人工智能·科技·程序人生·创业创新·学习方法
专注VB编程开发20年1 小时前
上位机监控接收数据(从站)-Modbus TCP 从机(Slave)模式多站点设计
网络·网络协议·tcp/ip
上海云盾-小余2 小时前
游戏端口隐蔽防护:端口映射 + 高防集群拦截爆破实操指南
网络·安全·web安全·游戏
凯瑟琳.奥古斯特2 小时前
力扣1003题C++解法详解
开发语言·c++·算法·leetcode·职场和发展
计算机安禾2 小时前
【算法分析与设计】第48篇:流算法与数据概要技术
java·服务器·网络·数据库·算法
大学竞赛君2 小时前
第十六届蓝桥杯大赛软件赛决赛 Python 大学 A 组
python·职场和发展·蓝桥杯
代码中介商2 小时前
HTTP 完全指南(二):缓存机制深度详解
网络协议·http·缓存
戴西软件2 小时前
戴西CAxWorks.AICrash:AI+法规驱动的行人保护自动化分析
linux·运维·网络·人工智能·安全·自动化
internet Boy2 小时前
(第一阶段)计算机 & 网络基础知识
计算机网络