计算机网络实验五网络层协议分析实验报告

计算机网络实验五网络层协议分析实验报告

2023年7月31日发(作者:)

南昌航空大学实验报告

年 月 日

课程名称: 计算机网络与通信 实验名称: 网络层协议分析

班 级: 学生姓名: 邓佳威 学号: 2212893107

指导教师评定: 签名:

一、实验目的

分析ARP协议报文首部格式及其解析过程;分析ICMP报文格式和协议内容并了解其应用;分析IP报文格式、IP地址的分类和IP层的路由功能;分析TCP/IP协议中网络层的分片过程。

二、实验内容

(一)ARP协议分析

1.实验原理

(1)ARP协议

ARP(address resolution protocol)是地址解析协议的简称,在实际通信中,物理网络使用硬件地址进行报文传输,IP地址不能被物理网络所识别。所以必须建立两种地址的映射关系,这一过程称为地址解析。用于将IP地址解析成硬件地址的协议就被称为地址解析协议(ARP协议)。ARP是动态协议,就是说这个过程是自动完成的。

在每台使用ARP的主机中,都保留了一个专用的内存区(称为缓存),存放最近的IP地址与硬件地址的对应关系。一旦收到ARP应答,主机就将获得的IP地址和硬件地址的对应 关系存到缓存中。当发送报文时,首先去缓存中查找相应的项,如果找到相应项后,遍将报文直接发送出去;如果找不到,在利用ARP进行解析。ARP缓存信息在一定时间内有效,过期不更新就会被删除。

(2)同一网段的ARP解析过程

处在同一网段或不同网段的主机进行通信时,利用ARP协议进行地址解析的过程不同。在同一网段内通信时,如果在ARP缓存中查找不到对方主机的硬件地址,则源主机直接发送ARP请求报文,目的主机对此请求报文作出应答即可。

(3)不同网段的ARP解析过程

位于不同网段的主机进行通信时,源主机只需将报文发送给它的默认网关,即只需查找或解析自己的默认网关地址即可。

(二)ICMP协议分析

1.实验原理

(1)ICMP协议

ICMP(internet control message protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议。ICMP允许路由器或主机报告差错情况和提供有关信息,用以调试、监视网络。

在网络中,ICMP报文将作为IP层数据层的数据,封装在IP数据报文中进行传输。但ICMP并不是高层协议,而仍被视为网络层协议。

(2)ICMP报文的格式 由于ICMP报文的类型很多,且各自又有各自的代码,因此,ICMP并没有一个统一的报文格式以供全部ICMP信息使用。不同的ICMP类别分别有不同的报文字段。

ICMP报文只是在前4个有统一的格式,共有类型、代码和效验和3个字段。接着的4个字节的内容与ICMP报文的类型有关。再后面的数据字段的长度取决与ICMP报文的类型。

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

(3)ICMP报文的分类

ICMP报文的种类可以分为ICMP差错报告报文和ICMP询问报文两种,它们各自对应的报文类型及代码如表。

ICMP报文种类

差错报告报文

类型的值

3

4

11

12

5

询问报文 8或0

13或14

17或18

10或9

ICMP报文的类型

终点不可达

源站抑制(source quench)

时间超过

参数问题

路由重定向(redirect)

回送(echo)请求或应答

时间戳(timestamp)请求或应答

地址掩码(address mask)请求或应答

路由器询问(router solicitation)或通告

ICMP差错报告报文主要有终点不可达、源站抑制、超时、参数问题和路由重定向5种。实验中主要涉及终点不可达和超时2种。其中终点不可达报文中需要区分的不同情况较多,对应的代码列表如下:

代码

0

1

2

3

描述

网络不可达

主机不可达

协议不可达

端口不可达

处理方法

无路由到达主机

无路由到达主机

连接被拒绝

报文太长

代码

8

9

10

11

描述

源主机被隔离(做废不用)

目的网络被强制禁止

目的主机被强制禁止

由于服务类型TOS,网络不可达

4 需要进行分片但设置了不分片位

5

6

7

源站选路失败

目的网络不认识

目的主机不认识

无路由到达主机

无路由到达主机

无路由到达主机

13

14

15

无路由到达主机 12 由于服务类型TOS,主机不可达

由于过滤,通信被强制禁止

主机越权

优先权终止生效

(忽略)

(忽略)

(忽略)

无路由到达主机

处理方法

无路由到达主机

无路由到达主机

无路由到达主机

无路由到达主机

其中较为常见的是前5种。

ICMP询问报文有回送请求和应答、时间戳请求和应答、地址掩码请求和应答以及路由器询问和通告4种。

ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出询问,受到次报文的机器必须给源主机发送ICMP回送应答报文,ping命令就是基于它的一个广泛而重要的应用。

ICMP时间戳请求报文是请某个主机或路由器应答当前的日期和时间。可用来进行时钟同步和测量时间。

主机使用ICMP地址掩码请求报文可从子网掩码服务器得到某个接口的地址掩码。 (三)IP协议分析

1.实验原理

(1)IP报文格式

IP数据报由首部和数据两部分组成。

首部又分为两部分,前一部分是固定长度的,必不可少,共20字节;后一部分是一些可选字段,长度可变。

(2)IP地址的编址方法

IP地址是给每个连接在因特网上的主机分配一个全球范围内唯一的32位标识符。IP地址的编址方法共经历过三个阶段。

首先,第一阶段是分类的IP地址,这是一种基于分类的两级IP地址编址方法。IP地址被分为“网络号”+“主机号”。IP地址空间的利用率较低、路由表变得太大以及两级的IP地址不够等原因导致了地址掩码的引入,进入了划分子网的第二阶段,采用“网络号”+“子网号”+“主机号”的三级IP地址编址方法;然后,根据第二阶段的问题,提出了无分类域间路由选择CIDR的第三阶段编址方法。IP地址采用“网络前缀”+“主机号”的编址方式。

目前CIDR是应用最广泛的编址方法,它消除了传统的A类、B类、C类地址和划分子网的概念,提高了IP地址资源的利用率,并使得路由聚合的实现成为可能。

(3)IP层的路由分析

数据报文在网络中的传输主要分为主机发送和路由器转发两种。主机发送数据报的方式有:直接交付和间接交付。首先,主机将待发送数据报的目的地址同自己的子网掩码进行逐位相“与”;然后判断运算结果是否等于其所在的网络地址,是则将数据报直接交付到本网络;否则,发往下一跳路由器(一般为主机的默认网关)。

路由器转发数据报的算法一般是:

① 从收到数据报的首部提取目的IP地址D。

② 先判断是否为直接交付。对与路由器直接相连的网络逐个进行检查:各网络的子网掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则将分组进行直接交付(需要将D转换为物理地址,将数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行③。

③ 若路由表中有目的地址为D的待定主机路由,则将数据报传送给路由表中所指明的下一个跳路由器;否则,执行④。

④ 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),将其中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则将数据报传送给该行指明的下一跳路由器;否则,执行⑤。

⑤ 若路由表中有一个默认路由,则将数据报传送给路由器中所指明的默认路由器;负责,执行⑥。

⑥ 报告转发分组出错。

因此,网络中不同网段之间的数据报文进行传输时,必须通过路由来完成。路由就是控制报文进行转发的路径信息。每一台网络层设备(比如三层交换机、路由器)都存储着一张关于路由信息的表格,称为路由表。数据报文到达网络层设备之后,根据其目的IP地址查找路由表确定报文传输的最佳路径(下一跳)。然后利用网络层的协议封装数据报文,利用下层提供的服务把数据报文转发出去。

而路由表的生成可以分为静态配置和动态生成两种,对应的路由协议也有静态路由协议和动态路由协议。这部分内容将在下一章详细介绍。 (四)网络层分片实验

1.实验原理

分片就是在数据包从一个MTU较大的网络传输到MTU较小的网络过程中,将一个较大的数据包分为几个较小的数据包来传输。

在以太网路由器的设计中,ping命令的数据包数据部分大小范围从46字节到1500字节。这里可以设置ping的数据部分长度为15000字节。因为以太网的缺省MTU为1500字节。因此在使用此ping命令时,15000字节的数据分11片进行传输。

三、实验过程及结果

1、ARP协议分析

步骤1自己与旁边的机器分别设为PCA和PCB。。

步骤2 在PCA、PCB的命令行窗口中执行以下命令:

C:>arp –a

结果是:

如果APR缓存非空,可以执行arp –d命令,清空ARP缓存。

步骤3 运行PCA、PCB上的WireShark,开始截获数据报文, ,并在显示过滤器中设置==PCB || arp;在PCA的命令行窗口中执行ping PCB命令。执行完之后,停止PCA、PCB上的WireShark报文截获,将此次结果命名为ping1。

步骤4 在PCA、PCB的命令行窗口中执行以下命令:

C:>arp –a

结果是:

步骤5 重复步骤3。将此次结果命名为ping2。

步骤6 分析文件ping1,完成下列工作:

(1)统计“protocol”字段填空:有__________个ARP报文。

答:2个

(2)在所有报文中,ARP报文中APR协议树的opcode字段有两个取值1、2,两个取值分别表达什么信息?

答:Request(0*0001) reply(0*0002)

(3)选中第一条ARP请求报文和第一条ARP应答报文,将APR请求报文和ARP应答报文中的字段信息填入表中。

字段项

链路层Destination项

链路层Source项

网络层Sender MAC Address

网络层Sender IP Address

网络层Target MAC Address

网络层Target IP Address

ARP请求数据报文

e4:a4:71:c1:41:b1

1c:da:27:41:20:36

1c:da:27:41:20:36

192.168.43.1

00:00:00:00:00:00

192.168.43.78

ARP应答数据报文

1c:da:27:41:20:36

e4:a4:71:c1:41:b1

e4:a4:71:c1:41:b1

192.168.43.78

1c:da:27:41:20:36

192.168.43.1

步骤7 分析文件ping2,完成下列工作:

(1)比较文件ping1中截获的报文信息,少了什么报文?简述ARP cache的作用。

答:少了ARP报文。

ARP cache 作用:ARP高速缓存是动态的,每当发生一个指定地点的数据报且高速缓存不存在当前项目时,ARP便会自动添加该项目。计算机进行路由选择时首先在ARP高速缓存中查找,如果没有找到,再通过广播请求消息来查找。

(2)写出ARP协议在同一网段内的解析过程。

答:

1、内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表

2、如果存在该IP-MAC对应关系,那么就;如果不存在该IP-MAC对应关系,那么就接着按ping命令本来的步骤做下去,即用icmp协议。

3、内核进行ARP广播,目的地的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令类型为REQUEST(1),其中包含有自己的MAC地址

4、当192.168.2.135主机接收到该ARP请求后,就发送一个ARP的REPLY(2)命令,其中包含自己的MAC地址

5、本地获得192.168.2.135主机的IP-MAC地址对应关系,并保存到ARP缓存中

6、内核将把IP转化为MAC地址,然后封装在以太网头结构中,再把数据发送出去

2、ICMP协议分析

(1)ICMP询问报文分析

步骤1 配置同上。

步骤2 在PCA和PCB上运行WireShark进行报文截获,然后执行PCA ping PCB,分析截获的ICMP报文。

共有____个ICMP报文,分别属于那些种类?对应的种类和代码字段分别是什么?

答:共有24个ICMP报文,12个请求报文,12个回复报文,请求报文种类为(Echo (ping)

request),代码段数据为0;回复报文种类为(Echo (ping) reply),代码段数据为0

请分析报文总的那些字段保证了回送请求报文和回送应答报文的一一对应?

答:网络层的Source和Destination保证了回送请求报文和回送应答报文的一一对应

分析截获报文并填写表:

地址掩码请求报文

ICMP字段

Type

Code

Checksum

Identifier(BE)

Identifier(LE)

字段值

8 (Echo (ping) request)

0

0x4d54(correct)

1 (0x0001)

ICMP字段

Type

Code

Checksun

Identifier(BE)

Identifier(LE)

地址掩码应答报文

字段值

0(Echo (ping) reply)

0

0x555a

1 (0x0001)

256 (0x0100)

7 (0x0007)

1792 (0x0700)

256 (0x0100)

7 (0x0007)

1792 (0x0700)

Sequence

number(BE)

Sequence

number(BE)

Sequence

number(BE)

Sequence

number(LE)

(2)ICMP差错报文分析

步骤3 在PCA和PCB上运行WireShark进行报文截获,然后在PCA上执行ping

192.168.6.230和ping 192.155.1.1,分析PCA和PCB截获的ICMP报文。

 请比较这两种情况有何不同

答:因为ping的IP地址都和PCA不是同一网段的,所有PCA都会将报文发送给默认网关。第一张情况,192.168.6.230在默认路由的默认端口的子网内,所有会发送报文至默认端口,而在第二种情况,192.155.1.1不在上述路由表内,所有认为不可达,从而回复Destination unreachable。

 截获了哪种ICMP报文?其类型和代码字段值是什么?此报文的ICMP协议部分又分为了几部分?其作用是什么?

答:终点不可达差错报文,类型字段为3(Destination unreachable)。此报文的ICMP协议部分又包括Code为0表示网络不可达。即无路由到主机,封装的源Echo请求ICMP报文的IP层和ICMP层表示该差错报文来源于一个本主机到ping 192.155.1.1的Echo请求。

步骤4 取消PCA上的DNS配置,在PCA和PCB上运行WireShark进行报文截获,然后在PCA上执行tracert 10.1.3.10,将PCA上截获的命名为tracert1,并进行分析。

注意:为了便于分析,避免截获报文太多太杂,建议首先取消PCA上的DNS配置。

 结合报文内容,简述tracert的工作过程。

答:PCA运行tracert向目的地址PCB发送具有不同生存时间(TTL)的ICMP Echo请求报文,在PCA到PCB路径上的每个路由器都要在转发该ICMP报文时将其TTL值减1。当TTL值减为0时,路由器就向源主机PCA发送ICMP超时差错报文。而PCA通过向PCB发送TTL为1,2,…,n的Echo报文就可以获得从PCA到PCB的所有路径信息。

 截获了哪种ICMP差错报文?其类型和代码字段值是什么?

答:截获了超时报文。其类型有Type:11(Time-to-live exceeded);Code:0(Time to live exceeded in transit)。

3. IP协议分析

步骤1 在上一节实验步骤4的基础上,用WireShark软件打开文件tracert-学号,分析IP协议报文。

(1)分析第1个ICMP报文的IP协议部分。

(2)tracert命令用到了网络层的那些协议和哪些字段?

答:网络层”与 ICMP 并列的还有 IGMP、IP、ARP 等,其中除 IP

协议是用于传输数据的以外,其它基本上都是用于控制的协议。

Tracert 程序先发出 3个TTL初值=1的ICMP数据报,然后是3个2、3个3,

依次类推,这样就能得到一连串与自己相距1个、2个、3个……位置的

路由器的回送数据报,从而描绘出沿途经过的所有路由器,

直到目的主机/路由器为止。

步骤2 将PCA上的子网掩码配置为:255.255.0.0,在PCA和PCB上运行WireShark进行报文截获,然后执行PCA ping PCB。观察PCA和PCB能否ping通?结合截获报文分析原因。

答:不能PING通。在报文中的ARP协议中有“WHO HAS PCB TELLPCA”,是以BROADCAST形式发出的,之后有一个ICMP协议报文回应“DESTINATION UNREACHABLE”,即找不到PCB,故说明PING不通。

步骤3 将PCA上的子网掩码恢复为255.255.255.0。查看路由表信息,执行命令

C:>netstat -r

将结果填入表中:

Destination

10.85.32.0

10.85.33.210

10.85.47.255

127.0.0.0

127.0.0.1

127.255.255.255

192.168.23.0

192.168.23.1

Netmask

255.255.240.0

255.255.255.255

255.255.255.255

255.0.0.0

255.255.255.255

255.255.255.255

255.255.255.0

255.255.255.255

Gateway

在链路上

在链路上

在链路上

在链路上

在链路上

在链路上

在链路上

在链路上

Interface

10.85.32.210

10.85.32.210

10.85.32.210

127.0.0.1

127.0.0.1

127.0.0.1

192.168.23.1

192.168.23.1

4. 网络层分片实验

步骤1 两台机器配置如前。 步骤2在PCA和PCB上运行WireShark进行报文截获,然后在PCA上执行:

ping –l 15000 PCB,分析截获的报文。

步骤3 各自分析在计算机上截获的数据报文。

(1)在截获报文中,有_____个ARP报文,_____个ICMP:Echo报文,_____个ICMP:Echo Reply报文,_____个IP报文。

答:2个ARP报文,4个ICMP:Echo报文,4个ICMP:Echo Reply报文,80个个IP报文。

(2)根据对ping命令执行过程的分析,将本属于同一个数据报文信息的报文截取出来。

将第一个ICMP request的四个报文分片信息填入表中:

字段名称 分片序号1

0x090e

0x00

1480

1480

分片序号2

0x090e

0x00

2960

1480

分片序号10

0x090e

0x00

14800

1480

分片序号11

0x090e

0x00

15000

208

Identification字段值

Flag字段值

Frame offset字段值

传输的数据量

(4)ping的数据部分为15000字节,以太网MTU为1500字节。回送请求报文为何被分为11片而不是10片?数据部分长度为多少时报文正好被分为10片?

答:因为还有IP首部部分加进去了,实际每次只传输1480字节。14800字节。

四、实验总结

通过本次实验了解了分析ARP协议报文首部格式及其解析过程;学会了分析ICMP报文格式和协议内容并了解其应用;分析IP报文格式、IP地址的分类和IP层的路由功能;和分析TCP/IP协议中网络层的分片过程。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690781817a424707.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信