程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

简介ICMP「大神路过」 icmp在哪

balukai 2024-12-25 10:20:44 文章精选 71 ℃

以下内容主要基于百科整理,感觉百科有点乱!

简介

定义:Internet Control Message Protocol,即Internet控制报文协议。

它属于网络层协议,是TCP/IP协议簇的一个子协议,使用IP的基本支持,就它是一个更高级别的协议(只是像),但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。ICMP主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。

基于UDP是一种面向无连接的协议,用于传输出错报告控制信息。

ping 和 tracert是两个常用网络管理命令,ping 用来测试网络可达性,tracert 用来显示到达目的主机的路径。ping和 tracert 都利用 ICMP 协议来实现网络功能,它们是把网络协议应用到日常网络管理的典型实例。

工作原理

ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。


报文格式

ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文,IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面。

常用ICMP类型

TYPE

CODE

Description

Query

Error

0

0

Echo Reply——回显应答(Ping应答)

x


3

0

Network Unreachable——网络不可达


x

3

1

Host Unreachable——主机不可达


x

3

2

Protocol Unreachable——协议不可达


x

3

3

Port Unreachable——端口不可达


x

5

0

Redirect for network——对网络重定向



8

0

Echo request——回显请求(Ping请求)

x


相应请求(type0、8)

我们用的ping操作中就包括了相应请求(类型字段值为8)和应答(类型字段值为0)ICMP报文。一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。

最近发表
标签列表