计算机网络(2)从十六进制的ip数据报中得到详细字段信息

这篇具有很好参考价值的文章主要介绍了计算机网络(2)从十六进制的ip数据报中得到详细字段信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本博文介绍如何将十六进制的ip报文拆分出具体的字段信息。社会计算机网络和网络协议分析的初学者参考(今天看了网络协议分析期末复习重点的最后一个大题,竟然一头雾水,然后快马加鞭翻阅各种资料,然后差不多学会 了)

wireshark抓包:

十六进制报文解析,网络与通信协议,计算机网络,tcp/ip,网络,Powered by 金山文档

我们看到ip字段是用45 00 00 54 00 00 00 00 ff 01 a1 a4 0c 01 01 02 0c 01 01 01标识的,我的任务就是将这一串数字读出详细的字段信息

IP报文(注意看每段标识的比特位):

注:一个单位等于4个比特位

十六进制报文解析,网络与通信协议,计算机网络,tcp/ip,网络,Powered by 金山文档

45(4bit):【4代表标识ipv4】【5单位,一个单位四个字节即头部长20bit】

00(8bit):【qos字段为空,表示没用调用qos】

00 54(16bit):【十六进制转换为十进制是84,即总长度是84字节】

00 00(16bit):【标识都为0】

00 00(16bit):【3bit标志+13bit分片偏移,当前值是0】

ff(8bit):【十六进制转十进制是255】

01(8bit):【ICMP协议号是1,所以这里代表是icmp协议,同样06代表tcp协议,07代表udp协议】

a1 a4(16bit):【当前头部校验和的值是a1a4】

0c 01 01 02(32bit):【0c转换为十进制是12】【01转换为十进制是1】【01转换为十进制是1】【02转换为十进制是2】【即源地址是12.1.1.2】

0c 01 01 01(32bit):【0c转换为十进制是12】【01转换为十进制是1】【01转换为十进制是1】【02转换为十进制是1】【即目的地址是12.1.1.1】


其中一定有没说明白的,把我整的迷迷糊糊的,要是大家有啥更好的方法,欢迎私信喷我文章来源地址https://www.toymoban.com/news/detail-578356.html

到了这里,关于计算机网络(2)从十六进制的ip数据报中得到详细字段信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python hex()十六进制转换

    Python hex() 函数用于将整数转换为以“0x”为前缀的小写十六进制字符串: 输出: 十六进制 到 十进制 使用 int() 函数 ,第一个参数是字符串 ‘0Xff’ ,第二个参数是说明,这个字符串是几进制的数。 转化的结果是一个十进制数。 二进制 到 十进制 八进制 到 十进制 其实可以看

    2024年02月11日
    浏览(49)
  • JS十六进制转浮点、字符串转为ArrayBuffer、ArrayBuffer转16进制字符串、16进制转10进制、crc校验位、十六进制转中文字符串(小程序、浏览器)、十六进制字符串转ascall字串

    h5实现一键复制文本到剪切板 ArrayBuffer转16进制字符串: 字符串转为ArrayBuffer对象 十六进制转10进制 浮点型转十六进制: 将某段字符串使用某字符补齐 十六进制转带符号(-负号)整型 带符号(负号)整数转十六进制字符串(得到8个字符十六进制字符串) 带符号(负号)整数转

    2024年02月09日
    浏览(54)
  • QML实现文件十六进制数据展示

    将一个二进制文件直接拖放到Qt Creator中可以直接查看到以十六进制显示的数据格式,如: 要实现一个这样的效果,还是要花不少时间的。 在网上找了挺多示例,其中一个开源代码效果不错(参考这里),但是是在QWidget中实现的,通过继承QAbstractScrollArea来实现数据滚动绘制

    2024年02月09日
    浏览(51)
  • python实现十六进制转十进制

    先来看下十六进制的定义以及表示方式,以下是百度百科上的解释: 十六进制 (简写为 hex 或下标16)是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15,这些称作

    2023年04月19日
    浏览(48)
  • 十六进制转换到十进制(java)

    一、前言  首先我们要知道十六进制的转换以及十以上的进制的转换与十以下的进制转换是不一样的,它们在一位上会用超过9的数字,这个我们在利用以前的方法就行不通了,我接下来就向大家分享一种方法。(注:在Java中10---15分别用A B C D E F表示,不分大小写) 二、正文

    2024年02月11日
    浏览(57)
  • 【FPGA仿真】Matlab生成二进制、十六进制的txt数据以及Vivado读取二进制、十六进制数据并将结果以txt格式保存

    在使用Vivado软件进行Verilog程序仿真时可能需要对模块输入仿真的数据,因此我们需要一个产生数据的方法(二进制或者十六进制的数据),Matlab软件是一个很好的工具,当然你也可以使用VS等工具。 以下分别给出了使用Matlab模拟产生二进制和十六进制数据的例子,例子仅供参

    2024年02月01日
    浏览(56)
  • MATLAB十六进制与十进制互相转换

    包含单个数字进行转换和数组进行转换(可用于串口数据解析) 1.十六进制转十进制

    2024年01月16日
    浏览(53)
  • [C++]十六进制和字符串互相转化

    c4 :这个写法是将二进制右移四位,15的二进制是:00001111,右移四位得到0000;所以第一位为0; c15 :这个是将二进制和15的二进制进行位与运算:与运算是都是1才为1:00001111和00001111按位与得到00001111也就是lut[15] == E; 所以得到c为0E; 然后我们就得到了这一段非法字符的十六

    2024年02月15日
    浏览(50)
  • C语言:十进制与十六进制的转化

    要将十进制数转换为十六进制数, 可以使用以下步骤: 1. 将十进制数除以 16,得到商和余数。 2. 用余数作为当前位的十六进制数位,余数可能是 0 到 15 之间的数字,分别对应 0 到 F。 3. 将商作为新的十进制数,并重复步骤 1 和 2,直到商为 0。 4. 将得到的十六进制数位按照

    2024年02月05日
    浏览(74)
  • MATLAB输出串口发送所需十六进制数据

      可以用一个文件来测试其是否符合我们的要求,将一个二进制向量转化为十六进制向量,每个十六进制数表示1byte(不足1byte前面补0),并且写入txt文件中,每byte之间用空格隔开。   打开存储路径下的txt文件,可见符合预期需求。   使用串口助手载入txt文件,可见

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包