Introduction

The need for flow and error control

Link control mechanisms

Performance of ARQ (Automatic Repeat Request)

以下是对 “Link-Level Flow and Error” 的详细解读,包括流量控制与错误控制的必要性、链路控制机制,以及自动重传请求(ARQ)的性能分析。

一、引言(Introduction)

1. 什么是 Link-Level Flow and Error Control?

Link-Level Flow Control(链路层流量控制)

• 确保在链路层(数据链路层)上传输的数据量不会超过接收方的处理能力。

• 防止发送方发送过快导致接收方缓冲区溢出。

Link-Level Error Control(链路层错误控制)

• 通过检测和纠正错误,确保链路层传输的数据帧的可靠性。

• 主要解决数据在传输过程中由于噪声、干扰等原因产生的比特错误或帧丢失问题。

2. 为什么需要流量控制和错误控制?

a. 流量控制的必要性

接收方的能力有限

• 接收方的处理能力或缓冲区大小是有限的,过多的数据会导致缓冲区溢出,从而丢失数据。

发送方的传输速率可能过快

• 如果发送方未考虑接收方的能力,可能会导致数据丢失或重复发送,浪费带宽。

b. 错误控制的必要性

通信环境中错误的不可避免性

• 在物理链路上传输时,由于噪声、干扰或链路质量差,数据可能发生比特翻转、帧丢失等问题。

需要可靠的传输

• 大多数应用需要数据的完整性,即数据必须按照正确的顺序和内容被接收。

二、链路控制机制(Link Control Mechanisms)

链路控制机制用于实现流量控制和错误控制,主要包括以下技术:

1. 流量控制机制

a. 停止-等待协议(Stop-and-Wait Protocol)

机制

• 发送方每次发送一帧后,等待接收方的确认(ACK)才能继续发送下一帧。

优点

• 简单易实现。

• 确保不会溢出接收方缓冲区。

缺点

• 传输效率低,尤其是链路延迟较大时,发送方需要等待较长时间。

b. 滑动窗口协议(Sliding Window Protocol)

机制

• 发送方维护一个窗口,允许在收到确认之前连续发送多个帧。

• 窗口大小由接收方的缓冲区大小和协议的设计决定。

优点

• 提高链路利用率,特别是高延迟网络。

• 动态调整发送速率以适应接收方能力。

缺点

• 实现较复杂,需要更多的缓冲和序列号管理。

2. 错误控制机制

a. 检错和纠错技术

校验和(Checksum)

• 在帧尾部添加校验位,用于检测数据是否发生错误。

循环冗余校验(Cyclic Redundancy Check, CRC)

• 高效的错误检测算法,广泛用于链路层协议。

前向纠错(Forward Error Correction, FEC)

• 发送方在数据中加入纠错码,接收方可根据纠错码自行修复错误,无需重传。

b. 自动重传请求(Automatic Repeat Request, ARQ)

• ARQ 是链路层实现错误控制的关键机制,主要通过检测错误并请求重新发送来保证数据可靠性。

ARQ 的三种主要类型

  1. 停止-等待 ARQ

• 发送方发送一帧后等待 ACK,如果未收到 ACK 或收到 NACK(Negative Acknowledgment),则重新发送该帧。

  1. 回退 N 帧 ARQ(Go-Back-N ARQ)

• 发送方允许连续发送多个帧,但如果某帧出错,需要重新发送该帧及其之后的所有帧。

  1. 选择性重传 ARQ(Selective Repeat ARQ)

• 只重新发送出错的帧,接收方能缓冲正确接收的帧。

三、ARQ 的性能分析(Performance of ARQ)

ARQ 的性能直接影响链路层的传输效率,受多种因素的影响:

1. 停止-等待 ARQ 的性能

主要特性

• 简单,适用于低延迟、低错误率的链路。

• 在高延迟链路中,效率较低。

性能公式

$\text{Efficiency} = \frac{\text{Transmission Time for a Frame}}{\text{Transmission Time for a Frame} + \text{Propagation Delay}}$

分析

• 随着链路延迟的增加,效率迅速降低。

• 适合短距离通信。

2. 回退 N 帧 ARQ(Go-Back-N ARQ)的性能

主要特性

• 提高了传输效率,但可能浪费带宽(因为错误后需要重新发送多个帧)。

• 适用于中等错误率的链路。

窗口大小的影响

• 窗口大小越大,链路利用率越高,但需要更多的缓冲区空间。

性能分析

• 如果错误发生率较高,则会频繁触发回退操作,导致传输效率下降。

3. 选择性重传 ARQ(Selective Repeat ARQ)的性能

主要特性

• 高效,只需重传出错帧,无需重传其他正确接收的帧。

• 需要发送方和接收方维护较复杂的缓存和序列号管理。

适用场景

• 高延迟、高错误率的链路。

性能分析

• 能最大化链路利用率,但实现复杂度较高。

4. 性能优化因素

错误率(Bit Error Rate, BER)

• 错误率越高,ARQ 机制的重传次数越多,性能下降。

• 低错误率下,ARQ 能有效提高数据传输的可靠性。

链路延迟(Latency)

• 高延迟链路中,停止-等待 ARQ 的效率很低,而滑动窗口协议可以显著提高效率。

窗口大小

• 在滑动窗口协议中,窗口大小对链路利用率有直接影响,但过大的窗口会增加实现复杂性。

四、链路层流量与错误控制的实际应用

1. 局域网(LAN)

• LAN 环境中,链路质量较高,延迟较低,通常使用简单的流量和错误控制机制,例如停止-等待协议和 CRC。

2. 广域网(WAN)

• WAN 环境中,由于链路延迟较大且错误率较高,通常需要使用滑动窗口协议和选择性重传 ARQ,以提高效率和可靠性。

3. 无线通信

• 无线链路受干扰和误码率影响较大,需要结合 FEC 和 ARQ 提高传输质量。

五、总结

流量控制与错误控制的必要性

Flow Control and Error Control

Fundamental mechanisms that determine performance

Can be implemented at different levels: link, network, or application

Difficult to model performance

Simplest case: point-to-point link

– Constant propagation

– Constant data rate

– Probabilistic error rate

– Traffic characteristics

以下是对**“Flow Control and Error Control”**的详细解读,涵盖流量控制与错误控制的基本机制、不同实现层级,以及如何在简单情况下分析其性能。

Flow Control

Limits the amount or rate of data that is sent

Reasons:

– Source may send PDUs faster than destination can process headers

– Higher-level protocol user at destination may be slow in retrieving data