来源:http://kb.cnblogs.com/a/1560881/linux
首先,了解一般有4种广播地址:受限制的广播,网段的广播,子网的广播,全部子网的广播
其次,假如个人地址10.26.20.1/16,我ping 10.26.255.255,会发生什么?
看一下ping的输出:windows
C:/Documents and Settings/Administrator>ping 10.26.255.255 -t
Pinging 10.26.255.255 with 32 bytes of data:
Reply from 10.26.255.254: bytes=32 time<1ms TTL=255
Reply from 10.26.20.90: bytes=32 time<1ms TTL=64网络
说明了几点:
1.ping这个广播地址通了,但从回应看,是同网段的地址回的
2.同网段的不少机器,为何只有这两台回应我了?
下面,全面的解释一遍:
1.我发出ping 10.26.255.255这个请求,在这个icmp包出去以前,发出去一个多播的帧,目的mac是多播mac;
2.好,全部能收到这个多播包的主机,看到这个包,知道我要作什么(icmp reauest),若是它的系统支持(linux支持,windows不支持),就会对其响应(icmp response),因而发给我一个arp查询,查询个人arp是什么,因而我响应这个查询,这样我也学到了它的arp;
3.之后,我每个ping广播的icmp,都由组内能够响应的主机来回应我,这是ping的结果了(分别是255.254和20.90回应我)
这个过程不复杂,重点是理清流程,究竟是怎么一个顺序spa
经过这个特性,咱们能够经过此方法来查询某些设备的IP地址!blog
例如:在一个有限网络中接入的无线AP的IP,或者某些网络打印机。get