ip数据报计算首部检验和

IP首部校验和字段计算方法 IP首部有16bit的校验和,因此,IP首部以16bit为单位计算校验和,IP首部的长度一定是16bit的整倍数,这是由于首部长字段的单位是32bit,首部长度不足32bit的整数倍时,会在尾部补0到32bit的整数倍。2.将首部以16bit为单位相加(因为首部中的校验和字段长度为16bit),如果结果位数大于16bit,则把高16bit和低16bit相加,此时结果的位数会小于等于16bit。,它的位数小于等于16bit,将其按位取反后填入要发送的IP首部中,1.首先把校验和的16bit置0。 阅读详情
AI摘要

文章介绍了IP数据包首部的结构,包括版本号、首部长度、服务类型等字段,并详细阐述了计算IP数据包首部检验和的步骤,涉及16比特组划分、数值相加、高位与低位相加以及网络字节序的使用,确保数据传输的可靠性和完整性。

当我们在使用互联网进行数据传输时,数据可能会被篡改或者损坏。为了保证数据传输的可靠性和完整性,计算IP数据包首部检验和是一种非常重要的校验机制。本文将会介绍计算IP数据包首部检验和的方法。

  1. IP数据包首部 

首先,我们需要了解IP数据包首部的结构。IP数据包首部包含了20个字节,由以下几个字段组成:

  • 版本号(Version):该字段用于指示IP协议的版本,IPv4和IPv6各有不同的版本号。
  • 首部长度(Header Length):该字段用于指示IP数据包首部的长度,它占据了4个比特,因此最大长度为60字节。
  • 区分服务(Type of Service):该字段用于指示IP数据包的优先级和服务类型。
  • 总长度(Total Length):该字段用于指示整个IP数据包的长度,包括首部和数据部分。
  • 标识(Identification):该字段用于标识IP数据包的唯一性,以便在数据传输过程中进行分片和重组。
  • 标志(Flags):该字段包含3个比特,用于指示IP数据包是否可以被分片,以及分片的位置。
  • 片偏移(Fragment Offset):该字段用于指示当前数据包的分片位置。
  • 存活时间(Time to Live):该字段用于指示数据包的最大生存时间,以防止数据包在网络中无限循环。
  • 协议(Protocol):该字段用于指示数据包中的数据部分使用的协议类型,比如TCP或UDP。
  • 首部校验和(Header Checksum):该字段用于校验IP数据包首部的完整性。
  • 源地址(Source Address):该字段用于指示数据包的发送方的IP地址。
  • 目的地址(Destination Address):该字段用于指示数据包的接收方的IP地址

 

 

 2.计算IP数据包首部检验和的方法

计算IP数据包首部检验和的方法非常简单,只需要按照以下步骤进行:

(1)将IP数据包首部按照16比特(即2个字节)为一组进行划分,如果IP首部长度不是16比特的整数倍,则最后一组用0补齐。

(2)将所有16比特组的数值相加(忽略溢出),得到一个32位的结果。

(3)将这个32位结果的高16位与低16位相加,直到高16位为0为止,得到一个16位的结果。

(4)将这个16位结果按位取反,得到的就是IP数据包首部检验和。

需要注意的是,在计算IP数据包首部检验和时,应该将源地址和目的地址转换成网络字节序,即大端序。网络字节序是一种规范化的字节序,用于在网络中传输数据,它的顺序与我们平时使用的主机字节序是不同的。

下面一个例子:

 

IP数据报首部检验和原理 首部检验和 首部检验和,只检验数据报的首部,不包括数据部分。 在发送方,先把IP数据报首部划分为许多16位字的序列,并把检验和字段置为0,用反码算术运算把所有16位字相加,将得到的和的反码写入检验和字段。 接收方收到数据后,将首部所有的16位字使用反码算术运算相加一次,将得到的和取反码,即得出接收方检验和的计算结果。若首部未发生任何变化,该结果为0,于是就保留这个数据报。否则就认为出错,并将此数据报丢弃。 示例: Wireshark抓包,图中蓝色的为ip数据报首部信息。 45 00 00 3c 4:版本 阅读详情

相关推荐

计算机网络-ipv4首部校验原理

步骤发送方接收方1. 准备将校验和字段置零。接收整个 IP 首部。2. 划分将首部按 16 位分组。将首部按 16 位分组。3. 求和计算所有字的反码算术和(有进位则回卷)。计算所有字(包括校验和字段)的反码算术和(有进位则回卷)。4. 取反对最终和进行按位取反,得到校验和。不取反。5. 动作将校验和填入首部,发送数据包。如果为 0xFFFF,通过;否则,丢弃。

Lowjin_的博客 1284

如何计算IP首部校验和Header CheckSum(计算详解、代码解析、例子)

首部校验和是在网络通信中常用的一种校验方法,用于验证数据包在传输过程中是否出现了错误或损坏。通常应用于网络层协议(如IP协议)的首部中。

染落林间色的博客 2万+

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1559

计算机网络首部检验和的计算

IP首部校验和的计算方法: 把校验和字段清零,对每16位(2字节)进行二进制反码求和, 反码求和的意思是先对每16位求和,再将得到的和转为反码。 IP数据报校验只对首部进行校验,不对数据部分进行校验。把首部看成16位为单位的数字组成,依次进行二进制反码求和,再把结果依次存入校验和字段中即可。 例题《计算机网络第八版》4.11 0100 0101 0000 0000 // 4 5 ,0 0000 0000 0001 1100 //28 0000 0000 0000 0001 ...

BovenNi的博客 9118

使用KITTI数据集测试不同算法的性能

该文章将使用同一个kitti数据集来测试不同算法的性能,目前已经测试的算法包括:LIO-SAM,FAST-LIO2,Point-LIO,Faster-LIO。

wwtx的博客 2586

机器人手眼标定快速精度验证方法

机器人手眼标定快速精度验证方法

laoli_的博客 1万+

IP数据报首部检验和计算方法

IP数据报首部检验和计算方法

Peter1146717850的博客 3947

蓝桥杯算法:打印图形——六芒星

【输入格式】 输入一行包含一个整数 n。 【输出格式】 输出一个六芒星,表示满足题意的图形。 【样例输入】 3 4 【样例输出】 【评测用例规模与约定】 对于所有评测用例,1 ≤ n ≤ 20。 总结: 第一次做图形题,做了蛮久,图形题有很多的方式去完成,它考验的是你能不能找到更简单的那一种方式. 我初看到这个图形,第一种想法是把这个六芒星当做六个小三角形来做,然后以某种规则排列一下,就能做出来,但是尝试了一下感觉太麻烦了。 然后我的第二种想法是,这个图形是对称图形,怎么能写出一半吗? 这样另一半想办

KeepCodeing 3835

IP数据报首部检验和的详细计算过程

IP数据报首部的检验方法的原理其实很简单,相当于我们从路的一头走到另一头,然后再从另一头走到原来的地方,如果这条路没有发生变化,那么两次路过的时候我们看到的东西应该是相同,否则就表示发生了变化。原文链接:https://blog.youkuaiyun.com/qq_49175846/article/details/117292934。

weixin_52273949的博客 3752

基于 Arduino 的鱼缸水质检测控制系统设计

本系统通过多传感器实时采集鱼缸水质参数(pH 值、温度、溶解氧、浊度),经 Arduino 主控芯片处理后,驱动执行模块自动调节水质,并通过显示模块实时展示数据。系统具备阈值报警、自动换水、温度调节、增氧等功能,适用于家庭或小型水族箱的水质智能管理。本设计提供了低成本、易扩展的鱼缸水质管理方案,适用于家庭水族箱或小型水产养殖场景,可根据实际需求调整传感器类型和控制逻辑。注:本设计如有疑问需要解惑可直接私信本人,看我个人简介。

weixin_42300449的博客 1086

【JCR一区级】鱼鹰算法OOA-CNN-LSTM-Attention故障诊断分类预测【含Matlab源码 5711期】

鱼鹰算法OOA-CNN-LSTM-Attention故障诊断分类预测 完整代码和数据,方可运行;数据可直接替换,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版)或下载付费资源,可赠送奶茶价版付费专栏指定代码1份; 3601

IP首部检验和详细计算步骤

前言 前段时间在做计算机网络的期末课设,题目就是关于IP首部检验和的计算程序实现,要实现这个程序的首要步骤就是要明白计算原理。可是我翻来找去,发现课本上对这部分的描述十分的.......干净利索。 IP首部的检验和不采用复杂的CRC检验码而采用下面的简单计算方法: 在发送方,先把IP数据报首部划分为许多16位字的序列,并把检验和字段置零。用反码算术运算把所有16位字相加后,将得到的和的反码写入检验和字段。 接收方收到数据报后,将首部的所有16位字再使用反码算术运算相加一次。将得到的和取反码,即得出

weixin_44870077的博客 2万+

37、基于铁电场效应晶体管(FeFET)的片上深度神经网络(DNN)直接反馈对齐训练

本文提出了一种基于铁电场效应晶体管(FeFET)的深度神经网络(DNN)训练加速器架构,结合直接反馈对齐(DFA)算法和FeFET的独特物理特性,以解决当前DNN训练中反向传播(BP)算法带来的高计算开销、复杂数据依赖和高能耗问题。通过设计基于FeFET的MVM引擎、低功耗ADC和随机数生成器(RNG),该架构在速度和功率效率方面相比现有基于ReRAM的加速器分别提升了1.3倍和2.5倍。研究为未来高效能AI训练硬件的发展提供了新的思路和实现路径。

wine的专栏 164

IP数据报检验和计算

在进行计算之前先补充一下基础知识。 一、原码,反码和补码 原码 原码是计算机机器数中最简单的一种形式,数值位就是真值的绝对值,符号位位“0”时表示正数,符号位为“1”时表示负数,原码又称带符号的绝对值。为了方便整数和小数区别,整数的符号位与数值位之间用“,”隔开,小数的符号位与数值位之间用“.”隔开。 举例: 以8位机器数为例,整数的“+0”原码为0,0000000;整数的“-0”原码为1,000...

qq_38904904的博客 1万+

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由(如何解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题)

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由

XiaoqiangClub的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

首部检验和

IP数据报首部中16位首部检验和的计算问题?有谁能帮帮忙,给我举给详细的例子,谢谢

helijun168的专栏 727

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IP首部检验和

<br />参考网址:<br />http://www.14edu.com/ligong/jisuanji/0Q4I5392010.html<br />http://wenku.baidu.com/view/a70e4c43336c1eb91a375d7a.html<br />  首部检验和字段是根据IP首部计算的检验和码。它不对首部后面的数据进行计算。ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。<br />  为了计算一份数据报的IP检验和,首先把检验和字段置为0

tg5156的专栏 2134

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算首部检验和

先看一下概念 我们先看一下概念 是 一行 16位 相加和 最后取反就是首部检验和了 看一下IP数据报的格式 例题: 0100 0101 0000 0000 // 4 5 ,0 0000 0000 0001 1100 //28 0000 0000 0000 0001 // 1 0000 0000 0000 0000 // 0 0000 0100 0001 0001 // 4 17 0000 1010 0000 1100 //10 12 0000 1110 0000 0101

辉小歌的博客 1万+

关于首部检验和(课本)

<br />关于计算机网络IP数据报格式那里P122:<br /><br /><br /><br />对比一下,然后看下面这个课后题(P176):<br /><br />分析引用课本IP数据报首部检验和字段的计算公式(P125):<br /><br /><br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /><br />再回过头来看这个题:<br /><br />解:<br /> <br />  特此谢谢醋醋鱼和容心对我错误文本的更正!

mygodhome的专栏 3937

【计算机网络】关于IP数据报 首部检验和的反码问题(二进制反码)

0.前言 今日,在学习谢希仁版计网的IP数据报格式时看到这段话: 用反码算术运算把所有16位字相加后,将得到的和的反码写入检验和字段。 非常疑惑,因为印象中对反码的理解是: 正数的反码是其本身 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反 在网上搜索许久无果,关于反码的定义都是我印象中那样,直到看到了书中的注释: ③两个数进行二进制反码求和的运算很简单… 恍然大悟,搜索"二进制反码" 1.二进制反码 1.1 由来 二进制反码(one’s complement)是2018年

ahLOG的博客 1666

IP数据报的检验(计算机网络)

IP数据报的检验原理及计算过程

qq_49175846的博客 4347

IP报文检验和计算

检验和的计算: 1 把16bit的“首部检验和”字段置为零 2 在IP数据报首部,以16位为单位切分成一段一段的字,计算所有字(仅首部)之和,并把求和所溢出数加到最低位上。 3 把步骤2得到的结果求反码(按位取反),得到检验和 4 把检验和存储在检验和字段中 检验和的检测:   1 计算所有16位字之和 2 接受报文中

JBchan的专栏 1132

IP数据报中的首部检验和如何发挥作用

title: IP数据报中的首部检验和如何发挥作用? date: 2019-08-14 16:53:28 tags: - 计算机网络 - 科普 categories: - 计算机网络 在IP数据报的头部中的“首部检验和”字段,它的作用是为了校验数据报 头部 在传输中是否出错。那这种功能是如何实现的呢? 下面结合一张图来说明(图片来源网络): 在说明之前要补充一个前提就是:IP数据报的长度总是4字节的整数倍 发送端: 首先我们将检验和字段的16位全置0,因为我们补充的前提,所以我们可以将头部的数据按1.

weixin_44791073的博客 3830

网络层-IP数据报的格式

我们这次来讲讲IP数据报格式的问题.    一个完整的IP数据报由首部和数据部分组成    接下介绍首部中各固定部分中的各字段 版本     占4位,指的是IP协议的版本.我们电脑上目前有IPv4和IPv6,目前IPv6还未能正式使用首部长度     占4位,可表示的最大十进制数值是15.单位为32为字长.区分服务     占8位,只有在使用区分服务的时候,这个字段才会启用.总长度

白醋白的博客 705

IP层

I P 数据报的格式如图 3 - 1 所示。普通的 IP 首部长为 20 个字节,除非含有选项字段。 首部长度指的是首部占 32 bit 字的数目,包括任何选项。由于它是一个 4 比特字段,因此 首部最长为 60 个字节。 总长度字段是指整个 I P 数据报的长度,以字节为单位。利用首部长度字段和总长度字段, 就可以知道 IP 数据报中数据内容的起始位置和长度。由于该字

marken 2554

TCP/IP检验和的理解

为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每个16bit进行二进制反码求和(整个首部看成是由一串16bit的字组成),结果存在检验和字段中。当收到一份IP数据报后,同样首部中每个16bit进行反码求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因为如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是1(即检验和错误),那么IP就

kubete的专栏 4312
上一篇: 用Java写一个关机程序(图形化界面)
下一篇: 面试题 16.19. 水域大小
天皓Oo
博客等级 码龄5年 337粉丝 61原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值