检验举例 收到码字001101000 lo I2 I3 00111010000 o=ro+l0+I1+13+14+16=0+1+1+1+0+0=1 S1=r1+0+12+13+ls+l6=0+1+0+1+0+0=0 S2=r2+I1+I2+13=1+1+0+1 3=r3+I4+ls+l6=0+0+0+0=0 错误位置:S=0101=5 比特5有错,正确码字应为001101000
检验举例 收到码字00111010000: r0 r1 I0 r2 I1 I2 I3 r3 I4 I5 I6 0 0 1 1 1 0 1 0 0 0 0 S0 = r0 + I0 + I1 + I3 + I4 + I6 = 0 + 1 + 1 + 1 + 0 + 0 = 1 S1 = r1 + I0 + I2 + I3 + I5 + I6 = 0 + 1 + 0 + 1 + 0 + 0 = 0 S2 = r2 + I1 + I2 + I3 = 1 + 1 + 0 +1 = 1 S3 = r3 + I4 + I5 + I6 = 0 + 0 + 0 + 0 = 0 错误位置:S = 0101 = 5 比特5有错,正确码字应为00110010000
22循环冗余码(CRC码) CRC是一种多项式编码,它将位串看成是某个一元多项式的系数,如 1011001看成是一元多项式X6+X4+X3+1的系数。 信息多项式M(x):由m个信息比特为系数构成的多项式。 冗余多项式R(x):由r个冗余比特为系数构成的多项式。 码多项式I(x):在m个信息比特后加上r个冗余比特构成的码字所对应 的多项式,表达式为T(x)=xM(x)+R(x) 生成多项式G(x):双方预先确定用来计算R(x)的一个多项式。 编码方法:用对应于G(x)的位串去除对应于xM(x)的位串,所得的余 式即为R(x),将其附加到信息比特串的后面一起发送 检错方法:用对应于G(x)的位串去除对应于T(x)的位串,若余式为0 则认为传输正确,否则认为传输错误。 CRC码检错能力强,实现简单快捷,是应用最广泛的检错码
2.2 循环冗余码(CRC码) CRC是一种多项式编码,它将位串看成是某个一元多项式的系数,如 1011001看成是一元多项式X6 + X4 + X3 + 1的系数。 信息多项式M(x):由m个信息比特为系数构成的多项式。 冗余多项式R(x):由r个冗余比特为系数构成的多项式。 码多项式T(x):在m个信息比特后加上r个冗余比特构成的码字所对应 的多项式,表达式为T(x) = x r·M(x) + R(x)。 生成多项式G(x):双方预先确定用来计算R(x)的一个多项式。 编码方法:用对应于G(x)的位串去除对应于x r·M(x)的位串,所得的余 式即为R(x),将其附加到信息比特串的后面一起发送。 检错方法:用对应于G(x)的位串去除对应于T(x)的位串,若余式为0 则认为传输正确,否则认为传输错误。 CRC码检错能力强,实现简单快捷,是应用最广泛的检错码
CRC编码及校验 例1:G(X)=X4+Ⅹ+1,对1011001,行CRC编码,为1011001100 例2:仍取G(X)=X4X+1,判断收到的位串10010111否有错? 10101100 10001110 10011101100110000 10011100101111001 10011 10011 10101 0011 10011 1010 1000 001 0011 10010 10110 10011 0011 0100 1011 (a)囗口囗口CRC囗 (b)百囗口 3-6CRC囗囗囗
CRC编码及校验 例1:G(X) = X4 + X + 1,对10110011进行CRC编码,为101100110100。 例2:仍取G(X) = X4 + X + 1,判断收到的位串100101111001是否有错? 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 (a) 计 计 计 计 计 CRC计 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 计 3-6 CRC计 计 计 计 (b) 计 计 计 计 计 计 计 计
常见的CRC多项式 CRC C(x) CRC-8 X8+Ⅹ2+X1+1 CRC-10 X10+X+X5+X4+X1+1 CRC-12 X12+x+X3+X2+1 CRC-16 X16+Ⅹ15+X2+1 CRC-CCITT X6+12+X5+ CRC-32 Ⅹ32+Ⅹ26+Ⅹ23+Ⅹ2+X16+X2+Ⅺl+X10+X8+X7+X5+X4+X2+Xl+1
常见的CRC多项式 CRC C(x) CRC-8 X8 + X2 + X1 + 1 CRC-10 X10 + X9 + X5 + X4 + X1 + 1 CRC-12 X12 + X11 + X3 + X2 + 1 CRC-16 X16 + X15 + X2 + 1 CRC-CCITT X16 + X12 + X5 + 1 CRC-32 X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X1 + 1
3可靠交付 差错恢复的两种办法: 使用纠错码,由接收端自动纠正错误。 使用检错码,采用自动重传请求(ARQ)保证可靠交 付。这是数据链路层(及传输层)上最常使用的可靠 交付方式。 自动重传请求( Automatic Repeat request) 使用确认和超时实现可靠传输的策略。 两种ARQ方案 停等算法 滑动窗口算法
3 可靠交付 差错恢复的两种办法: 使用纠错码,由接收端自动纠正错误。 使用检错码,采用自动重传请求(ARQ)保证可靠交 付。这是数据链路层(及传输层)上最常使用的可靠 交付方式。 自动重传请求(Automatic Repeat Request): 使用确认和超时实现可靠传输的策略。 两种ARQ方案: 停-等算法 滑动窗口算法