欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 【Linux】ICMP

【Linux】ICMP

2024/10/25 11:26:48 来源:https://blog.csdn.net/2301_77868664/article/details/142242107  浏览:    关键词:【Linux】ICMP

一、ICMP协议

       ICMP协议是一个网络层协议,基于IP协议;一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否通畅;但是IP协议并不提供可靠传输。如果进行丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。

二、ICMP功能

ICMP的主要功能包括:

  • 确认IP报是否成功到达了目标地址
  • 通知在发送过程汇总IP报被丢失的原因
  • ICMP也是基于IP协议工作的,但是他并不是传输层的功能,因此人们仍然把它归结为网络层协议
  • ICMP只能搭配IPv4来使用,如果是IPv6的情况下,需要使用ICMPv6 

三、ICMP的报文格式

关于报文格式,了解一下即可:

ICMP大概分为两类报文:

  • 一类是通知出错原因
  • 一类是用于诊断查询
类型(十进制数)内容
0回送应答
3目标不可达
4原点抑制
5重定向或者改变路由
8回送请求
9路由器公告
10路由器请求
11超时
17地址子网请求
18地址子网应答

四、两个命令

4.1 ping命令

  • 在这里,ping的是域名。而不是url!!!一个域名可以通过DNS解析成IP地址。
  • ping命令不光可以验证网络的联通性,同时也会统计响应时间和TTL(IP报中的Time To Live,生存周期)。
  • ping命令会先发送一个ICMP Echo Request给对端
  • 对端接收到之后,会返回一个ICMP Echo Reply

4.2 traceroute命令

       这个命令也是基于ICMP协议实现的,能够打印出可执行程序主机,一直到目标主机之前经历多少路由器。

4.3 一个小坑

       有些面试官可能会问:telnet是23号端口,ssh是22号端口,那么ping是什么端口??千万注意:这是面试官的圈套。

       ping命令和traceroute命令都是基于ICMP协议的,是在网络层上的,但是端口号是传输层的内容,在ICMP中根本就不关注端口号这样的信息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com