ICMP基础知识

一、ICMP是什么

ICMP( Internet Control Message Protocol)是互联网控制报文协议,其主要功能确认IP包是否成功送达目标地址、报告发送过程中IP包被废弃的原因和改善网络设置等。

在IP通信中如果某个IP包因为某种原因未能达到目标地址,那么这个具体的原因将由ICMP负责通知。例如:

主机A向主机B发送了数据包,由于某种原因导致路由器2未能发现主机B的存在,这时,路由器2就会向主机A发送一个ICMP目标不可到达数据包,说明发往主机B的包未能成功。ICMP的这种通知消息会使用IP进行发送。

二、ICMP包头格式

ICMP报文是封装在IP包里面,它工作在网络层,是IP协议的助手。

ICMP包头的类型字段,大致分为两大类:

  • 查询报文类型:一种用于诊断的查询信息
  • 差错报文类型:一类是通知出错原因的错误消息

三、查询报文类型

回送消息是类型0和8,用于进行通信的主机或路由器之间,判断所发送的数据包是否已经成功到达对端的一种消息,ping命令就是利用这个消息实现的。

可以向对端主机发送回送请求的消息(类型8),也可以接收对端主机发回来的回送应答消息(类型0)。

相比原生的ICMP,这里多了两个字段:

  • 标识符:用以区分是哪个应用程序发ICMP包,比如用进程PID作为标识符;
  • 序号:序列号从0开始,每发送一次新的回送请求就会加1,可以用来确认网络包是否有丢失。

四、差错报文类型

  • 目标不可达消息---类型3
  • 原点抑制消息---类型4
  • 重定向消息---类型5
  • 超时消息---类型11

IP路由器无法将IP数据包发送给目标地址时,会给发送端主机返回一个目标不可达的ICMP消息,并在这个消息中显示不可达的具体原因,原因记录在ICMP包头的代码字段。

五、ping------查询报文类型的使用

主机A执行ping主机B后,源主机首先构建一个ICMP回送请求消息数据包。ICMP数据包内包含两个字段,最重要的是两个:

  • 类型:对于回送请求消息而言该字段为8;
  • 序号:主要用去区别连续ping的时候发出的多个数据包。

以上总结如下图:

如果跨网段的话,还会涉及网关的转发、路由器的转发等等。

相关推荐
白狐_79810 小时前
【408计算机网络|第04章·下|408-CN-04B】网络层(下):路由算法、RIP、OSPF、BGP、IPv6与路由器
计算机网络·算法·智能路由器
白狐_7982 天前
【408计算机网络|第01章|408-CN-01】计算机网络概述与体系结构:性能指标、分层、OSI与TCP/IP
网络协议·tcp/ip·计算机网络
白狐_7982 天前
【408计算机网络|第03章·上|408-CN-03A】数据链路层(上):组帧、差错控制与可靠传输
网络·网络协议·计算机网络
阿慧今天瘦了嘛3 天前
计算机组成原理概述:从硬件到软件的桥梁
计算机网络·算法
Flandern11113 天前
HTTPS(TLS 1.3)完整流程
数据库·网络协议·计算机网络·https
沐苏瑶3 天前
计算机网络核心笔记:打通 TCP/UDP 与 HTTP/HTTPS 底层逻辑(重点上)
笔记·计算机网络·http·https
ZJH__GO4 天前
网络编程v2--多客户端互通
java·运维·服务器·开发语言·计算机网络
Tsuki_tl4 天前
吃透 TCP:可靠传输完整原理【上】
网络协议·tcp/ip·计算机网络·三次握手·后端面试·四次挥手·传输层
shiyi.十一5 天前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
sbjdhjd5 天前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构