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