ICMP与ping

ICMP的格式

ping是基于ICMP协议工作的。ICMP全称是Internet Control Message Protocol,就是互联网控制报文协议。
控制主要指的是?
网络包在异常复杂的网络环境中传输时,常常会遇到各种问题。遇到问题时,不能死的不明不白,所以需要传出消息来报告情况,这样才能调整传输策略。类比古代行军中,将军要通过侦察兵掌握情况,控制全局。
ICMP 是封装在IP包里面的。因为传输指令的时候,需要源地址和目标地址
ICMP与ping
ICMP报文有很多类型,不同的类型有不同的代码。最常用的类型是主动请求为8,主动请求的应答为0。

查询报文类型

ICMP查询报文类型和主动应答的ICMP协议。ping 包比如原生的ICMP,多了两个字段,一个是标识符,用于标识功能的。一个是序号,统计回来数目的。

差错报文类型

  • 终点不可达。 网络不可达为0,主机不可达为1,协议不可达为2,端口不可达为3,需要进行分片单设置了不分片位代码为4。
  • 源站抑制。也就是让源站放慢发送速度。
  • 时间超时。超过网络包的生存时间还没到
  • 路由重定向。下次发给另外一个路由器。

查询报文类型的使用

ICMP与ping

差错报文类型的使用

Traceroute的第一个作用就是故意设置特殊的TTL,来追踪去往目的地时沿途经过的路由器。
Traceroute故意设置不分片,来确定路径的MTU。

小结

  • ICMP相当于网络世界的侦察兵,两种类型的ICMP报文,一种是主动探查的查询报文,一种是异常报告的差错报文。
  • ping使用查询报文,Traceroute使用差错报文。