CRC
循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
关于CRC需要注意:
1.CRC只能检错,不能纠错。但是海明码校验既能检错也能纠错。
2.CRC能够实现无比特差错传输,但是他不是可靠传输(无传输差错)
可靠传输:数据链路层的发送端发送什么,在接收端就收到什么。
“无传输差错”和“无比特差错”不一样,无传输差错包含无比特差错
传输差错分为两大类
1.比特差错
2.传输差错:帧丢失,帧重复,帧失序等
发送方连续传送三个帧:[#1]-[#2]-[#3]
帧丢失:收到[#1]-[#3](丢失[#2])
帧重复:收到[#1]-[#2]-[#2]-[#3](收到两个[#2])
帧失序:收到[#1]-[#3]-[#2](后发送的帧先到达接收端)
关于CRC(循环冗余校验)的计算方法我放到这里,这里不做重点讲解
FCS
FCS:Frame Check Sequence(帧校验序列),俗称帧尾,即计算机网络数据链路层的协议数据单元(帧)的尾部字段,是一段4个字节的循环冗余校验码。
源节点发送数据帧时,由帧的帧头和数据部分计算得出FCS,目的节点接收到后,用同样的方式再计算一遍FCS,如果与接收到的FCS不同,则认为帧在传输过程中发生了错误,从而选择丢弃这个帧。
FCS提供了一种错误检测机制,用来验证帧在传输过程中的完整性。
CRC和FCS的区别
1.CRC是一种差错检验方法;而FCS是帧校验序列,即冗余码;
2.FCS是冗余码,它可以通过CRC得到,也可以通过其他差错检测方法得到。