柯侧耳倾听者 - 云代码空间
—— 翱翔在Java世界的海洋之上
ICMP协议
一、实验目的
1.学习ICMP协议的工作原理
2.熟悉和理解ICMP协议的基本内容
二、实验内容
练习一:
各主机打开工具区的“拓扑验证工具”,选择相应的网络结构,配置网卡后,进行拓扑验证,如果通过拓扑验证,关闭工具继续进行实验,如果没有通过,请检查网络连接。
本练习将主机A、B、C、D、E、F作为一组进行实验。
实验开始前主机B首先执行命令“staticroute_config”启动静态路由。
1. 主机B、E、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取ICMP协议)。
2. 主机A ping 主机E(172.16.0.2)。
主机C ping 主机F(172.16.0.3)。
3. 主机B、E、F停止捕获数据,察看捕获到的数据,并回答以下问题:
● 捕获的报文对应的“类型”和“代码”字段分别是什么?
● 分析报文中的哪些字段保证了回显请求报文和回显应答报文的一一对应?
练习二:
本练习将主机A、B、C、D、E、F作为一组进行实验。
1. 主机A启动协议编辑器,编辑一个ICMP时间戳请求数据帧发送给主机C(172.16.1.3)。
MAC层:
目的MAC地址:C的MAC地址。
源MAC地址:A的MAC地址。
协议类型或数据长度:0800。
IP层:
总长度:包含IP层和ICMP层长度。
高层协议类型:1。
校验和:在其它字段填充完毕后计算并填充。
源IP地址:A的IP地址。
目的IP地址:C的IP地址。
ICMP层:
类型:13。
代码字段:0。
校验和:在ICMP层其它字段填充完毕后,计算并填充。
其它字段使用默认值。
2. 主机C启动协议分析器进行数据捕获,并设置过滤条件(提取ICMP协议)。
3. 主机A发送已编辑好的数据帧。
4. 主机C停止捕获数据。察看主机C捕获到的数据,并填写下表:
时间戳请求报文 |
时间戳应答报文 |
||
ICMP字段名 |
字段值 |
ICMP字段名 |
字段值 |
类型 |
13 |
类型 |
13 |
标示号 |
0 |
标示号 |
0 |
序列号 |
0 |
序列号 |
0 |
发起时间戳 |
0 |
发起时间戳 |
0 |
接收时间戳 |
0 |
接收时间戳 |
0 |
传送时间戳 |
0 |
传送时间戳 |
0 |
练习三:
本练习将主机A、B、C、D、E、F作为一组进行实验。
1. 目的端不可达
(1)主机A、B、C、D、E、F启动协议分析器捕获数据,并设置过滤条件(提取ICMP)。
(2)主机A、C、D、E、F ping 172.16.2.10(不存在的IP地址)。
(3)主机A、B、C、D、E、F停止捕获数据。察看捕获到的数据,并回答以下问题:
● 捕获到的是哪一种目的端不可达报文?
捕获到的是ICMP所发送的报文。
2. 超时
(1)主机A、C、D分别启动协议编辑器,编写一个发送给主机F(172.16.0.3)的ICMP数据帧。其中:
MAC层:
目的MAC地址:主机B的MAC地址(172.16.1.1接口的MAC)。
源MAC地址:本机的MAC地址。
协议类型或数据长度:0800。
IP层:
总长度:包含IP层和ICMP层长度。
生存时间(TTL):0。
高层协议类型:1。
校验和:在其它字段填充完毕后,计算并填充。
源IP地址:本机的IP地址。
目的IP地址:F的IP地址。
ICMP层:
类型:8。
代码字段:0。
校验和:在ICMP其它字段填充完毕后,计算并填充。
其它字段使用默认值。
(2)主机E、F分别启动协议编辑器,编写一个发送给主机D(172.16.1.4)的ICMP数据帧。其中:
MAC层:
目的MAC地址:主机B的MAC地址(172.16.0.1接口的MAC)。
源MAC地址:本机的MAC地址。
协议类型或数据长度:0800。
IP层:
总长度:包含IP层和ICMP层长度。
TTL:0。
高层协议类型:1。
校验和:在其它字段填充完毕后,计算并填充。
源IP地址:本机的IP地址。
目的IP地址:D的IP地址。
ICMP层:
类型:8。
代码字段:0。
校验和:在ICMP其它字段填充完毕后,计算并填充。
其它字段使用默认值。
(3)主机B启动协议分析器,网卡b1(172.16.1.1)、网卡b2(172.16.0.1)分别捕获数据,并设置过滤条件(提取ICMP协议)。
(4)主机A、C、D、E、F各自发送已编辑好的数据帧。
(4)主机B停止捕获数据,察看并分析捕获到的数据。
(5)主机B在命令行方式下输入recover_config命令,停止静态路由服务。
三、实验总结与扩展
总结:在此次试验中学到了ICMP协议的基本原理和发送过程,充分理解了协议的基本内容。