一、子網掩碼的概述及作用
- 子網掩碼是一個應用於TCP/IP網絡的32位二進制值,每節8位,必須結合IP地址對應使用。
- 子網掩碼32位都與IP地址32位對應,如果某位是網絡地址,則子網掩碼為1,否則為0。
- 子網掩碼可以通過與IP地址“與”計算,分離出IP地址中的網絡地址和主機地址,用於判斷該IP地址是在局域網上,還是在廣域網上。
- 子網掩碼一般用於將網絡進一步划分為若干子網,以避免主機過多而擁堵或過少而IP浪費。
二、為什么要使用子網掩碼?
子網掩碼可以分離出IP地址中的網絡地址和主機地址,那為什么要分離呢?因為兩台計算機要通訊,首先要判斷是否處於同一個廣播域內,即網絡地址是否相同。如果網絡地址相同,表明接受方在本網絡上,那么可以把數據包直接發送到目標主機,否則就需要路由網關將數據包轉發送到目的地。
三、子網掩碼的分類
(未划分子網)
子網掩碼32位與IP地址32位對應,如果某位是網絡地址,則子網掩碼為1,否則為0。例如A類IP地址,第一節為網絡地址,其余三節為主機地址,故掩碼為“11111111.00000000.00000000.00000000”
A類網絡缺省子網掩碼:255.0.0.0
B類網絡缺省子網掩碼:255.255.0.0
C類網絡缺省子網掩碼:255.255.255.0
(用於划分子網)
將一個網絡划分為若干子網,希望每個子網擁有不同的網絡地址或子網地址。因為IP是有限的,實際上我們是將主機地址分為兩個部分:子網網絡地址、子網主機地址。 形式如下:
未做子網划分的ip地址:網絡地址+主機地址
做子網划分后的ip地址:網絡地址+(子網網絡地址+子網主機地址)
四、子網掩碼和ip地址的關系
子網掩碼是用來判斷任意兩台計算機的IP地址是否屬於同一子網絡的根據。具體說就是兩台計算機各自的IP地址與子網掩碼進行“與”運算后,如果得出的結果是相同的,則說明這兩台計算機是處於同一個子網絡上的,可以進行直接的通訊。
例如:設IP地址為192.168.10.2,子網掩碼為255.255.255.240,那么子網掩碼是怎樣來區分網絡地址和主機地址的呢。
網絡地址: 192.168.10.0 (IP和子網掩碼 與運算)
主機地址為:0.0.0.2(子網掩碼取反,然后和IP 與運算)
五、為什么要要划分子網?
例如:在A類IP地址中,每個A類網絡可能有16777214 台主機,它們處於同一廣播域。在同一廣播域中有這么多主機是不可能的,網絡會因為廣播通信而飽和。另一方面,IP地址資源越來越少。為實現更小的廣播域,就需要進一步分成更小的網絡。划分子網后,通過使用掩碼,把子網隱藏起來,使得從外部看網絡沒有變化,這就是子網掩碼。
六、子網划分簡述
子網划分是通過借用IP地址中若干位主機地址來充當子網的網絡地址,從而將原網絡划分為若干子網。
划分子網時,隨着子網地址借用主機位數的增多,子網的數目隨之增加,但每個子網中的可用主機數逐漸減少。
如:C類地址,原有8位主機位,2^8-2即254個主機地址,默認子網掩碼255.255.255.0。(全0或全1不可用)
借用1位主機位,產生2^1-2=0個子網,每個子網有2^7-2個主機地址;
借用2位主機位,產生2^2-2=2個子網,每個子網有2^6-2個主機地址;
……
根據子網ID借用的主機位數,我們可以計算出划分的子網數、掩碼、每個子網主機數,列表如下:
拿 C類子網掩碼 舉例:
① 划分子網數 ② 子網位數 ③子網掩碼(二進制) ④ 子網掩碼(十進制) ⑤ 每個子網主機數
① 1~2 ② 1 ③ 11111111.11111111.11111111.10000000 ④ 255.255.255.128 ⑤ 126
① 3~4 ② 2 ③ 11111111.11111111.11111111.11000000 ④ 255.255.255.192 ⑤ 62
① 5~8 ② 3 ③ 11111111.11111111.11111111.11100000 ④ 255.255.255.224 ⑤ 30
① 9~16 ② 4 ③ 11111111.11111111.11111111.11110000 ④ 255.255.255.240 ⑤ 14
① 17~32 ② 5 ③ 11111111.11111111.11111111.11111000 ④ 255.255.255.248 ⑤ 6
① 33~64 ② 6 ③ 11111111.11111111.11111111.11111100 ④ 255.255.255.252 ⑤ 2
借位:從左到右借的,不是從右到左,所以只能是 128,192,224,240,248,252,254,255。但在這里 254,255 沒啥意義,因為每個子網中,第一個IP地址(即主機部分全部為0的IP)和最后一個IP(即主機部分全部為1的IP)不能分配給主機使用。
七、子網掩碼計算(不一定適用當前)
在求子網掩碼之前必須先搞清楚要划分的子網數目,以及每個子網內的所需主機數目。
1) 將子網數目轉化為二進制來表示
2) 取得該二進制的位數,為 N
3) 取得該 IP地址的類子網掩碼,將其主機地址部分的的前N位置 1 即得出該IP地址划分子網的子網掩碼。
如欲將 C類 IP地址192.168.10.0划分成4個子網:
1) 4=100
2) 該二進制為三位數,N = 3 (現在可能只需要占用2位主機位即可)
3) 將C類地址的子網掩碼255.255.255.0的主機地址前3位置 1,得到子網掩碼255.255.255.224。
1) 將主機數目轉化為二進制來表示
2) 如果主機數小於或等於254(注意去掉保留的兩個IP地址),則取得該主機的二進制位數。
3) 將該類IP地址的主機地址位數全部置1,然后從后向前的將N位全部置為 0,即為子網掩碼值。
如欲將C類IP地址192.168.10.0划分成若干子網,每個子網內有主機25台:
1) 25=11001
2) 該二進制為5位數,N = 5
3) 將該C類地址的子網掩碼 255.255.255.0的主機地址全部置 1,得到255.255.255.255,然后再從后向前將后5位置0,即為:11111111.11111111.11111111.11100000,即255.255.252.224。
1. 子網數和主機數都可以計算子網掩碼
2. 取得子網/主機的二進制位數
3. 網絡地址置1主機地址置0
4. 換成十進制
轉載自:https://blog.csdn.net/u012219045/article/details/60466352