当前位置:  技术问答>linux和unix

ip数据包的校验和

    来源: 互联网  发布时间:2016-09-01

    本文导语:      这里要说的是首部校验和字段。     在发送数据时,为了计算数IP据报的校验和。应该按如下步骤:     (1)把IP数据报的首部都置为0,包括校验和字段。     (2)把首部看成以16位为单位的数字组成,...

    这里要说的是首部校验和字段。
    在发送数据时,为了计算数IP据报的校验和。应该按如下步骤:
    (1)把IP数据报的首部都置为0,包括校验和字段。
    (2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和。
    (3)把得到的结果存入校验和字段中。
    在接收数据时,计算数据报的校验和相对简单,按如下步骤:
    (1)把首部看成以16位为单位的数字组成,依次进行二进制反码求和,包括校验和字段。
    (2)检查计算出的校验和的结果是否等于零。
    (3)如果等于零,说明被整除,校验是和正确。否则,校验和就是错误的,协议栈要抛弃这个数据包。
上面我在网上查的
我要问的是有没有可能头部被修改后检查还能通过?比如调换相邻的16bit最后计算的结果是一样的

|
校验的目的只是防止网络传输中的不完整,要求比较低。

比如奇偶校验,甚至只是检验报文个数,只需要任意修改两个报文就能通过校验,因为校验本身是只防君子不防小人了。

如果要做很严格的校验,那就不是一两个位就能搞定了的,MD5都用了整整32个字符。

|
补充一下四楼的说法。

这个校验的确只是防止数据在传输中出错的时候来用的,从编码角度来看,一种纠错编码能识别的错误长度是N,那么当出错的bit数超过N以后,是无法识别出来的。

比如奇偶校验,有用吗?有用!串口通讯就是用的奇偶校验。那你要问了,我如果错了2个bit,那奇偶校验和不变呀!对!所以你如果真要数据无损传输,还需要在应用时另外再加上数据校验方法,比如数据传输完了,计算一下crc之类。

crc对于数据完整性是很管用的,随便哪里出错一点就会校验不通过;但不要指望能防止恶意篡改数据。毕竟crc算法是公开的,我改了其中某个字段,然后顺手把crc校验和也给你改了,你自然发现不了。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.print类docflavor的类成员方法:服务格式化打印数据定义及介绍
  • 如何监控数据库的数据,如果数据库数据更改,就通知Server
  • <<大话数据结构>>中冒泡排序算法改进
  • 如何从数据库中或文本文件中提取数据到另一个数据库中?
  • java命名空间javax.print类docflavor的类成员方法:客户端格式化打印数据定义及介绍
  • 用JDBC连接Oracle数据库时,如何向数据库中写日期型数据(格式)?谢了!
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • linux下用libpcap库函数抓包,如何判断捕获的数据包是IP数据包还是非IP数据包,顺便说一下、捕获的数据包除了IP数据包之外,还有那些种类,非常感谢!!!
  • c#多线程更新窗口(winform)GUI的数据
  • 建立一个ftp数据连接并传送或接受完毕一些数据后,能否不关闭此数据连接,下次接着用?
  • 基于Hadoop的数据挖掘框架
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 串口应用程序,当对方发送大量的数据时,本方的数据无法发出。对方停止发送,本方的数据仍然无法发出。不知道是什么原因。
  • Linux c++库boost unordered_set数据插入及查找代码举例
  • 公司要给客户做报表,从数据库返回数据,他们死活要返回的格式为Excel格式,请问我怎样才能把数据库返回的数据存为Excel的格式?
  • 文档数据库mongodb与列式数据库hbase详细比较
  • 数据在页面写不进数据库,也不可以从数据库中读出是什么原因?
  • SQL Server 2008如何进行数据库分离和附加详细介绍
  • mysql 本地数据库如何从远程数据库导数据
  • nosql数据库levedb介绍及levedb最新版1.18下载安装
  • 散分:Jbuilder6开发数据库应用请问你们都用什么数据库? 免费的数据库有那些?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3