计算机网络——32差错检测和纠正

差错检测和纠正

错误检测

EDC = 差错检测和纠错位(冗余位)
D = 数据由差错检测保护,可以包含头部字段
错误检测不是100%可靠的

  • 协议会泄露一些错误,但是很少
  • 更长的EDC字段可以得到更好的检测和纠正效果

在这里插入图片描述

奇偶校验

单bit奇偶校验

检测单个bit级错误

在这里插入图片描述

二维奇偶校检

检测和纠正单个bit错误

在这里插入图片描述

在这里插入图片描述

Internet校检和

目标:检测在传输报文时的错误(如位翻转),(注:仅仅用在传输层)
发送方

  • 将报文段看成16-bit整数
  • 报文段的校检和:和(1’的补码和)
  • 发送方将checksum的值放在’UDP校检和’字段

接收方

  • 计算接收到的报文段的校检和
  • 检查是否与携带校检和字段值一致
    • 不一致:检出错误
    • 一致:没有检出错误,但可能还是有错误

有更简单的检查方法:全部加起来看是不是全1

检验和:CRC(循环冗余校检)

  • 强大的差错检测码
  • 将数据比特 D 看成是二进制的数据
  • 生成多项式 G :双方协商r + 1模式(r次方)
    • 生成和检查所使用的位模式
  • 目标:选择r位CRC附加位R,使得
    • <D,R>正好被G整除(modulo 2)
    • 接收方知道G,将<D,R>除以G,如果非0余数:检查出错误
    • 能检出所有少于r + 1位的突发错误
  • 实际中广泛使用(以太网、802.11 WiFi、ATM)

在这里插入图片描述

CRC例子

需要:
D ⋅ 2 r × O R R = n G D\cdot 2^r \times OR R = nG D2r×ORR=nG
等价于:
D ⋅ 2 r = n G × O R R D\cdot 2^r = nG \times OR R D2r=nG×ORR
等价于:
两边同除G
得到余数 R = … R = \dots R=

R = r e m a i n d e r [ D ⋅ 2 r G ] R =remainder \begin{bmatrix} \frac{D\cdot 2^r}{G} \end{bmatrix} R=remainder[GD2r]

最后求得:
在这里插入图片描述

CRC性能分析

  • 突发错误和突发长度
  • CRC检错性能描述
    • 能够检查出所有的1bit错误
    • 能够检查出所有的双bit的错误
    • 能够检测出所有长度 = r或者 <r 位的错误
    • 出现长度为r + 1的突发错误,检查不出的概率是
      1 2 r − 1 \frac{1}{2^{r-1}} 2r11
    • 出现长度大于r + 1的突发错误,检查不出的概率
      1 2 r \frac{1}{2^r} 2r1
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值