整個因特網就是一個單一的、抽象的網絡。IP地址就是給因特網上的每個主機(或路由器)的每個接口分配一個在全世界範圍是惟一的32位的標識符。
IP地址的編址方法共通過了三個歷史階段。算法
將IP地址劃分爲若干個固定了,每一類地址都由兩個固定長度的字段組成,其中一個字段是網絡號,它標誌主機(或路由器)所鏈接到的網絡。一個網絡號在整個因特網範圍內必須是惟一的。第二個字段是主機號,它標誌該主機(或路由器)。一個主機號在它前面的網絡號所指明的網絡範圍內必須是惟一的。這種兩級的IP地址能夠記爲:
IP地址::={<網絡號>,<主機號>}
(1)A類、B類和C類地址的網絡號字段分別爲1,2,3字節長,而在網絡號字段的最前有1~3位的類別位,其數值粉筆規定爲0,10和110。
(2)A類、B類和C類地址的主機號字段粉筆爲3個、2個和1個字節長。
(3)D類地址(前4位時1110)用於多播(一對多通訊),E類地址保留爲之後用。
因爲已經普遍使用無分類IP地址進行路由選擇,A類、B類和C類地址的區別已成爲歷史。
IP地址都是32位的二進制代碼,爲了提升可讀性,經常把32位的IP地址中的每8位用其等效的十進制數字表示,而且在這些數字之間加上一個點,這就是點分十進制記法網絡
IP地址具備如下一些重要特色:
(1)每個IP地址都由網絡號和主機號兩部分組成。
(2)實際上IP地址是標誌一個主機(或路由器)和一條鏈路的接口。當一個主機同時鏈接到兩個網絡上時,該主機就必須同時具備兩個相應的IP地址,其網絡號必須是不一樣的。因爲一個路由器至少應當鏈接到兩個網絡,所以一個路由器至少應當有兩個不一樣的IP地址。
(3)一個網絡是指具備相同網絡號的主機的集合,所以,用轉發器或王巧鏈接其阿里的若干個局域網仍爲一個網絡,由於這些局域網都具備相同的網絡號,具備不一樣網絡號的局域網必須使用路由器進行互連。
(4)在IP地址中,全部分配到網絡號的網絡都是平等的。性能
應當注意到:
(1)在同一個局域網上的主機或路由器的IP地址中的網絡號必須是同樣的。
(2)用網橋(鏈路層)互連的網段仍然是一個局域網,只能有一個網絡號。
(3)路由器老是具備兩個或兩個以上的IP地址。即路由器的每一個接口都有一個不一樣網絡號的IP地址。
(4)當兩個路由器直接相連時,在連線兩端的接口處,能夠分配也能夠不分配IP地址3d
兩級IP地址的缺點:
(1)IP地址空間的利用率有時很低
(2)給每個物理網絡分配一個網絡號會使路由表變得很大於是使忘了性能變壞
(3)兩級IP地址不夠靈活
劃分子網的基本思路:
(1)一個擁有許多物理網絡的單位,可將所屬的物理網絡劃分爲若干個子網
(2)劃分子網的方法是從網絡的主機號借用若干位做爲子網號,固然主機號也就相應減小了一樣位數。因而兩級IP地址在本單位內部就變爲三級IP地址:網絡號、子網號和主機號。能夠用一下記法:
{<網絡號>,<子網號>,<主機號>}
(3)凡是從其餘網絡發送給本單位某個主機的IP數據報,仍然是根據IP數據報的目的網絡號找到鏈接在本單位網絡上的路由器。但此路由器在收到IP數據報後,再按目的網絡號合子網號找到目的子網,把IP數據阿伯交付給目的主機。
總之,當沒有劃分子網時,IP地址是兩級結構。劃分子網後IP地址變成了三級結構。劃分子網只是把IP地址的主機號這部分進行在劃分,而不改變IP地址原來的網絡號。blog
子網掩碼
假定有一個數據包(目的地址是145.13.3.10)已經到達了路由器R,這個路由器如何把它轉發到子網145.13.3.0呢?
路由器R紀要使用子網掩碼,它也是32位,由一串1和跟隨的一串0組成。子網掩碼中的1對應於IP地址中原來的網絡號加上子網號,而子網掩碼中的0對應於如今的主機號。
路由器R把子網掩碼和收到的數據報的目的IP地址145.13.3.10逐位相「與」,得出了索要找的子網的網絡地址145.13.3.0。
使用子網掩碼的好處就是:無論網絡有沒有劃分子網,只要把子網掩碼和IP地址進行逐位的「與」運算,就當即得出網絡地址來。這樣在路由器處理到來的分組時就可採用一樣的算法。接口
已知IP地址是141.14.72.24,子網掩碼是255.255.192.0。試求網絡地址。
解:子網掩碼是11111111 11111111 11000000 00000000。掩碼的前連個字節都是全1,所以網絡地址的前兩個字節可謝偉141.14。子網掩碼的第四字節是全0,所以網絡地址的第四字節是0.僅需對地址中的第三字節進行計算。
只要把IP地址和子網掩碼的第三字節用二進制表示,就能夠很容易得出網絡地址。
若子網掩碼該爲255.255.224.0。試求網絡地址。
用一樣的方法,能夠得出網絡地址141.14.64.0。
因此一樣的IP和不一樣的子網掩碼能夠得出相同的網絡地址。可是,不一樣的掩碼效果是不一樣的。資源
使用子網時分組的轉發
使用子網劃分後,路由表必須包含如下三項內容:目的網絡地址、子網掩碼、下一跳地址。
在劃分子網的狀況下,路由器轉發分組的算法以下:
(1)從收到的數據報的首部提取目的IP地址D
(2)先判斷是否爲直接交付。對路由器直接相連的網絡逐個進行檢查:用個網絡的子網掩碼和D逐漸位「與」,看結果是否和相應的網絡地址匹配。若匹配,則把分組進行直接交付,轉發任務結束。不然就是間接交付,執行(3)。
(3)若路由表中有目的地址爲D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;不然,執行(4)
(4)對路由器表中的每一行(目的網絡地址,子網掩碼,下一跳地址),用其中的子網掩碼和D逐位「與」,其結果爲N。若N與該行的目的網絡地址匹配,則把數據報傳送給該行指明的下一跳路由器;不然,執行(5)。
(5)若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;不然,執行(6)。
(6)報告轉發分組出錯。路由
網絡前綴
劃分子網在必定程度上緩解了因特網在發展中遇到的困難,然而因特網仍然面臨三個必須儘早解決的問題,就是:
(1)B類地址在1992年已分配了近一半,很快就將所有分配完畢。
(2)因特網主幹網上的路由表中的項目數急劇增加(從幾千個增加到幾萬個)
(3)整個IPv4的地址空間最終將所有耗盡基礎
在一個劃分子網的網絡中可同時使用幾個不一樣的子網掩碼。使用變長子網掩碼VLSM可進一步提升IP地址資源的利用率。在VLSM的基礎上又進一步研究出無分類編址方法,它的正式名字是無分類域間路由選擇CIDR。
CIDR最主要的特色有兩個:
(1)CIDR消除了傳統的A類,B類和C類地址以及劃分子網的概念。
CIDR把32位的IP地址劃分爲兩個部分,前面的部分是「網絡前綴」,用來指明網絡,後面的部分則用來指明主機。所以CIDR使IP地址從三級編址又回到兩級編址,但這已經是無分類的兩級編址,它的記法是:
{<網絡前綴>,<主機號>}
CIDR使用斜線記法,稱爲CIDR記法,即在IP地址後面加上斜線"/",而後寫上網絡前綴所佔的位數。
(2)CIDR把網絡前綴都相同的連續的IP地址組成一個CIDR地址塊,只要知道CIDR地址塊中的任何一個地址,就能夠知道這個地址塊的起始地(即最小地址)和最大地址,以及地址塊中的地址數。
例如,已知IP地址128.14.35.7/20是某CIDR地址塊中的一個地址,如今把它寫成二進制表示,其中的前20位時忘了前綴,而前綴後面的12位時主機號:
128.14.35.7/20=10000000 00001110 0010/0011 00000111
這個地址所在的最小地址和最大地址能夠很方便得出:
最小地址 128.14.32.0 10000000 00001110 0010/0000 00000000
最大地址 128.14.47.255 10000000 00001110 0010/1111 11111111路由器