ping的具体过程
1、主机A在应用层发起对主机B的Ping请求
2、传输层将数据分段并加上报头
3、网络层将A的IP地址为源IP地址、B的IP地址为目标IP地址,根据ICMP协议封装成数据包。
4、根据B的IP地址和子网掩码,检测A、B是否属于同一子网。同一子网
如果属于同一子网,则查找本机的ARP缓存,找到B的MAC地址。
若ARP缓存表中找不到B的MAC地址,则发送ARP请求广播,B收到ARP广播后进行解封装,发现所请求的MAC地址
是自己的。B将A的MAC地址写入ARP缓存表中,然后向A发送一个 ARP应答单播。A收到B的ARP应答报文后将B的MAC
地址存入ARP缓存中。
A将B的Mac地址作为目标MAC地址并封装到数据帧中,发送给网络接口层进行传输。
B接收到这个数据帧后,首先在网络接口层中发现目标MAC地址指向自己,B将帧头去掉,向上传传输。
网络层接收到这个数据包后会查看包头,发现目标IP地址和自己匹配,继续解封装并将数据向上层传输。
传输层接收ping请求报文,去掉报头,向应用层传送。应用层收到ping请求后,发送一个ping回应报文给A。
不同子网如果A、B不属于同一个子网,则仍然发送一个ARP广播,得到网关的MAC地址,再将ICMP数据报发送给网关路由器,
请求路由器转发。