实验四 Internet控制报文协议ICMP
【实验目的】
1. 掌握ICMP协议的报文格式
2. 理解不同类型ICMP报文的具体意义 3. 了解常见的网络故障
【实验学时】
建议2学时
【实验环境配置】
采用网络结构二
【实验原理】
?
目的不可达报文
类型:3 代码:0至15 检验和 未使用(全0) 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 ?
源端抑制报文
类型:4 代码:0 未使用(全0) 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 检验和 ? 超时报文
类型:11 代码:0或1 未使用(全0) 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 检验和
?
参数问题
类型:12 指针 代码:0或1 检验和 未使用(全0) 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 ?
改变路由
类型:5 代码:0到3 目标路由器IP地址 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 检验和 ? 回送请求和回答
类型:8或0 代码:0 检验和 序号 标识符 由请求报文发送;由回答报文重复 ?
时间戳请求和回答
类型:13或14 代码:0 原始时间戳 接收时间戳 发送时间戳 检验和 序号 标识符 ? 地址掩码请求和回答
类型:17或18 代码:0 地址掩码 检验和 序号 标识符 ? 路由询问和通告
类型:10 代码:0 检验和 序号 检验和 寿命 标识符
类型:9 地址数 代码:0 地址项目长度 路由器地址1 优先级1 路由器地址2 优先级2 ... 【实验步骤】
主机B启动静态路由服务(方法:在命令行方式下,输入“staticroute_config”)。 按照拓扑结构图连接网络,使用拓扑验证检查连接的正确性。将小组内的主机IP进行如下设置:A、C和D三台主机的IP地址不变,网关地址设置为B1的地址。将B2、E和F主机 IP地址设置为172.16.1.0网段,网关设置为B2地址。以1组为例: A 原IP设置 172.16.0.11 255.255.255.0 172.16.0.100 172.16.0.12 255.255.255.0 172.16.0.100 无设置 现IP设置 172.16.0.11 255.255.255.0 172.16.0.12 172.16.0.12 255.255.255.0 172.16.0.12 172.16.1.12 255.255.255.0 172.16.1.12 172.16.0.13 255.255.255.0 172.16.0.12 172.16.0.13 255.255.255.0 172.16.0.12 172.16.1.15 255.255.255.0 B1(本地连接) B2(本地连接2) C 172.16.0.13 255.255.255.0 172.16.0.100 172.16.0.14 255.255.255.0 172.16.0.100 172.16.0.15 255.255.255.0 D E 172.16.0.100 F 172.16.0.16 255.255.255.0 172.16.0.100 172.16.1.12 172.16.1.16 255.255.255.0 172.16.1.12
练习一:运行Ping命令
1. 主机B、E、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取
ICMP协议)。
2. 主机A ping主机E。
3. 主机B、E、F停止捕获数据,察看捕获到的数据,并回答以下问题:
? 捕获的报文对应的“类型”和“代码”字段分别是什么?
? 分析报文中的哪些字段保证了回送请求报文和回送应答报文的一一对应?
练习二:ICMP查询报文
1. 主机A启动仿真编辑器,编辑一个ICMP时间戳请求数据帧发送给主机C。
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字段名 类型 标识号 序列号 发起时间戳 接收时间戳 字段值 发送时间戳
练习三:ICMP差错报文
发送时间戳 1. 目的端不可达
a. 主机B、C、E、F启动协议分析器捕获数据,并设置过滤条件(提取ICMP)。 b. 在主机A上ping 172.16.2.10(不存在的IP)。
c. 主机B、C、E、F停止捕获数据。察看捕获到的数据,并回答以下问题: 捕
获到的是哪一种目的端不可达报文?
2. 超时
1. 在主机D上启动仿真编辑器,编写一个发送给主机E的ICMP数据帧。其中:
MAC层:
目的MAC地址:主机B1的MAC地址 源MAC地址:D的MAC地址。 协议类型或数据长度:0800。 IP层:
总长度:包含IP层和ICMP层长度。 TTL:0。
高层协议类型:1。
校验和:在其他字段填充完毕后,计算并填充。 源IP地址:D的IP地址。 目的IP地址:E的IP地址。
ICMP层: 类型:8。 代码字段:0。
校验和:在ICMP其他字段填充完毕后,计算并填充。 其他字段使用默认值。 2. 3. 4. 5.
主机B、E、F启动协议分析器捕获数据,并设置过滤条件(提取ICMP协议)。 主机D发送已编辑好的数据帧。
主机B、E、F停止捕获数据,察看并分析捕获到的数据。
主机B在命令行方式下输入recover_config命令,停止静态路由服务。
【思考问题】
1. 为什么要限制由失效的ICMP差错报文再产生一个ICMP报文?
2. 主机A向主机B发送数据报。主机B从未收到该数据报,而主机A也从未收到出
问题的通知。试给出可能发生的情况的两种不同解释。
3. 试用表说明,什么样的ICMP报文是由路由器发送出的,什么样的ICMP报文是由
非目的主机发送出的,以及什么样的ICMP报文是由目的主机发送出的。