实验七 ICMP 协议分析实验

1.ICMP 协议介绍

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

                     图1  ICMP 回送请求和应答报文格式

在网络中,ICMP 报文将封装在IP数据报中进行传输。由于ICMP的报文类型很多,且又有各自的代码,因此,ICMP并没有一个统一的报文格式供全部 ICMP 信息使用,不同的 ICMP 类别分别有不同的报文字段。
ICMP报文只在前4个字节有统一的格式,即类型、代码和校验和 3 个字段。接着的4 个字节的内容与ICMP 报文类型有关。图1描述了ICMP 的回送请求和应答报文格式,ICMP 报文分为首部和数据区两大部分。其中:
* 类型:一个字节,表示ICMP 消息的类型,内容参见表1;
* 代码:一个字节,用于进一步区分某种类型的几种不同情况;
* 校验和:两个字节,提供对整个ICMP 报文的校验和;
(2)ICMP 的报文类型
ICMP 报文的种类可以分为ICMP 差错报告报文和ICMP 询问报文两种,表5 列出了已定义的几种ICMP 消息。

                       表1 ICMP 消息及类型码

类型的值 ICMP 消息类型 类型的值 ICMP 消息类型
0 回送(Echo)应答 12 参数出错报告
3 目的站点不可达 13 时间戳(Timestamp)请求
4 源站点抑制(Source quench) 14 时间戳(Timestamp)应答
5 路由重定向(Redirect) 15 信息请求
8 回送请求 16 信息应答
9 路由器询问 17 地址掩码(Address mask)请求
10 路由器通告 18 地址掩码(Address mask) 应答
11 超时报告

其中差错报告报文主要有目的站点不可达、源站点抑制、超时、参数问题和路由重定向5种;ICMP 询问报文有回送请求和应答、时间戳请求和应答、地址掩码请求和应答以及路由器询问和通告4种。

(3)ICMP 常见的消息类型
下面介绍几种常用的ICMP 消息类型。
* 目的站点不可达(3)
产生 “目的站点不可达”的原因有多种。在路由器不知道如何到达目的网络、数据报指定的源路由不稳定、路由器必须将一个设置了不可分段标志的数据报分段等情况下,路由器都会返回此消息。如果由于指明的协议模块或进程端口未被激活而导致目的主机的IP 不能传送数据报,这时目的主机也会向源主机发送 “目的站点不可达”的消息。
为了进一步区分同一类型信息中的几种不同情况,在ICMP 报文格式中引入了代码字段,该类型常见信息代码及其意义如下:
表2 ICMP 类型3 的常见代码
代码 描述 处理 代码 描述 处理
0 网络不可达; 无路由到达主机 1 主机不可达; 无路由到达主机
2 协议不可用; 连接被拒绝 3 端口不可达; 连接被拒绝
4 需分段但DF 值为 0; 报文太长 5 源路由失败; 无路由到达主机

  • 源站点抑制 (4)
    此消息类型提供了流控制的一种基本形式。当数据报到达得太快,路由器或主机来不及处理时,这些数据报就必须被丢弃。丢弃数据报的计算机就会发一条“源站点抑制”的ICMP报文。“源站点抑制”消息的接收者就会降低向该消息发送站点发送数据报的速度。
  • 回送请求 (8)和回送应答 (0)
    这两种ICMP消息提供了一种用于确定两台计算机之间是否可以进行通信的机制。当一个主机或路由器向一个特定的目的主机发出ICMP 回送请求报文时,该报文的接收者应当向源主机发送ICMP 回送应答报文。
  • 时间戳请求 (15)和时间戳应答 (16)
    这两种消息提供了一种对网络延迟进行取样的机制。时间戳请求的发送者在其报文的信息字段中写入发送消息的时间。接收者在发送时间戳之后添加一个接收时间戳,并作为时间戳应答消息报文返回。
  • 地址掩码请求 (17)和地址掩码应答 (18)
    主机可以用 “地址掩码请求”消息来查找其所连接网络的子网掩码。主机在网络上广播请求,并等待路由器的包含子网掩码的 “地址掩码应答”消息报文的到来。
  • 超时报告 (11)
    当一个数据报的TTL 值到达 0 时,路由器将会给源主机发送超时报文。
2.基于ICMP 的应用程序
目前网络中常用的基于ICMP 的应用程序主要有ping 命令和tracert 命令。 (1)ping 命令
Ping 命令是调试网络常用的工具之一。它通过发出ICMP Echo 请求报文并监听其回应来检测网络的连通性。图2显示了Ethereal 捕获的ICMP Echo 请求报文和应答报文。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201123170558433.png#pic_center)图2 ICMP Echo 请求报文和应答报文
Ping 命令只有在安装了TCP/IP 协议之后才可以使用,其命令格式如下:
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count]
[[-j host-list] | [-k host-list]] [-w timeout] target_name
这里对实验中可能用到的参数解释如下:
* -t :用户所在主机不断向目标主机发送回送请求报文,直到用户中断;
* -n count:指定要Ping 多少次,具体次数由后面的count 来指定 ,缺省值为4;
* -l size:指定发送到目标主机的数据包的大小 ,默认为32字节,最大值是65,527;
* -w timeout:指定超时间隔,单位为毫秒;
* target_name:指定要  ping 的远程计算机。
3.实验环境与说明

(1)实验目的
掌握ping 和tracert 命令的使用方法,了解ICMP 协议报文类型及其作用。
执行ping 和tracert 命令,分别截获报文,分析截获的ICMP 报文类型和ICMP 报文格式,理解ICMP 协议的作用。
(2)实验设备和连接
实验设备和连接图如图3 所示,一台锐捷R1760 路由器连接2 台PC 机,分别命名为 PC1、PC2。

                   图3 ICMP 协议分析实验连接图

4.实验步骤
步骤1:按照如图22 所示连接好设备;
步骤2:完成路由器和PC1、PC2 的相关配置;(编者注:实验室中任何一台PC都可以作为模型中的PC1。PC2用202.202.43.125等另一网段机器代理即可。)
路由器的配置参考如下:
router#configure terminal
router(config)#interface fastEthernet 1/0
router(config-if)#ip address 172.16.10.1 255.255.255.0
router(config-if)#no shutdown
router(config-if)#interface fastEthernet 1/1
router(config-if)#ip address 172.16.20.1 255.255.255.0
router(config-if)#no shutdown
PC1 和PC2 的IP 地址、子网掩码、网关按照图中有关参数配置。
步骤3:分别在PC1 和PC2 上运行 wireshark,开始截获报文,为了只截获和实验内容有关的报文,将wireshark的Captrue Filter 设置为 “No Broadcast and no Multicast ”;
步骤4:在PC1上以PC2 为目标主机,在命令行窗口执行Ping 命令;
请写出执行的命令:ping 172.27.64.119
步骤 5:停止截获报文,将截获的结果保存为 ICMP-1-学号,分析截获的结果,回答下列问题:
1)您截获几个ICMP 报文?分别属于那种类型?
总共截获8个ICMP报文
分别属于回送请求和回送应答两种类型
2)分析截获的ICMP 报文,查看表2 中要求的字段值,填入表中。
表2 ICMP 报文分析
报文号 源IP 目标IP ICMP 报文格式
类型 代码 标识 序列号
1436 172.27.64.120 172.27.64.119 8 00 0x0001 1
1437 172.27.64.119 172.27.64.120 0 00 0x0001 1
1528 172.27.64.120 172.27.64.119 8 00 0x0001 2
1529 172.27.64.119 172.27.64.120 0 00 0x0001 2
1578 172.27.64.120 172.27.64.119 8 00 0x0001 3
1579 172.27.64.119 172.27.64.120 0 00 0x0001 3
1629 172.27.64.120 172.27.64.119 8 00 0x0001 4
1630 172.27.64.119 172.27.64.120 0 00 0x0001 4

3)分析在上表中哪个字段保证了回送请求报文和回送应答报文的一一对应,仔细体会Ping 命令的作用。
序号保证了请求报文和回送报文的一一对应,ping可以用来检验网络能否通。

步骤6:在PC1 上运行wireshar 开始截获报文;
步骤7:在PC1 上执行Tracert 命令,向一个本网络中不存在的主机发送数据报,如:Tracert 百度

步骤 8:停止截获报文,将截获的结果保存为 ICMP-2-学号,分析截获的报文,

回答下列问题:
1)截获了报文中哪几种ICMP 报文?其类型码和代码各为多少?
共截获了3种ICMP报文
Echo request 0 0
Echo reply 8 0
Time-to-live exceeded 11 0
2)在截获的报文中,超时报告报文的源地址是多少?这个源地址指定设备和PC1 有何关系?
源地址39.156.27.1,这个地址是百度IP39.156.66.14的网关地址

3)通过对两次截获的ICMP 报文进行综合分析,仔细体会ICMP 协议在网络中的作用。

ICMP报文有两种:差错报告报文和询问报文。其中差错报告报文用来报告差错类型,询问报文用与寻找目标主机应用有ping、tracert,时间戳可以用来计算RTT时间。

实验七 ICMP 协议分析实验相关推荐

  1. 实验四 ICMP 协议分析实验

    ICMP 协议介绍 ICMP(Internet Control Message Protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议.ICMP允许路由器或主机报告差错情况和 ...

  2. 网络协议实验四 ARP 协议分析实验

    实验四 ARP 协议分析实验 2.2 ARP 协议分析实验 1.ARP 协议介绍 ARP 是地址解析协议 (Reverse Address Resolution Protocol)的缩写,负责实现从I ...

  3. 实验十一 DNS 协议分析实验

    实验十一 DNS 协议分析实验 1.DNS 协议简介 DNS 是域名系统 (Domain Name System)的缩写,是一种分层次的.基于域的命名方案, 主要用来将主机名和电子邮件目标地址映射成I ...

  4. 实验三 ARP 协议分析实验

    1.ARP 协议分析实验 1.ARP 协议介绍 ARP 是地址解析协议(Reverse  Address   Resolution   Protocol)的缩写,负责实现从IP 地址到物理地址(如以太 ...

  5. 计算机网络实验报告4icmp,实验04-ip、icmp协议分析

    实验04-ip.icmp协议分析 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机网络>实验报告实验:IP.ICMP ...

  6. 计算机网络-应用层和传输层协议分析实验(PacketTracer)

    实验三.应用层和传输层协议分析实验 一.实验目的 通过本实验,熟悉PacketTracer的使用,学习在PacketTracer中仿真分析应用层和传输层协议,进一步加深对协议工作过程的理解. 二.实验 ...

  7. 实验二ARP协议分析

    "终究是玫瑰误了花期,而我也将你归还故里" 实验二ARP协议分析 1.arp命令(要用管理员启动命令行) 2.arp请求与应答 3.arp代理 4.免费arp 文中小鲨鱼是指Wir ...

  8. IPv4/IPv6协议分析 实验报告

    实验名称:IPv4/IPv6协议分析实验 一.实验预习 1.实验目的 利用抓包工具(Wireshark/Windump/Sniffer)抓取IPv4/IPv6分组,以进一步熟悉和理解IPv4/IPv6 ...

  9. 实验十二 HTTP 协议分析实验

    实验十二 HTTP 协议分析实验 1.HTTP 协议简介 HTTP是超文本传输协议 (Hyper Text Transfer Protocol)的缩写,用于WWW 服务. (1)HTTP的工作原理 H ...

最新文章

  1. PHP使用文件锁解决高并发问题示例
  2. 在当当买了python怎么下载源代码-爬虫实战一:爬取当当网所有 Python 书籍
  3. Linux NFS服务器的安装与配置
  4. MySQL 高级 - 存储过程 - 函数
  5. CSharpGL(36)通用的非托管数组排序方法
  6. 共享内存 传一个类指针_大神是如何学习 Go 语言之为什么使用通信来共享内存...
  7. nodejs mysql mvc_一种nodejs的MVC框架
  8. 3月国内网民地域分布12强:广东居首 江苏重回第二
  9. 企业如何培养新型员工队伍
  10. ios备忘录下载安卓版_IOS版+安卓版,全下载注册教程
  11. Winform中使用signalr
  12. 实证分析 | 中介效应检验原理与Stata代码实现
  13. ftp连接工具,8款免费又好用的ftp连接工具
  14. apache 压力测试工具 ab ,带post参数,token请求
  15. 基于ll库,使用stm32L0系列的内部基准电压来进行ad测量
  16. Mysql 事务锁等待时间超时
  17. win7 电脑MAC地址修改
  18. AutoCAD命令大全
  19. ruby rails + grape + sidekiq 项目实践
  20. 韩央行:英国脱欧协议被否决对金融市场影响有限

热门文章

  1. 利用网易有道在谷歌浏览器进行网页滑词翻译
  2. 鸿蒙系统进驻p50,200倍变焦+鸿蒙系统!P50 Pro+首次曝光
  3. html游戏背景音效,互动游戏用的背景音乐 60首让现场嗨爆的歌曲分享
  4. 京东金融,你到底是坏,还是码农裁多了??
  5. JavaScrip(对象)
  6. 为ARVR黑科技:以“自由视角”360度尽展舞台唯美
  7. java通过jni调用c++并联调
  8. 如何爬取NBA赛事数据?
  9. 互联网日报 | 天猫京东618再创新纪录;字节跳动成立抖音电商部门;全国普速铁路20日起实施电子客票...
  10. 案例研究|它凭借AI刷新了药物先导物设计的最快记录!