網路層(三)分類的IP地址
引言
我們把整個因特網看成是一個單一的,抽象的網路。IP地址就是給因特網上的每一臺主機(或路由器)的 每一個介面 分配一個在全世界範圍是唯一的32位的識別符號。IP地址的編址方法共經歷了分類、改進分類、無分類三個歷史階段,本文將介紹基礎的分類編址方式,以輔助後面第四、第五篇筆記介紹改進分類(子網劃分)及無分類(超網構成)
IP層次結構
層次化IP地址
以前人們打座機電話前面都要加幾位區號,你一撥前面的區號,電話交換機才知道轉到哪去。回到上圖,假設現在有一個數據包的目的地址是
192.168.1.0
,路由器收到資料包,只要看到 192.168.1
,就往第一個網段傳送了。 路由器根本不管到某一臺計算機怎麼走,他只關心到某一個網段怎麼走 。這就是將IP地址分成網路ID和主機ID的意義。
分類的IP地址結構
所謂的“分類的IP地址”就是將IP地址劃分為若干類,每一類地址都由兩個固定長度的欄位組成,其中第一個欄位是 網路號(net-id) ,它標誌主機(或路由器)所連線到的網路。 一個網路號在整個因特網範圍內是唯一的 。第二個欄位是 主機號(host-id) ,它標誌該主機(或路由器)。 一個主機號在它前面的網路號所指明的網路範圍內是唯一的 。由此可見,一個IP地址在整個網路範圍內是唯一的
這種兩級的IP地址可以記為: IP 地址 ::= { <網路號>, <主機號>} ,圖1給出了各種IP地址的網路號欄位和主機號欄位,這裡A類、B類和C類地址都是單播地址,是最常用的

由上圖可以得到以下資訊:
- A類、B類和C類地址的網路號欄位,分別是8、16和24位,而在網路號欄位的最前面有1~3位的類別號,其數值分別規定為0、10和110
- A類、B類和C類地址的主機號欄位分別為24、16和8個位元組長
- D類地址(前4位1110)用於多播(一對多通訊)
- E類地址(前四位1111)保留為以後用
A、B、C類常用地址及劃分依據
從IP地址的結構來看, IP地址並不僅僅指明一個主機,而且還指明瞭主機所連線到的網路
把IP地址劃分為A、B、C三個類別,當初是這樣考慮的, 各種網路的差異很大 ,有的網路擁有很多主機,有的網路上主機則很少。把IP地址劃分為A類、B類、C類是為了更好 滿足不同使用者的要求 。當一個單位申請到一個IP地址時,實際上是獲得了同樣網路號的一塊地址。其中具體的各個主機號則由該單位自行分配,只要做到單位管轄的範圍內無重複的主機號即可
A類地址
A類地址的網路號欄位有8位,只有7位可供使用(該欄位第一位固定為0),但可指派的網路號是126個(即127-2)。減2的原因是:第一,網路號欄位為全0的IP地址是個保留地址,意思是“本網路”。第二,網路號為127即(01111111)保留作為 本地軟體環回測試 本主機的程序之間通訊之用
若主機發送一個目的地址為環回地址(如127.x.x.x)的IP資料報,則本主機中的協議軟體就處理資料報中的資料,不會把資料報傳送到任何網路。目的地址為環回地址的IP資料報永遠不會出現在任何網路上,因為網路號為127的地址根本不是一個網路地址
A類地址的主機號佔24位,因此每一個A類網路中的最大主機號為$2^{24}-2$,即16777214。這裡減2的原因是:全0的主機號欄位表示該IP地址是“本主機”所連線到的 單個網路地址 (例如一主機IP地址為5.6.7.8,則該主機所在的網路地址就是5.0.0.0)。全1表示 所有的 (all),因此全1的主機號欄位表示該網路上的所有主機
IP地址空間共有$2^{32}$即4294976296個地址。整個A類地址空間共有$2{31}$個地址,佔有整個地址空間的50%
B類地址
B類地址的網路號欄位有16位,但前面兩位(10)已經固定了,只剩下14位可以進行分配。因為網路號欄位後面的14位無論怎樣取值也不可能出現使整個2位元組網路號欄位稱為全0或者全1,因此這裡不存在網路總數減2的問題。但實際上B類網路地址128.0.0.0是不指派的,可以指派的B類最小地址為128.1.0.0.因此B類地址可指派的網路數為$2^{14}-1$,即16383。B類地址的每一個網路上最大主機數是$2^{16}-2$,即65534,減去的是全0和全1的主機號。整個B類地址空間共約有$2^{30}$個地址,佔整個IP地址空間的25%
C類地址
C類地址有24位網路號欄位,最前面的3位是(110),還有21位可以進行分配。C類網路地址192.0.0.0也是不指派的,可以指派的C類地址最小是192.0.1.0,因此C類地址可指派的網路總數是$2^{21}-1$,即2097151.每一個C類地址最大主機數是$2^8-2$,即254。整個C類地址空間共約有229個地址,佔整個IP地址的12.5%
IP地址的指派範圍
IP地址的一些重要特點
-
IP 地址是一種分等級的地址結構。分兩個等級的好處是:
- IP 地址管理機構在分配 IP 地址時只分配網路號,而剩下的主機號則由得到該網路號的單位自行分配。這樣就 方便了IP地址的管理
- 路由器僅根據目的主機所連線的網路號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的專案數大幅度減少,從而 減小了路由表所佔的儲存空間
- 實際上 IP 地址是標誌一個主機(或路由器)和一條鏈路的介面
當一個主機同時連線到兩個網路上時,該主機就必須同時具有兩個相應的 IP 地址,其網路號 net-id 必須是不同的。這種主機稱為多歸屬主機(multihomed host)
由於一個路由器至少應當連線到兩個網路(這樣它才能將 IP 資料報從一個網路轉發到另一個網路),因此 一個路由器至少應當有兩個不同的 IP 地址
- 按照因特網的定義,一個網路是指具有相同網路號net-id的主機的集合,因此 用轉發器或網橋連線起來的若干個區域網仍為一個網路 ,因此這些區域網都具有同樣的網路號 net-id
- 在IP地址中,所有分配到網路號 net-id 的網路,不論是範圍很小的區域網,還是覆蓋很大地理範圍的廣域網,都是平等的
一個實際的例子
圖中畫出了三個區域網LAN1、LAN2、LAN3。這三個區域網通過三個路由器(R1、R2、R3)互連起來構成了一個網際網路(用虛線圓角方框表示)。其中區域網LAN2是通過網橋B互連的。圖中圓圈表示需要一個IP地址
結合上面內容及IP地址特點,我們應該注意到:
- 在 同一個區域網上的主機或路由器的IP 地址中的網路號必須是一樣的。 圖中的網路號就是 IP 地址中的 網路號欄位的值
- 路由器總是具有兩個或兩個以上的 IP 地址。 路由器的每一個介面都有一個不同網路號的 IP 地址
- 兩個路由器直接相連的介面處,可指明也可不指明 IP 地址。 如指明IP地址,則這一段連線就構成了一種只包含一段線路的特殊“網路”(如圖中N1、N2、N3)。之所以稱之為網路,因為他們有IP地址、但為了節省IP地址,對於這種僅由一段連線構成的特殊“網路”,現在常不指明 IP 地址。稱為 無編號網路 或者 無名網路
- 用網橋(它只在資料鏈路層工作)互連的網段仍然是一個區域網 ,只能有一個網路號
備註:實際可以分配的IP數量 = 可指派的網路號數量*單個網路最大主機數,以A類地址為例,(27 - 2) *(224-2),可以粗略記為$2^{31}$