2013-05-14 179 views
0

TCP段包含16位的校验和字段,IP数据报和UDP数据包也是如此。但是在链路层,CRC校验和只有4位(对于802.3和802.4)。校验需要多长时间?

在频谱的极端部分,只有计算校验位可能会产生大量的误报,其中数据包看起来有效,但事实上并非如此,因为偶数位已被更改。另一方面,只有4位就可以满足要求的16位校验和会浪费内存/带宽/金钱。

你如何评估校验和应该有多少位? PS:我以互联网堆栈为例,但这确实适用于任何协议/软件。

PS2:我不确定使用哪个论坛。

+0

802.3中的CRC校验和是四位32位的CRC。 – 2014-11-10 21:51:30

回答

2

首先,一个快速命名法校正 - 校验和和CRC是试图解决相同问题的两种不同方法:在噪声信道中检测数据传输过程中发生的位错误。一般来说,CRC是以更复杂为代价的更强大的检测错误。选择正确的错误检测方案需要关于信道(例如错误概率)及其噪声特性(例如脉冲,突发)的一些知识。有些论文详细分析了这个问题,并给出了一些关于如何选择错误检测方法的指导。我建议你尝试这种介绍性为出发点:

http://www.ece.cmu.edu/~koopman/pubs/KoopmanCRCWebinar9May2012.pdf

它会给你更好地了解这个美丽的地区的复杂性,并为您提供一些链接到其他学习材料。

0

假设你有一个良好的CRC或者散列函数,其充分利用了位,并假定腐败的预期来源没有那个无效第一个假设一些不寻常的特征,那么你可以简单地设置一个可接受的概率的误报,并从中得到位数。或者从这些位计算概率,看看你是否对此感到满意。的概率为:

p = 2时-n

其中Ñ是在校验值的位的数目。也就是说,在一些随机数据的ň位的校验值将意外匹配一些其他数据集的ñ位校验值的概率。