logo
导航

流量控制与可靠传输

流量控制与可靠传输

1. 流量控制概述

流量控制是数据链路层的重要功能,用于防止发送方发送过快导致接收方缓冲区溢出。

流量控制的目的

  • 防止接收方缓冲区溢出
  • 确保数据传输的可靠性
  • 提高网络整体性能

2. 停止-等待协议

基本原理

  • 发送方发送一帧后,等待接收方的确认
  • 收到确认后才发送下一帧
  • 如果超时未收到确认,则重传

特点

  • 优点:实现简单,控制容易
  • 缺点:效率低,信道利用率不高
  • 适用场景:对可靠性要求高,对效率要求不高的场合

性能分析

  • 信道利用率 = 传输时间 / (传输时间 + 传播时间 × 2)
  • 当传播时间远大于传输时间时,利用率很低

3. 滑动窗口协议

基本原理

  • 允许发送方在收到确认前发送多个帧
  • 使用窗口机制控制发送的帧数
  • 接收方也有接收窗口,控制接收的帧数

窗口机制

  • 发送窗口:允许发送但未确认的帧范围
  • 接收窗口:允许接收的帧范围
  • 窗口大小:影响传输效率和可靠性

4. 后退 N 帧协议(GBN)

基本原理

  • 发送方维护一个发送窗口
  • 接收方只按序接收帧
  • 出错时,发送方重传出错帧及其后所有帧

特点

  • 优点:实现相对简单,接收方处理简单
  • 缺点:可能重传已经正确接收的帧
  • 适用场景:错误率较低的网络环境

工作流程

  1. 发送方发送窗口内的帧
  2. 接收方按序接收,发送 ACK
  3. 发送方收到 ACK 后,窗口向前滑动
  4. 如果某帧出错,发送方重传该帧及后续所有帧

5. 选择重传协议(SR)

基本原理

  • 接收方缓存乱序到达的帧
  • 发送方只重传出错的帧
  • 接收方按序交付给上层

特点

  • 优点:只重传出错帧,效率高
  • 缺点:接收方需要缓存,实现复杂
  • 适用场景:错误率较高的网络环境

工作流程

  1. 发送方发送窗口内的帧
  2. 接收方接收帧,发送 ACK(可能乱序)
  3. 发送方收到 ACK 后,窗口向前滑动
  4. 如果某帧出错,只重传该帧

6. 协议比较

协议发送窗口接收窗口重传策略效率复杂度
停止-等待11重传当前帧简单
GBN>11重传当前及后续帧中等中等
SR>1>1只重传出错帧复杂

练习题

练习 1

滑动窗口协议与停止-等待协议有何区别?

参考答案

主要区别:

  1. 发送策略

    • 停止-等待:每次只发送一帧,等待确认
    • 滑动窗口:可以发送多帧,无需等待确认
  2. 窗口大小

    • 停止-等待:发送窗口=1,接收窗口=1
    • 滑动窗口:发送窗口>1,接收窗口 ≥1
  3. 效率

    • 停止-等待:效率低,信道利用率不高
    • 滑动窗口:效率高,信道利用率高
  4. 复杂度

    • 停止-等待:实现简单
    • 滑动窗口:实现相对复杂

练习 2

GBN 和 SR 协议的主要区别是什么?

参考答案

主要区别:

  1. 接收窗口

    • GBN:接收窗口=1,只按序接收
    • SR:接收窗口>1,可以缓存乱序帧
  2. 重传策略

    • GBN:重传出错帧及其后所有帧
    • SR:只重传出错帧
  3. 效率

    • GBN:可能重传已正确接收的帧,效率较低
    • SR:只重传出错帧,效率较高
  4. 复杂度

    • GBN:接收方处理简单
    • SR:接收方需要缓存,实现复杂