Wireshark 抓取以太网数据包

马谦马谦马谦 Wireshark评论5,5032字数 821阅读 2 分 44 秒阅读模式

一、概述

几乎所有的数据包都是通过以太网来传输,所以使用 wireshark 抓取以太网数据包非常容易,这里我们以 DNS 数据包为例。

二、抓包

1. 准备数据

打开 wireshark,在筛选栏输入 dns,点击开始抓包,然后打开命令提示符,输入 ping www.baidu.com,此时 wireshark 将会抓到以下数据:

Wireshark抓取以太网数据包-图片1

网卡信息如下:

Wireshark抓取以太网数据包-图片2

2. 数据分析

第一步是请求 dns 服务器地址解析 www.baidu.com ,本机 IP 为 192.168.123.181,为源 IP 地址,目的 IP 是两个 dns 服务器地址。由于设置了两个 dns 服务器,所以分别发送了两个数据包。

Wireshark抓取以太网数据包-图片3

这里是收到的返回数据包:

Wireshark抓取以太网数据包-图片4

随便点开一个数据包查看数据内容:

Wireshark抓取以太网数据包-图片5

这是一个完整的 dns 数据包,wireshark 已经很清楚的帮我们分好类了。直接点击 Ehternet II 直接就能看到数据包了,源 MAC 地址,目的 MAC 地址都已经帮我们标识好了,不得不说很强大。

以太网中首先是目的 MAC 地址,对本次请求来说,目的 MAC 地址是我设置的网关即路由器的 MAC 地址,Phicomm 是我用的斐讯路由器型号。

源 MAC 地址即是本机的网卡的物理地址,从上面的网卡信息可以看出来物理地址为 B8-76-3F-95-F0-5F ,也可以使用 ipconfig /all 命令查看。

然后随之而来的就是数据部分的以太类型,0x0800 表示这是一个 IPv4 数据包。

接下来的就是数据部分,即为以太网帧中的有效载荷部分,这里是 dns 数据包,以后再讨论。

3. 为什么没有报头和校验字段

从数据中我们没有发现 8 个字节的前导头和 4 个字节的校验字段,为什么呢?

因为前导头是用来给物理链路层中的物理接口用来识别的,以此来定位数据包的开始。当它收到数据包后会进行校验码计算,如果数据没有错误会去掉前导部分和校验部分,再交给以太网卡驱动程序,当驱动程序收到数据包时就不存在有这两个字段了。

而 wireshark 抓包是位于网卡的驱动程序之内的,所以抓到的包就不存在有前导头和校验数据。

 
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017 年 11 月 19 日 15:00:54
  • 转载请务必保留本文链接:https://www.dyxmq.cn/network/wireshark/wireshark-ethernet.html
wireshark导出https证书 计算机网络

wireshark 导出 https 证书

一、找到证书所在的数据包 证书是从服务端返回的,从 https 握手的过程来看,当服务端返回了 server hello 之后,就会主动将自己的证书返回给客户端,因此只要从 server hello 往后面找 1-...
TCP协议中的三次握手和四次挥手 TCP/IP

TCP 协议中的三次握手和四次挥手

一、三次握手 TCP 协议的三次握手和四次挥手分别表示了 TCP 连接的建立和释放过程,在整个 TCP 协议是一个很重要的内容,同时也是面试时的常见考点。 趁着找工作的劲,使用 socket+tcpdump 分析了...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证