分享

ping的详细过程

 昵称29273511 2015-12-09

主要的Ping有两种情况,一种是同一网段,一种是跨网段的。

首先看一个拓扑图:

首先,如果主机APing主机B,那么主机A就要封装二层报文,他会先检查自己的MAC地址,如果没有BMAC地址,就会向外发送一个ARP广播包,如图:

其中ARP报文格式如下:

其中OP表示:1:表示ARP请求;2:表示ARP应答;3:表示RARP请求;4:表示RARP应答。

首先交换机会收到这个报文后,交换机有学习MAC地址的功能,所以他会检索自己有没有保存主机BMAC地址,如果有的,就直接返回给A主机,如果没有,就会向所有端口发送ARP广播,其他主机收到后,发现不是在找自己,就纷纷丢弃了改报文,不去理会,直到主机B收到了报文后,就立即响应,我的MAC地址是多少,同时学到主机AMAC地址,并按同样的ARP报文格式返回给主机A。如图:

ARP报文的格式为:

这时候主机A 学到了主机BMAC地址,就把这个MAC封装到ICMP协议的二层报文中向主机B发送,报文格式如下:

当主机B收到了这个报文后,发现是主机AICMP回显请求,就按同样的格式,返回一个值给主机A,这样就完成了同一网段内的Ping过程。

如果主机APing主机C,那么主机A发现主机CIP和自己的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端口,路由器端口学到主机AMAC地址的情况下,他们就不需要再做ARP解析,就将ICMP的回显请求恢复过来,报文格式如下:


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多