第一部分 差错、 差错检测(比特错)
概括来说,传输中的差错都是由噪声引起的。
一、原因:
1、全局性
由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
2、局部性
外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。
二、差错
1、位错:比特位出错,1变成0,变成1。
2、帧错(如:[#1]-[#2]-[#3])
丢失(收到[#1]-[#3])
重复(收到[#1]-[#2]-[#2]-[#3])
失序(收到[#1]-[#3]-[#2])
3、链路层为网络层提供服务
a、无确认无连接服务
通信质量好的有线传输链路
b、有确认无连接服务
c、有确认面向连接服务
第二部分 差错检测(检错编码)
一、奇偶校验码(n-1位信息元,1位校验元)
1、奇校验码
“1”的个数为奇数
2、偶校验码
“1”的个数为偶数
二、循环冗余码CRC
1、例子
发送端:
5(要传的数据)/2(生成多项式)=2......1(FCS帧检验序列/冗余码)
最终发送数据=要传的数据+冗余码5(要传的数据)/2(生成多项式)=2......1(FCS帧检验序列/冗余码)
接收端:
6(接收的数据)/2(生成多项式,同上的)=3......0
余数为0,判定这个帧无错,就接受;反之,判定这个帧有差错(无法确定到位),就丢弃。
2、计算冗余码
a、加0:假设生成多项式G(x)的阶为r,则加r个0;
例如:10011表示成多项式为X4+X1+X0=X4+X1+1,阶为4。(多项式N位,阶为N-1位)
b、模2除法:数据加0后除以多项式,余数为冗余码/FCS/CRC检验码的比特序列。
异或:同0异1
3、能够实现无比特差错的传输,但这还不是可靠传输。