子網掩碼的計算與劃分詳解

2021-03-04 01:13:06 字數 7135 閱讀 3300

一、子網掩碼的計算

tcp/ip網間網技術產生於大型主流機環境中,它能發展到今天的規模是當初的設計者們始料未及的。網間網規模的迅速擴充套件對ip位址模式的威脅並不是它不能保證主機位址的唯一性,而是會帶來兩方面的負擔:第一,巨大的網路位址管理開銷;第二,閘道器尋徑急劇膨脹。

其中第二點尤為突出,尋徑表的膨脹不僅會降低閘道器尋徑效率(甚至可能使尋徑表溢位,從而造成尋徑故障),更重要的是將增加內外部路徑重新整理時的開銷,從而加重網路負擔。

因此,迫切需要尋求新的技術,以應付網間網規模增長帶來的問題。仔細分析發現,網間網規模的增長在內部主要表現為網路位址的增減,因此解決問題的思路集中在:如何減少網路位址。

於是ip網路位址的多重復用技術應運而生。通過復用技術,使若干物理網路共享同一ip網路位址,無疑將減少網路位址數。

子網編址(sub*** addressing)技術,又叫子網尋徑(sub*** routing),英文簡稱sub***ting,是最廣泛使用的ip網路位址復用方式,目前已經標準化,並成為ip位址模式的一部分。

32位的ip位址分為兩部分,即網路號和主機號,分別把他們叫做ip位址的「網間網部分」和「本地部分」。子網編址技術將「本地部分」進一步劃分為「物理網路」部分和「主機」兩部分,其中「物理網路」部分用於標識同一ip網路位址下的不同物理網路,常稱為「掩碼位」、「子網掩碼號」,或者「子網掩碼id」,不同子網就是依據這個掩碼id來識別的。

按ip協議的子網標準規定,每乙個使用子網的網點都選擇乙個32位的位模式,若位模式中的某位置1,則對應ip位址中的某位為網路位址(包括網路部分和子網掩碼號)中的一位;若位模式中的某位置0,則對應ip位址中的某位為主機位址中的一位。

例如二進位制位模式:11111111 11111111 11111111 00000000中,前三個位元組全1,代表對應ip位址中最高的三個位元組為網路位址;後乙個位元組全0,代表對應ip位址中最後的乙個位元組為主機位址。為了使用的方便,常常使用「點分整數表示法」來表示乙個ip位址和子網掩碼,例如b類位址子網掩碼(11111111 11111111 1111111100000000)為:

255.255.25.

0。ip協議關於子網掩碼的定義提供一定的靈活性,允許子網掩碼中的「0」和「1」位不連續。但是,這樣的子網掩碼給分配主機位址和理解尋徑表都帶來一定困難,並且,極少的路由器支援在子網中使用低序或無序的位,因此在實際應用中通常各網點採用連續方式的子網掩碼。像255.

255.255.64和255.

255.255.160等一類的子網掩碼不推薦使用

子網掩碼與ip位址結合使用,可以區分出乙個網路位址的網路號和主機號。例如:有乙個c類位址為:

192.9.200.

13,按其ip位址型別,它的預設子網掩碼為:255.255.

255.0,則它的網路號和主機號可按如下方法得到:

第1步,將ip位址192.9.200.13轉換為二進位制11000000 00001001 11001000 00001101

第2步,將子網掩碼255.255.255.0轉換為二進位制11111111 11111111 11111111 00000000

第3步,將以上兩個二進位制數邏輯進行與(and)運算,得出的結果即為網路部分。「11000000 00001001 11001000 00001101」與「11111111 11111111 11111111 00000000」進行「與」運算後得到「11000000 00001001 11001000 00000000」,即「192.9.

200.0」,這就是這個ip位址的網路號,或者稱「網路位址」。

第4步,將子網掩碼的二進位制值取反後,再與ip位址進行與(and)運算,得到的結果即為主機部分。如將「00000000 00000000 00000000 11111111(子網掩碼的取值)反」與「11000000 00001001 11001000 00001101」進行與運算後得到「00000000 00000000 00000000 00001101」,即「0.0.

0.13」,這就是這個ip位址主機號(可簡化為「13」)。

二、子網掩碼的劃分

如果要將乙個網路劃分成多個子網,如何確定這些子網的子網掩碼和ip位址中的網路號和主機號呢?本節就要向大家介紹。子網劃分的步驟如下:

第1步,將要劃分的子網數目轉換為2的m次方。如要分8個子網,8=23。如果不是愉好是2的多少次方,則取大為原則,如要劃分為6個,則同樣要考慮23。

第2步,將上一步確定的冪m按高序占用主機位址m位後,轉換為十進位制。如m為3表示主機位中有3位被劃為「網路標識號」占用,因網路標識號應全為「1」,所以主機號對應的位元組段為「11100000」。轉換成十進位制後為224,這就最終確定的子網掩碼。

如果是c類網,則子網掩碼為255.255.255.

224;如果是b類網,則子網掩碼為255.255.224.

0;如果是a類網,則子網掩碼為255.224.0.

0。在這裡,子網個數與占用主機位址位數有如下等式成立:2m≥n。其中,m表示占用主機位址的位數;n表示劃分的子網個數。根據這些原則,將乙個c類網路分成4個子網。

為了說明問題,現再舉例。若我們用的網路號為192.9.

200,則該c類網內的主機ip位址就是192.9.200.

1~192.9.200.

254,現將網路劃分為4個子網,按照以上步驟:

4=22,則表示要占用主機位址的2個高序位,即為11000000,轉換為十進位制為192。這樣就可確定該子網掩碼為:192.

9.200.192。

4個子網的ip位址的劃分是根據被網路號佔住的兩位排列進行的,這四個ip位址範圍分別為:

(1)第1個子網的ip位址是從「11000000 00001001 11001000 00000001」到「11000000 00001001 11001000 00111110」,注意它們的最後8位中被網路號佔住的兩位都為「00」,因為主機號不能全為「0」和「1」,所以沒有11000000 00001001 11001000 00000000和11000000 00001001 11001000 00111111這兩個ip位址(下同)。注意實際上此時的主機號只有最後面的6位。對應的十進位制ip位址範圍為192.

9.200.1~192.

9.200.62。

而這個子網的子網掩碼(或網路位址)為 11000000 00001001 11001000 00000000,為192.9.200.

0。(2)第2個子網的ip位址是從「11000000 00001001 11001000 01000001」到「11000000 00001001 11001000 01111110」 ,注意此時被網路號所佔住的2位主機號為「01」。對應的十進位制ip位址範圍為192.9.

200.65~192.9.

200.126。對應這個子網的子網掩碼(或網路位址)為 11000000 00001001 11001000 01000000,為192.

9.200.64。

(3)第3個子網的ip位址是從「11000000 00001001 11001000 10000001」到「11000000 00001001 11001000 10111110」 ,注意此時被網路號所佔住的2位主機號為「10」。對應的十進位制ip位址範圍為192.9.

200.129~192.9.

200.190。對應這個子網的子網掩碼(或網路位址)為 11000000 00001001 11001000 10000000,為192.

9.200.128。

(4)第4個子網的ip位址是從「11000000 00001001 11001000 11000001」到「11000000 00001001 11001000 11111110」 ,注意此時被網路號所佔住的2位主機號為「11」。對應的十進位制ip位址範圍為192.9.

200.193~192.9.

200.254。對應這個子網的子網掩碼(或網路位址)為 11000000 00001001 11001000 11000000,為192.

9.200.192。

在此列出a、b、c三類網路子網數目與子網掩碼的轉換表,如表5.1所示,供參考。

表1 子網劃分與子網掩碼對應表

a類網路劃分子網數與對應的子網掩碼

子網數目占用主機號位數子網掩碼子網中可容納的主機數

2 1 255.128.0.0 8388606

4 2 255.192.0.0 4194302

8 3 255.224.0.0 2097150

16 4 255.240.0.0 1048574

32 5 255.258.0.0 524286

64 6 255.253.0.0 262142

128 7 255.254.0.0 131070

256 8 255.255.0.0 65534

b類網路劃分子網數與對應的子網掩碼

子網數目占用主機號位數子網掩碼子網中可容納的主機數

2 1 255.255.128.0 32766

4 2 255.255.192.0 16382

8 3 255.255.224.0 8190

16 4 255.255.240.0 4094

32 5 255.255.248.0 2046

64 6 255.255.252.0 1022

128 7 255.255.254.0 510

256 8 255.255.255.0 254

c類網路劃分子網數與對應的子網掩碼

子網數目占用主機號位數子網掩碼子網中可容納的主機數

2 1 255.255.255.128 126

4 2 255.255.255.192 62

8 3 255.255.255.224 30

16 4 255.255.255.240 14

32 5 255.255.255.248 6

64 6 255.255.255.252 2

三、快速計算子網掩碼的方法

最後介紹三種快速計算機子網掩碼的方法。

1. 利用子網數來計算

在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。然後按以下基本步驟進行計算:

第1步,將子網數目轉化為二進位制來表示;

第2步,取得子網數二進位制的位數(n);

第3步,取得該ip位址類的子網掩碼,然後將其主機位址部分的的前n位置「1」,即得出該ip位址劃分子網的子網掩碼。

為了便於理解,現舉例說明如下:現假如要將一b類ip位址168.195.0.0劃分成27個子網,則它的子網掩碼的計算機方法如下(對應以上各基本步驟):

第1步,首先要劃分成27個子網,「27」的二進位制為「11011」;

第2步,該子網數二進位制為五位數,即n = 5;

第3步,將該b類位址的子網掩碼255.255.0.

0的主機號前5位全部置「1」,即可得到 255.255.248.

0,這就是劃分成 27個子網的b類ip位址 168.195.0.

0的子網掩碼。

2. 利用主機數來計算

利用主機數來計算子網掩碼的方法與上類似,基本步驟如下:

第1步,將子網中需容納的主機數轉化為二進位制;

第2步,如果主機數小於或等於254(因為要去掉保留的兩個ip位址),則取得該主機的二進位制位數,為n,這裡肯定 n8,這就是說主機位址將佔據不止8位。

第3步,將255.255.255.255的主機位址位數全部置1,然後從後向前的將n位全部置為 0,即為子網掩碼值。

舉例如下。如要將一b類ip位址為168.195.0.0的網路劃分成若干子網,要求每個子網內有主機數為700臺,則該子網掩碼的計算方法如下(也是對應以上各基本步驟):

第1步,首先將子網中要求容納的主機數「700」轉換成二進位制,得到1010111100。

第2步,計算出該二進位制的位數為10位,即n = 10

第3步,將255.255.255.

255從後向前的10位全部置「0」,得到的二進位制數為「11111111.11111111.11111100.

00000000」,轉換成十進位制後即為255.255.252.

0,這就是該要劃分成主機數為700的b類ip位址 168.195.0.

0的子網掩碼。

3. 子網id增量計算法

其基本計算步驟如下:

第1步,將所需的子網數轉換為二進位制,如所需劃分的子網數為「4」,則轉換成成二進位制為00000100;

第2步,取子網數的二進位制中有效位數,即為向預設子網掩碼中加入的位數(既向主機id中借用的位數)。如前面的00000100,有效位為「100」,為3位;

第3步,決定子網掩碼。如ip位址為b類1129.20.

0.0網路,則預設子網掩碼為:255.

255.0.0,借用主機id的3位以後變為:

255.255.224(11100000)0,即將所借的位全表示為1,用作子網掩碼。

第4步,將所借位的主機id的起始位段最右邊的「1」轉換為十進位制,即為每個子網id之間的增量,如前面的借位的主機id起始位段為「11100000」,最右邊的「1」,轉換成十進位制後為25=32。

第5步,產生的子網id數為:2m-2 (m為向預設子網掩碼中加入的位數),如本例向子網掩碼中新增的位數為3,則可用子網id數為:23-2=6個;

第6步,將上面產生的子網id增量附在原網路id之後的第乙個位段,便形成第乙個子網網路id 129.20.32.0;

第7步,重複上步操作,在原子網id基礎上加上乙個子網id增量,依次類推,直到子網id中的最後位段為預設子網掩碼位用主機id位之後的最後乙個位段值,這樣就可得到所有的子網網路id。如預設子網掩碼位用主機id位之後的子網id為255.255.

224.0,其中的「224」為借用主機id後子網id的最後一位段值,所以當子網id通過以上增加增量的方法得到129.20.

224.0時便終止,不要再新增了。

子網掩碼的計算與劃分詳解

家庭網路 子網掩碼的計算與劃分詳解 一 子網掩碼的計算 tcp ip網間網技術產生於大型主流機環境中,它能發展到今天的規模是當初的設計者們始料未及的。網間網規模的迅速擴充套件對ip位址模式的威脅並不是它不能保證主機位址的唯一性,而是會帶來兩方面的負擔 第一,巨大的網路位址管理開銷 第二,閘道器尋徑急...

子網掩碼的計算與劃分詳解

子網掩碼的計算32位的ip位址分為兩部分,即網路號 和主機號,分別把他們叫做ip位址的 網間網部分 和 本地部分 子網編址技術將 本地部分 進一步劃分為 物理網路 部分和 主機 兩部分,其中 物理網路 部分用於標識同一ip網路位址下的不同物理網路,常稱為 掩碼位 子網掩碼號 或者 子網掩碼id 不同...

掌握IP位址知識子網掩碼與子網劃分

目錄 一 摘要 二 子網掩碼的概念及作用 三 為什麼需要使用子網掩碼 四 如何用子網掩碼得到網路 主機位址 五 子網掩碼的分類 六 子網編址技術 七 如何劃分子網及確定子網掩碼 八 相關判斷方法 一 摘要 近期在我的論壇中大家對子網掩碼以及子網劃分的討論比較多,因為前面也寫了關於ip位址的教程,為了...