5.2.4 IP数据报(二)分析Wireshark捕获的数据帧

news2024/11/29 2:28:08

5.2.4 IP数据报(二)分析Wireshark捕获的数据帧

为了更好的理解IP数据报的格式,我们通过一个实例学习IP数据报的格式

示例

例:使用数据报捕获工具Wireshark采集我自己主机传输的一条报文,其中有个数据帧的内容如图所示(均用16进制表示),这里我们分析这个帧中分装的IP数据报中的一些关键字段。

这里我们需要补充一点知识

  1. 如图左边的部分数据帧至字节的编号

    表示的是数据帧至字节的编号,比如第一行0000表示右边第一个字节的编号是第零个字节,第二行0010表示该行右边第一个字节的编号是数据帧的第0010H也就是第16个字节,第三行0020表示该行右侧第一个字节的编号是数据帧的第0020H也就是第32字节,以此类推。

  2. 如图右侧部分数据帧内容
    表示的是数据帧的内容,每一行是16个字节,均用十六进制表示

  3. 如图以太网帧结构
    让我们回忆一下第四章学习以太网的时候介绍的帧结构,如图在帧的首部有6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的协议类型字段如果该字段是0800H就表示该帧的数据部分封装的是来自于上层的IP数据报,接下来就是数据字段了,封装的如果是IP数据报的情况下那么该帧的数据字段的第一个字节就是IP数据报首部的第一个字节了。

在明白了封装关系后我们才能回答以下问题。我们先来分析一下这个数据帧

如图,前六个字节是目的MAC地址目的主机MAC地址
表示接收该帧的主机的MAC地址。

如图,接着的六个字节是源MAC地址源主机MAC地址
表示该帧是谁发的。

如图,接下来的两个字节是协议类型字段协议类型
我们可以看出该字段值为0800H,也就是该数据帧的类型是IP数据报。

有了以上的知识我们就可以分析帧中后面紧跟的IP数据报了,并回答一下问题。根据上一节我们学习的IP数据报的格式,第一个字节有8个比特位其中前面四个比特位时版本号版本号
这里的版本号是4,也就代表了IPv4。

  1. 数据报首部长度为多少字节?

    我们知道在IP数据报中紧跟着版本号4后面的四个比特位就是我们IP数据报首部长度,如图数据报首部长度
    这里的数值是5,因为该字段的单位是4字节,也就是标识语数据报首部长度为 5 × 4 = 20 5\times4=20 5×4=20个字节。这里我们要注意首部长度的单位是4个字节。也就是说从4开始的20个字节就是这个IP数据报的首部。在首部长度后面的一个字节8个比特位代表了服务类型。

  2. 数据报的总长度是多少字节?

    根据IP数据报组成我们可以知道在服务类型后的16个比特位2个字节代表了数据报的总长度如图数据报总长度
    转换成十进制之后 7 × 1 6 0 + 6 × 1 6 1 + 1 × 1 6 2 = 7 + 96 + 256 = 359 7\times16^0+6\times16^1+1\times16^2=7+96+256=359 7×160+6×161+1×162=7+96+256=359个字节。

  3. 数据报的协议字段是多少,表示什么协议?

    我们知道在数据报总长度后面紧跟的4个字节32个比特位分别表示了标识、标志、片偏移如图数据分片
    紧随其后的1个字节8个比特位就是生存时间TTL,后面的8个比特位1个字节便是数据报协议字段,也就是IP数据报首部的第十个字节如图数据报协议
    这里的值是06H,表示该IP数据报的数据部分封装的是来自于上层TCP协议的报文。

  4. 源主机和目的主机的IP地址分别是什么?

    我们知道IP数据报的首部每一行都是32个比特位,4个字节,而源主机位于第四行的四个字节,也就是说是从IP数据报首部的第13个字节开始后的四个字节如图源IP地址
    ,表示的是 2 × 16 + 15.6 × 16.15 × 16 + 13.6 × 16 + 9 2\times16+15.6\times16.15\times16+13.6\times16+9 2×16+15.6×16.15×16+13.6×16+9即47.96.253.105,目的地址则是从IP数据报首部的第17个字节开始后的四个字节如图目的IP地址
    表示的是 12 × 16.10 × 16 + 8.16 + 15.4 × 16 + 14 12\times16.10\times16+8.16+15.4\times16+14 12×16.10×16+8.16+15.4×16+14即192.168.31.78

  5. 当前主机的TTL值是多少?

    我们知道TTL字段位于第三行的第二个字节,也就是IP数据报首部中的第九个字节,如图在这里插入图片描述
    表示 3 × 16 + 3 = 51 3\times16+3=51 3×16+3=51。这里我们知道每经过一个路由器的转发这里的TTL值就会减一,如果我们知道这个IP数据报发送时的初始值我们就知道从源目的主机到我的机器之间一共经历了多少个路由器。

这里我们还应该知道,目的IP地址后面的字段是什么,我们知道该IP数据报的首部长度为20个字节,只有固定部分没有扩展部分,这说明在目的IP地址之后就是我们的IP数据报的数据部分即我们的TCP报文段,关于TCP报文段我们在后面的传输层具体的学习。

以上就是我们通过捕获到的数据帧以及IP数据报进行分析,我们一定要掌握分析的方法,特别是16进制和10进制或者二进制之间的转换不能出错,后面我们就要学习有关IP数据报的分片与重组。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/597564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

凝心聚力,共创未来 | 2023 开放原子全球开源峰会 OpenCloudOS 社区年会即将启幕

近年来,随着云原生技术的不断发展,催生出越来越多的新场景。作为企业 IT 系统的底层技术,其操作系统所面临的问题也变得越来越复杂。面对云原生等新技术对操作系统提出的新挑战、新要求,如何凝聚生态合作伙伴的优势力量&#xff0…

AI|用过的AI工具都给你整理好了

AI|用过的AI工具都给你整理好了 最近两周冷静下来了,而且个人状况因为二阳有所影响,没有过多关注这些AI工具;前两天给公司伙伴分享的契机,整理了一下这两个月用过的一些AI工具,部分是日常工作也在使用的&a…

展望开源产业与数字经济未来|2023 开放原子全球开源峰会开源创新理论与实践分论坛即将启幕

开源创新社会实践催生伟大的理论,也需要伟大理论的指导。在这个数字化和信息化高速发展的时代,开源技术已经成为推动科技进步和创新的关键力量,仍在不断创新迭代的开源理论及其实践更是深刻影响着与开源行业深度绑定的数字经济的未来发展。 6…

如何将多张图片分别生成二维码?图片批量建码怎么做?

当我们想要将图片生成二维码时,一般会使用二维码生成器(免费在线二维码生成器-二维码在线制作-音视频二维码在线生成工具-机智熊二维码)来操作,只需要上传图片就可以一键生成二维码,操作非常的简单快捷。那么当我们需要…

1167 Cartesian Tree(37行代码+详细注释)

分数 30 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 A Cartesian tree is a binary tree constructed from a sequence of distinct numbers. The tree is heap-ordered, and an inorder traversal returns the original sequence. For example, given the sequence …

火山引擎DataLeap的Catalog系统搜索实践 (二):整体架构

整体架构 火山引擎DataLeap的Catalog搜索系统使用了开源的搜索引擎Elasticsearch进行基础的文档检索(Recall阶段),因此各种资产元数据会被存放到Elasticsearch中。整个系统包括4个主要的数据流程: 实时导入。资产元数据变更时相应…

华为路由器 IPSec VPN 配置

需求&#xff1a; 通过 IPSecVPN 实现上海与成都内网互通 拓扑图如下&#xff1a; 一、首先完成网络配置 1、R1 路由器设置 <Huawei>sys [Huawei]sys R1 [R1]un in en# 开启DHCP [R1]dhcp enable# 设置内网接口 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip addr 10.…

基于Springboot+Vue的校园招聘系统(进阶版)

本项目是一年前写的一个项目的升级版&#xff0c;因为某些原因将它作了一个升级改进&#xff0c; 好多兄弟来问有没有演示&#xff0c;现在先来写个说明&#xff01;&#xff01;&#xff01; 目录 一. &#x1f981; 前言二. &#x1f981; 开源代码与组件使用情况说明三. &am…

工作笔记-volta,package打包,

第一个 &#xff1a;前端项目启动错误 今天写前端工程的时候&#xff0c;运行了npm run dev&#xff0c;结果出现以下问题&#xff0c; 先认为是node版本原因&#xff0c;我的是14&#xff0c;同事说要切换到12&#xff0c;于是切到了12&#xff0c; 用到了volta , 安装和使用…

大咖云集共话AIGC,亚马逊云科技中国峰会亮点抢先看

充满想象的AIGC时代&#xff0c;企业如何抓住机遇实现双效提升&#xff1f;要说2023年科技圈顶流话题&#xff0c;非AIGC&#xff08;AI-generated Content&#xff0c;人工智能生成内容&#xff09;莫属。当前&#xff0c;以GPT模型为代表的AIGC正在持续渗透各行各业&#xff…

信道的数学模型

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 信道的数学模型广义…

OpenMMLab-AI实战营第二期-课程笔记-Class 1:开营仪式OpenMMLab概述

Class 1&#xff1a;开营仪式&OpenMMLab概述 文章目录 Class 1&#xff1a;开营仪式&OpenMMLab概述开营仪式OpenMMLab 简介why&#xff1f;when&#xff1f;what&#xff1f;for who&#xff1f;OpenMMLab 总体框架 二十分钟入门计算机视觉开源神器OpenMMLabOpenMMLab概…

SQL审核工具Yearning搭建及使用

一、背景 实际的业务场景中&#xff0c;我们难免会直接对生产库的数据进行修改。很多朋友都是发sql给运维&#xff0c;然后运维执行。过程不可控&#xff0c;出错几率很大。 而且没有审核&#xff0c;不知道提交的具体是什么sql&#xff0c;极有可能是删库跑路的sql&#xff0…

0基础学习VR全景平台篇第34篇:场景功能-沙盘功能

本期为大家带来蛙色VR平台&#xff0c;场景功能—沙盘功能的操作讲解。 功能位置示意 一、本功能将用在哪里&#xff1f; 沙盘功能&#xff0c;可将区域的平面图、卫星图、手绘图等上传或直接使用高德地图信息&#xff0c;嵌入在VR全景作品中呈现出来&#xff1b; 支持嵌入沙…

【OpenCV】OpenCV4.7.0 + Visual Studio 2019环境配置 + 运行opencv

本文目录 01、OpenCV的下载与安装02、Visual Studio 2019环境配置03、OpenCV接口测试 01、OpenCV的下载与安装 这里贴上网址&#xff1a; https://opencv.org/ 进入会看到主界面&#xff0c;跟着一步一步来下载就好&#xff1a; 当把上面这个下载下来之后&#xff0c;会得到一…

git merge和git rebase有什么区别?

git merge和git rebase有什么区别 git rebase和git merge是在日常开发中常用的用于分支合并的命令&#xff0c;也是非常容易误用的两个命令。本文将通过图文的方式去详解二者之间的区别。 git merge git merge会为本次的合并过程生成一条新的commit&#xff0c;并将该commit…

亚马逊云科技中国峰会带你玩转AIGC全攻略原

充满想象的AIGC时代&#xff0c;企业如何抓住机遇实现双效提升&#xff1f;要说2023年科技圈顶流话题&#xff0c;非AIGC&#xff08;AI-generated Content&#xff0c;人工智能生成内容&#xff09;莫属。当前&#xff0c;以GPT模型为代表的AIGC正在持续渗透各行各业&#xff…

LLVM for TVM

田海立CSDN 2023-06-01 本文简明列举LLVM作为target&#xff0c;如何集成到TVM里的。 {cmake/modules/LLVM.cmake} 0. 设置编译选项 -- USE_LLVM build option: - USE_LLVM: ON/OFF/<path to llvm-config> {set in cmake/config.cmake, and copy into build/} 1. 执行…

Linux系统上安装VScode且配置C/C++环境

Linux系统给人的印象一直是命令行的形式&#xff0c;今天终于长了见识&#xff0c;其实Linux系统也可以像Windows系统一样&#xff0c;安装、使用VScode软件 1 进入VScode官网下载VScode Linux安装版2 将下载到电脑上压缩包通过tcp指令传到Linux系统上3 在放置安装包的目录下通…

java实现文档部分预览与全预览功能

这里使用的是kkFileView插件&#xff0c;部署在服务器上&#xff0c;使用其生成预览内容&#xff0c;官网地址是&#xff1a;kkFileView - 在线文件预览 下载地址为&#xff1a;kkFileView 4.1.0 版本发布&#xff0c;开源在线文件预览解决方案 - OSCHINA - 中文开源技术交流社…