循环冗余检验算法(CRC)与帧检验序列(FCS)

循环冗余检验CRC是一种检验方法,而FCS是添加在数据后面的帧检验序列。CRC 检验只能保证接收端接收到的帧没有差错,至于有没有出现帧丢失,帧重复,帧失序,是无法判断的。

CRC

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术(算法),主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

FCS

帧校验序列码 FCS ( Frame Check Sequences) 是为提高通信的可靠性设置的。将每一帧中的第一个字符@到该帧中正文的最后一个ASCII 字符作“异或”运算, 并将异或的结果转换为两个ASCII码, 便得到了FCS , 它作为帧的一部分发送到接收端。接收端计算出收到的帧的FCS , 如果与发送端传送过来的FCS 不同, 可以判定通信有误。

帧校验序列(FCS)是指特别的检测码字符被添加到在一个通信协议中的帧中进行检错和纠错。发送主机在整个帧中有一个检测码随着发送。接收主机在整个帧中的检测码使用相同的运算法则,并将它与接收到的 FCS 相比较。这样,它能够探测是否任何数据在运输中丢失或被改变。它可能当时丢失这个数据,和请求错误帧的重传。一个循环冗余码校验常被用来估算 FCS。

FCS 字段:包含帧的 32 位循环冗余校验 (CRC), 数据链路层帧方式接入协议(LAPF)中的字段,是一个16比特的序列。它具有很强的检错能力,它能检测出在任何位置上的 3 个以内的错误、所有的奇数个错误、16个比特之内的连续错误以及大部分的大量突发错误。

ethernet-frame.gif

octets:(Bytes)字节
Frame:帧

参考:

循环冗余检验算法(CRC)与帧检验序列(FCS)

帧检验序列(FCS)