奇偶校验

合集下载

奇偶校验名词解释(一)

奇偶校验名词解释(一)

奇偶校验名词解释(一)奇偶校验1. 奇偶校验的定义和作用•奇偶校验是一种数据传输中常用的差错检测方法,通过给数据添加一个奇偶位来检测数据传输过程中产生的错误。

•奇偶校验的作用是检测传输中的数据是否出现错误,并进行纠错操作。

2. 相关名词解释奇偶位•奇偶位是指在进行奇偶校验时所需要添加到数据末尾的一位二进制数。

•根据数据中1的个数是奇数还是偶数,确定奇偶位的取值:奇数个1时奇偶位为0,偶数个1时奇偶位为1。

校验位•校验位是指用于奇偶校验的二进制数,用于检测数据传输过程中是否发生错误。

•校验位的取值由奇偶校验算法决定,通过计算数据中1的个数来确定。

校验和•校验和是一种用于奇偶校验的简化模型,通过对数据中所有位进行求和运算得到一个二进制数作为校验结果。

3. 示例解释奇偶位示例假设需要传输的数据为8位二进制数:。

通过奇偶校验方法,计算数据中1的个数为4个,为偶数个,因此奇偶位的取值为1。

添加奇偶位后的数据为。

校验位示例假设需要传输的数据为8位二进制数:。

通过奇偶校验算法,计算数据中1的个数为4个,为偶数个,因此校验位的取值为1。

添加校验位后的数据为。

校验和示例假设需要传输的数据为8位二进制数:。

计算数据中所有位(包括奇偶位)的和为8,转换为二进制数为1000。

校验和为1000。

总结奇偶校验是一种常用的差错检测方法,通过添加奇偶位来检测数据传输过程中的错误。

相关名词包括奇偶位、校验位和校验和。

奇偶位是计算数据中1的个数并确定取值的位,校验位是用于检测错误的二进制数,校验和是对所有位进行求和得到的结果。

通过奇偶校验方法,可以提高数据传输的可靠性和纠错能力。

奇偶校验原理

奇偶校验原理

奇偶校验原理
奇偶校验是一种数据校验方式,用于检测数据传输过程中可能出现的错误。

在奇偶校验中,一个额外的比特位被添加到数据位中,称为校验位。

校验位的值取决于数据位中1的个数,以此来保证发送和接收的数据在传输过程中的完整性。

具体的奇偶校验原理如下:
1. 奇校验:发送方在发送数据之前,统计数据位中的1的个数,如果1的个数是奇数,则设置校验位为0,否则设置为1。


收方在接收到数据后,再次统计数据位中的1的个数,如果1
的个数是奇数,说明数据在传输过程中没有出现错误。

如果1
的个数是偶数,说明数据在传输过程中出现了错误。

2. 偶校验:发送方在发送数据之前,统计数据位中的1的个数,如果1的个数是奇数,则设置校验位为1,否则设置为0。


收方在接收到数据后,再次统计数据位中的1的个数,如果1
的个数是偶数,说明数据在传输过程中没有出现错误。

如果1
的个数是奇数,说明数据在传输过程中出现了错误。

奇偶校验通过统计数据位中1的个数来检测错误,因为在传输过程中如果发生了一个位的错误,那么1的个数一定会改变,从而可以通过校验位的不匹配来判断是否出现了错误。

虽然奇偶校验可以检测出某些错误,但它并不能纠正错误,只能检测错误的存在。

因此,在实际应用中,常常会有其他更复杂的校验机制来提高数据传输的可靠性。

水平垂直奇偶校验的原理

水平垂直奇偶校验的原理

水平垂直奇偶校验的原理水平奇偶校验和垂直奇偶校验是在通信中常用的纠错方式,其原理如下:1. 奇偶校验:假设要传输一个字节的数据,使用奇偶校验就是在数据的最后添加一位校验位,使得整个数据中包含的1的个数为偶数或奇数,具体有以下两种方式:1.1. 奇校验:使得整个数据中包含的1的个数为奇数,校验位是检验数据中1的个数,如果数据中1的个数是奇数,则校验位为0,否则为1。

例如,对ASCII码为1011 0001的字符'B'进行奇校验,则在其最后添加一个校验位1,使得整个数据中包含的1的个数为奇数,即1011 0001 1。

1.2. 偶校验:使得整个数据中包含的1的个数为偶数,校验位是检验数据中1的个数,如果数据中1的个数是奇数,则校验位为1,否则为0。

例如,对ASCII码为1011 0001的字符'B'进行偶校验,则在其最后添加一个校验位0,使得整个数据中包含的1的个数为偶数,即1011 0001 0。

2. 水平奇偶校验和垂直奇偶校验:假设要传输的数据是一个矩阵,水平奇偶校验和垂直奇偶校验分别对每一行和每一列进行奇偶校验,将校验结果添加到该行或该列的末尾。

例如,对以下4\times4 的矩阵进行水平和垂直奇偶校验:\begin{matrix}1 & 0 & 0 & 1\\ 0 & 1 & 1 & 0\\ 0 & 1 & 1 & 0\\ 1 & 0 & 0 & 1\end{matrix}水平奇偶校验:对每一行进行奇偶校验,得到校验结果为1、0、1、1,将它们分别添加到末尾得到:\begin{matrix}1 & 0 & 0 & 1 & 1\\ 0 & 1 & 1 & 0 & 0\\ 0 & 1 & 1 & 0 & 1\\ 1 & 0 & 0 & 1 & 1\end{matrix}垂直奇偶校验:对每一列进行奇偶校验,得到校验结果为0、0、1、0、1,将它们分别添加到末尾得到:\begin{matrix}1 & 0 & 0 & 1 & 1 & 0\\ 0 & 1 & 1 & 0 & 0 & 0\\ 0 & 1 & 1 & 0 & 1 & 1\\ 1 & 0 & 0 & 1 & 1 & 0\\ 0 & 0 & 1 & 0 & 1 & 1\end{matrix}在接收端,对每一行和每一列重新进行奇偶校验,如果出现错误的位,则根据奇偶校验位进行纠正。

数字校验算法

数字校验算法

数字校验算法数字校验算法是一种用于验证数据完整性和准确性的数学算法。

它通过对数据进行计算和比较,确定数据是否被篡改或损坏。

数字校验算法广泛应用于计算机网络、数据传输以及存储系统等领域,保证数据的可靠性和安全性。

本文将介绍几种常见的数字校验算法及其原理。

一、奇偶校验算法奇偶校验算法是最简单的数字校验算法之一。

它通过在数据位中添加一个奇偶位来确保数据的正确性。

具体操作是在数据中添加一个位,使得数据位和奇偶位的总位数为奇数或偶数。

接收端通过计算数据位和奇偶位的总位数是否为奇数或偶数来判断数据是否正确。

如果总位数不匹配,则说明数据传输中发生了错误。

二、循环冗余校验算法循环冗余校验算法(CRC)是一种常用的数字校验算法。

它通过对数据进行多项式的除法运算来生成校验码。

发送端首先将数据和生成多项式进行除法运算,得到余数作为校验码,然后将数据和校验码一起发送。

接收端将接收到的数据和生成多项式进行除法运算,如果余数为0,则说明数据传输正确;如果余数不为0,则说明数据传输错误。

三、哈希校验算法哈希校验算法是一种基于哈希函数的数字校验算法。

它通过对数据进行哈希运算,得到一个固定长度的校验值。

发送端将数据和校验值一起发送,接收端对接收到的数据进行相同的哈希运算,并将得到的校验值与接收到的校验值进行比较。

如果两者相同,则说明数据传输正确;如果不同,则说明数据传输错误。

四、消息认证码算法消息认证码算法(MAC)是一种常用的数字校验算法。

它通过对数据进行加密和认证来确保数据的完整性和真实性。

发送端使用密钥对数据进行加密和认证,并将加密后的数据和认证标签一起发送。

接收端使用相同的密钥对接收到的数据进行解密和认证,并将得到的认证标签与接收到的认证标签进行比较。

如果两者相同,则说明数据传输正确;如果不同,则说明数据传输错误。

五、数字签名算法数字签名算法是一种常用的数字校验算法。

它通过使用私钥对数据进行加密和签名,确保数据的完整性、真实性和不可抵赖性。

奇偶校验与和校验

奇偶校验与和校验
奇偶校验对数据传输正确性的一种校验方法。
在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。
例如,需要传输"11001110",数据中含5个"1",所以其奇校验位为"0",同时把"110011100"传输给接收方,接收方收到数据后再一次计算奇偶性,"110011100"中仍然含有5个"1",所以接收方计算出的奇校验位还是"0",与发送方一致,表示在此次传输过程中未发生错误。
2、对数据长度没限制的实现
unsigned short cksum (struct ip *ip, int len){
long sum = 0;
while ( len >1 ){
sum += *((unsigned short *) ip)++;
if (sum & 8x00000000)
count -= 2;
}
if( count > 0 )
sum += * (unsigned char *) addr;
while (sum>>16)
sum = (sum & 0xffff) + (sum >> 16);
return ~sum;
}
第一个while循环是做普通加法(2进制补码加法),因为IP包头和TCP整个报文段比较短(没达到2^17数量级),所以不可能导致4字节的sum溢出(unsigned long 一般至少为4字节)).

什么是奇偶校验

什么是奇偶校验

什么是奇偶校验对数据传输正确性的一种校验方法。

在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。

例如,需要传输"11001110",数据中含5个"1",所以其奇校验位为"0",同时把"110011100"传输给接收方,接收方收到数据后再一次计算奇偶性,"110011100"中仍然含有5个"1",所以接收方计算出的奇校验位还是"0",与发送方一致,表示在此次传输过程中未发生错误。

奇偶校验就是接收方用来验证发送方在传输过程中所传数据是否由于某些原因造成破坏。

具体方法如下:奇校验:就是让原有数据序列中(包括你要加上的一位)1的个数为奇数 1000110(0)你必须添0这样原来有3个1已经是奇数了所以你添上0之后1的个数还是奇数个。

偶校验:就是让原有数据序列中(包括你要加上的一位)1的个数为偶数 1000110(1)你就必须加1了这样原来有3个1要想1的个数为偶数就只能添1了。

大家一定会问,如何计算奇偶性呢,在计算机内有一种特殊的运算它遵守下面的规则:1+1=0; 1+0=1; 0+1=1; 0+0=0;我们把传送过来的1100111000逐位相加就会得到一个1,应该注意的的,如果在传送中1100111000变成为0000111000,通过上面的运算也将得到1,接收方就会认为传送的数据是正确的,这个判断正确与否的过程称为校验。

而使用上面方法进行的校验称为奇校验,奇校验只能判断传送数据中奇数个数据从0变为1或从1变为0的情况,对于传送中偶数个数据发生错误,它就无能为力了。

Odd Parity(奇校验),校核数据完整性的一种方法,一个字节的8个数据位与校验位(parity bit )加起来之和有奇数个1。

奇偶校验的原理

奇偶校验的原理

奇偶校验的原理
奇偶校验是一种常用的错误检测方法,用于在数据传输过程中检测是否存在错误。

原理如下:假设传输的数据有n位,其中n-1位为有效数据,
最后一位为校验位。

校验位的数值是根据有效数据位的奇偶性决定的。

1. 奇校验:如果有效数据位中1的个数是奇数,校验位就设置为1,以保证整个数据的总和(数据位加校验位)中1的个数
是奇数;如果有效数据位中1的个数是偶数,校验位设置为0。

2. 偶校验:如果有效数据位中1的个数是奇数,校验位就设置为0,以保证整个数据的总和(数据位加校验位)中1的个数
是偶数;如果有效数据位中1的个数是偶数,校验位设置为1。

在数据传输过程中,发送方会计算有效数据位的奇偶性并添加相应的校验位。

接收方接收到数据后,会重新计算有效数据位的奇偶性,并与接收到的校验位进行比对。

如果两者不一致,说明数据在传输过程中发生了错误。

奇偶校验的优点是简单、易于实现,并且可以在一定程度上检测出错误。

然而,它只能检测出奇数个位错误,对于偶数个位错误无法检测。

因此,在实际应用中,常常会采用更强大的错误检测方法来提高数据传输的可靠性。

奇偶校验的工作原理

奇偶校验的工作原理

奇偶校验的工作原理嘿,朋友们!今天咱来唠唠奇偶校验的工作原理。

你说奇偶校验就像是个特别细心的小管家。

咱平时发个信息啊,传个数据啥的,就跟送快递一样。

奇偶校验呢,就在旁边盯着,生怕这个“快递包裹”在路上出啥岔子。

想象一下,信息就像是一群排好队的小人儿,一个一个地往前走。

奇偶校验呢,就负责看看这排小人儿的数量是奇数个还是偶数个。

如果规定是奇数个,那它就会一直盯着,要是中间突然多了一个或者少了一个小人儿,它马上就能察觉,“哎呀,不对劲啊!”然后赶紧告诉咱们,这里出问题啦。

这就好比咱出门前总要照照镜子,看看衣服穿得整齐不整齐。

奇偶校验就是那面镜子,能帮咱们发现数据这个“衣服”有没有穿好。

要是没有它,说不定咱发出去的信息就变得乱七八糟,对方收到了都不知道是啥意思。

比如说,你给朋友发了一串数字,本来应该是 12345,结果中间丢了个3,变成了 1245,那朋友收到肯定就糊涂啦。

但有了奇偶校验在,它就能发现这个错误,让你知道得重新发一次。

奇偶校验还有个厉害的地方,它不只是能发现错误哦,有时候还能帮忙修正一些小错误呢!就像一个会魔法的小精灵,轻轻挥动魔法棒,就能让数据变得正确。

你说这奇偶校验是不是特别神奇?它虽然看起来不起眼,但在数据传输的世界里,那可是起着至关重要的作用呢!没有它,那数据传输可就乱套啦,就像没有交通规则的马路一样,到处都是混乱。

咱生活中很多地方都离不开奇偶校验呢。

你想想,你在网上购物的时候,你的订单信息要是传错了,那可不得了。

或者你和朋友视频聊天,画面和声音的数据要是出了问题,那得多别扭啊。

所以啊,奇偶校验这个小管家可得好好感谢它。

它默默地工作着,为咱们的数据传输保驾护航。

下次你再享受着快速、准确的数据传输时,别忘了在心里给奇偶校验点个赞呀!它可真是个大功臣呢!这就是奇偶校验的工作原理啦,是不是挺有意思的?原创不易,请尊重原创,谢谢!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

概述
奇偶校验法常用于识别数据是否发生传输错误,并且可以启动校正措施,或者舍弃传输发生错误的数据,要求重新传输有错误的数据块。

编辑本段奇偶校验法
奇偶校验法是一种很简朴并且广泛使用的校验方法。

这种方法是在每一字节中加上一个奇偶校验位,并被传输,即每个字节发送九位数据。

数据传输以前通常会确定是奇校验还是偶校验,以保证发送端和接收端采用相同的校验方法进行数据校验。

假如校验位不符,则认为传输出错。

奇校验是在每个字节后增加一个附加位,使得“1”的总数为奇数。

奇校验时,校验位按如下规则设定:假如每字节的数据位中“1”的个数为奇数,则校验位为“0”若为偶数,则校验位为“1”。

奇校验通常用于同步传输。

而偶校验是在每个字节后增加一个附加位,使得“1”的总数为偶数。

偶校验时,校验位按如下规则设定:假如每字节的数据位中“1”的个数为奇数,则校验位为“1”;若为偶数,则校验位为“0”。

偶校验常用于异步传输或低速传输。

校验的原理是:假如采用奇校验,发送端发送的一个字符编码(含校验位)中,“1”的个数一定为奇数个,在接收端对接收字符二进制位中的“1”的个数进行统计,若统计出“1”的个数为偶数个,则意味着传输过程中有1位(或奇数位)发生差错。

事实上,在传输中偶尔—位出错的机会最多,故奇偶校验法常常采用。

然而,奇偶校验法并不是一种安全的检错方法,其识别错误的能力较低。

假如发生错误的位数为奇数,那么错误可以被识别,而当发生错误的位数为偶数时,错误就无法被识别了,这是因为错误互相抵消了。

数位的错误,以及大多数涉及偶数个位的错误都有可能检测不出来。

它的缺点在于:当某一数据分段中的一个或者多位被破坏时,并且在下一个数据分段中具有相反值的对应位也被破坏,那么这些列的和将不变,因此接收方不可能检测到错误。

常用的奇偶校验法为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。

编辑本段垂直奇偶校验
垂直奇偶校验是在垂直方向上以列的形式附加上校验位。

假设数据格式及其发送顺序如图1所示,则垂直奇偶校验的编码规则如图2所示。

图1 垂直奇偶校验时
图2 垂直奇偶校验法举例
数据格式及其发送顺序
式中,m为码字的定长位数,n为码字的个数。

设垂直奇偶校验的编码效率为R,则:
垂直奇偶校验又称为纵向奇偶校验,它能检测出每列中发生的奇数个错误,偶数个错误,因而对差错的漏检率接近1/2。

编辑本段水平奇偶校验
水平奇偶校验是在水平方向上以行的形式附加上校验位。

假设数据格式及其发送顺序如图3所示,则水平奇偶校验的编码规则如图4所示。

图3 水平奇偶校验时数据格式及其发送顺序
图4 水平奇偶校验法举例
式中,m为码字的定长位数,n为码字的个数。

设水平奇偶校验的编码效率为R,则:
水平奇偶校验又称为横向奇偶校验,它不但能检测出各段同一位上发生的奇数个错误,而且还能检测出突发长度≤m的所有突发错误,其漏检率要比垂直奇偶校验法低,但是实现水平奇偶校验时,一定要使用数据缓冲器。

编辑本段水平垂直奇偶校验
水平垂直奇偶校验是在结合水平奇偶校验和垂直奇偶校验的基础上形
成的一种校验方法。

它是在一批字符传送之后,另外增加一个称为“方块校验字符”的检验字符,方块校验字符的编码方式是使所传输字符代码的每个纵向列中位代码的“1”的个数成为奇数(或偶数)。

假设数据格式及其发送顺序如图5所示,假如水平和垂直方向上都使用偶校验,则水平垂直奇偶校验的编码规则如图6所示。

图5 水平垂直奇偶校验时数据格式及其发送顺序
图6 水平垂直奇偶校验法举例
式中,m为码字的定长位数,n为码字的个数。

设水平垂直奇偶校验的编码效率为R,则:
水平垂直奇偶校验又称为纵横奇偶校验。

它能检测出传输过程中发生的所有3位或3位以下的错误、奇数个错误、大部分偶数个错误以及突发长度≤m+1的突发错误,可使误码率降至原误码率的百分之一到万分之一,有较强的检错能力,但是有部分偶数个错误不能检测出来。

水平垂直奇偶校验还可以自动纠正差错,使误码率降低2~4个数量级,适用于中、低速传输系统和反馈重传系统,被广泛用于通信和某些计算机外部设备中。

相关文档
最新文档