1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,循环冗余检验的原理,在数据链路层传送的帧中,广泛使用了,循环冗余检验,CRC,的检错技术。,在发送端,先把数据划分为组。假定每组,k,个比特。,假设待传送的一组数据,M,=101001,(现在,k,=6,)。我们在,M,的后面再添加供差错检测用的,n,位,冗余码,一起发送。,冗余码的计算,用二进制的模,2,运算进行,2,n,乘,M,的运算,这相当于在,M,后面添加,n,个,0,。,得到的,(,k,+,n,),位的数除以事先选定好的长度为,(,n,+1),位的,除数,P,,得出,商,是,Q,而,余数,是,
2、R,,余数,R,比除数,P,少,1,位,即,R,是,n,位。,冗余码的计算举例,现在,k,=6,M,=101001,。,设,n,=3,除数,P,=1101,,,被除数是,2,n,M,=101001000,。,模,2,运算的结果是:,商,Q,=110101,,,余数,R,=001,。,把余数,R,作为,冗余码,添加在数据,M,的后面发送出去。发送的数据是:,2,n,M,+,R,即:,101001001,,共,(,k,+,n,),位。,110101,Q,(,商,),P,(,除数,),1101 101001000,2,n,M,(,被除数,),1101,1110,1101,0111,0000,1110
3、1101,0110,0000,1100,1101,001,R,(,余数,),,作为,FCS,循环冗余检验的原理说明,帧检验序列,FCS,在数据后面添加上的冗余码称为,帧检验序列,FCS(Frame Check Sequence),。,循环冗余检验,CRC,和帧检验序列,FCS,并不等同。,CRC,是一种常用的,检错方法,,而,FCS,是添加在数据后面的,冗余码,。,FCS,可以用,CRC,这种方法得出,但,CRC,并非用来获得,FCS,的唯一方法。,接收端对收到的每一帧进行,CRC,检验,(1),若得出的余数,R,=0,,则判定这个帧没有差错,就,接受,(accept),。,(2),若余数,R,0,,则判定这个帧有差错,就,丢弃,。,但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。,只要经过严格的挑选,并使用位数足够多的除数,P,,那么出现检测不到的差错的概率就很小很小。,应当注意,仅用循环冗余检验,CRC,差错检测技术只能做到无差错,接受,(accept),。,“无差错接受”是指:“凡是接受的帧(即,不包括丢弃的帧,),我们都能以非常接近于,1,的概率认为这些帧在传输过程中没有产生差错”。,也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。,要做到“,可靠传输,”(即发送什么就收到什么)就必须再加上,确认,和,重传,机制。,