為了提高IP地址的使用效率,一個(gè)網(wǎng)絡(luò)可以劃分為多個(gè)子網(wǎng):采用借位的方式,從主機(jī)最高位開(kāi)始借位變?yōu)樾碌淖泳W(wǎng)位,剩余部分仍為主機(jī)位。這使得IP地址的結(jié)構(gòu)分為三部分:網(wǎng)絡(luò)位、子網(wǎng)位和主機(jī)位,如圖1所示。
子網(wǎng)編址使得IP地址具有一定的內(nèi)部層次結(jié)構(gòu),這種層次結(jié)構(gòu)便于IP地址分配和管理。它的使用關(guān)鍵在于選擇合適的層次結(jié)構(gòu),使得網(wǎng)絡(luò)地址既能適應(yīng)各種現(xiàn)實(shí)的物理網(wǎng)絡(luò)規(guī)模,又能充分地利用IP地址空間(即從何處分隔子網(wǎng)號(hào)和主機(jī)號(hào)來(lái)決定)。
子網(wǎng)TCP/IP網(wǎng)間網(wǎng)技術(shù)產(chǎn)生于大型主流機(jī)環(huán)境中,它能發(fā)展到今天的規(guī)模是當(dāng)初的設(shè)計(jì)者們始料未及的。網(wǎng)間網(wǎng)規(guī)模的迅速擴(kuò)展對(duì)IP地址模式的威脅并不是它不能保證主機(jī)地址的惟一性,而是會(huì)帶來(lái)兩方面的負(fù)擔(dān):第一,巨大的網(wǎng)絡(luò)地址管理開(kāi)銷(xiāo);第二,網(wǎng)關(guān)尋徑急劇膨脹。其中第二點(diǎn)尤為突出,尋徑表的膨脹不僅會(huì)降低網(wǎng)關(guān)尋徑效率(甚至可能使尋徑表溢出,從而造成尋徑故障),更重要的是將增加內(nèi)外部路徑刷新時(shí)的開(kāi)銷(xiāo),從而加重網(wǎng)絡(luò)負(fù)擔(dān)。
因此,迫切需要尋求新的技術(shù),以應(yīng)付網(wǎng)間網(wǎng)規(guī)模增長(zhǎng)帶來(lái)的問(wèn)題。仔細(xì)分析發(fā)現(xiàn),網(wǎng)間網(wǎng)規(guī)模的增長(zhǎng)在內(nèi)部主要表現(xiàn)為網(wǎng)絡(luò)地址的增減,因此解決問(wèn)題的思路集中在:如何減少網(wǎng)絡(luò)地址。于是IP網(wǎng)絡(luò)地址的多重復(fù)用技術(shù)應(yīng)運(yùn)而生。通過(guò)復(fù)用技術(shù),使若干物理網(wǎng)絡(luò)共享同一IP網(wǎng)絡(luò)地址,無(wú)疑將減少網(wǎng)絡(luò)地址數(shù)。
子網(wǎng)編址(Subnet Addressing)技術(shù),又叫子網(wǎng)尋徑(Subnetrouting),英文簡(jiǎn)稱(chēng)Subnetting,是最廣泛使用的IP網(wǎng)絡(luò)地址復(fù)用方式,目前已經(jīng)標(biāo)準(zhǔn)化,并成為IP地址模式的一部分。一般地,32位的IP地址分為兩部分,即網(wǎng)絡(luò)號(hào)和主機(jī)號(hào),分別叫做IP地址的“網(wǎng)間網(wǎng)部分”和“本地部分”。子網(wǎng)編址技術(shù)將本地部分進(jìn)一步劃分為“物理網(wǎng)絡(luò)”部分(即圖1中的子網(wǎng)部分)和“主機(jī)”部分,如圖2所示。
圖2:子網(wǎng)編址原理
其中“物理網(wǎng)絡(luò)”用于標(biāo)識(shí)同一IP網(wǎng)絡(luò)地址下的不同物理網(wǎng)絡(luò),即“子網(wǎng)”。
子網(wǎng)掩碼IP協(xié)議標(biāo)準(zhǔn)規(guī)定:每一個(gè)使用子網(wǎng)的網(wǎng)點(diǎn)都選擇一個(gè)32位的位模式,若位模式中的某位置1,則對(duì)應(yīng)IP地址中的某位為網(wǎng)絡(luò)地址(包括網(wǎng)間網(wǎng)部分和物理網(wǎng)絡(luò)號(hào))中的一位;若位模式中的某位置0,則對(duì)應(yīng)IP地址中的某位為主機(jī)地址中的一位。例如位模式“11111111 11111111 11111111
為了使用的方便,子網(wǎng)掩碼與IP地址一樣,使用“點(diǎn)分十進(jìn)制表示法”。例如B類(lèi)地址子網(wǎng)掩碼(11111111 11111111 11111111 00000000)為255.255.255.0。IP協(xié)議關(guān)于子網(wǎng)掩碼的定義提供一種有趣的靈活性,允許子網(wǎng)掩碼中的“0”和“1”位不連續(xù)。但是,這樣的子網(wǎng)掩碼給分配主機(jī)地址和理解尋徑表都帶來(lái)一定困難,并且極少的路由器支持在子網(wǎng)中使用低序或無(wú)序的位,因此在實(shí)際應(yīng)用中通常各網(wǎng)點(diǎn)采用連續(xù)方式的子網(wǎng)掩碼。如上述的255.255.255.0。
子網(wǎng)掩碼與IP地址結(jié)合使用,可以區(qū)分出一個(gè)網(wǎng)絡(luò)地址的網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)。
例如,有一個(gè)C類(lèi)地址為192.10.1.18,其缺省的子網(wǎng)掩碼為255.255.255.0,則它的網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)可按如下方法得到:
將IP地址192.10.1.18轉(zhuǎn)換為二進(jìn)制11000000 00001010 0000001 00010010;
將子網(wǎng)掩碼255.255.255.0轉(zhuǎn)換為二進(jìn)制11111111 11111111 11111111 00000000;
將兩個(gè)二進(jìn)制數(shù)邏輯與(AND)運(yùn)算后得出的結(jié)果為11000000 00001010 00000001 00000000,即網(wǎng)絡(luò)號(hào)為192.10.1.0;
將子網(wǎng)掩碼取反再與IP地址邏輯與(AND)后得到的結(jié)果即為主機(jī)部分11000000 00001010 0000001 00010010 AND 00000000 00000000 00000000 11111111,結(jié)果為00000000 00000000 00000000 00010010,結(jié)果為
在實(shí)際的網(wǎng)絡(luò)中,子網(wǎng)的劃分有一些通常用的方法,以下給出劃分子網(wǎng)和定義子網(wǎng)掩碼的例子,步驟如下。
1)將要?jiǎng)澐值淖泳W(wǎng)數(shù)目轉(zhuǎn)換為2的n次方。如要分8個(gè)子網(wǎng),則8=23。
2)取上述要?jiǎng)澐肿泳W(wǎng)數(shù)的2的n次方的冪。如23,即n=3。
3)將上一步確定的冪n按高序占用主機(jī)地址n位后轉(zhuǎn)換為十進(jìn)制。如n為3則是11100000,轉(zhuǎn)換為十進(jìn)制為224,即為最終確定的子網(wǎng)掩碼。如果是C類(lèi)網(wǎng),則子網(wǎng)掩碼為255.255.255.224;如果是B類(lèi)網(wǎng),則子網(wǎng)掩碼為255.255.224.0;如果是A類(lèi)網(wǎng),則子網(wǎng)掩碼為255.224.0.0。在這里,子網(wǎng)個(gè)數(shù)與占用主機(jī)地址位數(shù)有如下等式成立:2n=m。其中,n表示占用主機(jī)地址的位數(shù);m表示劃分的子網(wǎng)個(gè)數(shù)。根據(jù)這些原則,將一個(gè)B類(lèi)網(wǎng)絡(luò)分成4個(gè)子網(wǎng)。若我們用的網(wǎng)絡(luò)號(hào)為168.18.10,則該B類(lèi)網(wǎng)內(nèi)的主機(jī)IP地址就是168.18.10.1~168.18.10.254(因?yàn)槿?/span>
10101000 00010010 00001010 00000001~10101000 00010010 00001010 00111110
168.18.10.1~168.18.10.62
10101000 00010010 00001010 01000001~10101000 00010010 00001010 01111110
168.18.10.65~168.18.10.126
10101000 00010010 00001010 10000001~10101000 00010010 00001010 10111110
168.18.10.129~168.18.10.190
10101000 00010010 00001010 11000001~10101000 00010010 00001010 111111110
168.18.10.193~168.18.10.254
A、B、C三類(lèi)網(wǎng)絡(luò)子網(wǎng)數(shù)目與子網(wǎng)掩碼的轉(zhuǎn)換表如表1至表3所列,可供參考。
表1:A類(lèi)網(wǎng)絡(luò)子網(wǎng)數(shù)目與子網(wǎng)掩碼的轉(zhuǎn)換