9
比较: • 纠错码能自动纠正错误,但实现困难, 在一般通信场合不易采用。 • 检错码需通过重传机制达到纠错目的, 但工作原理简单,实现容易。
10
常用的检错码
• 奇偶校验码 垂直奇(偶)校验 水平奇(偶)校验水平 水平垂直奇(偶)校验(方阵码) 特点:方法简单,但检错能力差,只用于通信 要求较低的环境。 • 循环冗余编码CRC 目前应用最广的检错码编码方法之一
差错产生的过程如图:
数据信号 与噪声信号 叠加后的波形 采样时间 接收数据 原始数据 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0
出错的2位 (b)差错产生过程示意图
5
《计算机网络》第4章 数据链路层
物理线路的噪声分类: (1)热噪声: 由传输介质导体的电子热运动产生。 特点:时刻存在,幅度较小,强度与频率无关, 频谱很宽。 是一种随机噪声,由其引起的差错是随机差错。 (2)冲击噪声: 由外界电磁干扰引起。 •特点:幅度较大,是引起传输差错的主要原因。 •其引起的传输差错是一种突发差错。
实际发送: f(x)
.
x + R(x)
R'(x)= R(x) 接收正确 R'(x)≠ R(x) 接收错误
数据字段 校验字段 f(x)
.
x
k
+ R(x) 发送
12
《计算机网络》第4章 数据链路层
CRC校验的工作原理: • 任意一个由二进制位串组成的代码都可以和一个系数仅 为‘0’和‘1’取值的多项式一一对应。 • 例如:发送数据比特序列为10111,其对应的多项式为 f(x)=x4+x2+x+1. • 生成多项式为事先约定好的,如:G(x)=x4+x3+1;则对 应G(x)的二进制代码为: 11001 • f(x)﹒xk,k为生成多项式的最高幂值,即生成多项式 用二进制表示的位数-1。上例k=4=5-1。表示将发送数 据比特序列左移k位,用来存放余数。 • f(x)﹒xk/G(x),得到余数R(x) • 将f(x)﹒xk+R(x)作为整体,发送到接收端。 • 接收端用接收到的数据f′(x)采用相同的算法,去除 G(x),得到余数R′(x)。如果R′(x)等于 R(x),表示 发送没有出错。 13