电子科大TCPIP第四次实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学
实
验
报
告
学生姓名:
学号:
课程名称:TCP/IP协议
指导教师:
日期:2016 年 11 月 26 日
实验项目名称:排错工具Ping和Trace
报告评分:教师签字:
一、实验原理
“PING”这个名字源于声纳定位操作。
PING程序的目的是测试另一台主机否可达,它发送 ICMP 回送请求报文给被测主机,并等待返的ICMP回送应答差错报告报文。
ICMP协议(RFC 792)是IP协议的辅助协议,提供差错报告和查询机制。
一台主机的可达性不仅取决于 IP 层是否可达,还取决于使用的高协议及端口号。
仅当被测主机可达时,PING程序才能收到返回的ICMP 回送应答报文,并能测出到该主机的往返时间。
如果被测主机不可达,PING程序会收到一些ICMP 差错报告报文,甚至收不到任何返回信息。
根据 ICMP 差错报告文的类型,可粗略判定主机不可达的原因。
不同的物理网络具有不同的最大传送单元(MTU)值,因此可能需要对IP分组进行分片操作使其能够通过这些物理网络。
当IP分组被分片时,需要修改头中的标志、分片偏移和总长度值,其余各字段将被复制到所有分片中。
已经分片的IP分组在遇到具有更小MTU的网络时还会被再次分片。
TTL字段是由发送端初始设置在IP分组首部中的一个8 bit字段,不同操作系统上的不同应用程序指定的初始值不同。
路由器在转发每个IP分组时需要将该分组的TTL值减 1或减去该分组在路由器中停留的秒数。
由于大多转发IP 分组的时延都小于1秒钟,因此TTL 最终成为一个跳站计数器,即分组每经过台路由其最终成为一个跳站计数器,即分组每经过台路由其最终成为一个跳站计数器,即分组
每经过一台路由其TTL值被减 1。
TTL字段的目是为了防止分组在选路时被无休转发。
当由器收到一份需转发的IP分组时,如果该分组的TTL 值为1,路由器则丢弃该分组,并向源发送一份ICMP 的TTL 超时报文。
TRACE程序使用 IP 分组首部的 TTL 字段(生存时间)和ICMP 报文,让使用者可以看到 IP 分组从一台主机传到另一台主机所经过的路由。
TRACE程序首先发送一份 TTL 值为 1的 IP 分组给目的主机,处理该分组的第1个路由器即会返回一份以自己的IP地址为源的携带有ICMP 超时报文的 IP 分组,这样TRACE程序就得到了该路径中第1个路由器的 IP 地址。
然后,TRACE程序发送一份TTL 值为 2
的 IP 分组,同样又可获得该路径中第2个路由器的IP 地址。
TRACE 程序不断增加所发送IP分组的TTL值直至IP 分组到达目的主机,即可获得所经过每一个路由器地址。
但是,IP 分组的目的主机不处理该分组的TTL 值,即使收到TTL 值为1的IP分组也不会丢弃该分组并产生一份 ICMP 超时报文。
因此,TRACE程序必须判断IP分组是否已到达目的主机,不同操作系统上TRACE程序的判断方法不同。
目前通常有两种实现方法:一种是利用“端口不可达”的ICMP 差错报文,另一种则是使用ICMP 回送请求和回送应答报文。
在前一种方法中,TRACE 程序发给目的主机的IP 分组中携带的是一份UDP 数据报,该UDP数据报的目的端口是一个目的主机上任
一应用程序都不可能使用的UDP端口(通常大于30000)。
当该IP 分组到达目的主机时,目的主机的UDP 模块会产生一份“端口不可达”的ICMP差错报文返回给TRACE 程序。
这样,TRACE 程序即可根据收到的ICMP报文是超时还是端口不可达来判断何时结束。
在后一种方法中,TRACE 程序发给目的主机的IP 分组中携带的是ICMP 回送请求报文。
当该IP 分组到达目的主机时,目的主机即会返回一份ICMP 回送应答报文给TRACE 程序。
这样,TRACE 程序即可根据收到的ICMP 报文是超时还是回送应答来判断何时结束。
二、实验目的
1、了解网络连通性测试的方法和工作原理
2、了解网络路径跟踪的方法和工作原理
3、掌握 MTU的概念和IP分片操作
4、掌握IP分组生存时间(TTL)的含义和作用
5、掌握路由表的作用和查找算法
三、实验内容
R1 F0/0 = 192.168.11.254/24 R2 F0/0 = 192.168.22.254/24 R1~R4间4个IP子网掩码均为/30
PC2 = 192.168.11.2/24 PC3 = 192.168.22.3/24 PC4 = 192.168.22.4/24(未开机)
实验拓扑中VMware 虚拟机PC2、PC3 和PC4(未开机)分别位于由提供集线器功能的虚拟网卡VMnet1 和VMnet2 模拟实现的两个以太网Ethernet1 和Ethernet2 中,这两个以太网对应的IP 子网A 和子网B 分别连在Dynamips 软件模拟实现的路由器R1 和R2的
F0/0 接口上。
R1 和R2 经由Dynamips 软件模拟实现的路由器R3 和R4 互联,R1、R2、R3 和R4 之间运行OSPF 路由协议,没有缺省路由。
实验者在PC2 上使用通信测试命令(ping)和路径跟踪命令(tracert),结合Dynamips软件的分组捕获功能以及Wireshark 软件的捕获分组查看功能,测试子网A、B 之间的连通性和通信路径,考察IP 地址和分组长度对网络间通信的影响以及IP 分组生存时间(TTL)对网络间IP 分组交付的影响,体会ICMP 协议的差错报告机制,理解并掌握PING和TRACE 的工作原理和操作命令。
四、实验器材(设备、元器件)
装有相关软件的机房电脑
五、实验步骤
1、确保网络连接中的VMnet1 和VMnet2 均被启用,然后依次启动VMware Workstation 中TCPIP 组内的虚拟机PC2 和PC3。
(注:不开启PC4)
2、运行Dynagen 中的“Network device list”程序,核对确保
文件中R1 的F0/0 值与“Network device list”中VMnet1 的“NIO_gen_eth…”一致,R2 的F0/0 值与“Network device list”中VMnet2 的“NIO_gen_eth…”一致。
然后启动Dynamips Server (直到步骤14 才能关闭Dynamips Server 窗口),接着运行
,在Dynagen 窗口中提示符“=>”后依次输入以下命令启动路由器R1、R2、R3 和R4:
=> start R1
=> start R2
=> start R 3
=>start R 4
3、在 PC 2上使用“ route print”命令查看并记录该主机的路由表。
4、在PC2的cmd窗口键入“ping”命令,查看并记录选项 -n、-l、-f的含义和功能。
然后在PC 2上 ping PC3的 IP 地址确保整个实验网络运行正常。
5、在 Dynagen窗口中提示符“ => ”后依次输入以下命令捕获子网A和子网B中的分组:
=> capture R1 f0/0 aping.cap
=> capture R2 f0/0 bping.cap
6、在 PC 2上使用 -n选项 ping PC3的 IP 地址,记录ping 回应信息。
ping -n 1 <PC3的IP 地址 >
7、在 PC 2上使用 -n和-l选项 ping PC3的IP地址,记录ping回应信息。
ping -n 1 -l 1500 <PC3的IP 地址 >
8、在 PC 2上使用 -n、-l和-f选项 ping PC3的IP 地址,记录ping 回应信息。
ping -n 1 1500 -f <PC3的IP 地址 >
9、在 PC 2上ping 未开机的 PC 4,记录ping回应信息。
ping -n 1 192. 168.22.4
10 、在 PC 2上ping 10.1.1.1 ,记录ping 回应信息。
ping -n 1 10.1.1.1
11 、在 DynagenDynagenDynagenDynagenDynagenDynagenDynagen窗口中提示符“窗口中提示符“ => ”后依次输入以下命令重新捕获子网”后依次输入以下命令重新捕获子网”后依次输入以下命令重新捕获子网”后依次输入以下命令重新捕获子网”后依次输入以下
命令重新捕获子网 A和子网 B的分组:
=> no capture R1 f0/0
=> no capture R2 f0/0
=> capture R1 f0/0 atrace.cap
=> capture R2 f0/0 btrace.cap
12、在PC2上trace PC3的IP地址,记录trace回应信息。
tracert <PC3的IP 地址 >
13 、在 Dynagen窗口中提示符“ => ”后依次输入以下命令停止捕获子网A和子网 B中的分组:
=> no capture R1 f0/0
=> no capture R2 f0/0
14、实验结束后,按照以下步骤关闭实验软件、上传实验数据、还原实验环境:
(1)在Dynagen窗口中提示符“ => ”后依次输入以下命令关闭Dynagen窗口,然后再关闭 Dynamips Server窗口:
=> stop /all
=>exit
(2)依次关闭PC2和PC3,再关闭 VMware窗口;
(3)运行所在目录下的“ftp.bat”程序来上传实验数据(注意:务必按照“ftp.bat”程序运行中的提示信息执行正确操作)。
(4)确认实验数据上传成功后,运行所在目录下的“reset.bat”程序还原实验环境(注意:“reset.bat”程序会自动删除实验数据文件)。
15、用Wireshark软件查看并分析捕获的分组文件(aping.cap、bping.cap、atrace.cap、btrace.cap)中的ping和trace通信分组,查看过滤条件为“ip.proto == 1”(在Wireshark主窗口界面“过滤工具栏”的“Filter:”域中输入)。
六、实验数据及结果分析
1、按照现实顺序记录步骤3中PC2的路由表信息:
【分析】
1)请按照网关(gateway)地址分类分析主机路由表中每条路由表项的网关地址的特征,路由的目的地,以及所采取的分组交付方式。
No.1:缺省路由。
当系统收到一个目的地址不在路由表中的数据包时,系统会将该数据包发送到缺省网关192.168.11.254;采取间接交付。
No.2:本地环路。
当系统接收到一个发往目标网段127.0.0.0的数据包时,系统将接收发往该网段的所有数据包。
采取直接交付。
No.3:直连网段。
当系统接收到一个发往目的网段192.168.11.0的数据包时,系统会将该数据包通过192.168.11.2这个接口发送出去(表中没给出interface的相应记录,对于该表项,gateway和interface是同一个,因为分组的目的网段正是路由器所直连的网段)。
采取直接交付。
No.4:本地主机路由。
当系接收到一个目标IP地址为本地网卡IP地址的数据包时,系统将接收该数据包。
采取直接交付。
No.5:本地广播路由。
当系统接收到一个发给直连网段的本地广播数据包时,系统会将该数据包从192.168.11.2这个接口以广播的形式发送出去(对于该表项,gateway和interface相同)。
No.6:组播路由。
当系统接收到一个组播数据包时,系统会将该数据包从192.168.11.2这个接口以组播的形式发送出去(对于该表项,gateway和interface相同)。
No.7:广播路由当系统接收到一个广播数据包时,系统会将该数据包从192.168.11.2这个接口直接发送出去。
2)本实验中PC2将使用哪条路由发送对目的主机的ping报文?答:使用第一条,即缺省路由。
2、记录步骤4中PC2上显示的PING命令选项-n、-l、-f的含义。
-n count Number of echo requests to send .
-l size Send buffer size.
-f Set Don't Fragment flag in packet.
3、记录步骤6中PC2上的ping命令回应信息,并按分组的捕获
顺序记录该步骤在子网A和子网B上捕获的ICMP报文信息:
说明:IP地址用点分十进制表示,其他值均用十进制表示。
【分析】解释PING命令回应信息中的bytes、time和TTL参数的含义。
bytes:发送字节数
time:往返时间
TTL:生存时间
4、记录步骤7中PC2上的ping命令回应信息,并按分组的捕获
顺序记录该步骤在子网A和子网B上捕获的ICMP报文的IP分组头信息:
说明:IP地址用点分十进制表示,其他值均用十进制表示。
注意:“分片偏移”填写的是分组首部中以8字节为单位的片
偏移值。
【分析】
1)PC2发出的IP分组(源IP地址PC2,目的IP地址PC3)在子网A和子网B上分别有几个分片?这些分片分别是由实验拓扑中的哪些设备划分的?为什么要划分这些分片?这些分片的重组操作将由实验拓扑中的哪台设备进行?
答:子网A:2个分片,子网B:3个分片;子网A的分片由PC2划分,子网B的分片由路由器R3划分;从实验记录可知PC2发送的分组总长度为1500字节,在Ethernet 1中,当数据报被封装成帧时,帧的长度大于了它的MTU (1500),因此PC2要将数据报分片;当分组到达路由器R3时,从实验拓扑图可以看出,R3-R4之间的链路带宽比较大,分组将选择该路径,而链路的MTU是800,因此对总长度为1500的那个分组还要继续分片,而总长度为48的分组则不需要,分片的过程由R3完成;分片的重组操作将由目的主机PC3进行。
2)PC3发出的IP分组(源IP地址PC3,目的IP地址PC2)在子网A和子网B上分别有几个分片?这些分片分别是由实验拓扑中的哪些设备划分的?为什么要划分这些分片?这些分片的重组操作将由实验拓扑中的哪台设备进行?
答:子网A:3个分片,子网B:2个分片;子网B的分
片由PC3划分,子网A的分片由路由器R4划分;PC3发送
的分组总长度为1500字节,在Ethernet 2中,当数据报被封装成帧时,帧的长度大于了它的MTU(1500),因此PC3要将数据报分片;当分组到达路由器R2时,从实验拓扑图可以看出,R2-R4之间的链路带宽比较大,分组将选择该路径,它的MTU是1500,被分片的2个分组都可正常通过,
当分组到达路由器R4时,R4-R3是下一跳必须要经过的路
径,而它的MTU只有800,因此对总长度为1500的分组还
要继续分片,而总长度为48的分组则不需要,分片的过程由R4完成;分片的重组操作将由目的主机PC2进行。
3)在分片重组操作中,应根据分片首部中的什么信息判断收到的分片属于哪个IP分组?属于同一IP分组的分片需按照分片首部中的什么信息进行重组?
答:应根据分片首部中的“标识”字段判断收到的分片所属的IP分组;属于同一IP分组的分片需按照分片首部中“标志”字段中的第三位(M,即“还有分片”位)和“分片偏移”字段进行重组。
5、记录步骤8中PC2上的ping命令回应信息。
【分析】本步骤中是否捕获到PC2发送或接收的报文?结合
PING回应信息解释其原因。
答:没有捕获到。
PING回应信息意思是分组应该被分片才能正常通信。
Ping命令中-f使得分组不分片,导致分组封装成帧后长度大于以太链路的MTU而无法传输。
6、记录步骤9中PC2上的ping命令回应信息。
【分析】
1)本步骤中是否捕获到PC2发送或接收的报文?结合PING回应信息解释其原因。
答:能捕获到PC2发送的报文,但不能捕获到PC2希望接收的报文。
PING回应信息的意思是请求超时,因为PC4没有开机,所以无法给予应答。
2)在ping时如果收到“Request timed out.”信息,是否能确定目的主机一定未开机响应或一定没有可达的路由?为
什么?
答:不一定。
有可能是因为请求分组丢失或网络拥塞等原因。
7、记录步骤10中PC2上的ping命令回应信息,并按分组的捕获
顺序记录该步骤在子网A上捕获的ICMP报文信息:
说明:IP地址用点分十进制表示,其他值均用十进制表示。
【分析】请指出步骤9和步骤10中目的主机可达性的差异之处,并解释其差异产生的原因。
答:差异在于PING回应信息内容不同。
步骤9中主机不可达,但主机所在的子网是可达的,而步骤10中主机和主机所在的子网均不可达。
8、记录步骤12中主机上输入的TRACE命令及其回应信息,并按
分组的捕获顺序记录该步骤在子网A和子网B上捕获的如下报文信息:
说明:TTL、源IP地址和目的IP地址都相同的分组只记录1次;
【分析】
1)TRACE程序根据什么报文中的什么信息获得每一跳路由器的IP地址?
答:根据每次返回的TTL Exceeded类型的ICMP报文中的
源IP地址。
2)TRACE程序在跟踪每一跳路由器时,发送了几个测试报文?
这样做的目的是什么?
答:发送了3条测试报文。
类似于PING,是为了防止因报
文丢失或网络拥塞而收到错误的回应。
3)WinXP系统的TRACE程序使用何种方法判断测试分组是否已到达目的主机?
答:根据收到的ICMP应答中IP分组首部的源IP地址,如
果源地址是所要跟踪的目的地址(这里是192.168.22.3),
则意味着测试分组已到达目的主机。
七、实验结论
1、总结ICMP差错报告机制的作用和ICMP差错报告报文中数据部分的作用。
答:ICMP差错报告机制可以及时通知发出数据报的主机出现了差错,以及帮助网络管理员获得来自其他主机或路由器的信息。
ICMP 差错报告报文中数据部分的作用是通告源主机具体的差错类型(如终点不可达、源点抑制、超时等。
2、交付出错的哪些IP分组不会产生ICMP差错报告报文?
答:携带ICMP差错报文的数据报;分片的数据报,并且不是第一个分片;具有多播地址的数据报;具有特殊地址的数据报(如127.0.0.0或0.0.0.0)
3、请根据实验中的TRACE回应信息和实验拓扑图,写出路由器R1的F0/1接口、R2的F0/1和S1/0接口、以及R3和R4的所有接口的IP 地址,并指出本实验中子网A到子网B的通信路径。
八、总结及心得体会
通过模拟实验,学会了用PING命令测试网络连通性和用TRACE 命令跟踪网络路径,加深了ICMP协议原理的理解。
九、对本实验过程及方法、手段的改进建议
无。