简单了解ICMP协议

目录

一、什么是ICMP协议?

二、ICMP如何工作?

三、ICMP报文格式

四、ICMP的作用

五、ICMP的典型应用

5.1 Ping程序

5.2 Tracert(Traceroute)路径追踪程序


一、什么是ICMP协议?

ICMP因特网控制报文协议是一个差错报告机制,通常被IP层或更高层的协议(TCP或UDP)使用属于网络层协议,应用在三层网络设备上。主要用于在IP主机和路由器之间传递控制消息,用于报告主机是否可达、路由是否可用等。

二、ICMP如何工作?

当三层网络设备如路由器在处理转发数据包出现错误时,会使用ICMP向数据包的源端设备报告这个差错,它既不会纠正这个差错,也不会通知中间的网络设备。因为ICMP报文被封装在IP数据包内部,作为IP数据包的数据部分通过互联网传递。IP数据包中的字段包含源端和最终的目的端,并没有记录报文在网络传递中的全部路径(除非IP数据包中设置了路由记录选项)。因此当设备检测到差错时,它无法通知中间的网络设备,只能向源端发送差错报告。

源端主机设备在收到差错报告后,它虽然不能判断差错是由中间哪个网络设备所引起的,但是却可以根据ICMP报文类型字段确定发生错误的类型,并确定如何才能更好地重发传递失败的数据包。

 

三、ICMP报文格式

  • Type字段表示ICMP消息的类型
  • Code字段表示ICMP消息类型细分的子类型
  • Checksum字段表示ICMP报文的校验和

根据ICMP协议的Type和Code字段可以判断数据包经路由设备处理转发过程中可能出现的错误情况。

四、ICMP的作用

1.重定向----------解决数据包在转发过程中的次优路径问题。

当主机A要访问服务器A时,由于默认网关指向RTB,数据包就不会直接去找服务器A,而是先通过RTB,在由RTB把数据包返回发给服务器A,就会造次优路径;面对此情况路由器RTB此时会给主机A发送一个ICMP的重定向报文,告诉主机A下次在访问20.0.0.0/24网段时,直接找RTA网关(指定网段有效)。

2.差错检测-------通过ping命令来判断目标主机是否可达、数据包在收发端的往返时延、数据包丢失情况。

3.错误报告-------数据包在网络某个三层设备无法转发时,此节点如路由器就会给原主机发送一个ICMP类型为3的错误报告报文。

五、ICMP的典型应用

5.1 Ping程序

可以根据ping命令发送的ICMP-request报文的其对应ICMP-echo消息来判断IPv4或IPv6网络设备如主机是否可达。

-a----------指定源IP地址

-c----------指定发包数量

-h----------指定ttl值

5.2 Tracert(Traceroute)路径追踪程序

原理:由于路由器每接收一个数据包对其进行三层查路由表后、其ttl值就会减-1后在对数据包进行处理,当ttl为0时就会丢包,不在进行查表后转发。tracert在进行跳数检查时,就是结合ttl来实现。

当检查第一跳时,主机便会向目的主机发送报文,并把ttl值置位1,当网络路由器收到报文并进行处理时,由于ttl减-1后为0,就会丢包;此时就会触发标有自身源IP的ICMP错误报告报文,发给源主机,此时源主机根据报文源IP就会得知第一跳路由。当检测第二跳时,ttl值置为2;就这样每检查第几跳时ttl值就为几,直到收到的报文源地址为目的IP,追踪结束。链路故障根据错误报告终止探测。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

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

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

相关文章

肖sir__设计测试用例方法之正交表08_(黑盒测试)

设计测试用例方法之正交 一、正交表定义 正交试验设计法,是从大量的试验点中挑选出适量的、有代表性的点,应用依据迦罗瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法。 二、 正交常用的术语 指标:通常把判断试验…

代码泄漏无感知?代码安全审计构筑企业核心资产安全防线

目录 一个不眠之夜 源代码托管:最容易被从内部攻破的堡垒 审计事件,构建源代码安全防护的“最后一道防线” 源代码托管审计事件三要素 源代码托管审计事件的价值 极狐GitLab 审计事件功能 极狐GitLab 审计事件功能特点 极狐GitLab 审计事件功能使…

【AIGC系列】Stable Diffusion 小白快速入门课程大纲

一、前言 本文是《Stable Diffusion 从入门到企业级应用实战》系列课程的前置学习引导部分,《Stable Diffusion新手完整学习地图课程》的课程大纲。该课程主要的培训对象是: 没有人工智能背景,想快速上手Stable Diffusion的初学者;想掌握St…

RouterOS-配置PPPoEv4v6 Server

1 接口 ether3 出接口 ether4 内网接口 2 出接口 出接口采用PPPoE拨号SLAAC获取前缀,手动配置后缀 2.1 选择出接口interface,配置PPPoE client模式 2.2 配置PPPoE client用户名和密码 2.3 从PPPoE client获取前缀地址池 2.4 给出接口选择前缀并配置…

浏览器安全-同源策略和CORS

同源策略 同源策略是浏览器的一个安全功能,浏览器禁止在当前域读写其他域的资源,如限制跨域发送ajax请求 不受同源策略限制的 1)页面中的链接,重定向表单以及表单提交 2)跨域资源引入 如script不受跨域限制&#xff0…

集合结构体系

集合体系结构 collection单链集合&#xff1a;是单列集合的祖宗接口&#xff0c;他的功能是所有单列集合可以继承使用的 创建collection对象 Collection<String> collnew ArrayList<>();//学习阶段才创建的collection中的arraylist方法名称说明boolean add()集合中…

PDF转Word的方法分享与注意事项。

PDF和Word是两种常用的文档格式&#xff0c;它们各有优点&#xff0c;适用于不同的场景。然而&#xff0c;有时候我们需要将PDF转换为Word&#xff0c;以便更好地进行编辑和排版。本文将介绍几种常用的PDF转Word的方法&#xff0c;并分享一些注意事项。 一、PDF转Word的方法 使…

docker清理

1. 查看docker 磁盘占用 docker system df 2. 参考&#xff1a; Docker磁盘占用与清理问题_docker system prune_蓝鲸123的博客-CSDN博客

常见问题。

警告&#xff1a;There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene. 解决&#xff1a;两个摄像机两个audio listeners组件&#xff0c;禁用一个就好了。 错误&#xff1a;Scene ‘xxxxx’ couldn’t be loa…

[Linux]套接字通信

摘于https://subingwen.cn,作者:苏丙榅 侵删 文章目录 1. 套接字-socket1.1 概念1.2 网络协议1.3 socket编程1.3.1 字节序1.3.2 IP地址转换1.3.3 sockaddr 数据结构1.3.4 套接字函数 1.4 TCP通信流程1.4.1 服务器端通信流程1.4.2 客户端的通信流程 1.5 扩展阅读1.5.1 初始化套…

MySql时间

一、查询 查询mysql当前时间 SELECT now();查询mysql时区 show variables like%time_zone;二、修改时区 set global time_zone 8:00; &#xff08;修改mysql全局时区为北京时间&#xff0c;也就是我们所在的东8区&#xff0c;需要root权限&#xff09; set time_zone 8:0…

报错:为什么数组明明有内容但打印的length是0

文章目录 一、问题二、分析三、解决1.将异步改为同步2.设置延迟 一、问题 在日常开发中&#xff0c;for 循环遍历调用接口&#xff0c;并将接口返回的值进行拼接&#xff0c;即push到一个新的数组中&#xff0c;但是在for循环内部是可以拿到这个新的数组&#xff0c;而for循环…