來源:http://kb.cnblogs.com/a/1560881/
首先,了解通常有4種廣播地址:受限制的廣播,網段的廣播,子網的廣播,所有子網的廣播
其次,假如我的地址10.26.20.1/16,我ping 10.26.255.255,會發生什么?
看一下ping的輸出:
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,或者某些網絡打印機。