已知條件
- IP:
192.168.251.31
- 掩碼:
255.255.252.0
計算思路
-
掩碼是
255.255.252.0
,透過二進位制轉換為11111111.11111111.11111100.00000000
,連續1表示網路位,連續0表示主機位,所以第三段第六位
往後是主機位
,往前(包括第六位)都是網路位
-
IP
192.168.251.31/22
透過二進位制轉換為:xxxxxxxx.xxxxxxxx.11111011.xxxxxxxx
(這個例子只需要關注第三段) -
將 IP 中所有主機位修改,分別改為 0 和 1
- 後邊都置 0, 就是 IP 段起始,
xxxxxxxx.xxxxxxxx.111110|00.00000000
- 後邊都置 1, 就是 IP 段結尾,
xxxxxxxx.xxxxxxxx.111110|11.11111111
-
分別將起始和結束IP和子網掩碼進行與運算,得到:
11111000.00000000 = 248.0
,11111011 = 251.255
-
得到 IP 段範圍為:
192.168.248.0
~192.168.251.255
有個疑問,會不會出現 255.255.253.0 這種掩碼
-
首先答案,掩碼沒有規定必須由連續的1組成,但是現實中肯定是沒有這麼用的。
因為非連續的對人們規劃和使用非常的不友好,無法區分掩碼位數,也無法確定網路位和主機位的劃分
那麼理論上能不能有,分析一下 -
假設存在,那麼這個掩碼轉為二進位制的寫法為
11111111.11111111.11111101.00000000
通常情況我們以連續1作為網路位
,連續0作為主機位
,示例掩碼就無法直接區分了
也無法用常規的/22
這種表示 -
掩碼掩碼,我理解是把網路位遮住,只識別主機位,那麼
前24位中,第23位為主機位,其他位網路位
這樣該掩碼對應的可用網段就分成了兩部分,即192.168.253.0~192.168.253.255
和192.168.255.0~192.168.255.255
不利於規劃,還造成了 ip 浪費 -
我們假設它可以成立,那麼有沒有問題,以
192.168.255.0.0~192.168.255.255
這個網段為例
假設兩個掩碼中(255.255.255.0
和255.255.253.0
)有相同IP(192.168.255.10
),此時有一個IP(192.168.255.20
)請求與它通訊,由於dest_ip和本段掩碼做與運算的結果,和本網路號相同,那麼會傳送廣播,兩個 ip 會發生爭搶導致資料包異常
網路不能正常使用,肯定是由問題的,那麼,結論“不能這麼用”,大功告成!
參考連結
- 掩碼未規定必須連續為1
- 同IP不同掩碼
- 掩碼和通訊的關係