摘要:该文从Ethernet和wifi的帧格式着手进行了分析,并讨论了帧结构的各个字段的含义且对于该如何分析进行了举例,加深了读者对帧格式的理解,增强了wireshark的应用。
关键词:wireshark;ethernet;wifi
中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)28-6831-02
Use Wireshark to Analyze a Frame
BAI Jie
(Shanghai Tongji University, Shanghai 201800, China)
Abstract: This article talks about the frame format of Ethernet and wifi, and it also discuss the meaning of each domain, from this article, we can learn how to use wireshark to analyze a frame, and our comprehension of it is also been deepen.
Key word: wireshark; ethernet; wifi
1 预备知识
要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(分组捕获库,分析器)。
分组捕获库接收计算机发送和接收的每一个链路层帧的拷贝。高层协议交换的报文都被封装在链路层帧中,并沿着物理介质传输。
分析器用来显示协议报文所有字段的内容。为此,分析器必须能够理解协议所交换的所有报文的结构。
WireShark是一种可以运行在Windows, UNIX等操作系统上的分组分析器,由五个组成部分:命令菜单,捕获分组列表,分组头部明细,分组内容窗口,显示筛选规则。其所捕获的包符合了TCP/IP 的总体网络层次结构。
2 Ethernet帧结构简介
Ethernet II 类型以太网帧的最小长度为64 字节,最大长度为1518字节(6+6+2+1500+4)。其中前12 字节分别标识出发送数据帧的源节点MAC 地址和接收数据帧的目标节点MAC 地址。
接下来的2个字节标识出以太网帧所携带的上层数据类型,如0x0800 代表IP协议数据, 0x809B 代表AppleTalk协议数据, 0x8138 代表Novell类型协议数据等。
在不定长的数据字段后是4个字节的帧校验序列,采用32 位CRC循环冗余校验对从目标MAC地址字段到数据字段的数据进行校验。
在包分析的时候并没有先导域和校验码,是由于在物理层向数据链路层递交数据时会将FCS 和先导域抛弃导致的。
3 Wifi帧格式简介
802.11帧格式
-----------------------------------------------
Preamble|PLCP |MAC |User Data |CRC
其中preamble是一个前导标识,用于接收设备识别802.11,而PLCP域中包含一些物理层的协议参数,显然Preamble及PLCP是物理层的一些细节 。
其中,MAC帧包含信息根据帧的类型有所不同,主要封装的是上层的数据单元,长度为0-2312个字节,可以推出,802.11帧最大长度为2346个字节。
针对帧的不同功能,可将802.11中的MAC帧细分为以下3类:
1)控制帧:用于竞争期间的握手通信和正向确认、结束非竞争期等;
2)管理帧:主要用于STA与AP之间协商、关系的控制如关联、认证、同步等;
3)数据帧:用于在竞争期和非竞争期传输数据。
Mac帧中的Frame Control域的Type和Subtype共同指出帧的类型,当Type的B3B2位为00时,该帧为管理帧;为01时,该帧为控制帧;为10时,该帧为数据帧。而Subtype进一步判断帧类型,如管理帧里头细分为关联和认证帧。
4 帧格式分析举例
A.Ethernet
B.Ethernet II, Src: Sony_ef:c7:2d(00:1a:80:ef:c7:2d), Dst: IPv4mcast_7f:ff:fa (01:00:5e:7f:ff:fa)
C.Type: IP (0*0800)
可知目的地址是一个标准的6字节的mac地址:01:00:5e: 7f: ff: fa,是一个组播地址。
源地址也是一个标准的6字节mac地址:00:1a : 80: ef: c7: 2d,通过网卡查阅本机的mac地址,知道目的地址就是本机的mac地址。
类型域类型为2字节(0800),指明上层网络层所用的协议,由于是接入因特网的主机和路由器,所以也容易知道网络层所用的协议为IP协议。
到此为止,以太网帧的头就完了,之后为数据域。
000001 00 5e 7f ff fa 00 1a80 ef c7 2d 08 00 45 00 ..^..... ...-..E.
001000 a1 02 3d 00 00 01 1127 af a9 fe f5 67 ef ff ...=.... '....g..
0020ff fa e8 10 07 6c 00 8d8f ff 4d 2d 53 45 41 52 .....l.. ..M-SEAR
0030……
a.01 00 5e 7f ff fa 00 1a 80 ef c7 2d是目的地址和源地址
b.0800是协议类型,0800为ip协议
c.下一行中的14-33字节,指的是网络层的协议分析。含有发送方的ip地址和接收方的ip地址,校验码等
000045 00 00 a1 02 3d 00 0001 11 27 af a9 fe f5 67 ..^..... ...-..E.
0010ef ff ff fa ...=.... '....g..
d.后面的20个字节,显示的是传输层的各种信息,端口号,传输层的具体协议,窗口大小等
e.之后的所有字节就是头信息中各种反馈信息,cookies,语言等等
D.Wifi
IEEE 802.11 Data+CF-Poll, Flags : op..R.F.
Type/Subtype: Data + CF C Poll (0*22)
Destination address: 3c: dd: 58: 90: 00: 25
Source address: 4f: 02: 00: 20: 00: 00
Data+CF-Poll: 该帧只归AP所有,功能是表示有数据要发送,或将要轮询接收该数据的站点,即接受数据的站点和被轮询的站点相同。
目的地址是6字节的mac地址:3c: dd: 58: 90: 00: 25
源地址是6字节mac地址:4f: 02: 00: 20: 00: 00
Frame Control: 0*CA28 (Normal)
Version:0
Type: Data frame (2)
Subtype: 2
Flags: 0*CA
…. ..10= DS status: Frame from DS to a STA via AP(To DS: 0 From DS:1) (0*02)
…. .0..= More Fragments: This is the last fragment
…0 ….=PWR MGT: STA will stay up
..0. ….=More Data: Nodata buffered
.1.. ….=Protected flag: Data is protected
1… ….=Order flag: Strictly ofdered
帧控制域有11 个子域,其中第一个子域是协议版本。接下来是类型域和子类型域。
DS status域表明了该帧是来自于跨单元的分布系统。
More Fragments域意味着这是the last fragment。
Retry域表明了这是以前发送的某一帧的重传。
电源管理域是由基站使用的。
More 域表明发送方是否还有更多的帧要发送给该接受方。
Protected flag域表明数据是否是被保护的。
Order flage域表面帧是严格按顺序的。
5 总结
实践是我们学习过程中必不可少的一个环节,动手有助于加强我们对于笼统的概念的理解,同时也引导我们的进行适当的思考。在考研中我们也越来越重视对于实践的考察,正如2011年考研题目网络的最后一个大题一样,如果平时没有进行必要的训练,很难在较短的时间内得出满意的答案。所以,每个学生都应该积极主动的加强自己的动手训练,努力达到技能和知识上的双赢。
参考文献:
[1] Tanenbaum A S.计算机网络(修订版)[M].4版.北京:清华大学出版社,2005.