子網掩碼詳解

2021-06-25 18:35:21 字數 4900 閱讀 7641

一、子網掩碼的概念及作用

子網掩碼(subnet mask)又叫網路掩碼、位址掩碼、子網路遮罩,是乙個應用於tcp/ip網路的32位二進位制值。它可以遮蔽掉ip位址中的一部分,從而分離出ip位址中的網路部分與主機部分,基於子網掩碼,管理員可以將網路進一步劃分為若干子網。它必須結合ip位址一起使用。

二、為什麼需要使用子網掩碼

在使用tcp/ip協議的兩台計算機之間進行通訊時,我們通過將本機的子網掩碼與接受方主機的ip位址進行'與'運算,即可得到目標主機所在的網路號,又由於每台主機在配置tcp/ip協議時都設定了乙個本機ip位址與子網掩碼,所以可以知道本機所在的網路號。

通過比較這兩個網路號,就可以知道接受方主機是否在本網路上。如果網路號相同,表明接受方在本網路上,那麼可以通過相關的協議把資料報直接傳送到目標主機;如果網路號不同,表明目標主機在遠端網路上,那麼資料報將會傳送給本網路上的路由器,由路由器將資料報傳送到其他網路,直至到達目的地。在這個過程中你可以看到,子網掩碼是不可或缺的!

三、如何用子網掩碼得到網路/主機位址

既然子網掩碼這麼重要,那麼它是如何分離出ip位址中的網路位址和主機位址的呢?

過程如下:

1.將ip位址與子網掩碼轉換成二進位制;

2.將二進位制形式的ip位址與子網掩碼做'與'運算,將答案化為十進位制便得到網路位址;

3.將二進位制形式的子網掩碼取'反';

4.將取'反'後的子網掩碼與ip位址做'與'運算,將答案化為十進位制便得到主機位址。

子網掩碼為:255.255.255.0

子網掩碼11111111.11111111.11111111.00000000

將兩者做'與'運算得:11000000.10101000.00000000.00000000

將其化為十進位制得:192.168.0.0

這便是上面ip的網路位址,主機位址以此類推。

小技巧:由於觀察到上面的子網掩碼為c類位址的預設子網掩碼(至於為什麼,可看後面的子網掩碼分類就明白了),便可直接看出網路位址為ip位址的前三部分,即前三個位元組,主機位址為最後一部分。

解惑:

什麼?你還是不懂?問我為什麼要做'與'運算而不是別的?其實你仔細觀察一下上面的例子就應該能明白。

'1'在做'與'運算時,儲存對應項結果,'0'在做'與'運算時,將對應項清零,利用'與'的這個特性,當管理員設定子網掩碼時,即將子網掩碼上與網路位址所對應的位都設為'1',其他位都設為'0',那麼當作'與'時,ip位址中的網路號將被保留到結果中,而主機號將被置0,這樣就解析出了網路號,解析主機號也一樣,只需先把子網掩碼取'反',再做'與'。

四、子網掩碼的分類

1)預設子網掩碼:

即未劃分子網,對應的網路號的位都置1,主機號都置0。

a類網路預設子網掩碼:255.0.0.0

b類網路預設子網掩碼:255.255.0.0

c類網路預設子網掩碼:255.255.255.0

2)自定義子網掩碼:

將乙個網路劃分為幾個子網,需要每一段使用不同的網路號或子網號,實際上我們可以認為是將主機號分為兩個部分:子網號、子網主機號。形式如下:

也就是說ip位址在劃分子網後,以前的主機號位置的一部分給了子網號,餘下的是子網主機號。

五、子網編址技術

前面幾點介紹了子網掩碼的一些知識,下面我們來看看子網劃分,不要認為子網劃分與子網掩碼沒有關係喲,子網劃分也是靠子網掩碼來實現的。

子網劃分說白了是這樣乙個事情:因為在劃分了子網後,ip位址的網路號是不變的,因此在區域網外部看來,這裡仍然只存在乙個網路,即網路號所代表的那個網路;但在網路內部卻是另外乙個景象,因為我們每個子網的子網號是不同的,當用化分子網後的ip位址與子網掩碼(注意,這裡指的子網掩碼已經不是預設子網掩碼了,而是自定義子網掩碼,是管理員在經過計算後得出的)做'與'運算時,每個子網將得到不同的子網位址,從而實現了對網路的劃分(得到了不同的位址,當然就能區別出各個子網了,有趣吧)。

子網編址技術,即子網劃分將會有助於以下問題的解決:

2)路由器中的選路表的急劇膨脹:當路由器與其他路由器交換選路表時,網際網路的負載是很高的,所需的計算量也很高;

因此,在配置區域網或其他網路時,根據需要劃分子網是很重要的,有時也是必要的。現在,子網編址技術已經被絕大多數區域網所使用。

六、如何劃分子網及確定子網掩碼

在動手劃分之前,一定要考慮網路目前的需求和將來的需求計畫。

劃分子網主要從以下方面考慮:

1、網路中物理段的數量(即要劃分的子網數量)

2、每個物理段的主機的數量

確定子網掩碼的步驟:

第一步:確定物理網段的數量,並將其轉換為二進位制數,並確定位數n。如:你需要6個子網,6的二進位制值為110,共3位,即n=3;

第三步:將子網掩碼中與主機號的前n位對應的位置置1,其餘位置置0。若n=3且為

另:由於網路被劃分為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個主機(可見,在化分子網後,整個網路所能標識的主機數量將減少)。

6)計算自定義子網ip位址範圍

通過乙個自定義子網掩碼,我們可以得到這個網路所有可能的ip位址範圍。

具體步驟:

1.寫出二進位制子網位址;

2.將子網位址化為十進位制;

3.計算子網所能容納主機數;

子網--——子網位址(二進位制)------子網位址-----實際ip範圍

1-11001010.01110000.00001010.00100000-202.112.10.32-202.112.10.33~202.112.10.62

2-11001010.01110000.00001010.01000000-202.112.10.64-202.112.10.65~202.112.10.94

3-11001010.01110000.00001010.01100000-202.112.10.96-202.112.10.97~202.112.10.126

4-11001010.01110000.00001010.10000000-202.112.10.128-202.112.10.129~202.112.10.158

5-11001010.01110000.00001010.10100000-202.112.10.160-202.112.10.161~202.112.10.190

6-11001010.01110000.00001010.11000000-202.112.10.192-202.112.10.193~202.112.10.222

主要參考**:

子網掩碼詳解

ip位址是以網路號和主機號來標示網路上的主機的,我們把網路號相同的主機稱之為本地網路,網路號不相同的主機稱之為遠端網路主機,本地網路中的主機可以直接相互通訊 遠端網路中的主機要相互通訊必須通過本地閘道器 gateway 來傳遞 資料。子網掩碼 subnet mask 又叫網路掩碼 位址掩碼,必須結合...

子網掩碼使用詳解

ip位址是以網路號和主機號來標示網路上的主機的,我們把網路號相同的主機稱之為本地網路,網路號不相同的主機稱之為遠端網路主機,本地網路中的主機可以直接相互通訊 遠端網路中的主機要相互通訊必須通過本地閘道器 gateway 來傳遞 資料。子網掩碼 subnet mask 又叫網路掩碼 位址掩碼,必須結合...

子網掩碼取反怎麼取 子網掩碼

子網掩碼是乙個32位位址,是與ip位址結合使用的一種技術。它的主要作用有兩個,一是用於遮蔽ip位址的一部分以區別網路標識和主機標識,並說明該ip位址是在區域網上,還是在遠端網上。二是用於將乙個大的ip網路劃分為若干小的子網路。使用子網是為了減少ip的浪費。因為隨著網際網路的發展,越來越多的網路產生,...