北邮计算机网络实验二协议数据的捕获和解析.docx

上传人:b****9 文档编号:23362637 上传时间:2023-05-16 格式:DOCX 页数:42 大小:1.19MB
下载 相关 举报
北邮计算机网络实验二协议数据的捕获和解析.docx_第1页
第1页 / 共42页
北邮计算机网络实验二协议数据的捕获和解析.docx_第2页
第2页 / 共42页
北邮计算机网络实验二协议数据的捕获和解析.docx_第3页
第3页 / 共42页
北邮计算机网络实验二协议数据的捕获和解析.docx_第4页
第4页 / 共42页
北邮计算机网络实验二协议数据的捕获和解析.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

北邮计算机网络实验二协议数据的捕获和解析.docx

《北邮计算机网络实验二协议数据的捕获和解析.docx》由会员分享,可在线阅读,更多相关《北邮计算机网络实验二协议数据的捕获和解析.docx(42页珍藏版)》请在冰豆网上搜索。

北邮计算机网络实验二协议数据的捕获和解析.docx

北邮计算机网络实验二协议数据的捕获和解析

实验二:

协议数据的捕获和解析

作者:

北邮

学院(系):

计算机学院

专业:

班级:

2009211307

指导教师:

 

目录

一、实验准备3

1.1.实验目的3

1.2.实验设备环境3

1.3.实验内容3

1.4.实验原理3

二、实验步骤7

2.1.准备工作7

2.2.数据捕获7

2.3.协议分析8

三、实验结果分析8

3.1.IP协议8

3.2.ICMP协议16

3.3.DHCP协议20

3.4.ARP协议33

3.5.观察网络中的其他分组36

三、实验心得38

四、参考文献38

一、实验准备

1.1.实验目的

<1>掌握具体的包格式

<2>进一步从网络中熟悉和了解计算机网络中现存的协议对应的包格式

<3>通过本次实验了解计算机上网的工作过程,学习各种网络层分组的格式及其作用,理解长度大于1500字节IP数据组分片传输的结构。

<4>掌握各种分组在网络通信中的应用,了解整个上网的工作过程。

1.2.实验设备环境

<1>1台装有MSWindows系列操作系统的pc机

<2>PC机器能够连接到Internet、安装能运行的WireShark软件

1.3.实验内容

本次实验主要包含下列内容:

<1>使用Wireshark软件捕获在使用ping命令时产生的ICMP消息;

<2>分析网络层IP包头格式,理解各字段的作用,对于分段和校验和进行验证;

<3>使用Wireshark软件捕获在使用ARP消息,分析其消息格式,理解其工作原理;

<4>使用Wireshark捕获DHCP消息,分析其消息序列,理解DHCP的功能和操作原理。

通过本实验深入理解分层体系结构,理解和掌握TCP/IP协议栈的代表协议——IP、

UDP、ICMP、ARP和DHCP协议的要点。

1.4.实验原理

<1>根据网络中的数据分层原理,在计算机网络中由于大都是使用IP进行网络互联,因此包的格式是有规律的,其中在当前公网中路由器支持的包也为IP格式包,因此我们通过分析抓取的IP包就可以得到包的部分信息

<2>其中IPV4的包格式如下图示:

<3>ICMP包在网络的相关控制和调试方面启到了关键性作用,因此对ICMP包格式进行过滤获取是很重要的,ICMP包将自身包装一层IP头,然后在网络中间进行传输:

其中ICMP包格式如下

 

其中类型字段表示ICMP报文的类型;代码字段是为了进一步区分某种类型的几种不同情况,类型(Type)与代码(Code)的具体描述如下:

校验和字段用来检验整个ICMP报文。

接着的4个字节的内容与ICMP的类型有关。

再后面是数据字段,其长度取决于ICMP的类型。

<4>DHCP报文

通过查阅RFC2131可以得到数据的报文结构,如下(括号里的数字表示字段的长度,单位是字节):

DHCP报文中的Options字段可以用来存放某些普通协议中没有定义的控制信息和参数。

如果用户在DHCP服务器端配置了Options,DHCP客户端在申请IP地址的时候,会通过服务器端回应的DHCP报文获得Options字段中的配置信息。

其他字段会在后面分析。

<5>ARP报文结构:

硬件类型字段:

指明了发送方想知道的硬件接口类型,以太网的值为1;

  协议类型字段:

指明了发送方提供的高层协议类型,IP为0800(16进制);

  硬件地址长度和协议长度:

指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;

  操作字段:

用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;

  发送方的硬件地址(0-2字节):

源主机硬件地址的前3个字节;

  发送方的硬件地址(3-5字节):

源主机硬件地址的后3个字节;

发送方IP(0-1字节):

源主机硬件地址的前2个字节;

<6>以太网帧数据最长为1500字节,以太网广泛应用在各种网络中,而以太网格式如下:

先导域

源地址

目的地址

长度

数据

校验和

二、实验步骤

2.1.准备工作

1.下载Wireshark软件并了解其功能和使用方法。

2.确保计算机已经连接到网络。

3.启动Wireshark1,设置捕获接口(Interface)为本机网卡,选中混杂模式(promiscuousmode)捕获选项,设置合适的捕获过滤器(CaptureFilter):

对于ping命令,设置过滤器为icmp

对于DHCP消息,设置过滤器为udpport67

对于ARP消息,设置过滤器为arp

4.开始捕获。

2.2.数据捕获

A.捕获ICMP协议数据

1.运行ping命令(例如:

c>ping192.168.0.1),远程主机地址可以是本机地址、网关路由器地址,也可以是域名(如)。

将捕获到的数据保存为文件。

2.使用Windows中ping命令的-l选项(例如:

c>ping-l8000192.168.0.1),制作大于8000字节的IP包并发送,捕获后分析其分段传输的包结构。

B.捕获DHCP协议消息

1.使用ipconfig命令释放计算机的IP地址(c>ipconfig-release);

2.使用ipconfig命令重新申请IP地址(c>ipconfig-renew)。

此时wireshark窗口中可以捕获到完整的DHCP地址分配的流程,将捕获到的数据保存为文件。

C.捕获ARP协议数据

采用与7.2.2相同的方法释放IP地址并重新申请,在wireshark窗口中可以捕获到ARP请求和响应消息,保存为文件。

2.3.协议分析

运行Wireshark软件,打开捕获数据文件,完成下列分析工作:

1.IP包头分析:

对于采用ping命令-l选项捕获的ICMP消息,对承载ICMP消息的IP包进行分析,记录包头各字段的值,对照讲义和教材分析各字段的功能,并对于校验和和分段进行验证;

2.ICMP消息分析:

记录并分析ICMP消息中分析各字段的功能;

3.DHCP消息分析:

针对一次地址分配过程(TransactionID相同的4个消息),分析其通信过程,画出地址分配的消息序列图,并记录采用DHCP协议配置的各个参数。

4.ARP消息分析:

对照讲义理解ARP的操作过程,记录并分析消息中各字段的功能。

三、实验结果分析

3.1.IP协议

运行ping–l8000

制作一个8000字节的IP包并发送,捕获后分析IP分段传输的包结构。

目的地址为。

制作包如下:

抓包过滤得到的信息如下:

3.1.1.捕获IP包分析包头字段及IP包分段原理:

链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。

如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分段(fragmentation)操作,使每一片的长度都小于或等于MTU。

由上图可知8000字节的IP包被分成6个分组发送。

IP首部包含了分片和重组所需的信息:

①16位的标识(Identification):

发送端发送的IP数据包标识字段都是一个唯一值,该值在分片时被复制到每个片中。

②3位的标志字段分别是:

R:

保留未用。

DF:

Don'tFragment,“不分段”位,如果将这一比特置1,IP层将不对数据报进行分片。

MF:

MoreFragment,“更多的段”,除了最后一片外,其他每个组成数据报的片都要把该比特置1。

FragmentOffset:

该片偏移原始数据包开始处的位置。

偏移的字节数是该值乘以8。

另外,当数据报被分段后,每个片的总长度值要改为该片段的长度值。

下面通过对这六个IP分组包头的分析,验证分段原理。

其中IP分组1为:

由上图可知:

字段报文(16进制)备注

版本4IPV4

包头长度5报头长20字节

服务类型00正常时延,正常吞吐量,

正常可靠性

总长度05dc分组长度1500字节

标识f99b序列号63899

标志01MF=1,DF=0,允许分片

此片不是最后一片

偏移值00偏移量为0

生存周期40每跳生存周期为64s

协议01携带的数据来自ICMP协议

头部校验和faa6IP头部校验和为faa6

源地址76e5dob6源地址为118.229.208.182

目的地址d34445fe目的地址为211.68.69.254

上述为第一片,由于数据最长为1500字节,而IP头占据20字节,因此实

际的数据只有1480字节,那么分组2偏移应该为1480,实际我们采集到的

IP分组2为:

由上图可知:

字段报文(16进制)备注

版本4IPV4

包头长度5报头长20字节

服务类型00正常时延,正常吞吐量,

正常可靠性

总长度05dc分组长度1500字节

标识f99b序列号63899

标志01MF=1,DF=0,允许分片

此片不是最后一片

偏移值20b9偏移量为1480

生存周期40每跳生存周期为64s

协议01携带的数据来自ICMP协议

头部校验和f9edIP头部校验和为f9ed

源地址76e5dob6源地址为118.229.208.182

目的地址d34445fe目的地址为211.68.69.254

 

上述为第2片,由于数据最长为1500字节,而IP头占据20字节,因此实际

的数据只有1480字节,那么分组3偏移应该为1480*2=2960,实际我们采集到的

IP分组3为:

由上图可知:

字段报文(16进制)备注

版本4IPV4

包头长度5报头长20字节

服务类型00正常时延,正常吞吐量,

正常可靠性

总长度05dc分组长度1500字节

标识f99b序列号63899

标志01MF=1,DF=0,允许分片

此片不是最后一片

偏移值2172偏移量为2960

生存周期40每跳生存周期为64s

协议01携带的数据来自ICMP协议

头部校验和f934IP头部校验和为f934

源地址76e5dob6源地址为118.229.208.182

目的地址d34445fe目的地址为211.68.69.254

 

上述为第3片,由于数据最长为1500字节,而IP头占据20字节,因此实际

的数据只有1480字节,那么分组4偏移应该为1480*3=4440,实际我们采集到的

IP分组4为:

由上图可知:

字段报文(16进制)备注

版本4IPV4

包头长度5报头长20字节

服务类型00正常时延,正常吞吐量,

正常可靠性

总长度05dc分组长度1500字节

标识f99b序列号63899

标志01MF=1,DF=0,允许分片

此片不是最后一片

偏移值222b偏移量为4440

生存周期40每跳生存周期为64s

协议01携带的数据来自ICMP协议

头部校验和f87bIP头部校验和为f87b

源地址76e5dob6源地址为118.229.208.182

目的地址d34445fe目的地址为211.68.69.254

 

上述为第4片,由于数据最长为1500字节,而IP头占据20字节,因此实际

的数据只有1480字节,那么分组5偏移应该为1480*4=5920,实际我们采集到的

IP分组5为:

由上图可知

字段报文(16进制)备注

版本4IPV4

包头长度5报头长20字节

服务类型00正常时延,正常吞吐量,

正常可靠性

总长度05dc分组长度1500字节

标识f99b序列号63899

标志01MF=1,DF=0,允许分片

此片不是最后一片

偏移值22e4偏移量为5920

生存周期40每跳生存周期为64s

协议01携带的数据来自ICMP协议

头部校验和f7c2IP头部校验和为f7c2

源地址76e5dob6源地址为118.229.208.182

目的地址d34445fe目的地址为211.68.69.254

 

上述为第5片,由于数据最长为1500字节,而IP头占据20字节,因此实际

的数据只有1480字节,那么分组6偏移应该为1480*5=7400,实际我们采集到的

IP分组6(最后1包)为:

由上图可知:

字段报文(16进制)备注

版本4IPV4

包头长度5报头长20字节

服务类型00正常时延,正常吞吐量,

正常可靠性

总长度0274分组长度628字节

标识f99b序列号63899

标志00MF=0,DF=0,允许分片

此片是最后一片

偏移值039d偏移量为7400

生存周期40每跳生存周期为64s

协议01携带的数据来自ICMP协议

头部校验和1a72IP头部校验和为1a72

源地址76e5dob6源地址为118.229.208.182

目的地址d34445fe目的地址为211.68.69.254

 

此包长度为628,由于为ICMP包,占用了8个字节,而实际数据为620字节,

则数据总长度为1480*5+620=8000字节,由数据解析获得验证如下表,则有:

3.1.2.IP包头校验和的校验原理:

首部检验和字段是根据IP首部计算的检验和码。

它不对首部后面的数据进行计算。

ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。

为了计算一份数据报的IP检验和,首先把检验和字段置为0。

然后,对首部中每个16bit进行二进制反码求和(整个首部看成是由一串16bit的字组成),结果存在检验和字段中。

当收到一份IP数据报后,同样对首部中每个16bit进行二进制反码的求和。

由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。

如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。

但是不生成差错报文,由上层去发现丢失的数据报并进行重传。

需要说明的是,IP协议仅计算IP包头的校验和,而不计算数据区的校验和。

这样做是为了减少路由器的计算量,同时也让上层协议可以为数据提供自己的校验和计算方法。

下面描述捕获的IP包头校验和的计算过程,以IP分组6为例:

IP包头为:

45000274f99b039d40011a7276e5d0b6d34445fe

计算结果为全1,故校验和正确。

3.2.ICMP协议

ICMP是(InternetControlMessageProtocol)Internet控制报文协议。

它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程,检测如下:

3.2.1.获得本机IP地址

3.2.2.运行Ping命令

Ping

由以上截图可知,ping的网络和本机不再同一网段内,在本机想得到mac地址的时候,将直接交由路由处理。

在这里ping域名,那么先要通过DNS将域名解析为ip地址方能通信。

可使用ipconfig/all命令查到DNS服务器地址:

Ping对应的ICMP包如下

3.2.3分析ICMP各字段功能

上图即为捕获到的ICMP协议包的信息。

ICMP包将自身包装一层IP头,然后在网络中间进行传输:

其中ICMP包格式如下:

类型(8位)

代码(8位)

校验和(8位)

类型或者代码

其中类型字段表示ICMP报文的类型;代码字段是为了进一步区分某种类型的几种不同情况;校验和字段用来检验整个ICMP报文。

接着的4个字节的内容与ICMP的类型有关。

再后面是数据字段,其长度取决于ICMP的类型。

3.3.DHCP协议

动态主机设置协议(DynamicHostConfigurationProtocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:

给内部网络或网络服务供应商自动分配IP地址给用户给内部网络管理员作为对所有计算机作中央管理的手段。

使用udpport67来过滤DHCP协议:

3.3.1使用ipconfig命令释放计算机的IP地址(c>ipconfig-release)

3.3.2.使用ipconfig命令重新申请IP地址(c>ipconfig-renew)

3.3.3.DHCP功能及报文格式

a)DHCP的功能:

 DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议。

 DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器。

DHCP为客户端分配地址的方法有三种:

手工配置、自动配置、动态配置。

 DHCP最重要的功能就是动态分配。

除了IP地址,DHCP分组还为客户端提供其他的配置信息,比如子网掩码。

这使得客户端无需用户动手就能自动配置连接网络。

b)DHCP的的报文格式

OP

(1)

Htype

(1)

Hlen

(1)

Hops

(1)

TransactionID(4)

Seconds

(2)

Flags

(2)

Ciaddr(4)

Yiaddr(4)

Siaddr(4)

Giaddr(4)

Chaddr(16)

Sname(64)

File(128)

Options(variable)

OP:

若是client送给server的封包,设为1,反向为2;

Htype:

硬件类别,ethernet为1;

Hlen:

硬件长度,ethernet为6;

Hops:

若数据包需经过router传送,每站加1,若在同一网内,为0;

TransactionID:

事务ID,是个随机数,用于客户和服务器之间匹配请求和相应消息;

Seconds:

由用户指定的时间,指开始地址获取和更新进行后的时间;

Flags:

从0-15bits,最左一bit为1时表示server将以广播方式传送封包给client,其余尚未使用;

Ciaddr:

用户IP地址;

Yiaddr:

服务器分配给客户的IP地址;

Siaddr:

用于bootstrap过程中的IP地址;(服务器的IP地址)

Giaddr:

转发代理(网关)IP地址;

Chaddr:

client的硬件地址;

Sname:

可选server的名称,以0x00结尾;

File:

启动文件名;

Options:

,厂商标识,可选的参数字段

3.3.4抓包及分析

由上图知道,源端口号为68,目的端口号为67。

且DHCPserver不是由路由器充当:

DHCPserver的IP地址为:

211.68.71.5,而路由器的IP地址为118.229.130.129。

有DHCPRelay,RelayagentIPaddressis118.229.130.129.

工作流程如下:

DHCP客户端和服务器交互图(申请一个新的网络地址)

寻找Server

根据客户端是否第一次登录网络,DHCP的工作形式会有所不同,当DHCP客户端第一次登录网络的时候,也就是客户发现本机上没有任何IP数据设定,它会向网络发出一个DHCPDISCOVER封包。

因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为0.0.0.0,而目的地址则为255.255.255.255,然后再附上DHCPdiscover的信息,向网络进行广播。

DHCPdiscover相应报文信息有:

此时还没有分配地址,所以源地址为全零,也不知道DHCP的地址,所以目的地址为全1。

字段

含义

Messagetype

01

该数据为Bootrequest由主机往DHCP服务器发送请求

Htype

01

硬件类型为以太网

Hlen

06

硬件的物理地址长度为6个字节,以太网中MAC地址为6字节

Hops

00

客户端被设置为0,表示如果要用中继代理,则可以随意选择

Xid:

fd14f85aH

传输标识,一个随机数由客户选择,由客户端和服务器之间的关联信息,并在客户端和服务器响应使用

Secs

a

客户端填写

Ciaddr

00000000

客户端ip地址,在Bootrequest中由于正等待分配地址,所以该地段用全0填写

Yiaddr

00000000

指定客户端的地址,在Bootrequest中为全0

Siaddr

00000000

下一个DHCP服务器的IP地址使用在DHCPOFFER,DHCPACK由服务器返回引导

Giaddr

00000000

中继代理的IP地址,通过一个中继开机使用

Chaddr

00:

23:

8b:

bf:

61:

70

MAC地址

Sname

未给出

File

未给出

提供IP租用地址

当DHCP服务器监听到客户端发出的DHCPdiscover广播后,它会从那些还没有租出的地址范围内,选择最前面的空置IP,连同其它TCP/IP设定,响应给客户端一个DHCPOFFER封包。

由于客户端在开始的时候还没有IP地址,所以在其DHCPdiscover封包内会带有其MAC地址信息,并且有一个XID编号来辨别该封包,DHCP服务器响应的DHCPoffer封包则会根据这些资料传递给要求租约的客户。

根据服务器端的设定,DHCPoffer封包会包含一个租约期限的信息。

DHCPoffer相应报文信息有:

此时,源端口号和目的端口号与DHCPdiscover的刚好相反,即DHCP服务器用端口号67,客户端用端口号68。

字段

含义

Messagetype

02

Bootreply由DHCP服务器发送配置信息给主机

Htype

01

硬件类型为以太网

Hlen

06

硬件的物理地址长度为6个字节,以太网中MAC地址为6字节

Hops

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1