Ping命令:检查网络的联通情况和检测网络的速度 1、 同一网段ping(主机A ping 主机B) Ø 主机A封装二层报文,先检查自己的MAC地址,若无B的MAC地址,则向外发送一个ARP广播包。(ARP广播包中有A的MAC地址,无B的MAC地址) Ø 交换机收到报文后,检索自己有没有保存主机B的MAC地址,若有,直接返给主机A,若无,会向所有端口发送ARP广播。 Ø 其他主机收到后,若发现不是找自己,就丢弃报文,若是,则立即响应,学到主机A的MAC地址,并按同样的报文格式返回给主机A。 Ø A学到B的MAC地址后把这个MAC封装到ICMP二层报文中(有B的MAC地址),向主机B发送。 Ø B收到报文后,以同样格式返回一个值给A,完成同一网段内的ping流程。 2、不同网段的 ping (主机A ping 主机C)(假设拓扑结构为A-端口E1-端口E2-C,E1和E2为路由器的两个端口) Ø 主机A观察目的IP与本机IP是否为同一网段,结果为不同; Ø 看本机是否设置了网关,若未,则目的不可达;若有,则执行下一步; Ø 发送一个ARP广播包(以获取路由器MAC地址),ARP广播包的源IP为主机A的ip,目的IP为主机A网关IP,即端口E1的IP,源MAC为主机A的MAC,目的MAC为广播MAC:ff-ff-ff-ff-ff-ff。 Ø 路由器回应ARP包:源IP为主机A网关IP,目的IP为主机A的IP;源MAC为主机A网关MAC,即端口E1的MAC,目的MAC为主机A的MAC。 Ø 主机A发送ICMP包,源MAC为主机A的MAC,目的MAC为主机A的网关MAC,源IP为主机A的IP,目的IP为主机C的IP。 Ø 路由器收到ICMP包后,拆包,查IP端口对照表(路由表),发现主机C的IP所在网段的数据由E2口发出,转发包给端口E2。 Ø 路由器(为了获取主机C的MAC)发送一个ARP包,源IP为端口E2的IP,目的IP为主机C的IP;源MAC为端口E2的MAC,目的MAC为广播MAC; Ø 主机C发送ARP回应,端口E2获得主机C的MAC; Ø 路由器发送ICMP,源IP为主机A的IP,目的IP为主机C的IP;源MAC为端口E2的MAC,目的MAC为主机C的MAC。 Ø 主机C回应ICMP,源IP为主机C的IP,目的IP为主机A的 IP;源MAC为主机C的MAC,目的MAC为 端口E2的MAC。 Ø 路由器转发ICMP,源IP为主机C的IP,目的IP为主机A的IP;源MAC为端口E1的MAC,目的MAC为主机A的MAC。 Ø 主机A收到回应,则完成一次ping。(跨网段ping过程中ICMP数据报中源IP和目的IP始终是两台主机IP地址,但是MAC地址在变化)
|