朱小艷 梁勝彬
摘要:子網(wǎng)劃分是解決計算網(wǎng)絡(luò)地址合理分配以及充分利用的一項技術(shù)。利用該技術(shù)可以減少網(wǎng)絡(luò)中廣播域。根據(jù)子網(wǎng)劃分原理,該文研究了子網(wǎng)劃分計算算法,算法用C語言在TC2.0編譯環(huán)進行境下編寫,實驗結(jié)果表明,該算法能有效地實現(xiàn)子網(wǎng)劃分。
關(guān)鍵詞:子網(wǎng)劃分;子網(wǎng)掩碼;C語言
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2012)22-5324-03
Research Based on the IP address subnetting algorithm
ZHU Xiao-yan , LIANG Sheng-bin
(Software College of Henan University, Zhengzhou 450064, China)
Abstract: Subnet partition is a technology which solves the network address allocation and make full use of it . Using this technology can reduce the network broadcast domain. According to the subnet partition principle, this paper presents a network partitioning algorithm and the algorithm is edited in TC2.0 compiler environment using C language. The result indicates that the algorithm can realize subnet partition effectively.
Key words: division of subnet; subnet mask; C language
隨著互聯(lián)網(wǎng)的普及和應(yīng)用,IP地址資源成為人們考慮的一個重要內(nèi)容。子網(wǎng)劃分是網(wǎng)絡(luò)工程中必不可少的工作,對網(wǎng)絡(luò)地址進行合理劃分,能夠充分利用和系統(tǒng)管理網(wǎng)絡(luò)地址。該文所指的子網(wǎng)劃分是以TCP/IP網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的,實現(xiàn)在第三層協(xié)議上,用于路由器上的地址分配以及虛擬局域網(wǎng)劃分。
在子網(wǎng)劃分中往往涉及到網(wǎng)絡(luò)地址的計算,該文所提出的子網(wǎng)劃分算法解決了相應(yīng)的計算問題。該算法針對IP地址進行子網(wǎng)劃分,對于面向從事網(wǎng)絡(luò)設(shè)計、網(wǎng)絡(luò)管理和網(wǎng)絡(luò)維護的用戶,能夠有效的提高網(wǎng)絡(luò)工程師的工作效率。
1 TCP/IP子網(wǎng)地址分配概述
1.1 TCP/IP尋址基礎(chǔ)
IP地址是用于TCP/IP協(xié)議中網(wǎng)際層對應(yīng)于OSI參考模型第三層(網(wǎng)絡(luò)層)尋址(又稱邏輯地址)。該文主要研究IPv4尋址。
IPv4地址長度是32bit,為了便于地址讀寫,將其分成4個字節(jié)(稱為8位位組),每個字節(jié)之間用句點隔開。將這4組二進制表示稱十進制,這種表示格式稱為點分十進制,如:32bit全1的IP地址表示為:255.255.255.255。
IP地址有兩個組建:網(wǎng)絡(luò)號和主機號。網(wǎng)絡(luò)號對應(yīng)于網(wǎng)絡(luò)組件,定義了設(shè)備位于網(wǎng)絡(luò)中的哪個網(wǎng)段;主機組件定義特定網(wǎng)段上的具體設(shè)備。每個網(wǎng)絡(luò)都又兩個保留地址:一個作為網(wǎng)絡(luò)號,另一個作為定向廣播地址(網(wǎng)絡(luò)中最后一個地址)。
通過網(wǎng)絡(luò)號將又IP地址分為A、B、C、D、E四類:A類地址前8位為網(wǎng)絡(luò)地址,后24位為主機地址,B類地址16位為網(wǎng)絡(luò)地址,后16位為主機地址,C類地址前24位為網(wǎng)絡(luò)地址,后8位為主機地址。網(wǎng)絡(luò)地址范圍如下所示:
種類網(wǎng)絡(luò)地址范圍
A1.0.0.0到126.0.0.0有效0.0.0.0和127.0.0.0保留
B128.1.0.0到191.254.0.0有效128.0.0.0和191.255.0.0保留
C192.0.1.0到223.255.254.0有效192.0.0.0和223.255.255.0保留
D224.0.0.0到239.255.255.255用于多點廣播
E240.0.0.0到255.255.255.254保留255.255.255.255用于廣播
1.2子網(wǎng)劃分原理
由于A類和B類網(wǎng)絡(luò)中擁有大量的主機地址:在一個A類網(wǎng)絡(luò)中最大主機地址數(shù)量為224-2,在一個B類網(wǎng)絡(luò)中最大主機地址數(shù)量為216-2。
然而,在實際應(yīng)用中一個網(wǎng)段一般為200至500臺網(wǎng)絡(luò)設(shè)備,所以在此情況下使用這兩類地址就會造成嚴重的地址浪費,從而需要將所剩余的地址利用劃分出其他較小的網(wǎng)絡(luò),這些較小的網(wǎng)絡(luò)通常稱為子網(wǎng)。子網(wǎng)的引入就是為了充分的利用網(wǎng)絡(luò)地址,并且可以高效的使用每類網(wǎng)絡(luò)的尋址。
1.3子網(wǎng)掩碼
在子網(wǎng)劃分時,最初RFC950定義了子網(wǎng)掩碼。與IP地址類似,子網(wǎng)掩碼也長度為32bit。其功能是標志所劃分的子網(wǎng)數(shù)量和每個子網(wǎng)網(wǎng)段所包含的主機地址數(shù)量,同時區(qū)分了在一個子網(wǎng)中的網(wǎng)絡(luò)地址、主機地址、定向廣播地址。
在二進制中,子網(wǎng)掩碼比特位中的1表示網(wǎng)絡(luò)組件,0表示主機組件,所有的網(wǎng)絡(luò)組件1都是連續(xù)的,并且所有的主機組件0也是連續(xù)的。
在引入子網(wǎng)掩碼后,一個IP地址有三個部分組成:網(wǎng)絡(luò)組件、主機組件、子網(wǎng)掩碼。通常用點分十進制和建網(wǎng)比特數(shù)兩種方法來表示子網(wǎng)掩碼。以一個C類網(wǎng)絡(luò)做為示范上述的兩種方法如下:
點分十進制:192.168.0.1 255.255.255.0
建網(wǎng)比特數(shù):192.168.0.1/24
2子網(wǎng)劃分算法設(shè)計
2.1子網(wǎng)劃分原理
該文設(shè)計的算法將子網(wǎng)劃分分步完成。首先是劃分的網(wǎng)絡(luò)對象,也就是所給定的網(wǎng)段的IP地址,同時也是子網(wǎng)劃分的起始地址;其次是網(wǎng)絡(luò)中最大網(wǎng)段上確實存在或?qū)⒁嬖诘闹鳈C數(shù)量,設(shè)為:Hnum,它決定了每個子網(wǎng)中所容納主機數(shù)量的上確界;最后是網(wǎng)絡(luò)中能擁有的最大網(wǎng)段數(shù)Nnum。根據(jù)用戶給出的這三個條件,該算法將按照解決方案合理劃分子網(wǎng),并且滿足用戶網(wǎng)絡(luò)需求。
3結(jié)束語
子網(wǎng)劃分是網(wǎng)絡(luò)工程中必不可少的工作,基于對實際網(wǎng)絡(luò)中子網(wǎng)劃分的分析,該文所提出了一種子網(wǎng)劃分計算算法,本算法可用TC編譯器編寫,操作簡單,實用性強,為網(wǎng)絡(luò)工程師提供了簡單易用的計算方法。
參考文獻:
[1]譚浩強.C語言程序設(shè)計[M].北京:清華大學出版社,2007.
[2]嚴蔚敏.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學出版社,2006.
[3] Richard Deal.CCNA學習指南[M].北京:人民郵電出版社,2009.
[4]謝希仁.計算機網(wǎng)絡(luò)[M].5版.北京:電子工業(yè)出版社,2008.