当前位置:文档之家› 网络实验报告二三四

网络实验报告二三四

计算机网络实验学院:专业:班级:姓名:学号:实验二:数据链路层数据包抓包分析实验内容(1)安装Wireshark软件。

(2)掌握抓包软件的使用(3)掌握通过抓包软件抓取帧并进行分析的办法实验步骤(1)常用的抓包软件包括Sniffer、NetXRay、Wireshark (又名EtheReal)。

我们采用免费的Wireshark,可以从或其他网站下载。

安装完成后,Wireshark的主界面和各模块功能如下:命令菜单(command menus):最常用菜单命令有两个:File、Capture。

File菜单允许你保存捕获的分组数据或打开一个已被保存的捕获分组数据文件。

Capture菜单允许你开始捕获分组。

显示筛选规则(display filter specification):在该字段中,可以填写协议的名称或其他信息,根据此内容可以对分组列表窗口中的分组进行过滤。

捕获分组列表(listing of captured packets):按行显示已被捕获的分组内容,其中包括:Wireshark赋予的分组序号、捕获时间、分组的源地址和目的地址、协议类型、分组中所包含的协议说明信息。

在该列表中,所显示的协议类型是发送或接收分组的最高层协议的类型。

分组首部明细(details of selected packet header):显示捕获分组列表窗口中被选中分组的头部详细信息。

包括:与以太网帧有关的信息,与包含在该分组中的IP数据报有关的信息。

如果利用TCP或UDP承载分组, Wireshark也会显示TCP或UDP协议头部信息。

最后,分组最高层协议的头部字段也会被显示。

分组内容窗口(packet content):以ASCII码和十六进制两种格式显示被捕获帧的完整内容。

(2)下面我们进行抓包练习。

在capture菜单中选中options,可以设置抓包选项,如下图所示,这里我们需要选择要对其进行抓包的网卡。

选择完成后按“start”开始抓包。

过几秒钟后选择菜单capture->stop停止抓包。

显示抓包结果:任意选中一帧,可以看到该帧所在的各层分组的头部如下:通过头部信息可以看出,该帧在数据链路层使用的是Ethernet II 协议,到网络层被封装为IP 数据包,到传输层被封装为UDP 数据包,没有应用层协议。

点开Ethernet II 前的+号,可以看到该帧在数据链路层的详细信息:(3)下面我们进行抓包实战并按要求回答问题。

假定如下拓扑:我们用主机A ping 主机B,同时进行抓包: 在抓包结果中我们可以看到如下4个包:依次选中这4个包,点开首部明细区Ethernet II 前的+号,可以看到详细信息:交换机主机A主机B分析这些信息,可以发现ping的过程如下:(两人一组实验,按实际实验结果填写)1.主机A发出ARP包询问“谁知道主机B的Mac,请告诉我”,该ARP包所在的帧的目的Mac 地址为___ff:ff:ff:ff:ff:ff_____,说明这是一个广播包。

2. 机房中的所有机器都收到了这个广播包,其中有一台机器回答了一个ARP包,该包说:主机B的Mac地址为__f0:92:1c:16:42:0b_____, 回答的机器是主机B□交换机因为该ARP包所在的帧的源地址为f0:92:1c:ed:0a:d03.主机A向主机B发出一个ping request(ping请求)包,该包所在的帧的类型字段的值为_0x0800_ (16进制表示),说明该帧的上层协议为_IPv4________。

从首部明细区的封装过程可以看出,该包的最高层封装协议为□Ethernet□IPICMP4.主机B向主机A发出一个ping reply(ping响应)包。

实验三网络层数据包抓包分析相关理论网络层使用的协议包括IP、ICMP、ARP等。

其中IP数据包占据网络流量的大部分。

IP数据包分为“报头区”和“数据区”两部分,其格式如下:格式中主要字段含义如下:版本:长度为4位。

取值一般为0100(Ipv4)或0110(Ipv6)。

报头长度:长度为4位。

指明“报头区”的长度,以32bit为单位。

在“报头区”中只有“选项+填充”字段的长度是可变的,其他字段的长度都是固定的。

例如:某IP 包的报头长度值为0111,表示该IP包的报头长度为7*32bit=28byte,可以计算出该IP包“选项+填充”字段的长度为(7-5)*32bit=8byte。

总长度:长度为16位。

表示包括“报头区”+“数据区”在内的IP包的总长度,以字节(8bit)为单位。

生存周期:长度为8位。

该字段设置了该IP包可以经过的最多路由器数, 一旦经过一个处理它的路由器,它的值就减去1,当该字段的值为0时,数据报就被丢弃,并发送ICMP消息通知源主机。这种机制可以防止网络出现环路时IP包被不断发送。

初始值由源主机设置(通常为32或64)。

协议:长度为8位,用于指定该IP包的上层协议,常见取值有6(TCP)、17(UDP)、1(ICMP)。

源IP、目的IP:长度为32位。

用于指定发送者和所期望的接收者的IP地址,在网络传输的过程中基值不会发生变化。

实验内容(1)使用Wireshark软件抓取指定IP包。

(2)对抓取的数据包按协议格式进行各字段含义的分析。

实验步骤(1)打开Wireshark软件,关闭已有的联网程序(防止抓取过多的包),开始抓包;(2)打开浏览器,输入,网页打开后停止抓包。

(3)如果抓到的数据包还是比较多,可以在Wireshark的过滤器(filter)中输入http,按“Apply”进行过滤。

过滤的结果就是和刚才打开的网页相关的数据包。

(4)在过滤的结果中选择第一个包括http get请求的帧,该帧用于向网站服务器发出http get请求(5)选中该帧后,点开该帧首部封装明细区中Internet Protocol前的”+”号,显示该帧所在的IP包的头部信息和数据区:(6)数据区目前以16进制表示,可以在数据区右键菜单中选择“Bits View”以2进制表示:(注意:数据区蓝色选中的数据是IP包的数据,其余数据是封装该IP包的其他层的数据)回答以下问题:1、该IP包的“版本”字段值为___0100______(2进制表示),该值代表该IP包的协议版本为:IPv4□IPv62、该IP包的“报头长度”字段值为__0101_______(2进制表示),该值代表该IP包的报头长度为___20______字节。

3、该IP包的“总长度”字段值为_110110011__(2进制表示),该值代表该IP包的总长度为_435_字节,可以推断出该IP包的数据区长度为__415__字节。

4、该IP包的“生存周期”字段值为___1000000___ (2进制表示),该值代表该IP包最多还可以经过___32______个路由器层封装协议为__Ethernet II_。

表示) ,该值代表该IP包的源IP地址为_192____._168____._40____.__11___。

7、该IP包的“目的IP地址”字段值为10110100 10011001 11000100 11011110(2进制表示) ,该值代表该IP包的目的IP地址为_180____.___153__.__196___.__222___。

实验四传输层数据包抓包分析相关理论(1)传输层:负责端到端的传输,只在数据传输的发送端和接收端工作,在传输过程中数据最高只被封装到网络层。

传输层使用的协议主要有TCP和UDP等。

TCP 是面向连接的、可靠的传输层协议,UDP是非连接的、不可靠的传输层协议。

(2)端口:端口是传输层与应用层的服务接口。

传输层的复用和分用功能都要通过端口才能实现。

使用传输层的每个终端有多个端口,用于区分同时进行的多项传输任务。

例如一台服务器即作为web服务器又作为数据库服务器,客户端连接时应选择访问web服务还是数据库服务,由于两个服务在一个IP上,只用IP无法进行区分,此时可以用不同的端口号区分。

端口号范围为0~65535。

(3)TCP分组的格式如下:格式中各字段说明如下:源端口(Source Port):16位的源端口字段包含初始化通信的端口号。

源端口和IP地址的作用是标识报文的返回地址。

目的端口(Destination Port):16位的目的端口字段定义传输的目的。

这个端口指明接收方计算机上的应用程序接口。

序列号(Sequence Number):该字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第几个数据字节。

确认号(Acknowledge Number):TCP使用32位的确认号字段标识期望收到的下一个段的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。

收到确认号的源计算机会知道特定的段已经被收到。

确认号的字段只在ACK标志被设置时才有效。

数据偏移(Data Offset):这个4位字段包括TCP头大小。

由于首部可能含有选项内容,因此TCP首部的长度是不确定的。

首部长度的单位是32比特或4个八位组。

首部长度实际上也指示了数据区在报文段中的起始偏移值。

保留(Reserved):6位置0的字段。

为将来定义新的用途保留。

、控制位(Control Bits):共6位,每一位标志可以打开一个控制功能。

URG(Urgent Pointer Field Significant,紧急指针字段标志):表示TCP包的紧急指针字段有效,用来保证TCP连接不被中断,并且督促中间齐备尽快处理这些数据。

ACK(Acknowledgement field significant,确认字段标志):取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。

PSH(Push Function,推功能):这个标志表示Push操作。

所谓Push操作就是指在数据包到达接收端以后,立即送给应用程序,而不是在缓冲区中排队。

RST(Reset the connection,重置连接):这个标志表示感谢连接复位请求,用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包。

SYN(Synchronize sequence numbers,同步序列号):表示同步序号,用来建立连接。

FIN(No more data from sender,结束):表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。

窗口(Window):目的主机使用16位的窗口字段告诉源主机它期望每次收到的数据通的字节数。

校验和(Checksum):TCP头包括16位的校验和字段用于错误检查。

紧急指针(Urgent Pointer):紧急指针字段是一个可选的16位指针,指向段内的最后一个字节位置,这个字段只在URG标志被设置时才有效。

相关主题