ping命令是我们在学习计算机网络中一个很常见的命令
我们经常使用ping命令来测试两台主机之间是否能够通信:
如果request包能发过去并且reply包能够返回,就说明两台机器之间能够通信
那么ping命令的工作流程是怎样的呢?
让我们从数据封装的角度来看看
假设主机 A ping 主机B
A的ip地址是:192.168.10.1
B的ip地址是:192.168.10.254
##############################################
那么整个ping的过程应该是这样的:
1、应用层
在应用层阶段会随机产生一些数据来封装起来,用以作为发送给主机B的数据这个数据的内容我们通常不关注。封装好了以后将数据传输至传输层
2、传输层
因为ping命令是由icmp协议实现的,icmp协议工作在网络层,因此在传输层阶段数据并没有改变。
3、网络层
源ip地址和目的IP地址,协议号,TTL等信息封装起来,并添加一个ip头部信息,然后数据就往下到了数据链路层。
4、数据链路层
arp广播,获取主机B的mac地址,然后将源mac和目的mac等信息封装起来并在数据帧上面添加一个mac头部信息,然后将数据帧传至物理层
5、物理层
比特流的形式发给主机B,主机B收到以后又给主机A发送reply响应包,这样ping的过程就完成了。