计算机网络学习笔记——数据链路层功能和服务帧定位差错海明距离检错码和纠错码
Posted Couldhelp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络学习笔记——数据链路层功能和服务帧定位差错海明距离检错码和纠错码相关的知识,希望对你有一定的参考价值。
文章目录
前言
笔者系电子科技大学2019级在读本科生,针对本学期学校开设的计算机通信网课程,将学习笔记以博客形式上传到CSDN上以便日后复习整理,其中的瑕疵欢迎大家向我指正,在评论区多多交流讨论。
概念
一、链路层功能与服务
特点
- 相连-①通过通信信道道进行物理连接,没有“智能”的中介节点②特点:a.不乱序b.可能出错c.不会随机“插值”
- 可靠-差错:①评价信道-误码率(物理层)②评价链路-误帧率(链路层)③一定帧长下,误码率越高,误帧率越高
- 有效-①开销少②延时短
链路层效率定义
R(b/s)——信道容量,理想吞吐量
有效数据率
ni:第i个有效帧的bit数;T:测量总时间
链路层的功能和服务
服务:
- 无确认的无连接服务
- 有确认的无连接服务
- 有确认的面向连接服务
链路层功能
- 成帧:定位,标明起始与终止
- 差错检测与控制
- 流量控制
- 链路管理:建链、通信、拆链
二、成帧和帧同步(帧定位)
帧:一个完整的数据块
帧定位:从原始的bit流中提取出离散的帧
不同传输方式下的帧同步:
- 同步传输(Sync,连续bit流)bit流的起始和终止,没有帧传输时也存在bit流;一次传一个数据块(连续一串字符);收发双方同步;信道良好,高速传输
- 异步传输(Async,异步字节序列)一次只传输一个字符(8位),字符之间有不确定延时;收发双方不要求同步;使用信道质量较差
- 数据块传输方式(Block)若干字节构成一个连续的数据块,数据块前有若干先导bits
帧同步常用方法:
- 字节计数法
- 字符填充首尾定界法(面向字符)
- 位填充首位定界法(面向位)
- 物理层编码违例法
- 校验和法
[1]字节计数法
发方在每个帧头部中的第一个字段,标识该帧的长度,总共有多少字符数。
特点
- 优点:简单
- 缺点:一旦出错,无法再同步;一旦帧首标记符出错,无法正确检测后续所有帧;很少被使用
[2]字符填充首尾定界法
定界字符F=01111110;转义符(Esc)
发送-在所有通信控制字符(特殊字符)前增加转义符【包含转义符】
接收-(1)前面没有转移符的控制字符以控制符解释(2)前面有转义符的控制字符作为数据字符解释
[3]位填充首尾定界法
定界标志F(Flag)= ‘01111110’
位填充:实际传输数据中出现连续5个1直接插入0,然后接收方去掉0(便于用硬件移位实现)
[4]块传输与物理层违例编码定界法
块传输(数据块传输):(1)块长度可变(2)块间间隔可变
——看作是增强型的异步传输,速率高,应用有计算机网络电缆连接,以太网信号。
块传输每个块即为一个帧:前同步码(Preamble)+后同步码(Postmable)
违例编码法:利用信息bit流特性,用非正常码型进行位置界定(有NRZ、曼彻斯特、HDB3、以太网、SDH)
[5]校验和法
(PS:此处笔者仍然没有搞清楚校验和具体细节,故暂且将其归纳为两种不同的校验和方法,如有错误,欢迎指正)
块传输的校验和法:应用于帧长度固定、帧与帧首尾相接的传输中
ATM(帧长53字节-信元)两种校验和帧定位方法
①
②
优点:(1)无定界符开销(2)可靠性高
缺点:(1)有附加条件-固定信元(2)环境要求高-足够的寄存器、计算速度高
三、链路层的差错产生及类型
(一)产错产生的原因
1、衰减-信号随传播距离的增长,能量的消耗信号强度减弱到一定成都导致对方误判
2、失真-畸变,信号在传输过程中与原有信号相比发生的偏差
(1) 衰减失真-不同频率分量衰减不同在合成之后改变波形
(2) 时延失真-信号传播速度因频率不同,某个码元频率成分溢出到下一个码元,码元之间串扰而失真
3、噪声
(1) 白/热噪声
(2) 互/交调噪声——共享信道
(3) 串扰——相邻线路耦合
(4) 冲激噪声——开关电流冲激
(二)误码类型及影响
1、误码类型
(1)随机错-1位
(2)突发错-多位“连续”错(连续指错误位置距离较近)
PS:随机错更容易被发现
2、误码的影响
(1) 帧体错-内容错
(2) 帧界定错-帧数据不可信,可能连锁反应,信道失序——收发无法同步
(3)不会出现“插值”、复制、乱序错误
四、检错码和纠错码
(一)海明距离与误码检测
海明距离-两个码字中不同的位的个数
🔺通过增加冗余位(增加开销)来拉开海明距离
(1) 检验d比特错,需要距离为d+1的编码
(2) 纠正d比特错,需要距离为2d+1的编码
给定码长m,纠正1位错需要增加r位纠错码
🔺满足
(二)纠错码(前向纠错)
1、海明码(汉明码)
海明纠错码的位置:1,2,4,8……
(1) 计算纠错码,每一位的位置换算成2的幂次的和:x=2i+2j+……
凡是和里面包含2k的位共同参与2k的偶检验计算,然后决定海明纠错码的数值
(2) 接收方反过来计算校验位,错误的检测码的位置之和就是错误位
发送方纠错码的计算
接收方对纠错码进行校验
(三)检错码
1、奇偶校验
偶校验(even-parity):
①除校验位以外的其余位=1的个数为偶数——校验位=0
②除校验位以外的其余位=1的个数为奇数——校验位=1
奇校验(odd-parity):
①除校验位以外的其余位=1的个数为偶数——校验位=1
②除校验位以外的其余位=1的个数为奇数——校验位=0
PS:只能检测出奇数个误码,漏检率高
🔺纵横式冗余校验-海明距离为3
(黄色为原始数据,红色为校验位)
2、循环冗余校验(CRC校验)
步骤:假定有r位的数据位,CRC生成多项式位数为d
(1)在数据位后面添加d-1个0,构成r+d-1位作为被除数
(2)利用模2除法,除以d位生成多项式
(3)除到余数剩下d-1位为冗余校验码,以此校验码跟随在r位数据后面作为CRC校验码
(4)接收方将完整数据除以同一个CRC生成多项式:若余数为0,则数据位没有出错;反之,数据位出错
生成多项式的表示
常用生成式:CRC-12、CRC-16、CRC-CCITT——均含有x+1的因子
🔺校验能力
a. 所有的单位错
b. 所有的两位错
c. 所有奇数个位错
d. 所有突发长度小于等于r(r是校验和长度)
e. 突发错长大于r,有漏检率
特定:适合用硬件实现——得益于移位寄存器,方便进行模2除法
3、校验和
PS:区别帧定位中的校验和,此处校验和用于检错
步骤:
(1)以16位(2个字节)作为一个单元,依次累加
(2)将得到的累加值和进位值再相加得到一个16位的累加和
(3)将累加和取反作为校验码跟随在发送码串的末尾
(4)接收方校验时将所有位累加:若结果=0,则数据未出错;反之,则数据出错
🔺若码串长度为奇数,则在末尾添加一个全0字节进行累加,最后得到的结果需要交换两个字节,作为最终的校验和
检错能力:CRC16相当,但适合用于软件实现
参考资料
中国大学MOOC电子科技大学计算机通信网络
计算机网络(第五版) 清华大学出版社 严伟、潘爱民 译
以上是关于计算机网络学习笔记——数据链路层功能和服务帧定位差错海明距离检错码和纠错码的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络学习笔记——差错控制停等协议回退N帧选择性重传滑动窗口数据链路层HDLCPPP协议有限状态机