校验和(Checksum)是网络协议使用的数据错误检测方法,并且被认为比LRC(纵向冗余校验,Longitudinal Redundancy Check,LRC),VRC和CRC(循环冗余校验(Cyclic Redundancy Codes,CRC))更可靠。此方法在发送方使用校验和生成器,在接收方使用校验校验器

在发送方,数据由校验和生成器分为n位长度的相等子单元。该位通常为16位长度。然后使用一个称赞方法将这些子单元加在一起。该和为n位。然后对得到的位进行补充。这个称为校验和的补充和被附加到原始数据单元的末尾,然后被发送到接收器。

接收器在接收到数据+校验和之后,将其传递给校验和检查器。校验和检查器将此数据单元划分为多个等长的子单元,并将所有这些子单元相加。这些子单元还包含校验和作为子单元之一。然后对结果位进行补码。如果补余结果为零,则表示数据没有错误。如果结果不为零,则意味着数据包含错误,并且Receiver拒绝该错误。

接收器在接收到数据+校验和之后,将其传递给校验和检查器。校验和检查器将此数据单元划分为多个等长的子单元,并将所有这些子单元相加。这些子单元还包含校验和作为子单元之一。然后对结果位进行补码。如果补余结果为零,则表示数据没有错误。如果结果不为零,则意味着数据包含错误,并且Receiver拒绝该错误。

示例–
如果要发送的数据单元是10101001 00111001,则在发送方站点和接收方站点使用以下过程。

发件人网站:

10101001        subunit 1
00111001        subunit 2
11100010        sum (using 1s complement)
00011101        checksum (complement of sum)

传输到接收器的数据是–

接收者网站:

10101001        subunit 1
00111001        subunit 2
00011101        checksum
11111111        sum
00000000        sum's complementResult is zero, it means no error.

优点:
校验和可检测所有涉及奇数位数的错误以及涉及偶数位数的错误。

缺点:
主要问题是,如果一个子单元的一个或多个位被损坏,一个子单元的一个或多个对应位被损坏,并且第二个子单元中一个或多个相反值的对应位也被损坏,则错误将无法检测到。这是因为这些列的总和保持不变。

示例–
如果与校验和一起发送的数据是10101001 0011100100011101。但是在目的地接收的数据是0 0101001 1 0111001 00011101。

接收者网站:

00101001              1st bit of subunit 1 is damaged
10111001              1st bit of subunit 2 is damaged
00011101              checksum
11111111              sum
00000000              Ok 1's complement

尽管数据已损坏,但未检测到错误。

参考:

https://www.geeksforgeeks.org/error-detection-code-checksum/

https://blog.csdn.net/ZCShouCSDN/article/details/94131769

数据校验之Checksum算法相关推荐

  1. 常用算法 之五 数据校验(CRC 原理、LRC、奇偶校验、校验和)详解

    数据校验   数据在传输的过程中,会受到各种干扰的影响,如脉冲干扰,随机噪声干扰和人为干扰等,这会使数据产生差错.为了能够控制传输过程的差错,通信系统必须采用有效措施来控制差错的产生,并保证数据的完整 ...

  2. 校验和(Checksum)算法-概述

    校验和(Checksum)算法-概述 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 1.什么是校验和(Checksum) Check ...

  3. IP协议 Header Checksum算法

    引用:http://www.cnblogs.com/vamei/archive/2012/12/02/2796988.html 协议森林05 我尽力 (IP协议详解) 作者:Vamei 出处:http ...

  4. 常用的数据校验方式(奇偶,CRC,异或校验, LRC校验,累加和,MD5等校验)概念及源码

    数据校验概念 数据在传输的过程中,会受到各种干扰的影响,如脉冲干扰,随机噪声干扰和人为干扰等,这会使数据产生差错.为了能够控制传输过程的差错,通信系统必须采用有效的检错方案.因此产生了数据校验. 数据 ...

  5. checksum算法详细的计算方法、实现思路与python校验验证

    1.checksum是什么? Checksum:[电脑]总和检验码,校验和.在数据处理和数据通信领域中,用于校验目的的一组数据项的和.这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串. ...

  6. checksum 算法

    说明 checksum:总和检验码,校验和,可以理解为check(校验),sum(和). 在数据处理和通信领域,通过一定算法对传输的数据进行求和以校验数据的完整性和准确性. 使用 算法 求和的算法大致 ...

  7. SQL, 数据校验与 CRC,MD5

    前几天,我们 SQL 大数据玩家微信群里,有朋友发布了一条数据校验的题目.觉得有趣,也有必要总结下,所以检索了些论文,结合平时工作中的使用,综合起来讲讲,看看自己能不能把这方面讲清楚 数据校验,常用在 ...

  8. 数据校验及校验和总结

    1.校验和(Checksum) 总和检验码,校验和.在数据处理和数据通信领域中,用于校验目的的一组数据项的和.这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串. 2.数据校验的作用 数据 ...

  9. Java生成CRC16数据校验码

    CRC即循环冗余校验码(Cyclic Redundancy Check[1]  ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数 ...

最新文章

  1. 简单的特征值梯度剪枝,CPU和ARM上带来4-5倍的训练加速 | ECCV 2020
  2. python对象编程例子-这是我见过最详细的Python面向对象编程!建议收藏!
  3. Fibonacci数列时间复杂度之美妙
  4. 盛佳:搜索是有目的的发现,发现是无目的的搜索
  5. 交换机接口的access与trunk
  6. ubuntu14.04安装完ros后常用的其他安装
  7. 深度学习笔记之DenseNets
  8. 【Tools】Visual Studio 2017下载和安装
  9. 数据结构-第九章 内部排序-知识点总结2
  10. 使用Java 8 Streams进行编程对算法性能的影响
  11. python ftp服务器限速_python实现ftp服务器
  12. 计算机对身体有哪些危害,经常玩电脑的危害 经常玩电脑对身体有哪些伤害
  13. android之canvas绘制矩形
  14. TimesTen In-Memory Database
  15. 【Linux】Linux的进程调度
  16. 微信小程序:二维码生成器,输入信息生成二维码,调用相机扫描二维码,获取信息
  17. STM32网络之DMA控制器
  18. java操作数据库步骤_java数据库操作基本流程
  19. 详解 n 维向量、n 维数组 和 矩阵的维度
  20. python语法元素测试_基于python全局设置id 自动化测试元素定位过程解析

热门文章

  1. 租房心经--教你如何租房子
  2. 最新百度网盘不限速教程(油猴)
  3. Win10系统提示过期,三条命令帮你搞定
  4. python如何拼读英语单词怎么写_怎么用英标快速拼读英语单词,这些技巧你知道吗...
  5. 故事版xib --view上添加tableview
  6. 2019.12.31大一练习赛
  7. sequence与sequencer
  8. 如何查看电脑上是否安装了MySQL
  9. 适合前端学习的几个网站
  10. win配置前端开发环境