首先,了解通常有4种广播地址:受限制的广播,网段的广播,子网的广播,所有子网的广播
其次,假如我的地址10.26.20.1/16,我ping 10.26.255.255,会发生什么?
看一下ping的输出:
代码语言:javascript复制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回应我)
这个过程不复杂,重点是理清流程,到底是怎么一个顺序
通过这个特性,我们可以通过此方法来查询某些设备的IP地址!
例如:在一个有限网络中接入的无线AP的IP,或者某些网络打印机。
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:Yiiven https://cloud.tencent.com/developer/article/2193048