06-错误处理

网络设计第六问:错误处理------CRC、校验和、ARQ三重防线

一个 bit 在光纤上传输可能翻转。帧头坏了、包坏了、数据错了------哪一层负责发现?哪一层负责修复?这是差错控制的核心------不是一种算法管全部,是每一层各管各的错。

文章目录


一、物理层------CRC:帧级错误杀手

CRC(循环冗余校验)挂在帧尾------4 字节。以太网强制 CRC。交换机收到一个帧------算 CRC------和帧尾的值比对------不对→丢弃不走。

CRC 不是一定能检测所有错误------当错误模式恰好是 CRC 多项式的倍数时------通过(概率极低------32位 CRC 有 1/2³² 的概率误检)。但比没有 CRC 好------尤其是在误码率 1e-12 的光纤上------漏过的概率可以忽略。


二、传输层------校验和+重传

CRC 检测帧层的错。TCP 有自己的校验和------检测 TCP 段(header+data)的错。错了---不发送 ACK------对面超时------重传。

重传机制------ARQ(自动重传请求)------有三种:

  • 停等 ARQ:发一帧→等 ACK→发下一帧。最慢但最简------窗口=1
  • 回退 N ARQ:发 N 帧→如果第 K 帧丢了→ACK 丢失→发送端重传从第 K 帧开始的所有帧------后面的帧虽然到了但全丢弃。浪费带宽但简单
  • 选择重传 ARQ:只重传丢失的那一帧------效率最高但接收端需要缓存和排序------TCP 就是选传 ARQ

三、应用层------FEC(前向纠错)

CRC 和 ARQ 都是事后检测与补救------要么发现错了丢、要么重传。FEC 在发之前就加上冗余------即使途中有几个 bit 位错------接收端直接根据冗余位纠错------不需要重传。

这种机制最适合延迟极高的场景------深空通信(地球到火星的光速延迟几十分钟------重传等不起)。也用于卫星电视------观众单向接收------没有反向信道可发 NAK------只能靠 FEC。


四、为什么不用更高强度的纠错码

ARQ 需要反向信道------但在双向通信中是标准------错了一次就重传------简单。

FEC 不需要反向信道但带宽成本高------一个视频流加了卷码------带宽增加------但保证了恶劣信道的可收性。在正常的政务专线上------不需要------有双向信道------直接用 ARQ 就够了。


✅ 亮点:用 CRC→校验和→ARQ→FEC 的递进关系讲差错控制不是"一种技术管所有",解释了纠错码和重传在不同信道条件下各自的选择原因。扩展方向:5G 里的 Polar 码、LDPC 与 Turbo 码的工程差异。

相关推荐
小yu学编程6 个月前
TCP协议详解
服务器·网络·tcp/ip·tcp协议·网络原理·tcp特性
callJJ1 年前
JAVA网络编程——socket套接字的介绍上(详细)
网络·网络协议·tcp/ip·udp·socket·套接字·网络原理
码农派大星。2 年前
网络原理 TCP与UDP协议
网络·java-ee·多线程·tcp·网络原理
翁佳明2 年前
【网络原理】HTTPS | 对称加密 | 非对称加密 | 中间人攻击 | 证书 | 公钥 | 私钥
网络·网络协议·计算机网络·https·中间人攻击·网络原理
翁佳明2 年前
【网络原理】UDP协议 | UDP报文格式 | 校验和 | UDP的特点 | 应用层的自定义格式
udp·协议·网络原理·校验和·udp报文格式·数据报