子網(wǎng)掩碼的兩種簡便算法
中國科技大學(xué)信息學(xué)院 濮青 2006/2/13
IP地址是32位的二進(jìn)制數(shù)值,用于在TCP/IP通訊協(xié)議中標(biāo)記每臺計算機的地址。通常我們使用點式十進(jìn)制來表示,如192.168.0.5等等。
每個IP地址又可分為兩部分。即網(wǎng)絡(luò)號部分和主機號部分:網(wǎng)絡(luò)號表示其所屬的網(wǎng)絡(luò)段編號,主機號則表示該網(wǎng)段中該主機的地址編號。按照網(wǎng)絡(luò)規(guī)模的大小,IP地址可以分為A、B、C、D、E五類,其中A、B、C類是三種主要的類型地址,D類專供多目傳送用的多目地址,E類用于擴(kuò)展備用地址。A、B、C三類IP地址有效范圍如下表:
類別 網(wǎng)絡(luò)號 /占位數(shù) 主機號 /占位數(shù) 用途
A 1~126 / 8 0~255 0~255 1~254 / 24 國家級
B 128~191 0~255 / 16 0~255 1~254 / 16 跨過組織
C 192~223 0~255 0~255 / 24 1~254 / 8 企業(yè)組織
隨著互連網(wǎng)應(yīng)用的不斷擴(kuò)大,原先的IPv4的弊端也逐漸暴露出來,即網(wǎng)絡(luò)號占位太多,而主機號位太少,所以其能提供的主機地址也越來越稀缺,目前除了使用NAT在企業(yè)內(nèi)部利用保留地址自行分配以外,通常都對一個高類別的IP地址進(jìn)行再劃分,以形成多個子網(wǎng),提供給不同規(guī)模的用戶群使用。
這里主要是為了在網(wǎng)絡(luò)分段情況下有效地利用IP地址,通過對主機號的高位部分取作為子網(wǎng)號,從通常的網(wǎng)絡(luò)位界限中擴(kuò)展或壓縮子網(wǎng)掩碼,用來創(chuàng)建某類地址的更多子網(wǎng)。但創(chuàng)建更多的子網(wǎng)時,在每個子網(wǎng)上的可用主機地址數(shù)目會比原先減少。
子網(wǎng)掩碼是標(biāo)志兩個IP地址是否同屬于一個子網(wǎng)的,也是32位二進(jìn)制地址,其每一個為1代表該位是網(wǎng)絡(luò)位,為0代表主機位。它和IP地址一樣也是使用點式十進(jìn)制來表示的。如果兩個IP地址在子網(wǎng)掩碼的按位與的計算下所得結(jié)果相同,即表明它們共屬于同一子網(wǎng)中。
在計算子網(wǎng)掩碼時,我們要注意IP地址中的保留地址,即“ 0”地址和廣播地址,它們是指主機地址或網(wǎng)絡(luò)地址全為“ 0”或“ 1”時的IP地址,它們代表著本網(wǎng)絡(luò)地址和廣播地址,一般是不能被計算在內(nèi)的。
下面就來以實例來說明子網(wǎng)掩碼的算法:
對于無須再劃分成子網(wǎng)的IP地址來說,其子網(wǎng)掩碼非常簡單,即按照其定義即可寫出:如某B類IP地址為 10.12.3.0,無須再分割子網(wǎng),則該IP地址的子網(wǎng)掩碼為255.255.0.0。如果它是一個C類地址,則其子網(wǎng)掩碼為 255.255.255.0。其它類推,不再詳述。下面我們關(guān)鍵要介紹的是一個IP地址,還需要將其高位主機位再作為劃分出的子網(wǎng)網(wǎng)絡(luò)號,剩下的是每個子網(wǎng)的主機號,這時該如何進(jìn)行每個子網(wǎng)的掩碼計算。
一、利用子網(wǎng)數(shù)來計算
在求子網(wǎng)掩碼之前必須先搞清楚要劃分的子網(wǎng)數(shù)目,以及每個子網(wǎng)內(nèi)的所需主機數(shù)目。
1)將子網(wǎng)數(shù)目轉(zhuǎn)化為二進(jìn)制來表示
2)取得該二進(jìn)制的位數(shù),為 N
3)取得該IP地址的類子網(wǎng)掩碼,將其主機地址部分的的前N位置 1 即得出該IP地址劃分子網(wǎng)的子網(wǎng)掩碼。
如欲將B類IP地址168.195.0.0劃分成27個子網(wǎng):
1)27=11011
2)該二進(jìn)制為五位數(shù),N = 5
3)將B類地址的子網(wǎng)掩碼255.255.0.0的主機地址前5位置 1,得到 255.255.248.0
即為劃分成 27個子網(wǎng)的B類IP地址 168.195.0.0的子網(wǎng)掩碼。
二、利用主機數(shù)來計算
1)將主機數(shù)目轉(zhuǎn)化為二進(jìn)制來表示
2)如果主機數(shù)小于或等于254(注意去掉保留的兩個IP地址),則取得該主機的二進(jìn)制位數(shù),為 N,這里肯定 N<8。如果大于254,則 N>8,這就是說主機地址將占據(jù)不止8位。
3)使用255.255.255.255來將該類IP地址的主機地址位數(shù)全部置1,然后從后向前的將N位全部置為 0,即為子網(wǎng)掩碼值。
如欲將B類IP地址168.195.0.0劃分成若干子網(wǎng),每個子網(wǎng)內(nèi)有主機700臺:
1) 700=1010111100
2)該二進(jìn)制為十位數(shù),N = 10
3)將該B類地址的子網(wǎng)掩碼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的子網(wǎng)掩碼。(未完,下一頁)
|