本文主要是介绍计算机网络——差错检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
比特在传输过程中可能会产生差错,1可能变成0,0也可能变成1,这叫做比特差错。传输错误的比特占所传输比特总数的比率称为误码率BER。在计算机网络传输数据时,必须采用各种差错检测措施来保证数据传输的可靠性。目前在数据链路层广泛使用的是循环冗余检测CRC的检错技术。
在发送端假定数据每k个比特作为一组,假定带传送的数据时M=101001。CRC运算就是在数据的后面添加供差错检测的n位冗余码。添加了冗余码之后的数据位数达到了(k+n)位,用新得到的数除以实现约定好的长度为(n+1)位的出书P,得出的商是Q而余数是R。假定P=1101,经过模2除法运算后,Q=110101,余数R=001。这个余数就作为冗余码拼接在M后面发送出去。这种添加的冗余码常被称为帧检验序列FCS。因此加上FCS后发送的帧是101001001。
接收端以帧为单位进行CRC检验:把每一个帧除以除数P,检查得到的余数是否为0,不为0即代表传输过程出现差错。而如果出现了比特差错,该帧就会被丢弃。因为CRC检验只能表明传输是否有差错,并不能得到具体是哪一位发生了差错,而如果引入纠错机制,则代价太大,因此在数据连链路层往往提供的是不可靠传输,而关于可靠传输这个概念,放到下一篇文章去讲。
这篇关于计算机网络——差错检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!