流量控制与可靠传输
流量控制与可靠传输
1. 流量控制概述
流量控制是数据链路层的重要功能,用于防止发送方发送过快导致接收方缓冲区溢出。
流量控制的目的
- 防止接收方缓冲区溢出
- 确保数据传输的可靠性
- 提高网络整体性能
2. 停止-等待协议
基本原理
- 发送方发送一帧后,等待接收方的确认
- 收到确认后才发送下一帧
- 如果超时未收到确认,则重传
特点
- 优点:实现简单,控制容易
- 缺点:效率低,信道利用率不高
- 适用场景:对可靠性要求高,对效率要求不高的场合
性能分析
- 信道利用率 = 传输时间 / (传输时间 + 传播时间 × 2)
- 当传播时间远大于传输时间时,利用率很低
3. 滑动窗口协议
基本原理
- 允许发送方在收到确认前发送多个帧
- 使用窗口机制控制发送的帧数
- 接收方也有接收窗口,控制接收的帧数
窗口机制
- 发送窗口:允许发送但未确认的帧范围
- 接收窗口:允许接收的帧范围
- 窗口大小:影响传输效率和可靠性
4. 后退 N 帧协议(GBN)
基本原理
- 发送方维护一个发送窗口
- 接收方只按序接收帧
- 出错时,发送方重传出错帧及其后所有帧
特点
- 优点:实现相对简单,接收方处理简单
- 缺点:可能重传已经正确接收的帧
- 适用场景:错误率较低的网络环境
工作流程
- 发送方发送窗口内的帧
- 接收方按序接收,发送 ACK
- 发送方收到 ACK 后,窗口向前滑动
- 如果某帧出错,发送方重传该帧及后续所有帧
5. 选择重传协议(SR)
基本原理
- 接收方缓存乱序到达的帧
- 发送方只重传出错的帧
- 接收方按序交付给上层
特点
- 优点:只重传出错帧,效率高
- 缺点:接收方需要缓存,实现复杂
- 适用场景:错误率较高的网络环境
工作流程
- 发送方发送窗口内的帧
- 接收方接收帧,发送 ACK(可能乱序)
- 发送方收到 ACK 后,窗口向前滑动
- 如果某帧出错,只重传该帧
6. 协议比较
协议 | 发送窗口 | 接收窗口 | 重传策略 | 效率 | 复杂度 |
---|---|---|---|---|---|
停止-等待 | 1 | 1 | 重传当前帧 | 低 | 简单 |
GBN | >1 | 1 | 重传当前及后续帧 | 中等 | 中等 |
SR | >1 | >1 | 只重传出错帧 | 高 | 复杂 |
练习题
练习 1
滑动窗口协议与停止-等待协议有何区别?
参考答案
主要区别:
-
发送策略:
- 停止-等待:每次只发送一帧,等待确认
- 滑动窗口:可以发送多帧,无需等待确认
-
窗口大小:
- 停止-等待:发送窗口=1,接收窗口=1
- 滑动窗口:发送窗口>1,接收窗口 ≥1
-
效率:
- 停止-等待:效率低,信道利用率不高
- 滑动窗口:效率高,信道利用率高
-
复杂度:
- 停止-等待:实现简单
- 滑动窗口:实现相对复杂
练习 2
GBN 和 SR 协议的主要区别是什么?
参考答案
主要区别:
-
接收窗口:
- GBN:接收窗口=1,只按序接收
- SR:接收窗口>1,可以缓存乱序帧
-
重传策略:
- GBN:重传出错帧及其后所有帧
- SR:只重传出错帧
-
效率:
- GBN:可能重传已正确接收的帧,效率较低
- SR:只重传出错帧,效率较高
-
复杂度:
- GBN:接收方处理简单
- SR:接收方需要缓存,实现复杂