子网掩码详解分析
一、?子網掩碼的概念及作用??
子網掩碼?(subnet mask)?又叫網絡掩碼、地址掩碼、子網絡遮罩,是一個應用于?TCP/IP?網絡的?32?位二進制值。它可以屏蔽掉?IP?地址中的一部分,從而分離出?IP?地址中的網絡部分與主機部分,基于子網掩碼,管理員可以將網絡進一步劃分為若干子網。它必須結合?IP?地址一起使用。
二、?為什么需要使用子網掩碼??
雖然我們說子網掩碼可以分離出?IP?地址中的網絡部分與主機部分,可大家還是會有疑問,比如為什么要區分網絡地址與主機地址?區分以后又怎樣呢?那么好,讓我們再詳細的講一下吧!??
在使用?TCP/IP?協議的兩臺計算機之間進行通信時,我們通過將本機的子網掩碼與接受方主機的?IP?地址進行?'?與?'運算,即可得到目標主機所在的網絡號,又由于每臺主機在配置?TCP/IP?協議時都設置了一個本機?IP?地址與子網掩碼,所以可以知道本機所在的網絡號。
通過比較這兩個網絡號,就可以知道接受方主機是否在本網絡上。如果網絡號相同,表明接受方在本網絡上,那么可以通過相關的協議把數據包直接發送到目標主機;如果網絡號不同,表明目標主機在遠程網絡上,那么數據包將會發送給本網絡上的路由器,由路由器將數據包發送到其他網絡,直至到達目的地。在這個過程中你可以看到,子網掩碼是不可或缺的!
三、?如何用子網掩碼得到網絡?/?主機地址??
既然子網掩碼這么重要,那么它是如何分離出?IP?地址中的網絡地址和主機地址的呢?
過程如下:
1.?將?IP?地址與子網掩碼轉換成二進制;
2.?將二進制形式的?IP?地址與子網掩碼做?'?與?'?運算,將答案化為十進制便得到網絡地址;
3.?將二進制形式的子網掩碼取?'?反?'?;
4.?將取?'?反?'?后的子網掩碼與?IP?地址做?'?與?'?運算,將答案化為十進制便得到主機地址。
下面我們用一個例子給大家演示:
假設有一個?I P?地址:?192.168.0.1
子網掩碼為:?255.255.255.0
化為二進制為:?I P?地址?11000000.10101000.00000000.00000001
子網掩碼?11111111.11111111.11111111.00000000
將兩者做?'?與?'?運算得:?11000000.10101000.00000000.00000000
將其化為十進制得:?192.168.0.0
這便是上面?IP?的網絡地址,主機地址以此類推。
小技巧:由于觀察到上面的子網掩碼為?C?類地址的默認子網掩碼(至于為什么,可看后面的子網掩碼分類就明白了),便可直接看出網絡地址為?IP?地址的前三部分,即前三個字節,主機地址為最后一部分。
四、?子網掩碼的分類??
1?)缺省子網掩碼:
即未劃分子網,對應的網絡號的位都置?1?,主機號都置?0?。
A?類網絡缺省子網掩碼:?255.0.0.0
B?類網絡缺省子網掩碼:?255.255.0.0
C?類網絡缺省子網掩碼:?255.255.255.0
192.168.0.0/24(即子網掩碼的前24位為1,255.255.255.0)
2?)自定義子網掩碼:
將一個網絡劃分為幾個子網,需要每一段使用不同的網絡號或子網號,實際上我們可以認為是將主機號分為兩個部分:子網號、子網主機號。?形式如下:
未做子網劃分的?IP?地址:網絡號+主機號
做子網劃分后的?IP?地址:網絡號+子網號+子網主機號
也就是說?IP?地址在劃分子網后,以前的主機號位置的一部分給了子網號,余下的是子網主機號。
五、子網編址技術
前面幾點介紹了子網掩碼的一些知識,下面我們來看看子網劃分,不要認為子網劃分與子網掩碼沒有關系喲,子網劃分也是靠子網掩碼來實現的。
子網劃分說白了是這樣一個事情:因為在劃分了子網后,?IP?地址的網絡號是不變的,因此在局域網外部看來,這里仍然只存在一個網絡,即網絡號所代表的那個網絡;但在網絡內部卻是另外一個景象,因為我們每個子網的子網號是不同的,當用化分子網后的?IP?地址與子網掩碼(注意,這里指的子網掩碼已經不是缺省子網掩碼了,而是自定義子網掩碼,是管理員在經過計算后得出的)做?'?與?'?運算時,每個子網將得到不同的子網地址,從而實現了對網絡的劃分(得到了不同的地址,當然就能區別出各個子網了,有趣吧)。
子網編址技術?,即子網劃分將會有助于以下問題的解決:
1?)巨大的網絡地址管理耗費:如果你是一個?A?類網絡的管理員,你一定會為管理數量龐大的主機而頭痛的;
2?)路由器中的選路表的急劇膨脹:當路由器與其他路由器交換選路表時,互聯網的負載是很高的,所需的計算量也很高;
3?)?IP?地址空間有限并終將枯竭:這是一個至關重要的問題,高速發展的?internet,?使原來的編址方法不能適應,而一些?IP?地址卻不能被充分的利用,造成了浪費。
因此,在配置局域網或其他網絡時,根據需要劃分子網是很重要的,有時也是必要的。現在,子網編址技術已經被絕大多數局域網所使用。
六、?如何劃分子網及確定子網掩碼?
在動手劃分之前,一定要考慮網絡目前的需求和將來的需求計劃。
劃分子網主要從以下方面考慮?:
1?、網絡中物理段的數量(即要劃分的子網數量)
2?、每個物理段的主機的數量
確定子網掩碼的步驟:
第一步:確定物理網段的數量,并將其轉換為二進制數,并確定位數?n?。如:你需要?6?個子網,?6?的二進制值為110?,共?3?位?,?即?n=3?;
第二步:按照你?IP?地址的類型寫出其缺省子網掩碼。如?C?類,則缺省子網掩碼為11111111.11111111.11111111.00000000?;
第三步:將子網掩碼中與主機號的前?n?位對應的位置置?1?,其余位置置?0?。若?n=3?且為
C?類地址:則得到子網掩碼為?11111111.11111111.11111111.11100000?化為十進制得到?255.255.255.224
B?類地址:則得到子網掩碼為?11111111.11111111.11100000.00000000?化為十進制得到?255.255.224.0
A?類地址:則得到子網掩碼為?11111111.11100000.00000000.00000000?化為十進制得到?255.224.0.0
另:由于網絡被劃分為?6?個子網,占用了主機號的前?3?位,若是?C?類地址,則主機號只能用?5?位來表示主機號,因此每個子網內的主機數量=(?2^5?)-?2?=?30?,?6?個子網總共所能標識的主機數將小于?254?,這點請大家注意!(至于為什么減?2?,可看后面說明)
解惑:
1、?你可能有這樣的疑問,比如在上面的例子里,?6?的二進制值為?110?,那么為什么要將子網掩碼中與主機號的前n?位對應的位置都置?1?,而不是用?6?的二進制?110?去替代前?n?位呢?
呵呵,這個問題提的很好,答案是這樣的:我們計算子網掩碼的目的是什么?就是希望它在做?'?與?'?的時候能夠解析出網絡號,也就是說它與網絡號所對應的位置都應該是?1?(當然包括與子網號所對應的位置),那么很顯然,你寫上?110?是不對的,如果你這么寫,那么它的意義是主機號的前兩位作為子網號,那么這樣將最多劃分?2?個子網(不明白沒關系,下面有計算子網數量的方法),與我們當初所要劃分的?6?個子網顯然是不一致的。這樣解釋你能明白馬?
2、?細心的人可能會發現,劃分?4?個子網,?5?個子網和?6?個子網的子網掩碼是一樣的,同為?255.255.255.224?,是不是錯了呢?三個子網掩碼應該不同呀?呵呵,是這樣的,因為?4?,?5?,?6?的二進制值都是?3?為,因此在子網掩碼中這三位都置?1?,劃分是沒有問題的,只是你的理解上有一點小小的問題,劃分為?4?個子網,其實可以理解為劃分為?6?個子網,但你只使用了其中的?4?個。比如你想劃分?8?個子網,與劃分?14?個子網所得到的子網掩碼是一樣的,都占用了?4?位作為子網號。
七、相關問題??
1?)如何判斷是否做了子網劃分?
如果它使用了缺省子網掩碼,那么表示沒有作子網劃分;反之,則一定作了子網劃分。
2?)如何計算子網地址?
將?IP?地址與子網掩碼的二進制形式做?'?與?'?,得到的結果即為子網地址。
3?)如何計算主機地址?
先將子網掩碼的二進制取?'?反?'?,再與?IP?地址做?'?與?'?。
4?)如何計算子網數量?
這個問題大家會常常提到,還是從子網掩碼入手,主要有兩個步驟:
1.?觀察子網掩碼的二進制形式,確定作為子網號的位數?n?;
2.?子網數量為?2^n?-?2?。(為什么減?2?,繼續往下看)
舉個例子來說,比如有這樣一個子網掩碼:?255.255.255.224?其二進制為:
11111111.11111111.11111111.11100000
可見?n=3,2?的?3?次方為?8?,說明子網地址可能有
如下?8?種情況:
000? ? ? 001? ? ? 010 ? ? ? 011 ?? ? 100? ?? 101 ?? ? 110 ?? ? 111
但其中代表網絡自身的?000?;代表廣播地址的?111?是被保留的,所以要減?2?。
5?)如何計算總主機數量,子網內主機數量?
總主機數量=子網數量×子網內主機數量
再用一個例子給大家說明,比如子網掩碼為?255.255.255.224
上面的討論知道它最多可以劃分?6?個子網,那么每個子網內最多有多少個主機呢?其實上面我已經給大家算過了,由于網絡被劃分為?6?個子網,占用了主機號的前?3?位,且是?C?類地址,則主機號只能用?5?位來表示主機號,因此子網內的主機數量=(?2?的?5?次方)-?2?=?30.
因此通過這個子網掩碼我們可以算出這個網絡最多可以標識?6*30=180?個主機(可見,在化分子網后,整個網絡所能標識的主機數量將減少)。
總結
- 上一篇: scanf family API 高级用
- 下一篇: java usecompressedcl