CRC与FCS的区别和联系

简介: CRC与FCS的区别和联系

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(循环冗余校验)的计算方法我放到这里,这里不做重点讲解

http://t.csdn.cn/hOSL8


FCS

FCS:Frame Check Sequence(帧校验序列),俗称帧尾,即计算机网络数据链路层的协议数据单元(帧)的尾部字段,是一段4个字节的循环冗余校验码。


源节点发送数据帧时,由帧的帧头和数据部分计算得出FCS,目的节点接收到后,用同样的方式再计算一遍FCS,如果与接收到的FCS不同,则认为帧在传输过程中发生了错误,从而选择丢弃这个帧。

FCS提供了一种错误检测机制,用来验证帧在传输过程中的完整性。


CRC和FCS的区别

1.CRC是一种差错检验方法;而FCS是帧校验序列,即冗余码;


2.FCS是冗余码,它可以通过CRC得到,也可以通过其他差错检测方法得到。


目录
相关文章
|
3月前
|
C#
C# CRC8
C# CRC8
33 0
|
5月前
|
算法 SDN C++
以太网帧FCS校验:CRC32的三种实现
这篇文章讨论了CRC32校验码的三种实现方法,用于检测网络通信中的数据错误。首先介绍了基础的按位计算方法,虽然直观但效率低。接着,文章提出了使用非翻转查找表和翻转查找表的快速计算方法,后者在性能上更优。文中提供了C++代码示例,展示如何生成和使用这些查找表。最后,指出在实际应用中,应根据性能需求选择合适的方法。
|
6月前
|
算法
【数据链路层】循环冗余码CRC、后退N帧协议GBN、选择重传协议SR、CSMA/CA
【数据链路层】循环冗余码CRC、后退N帧协议GBN、选择重传协议SR、CSMA/CA
105 0
FCS20222-06-File & Datebase(下)
FCS20222-06-File & Datebase(下)
57 0
|
存储 网络协议 网络安全
计算机网络,CRC码计算生成
网络协议概念:网络协议是计算机网络相互通信的对等层实体之间交换信息时必须遵守的规则或约定的集合。[网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式。TCP/IP协议、IPX/SPX协议。网络协议的三个基本要素:语法、语义和同步;语法:数据和控制信息的结构或格式②语义:用于协调和进行差错处理的控制信息③时序(同步):是对事件实现顺序的详细说明
203 1
计算机网络,CRC码计算生成
|
算法
CRC 校验算法
CRC 校验算法
256 0
|
存储 PHP
|
测试技术 开发者