不同网段IP地无法Ping通的问题

     测试网络时,经常用的方法是Ping某个IP地址,如果能Ping通,则说明这条链路是畅通的,如没有Ping不通,则说明这个链路不通,这个测试方法得出的结论是不严谨的,也不一定是正确的。

    首先,Ping功能发送的是ICMP包,并不是完整的TCP/IP协议包,如果没有三层交换机路由,Ping功能得出结论就有待商榷。假如你Ping的是和本机同一网段的IP地址,如果Ping不通,目的IP与本地链路不通,结论成立。如果Ping的目的IP地址与本地IP地址不在同一网段,比如说本地IP地址为:192.168.2.106,目的IP地址为:192.168.20.157,使用PIng功能,两个主机相互Ping,如果Ping不通,不能得出两者链路不通的说法。

   Ping功能不像完整的TCP/IP数据包,PIng功能发送的只不过是ICMP控制报文协议包。当你使用Ping功能时,本地PC会首先查询本地的ARP地址映射表,如果目的IP不在ARP缓存中,则受限会查询ARP映射表。如果你的电路连接的是一般路由器即无没有三层交换路由功能,本地电路查询ARP映射表的时候,会发出一个MAC层目的地址为路由器MAC地址的ICMP数据包,路由器收到ICMP数据包之后,经过地址过滤,发现目的IP地址不是其路由器的子网,则会将此ICMP包抛弃,不会发出ARP查询包进行ARP地址查询。如果本地电脑连接的是有三层交互路由功能的交换机或者路由器,则其会发出ARP查询数据包进行网络查询。

   举一个例子使用PIng两个IP地址:192.168.2.106;192.168.20.157.假如本地IP地址为:192.168.2.100,如果192.168.2.106链路不通,你会发现当你PIng192.168.2.106,会出现:“无法访问目标主机”的提示;当你Ping192.168.20.157时,会出现:“请求超时”的提示;这个两个提示很明显,计算机产生的行为不一样,提示“请求超时”说明本地发出ICMP包时没有任何的响应,即路由器直接将此包虑掉,当做不安全或者残缺包处理;提示“无法访问目标主机”说明:当前网络下没有这个IP地址可供用户访问。、

   如果解释的不对请查看该日志的读者进行补充,谢谢

 

   

你可能感兴趣的:(网络通信)