首先Ping的原理用到了ICMP协议。
ICMP协议
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议(即不关注端口号)。
报文格式
ICMP报文包含在IP数据报中,IP报头在ICMP报文的最前面。一个ICMP报文包括IP报头(至少20字节)、ICMP报头(至少八字节)和ICMP报文(属于ICMP报文的数据部分)。当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。
Ping
Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。
Traceroute
Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。打印出可执行程序主机,一直到目标主机之前经历多少路由器。返回到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。
其次若ping的是域名需要使用DNS协议,在使用DNS协议的过程中可能会调用ARP协议。(关于详细细节可见:浏览器输入网址到显示过程)