您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 以太网帧格式分析实验报告
实验报告实验名称以太网帧格式分析队别姓名李王丁学号实验日期实验报告要求:1.实验目的2.实验要求3.实验环境4.实验作业5.问题及解决6.思考问题7.实验体会【实验目的】1.复习Wireshark抓包工具的使用及数据包分析方法。2.通过分析以太网帧了解以太网数据包传输原理。【实验要求】用Wireshark1.4.9截包,分析数据包。观察以太网帧,Ping同学的IP地址,得到自己和同学的mac地址。观察以太网广播地址,观察ARP请求的帧中目标mac地址的格式。用ping-l指定数据包长度,观察最小帧长和最大帧长。观察封装IP和ARP的帧中的类型字段。【实验环境】用以太网交换机连接起来的windows7操作系统的计算机,通过802.1x方式接入Internet。【实验中出现问题及解决方法】1.在使用命令行“ping-l0IP”观察最小帧长时抓到了长度为42字节的帧,与理论上最小帧长64字节相差甚远。通过询问教员和简单的分析,知道了缺少字节的原因是当Wireshark抓到这个ping请求包时,物理层还没有将填充(Trailer)字符加到数据段后面,也没有算出最后4字节的校验和序列,导致出现最小42字节的“半成品”帧。可以通过网卡的设置将这个过程提前。2.在做ping同学主机的实验中,发现抓到的所有ping请求帧中IP数据部分的头校验和都是错误的。原本以为错误的原因与上一个问题有关,即校验和错误是因为物理层还没有将填充字符加到数据段后面。但是这个想法很快被证明是错误的,因为在观察最大帧长时,不需要填充字符的帧也有同样的错误。一个有趣的现象是,封装在更里层的ICMP数据包的校验和都是正确的。这就表明IP层的头校验和错误并没有影响正常通信。进一步观察发现,这些出错的头校验和的值都是0x0000,这显然不是偶然的错误。虽然目前还没有得到权威的答案,但是可以推测,可能是这一项校验实际上并没有被启用。作为中间层的IP头的意义是承上启下,而校验的工作在更需要的上层的IMCP包和下层MAC头中都有,因此没有必要多此一举。【思考问题】1.为什么可以ping到同宿舍(连接在同一个交换机上)的主机而ping不到隔壁宿舍的主机?通常情况下,如果配置正确,设备都连接着同一个网络(互联网),而且没有防火墙等阻拦,就可以正常ping到同一网络中的任何主机。在第一次实验中,我们曾成功地ping到了baidu.com的IP。在ping其他宿舍的IP时需要通过宿舍的交换机将ping请求先转发给楼层交换机,再由楼层交换机转发给目标IP所在的宿舍交换机。分析无法ping到隔壁宿舍主机的原因,很可能是楼层交换机设置了禁止内部ping的防火墙,阻止了本楼层交换机地址段内的主机相互ping对方。而同宿舍之所以可以相互ping到,是因为ping请求没有经过楼层交换机,直接由宿舍交换机转发给了目标IP主机。2.什么是ARP攻击?让我们继续分析4.1ARP原理,A得到ARP应答后,将B的MAC地址放入本机缓存。但是本机MAC缓存是有生存期的,生存期结束后,将再次重复上面的过程。(类似与我们所学的学习网桥)。然而,ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。这时,我们假设局域网中的某台机器C冒充B向A发送一个自己伪造的ARP应答,即IP地址为B的IP,而MAC地址是伪造的,则当A接收到伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来B的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通B!这就是一个简单的ARP欺骗。【实验体会】这次实验最大的感触是体会到了网络通信过程的趣味性。在做ping同学IP的实验时,我发现抓到的包之间有紧密的联系,相互的应答过程很像实际生活中人们之间的对话。尤其是ARP帧,为了获得对方的MAC地址,乐此不疲地在网络中广播“谁有IP为XXX的主机?”,如果运气好,会收到网桥中某个路由器发来的回复“我知道,XXX的MAC地址是YYY!”。另外,通过ping同学主机的实验,以及对实验过程中问题的分析,使我对之前模糊不清的一些概念有了全面的认识,如交换机、路由器的区别与功能,局域网各层次的传输顺序与规则等。还有一点就是,Wireshark不是万能的,也会有错误、不全面的地方,这时更考验我们的理论分析与实践论证能力。成绩优良中及格不及格教师签名:日期:【实验作业】1观察并分析通常的以太网帧1.1以太网帧格式目前主要有两种格式的以太网帧:EthernetII(DIX2.0)和IEEE802.3。我们接触过的IP、ARP、EAP和QICQ协议使用EthernetII帧结构,而STP协议则使用IEEE802.3帧结构。EthernetII是由Xerox与DEC、Intel(DIX)在1982年制定的以太网标准帧格式,后来被定义在RFC894中。IEEE802.3是IEEE802委员会在1985年公布的以太网标准封装结构(可以看出二者时间相差不多,竞争激烈),RFC1042规定了该标准(但终究二者都写进了IAB管理的RFC文档中)。下图分别给出了EthernetII和IEEE802.3的帧格式:⑴前导码(Preamble):由0、1间隔代码组成,用来通知目标站作好接收准备。以太网帧则使用8个字节的0、1间隔代码作为起始符。IEEE802.3帧的前导码占用前7个字节,第8个字节是两个连续的代码1,名称为帧首定界符(SOF),表示一帧实际开始。⑵目标地址和源地址(DestinationAddress&SourceAddress):表示发送和接收帧的工作站的地址,各占据6个字节。其中,目标地址可以是单址,也可以是多点传送或广播地址。⑶类型(Type)或长度(Length):这两个字节在EthernetII帧中表示类型(Type),指定接收数据的高层协议类型。而在IEEE802.3帧中表示长度(Length),说明后面数据段的长度。⑷数据(Data):在经过物理层和逻辑链路层的处理之后,包含在帧中的数据将被传递给在类型段中指定的高层协议。该数据段的长度最小应当不低于46个字节,最大应不超过1500字节。如果数据段长度过小,那么将会在数据段后自动填充(Trailer)字符。相反,如果数据段长度过大,那么将会把数据段分段后传输。在IEEE802.3帧中该部分还包含802.2的头部信息。⑸帧校验序列(FSC):包含长度为4个字节的循环冗余校验值(CRC),由发送设备计算产生,在接收方被重新计算以确定帧在传送过程中是否被损坏。1.2实例分析Ⅰ.EthernetII帧分析这一帧的长度是60字节,小于最小帧长64字节。对比1.1帧结构可以发现,前导码(Preamble)的8个字节已经被去除,因而实际帧长是68字节。目的地址(DestinationAddress)为[5c:26:0a:7e:3b:c7],源地址(SourceAddress)为[f0:de:f1:ab:41:d8]。类型(Type)为[0x0800],表示该帧封装的高层协议类型是IP协议。数据(Data)为[4500……0065],因为长度低于46个字节,该数据段自动填充(Trailer)了一段字符。对比1.1帧结构可以发现,该帧没有帧校验序列(FSC),可能是抓到包时校验序列已经被底层去除(但是第5周802.1x接入实验中的EAPOE协议帧中有帧校验序列)。Ⅱ.IEEE802.3帧分析这一帧的长度也是60字节,前导码的8个字节同样已经被去除,因而实际帧长也是68字节。目的地址为[01:80:c2:00:00:00](解析为网桥间的生成树),源地址为[3c:e5:a6:f7:a9:f8]。长度(Length)为39字节,表示该帧封装的上层协议数据总长度为39字节。数据为[4242……0000],因为数据长度为39字节低于46个字节,因此自动填充了一段字符。该帧同样没有帧校验序列。2ping同学的IP地址,分析帧,得到自己和同学的mac地址开始做这个实验时,尝试去ping隔壁宿舍同学的IP地址[10.104.137.124],但结果却不如人愿,无法ping到其主机,结果如下图:同时用Wireshark抓包,得到了如下结果:分析无法ping到的原因,本机一直广播发送ARP请求,询问哪个端口有[10.104.137.124]这台机器,但是却没有回应。这个问题作为思考题1进行分析。后来去ping本宿舍(连接着同一交换机)的主机IP[10.104.137.106]获得了成功,结果如下图:接受到了长度为32字节的回复数据包。同时用Wireshark抓包,通过下面一个ping的回应帧,可以得到自己和同学的MAC地址,结果如下图:得到目标地址(因为是回应帧,因此这是自己的MAC地址)为[5c:26:0a:7e:3b:c7],解析的制造商为Dell(对应自己的Dell笔记本)。源地址(同学的MAC地址)为[f0:de:f1:ab:41:d8],解析的制造商为Wistron(同学是联想笔记本,而网卡是第三方纬创集团,可见国产品牌还需提高整体实力)。3验证用其他方法得到的mac地址是否一致获取本机MAC地址的方法有多种,这里使用方法“运行-cmd-getmac”验证MAC地址。结果如下两图,分别在自己和同学的机器上获得本机MAC地址。结果与ping得到的MAC地址相符,自己的MAC地址为[5c:26:0a:7e:3b:c7],同学的MAC地址为[f0:de:f1:ab:41:d8]。4观察ARP请求帧中目标MAC地址的格式(以太网广播地址)4.1ARP原理假设A要给B发送一个数据包,需要在帧头中填写B的MAC地址。但是这时计算机A可能只知道B的IP地址却不知道B的MAC地址,于是,在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP,B收到请求后回应ARP应答包给A,其中含有B的MAC地址,这样A就可以开始向B发送数据包了。4.2ARP请求帧地址分析用Wireshark抓包得到大量ARP帧,其中一个请求帧如下图:目标MAC地址为[ff:ff:ff:ff:ff:ff],表示广播发送。观察发现不只这一帧如此,所有ARP请求帧的目标MAC地址都是[ff:ff:ff:ff:ff:ff]。这一点由ARP原理很好理解,因为ARP请求帧的作用就是寻找自己不知道MAC地址的目标,因此必须采取广播的方式达到希望的目的。5观察最大帧长和最小帧长5.1理论分析这里有必要再重现一下以太网帧的标准格式。因为单就长度而言,EthernetII和IEEE802.3的帧并无区别,因此这里只通过前者进行分析。EthernetII的帧格式如下图:理论上的最大帧长和最小帧长可以很容易地由图得到:最大帧长:8+6+6+2+1500+4=1526字节最小帧长:8+6+6+2+46+4=72字节这两个结果很出乎意料,因为课本(同样是理论)告诉我们,以太网帧的最大帧长是1518字节(或是802.1Q提出的1522字节),最小帧长是64字节,这是什么原因呢?初步推测,当数据帧到达网卡时,在物理层上网卡要去掉8字节的前导码(Preamble),所以,实际抓到的包是去掉前导码之后的数据:最大帧长:6+6+2+1500+4=1518字节最小帧长:6+6+2+46+4=64字节这与课本符合的很好,那么实际是否能得到理论分析的结果呢?5.2实验检验我们采用ping-lsize命令来进行验证。首先,通过命令行“ping-l-1(不可能存在的size)”可以得到ping-l的测试范围为[0-65500]。,结果如下图:不难想象,最小帧长应该是size=0时取得。用过命令行“ping-l010.104.137.106(同宿舍同学的主机IP地址)”观察最短帧长,结
本文标题:以太网帧格式分析实验报告
链接地址:https://www.777doc.com/doc-4603117 .html