首頁 > 軟體

IP地址的分配原理

2020-06-16 16:48:01

網路模型介紹

在計算機網路中有著名的OSI七層協定體系結構,概念清楚,理論完整,但是它既複雜又不實用。TCP/IP體系結構則不同,得到的廣泛的應用。最終結合OSI和TCP/IP的優點,採用了一種只有五層協定的體系結構,本文的講述的IP都是基於五層協定模型中的網路層

OSI體系結構 TCP/IP體系結構 五層體系結構
     
7 應用層 應用層 5 應用層
6 表示層
5 對談層
4 傳輸層 傳輸層 4 傳輸層
3 網路層 網路層 3 網路層
2 資料鏈路層 網路介面層 2 資料鏈路層
1 物理層 1 物理層

分類的IP地址

IP地址的表示方法

IP地址就是給英特網上的每個主機(路由器)的每個介面分配一個在全世界範圍內是唯一的32位元的識別符號。其組成第一個欄位是網路號,第二個欄位是主機號。一個主機號在前面的網路號所指明的網路範圍內必須是唯一的,所以一個IP地址在整個網路中都是唯一的。目前分為A、B、C、D、E 五類IP地址。

  • 在A、B、C 三類地址中灰色的部分即為網路號,網路號的前三位是類別位,分別是0,10,110。也就是說我們可以憑藉這個類別位置來判斷網路類別。
  • 32位元的總長度,由於A、B、C 三類網路號的長度的不同,導致A、B、C 類地址的主機號欄位的位元組數分別為3、2、1(一個位元組8位元)。
  • D 類地址的網路號為1110,用於多播(一對多通訊)。E 類地址的網路號為1111,保留以後使用。

因此我們一般使用的就是ABC三類網路地址,IP地址是32位元的二進位制程式碼,為了提高可讀性,把32位元的IP地址中的每8位元用等效的十進位制表示出來(點分十進位制),於是我們日常生活中常見的IP地址就出現了。

例如:IP地址,128.11.3.31,轉化為二進位制為 100000000 00001011 00000011 00011111 ,可以看出類別位為 10,可以判斷為一個B類地址。

常用IP地址的指派範圍

網路號指派範圍

  • A類地址網路號佔用一個位元組,但是由於有一位是類別位,只有7位可供使用,但是由於規定,網路欄位全0是個保留欄位表示本網路,而127(01111111)是另外一個保留欄位,作為本地軟體的環回測試。我們常見的127.0.0.1表示本機,原因也是出自這裡。所以A類地址可以指派的網路號個數為(27-2).
  • B類網路地址網路號有兩個位元組,前兩位為10已經固定,只剩下14位元可用,由於這14位元無論怎麼取值都不會使得網路號為全0或者全1,單實際上規定,規定B類最小網路地址為128.1.0.0。因此B類地址可指派的網路號個數為(214-1).
  • C類地址有3個位元組的網路欄位號,前三位固定110,只有剩下21位可用,同樣C類地址可指派的最小網路地址也是192.0.1.0。因此C類地址可指派的網路號個數為(221-1).

主機號指派範圍

  • 由於主機號有規定,全0的主機號代表IP地址是“本主機”所連線到的單個網路地址(例,一主機地址為5.6.7.8,則該主機所在的網路地址為5.0.0.0),而全1則表示“所有的”,即表示該網路上的所有主機。
  • A類地址的主機號是由三個位元組,24位元組成,所以每一個A類網路中可分配的主機個數為(224-2).
  • B類地址的主機號是由兩個位元組,16位元組成,所以每一個B類網路中可分配的主機個數為(216-2).
  • C類地址的主機號是由一個位元組,8位元組成,所以每一個C類網路中可分配的主機個數為(28-2).

總結IP指派範圍

綜上網路號和主機號的指派描述可知,IP地址空間共有232個地址。
所有A類地址共有(27-2)

(224-2)個,大約231,占50%;
所有B類地址共有(214-1)(216-2)個,大約230,占25%;
所有C類地址共有(221-1)

(28-2)個,大約229,占12.5%;

網路類別最大可分配網路數首個可分配網路號最後一個可分配網路號每個網路中最大主機數
A 126(27-2) 1 126 16777214
B 16383(214-1) 128.1 191.255 65534
C 2097151(221-1) 192.0.1 223.255.255 254

  • 所以可以這樣來表示一個A類IP地址 n.x.y.z

,若1n1260x,y,z255,其中 x,y,z

  • 不同時為0也不能同時為255.
  • 所以可以這樣來表示一個B類IP地址 n.m.x.y

,若128n1910m2550x,y255,其中 I. n=128時,m0; II. x,y

  • 不同時為0也不能同時為255;
  • 所以可以這樣來表示一個C類IP地址 n.m.k.x

,若192n2230m,k2551x254,其中 當n=192時,k0

  • .

IP地址和硬體地址

從層次角度來看,硬體地址是資料鏈路層和物理層使用的地址(常稱作MAC地址),而IP地址是網路層和以上各層使用的地址,是一種邏輯地址。在網路層我們進行資料包文從IP1傳輸到IP2,無論我們中間經過多少次轉發,從網路層來看,源地址始終是IP1,目的地址始終是IP2。但是從資料鏈路層來看,顯然就不是這樣了,這些是實體地址,很有可能從源節點經過多次中間節點的實體地址的轉變才能到達目的節點。

而IP地址和實體地址的之間的轉化則需要依靠兩個重要的協定ARP(地址解析協定),RARP(逆地址解析協定)。IP地址通過ARP轉化成實體地址,實體地址可以通過RARP轉化成相應的IP地址。


子網和超網

簡單的來說就是如何來管理一個IP地址下的多台主機

子網

現在假設這樣一個場景,一個資料包起目的地址是145.13.3.10(在子網 145.13.3.0中),已經到達路由器R1(145.13.0.0),那麼這個路由器怎麼將它轉發到145.13.3.0呢?
我們並不知道目的地址是否進行了子網的劃分。
這就引出了子網掩碼的概念了,子網掩碼也是32位元,由一串1和0組成,子網掩碼中的1對應於IP地址中的網路號位置+子網網路號位置,子網掩碼中的0對應與IP地址中現在的主機號位置。
我們只要將IP地址和子網掩碼進行“與”運算,如果進行子網的劃分,就立刻得出要找的子網的網路地址,如果沒有進行子網劃分(有預設的子網掩碼),則直接能夠得出該IP地址的網路地址出來。

  • A類地址的預設子網掩碼是255.0.0.0
  • B類地址的預設子網掩碼是255.255.0.0
  • C類地址的預設子網掩碼是255.255.255.0

超網

無分類編址CIDR,使用變長的子網掩碼,可以進一步提高IP地址的資源利用率。有兩個特點
第一,消除了傳統的ABC類地址及劃分子網的概念,CIRD把32位元的IP地址劃分成為兩個部分,網路字首和剩下的部分,表示方法為,在IP地址後面加上“/”,然後寫上網路字首所佔位數。
第二,把網路字首相同的IP地址組成一個CIDR地址塊,例如,IP地址 128.14.35.7/20 用二進位制表示 100000000 00001110 00100011 00000111,所以我們很容易可以得出這塊地址中最小地址為128.14.32.0,即 100000000 00001110 00100000 00000000,最大地址為128.14.47.255,即 100000000 00001110 00101111 11111111.

為了更加方便進行路由選擇,CIDR使用32位元的地址掩碼,1的個數就是網路字首的長度,如上面所舉例中的/20的地址塊的地址掩碼是 11111111 11111111 11110000 00000000

因此可以看出,網路字首越短,其地址塊所包含的地址就越多,這樣可以根據實際情況更加有效的分配IPv4的地址空間。而由很多個CIDR地址快構成的龐大的網路就就被稱為“超網”。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-08/153659.htm


IT145.com E-mail:sddin#qq.com