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:
确定

拖动滑块以完成验证