IP数据报检验和计算

2023-11-10

在进行计算之前先补充一下基础知识。

一、原码,反码和补码

原码

原码是计算机机器数中最简单的一种形式,数值位就是真值的绝对值,符号位位“0”时表示正数,符号位为“1”时表示负数,原码又称带符号的绝对值。为了方便整数和小数区别,整数的符号位与数值位之间用“,”隔开,小数的符号位与数值位之间用“.”隔开。
举例: 以8位机器数为例,整数的“+0”原码为0,0000000;整数的“-0”原码为1,0000000;小数的“+0”原码为0.0000000,小数的“-0”原码为1.0000000

反码

正数的反码就等于原码,负数的反码相当于除了符号位之外,其他位取反。
举例: 整数的“+0”反码为0,0000000;整数的“-0”原码为1,1111111;小数的“+0”原码为0.0000000,小数的“-0”原码为1.1111111

补码

正整数的补码是其二进制表示,与原码相同;
负整数的补码为反码加1;
举例: +1的补码为0,0000001;
-1的补码为1,111 1111

二、IP数据报中,首部检验和计算方法

这个字段用来检验数据报的首部,不包括数据部分。数据报每经过一个路由器,路由器都要重新计算首部检验和。不检验数据部分可以减小计算量。
计算方法: 先把IP数据报首部化为许多16位的序列,并把检验和字段置零。用反码运算把所有16字相加后,将得到的和的反码写入检验和字段。接收方收到数据后,将首部的所有16位子序列再使用反码算术符相加一次,将得到的和取反码。如果首部未发生任何变化,那么这个和肯定为0。否则认为出差错,并将此数据报丢弃。

反码相加:从低位向高位计算,0 0 得0 ,0 1 得1 ,1 1 得0 进1,如果最高位相加后产生进位,最后得到的结果加1。

例题:设IP数据报使用固定首部,其个字段的数值如图。计算下列IP数据报首部的检验和,各字段的数值如图
在这里插入图片描述
4 5 0 —>01000101 00000000
28 —>00000000 00011100
1 —>00000000 00000001
00 —>00000000 00000000
4 17 —>00000100 00010001
10.12.14.5 —>00001010 00001100 00001100 00000110
12.6.7.9 —> 00001110 00000101 0000111 00001001
反码运算:
01110100 01001110
取反,得到检验和字段:
10001011 10110001

使用16进制算法(每16位二进制数字,转换为4个十六进制数字表示)
4 5 0 —>4500
28 ---->001C
1 --------->0001
0 0 —>0000
4 17 ---->0411
10.12.14.5 —> 0A0C 0E05
12.6.7.9 -->0C06 0709
加法结果:744E
反码:8BB1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IP数据报检验和计算 的相关文章

随机推荐

  • D3D9Texture::_loadNormTex

    D3D9Texture loadNormTex D3D9Texture loadImpl
  • 消息中间件---RabbitMQ

    目录 1 消息队列 1 1 MQ相关概念 1 1 1 什么是MQ 1 1 2 MQ的功能 1 2 RabbitMQ 1 2 1 概念 1 2 2 四大核心概念 1 2 3 RabbitMQ核心部分 1 2 4 名词介绍 2 Work Que
  • B. Permutation

    Problem B Codeforces include
  • pandas中对列进行上下平移(shift)

    在利用Python进行数据操作时 有时需要对数据某列数据进行上下平移 比如对某一列进行错位加减 pandas里的groupby和shift两个函数就能轻松实现上述操作 df pd DataFrame name a a a b b c val
  • 新系统如何确定性能测试目标

    前提 新系统上线没有明确数字对比 性能需求非可度量 完成目标 1 服务器的某些资源已耗尽 如CPU 内存 句柄 数据库存在大量slow query 2 需求证明系统是可水平扩展的 即增加服务器配置系统TPS 吞吐量 能上去
  • 回忆,这一年(华师918血泪贴)

    回忆 这一年 华师918血泪贴 考研前夕 回想一年前 当时这个时候我应该刚通过了部门的实习答辩 拿了不错的评分 不出意外就等着签三方了 打算骑牛找马看看秋招的机会 但是双非出身的我 一直希望摆脱那种囚笼困境 需要付出比常人更多才能得到人家脱
  • 【五一创作】跑alpaca-lora语言模型的常见问题(心得)

    训练部署alpaca lora语言模型常见问题 Alpaca Lora是一个开源的自然语言处理框架 使用深度学习技术构建了一个端到端的语言模型 在训练和部署alpaca lora语言模型时 可能会遇到一些常见问题 本文将介绍一些这些问题及其
  • 计算机应用基础绩点3.0,学分绩点和期末考说明(华师).doc

    学分绩点和期末考说明 华师 doc 由会员分享 提供在线免费全文阅读可下载 此文档格式为doc 更多相关 学分绩点和期末考说明 华师 doc 文档请在天天文库搜索 1 关于学分绩点的一些说明首先 我们先来了解下几个概念吧1 学分 是用于计算
  • 【CANN训练营】Ascend目标检测与识别-定制自己的AI应用

    参考 https gitee com ascend samples tree master cplusplus level3 application 1 cv detect and classify 1 准备工作 cd samples cp
  • python画易烊千玺_Python02

    class A object def init self 私有 在变量名称前加上 私有 不可继承 不可在外部调用 但是可以在内部调用 self a 1000 约定使用 来表示私有 self def B self print self a A
  • python(数据分析)第4天:绘制网格

    plt grid import matplotlib pyplot as plt import random import matplotlib from matplotlib import cycler from matplotlib f
  • 解决ssh_exchange_identification: read: Connection reset by peer

    解决ssh exchange identification read Connection reset by peer linux远程免密登陆出现上述报错 1 先在远程机器上 vi etc hosts allow 在里面写入 允许所有ip连
  • Pyspark的dataframe写入hive表

    文章最前 我是Octopus 这个名字来源于我的中文名 章鱼 我热爱编程 热爱算法 热爱开源 所有源码在我的个人github 这博客是记录我学习的点点滴滴 如果您对 Python Java AI 算法有兴趣 可以关注我的动态 一起学习 共同
  • 第八章,索引的创建与设计原则

    第八章 索引的创建与设计原则 1 索引的声明与使用 1 1 索引的分类 SQL的索引包括普通索引 唯一性索引 全文索引 单列索引 多列索引和空间索引等 功能逻辑上说 索引主要有 4 种 分别是普通索引 唯一索引 主键索引 全文索引 按物理实
  • 面试题-Java集合、IO

    一 Java集合 HashMap的内部结构 扩容 为什么是2的幂次方 https www cnblogs com chengxiao p 6059914 html HashMap的实现原理 http www importnew com 27
  • 三个空饮料瓶可以换一瓶饮料,给你1箱(50瓶)饮料,你能喝多少瓶饮料?

    突然想起来了一道小学生的数学题 三个空饮料瓶可以换一瓶饮料 给你1箱 50瓶 饮料 你能喝多少瓶饮料 哈哈 于是写了一段代码 不知道还有没有高人了指点下 本人小菜鸟一只 function demo num kong test num2 nu
  • 第三章部分作业重新调试结果(第五周)

    求 百钱百鸡 问题 鸡翁一值钱五 鸡母 一值钱三 鸡雏三值钱一 百钱买百鸡 问鸡翁 鸡母 鸡雏各几何 设买了x只鸡翁 y只鸡目 z只鸡雏 则有 x y z 100 5 x 3 y 1 3 z 100 15 x 9 y z 300 inclu
  • 变分贝叶斯

    Variational Bayesian inference 参考文献 徐亦达老师变分推断课件 A tutorial on variational Bayesian inference 白板推导指数族分布 白板推导变分推断 Log like
  • 实测最像ChatGPT的中文产品:能解释三体、懂弱智吧的梗,内测开启人人都能试!...

    明敏 发自 凹非寺量子位 公众号 QbitAI 最像ChatGPT的中文产品 出现了 昨晚 一个名叫Inspo的生成式对话AI 刚刚在 民间 开启内测 马上引发不小反响 体验过的博主表示 1分钟搞定3份策划 工作5年没它能写 有人自己上手试
  • IP数据报检验和计算

    在进行计算之前先补充一下基础知识 一 原码 反码和补码 原码 原码是计算机机器数中最简单的一种形式 数值位就是真值的绝对值 符号位位 0 时表示正数 符号位为 1 时表示负数 原码又称带符号的绝对值 为了方便整数和小数区别 整数的符号位与数