ping命令流程详解

        现在有以下需求,PC1的IP地址为192.168.0.10/24,PC2的IP地址为192.168.0.20/24,SW交换机的IP地址为192.168.0.30/24,问PC1能否ping通PC2?

 

        PC1和PC2的IP地址属于同一网段,很显然能ping通,但为什么可以ping通呢?请看以下分析:

 

         在Linux下,ping是一个命令,当输入此命令,Shell获取到后进行解析,然后进行执行。ping 192.168.0.20,即是主机ping目的机。首先,判断ping后的IP地址是否是自己的IP地址,如果是的话,就丢弃,如果不是,判断当前主机IP和目的主机IP是否在同一网段,如果是,查找ARP缓存,是否有对端的MAC地址。这里稍微打住,什么是ARP协议呢?ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议。如果没有对端的MAC地址,以广播的形式进行ARP请求发送,目的主机进行ARP应答,当前主机收到目的主机的ARP应答后,将MAC地址填入缓存中,发送数据给目的主机。

 

         请看下面流程图:

 


         给出一个更加直观的图:

 



         ARP协议图示:




我的邮箱wgbno27@163.com  新浪微博@Wentasy27
  微信公众平台:JustOracle(微信号:justoracle)
  数据库技术交流群:336882565(加群时验证 From CSDN XXX)
  Oracle交流讨论组https://groups.google.com/d/forum/justoracle
  By Larry Wen


katoon Sina CSDN
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]
原文地址:https://www.cnblogs.com/xinyuyuanm/p/3206470.html