首先,ping使用了协议ICMP
ICMP的一个重要应用就是分组间探测PING,用来检测两主机间的连通性
ping使用了ICMP回送请求和回送回答报文,是应用层间使用网络层ICMP的一个例子,并没有通过运输层的TCP/UDP
Ping程序的实现
- 实现方法是主机向远程计算机发出ICMP回送请求以后,远程计算机会拦截这个请求,然后生成一条一条回送应答信息,再通过网络传回给主机
- 假如由于某些原因,不能抵达目标主机,就会生成对应的ICMP错误消息(“比如 目标主机访问不可达”),由原先打算建立通信的那个路径上某处的一个路由器返回
- 假定与主机的物理性连接并不存在问题,但远程主机已经关机或没有设置对网路事件作出相应,便需由自己的程序来执行超时检测,侦测出这样的情况
ping使用ICMP协议,发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达
ping后地址:使用DNS协议将域名转换为ip地址,获取ip地址后在数据链路层用MAC地址进行传输【这里用到ARP地址解析服务】
回顾
域名【应用层】、IP地址【网络层】、物理地址【数据链路层】间的转换
DNS:域名—>IP地址
ARP:IP—>MAC
RARP:MAC---->IP