最终发送的数据:要发送的数据 + 帧检验序列FCS
计算冗余码:
(1)加0 假设生成多项式G(x)的阶为r,则加r个0.
(2)模2除法 数据加0后除以多项式,余数为冗余码/FCS/CRC检验码的比特序列。
例:
要发送的数据是1101 0110 11,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是?
则最终发送的数据:1101011011 1110
接收端检错过程
把收到的每一个帧都除以同样的除数,然后检查得到的余数R。
1.余数为0,判定这个帧没有差错。
2.余数不为0,判定这个帧有差错(无法确定到位),丢弃。
FCS的生成以及CRC检验都是由硬件实现,处理狠迅速,因此不会延误数据的传输。
注:
在数据链路层仅仅使用循环元余检验CRC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据
链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”,接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。
“凡是接收端数据链路层接收的帧均无差错”
“可靠传输”:数据链路层发送端发送什么,接收端就收到什么。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。