自学小记_5(网络通信-差错控制技术)
来源:互联网 发布:vivo手机怎么改mac地址 编辑:程序博客网 时间:2024/06/05 08:54
差错控制技术:由外部或内部噪声引起的差错:随机差错/突发差错:
差错处理原理:
发送A,B,使用二进制编码:
___________________________________________
发送端 接收端
A 1 0
---A->0->
B 0 0
不具纠检错功能;
___________________________________________
发送端 接收端
A 11 10
---A->10->
B 00 00
具备检错,不具备纠错 ;___________________________________________
发送端 接收端
A 111 101-->111
---A->101->
B 000 000
具备检错纠错;传输效率依次降低:
差错控制方式:
自动请求重发ARQ:接收端发现信息有误自动请求发送端保存的副本-->需要发送端将数据列编成可以检测错误的码;
向前纠错FEC:接收端发现信息有误自动计算纠错-->需要发送端将数据列编成可以检测错误的码;
混合方式:ATM采用,数量差错自动纠错,超过纠错能力请求重发;
信息反馈IRQ:接收完成由反向信道发送发送端,发送端纠错后再发接收端,直到没有发现错误为止;
3,当前码的构型可分为:积卷码和分组码:
分组码:k个码元一组,产生r个监督码元,(n,k)码-->监督位是本码组;常用分组码:恒比码,垂直水平奇偶校验码,汉明码,循环冗余校验码--(数据链路较为普遍);
积卷码:监督位不只是本码组信息位,还与前面若干个码组的信息位有关-->监督码元相互监督,又称连环码;
3.1 奇偶校验码:
奇校验:不论信息位为多少位,检验位为1位,加入该位后码字所含总的‘1’为奇数个;
偶校验:不论信息位为多少位,检验位为1位,加入该位后码字所含总的‘1’为偶数个;
使用简单,纠错能力有限,只能检出奇数个错码,不适用于突发性差错;其衍生的垂直水平奇偶校验码,计数校验码,斜校法校验码,均属于二维奇偶校验码,适用于检测突发差错;
3.2,汉明码:码长n,信息位k,检验位r;其中每个检验位与某几个信息位构成偶校验关系,接收端对r个奇偶关系进行校验,将每个检验位与他关联的信息位进行异或,结果就称为校正因子,无误的话r个校正因子都是0;如果不全为0也可以定位是那个码字的什么位置;
可能差错的位置:2^r>=k+r+1;以k=4说明:
n=7=>7个码元S1,S2,S3为校验因子:
S1 S2 S3 差错码位置
0 0 0 无
0 0 1 C0
0 1 0 C1
1 0 0 C2
0 1 1 C3
1 0 1 C4
1 1 0 C5
1 1 1 C6
当出错码位于C2,4,5,6时S1为1,否则S1为0;=>4个码元构成的奇偶关系;同理:
当出错码位于C1,3,5,6时S2为1,否则S2为0;
当出错码位于C0,2,4,6时S3为1,否则S3为0;
发送端的C6,5,4,3信息位取决于输入数据,C2,1,0根据信息位的值按检验位关系确定,如果编码的码组无差错,S1,2,3应为0;
=》
C2+C4+C5+C6=0
C1+C3+C5+C6=0
C0+C3+C4+C6=0
=》
C2=C4+C5+C6
C1=C3+C5+C6
C0=C3+C4+C6
=》
C2=1
C1=1 =》发送码字1000111
C0=1
判断接收端收到->0000011是否有误:S=S1S2S3=011=C3=>原码字:0001;
3.3,循环冗余校验码:CRC一组分组码:
特性:1个码中任何两个许用码组按模2相加后形成新的系列仍为一个许用码组;相同则为全0系列,所以循环冗余校验码一定包含全0码字;
1个许用码组,每次循环移位的结果一定也是码字集合中的另一个许用码组;
编码步骤:
1,求M(x)对应的码字,可先求M(x),在求x^n-k;
2,所求码字被G(x)除,求余式;
3,x^rM(x)+R(x)就是所求码字;
假设生成多项式:G(x)=x^3+x+1,构成(7,4)循环冗余校验码,待编码的信息为1101,对应的信息多项式M(x)=x^3+x+1==》R(x)系列001;
x^3M(x)+R(x)=x^6+x^5+x^3+1;==>1101001;
接收端是用生成多项式:G(x)除接收下来的,x^rM(x)+R(x),能整除表示无差错;如:接收端 1101001,G(x) 1011,可除尽;若接收端 1111001,长除后得到余式R(x),传输有误;-->只具备检错功能;
实例:一个报文系列1101011011,通过数据链路传输,采用CRC进行差错检测,所用生成多项式G(x)=x^4+x+1;
说明CRC码产生过程及产生的发送系列;
CRC码的检测过程;
解:生成多项式编码:10011,r=4;检验码是4位
1101011011左移4位=》1101011011*2^4;生成多项式模2除,
11010110110000/10011=1100001010余1110
发送系列:11010110110000+1110=11010110111110;
译码:无差错11010110111110/10011=1100001010余0;
有差错11010110110110/10011=1100001010余1000;
数据链路中的帧校验系列使用的就是循环冗余码;
- 自学小记_5(网络通信-差错控制技术)
- 差错控制
- 网络通信原理小记
- 网络协议系列之八:TCP差错控制
- 差错控制编码
- 违例差错控制
- 3.3 差错控制
- TCP差错控制
- 差错控制-CRC校验
- 违例差错控制
- 《数据通信与网络》笔记--数据链路层的差错控制协议
- TCP协议之差错控制
- zmq技术--网络通信
- Android网络通信技术
- TCP流量控制,拥塞控制,差错控制
- 自学小记_2(几种数据传输技术)
- 差错检测和纠错技术
- Android中网络通信技术
- 超级账本-面向企业的分布式账本
- c++ primer 13.13练习(构造,拷贝,析构函数何时发生详解)
- 如何实现反向代理?与正向代理的区别以及Nginx 反向代理优势
- 【Linux基础之简单的日志切割】nginx日志切割及清理
- 爬虫的DNS缓存
- 自学小记_5(网络通信-差错控制技术)
- SILICON LABS收购领先RTOS厂商ucos
- 本机WEB服务器搭建
- sql 列按照字符分割转行
- 随机UUID的生成
- java并发编程实战(二)
- mysql--14000常用函数
- cocos2d-x开发环境搭建
- Question question = Problems at work;