社区
通信技术
帖子详情
谁能给我贴一份关于校验和的详细算法
chsilence
2004-04-11 08:34:40
希望能给详细注释,有些东西看不懂!:(
...全文
73
2
打赏
收藏
谁能给我贴一份关于校验和的详细算法
希望能给详细注释,有些东西看不懂!:(
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
beyondsky00
2004-04-11
打赏
举报
回复
假设要发送比特串
11 0 1 0 11,生成多项式为G(x) =x4+x3+ 1
第1步:在串尾加0。0的个数与生成多项式的次数一致(本例中为4)。
这样,串就变成了11010110000。
第2步:将B(x)除以G(x)。余式为R(x) =x3+x,或等价的比特串1 0 1 0。
注意,可以将此写成代数形式:B(x) Q(x)
----=-----+Q ( x )
G(x) G(x)
这里,Q ( x )表示商。可以等价地写成:B(x) =G(x)×Q(x) +R(x)
第3步:定义T ( x )=B ( x )-R ( x )。既然减法是对应项的系数之差,
我们就可以用与每个多项
式对应的比特串之差来计算。本例中,有
11 0 1 0 110000 比特串B
-1010 比特串R
------------------------
11 0 1 0 111010 比特串T
注意,串T实际上是串B将加0部分用R代替所得。另外,如果我们将T ( x )
除以G ( x ), 余数为0 。然后,发送方发送串T。
第4步:若串T传输无误,那么将它除以G ( x ),余数为0。若串T在传输中被损坏了。例如,
中间4个比特变为0,到达串为11 0 0 0 0 0 1 0 1 0。
接收方将它模2再除以G ( x ),余数不为0。
既然余数不为0,接收方就认为发生了错误。
(注意:这不等于说将损坏的串除以G ( x ),其余数总是为非零。
这种情况会发生,但是若G ( x )选取得当,发生的几率就会很小
--------------(摘自《数据通讯与网络》)
chsilence
2004-04-11
打赏
举报
回复
怎么没人理我?
常用的简单校验
算法
:
校验和
,异或校验,crc校验,LRC校验,补码求和,checksum
常用的简单校验
算法
:
校验和
,异或校验,crc校验,LRC校验,补码求和,checksum 相关思路和源码来自网络,自己只是整理, 做笔记用。 并未完整完善正确归纳,只是个人理解初步做笔记记录。 在实现业务需求过程中,通常要用到相关一些校验
算法
,简单整理常用校验
算法
并做笔记: 常用校验
算法
简单说明: 1:
校验和
:按每个字节,计算累加和, 2:异或校验:定义初值,按每个字节异或,求结果。 3:CRC校验:已有很多的标准及计算方式,可以返回8字节,16字节,32字节的结果。 受益匪浅的文章:https://blo
Fletcher
校验和
算法
简单
校验和
的弱点: 它对数据字(消息)中块(字节)的顺序不敏感。如果更改顺序,则
校验和
值将相同,并且不会检测到更改。第二个缺点是
校验和
值的范围很小,等于所选的模数。在我们的示例中,只有255个可能的
校验和
值,因此很容易看出,即使随机数据也具有大约0.4%的概率具有与我们的消息相同的
校验和
。 Fletcher
校验和
Fletcher通过计算第二个值以及简单的
校验和
来解决这两个弱点。这是简单
校验和
在将数据字的每个块添加到其中时所取值的模和。使用的模数相同。因此,对于数据字的每个块,按顺序取,将块的值添加到第一个
关于checksum
校验和
算法
今天复习计网的时候看到了UDP头部有差错校验,其中的checksum
算法
没理的太清楚,索性写一篇博客,顺便回顾一下其他的。
校验和
覆盖的内容: IP
校验和
:IP首部。 ICMP
校验和
:ICMP首部+ICMP数据; UDP、TCP
校验和
:首部+数据+12个字节伪首部(源IP地址、目的IP地址、协议、TCP/UDP包长)。 计算
校验和
的步骤: [1]把
校验和
字段设置为0。 [2]把需要校验的数据看成以16位为单位的数字组成,依次进行二进制反码求和。 [3]把得到的结果存入
校验和
字段中。 另外UDP、TCP数据报
TCP/IP
校验和
算法
简介
1.前言
校验和
计算是NAT功能和内容修改功能的基本功,这些操作进行后都需要修改数据头中的
校验和
。 2.16位
校验和
计算 2.1基本原理 IP/ICMP/IGMP/TCP/UDP等协议的
校验和
算法
都是相同的,采用的都是将数据流视为16位整数流进行重复叠加计算。为了计算检验和,首先把检验和字段置为0。然后,对有效数据范围内中每个16位进行二进制反码求和,结果存在检验和字段中,如果数据长度为奇数则补一字节0。当收到数据后,同样对有效数据范围中每个16位数进行二进制反码的求和。由于接收方在计算...
网际
校验和
算法
(Internet CheckSum)
网际
校验和
算法
反码算数运算: 两个数进行二进制反码求和的运算很简单。它的规则是从低位到高位逐列进行计算。0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列。如果最高位相加后产生进位,则最后得到的结果要加1。 网际
校验和
算法
: 在发送方,先把被校验的数据划分为许多16位字的序列。如果数据的字节长度为奇数,则在数据尾部补一个字节的0以凑成偶数。用反码算数运算把所有16位...
通信技术
4,395
社区成员
28,907
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章