可靠传输是指发送方发送什么,接收方就收到什么。在数据链路层,主要通过确认和重传机制实现。
关键机制 重点
- 确认 (ACK):接收方告诉发送方分组已正确接收。
- 否定确认 (NAK):接收方告诉发送方分组未正确接收。
- 超时计时器:发送方发送分组后启动,若规定时间内未收到确认,则重传。
- 序号:用于区分新分组与重传的分组,防止重复。
- 流水线技术:允许在未收到确认前连续发送多个分组,提高信道利用率。
停止-等待协议
- 发送方每发送一帧,就停止发送,等待接收方的确认帧。
- 只有收到确认帧后,才发送下一帧。
- 若规定时间内(超时)未收到确认,则重传当前帧。
特点
- 优点:简单。
- 缺点:信道利用率极低。 重点
- 信道利用率 ( 为帧发送时延, 为单程传播时延)。
帧编号
指向原始笔记的链接
- 为了区分重复帧,只需 1 bit 序号(0 和 1)即可。
后退N帧协议
- 发送方连续发送多个帧(受发送窗口 限制)。
- 接收方只按序接收帧。若收到乱序帧,则丢弃,并对已收到的按序最高帧发回确认。
- 发送方若收到某帧的超时,或收到 NAK,则必须重传该帧及其后的所有已发送帧。
特点 重点
指向原始笔记的链接
- 接收窗口大小 。
- 若采用 位编号,则发送窗口限制为 。
- 缺点:信道误码率高时,会导致大量不必要的重复传输。
选择重传协议
- 接收方设有缓存,允许接收乱序帧。
- 只有出错的帧才需要重传。
- 接收方收到乱序帧后先缓存,待缺失帧到达后一并交给上层。
特点 重点
指向原始笔记的链接
- 接收窗口大小 。
- 窗口大小限制:(通常取 )。
- 提高了信道利用率,但增加了接收端缓存复杂性。
滑动窗口协议
滑动窗口协议用于对发送方进行流量控制。
窗口大小
- 发送窗口 :在未收到确认前,发送方最多可连续发送的帧数。
- 接收窗口 :接收方允许接收的帧序号范围。
核心特性
指向原始笔记的链接
- 只有接收窗口向前滑动(发送确认)时,发送窗口才可能向前滑动。 重点
- 当 时,即为停止 - 等待协议。
协议比较 重点
| 协议 | 发送窗口 () | 接收窗口 () | 序号 与窗口关系 |
|---|---|---|---|
| 停止 - 等待 (SW) | 1 | 1 | () |
| 后退 N 帧 (GBN) | 1 | ||
| 选择重传 (SR) | , 通常 |