wireshark以太帧的分析

2023-05-16

首先应该明白,封装以太帧的位于OSI七层模型的第二层,也就是数据链路层,wireshark可以把完整的以太帧抓起来,我们可以清楚的看到。打开wireshark找到自己ip对应的网卡,点开,随便点一个协议,这里以UDP协议为例子,截图如下

在这里插入图片描述 上面:
Frame,
Ethernet II,
Internet Protocol Version 4,
User Datagram Protocol。
分别对应 :
1:以太帧总信息,
2:以太帧头部,
3:IP 数据包,
4:UDP数据包。
他们是有联系的,且看我在下面解释。
第一个解释,Frame 2: 54 bytes on wire (432 bits), 54 bytes captured (432 bits) on interface 0, 这句话的意思就是数据帧号码2,捕获了54字节。也就是435位(一字节等于八位),在interface 0上面,也就是在网卡0上面(一个机器可能有多个网卡)。需要注意的是,以太帧工作在数据链路层,在数据链路层有个MTU的概念,也就是最大传输单元,其实就是下图的Data部分,注意不是以太帧的总长度。任何一个以太帧都不能超过MTU设置的字节数(一般为1500字节),如果超过了,比如IP数据报太大了,就需要对IP数据报进行分片处理。让一个IP数据报分片成为关联的多个IP数据报。

第二个解释,以太帧的包头,在讲解以太帧的时候,先说说以太帧有两种格式。,第一种格式为Ethernet II帧格式,也就是wireshark抓包最容易看到的。第二种为IEEE802.3格式。常用的就是第一种Ethernet II 格式。下面我们把Ethernet II格式的字节结构贴出来看一下,如下图:

在这里插入图片描述 

 这张图片清楚的说明了Ethernet II 的结构信息。先贴个图在解释:

在这里插入图片描述 点开Ethernet II 可以清楚的看到里面包含了三个信息,Destination, Source,Type依次对应着结构图上面的DMAC SMAC TYPE 类型,而我们的type类型为IPV4也就是它是一个ip包,版本是v4。这就说明type类型对应的就是这个以太帧的高级层协议,结构图上面还标明了它还可以对应APR协议,也就是说,以太帧即可以与网络层相关联(IP协议),也可以与第二层数据链路层相关联(ARP协议)。然而这里我们对应了IP协议。这就说明以太帧把每层都联系了起来。
下面就说说第三个,ip协议的内容,先上一张IP协议格式图如下:

在这里插入图片描述 

 IP协议的内容还是比较多,我们只拣重点的说出来。首先一个IP数据包包含首部与数据部分(浅蓝色为首部,黄色为数据部分)。数据部分就是要传递的数据。比如TCP协议的数据,UDP协议的数据,这里我们先不讲,先说首部,它是由不可变部分与可变部分来组成的。不可变部分,固定长度,20个字节,也就是上图的前五行,每行从0-31共32位,也就是四个字节。4X5=20个字节,这20个字节是固定不变的,下面我们重点说说这20个字节里面的重点字段。下面我们贴出来wireshark对应的ip结构图如下:

在这里插入图片描述 第一个红圈,Header Length,也就是首部的长度,注意0101转换成十进制就是5,然而它不等于说5就是首部的长度,因为它的一个单位代表32位,也就是四个字节。所以5X4=20正好是20个字节,说明这个UDP协议(怎么看出来是UDP协议,请看下面解释。)只有固定的首部,没有多余的那些。另外需要知道,因为首部长度的最小单位就是四个字节,所以当协议有可选字段的时候,会增加填充,直到它是4个字节的整数倍,所以才有了上图IP包的填充图示。然后再说一下total length,也就是这个ip数据包的总长度,首部加上数据部分的长度。最重要的字段就是Protocol,也就是这个IP数据包包含的高层协议,传输层协议,看名字就知道这个我们分析的IP数据包包含的协议为UDP。还有比较重要的两个字段也就是Source 还有Destnation,这里封装了源ip地址也就是我们本机的,还有目标ip,也就是我们将要连接的那个ip地址。
下面我们移步第四个内容UDP协议。先上一张wireshark的UDP图如下:

在这里插入图片描述 由于udp的字节结构比较简单,也就四个部分,如上图中圈出来的四个红圈,所以就不贴出来结构图了,下面我来说明一下,这四个字段每个占用16位,也就是两个字节,所以可以确定,UDP的首部固定位8个字节,前两个字节Source Port 表示源端口,也就是本机的UDP端口。Destination Port表示目标主机的端口。然后就是长度,Length,他也是首部加上数据部分的长度,上图位37,37减去首都的长度8,也就是29,表示此udp数据包(或者叫做UDP数据报)的数据部分是29字节。具体是什么,请看下面选中的部分如下图:

在这里插入图片描述 选中的部分就是data,我划红线遮挡的是以太帧的目标mac与源mac地址。下面基本上就把这一个以太帧讲完了。
还剩一个以太帧最后一个四个字节的FCS,它主要是做循环冗余校验用的。然而仔细的你可能会发现,以太帧的总长度是71字节,ip数据报的total length是57字节,加上以太帧的报头(6+6+2=14)14字节,57+14=71字节,然而,少了后面的FCS四个字节哪里去了?是不是我们计算错误了?显然我们的计算是正确的,这是因为路由器等硬件吧以太帧的校验做过了,它返回给操作系统的只有前面的部分,FCS没有返回给操作系统,所以wireshark也抓不到后面校验的四个字节,当然,校验错误的以太帧也不会被wireshark所捕获,所以,我们看到的以太帧都是通多校验的正确的以太帧。
 

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

wireshark以太帧的分析 的相关文章

  • Wireshark抓包——IP协议分析

    一 实验目的 通过本次实验 掌握使用Wireshark抓取TCP IP协议数据包的技能 能够深入分析IP帧格式 通过抓包和分析数据包来理解TCP IP协议 进一步提高理论联系实践的能力 二 实验内容 1 本次实验重点 利用Wireshark
  • BGP基础配置——路由反射器

    目录 前言 一 实验拓扑图 二 实验需求 三 配置步骤 1 AS内建立邻居 2 AS间建立邻居 3 验证邻居关系 4 建立路由反射 五 实验观察 六 总结 前言 网盘资源 https wwa lanzoub com iV6eR0qjhhvg
  • Wireshark抓包解释说明

    Wireshark与对应的OSI七层模型 TCP三次握手 TCP三次握手的理论知识 wireshark三次握手对应的报文情况 图中可以看到wireshark截获到了三次握手的三个数据包 第四个包才是HTTP的 这说明HTTP的确是使用TCP
  • wirehark数据分析与取证Alpha-1.pcapng

    什么是wireshark wiresharek Alpha 1 pcapng数据包分析 数据包已上传资源 有问题请私信博主 wiresharek Wireshark 前称Ethereal 是一个网络封包分析软件 网络封包分析软件的功能是检索
  • wireshark数据包分析实战 读书笔记

    由头 永久链接 之前读了很多书籍 但是现在回顾的时候 很多内容仅仅是熟悉 而不是真正掌握 所以尝试一种新的方式 将读书时觉得比较重要的 或者是自己还不理解的东西记录下来 达到这本书我已经不需要再去翻 只要看笔记即可的效果 第一章 数据包分析
  • 【网络】Wireshark分析RST消息

    文章目录 前言 1 定义 2 有三个条件可以产生RST 3 说明 4 RST数据报文产生情况 1 端口未打开 系列文章 Wireshark分析Netty建链过程 tcp三次握手 osi模型 IPV4数据报头部格式 Wireshark分析RS
  • 【转载】wireshark抓包教程详解

    Wireshark软件安装 软件下载路径 wireshark官网 按照系统版本选择下载 下载完成后 按照软件提示一路Next安装 说明 如果你是Win10系统 安装完成后 选择抓包但是不显示网卡 下载win10pcap兼容性安装包 下载路径
  • 网络抓包工具 wireshark 入门教程

    Wireshark 前称Ethereal 是一个网络数据包分析软件 网络数据包分析软件的功能是截取网络数据包 并尽可能显示出最为详细的网络数据包数据 Wireshark使用WinPCAP作为接口 直接与网卡进行数据报文交换 网络管理员使用W
  • WireShark常用过滤规则

    一 地址过滤 对源地址及目的地址过滤 ip src 192 168 0 1 ip dst 192 168 0 1 对源地址或者目的地址过滤 ip addr 192 168 0 1 排除某个地址数据包过滤 ip addr 192 168 0
  • LINUX上wireshark无权限问题

    1 查找dumpcap目录 sudo find name dumpcap 2 增加wireshark组 sudo groupadd wireshark 3 将dumpcap目录权限给于wireshark组 并给于相关权限 sudo chgr
  • Chrome 和 Firefox CORS AJAX 调用在某些 Mac 计算机上中止

    我们有一个网页 www saddleback com live Chrome 和 Firefox CORS AJAX 调用在某些 Mac 计算机上会中止 在装有 OSX 10 9 最新更新 Chrome 和 Firefox 最新更新 的 M
  • 如何自动测量两台主机之间的带宽使用情况

    我有一个具有 TCP 客户端和服务器的应用程序 我在不同的机器上设置客户端和服务器 现在我想测量消耗了多少带宽 在应用程序的单次运行期间发送和接收的字节数 我发现wireshark就是这样一个可以帮助我获得统计数据的工具 然而 wiresh
  • 如何在wireshark中仅导出可打印文本(或任何其他数据包属性)

    长话短说 我正在使用 Wireshark 将 SQL 从供应商工具捕获到 Oracle 数据库 它已经有 TNS 协议的解码器 这很棒 我可以通过以下方式访问 SQL 文本 Right Click gt Copy gt Bytes Prin
  • 使用 tshark 过滤 VoIP 呼叫

    我正在分析网络上的 VoIP 呼叫 目前我正在使用生成的 pcap 文件 但稍后我将实时监听该文件 我正在使用 tshark 我可以很容易地从 pcap 中过滤一些重要数据 例如 源 ip 地址和端口 目标 ip 地址和端口 有效负载 pc
  • 构建网络服务器,客户端不确认 HTTP 200 OK 帧

    我正在根据教程构建自己的网络服务器 我找到了一种简单的方法来启动 TCP 连接并发送一段 http 数据 网络服务器将在微控制器上运行 因此它会非常小 无论如何 以下是我需要经历的顺序 接收SYN 发送SYN ACK 接收 ACK 连接现已
  • 什么会导致无法计算 UDP 数据报的 IP 标头校验和?

    我试图将 UDP 数据报从 Windows XP 上的 UdpClient 发送到设备 但它没有响应 当我在 Wireshark 中查看该流量时 我发现出站数据包很糟糕 因为它们的所有 IP 标头校验和都是 0x0000 该机器有两个网卡
  • Wireshark:显示过滤器与嵌套解析器

    我有一个通过 AMQP 发送 JSON 对象的应用程序 我想使用 Wireshark 检查网络流量 AMQP 解析器将有效负载作为字段中的一系列字节给出amqp payload 但我想提取和过滤 JSON 对象中的特定字段 因此我尝试在 L
  • wireshark 和 tcpdump -r:奇怪的 tcp 窗口大小

    我正在使用 tcpdump 捕获 http 流量 并且对 TCP 慢启动以及窗口大小如何增加感兴趣 sudo tcpdump i eth1 w wget tcpdump tcp and port 80 当我使用 Wireshark 查看转储
  • 如何过滤wireshark以仅查看从我的计算机发送/接收的dns查询?

    我是wireshark新手 正在尝试编写简单的查询 要查看仅从我的计算机发送或由我的计算机接收的 DNS 查询 我尝试了以下操作 dns and ip addr 159 25 78 7 其中 159 25 78 7 是我的 IP 地址 看起
  • Wireshark 解剖器 - 如何将 dissectortable:add(pattern, dissector) 与任何模式一起使用?

    我正在为 Wireshark 创建一个自定义解析器 我将我的解剖器添加到解剖器表中 就像这样 udp table DissectorTable get udp port udp table add 7777 my proto 然而 我的解析

随机推荐

  • 华为AGC性能管理功能sdk集成

    集成SDK 1 xff09 在AGC网站的我的项目中选择需要启用性能管理的应用 xff0c 点击质量 gt 性能管理 xff0c 进入性能管理服务页面 xff0c 立即开通服务 2 xff09 添加AGC插件 xff0c 在Android
  • Android平台集成华为AGC性能管理服务问题处理指南

    最近尝试集成了华为AGC的性能管理服务 xff0c 集成过程中也遇到一些问题 本文就对我在集成性能管理服务的踩坑记录进行总结 xff0c 希望能帮到大家 问题一 xff1a 刚集成性能管理服务 xff0c 报错miss client id
  • Android ANR全解析&华为AGC性能管理解决ANR案例集

    1 ANR介绍 1 1 ANR是什么 ANR xff0c 全称为Application Not Responding xff0c 也就是应用程序无响应 如果 Android 应用的界面线程处于阻塞状态的时间过长 xff0c 就会触发 应用无
  • JAVA包装类

    什么是包装类 虽然 Java 语言是典型的面向对象编程语言 xff0c 但其中的八种基本数据类型并不支持面向对象编程 xff0c 基本类型的数据不具备 对象 的特性 不携带属性 没有方法可调用 沿用它们只是为了迎合人类根深蒂固的习惯 xff
  • Rxjava理论(一)

    大家都知道RxJava上手是非常难的一个框架 xff0c 为什么说是难呢 xff0c 因为它的功能非常强大 xff0c 各种操作符让人很难上手 xff0c 搭配使用带生命周期的框架有RxLife等 以至于后面出了很多类似Rxjava的框架
  • rxjava理论(二)

    doOnSubscribe的监听 在上一节我们介绍过subscribeOn是控制上游的observable在哪个线程执行 xff0c 关于怎么控制上游的observable可以看我上篇文章RxJava面经一 xff0c 拿去 xff0c 不
  • RxJava Hook(钩子)方法

    Hook技术又叫钩子函数 xff0c 在系统没有调用函数之前 xff0c 钩子就先捕获该消息 xff0c 得到控制权 这时候钩子程序既可以改变该程序的执行 xff0c 插入我们要执行的代码片段 xff0c 还可以强制结束消息的传递 RxJa
  • android底层之什么是Zram?

    ZRAM的理解 ZRAM xff08 压缩内存 xff09 的意思是说在内存中开辟一块区域压缩数据 就是说假设原来150MB的可用内存现在可以放下180MB的东西 本身不会提高内存容量和运行速度 只是让后台程序更少被系统砍掉罢了 xff0c
  • rxjava - compose()操作符

    1 问题背景 想要给多个流重复应用 34 一系列 34 相同的操作符 该怎么办 比如 我们使用Rx 43 Retrofit进行网络请求时 都有遇到这样场景 要在io线程中请求数据 在主线程订阅 更新UI 所以必须频繁使用下面这样的代码 su
  • RxJava2 背压

    1 背压 在RxJava中 xff0c 会遇到被观察者发送消息太快以至于它的操作符或者订阅者不能及时处理相关的消息 xff0c 这就是典型的背压 Back Pressure 场景 BackPressure经常被翻译为背压 xff0c 背压的
  • MVVM实现与原理分析

    1 MVVM简介 1 1 MVC amp MVP amp MVVM MVP MVVM与MVP结构类似 xff0c MVP也是通过Presenter将View与Model解耦 不过MVVM是基于观察者模式 xff0c viewModel不持有
  • PCM数据格式

    什么是PCM PCM全称Pulse Code Modulation xff0c 翻译一下是脉冲调制编码 其实大可以不用关心英文释义 xff0c 之所以这么命名是因为一些历史原因 在音视频中 xff0c PCM是一种用数字表示采样模拟信号的方
  • 音频帧大小的计算

    音频aac mp3文档规定 xff1a AAC xff1a 帧大小1024个sample xff0c 采样率为44100Hz 帧播放时长 xff1a acc dur 61 1024 44100 61 0 02322s 61 23 22ms
  • Java多线程系列--join()

    1 join 介绍 join 定义在Thread java中 join 的作用 xff1a 让 主线程 等待 子线程 结束之后才能继续运行 这句话可能有点晦涩 xff0c 我们还是通过例子去理解 xff1a 主线程 public class
  • Android的设计模式-装饰者模式

    1 定义 动态地给一个对象添加一些额外的职责 就增加功能来说 xff0c 装饰模式相比生成子类更为灵活 2 介绍 装饰者模式属于结构型模式 装饰者模式在生活中应用实际上也非常广泛 xff0c 一如一间房 xff0c 放上厨具 xff0c 它
  • android音频焦点Audio Focus

    为了便于理解 xff0c 我们以android的8 0以前的版本为例 xff0c 8 0以后有一定改动 xff0c 但是基本思路一样 关于管理音频焦点 xff08 8 0以前和更高版本 xff09 的官方文档 xff1a https dev
  • Android音频通路的切换

    Android支持多种设备的的输出 一台正常的机子 xff0c 本身就自带话筒 xff0c 扬声器 xff0c 麦克风等多个声音输入输出设备 xff0c 再加上五花八门的外置设备 xff08 通过耳机 xff0c 蓝牙 xff0c wifi
  • Java实现基本数据结构——数组

    数组概念 所谓数组 xff0c 是有序的元素序列 若将有限个类型相同的变量的集合命名 xff0c 那么这个名称为数组名 在数据结构中 xff0c 数组是一种线性表 xff0c 就是数据排列成一条直线一样的结构 在内容空间中 xff0c 数组
  • 块元素居中方式

    1 定位 span class token doctype lt DOCTYPE html gt span span class token tag span class token tag span class token punctua
  • wireshark以太帧的分析

    首先应该明白 xff0c 封装以太帧的位于OSI七层模型的第二层 xff0c 也就是数据链路层 xff0c wireshark可以把完整的以太帧抓起来 xff0c 我们可以清楚的看到 打开wireshark找到自己ip对应的网卡 xff0c