本人在“极客时间”上购买了一套“趣谈网络协议”的课程,本文为该课程第7讲(第7讲 | ICMP与ping )的课程笔记。
1.ICMP与 ping
1)ICMP 相当于网络世界的侦察兵。
ping 是基于 ICMP 协议工作的。ICMP全称Internet Control Message Protocol,就是互联网控制报文协议。
2)ICMP 报文是封装在 IP 包里面的。ICMP 报文常见的有两种类型:查询报文类型、差错报文类型
2.查询报文
1)常用的ping 就是查询报文,是一种主动请求,并且获得主动应答的 ICMP 协议。
2)对 ping 的主动请求,进行网络抓包,称为ICMP ECHO REQUEST。同理主动请求的回复,称为ICMP ECHO REPLY。比起原生的 ICMP,这里面多了两个字段,一个是标识符。这个很好理解,你派出去两队侦查兵,一队是侦查战况的,一队是去查找水源的,要有个标识才能区分。另一个是序号,你派出去的侦查兵,都要编个号。如果派出去 10 个,回来 10 个,就说明前方战况不错;如果派出去 10 个,回来 2 个,说明情况可能不妙。
在选项数据中,ping 还会存放发送请求的时间值,来计算往返时间,说明路程的长短。
3.差错报文
1)几个 ICMP 差错报文的例子:终点不可达为 3,源抑制为 4,超时为 11,重定向为 5。
2)Traceroute:差错报文类型的使用
- Traceroute 的第一个作用就是故意设置特殊的 TTL,来追踪去往目的地时沿途经过的路由器。
- Traceroute 还有一个作用是故意设置不分片,从而确定路径的 MTU
网友评论