ICMP与ping:投石问路的侦察兵

本文深入解析ICMP协议,包括其在网络通信中的作用、报文类型及结构。详细介绍了ping命令的工作原理,以及ICMP在差错报告和控制信息传输中的应用。

1. ICMP 协议 

  ICMP全称Internet Control Message Protocol,就是互联网控制报文协议。ping命令就是基于它工作的。

  ICMP 报文是封装在 IP 包 里面的。因为传输指令的时候,肯定需要源地址和目标地址。

  ICMP包内包含多个字段,最重要的是两个字段

  协议格式如下:

2 报文类型 

2.1 查询报文类型

  主动发起查询的报文。最常用的类型是主动请求为 8,主动请求的应答为 0。

  常用的ping就是查询报文,是一种主动请求,并且获得主动应答的 ICMP 协议。所以,ping 发的包也是符合 ICMP 协议格式的,只不过它在后面增加了自己的格式。

  对 ping 的主动请求,进行网络抓包,称为 ICMP ECHO REQUEST,同理主动应答称为 ICMP ECHO REPLY

  ping包比原生的ICMP包多了两个字段:一个是标识符,表明这个包是什么功能的,另一个是编号,一般来说,发出去几个包就应该收到几个回复包,否则就表示有问题了;

  选项数据还会存放发送请求的时间,用来计算往返时间,判断路程的长短。

2.2 差错报文类型 

  常用类型:终点不可达为 3,源抑制为 4,超时为 11,重定向为 5。

  第一种是终点不可达。具体的原因在代码中表示就是,网络不可达代码为 0,主机不可达代码为 1,协议不可达代码为 2,端口不可达代码为 3,需要进行分片但设置了不分片位代码为 4。 

  第二种是源站抑制,也就是让源站放慢发送速度。  

  第三种是时间超时,也就是超过网络包的生存时间还是没到。  

  第四种是路由重定向,也就是让下次发给另一个路由器。  

  差错报文的结构相对复杂一些。除了前面还是 IP,ICMP 的前 8 字节不变,后面则跟上出错的那个 IP 包的 IP 头和 IP 正文的前 8 个字节。

2.3 ping :一次查询报文的完整过程 

 

转载于:https://www.cnblogs.com/virgosnail/p/10074784.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值