使用Wireshark分析链路层Ethernet协议 - 鲨鱼抓包
首页 博客文章 使用Wireshark分析链路层Ethernet协议

使用Wireshark分析链路层Ethernet协议

日期: 2022年5月21日 01:27
阅读: 76
作者: 鲨鱼抓包

摘要: Ethernet是现在使用最为广泛的局域网协议,运行于链路层,这里要注意Ethernet是一种协议,不是网络。下面是RFC 894以太网封数据包装原理图,还有一些遵循IEEE802.2/802.3封装标准,但是RFC 894以太网封装应用更广泛,更简洁高效,所以我们这里主要研究这种Ethernet封装格式。

从这一篇文章开始就来详细讲解使用Wireshark分析各种网络协议,并找出网络故障所在。但因网络协议比较多,我们只能选择一些比较常用的且有代表性的协议来讲解,其他协议只要掌握其协议组成,分析方法并没有太大的差别。为了方便大家理解我们从OSI协议的角度和顺序来选择讲解,主要以四层协议:链路层(Ethernet)、网络层(ARP、RARP、IP、ICMP)、传输层(TCP、UDP)、应用层(HTTP、FTP、TELNET、SMTP、DHCP、DNS、TFTP)。同时对上一章节学习的Wireshark操作方法进行实战操作。

本文就先来从链路层Ethernet协议开始分析。为了方便大家理解,后面的课程或文章只要是分析协议的,都先给大家提供拓扑原理,然后再来展开实验分析。

一、Ethernet数据包封装格式

Ethernet是现在使用最为广泛的局域网协议,运行于链路层,这里要注意Ethernet是一种协议,不是网络。下面是RFC 894以太网封数据包装原理图,还有一些遵循IEEE802.2/802.3封装标准,但是RFC 894以太网封装应用更广泛,更简洁高效,所以我们这里主要研究这种Ethernet封装格式。

Ethernet数据包封装格式

二、Ethernet实验环境搭建

Ethernet实验环境搭建

2.1. 静态路由配置

R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface f0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1#write memory
Building configuration...
[OK]

R1#show ip interface brief
Interface                  IP-Address      OK? Method Status             Protocol
FastEthernet0/0            10.1.1.1        YES manual up                    up                      
FastEthernet0/1            unassigned      YES unset  administratively down down

R2#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#interface f0/0
R2(config-if)#ip address 10.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2#write memory
Building configuration...
[OK]

 R2#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            10.1.1.2        YES manual up                    up
FastEthernet0/1            unassigned      YES unset  administratively down down

R2#show interfaces f0/0
FastEthernet0/0 is up, line protocol is up
  Hardware is AmdFE, address is cc02.0e40.0000 (bia cc02.0e40.0000)
  Internet address is 10.1.1.2/24
  MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec,

2.2.ping命令抓包

R1#ping 10.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 20/23/32 ms

2.3Wireshark抓取的数据包

Wireshark抓取的数据包

首先整体来看看,Reply包我们暂时不用去管,一般一个request都会生成一个Reply包。然后第二部分就是一个广播包和一个回复包,可以通过源地址和目标地址观察传输方向。第三个CDP就是我们上面所说的思科自己封装以太网的格式,大家可以自己打开看看,这里直接看第四部分,这些就是四个ping包,但是我们从命令行工具上看到的是5个,第一个是点就是上面的广播包,后面四个感叹号对应这里的4个ICMP。第二次ping的时候就不存在广播包了,直接是5组ICMP,如下图。

Ethernet数据包

2.4.数据包组成分析

Ethernet数据包分析

从上图可以看出来,选择ARP广播包进行分析,先看Ethernet,这里封装四组数据,分别是目标地址,源地址,类型和Padding。这里是广播包,所以目标地址为全f,源地址就是R1的MAC地址,可以通过show interfaces f0/0查看,类型值为0x806表示ARP,padding没有携带信息就使用全0填充占位18个字符,如下图:

Ethernet数据包分析

从下面的图可以看出来在Ethernet包中除了这32个字符以外,中间还有28个字符是没有被选中的,这是因为ARP属于网络层协议,被封装在链路层内,从上面的Ethernet封装格式我们可以看出来,32个字符加上ARP的28个字符正好是60个字符,其中ARP+Padding是46个,也就的最小数据字符占用量。

Ethernet字节数

下面在来看一下ICMP请求包,如下图:

ICMP请求包

这里Ethernet也是14个字节,唯一变化的就是Type,Type是用来标注下一层协议的类型,前面的0x806代表下层是ARP,这里0x800表示下层是IP协议,Wireshark也加以注明了。

鲨鱼博客版权说明:本站文章以原创为主,部分来自网络,请转载时保留原文链接!
# 相关文章
回顶部