IPv4地址表示法詳解


在TCP/IP協議中,IP地址是一個最基本的概念,本文就來參考《計算機網絡》謝希仁 這本書,總結一下IPv4地址表示法的發展階段,做個讀書筆記。

IP地址的編址方法共經過了三個歷史階段:

  1. 分類的IP地址,這是最基本的編址方法,在1981年就通過了相應的標准協議。
  2. 子網的划分,這是對最基本的編址方法的改進,其標准RFC 950在1985年通過。
  3. 無分類編址,這是比較新的無分類編址方法,1993年提出后很快就得到推廣應用。

傳統分類的IP地址

概念

傳統分類的IP地址就是將IP地址划分為若干個固定類,每一類地址都由兩個固定長度的字段組成,其中第一個字段是網絡號,它標志主機所連接到的網絡。第二個字段是主機號,它標志着該主機。

一個網絡號在整個互聯網范圍內必須是唯一的。

一個主機號在它前面的網絡號所指明的網絡范圍內必須是唯一的。

ipv4分類

這里要指出,由於近年來已經廣泛使用無分類IP地址進行路由選擇,A類、B類和C類地址的區分已成為歷史[RFC 1812]

其實還有D類(廣播地址)和E類(保留地址)本文暫不考慮。

表示

ipv4-點分十進制

幾種特殊IP

  • 網絡號全為0(00000000)

IP地址中的全0表示“這個(this)”。網絡號字段為全0的IP地址是個保留地址,意思是“本網絡”。

  • 網絡號為127(01111111)

保留作為本地環回地址,作為本主機的進程之間通信之用。

  • 主機號全為0

代表整個網絡本身,即本網段

  • 主機號為255(11111111)

為廣播地址,代表本網絡中的所有地址

0.0.0.0 和 127.0.0.1 的通俗解釋:

假設你有一台服務器,IP地址為49.233.87.25,在這台服務器上你要配置一個nginx網站。

將nginx監聽為0.0.0.0.0:80,那么互聯網上的任何人都可以在瀏覽器中訪問49.233.87.25:80,來訪問你的站點。

將nginx監聽為127.0.0.1:80,你只能在你的服務器上,用curl 127.0.0.1:80來訪問你的站點。

localhost 和 127.0.0.1

localhost 是 127.0.0.1 的域名,它倆是一個東西。

地址的指派范圍

網絡類別 最大網絡數 第一個網絡號 最后一個網絡號 網絡中的最大主機數
A類 126(2^7-2) 1 126 16777214
B類 16383(2^14-1) 128.1 191.255 65534
C類 2097151(2^21-1) 192.0.1 223.225.225 254

問題

  • IP地址空間的利用率有時很低

每一個A類地址網絡可連接的主機數超過1000萬台,而每一個B類地址網絡可連接的主機數也超過6萬台。然而有些網絡對連接在網絡上的計算機數目有限制,根本達不到這樣大的數值。

有的單位申請到了一個B類地址網絡,但所連接的主機數並不多,可是又不願意申請一個足夠使用的C類地址,理由是考慮到今后可能的發展

  • 給每一個物理網絡分配一個網絡號會使路由表變得太大因而使網絡性能變壞

每一個路由器都應當能夠從路由表查出應怎樣到達其他網絡的下一跳路由器。因此,互聯網中的網絡數越多,路由器的路由表的項目數也就越多

  • 兩級IP地址不夠靈活

有時情況緊急,一個單位需要在新的地點馬上開通一個新的網絡。但是在申請到一個新的IP地址之前,新增加的網絡是不可能連接到因特網上工作的。

子網的划分

為解決上述問題,從1985年起在IP地址中又增加了一個“子網號字段”,使兩級IP地址變成為三級IP地址,它能夠較好地解決上述問題,並且使用起來也很靈活。這種做法叫作划分子網

基本思路

  • 內部可見,外部不變

一個擁有許多物理網絡的單位,可將所屬的物理網絡划分為若干個子網。划分子網純屬一個單位內部的事情。本單位以外的網絡看不見這個網絡是由多少個子網組成,因為這個單位對外仍然表現為一個網絡。

  • IP地址 = 網絡號 + 子網號 + 主機號

划分子網的方法是,從該網絡的主機號中借用幾位作為子網號,當然主機號也就相應的減少幾位。

  • 先找網絡號,再找子網號

凡是從其他網絡發送給本單位某個主機的IP數據報,仍然是根據IP數據報的目的網絡號找到連接在本單位網絡上的路由器。但此路由器在收到IP數據報后,再按子網號找到目的子網,把IP數據報交付目的主機。

示例

假設某單位有一個B類地址,網絡地址為145.13.0.0,即表示凡目的地址為145.13.x.x的數據報都被送到這個網絡上的路由器R1

這里假定子網號占用8位,即主機號還剩余8位可用。將網絡划分為三個子網,145.13.3.0,145.13.7.0,145.13.21.0

子網划分外部圖

子網划分內部圖

子網掩碼

現在有一個問題就是,假設有一個目的地址為145.13.3.10的數據報轉發到了路由器R1,哪R1如何將其轉發到子網145.13.3.0呢?

由於32位的IP地址本身以及數據報的首部都沒有包含任何有關子網划分的信息,所以為了解決上述問題,必須引入額外信息,這就是子網掩碼。

子網掩碼

IP地址和子網掩碼按位與(AND),即可得到網絡號。

現在因特網的標准規定:所有的網絡都必須使用子網掩碼,同時在路由器的路由表中也必須有子網掩碼這一欄。

如果一個網絡不划分子網,那么該網絡的子網掩碼就使用默認子網掩碼。默認子網掩碼中1的位置和IP地址中的網絡號字段正好相對應。

A類地址,默認子網掩碼 255.0.0.0

B類地址,默認子網掩碼 255.255.0.0

C類地址,默認子網掩碼 255.255.255.0

路由轉發

要注意,使用子網划分后,路由表必須包含以下三項:目的網絡地址子網掩碼,和下一跳地址

路由轉發

源主機H1(128.30.33.13)向目的主機H2(128.30.33.138)發送數據時的過程如下:

  1. 目的IP地址與網絡1的子網掩碼按位與得到128.30.33.128,不等於網絡1的地址128.30.33.0,即H1和H2不在同一個子網內,所以數據轉發給路由器R1
  2. R1收到數據報后,逐行檢查路由表,最終發現128.30.33.138和255.255.255.128按位與,得到128.30.33.128,匹配第二行,所以R1將數據報從接口1直接交付給目的主機H2

問題

划分子網在一定程度上緩解了因特網在發展中遇到的困難。但是在1992年因特網依舊遇到如下問題:

  1. B類地址在1992年已分配了近一半,眼看很快就將全部分配完畢!
  2. 因特網主干網上的路由表中的項目數急劇增長(從幾千個增長到幾萬個)。

無分類編址CIDR

概念

CIDR消除了傳統的A類、B類和C類地址以及划分子網的概念,把32位的IP地址划分為兩個部分,前面是網絡前綴,用來指明網絡,后面的部分用來指明主機。CIDR是無分類的兩級編址,IP地址 = 網絡前綴 + 主機號

CIDR計法在IP地址后面加上斜線“/”,然后寫上網絡前綴所占的位數

地址塊

CIDR把網絡前綴都相同的連續的IP地址組成一個“CIDR地址塊”,我們只要知道地址塊中的任何一個地址,就可以知道這個地址塊的起始地址和最大地址,以及地址塊中的地址數。

舉例:

已知128.14.35.7/20是某CIDR地址塊中的一個地址

128.14.35.7/20 = 10000000000011100010001100000111

可知:

最小地址:128.14.32.0 = 10000000000011100010000000000000

最大地址:128.14.47.255 = 10000000000011100010111111111111

地址數:2^12個

地址掩碼

為了更方便地進行路由選擇,CIDR使用32位的地址掩碼,地址掩碼由一串1和一串0組成,而1的個數就是網絡前綴的長度。

例如,/20地址塊的地址掩碼是:11111111 11111111 11110000 00000000(20個連續的1)

注意:雖然CIDR不再使用子網,但是由於目前一些網絡還使用子網划分和子網掩碼,因此CIDR使用的地址掩碼也可以繼續稱為子網掩碼。

“CIDR不使用子網”是指CIDR並沒有在32位地址中指明若干位作為子網字段。但分配到一個CIDR地址塊的單位,仍然可以在本單位內根據需要划分出一些子網。

這些子網也都只有一個網絡前綴和一個主機號字段,但子網的網絡前綴比整個單位的網絡前綴要長些。

例如,某單位分配到地址塊/20,就可以再繼續划分為8個子網(即需要從主機號中借用3位來划分子網)。這時每一個子網的網絡前綴就變成23位(原來的20位加上從主機號借來的3位),比該單位的網絡前綴多了3位。

地址聚合

構成超網

超網划分

如上圖所示,假定某ISP擁有地址塊206.0.64.0/18(相當於有64個C類網絡)

ISP可以給該大學分配一個地址塊206.0.68.0/22(相當於有4個C類網絡)

這個大學然后可自由地對本校的各系分配地址塊

而各系還可再划分本系的地址塊

CIDR的地址塊分配有時不易看清,這是因為網絡前綴和主機號的界限不是恰好出現在整數字節處,只要寫出二進制表示形式,就清晰了

從上圖就可以清楚地看出地址聚合的概念。這個ISP共擁有64個C類網絡。如果不采用CIDR技術,則在與該ISP的路由器交換路由信息的每一個路由器的路由表中,就需要有64個項目。(如第二節中的R1路由器,路由表中就有三個子網的信息)

但采用地址聚合后,就只需用路由聚合后的一個項目206.0.64.0/18就能找到該ISP。(即構成超網)

最長前綴匹配

在CIDR中,由於采用了網絡前綴這種記法,IP地址由網絡前綴和主機號這兩部分組成。因此路由表的每條記錄由網絡前綴下一跳組成。

但是,在查找路由表的時候,可能有多條記錄匹配,應當從匹配結果中選擇具有最長網絡前綴的路由,即最長前綴匹配。

參考資料

《計算機網絡》謝希仁 編著

B類地址第一個可分派的網絡號為什么不是128.0?

Special-Use IPv4 Addresses


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM