【计算机网络】实验12:网际控制报文协议ICMP的应用

实验12 网际控制报文协议ICMP的应用

一、实验目的

验证ping命令和tracert命令的工作原理。

二、实验环境

·Cisco Packet Tracer模拟器

三、实验过程

1.构建网络拓扑并进行信息标注,将所需要配置的IP地址写在对应的主机或者路由器旁边,如图1所示。

img

图1 网络拓扑

2.配置主机H1,H2的IP地址、路由器的IP地址、子网掩码、静态路由,如图2,3,4所示。 在这里插入图片描述

图2 主机IP地址以及子网掩码配置

img

图3 路由器端口IP地址配置

img

图4 路由器静态路由配置

3.观察主机H1-H2是否能正常通信,判断拓扑是否建立成功,配置正确,让主机H1使用ping 192.168.1.1与主机H2通信,结果如图5所示。经过两次超时,是因为经过了两个路由器,有两次ARP的影响。

img

图5 H1与H2之间的通信

4.跟踪数据报从H1到达H2经过了哪些路由器,通过命令tracter 192.168.1.1来查看,结果如图6所示。图中给出了经过各个路由器的相关端口。

img

图6 数据包到达H2经过的路径

5.切换到仿真模式下H2 pingH1,如图7所示,观察ping命令是如何通过ICMP实现的,并且过滤协议,只保留ICMP协议,主机H2的封装细节如图8所示,PING进程创建了一个ICMP“回送请求”报文并将其传送给下层进程。

img

图7 让主机H2ping主机H1

img

图8 在主机H2上的PDU信息

6.点击捕获前进,当数据包到达主机H1时,查看封装的PDU细节,如图

9所示。此时ICMP收到的数据包是一个ICMP数据包,此时ICMP进程将会对其处理,ICMP进程收到一个“回送请求”报文,

img

图9 主机H1上的PDU信息

7.点击捕获前进,当主机H2收到响应报文之后,第一次ICMP请求就结束了,如图10所示。

img

图10 第一次ICMP请求报文结束

8.仿真模式下H1tracertH2,如图11所示,观察tracert命令是如何通过ICMP实现的,再查看主机H1上的PDU信息,如图12所示。Trace route进程启动下一个追踪,Trace route进程创建一个ICMP“回送请求”报文并将其发送给下一层进程。

img

图11 仿真模式下H1tracertH2

img

图12 查看主机H1的PDU信息

9.再次查看主机H1上的出站PDU详情,发现TTL字段被设置成为了1,如图13所示。这说明当转发到下一个路由器的时候,就会将TTL减1,也就是置为0,那么此时路由器就会丢弃这个ICMP报文,如图14所示,并给源主机H1发送一个ICMP差错报告(类型是时间超过),此时查看路由器上的PDU信息,如图15所示。设备发送一个ICMP“时间超过”报文。

img

图13 出站PDU中的TTL被设置成1

img

图14 路由器丢弃这个ICMP报文

img

图15 路由器上的PDU信息

10.主机H1获取路径上的第一个路由器需要发送三个ICMP报文,并且也要收到三个ICMP响应报文才算找到第一个路由器,如下图所示,第一个路由器的IP地址为192.168.0.254,如图16所示。

img

图16 主机H1找到第一个路由器

11.同理,主机H1要找到第二个路由器,就需要将TTL的值设置为2,然后就去找找到的话,也是需要进行三次ICMP报文的传送以及收到三个ICMP报文的响应,才算找到第二个路由器,如图17所示。同理找到第三个路由器,主机H1将TTL字段设置为3,找到第三个路由器如图18所示。

img

图17 主机H1找到第二个路由器

img

图18 主机H1找到第三个路由器

四、实验小结

  1. Ping命令和tracert命令都是基于网际控制报文协议(ICMP)实现的。Ping命令用于测试主机之间、主机与路由器之间以及路由器与路由器之间的连通性。而tracert命令则用于探测从源主机到目的主机之间经过的路由器路径。

  2. Ping命令利用ICMP中的询问报文机制,源主机发送ICMP请求报文,目的主机则返回相应的应答报文,以确认连通性。

  3. 使用tracert命令时,发出的数据包的生存时间(TTL)初始值为1。当数据包经过第一个路由器时,TTL值减1,变为0,此时数据包会被丢弃,并向源主机发送一个ICMP差错报告(“时间超过”报文),从而告知源主机该数据包未能成功到达目的地。

  4. tracert命令不仅依赖于询问报文,还利用差错报文来获取路径信息,从而逐步确定源主机到目的主机之间的路由路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

迭代器模式的理解和实践

引言 在软件开发中,我们经常需要遍历容器对象(如数组、列表、集合等)中的元素。如果每个容器对象都实现自己的遍历算法,那么代码将会变得冗余且难以维护。为了解决这个问题,迭代器模式应运而生。迭代器模式是一种行为型…

TS2339: Property ‘value‘ does not exist on type ‘MessageBoxData‘.

1、源代码 <template><el-dialog:visible"visible":before-close"handleClose":close-on-click-modal"false"title"邀请码"width"1200px"append-to-bodydestroy-on-close><div class"invite-code-wrap…

Windows 安装配置 RabbitMQ 详解

博主介绍&#xff1a; 计算机科班人&#xff0c;全栈工程师&#xff0c;掌握C、C#、Java、Python、Android等主流编程语言&#xff0c;同时也熟练掌握mysql、oracle、sqlserver等主流数据库&#xff0c;能够为大家提供全方位的技术支持和交流。 工作五年&#xff0c;具有丰富的…

R语言的数据结构--矩阵

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言医学数据分析实践-R语言的数据结构-CSDN博客 矩阵是一个二维数组&#xff0c;矩阵中的元素都具有相…

微信小程序一键复制功能

wx.setClipboardData(Object object) 设置系统剪贴板的内容。调用成功后&#xff0c;会弹出 toast 提示"内容已复制"&#xff0c;持续 1.5s wx.setClipboardData({data: 你需要复制的内容,success (res) {wx.getClipboardData({success (res) {console.log(res.dat…

【Python网络爬虫 常见问题汇总】

目录 1. 爬取图片出现403解决办法&#xff1a;设置请求头中的Referer字段 2.关于干坏事的问题后续不定期更新 欢迎共同探讨学习进步 1. 爬取图片出现403 问题出自案例9&#xff0c;已解决。 【Python网络爬虫笔记】9- 抓取优美图库高清壁纸 当在爬取图库图片时遇到 403 错误…

分布式 分布式事务 总结

前言 相关系列 《分布式 & 目录》《分布式 & 分布式事务 & 总结》《分布式 & 分布式事务 & 问题》 分布式事务 所谓分布式事务是指操作范围笼罩多个不同节点的事务。例如对于订单节点&库存节点而言&#xff0c;一次完整的交易需要同时调动两个节…

STM32+模拟或硬件IIC+SHT20驱动问题:接上拉电阻、BUSY死锁?

主要问题&#xff1a; 1&#xff0c;使用STM32F103C8T6&#xff0c;模拟IIC&#xff0c;SCL和SDA口配置为推挽输出上拉&#xff0c;主要是SDA脚&#xff0c;每次都要输出输入模式重新配置&#xff0c;虽然也能通信&#xff0c;但不稳定&#xff0c;出错率大&#xff1b; 2&…

【工业机器视觉】基于深度学习的水表盘读数识别(3-数据标注与转换)

【工业机器视觉】基于深度学习的仪表盘识读&#xff08;2&#xff09;-CSDN博客 数据标注 标注扩展 Labelme 和 LabelImg 都是用于创建机器学习和计算机视觉项目所需标注数据的工具。它们都允许用户通过图形界面手动标注图像&#xff0c;但各自有其特点和适用场景。 Labelme…

静态路由与交换机配置实验

1.建立网络拓扑 添加2台计算机&#xff0c;标签名为PC0、PC1&#xff1b;添加2台二层交换机2960&#xff0c;标签名为S0、S1&#xff1b;添加2台路由器2811&#xff0c;标签名为R0、R1&#xff1b;交换机划分的VLAN及端口根据如下拓扑图&#xff0c;使用直通线、DCE串口线连接…

【Spark】Spark Join类型及Join实现方式

Spark Join类型 1. Inner Join (内连接) 示例&#xff1a;val result df1.join(df2, df1("id") df2("id"), "inner")执行逻辑&#xff1a;只返回那些在两个表中都有匹配的行。 2. Left Join (左外连接) 示例&#xff1a;val result df1.jo…

php:完整部署Grid++Report到php项目,并实现模板打印

一、下载Grid++Report软件 路径:开发者安装包下载 - 锐浪报表工具 二、 安装软件 1、对下载的压缩包运行内部的exe文件 2、选择语言 3、 完成安装引导 下一步即可 4、接收许可协议 点击“我接受” 5、选择安装路径 “浏览”选择安装路径,点击"安装" 6、完成…

web安全攻防入门教程

Web安全攻防入门教程 Web安全攻防是指在Web应用程序的开发、部署和运行过程中&#xff0c;保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现&#xff0c;还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。 本教程将带你入门Web安全攻…

前端node环境安装:nvm安装详细教程(安装nvm、node、npm、cnpm、yarn及环境变量配置)

需求&#xff1a;在做前端开发的时候&#xff0c;有的时候 这个项目需要 node 14 那个项目需要 node 16&#xff0c;我们也不能卸载 安装 。这岂不是很麻烦。这个时候 就需要 一个工具 来管理我们的 node 版本和 npm 版本。 下面就分享一个 nvm 工具 用来管理 node 版本。 这个…

Unity在运行状态下,当物体Mesh网格发生变化时,如何让MeshCollider碰撞体也随之实时同步变化?

旧版源代码地址&#xff1a;https://download.csdn.net/download/qq_41603955/90087225?spm1001.2014.3001.5501 旧版效果展示&#xff1a; 新版加上MeshCollider后的效果&#xff1a; 注意&#xff1a;在Unity中&#xff0c;当你动态地更改物体的Mesh时&#xff0c;通常期望…

AR眼镜_消费级工业AR智能眼镜主板硬件解决方案

AR眼镜的研发是一项复杂的软硬件集成工程&#xff0c;它需要在摄影、音频、交互和连接等多个方面提供卓越的基础体验&#xff0c;因此产品的每个细节都显得尤为重要。 在设计AR眼镜时&#xff0c;重量、体积和散热性能都是必须认真考量的关键因素。在芯片平台的选择上&#xff…

【OpenCV】Canny边缘检测

理论 Canny 边缘检测是一种流行的边缘检测算法。它是由 John F. Canny 在 1986 年提出。 这是一个多阶段算法&#xff0c;我们将介绍算法的每一个步骤。 降噪 由于边缘检测易受图像中的噪声影响&#xff0c;因此第一步是使用 5x5 高斯滤波器去除图像中的噪声。我们在前面的章…

Ubuntu 安装 web 服务器

安装 apach sudo apt install apache2 -y 查看 apach2 版本号 apache2 -v 检查是否启动服务器 sudo service apache2 status 检查可用的 ufw 防火墙应用程序配置 sudo ufw app list 关闭防火墙 sudo ufw disable 更改允许通过端口流量 sudo ufw allow Apache Full 开启…

如何落地文件即服务?--- 基于makeself封装服务并启动

我通常想能不能给客户一个文件&#xff0c;然后客户通过执行这个简单的指令就可以吧&#xff0c;一个服务在本地起来&#xff1f; 这是一种文件即服务的思想&#xff0c;不知道你有没有类似的想法&#xff0c;当我发现https://makeself.io/ &#xff0c;我觉得它能很好的解决我…

IDEA方法注释模板设置

目录 创建模板 新建模板&#xff1a;命名为* 设置模板内容-IDEA格式模板 设置模板应用场景 设置参数 创建模板 /**Enter这里我们也按照这种习惯来设置IDEA的方法注释&#xff1a;File-->Settings-->Editor-->Live Templates 先新建模板组&#xff0c;然后在模板组中…