当前位置: 首页 > news >正文

网络协议分析(2)判断两个ip数据包是不是同一个数据包分片

一个节点收到两个IP包的首部如下:

(1)45 00 05 dc 18 56 20 00 40 01 bb 12 c0 a8 00 01 c0 a8 00 67

(2)45 00 00 15 18 56 00 b9 49 01 e0 20 c0 a8 00 01 c0 a8 00 67

分析并判断这两个IP包是不是同一个数据报的分片?如果是那将二者排序,并判断是否能重组完成。

大家可以点击链接参考我之前的文章:网络协议分析(1)已知ip包内容,分析报文内容及作用

这个问题主要考察ip数据包的分片与重组,记住下面这句话:

判断是不是来自同一数据报,需要看这两个ip包的标识,协议,源ip,目的ip

MF=0,则是最后一片,MF=1,不是最后一遍。

答:

由以上数据可知,两个数据的标识位都为18 56(十六进制),换算成十进制为6230,协议都为01(十六进制),换算成十进制为1,源ip地址都为c0 a8 00 01,换算成十进制为192.168.0.1,目的ip地址都为c0 a8 00 67,换算为十进制为192.168.0.103,故两个ip包来自于同一数据报。

由第一个数据包可知:标志和片偏移为20 00(十六进制),换算为二进制位0010 0000 0000 0000,格式为:

由第二个数据包可知:标志和片偏移为00 b9(十六进制),换算为二进制为0000 0000 1011 1001,

格式为:

第一个MF为1,片偏移量为0,故为这是第一个分片的数据报,第二个MF为0,故这是最后一个分片的数据报。

检验是否可以重组,就需要检验一数据报的数据长度和二数据报的片偏移*8,由一数据报数据可得,首部长度为20,总长度为05 dc(十六进制),十进制为1500,则数据部分长度=总长度-首部长度,为1480,等于二数据报片偏移(185)*8,故两个数据报可以重组完成。

注:标红的这个8,大家要记住,固定就是乘8

http://www.lryc.cn/news/21138.html

相关文章:

  • 6.2 负反馈放大电路的四种基本组态
  • MySQL进阶之锁
  • 【Mac 教程系列】如何在 Mac 上破解带有密码的 ZIP 压缩文件 ?
  • 【Acwing 周赛复盘】第92场周赛复盘(2023.2.25)
  • L1-087 机工士姆斯塔迪奥
  • 本周大新闻|索尼PS VR2立项近7年;传腾讯将引进Quest 2
  • aws console 使用fargate部署aws服务快速跳转前端搜索栏
  • Redis实战之Redisson使用技巧详解
  • SQLAlchemy
  • 【Linux学习笔记】8.Linux yum 命令和apt 命令
  • windows服务器实用(4)——使用IIS部署网站
  • Random(二)什么是伪共享?@sun.misc.Contended注解
  • Linux解压压缩
  • JavaSe第3次笔记
  • 非人工智能专业怎样从零开始学人工智能?
  • MyBatis之增、删、查、改
  • 死磕Spring,什么是SPI机制,对SpringBoot自动装配有什么帮助
  • 因果推断10--一种大规模预算约束因果森林算法(LBCF)
  • Linux基础命令-df显示磁盘的使用情况
  • 如何使用goquery进行HTML解析以及它的源码分析和实现原理
  • 【Java 数组和集合 区别及使用案例】
  • 使用pynimate制作动态排序图
  • Mysql 事务的隔离性(隔离级别)
  • 2023年网络安全竞赛——Python渗透测试PortScan.py
  • 【数据结构】栈的接口实现(附图解和源码)
  • LC-1255. 得分最高的单词集合(回溯)
  • 从中国文化看面试挑人标准
  • 谦卑对象设计模式
  • QML Animation动画详解
  • C#开发的OpenRA的加载界面边框的细节