基于IP協(xié)議的因特網(wǎng),目前已經(jīng)發(fā)展成為當今世界上規(guī)模最大、擁有用戶最多、資源最廣泛的通信網(wǎng)絡(luò)。IP協(xié)議也因此成為事實上的業(yè)界標準,以IP協(xié)議為基礎(chǔ)的網(wǎng)絡(luò)已經(jīng)成為通信網(wǎng)絡(luò)的主流。
本文將結(jié)合筆者的實踐經(jīng)驗和思科網(wǎng)絡(luò)技術(shù)學(xué)院CCNA課程的教學(xué)經(jīng)驗,就IP協(xié)議關(guān)于IP地址這部分內(nèi)容,進行簡要的闡述。
一、為什么要使用IP地址?
一個IP地址是用來標識網(wǎng)絡(luò)中的一個通信實體,比如一臺主機,或者是路由器的某一個端口。而在基于IP協(xié)議網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包,也都必須使用IP地址來進行標識,如同我們寫一封信,要標明收信人的通信地址和發(fā)信人的地址,而郵政工作人員則通過該地址來決定郵件的去向。
同樣的過程也發(fā)生在計算機網(wǎng)絡(luò)里,每個被傳輸?shù)臄?shù)據(jù)包也要包括的一個源IP地址和一個目的IP地址,當該數(shù)據(jù)包在網(wǎng)絡(luò)中進行傳輸時,這兩個地址要保持不變,以確保網(wǎng)絡(luò)設(shè)備總是能根據(jù)確定的IP地址,將數(shù)據(jù)包從源通信實體送往指定的目的通信實體。
目前,IP地址使用32位二進制地址格式,為方便記憶,通常使用以點號劃分的十進制來表示,如:202.112.14.1。
一個IP地址主要由兩部分組成:一部分是用于標識該地址所從屬的網(wǎng)絡(luò)號;另一部分用于指明該網(wǎng)絡(luò)上某個特定主機的主機號。
為了給不同規(guī)模的網(wǎng)絡(luò)提供必要的靈活性,IP地址的設(shè)計者將IP地址空間劃分為五個不同的地址類別,如下表所示,其中A,B,C三類最為常用:
A類0-12708位24位
B類128-1911016位16位
C類192-22311024位8位
D類224-2391110組播地址
E類240-2551111保留試驗使用
網(wǎng)絡(luò)號由因特網(wǎng)權(quán)力機構(gòu)分配,目的是為了保證網(wǎng)絡(luò)地址的全球唯一性。主機地址由各個網(wǎng)絡(luò)的管理員統(tǒng)一分配。因此,網(wǎng)絡(luò)地址的唯一性與網(wǎng)絡(luò)內(nèi)主機地址的唯一性確保了IP地址的全球唯一性。
二、劃分子網(wǎng)
為了提高IP地址的使用效率,可將一個網(wǎng)絡(luò)劃分為子網(wǎng):采用借位的方式,從主機位最高位開始借位變?yōu)樾碌淖泳W(wǎng)位,所剩余的部分則仍為主機位。這使得IP地址的結(jié)構(gòu)分為三部分:網(wǎng)絡(luò)位、子網(wǎng)位和主機位。
引入子網(wǎng)概念后,網(wǎng)絡(luò)位加上子網(wǎng)位才能全局唯一地標識一個網(wǎng)絡(luò)。把所有的網(wǎng)絡(luò)位用1來標識,主機位用0來標識,就得到了子網(wǎng)掩碼。如下圖所示的子網(wǎng)掩碼轉(zhuǎn)換為十進制之后為:255.255.255.224
子網(wǎng)編址使得IP地址具有一定的內(nèi)部層次結(jié)構(gòu),這種層次結(jié)構(gòu)便于IP地址分配和管理。
它的使用關(guān)鍵在于選擇合適的層次結(jié)構(gòu)--如何既能適應(yīng)各種現(xiàn)實的物理網(wǎng)絡(luò)規(guī)模,又能充分地利用IP地址空間(即:從何處分隔子網(wǎng)號和主機號)。
小竅門--子網(wǎng)的計算
在思科網(wǎng)絡(luò)技術(shù)學(xué)院CCNA教學(xué)和考試當中,不少同學(xué)在進行IP地址規(guī)劃時總是很頭疼子網(wǎng)和掩碼的計算?,F(xiàn)在給大家一個小竅門,可以順利的解決這個問題。
首先,我們看一個CCNA考試中常見的題型:一個主機的IP地址是202.112.14.137,掩碼是255.255.255.224,要求計算這個主機所在網(wǎng)絡(luò)的網(wǎng)絡(luò)地址和廣播地址。
常規(guī)辦法是把這個主機地址和子網(wǎng)掩碼都換算成二進制數(shù),兩者進行邏輯與運算后即可得到網(wǎng)絡(luò)地址。其實大家只要仔細想想,可以得到另一個方法:255.255.255.224的掩碼所容納的IP地址有256-224=32個(包括網(wǎng)絡(luò)地址和廣播地址),那么具有這種掩碼的網(wǎng)絡(luò)地址一定是32的倍數(shù)。而網(wǎng)絡(luò)地址是子網(wǎng)IP地址的開始,廣播地址是結(jié)束,可使用的主機地址在這個范圍內(nèi),因此略小于137而又是32的倍數(shù)的只有128,所以得出網(wǎng)絡(luò)地址是202.112.14.128。而廣播地址就是下一個網(wǎng)絡(luò)的網(wǎng)絡(luò)地址減1。而下一個32的倍數(shù)是160,因此可以得到廣播地址為202.112.14.159。可參照下圖來理解本例:
CCNA考試中,還有一種題型,要你根據(jù)每個網(wǎng)絡(luò)的主機數(shù)量進行子網(wǎng)地址的規(guī)劃和計算子網(wǎng)掩碼。這也可按上述原則進行計算。比如一個子網(wǎng)有10臺主機,那么對于這個子網(wǎng)就需要10+1+1+1=13個IP地址。(注意加的第一個1是指這個網(wǎng)絡(luò)連接時所需的網(wǎng)關(guān)地址,接著的兩個1分別是指網(wǎng)絡(luò)地址和廣播地址。)13小于16(16等于2的4次方),所以主機位為4位。而256-16=240,所以該子網(wǎng)掩碼為255.255.255.240。
如果一個子網(wǎng)有14臺主機,不少同學(xué)常犯的錯誤是:依然分配具有16個地址空間的子網(wǎng),而忘記了給網(wǎng)關(guān)分配地址。這樣就錯誤了,因為14+1+1+1=17,大于16,所以我們只能分配具有32個地址(32等于2的5次方)空間的子網(wǎng)。這時子網(wǎng)掩碼為:255.255.255.224。
三、IP地址的局限性
最初的因特網(wǎng)設(shè)計者沒有預(yù)想到網(wǎng)絡(luò)會有如此快速地發(fā)展,因此現(xiàn)在網(wǎng)絡(luò)面臨的問題都可以追溯到因特網(wǎng)發(fā)展的早期決策上,IP地址的分配更能體現(xiàn)這點。
目前使用的IPv4地址使用32位的地址,即在IPv4的地址空間中有232(4,294,967,296,約為43億)個地址可用。這樣的地址空間在因特網(wǎng)早期看來幾乎是無限的,于是便將IP地址根據(jù)申請而按類別分配給某個組織或公司,而很少考慮是否真的需要這么多個地址空間,沒有考慮到IPv4地址空間最終會被用盡。
因此,IPv4地址是按照網(wǎng)絡(luò)的大小(所使用的IP地址數(shù))來分類的,它的編址方案使用"類"的概念。A、B、C三類IP地址的定義很容易理解,也很容易劃分,但是在實際網(wǎng)絡(luò)規(guī)劃中,它們并不利于有效地分配有限的地址空間。對于A、B類地址,很少有這么大規(guī)模的公司能夠使用,而C類地址所容納的主機數(shù)又相對太少。所以有類別的IP地址并不利于有效地分配有限的地址空間,不適用于網(wǎng)絡(luò)規(guī)劃。
在這種情況下,人們開始致力于下一代因特網(wǎng)協(xié)議--IPv6的研究。由于現(xiàn)在IPv6的協(xié)議并不完善和成熟,需要長期的試驗驗證,因此,IPv4到IPv6的完全過渡將是一個比較長的過程,在過渡期間我們?nèi)匀恍枰贗Pv4上實現(xiàn)網(wǎng)絡(luò)間的互連。而在90年代初期引入了變長子網(wǎng)掩碼(VLSM)和無類域間路由(CIDR)等機制,作為目前過渡時期提高IPv4地址空間使用效率的短期解決方案起到了很大的作用。