标签:
Ping命令主要作用是检查网络的连通情况和网络的速度,Ping主要有两种情况,同网段和跨网段。
如下的拓扑图:
如果A ping B,A会检查自己的ARP table,如果能找到IP和MAC的表,直接封装二层报文发送,如果找不到则需要发送ARP广播包。
交换机收到ARP广播包后,交换机有学习MAC地址的功能,所以他会检索自己有没有保存主机B的MAC地址,如果有的,就直接返回给A主机,如果没有,就会向所有端口发送ARP广播,其他主机收到后,发现不是在找自己,就纷纷丢弃了改报文,不去理会,直到主机B收到了报文后,就立即响应,我的MAC地址是多少,同时学到主机A的MAC地址,并按同样的ARP报文格式返回给主机A。如图:
如果主机A要Ping主机C,那么主机A发现主机C的IP和自己的IP不是同一个网段,他就去找网管转发,但是他也不知道网管的MAC情况下呢?这是就会像前面那个步骤一样,先发送一个ARP广播,学到网关的MAC地址,再发封装包,
当路由器收到主机A发过来的ICMP报文,发现自己的目的地址是其本身MAC地址,根据目的地址IP地址2.1.1.1,查找路由表,发现2.1.1.1/24的路由表项,得到一个出口指针,去掉原来的MAC头部,加上自己的MAC地址向主机C转发 ,最后主机C已学到路由器2端口MAC,路由器2端口转发给路由器1端口,路由器端口学到主机A的MAC地址的情况下,他们就不需要再做ARP解析,就将ICMP的回显请求恢复过来,
标签:
原文地址:http://www.cnblogs.com/sudochen/p/5016887.html