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 的三种主要类型:
- 停止-等待 ARQ:
• 发送方发送一帧后等待 ACK,如果未收到 ACK 或收到 NACK(Negative Acknowledgment),则重新发送该帧。
- 回退 N 帧 ARQ(Go-Back-N ARQ):
• 发送方允许连续发送多个帧,但如果某帧出错,需要重新发送该帧及其之后的所有帧。
- 选择性重传 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