0. 前言
在讲解ping过程之前,我们需要了解以下概念。
1). 何为ping
PING (Packet Internet Groper),因特网包探索器,用于测试网络连通性的程序。
Ping发送一个ICMP(Internet Control Messages Protocol,因特网信报控制协议);回声请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答)。
工作原理:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
2). ICMP报文格式:
ICMP属于OSI七层协议的网络层,和IP一层,但ICMP使用时必须增加IP报头。
- 类型:8bit
- 代码:8bit
类型+代码决定了ICMP的整体类型- 检验和:16bit,用于检验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 | |
3 | 4 | Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特 | x | |
3 | 5 | Source routing failed——源站选路失败 | x | |
3 | 6 | Destination network unknown——目的网络未知 | x | |
3 | 7 | Destination host unknown——目的主机未知 | x | |
3 | 9 | Destination network administratively prohibited——目的网络被强制禁止 | x |