子網掩碼介紹
子網掩碼(subnet mask)是每個使用互聯網的人必須要掌握的基礎知識,只有掌握它,才能夠真正理解TCP/IP協議的設置。
子網掩碼——屏蔽一個IP地址的網絡部分的“全1”比特模式。對于A類地址來說,默認的子網掩碼是255.0.0.0;對于B類地址來說默認的子網掩碼是255.255.0.0;對于C類地址來說默認的子網掩碼是255.255.255.0。
利用子網掩碼可以把大的網絡劃分成子網,即VLSM(可變長子網掩碼),也可以把小的網絡歸并成大的網絡即超網。
子網掩碼構成
要想理解什么是子網掩碼,就不能不了解IP地址的構成。互聯網是由許多小型網絡構成的,每個網絡上都有許多主機,這樣便構成了一個有層次的結構。IP地址在設計時就考慮到地址分配的層次特點,將每個IP地址都分割成網絡號和主機號兩部分,以便于IP地址的尋址操作。
IP地址的網絡號和主機號各是多少位呢?如果不指定,就不知道哪些位是網絡號、哪些是主機號,這就需要通過子網掩碼來實現。
子網掩碼規則
子網掩碼的設定必須遵循一定的規則。與二進制IP地址相同,子網掩碼由1和0組成,且1和0分別連續。子網掩碼的長度也是32位,左邊是網絡位,用二進制數字“1”表示,1的數目等于網絡位的長度;右邊是主機位,用二進制數字“0”表示,0的數目等于主機位的長度。這樣做的目的是為了讓掩碼與ip地址做按位與運算時用0遮住原主機數,而不改變原網絡段數字,而且很容易通過0的位數確定子網的主機數(2的主機位數次方-2,因為主機號全為1時表示該網絡廣播地址,全為0時表示該網絡的網絡號,這是兩個特殊地址)。只有通過子網掩碼,才能表明一臺主機所在的子網與其他子網的關系,使網絡正常工作。
子網掩碼的作用
子網掩碼是一個32位地址,是與IP地址結合使用的一種技術。它的主要作用有兩個,一是用于屏蔽IP地址的一部分以區別網絡標識和主機標識,并說明該IP地址是在局域網上,還是在遠程網上。二是用于將一個大的IP網絡劃分為若干小的子網絡。
使用子網是為了減少IP的浪費。因為隨著互聯網的發展,越來越多的網絡產生,有的網絡多則幾百臺,有的只有區區幾臺,這樣就浪費了很多IP地址,所以要劃分子網。使用子網可以提高網絡應用的效率。
通過IP 地址的二進制與子網掩碼的二進制進行與運算,確定某個設備的網絡地址和主機號,也就是說通過子網掩碼分辨一個網絡的網絡部分和主機部分。子網掩碼一旦設置,網絡地址和主機地址就固定了。子網一個最顯著的特征就是具有子網掩碼。與IP地址相同,子網掩碼的長度也是32位,也可以使用十進制的形式。例如,為二進制形式的子網掩碼:1111 1111.1111 1111.1111 1111.0000 0000,采用十進制的形式為:255.255.255.0。
通過計算機的子網掩碼判斷兩臺計算機是否屬于同一網段的方法是,將計算機十進制的IP地址和子網掩碼轉換為二進制的形式,然后進行二進制“與”(AND)計算(全1則得1,不全1則得0),如果得出的結果是相同的,那么這兩臺計算機就屬于同一網段。
子網掩碼怎么計算
IP地址是32位的二進制數值,用于在TCP/IP通訊協議中標記每臺計算機的地址。通常我們使用點式十進制來表示,如192.168.0.5等等。
每個IP地址又可分為兩部分。即網絡號部分和主機號部分:網絡號表示其所屬的網絡段編號,主機號則表示該網段中該主機的地址編號。按照網絡規模的大小,IP地址可以分為A、B、C、D、E五類,其中A、B、C類是三種主要的類型地址,D類專供多目傳送用的多目地址,E類用于擴展備用地址。A、B、C三類IP地址有效范圍如下表:
隨著互連網應用的不斷擴大,原先的IPv4的弊端也逐漸暴露出來,即網絡號占位太多,而主機號位太少,所以其能提供的主機地址也越來越稀缺,目前除了使用NAT在企業內部利用保留地址自行分配以外,通常都對一個高類別的IP地址進行再劃分,以形成多個子網,提供給不同規模的用戶群使用。
這里主要是為了在網絡分段情況下有效地利用IP地址,通過對主機號的高位部分取作為子網號,從通常的網絡位界限中擴展或壓縮子網掩碼,用來創建某類地址的更多子網。但創建更多的子網時,在每個子網上的可用主機地址數目會比原先減少。
子網掩碼是標志兩個IP地址是否同屬于一個子網的,也是32位二進制地址,其每一個為1代表該位是網絡位,為0代表主機位。它和IP地址一樣也是使用點式十進制來表示的。如果兩個IP地址在子網掩碼的按位與的計算下所得結果相同,即表明它們共屬于同一子網中。
在計算子網掩碼時,我們要注意IP地址中的保留地址,即“ 0”地址和廣播地址,它們是指主機地址或網絡地址全為“ 0”或“ 1”時的IP地址,它們代表著本網絡地址和廣播地址,一般是不能被計算在內的。
子網掩碼怎么計算實例
下面就來以實例來說明子網掩碼的算法:
對于無須再劃分成子網的IP地址來說,其子網掩碼非常簡單,即按照其定義即可寫出:如某B類IP地址為 10.12.3.0,無須再分割子網,則該IP地址的子網掩碼為255.255.0.0。如果它是一個C類地址,則其子網掩碼為 255.255.255.0。其它類推,不再詳述。下面我們關鍵要介紹的是一個IP地址,還需要將其高位主機位再作為劃分出的子網網絡號,剩下的是每個子網的主機號,這時該如何進行每個子網的掩碼計算。
一、利用子網數來計算
在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。
1)將子網數目轉化為二進制來表示
2)取得該二進制的位數,為 N
3)取得該IP地址的類子網掩碼,將其主機地址部分的的前N位置 1 即得出該IP地址劃分子網的子網掩碼。
如欲將B類IP地址168.195.0.0劃分成27個子網:
1)27=11011
2)該二進制為五位數,N = 5
3)將B類地址的子網掩碼255.255.0.0的主機地址前5位置 1,得到 255.255.248.0
即為劃分成 27個子網的B類IP地址 168.195.0.0的子網掩碼。
二、利用主機數來計算
1)將主機數目轉化為二進制來表示
2)如果主機數小于或等于254(注意去掉保留的兩個IP地址),則取得該主機的二進制位數,為 N,這里肯定 N《8。如果大于254,則 N》8,這就是說主機地址將占據不止8位。
3)使用255.255.255.255來將該類IP地址的主機地址位數全部置1,然后從后向前的將N位全部置為 0,即為子網掩碼值。
如欲將B類IP地址168.195.0.0劃分成若干子網,每個子網內有主機700臺:
1) 700=1010111100
2)該二進制為十位數,N = 10
3)將該B類地址的子網掩碼255.255.0.0的主機地址全部置 1,得到255.255.255.255
然后再從后向前將后 10位置0,即為: 11111111.11111111.11111100.00000000
即255.255.252.0。這就是該欲劃分成主機為700臺的B類IP地址 168.195.0.0的子網掩碼。
下面列出各類IP地址所能劃分出的所有子網,其劃分后的主機和子網占位數,以及主機和子網的(最大)數目,注意要去掉保留的IP地址(即劃分后有主機位或子網位全為“0”或全為“1”的):
A類IP地址:
B類IP地址:
C類IP地址:
再根據CCNA中會出現的題目給大家舉個例子: 首先,我們看一個考試中常見的題型:一個主機的IP地址是202.112.14.137,掩碼是255.255.255.224,要求計算這個主機所在網絡的網絡地址和廣播地址。
常規辦法是把這個主機地址和子網掩碼都換算成二進制數,兩者進行邏輯與運算后即可得到網絡地址。其實大家只要仔細想想,可以得到另一個方法:255.255.255.224的掩碼所容納的IP地址有256-224=32個(包括網絡地址和廣播地址),那么具有這種掩碼的網絡地址一定是32的倍數。而網絡地址是子網IP地址的開始,廣播地址是結束,可使用的主機地址在這個范圍內,因此略小于137而又是32的倍數的只有128,所以得出網絡地址是202.112.14.128。而廣播地址就是下一個網絡的網絡地址減1。而下一個32的倍數是160,因此可以得到廣播地址為202.112.14.159。可參照下表來理解本例。
子網絡 2進制子網絡域數 2進制主機域數的范圍 2進制主機域數的范圍
CCNA考試中,還有一種題型,要你根據每個網絡的主機數量進行子網地址的規劃和計算子網掩碼。這也可按上述原則進行計算。比如一個子網有10臺主機,那么對于這個子網需要的IP地址是:
10+1+1+1=13
注意:加的第一個1是指這個網絡連接時所需的網關地址,接著的兩個1分別是指網絡地址和廣播地址。因為13小于16(16等于2的4次方),所以主機位為4位。而
256-16=240
所以該子網掩碼為255.255.255.240。
如果一個子網有14臺主機,不少人常犯的錯誤是:依然分配具有16個地址空間的子網,而忘記了給網關分配地址。這樣就錯誤了,因為:
14+1+1+1=17
17大于16,所以我們只能分配具有32個地址(32等于2的5次方)空間的子網。這時子網掩碼為:255.255.255.224。
評論
查看更多