4.1数据链路层功能 校验码按功能的不同被分为纠错码和检错码。纠错码不 仅能发现传输中的错误,还能利用纠错码中的信息自动纠 正错误,其对应的差错控制措施为自动前向纠错。汉明编 码( Hamming code)为典型的纠错码,具有很高的纠 错能力。检错码只能用来发现传输中的错误,但不能自动 纠正所发现的错误,需要通过反馈重发来纠错。常见的检 错码有奇偶校验码和循环冗余校验码。目前计算机网络通 信中大多采用检错码方案。 2021年2月23日星期二11时45分46 司p计算机网络技术实用教程(第3版)
2021年2月23日星期二11时45分46 秒 计算机网络技术实用教程(第3版) 4.1 数据链路层功能 校验码按功能的不同被分为纠错码和检错码。纠错码不 仅能发现传输中的错误,还能利用纠错码中的信息自动纠 正错误,其对应的差错控制措施为自动前向纠错。汉明编 码(Hamming code)为典型的纠错码,具有很高的纠 错能力。检错码只能用来发现传输中的错误,但不能自动 纠正所发现的错误,需要通过反馈重发来纠错。常见的检 错码有奇偶校验码和循环冗余校验码。目前计算机网络通 信中大多采用检错码方案
4.1数据链路层功能 2.常见检错码 (1)奇偶校验码 奇偶校验的规则是在原数据位后附加一个校验位,将其值 置为“0”或“1”,使附加该位后的整个数据码中“1”的 个数成为奇数或偶数。使用奇数个“1”进行校验的方案被 称为奇校验;对应于偶数个“1”的校验方案被称为偶校验。 奇偶校验有三种使用方式,即水平奇偶校验、垂直奇偶校验 和水平垂直奇偶校验。下面以奇校验为例进行介绍。 水平奇校验码是指在面向字符的数据传输中,在每个字符 的7位信息码后附加一个校验位“0”或“1”,使整个字符 中二进制位“1”的个数为奇数。 2021年2月23日星期二11时45分46 司p计算机网络技术实用教程(第3版)
2021年2月23日星期二11时45分46 秒 计算机网络技术实用教程(第3版) 4.1 数据链路层功能 2. 常见检错码 (1) 奇偶校验码 奇偶校验的规则是在原数据位后附加一个校验位,将其值 置为“0”或“1”,使附加该位后的整个数据码中“1”的 个数成为奇数或偶数。使用奇数个“1”进行校验的方案被 称为奇校验;对应于偶数个“1”的校验方案被称为偶校验。 奇偶校验有三种使用方式,即水平奇偶校验、垂直奇偶校验 和水平垂直奇偶校验。下面以奇校验为例进行介绍。 水平奇校验码是指在面向字符的数据传输中,在每个字符 的7 位信息码后附加一个校验位“0”或“1”,使整个字符 中二进制位“1”的个数为奇数
4.1数据链路层功能 例如,设待传送字符的比特序列为“110001”,则采用奇校 验码后的比特序列形式为“11000010”。接收方在收到所传送 的比特序列后,通过检查序列中的“1”的个数是否仍为奇数来 判断传输是否发生了错误。若比特在传送过程中发生错误,就 可能会出现“1”的个数不为奇数的情况。水平奇校验只能发现 字符传输中的奇数位错,而不能发现偶数位错。例如上述发送 序列“11000010”,若接收端收到“11001010”,则可以校验 出错误,因为有一位“0”变成了“1”;但是若收到 “11011010”,则不能识别出错误;因为有两位“0”变成了 “1”。不难理解,水平偶校验也存在同样的问题。 为了提高奇偶校验码的检错能力,引入了水平垂直奇偶校验, 即由水平奇偶校验和垂直奇偶校验综合构成。 2021年2月23日星期二11时45分46 司p计算机网络技术实用教程(第3版)
2021年2月23日星期二11时45分46 秒 计算机网络技术实用教程(第3版) 4.1 数据链路层功能 例如,设待传送字符的比特序列为“1100001”,则采用奇校 验码后的比特序列形式为“11000010”。接收方在收到所传送 的比特序列后,通过检查序列中的“1”的个数是否仍为奇数来 判断传输是否发生了错误。若比特在传送过程中发生错误,就 可能会出现“1”的个数不为奇数的情况。水平奇校验只能发现 字符传输中的奇数位错,而不能发现偶数位错。例如上述发送 序列“11000010”,若接收端收到“11001010”,则可以校验 出错误,因为有一位“0”变成了“1”;但是若收到 “11011010”,则不能识别出错误;因为有两位“0”变成了 “1”。不难理解,水平偶校验也存在同样的问题。 为了提高奇偶校验码的检错能力,引入了水平垂直奇偶校验, 即由水平奇偶校验和垂直奇偶校验综合构成
4.1数据链路层功能 (2)循环冗余校验码CRC 循环冗余校验码( Cycle redundancy Check,简称CRC) 是一种被广泛采用的多项式编码。CRC码由两部分组成,前 一部分是k+1个比特的待发送信息,后一部分是r个比特的 冗余码。由于前一部分是实际要传送的内容,因此是固定 不变的,CRC码的产生关键在于后一部分冗余码的计算 计算中主要用到两个多项式:f(x)和G(x)。其中,f(x) 是一个k阶多项式,其系数是待发送的k+1个比特序列; G(x)是一个r阶的生成多项式,由发收双方预先约定。 2021年2月23日星期二11时45分46 司p计算机网络技术实用教程(第3版)
2021年2月23日星期二11时45分46 秒 计算机网络技术实用教程(第3版) 4.1 数据链路层功能 (2) 循环冗余校验码CRC 循环冗余校验码(Cycle Redundancy Check,简称CRC) 是一种被广泛采用的多项式编码。CRC码由两部分组成,前 一部分是k+1个比特的待发送信息,后一部分是r个比特的 冗余码。由于前一部分是实际要传送的内容,因此是固定 不变的,CRC码的产生关键在于后一部分冗余码的计算。 计算中主要用到两个多项式:f(x)和G(x)。其中,f(x) 是一个k阶多项式,其系数是待发送的k+1个比特序列; G(x)是一个r 阶的生成多项式,由发收双方预先约定
4.1数据链路层功能 例如,设实际要发送的信息序列是1010001101(十个 比特,k=9),则以它们作为f(x)的系数,得到对应的9阶 多项式为 f(x)=1×X9+0×8+1×X7+0×6+0×X5+0×4+1×3 1×X2+0xX+1 X9+X7+X3+X2+1。 再假设发收双方预先约定了一个5阶(r=5)的生成 多项式G(X)=x5+×4+x2+1 =1×X5+1xX4+0xX3+1×2+0×X+1,则其系数序列为 110101。 2021年2月23日星期二11时45分46 司p计算机网络技术实用教程(第3版)
2021年2月23日星期二11时45分46 秒 计算机网络技术实用教程(第3版) 4.1 数据链路层功能 例如,设实际要发送的信息序列是1010001101(十个 比特,k=9),则以它们作为f(x)的系数,得到对应的9阶 多项式为 f(x)=1x9+0x8+1x7+0x6+0x5+0x4+1·x3 +1x2+0x+1 =x9+ x7+ x3+ x2+1。 再假设发收双方预先约定了一个5 阶( r=5 ) 的生成 多项式G(x)=x5+x4+x2+1 =1x5+1x4+0x3+1x2+0x+1,则其系数序列为 110101