实验报告正文:
一、实验名称 分析数据链路层帧结构
二、实验目的:
1. 掌握使用Wireshark分析俘获的踪迹文件的基本技能;
2. 深刻理解Ethernet帧结构。
3. 深刻理解IEEE 802.11帧结构。
三、实验内容和要求
1. 分析俘获的踪迹文件的Ethernet帧结构;
2. 分析IEEE 802.11帧结构。
四、实验环境
作实验时,本机电脑硬件环境情况如下。
1、运行Windows10专业版64位操作系统的PC一台。
2、PC具有以太网卡一块,通过无线网路由器与网络相连。
2.IEEE 802.11帧结构
四、实验数据记录和结果分析
1.Ethernet帧结构
【1】EthernetII帧结构
EthernetII帧结构。有几种不同类型的帧结构,尽管它们格式和最大传输单元不同,但却能够共存于相同的物理媒体上。EthernetII 帧(又称DIX帧)是目前使用最广的以太帧。图21显示了Ethernet II帧结构(该帧前后的辅助字段没有显示)。与802.3以太帧结构相比,它较为简单。其中的以太类型字段标识了封装了该帧数据中的较高层协议。例如,以太类型值为0x0800指示了该帧包含了IPv4数据报,0x0806表明指示了该帧包含了ARP帧,0x8100指示了该帧包含了IEEE 802.1Q帧。
为了进一步分析Ethernet II帧结构,点击首部细节信息栏中的”Ethernet“行,有关信心展开如上图所示。
【1】MAC header
其中看到源MAC地址为84:ef:18:44:a7:32,目的MAC地址为50:3a:a0:1e:d2:b8;以太网类型字段中值为0x0800,表示该帧封装了IPv4数据报;以及MAC地址分配的相关信息。
【2】ip数据报
由以上信息可以得出:
1、版本:占4位(0x0800),所以此ip是ipv4
2、首部长度:占4位,可表示的最大十进制数值是15(如下图,此ip数据报的最大十进制为5)
3、服务:占8位,用来获得更好的服务。这里是0x00
4、总长度:总长度指首部及数据之和的长度,单位为字节。因为总长度字段为 16位,所以数据报的最大长度为 2^16-1=65 535字节。此数据报的总长度为40字节 ,数据上表示为0x0028。
5、标识 (Identification):占 16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段。但这个“标识”并不是序号, 因为 IP是无连接的服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。在这个数据报中标识为14847,对应报文16位为 0x39ff
6、 标志 (Flag):占3 位,但目前只有2位有意义。标志字段中的最低位记为 MF (More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片 中的最后一个。标志字段中间的一位记为 DF(Don't Fragment),意思是“不能分片”。只有当 DF=0时才允许分片。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片 中的最后一个。标志字段中间的一位记为 DF(Don't Fragment),意思是“不能分片”。只有当 DF=0时才允许分片。这个报文的标志是010,故表示为不分片!对应报文16位为0x40。
7、片偏移:因为不分片,故此数据报为0。对应报文16位为0x00(Don’t fragment)。
8、生存时间:占 8位,生存时间字段常用的英文缩写是 TTL (Time To Live),其表明数据报在网络中的寿命。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1。当TTL值为0时,就丢弃这个数据报。经分析,这个数据报的TTL为128跳!对应豹纹16进制为0xb1bd8313。
9、协议:占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的的主机的IP层知道应将数据哪部分上交给哪个处理过程。这个ip数据报显示使用的是TCP协议对 应报文16进制为0x06。
10、首部检验和:占 16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,都要重新计算一下首都检验和 (一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。对应报文16位为0x4e15。
11、源地址:占32位。此报文为192.168.1.108 对应数据为 c0:a8:01:6c:
12、目的地址:占 32位。此报文为111.13.65.254对应数据为6f:0d:41:9a
13、选项:这里是无!
【2】TCP报文首部格式
l 源端口(Source Port):16位的源端口字段包含初始化通信的端口号。源端口和IP地址的作用是标识报文的返回地址。这个报文是50860对应的数据报中的 16位为0x84ef1844a732。
l 目的端口(Destination Port):16位的目的端口字段定义传输的目的。这个端口指明接收方计算机上的应用程序接口。
这个报文的目的端口 是80(代表了 http协议)对应的数据报中的 16位为0x0050
l 序列号(Sequence Number):该字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第几个数据字节。序列号是一个32位的数。
这个报文的sequence number是 1对应的数据报中的 16位为0xe72ba129
l 确认号(Acknowledge Number):TCP使用32位的确认号字段标识期望收到的下一个段的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。收到确认号的源计算机会知道特定的段已经被收到。确认号的字段只在ACK标志被设置时才有效。
这个报文的ACK是1对应的数据报中的 16位为0xb1bd8313
l 首部长度(header length) 这里是5 代表了20字节 也表示tcp选项是无,对应的数据报中的 16位为0x50
l 控制位(Control Bits):共6位,每一位标志可以打开一个控制功能。
URG(Urgent Pointer Field Significant,紧急指针字段标志):表示TCP包的紧急指针字段有效,用来保证TCP连接不被中断,并且督促中间齐备尽快处理这些数据。
这里URG为0 表示 not set
ACK(Acknowledgement field significant,确认字段标志): 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。
这里ACK为1 表示是确认帧
PSH(Push Function,推功能):这个标志表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即送给应用程序,而不是在缓冲区中排队。
这里PSH位置0表示不直接送给应用程序
RST(Reset the connection,重置连接):这个标志表示感谢连接复位请求,用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包。
这里是0 表示不产生重置连接
SYN(Synchronize sequence numbers,同步序列号):表示同步序号,用来建立连接。
这里SYN为0,表示没有设置同步
FIN(No more data from sender):表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。
这里FIN是0,表示没有设置
这里对应的数据报中的 16位为0x10
l 窗口(Window):目的主机使用16位的窗口字段告诉源主机它期望每次收到的数据通的字节数。
此报文窗口大小为 258应的数据报中的 16位为0x0102
l 校验和(Checksum):TCP头包括16位的校验和字段用于错误检查。源主机基于部分IP头信息,TCP头和数据内容计算一个校验和,目的主机也要进行相同的计算,如果收到的内容没有错误过,两个计算应该完全一样,从而证明数据的有效性。
这里检验和为:0xb7f3
l 紧急指针(Urgent Pointer):紧急指针字段是一个可选的16位指针,指向段内的最后一个字节位置,这个字段只在URG标志被设置时才有效。
这里Urgent Pointer为零,表示没有使用紧急指针
选项(Option):至少1字节的可变长字段,标识哪个选项(如果有的话)有效。如果没有选项,这个字节等于0,说明选项的结束。这个字节等于1表示无需再有操作;等于2表示下四个字节包括源机器的最大长度(Maximum Segment Size,MSS). 这里选项没有设置
l 填充(Padding):这个字段中加入额外的零,以保证TCP头是32的整数倍。
2.分析IEEE 802.11帧结构
【2】IEEE 802.3以太帧结构
IEEE 802.3以太帧结构。它是在以太网链路上运行的一种数据分组,开始于前导码和帧定界符起始,后继的是以太首部的目的和源地址。 该帧的中部是载荷数据,其中包括了由该帧携带的其他协议(如IP)的首部。该帧的尾部是32比特的循环冗余码校验,以检测数据传输时可能的损伤。它完整的帧结构如图20所示。
Protocol version:表明版本类型,现在所有帧里面这个字段都是0x00。 *Type:指明数据帧类型,是管理帧,数据帧还是控制帧。 Subtype:指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS帧,CTS帧,ACK 帧等等,通过这个域判断出该数据帧的具体类型。 To DS/From DS:这两个数据帧表明数据包的发送方向,分四种可能情况讨论: **若数据包To DS为0,From DS为0,表明该数据包在网络主机间传输。 **若数据包To DS为0,From DS为1,表明该数据帧来自AP。 **若数据包To DS为1,From DS为0,表明该数据帧发送往AP。 若数据包To DS为1,From DS为1,表明该数据帧是从AP发送自AP的,也就是说这个是个WDS(Wireless Distribution System)数据帧。 Moreflag:分片标志,若数据帧被分片了,那么这个标志为1,否则为0。 *Retry:表明是否是重发的帧,若是为1,不是为0。 PowerManage:当网络主机处于省电模式时,该标志为1,否则为0。 Moredata:当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0。 Wep:加密标志,若为1表示数据内容加密,否则为0。 *Order 这个表示用于PCF模式下。 Duration/ID(持续时间/标识):表明该帧和它的确认帧将会占用信道多长时间;对于帧控制域子类型为:Power Save-Poll的帧,该域表示了STA的连接身份(AID, Association Indentification)。
3)Address(地址域):源地址(SA)、目的地址(DA)、传输工作站地址(TA)、接收工作站地址(RA),SA与DA必不可少,后两个只对跨BSS的通信有用,而目的地址可以为单播地址(Unicast address)、多播地址(Multicast address)、广播地址(Broadcast address)。 4)Sequence Control(序列控制域):由代表MSDU(MAC Server Data Unit)或者MMSDU(MAC Management Server Data Unit)的12位序列号(Sequence Number)和表示MSDU和MMSDU的每一个片段的编号的4位片段号组成(Fragment Number)
七、实验体会、质疑和建议
通过实验,我对wireshark分析俘获的踪迹文件的基本技能有了基本了解,理解了以太网以及IEE 802.11帧的结构,Ethernet V2标准规定的MAC层报文结构进行了分析,了解TCP/IP的主要协议和协议的层次结构,对以后的学习有很大帮助。
刚开始看见这个实验,发现只有一个实验报告模板和实验题目,完全不知道实验步骤也没有实验指导,就当时完全不知道怎么弄,后来慢慢分析了这两种帧结构,渐渐的wireshark里面的数据也渐渐看懂表示数据报的那个部分了,通过百度,问同学,渐渐得分析完毕,自行分析数据代表的字段含义,并且最后将实验完成,感觉受益不浅。