数据链路层之差错检测方法
一、差错检测定义
定义:检测数据在传输过程中是否发生了比特差错
二、差错检测的原因
原因:因为实际的通信链路不是理想的,比特在传输过程中可能会出现差错:1可能变成0,0可能变成1。
三、差错检测的方法
1).奇偶检验
1. 定义:
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的检验位在内)中 "1"的个数为奇数(奇校验)或偶数(偶校验)
2.实现过程:
a. 双方采用 奇校验:
发送方发送的数据:(1 0 1 1 0 1)
实际发送的数据为:(1 0 1 1 0 1 1 )
其中 1为校验位,奇校验--------保证“1”的个数为奇数。
若 传输过程产生1位误码 (第六位由 1 变为 0)
接收方接收的数据:(1 0 1 1 0 0 1)
此时 “1”的个数不是奇数
则 判定传输出错。
b. 双方采用 偶校验:
发送方发送的数据:(1 0 1 1 0 1)
实际发送的数据为:(1 0 1 1 0 1 0 )
其中 0为校验位,偶校验--------保证“1”的个数为偶数。
若 传输过程产生1位误码 (第五位由 0 变为 1)
接收方接收的数据:(1 0 1 1 1 1 0)
此时 “1”的个数不是偶数
则 判定传输出错。
3.缺点:
如果有奇数个位发生误码,则奇偶性发生变化,可以检出误码。
如果有偶数个位发生误码,则奇偶性不发生变化,不能检出误码。
举例:
以上述奇校验为例
若 传输过程产生2位误码
发送的数据为:(1 0 1 1 0 1 1 )
接收方 -----------(1 1 1 0 0 1 1 )
“1”的个数仍为 奇数 ,但是传输过程已经出错。