【TCP/IP】IP地址分類和特殊IP地址
IP地址是因特網技術中的一個非常重要的概念,IP地址在IP層實現了底層網路地址的統一,使因特網的網路層地址具有全域性唯一性和一致性。IP地址含有位置資訊,反映了主機的網路連線,使因特網進行定址和路由選擇的依據。
IP地址概述
地址是標識物件所處位置的識別符號。傳輸中的資訊帶有源地址和目的地址,分別標識通訊的源結點和目的結點,即信源和信宿。目的地址是傳輸裝置為資訊進行定址的依據。
不同的物理網路技術(底層網路技術)通常具有不同的編址方式,這種差異主要表現:不同的地址結構、不同的地址長度。
在一個物理網路中,每個結點都至少有一個機器可識別的地址,該地址叫作實體地址。實體地址又稱為硬體地址、MAC地址或第二層地址。實體地址有兩個特點:不一致性、不唯一性。
- 不一致性是指不同的物理網路技術採用不同的編址方式;
- 不惟一性是指不同的物理網路中的結點的實體地址可能重複。
為了保證定址的正確性,必須確保一個網路中結點地址的惟一性。另外,不同物理網路在地址編址方式上的不統一會給定址帶來極大的不便。在進行網路互聯時首先要解決的問題是物理網路地址的統一問題。
因特網是在網路級進行互聯的,因此,因特網在網路層(IP層)完成地址的統一工作,將不同物理網路的地址統一到具有全球惟一性的IP地址上,IP層所用到的地址叫作因特網地址,又叫IP地址。
因特網採用一種全域性通用的地址格式,為全網的每一個網路和每一臺主機都分配一個IP地址,以此遮蔽物理網路地址的差異。
因特網沿用了ARPANET的思想,仍然採用層次型地址。因特網由網路聯結而成,網路由主機聯結而成。這種地址體現了網路的層次結構,便於進行定址。IP地址由網路號和主機號構成。表示為:
IP-address ::= {<Network-number>, <Host-number>}
網路號(Network-number) | 主機號(Host-number) |
其中:網路號的長度決定了整個因特網中能容納多少網路,主機號的長度決定每個網路能容納多少臺主機。
因特網的IP協議提供了一種全因特網通用的地址格式(保證一致性),並在統一管理下進行IP地址的分配(保證惟一性),確保一個地址對應一臺因特網主機(或路由器)。 由於IP地址標識了一個主機的位置(所屬的網路),當將一臺主機從一個網路移到另一個網路時必須改變這臺主機的IP地址。(一般來說)
IPv4規定,因特網地址長度為32位元(IPv6規定地址長度為128位元)。IPv4的地址空間為2^32,即4 294 967 296個IP地址。IP地址一般用點分十進位制數表示,例如202.119.84.120。這四個用點分隔的段分別對應四個位元組。IP地址也可以用二進位制(11001010 01110111 01010100 01111000)或十六進位制表示(0XCA775478)。
分類IP地址
傳統的因特網採用分類地址。IP定義了五類IP地址:A類、B類、C類、D類和E類。如下圖所示:
各類網路所佔地址空間的比例如下圖所示:
A、B和C是三個基本的類,分別代表不同規模的網路:
- A類地址:1個位元組的網路號,3個位元組的主機號,用於少量的大型網路;
- B類地址:2個位元組的網路號,2個位元組的主機號,用於中等規模的網路;
- C類地址:3個位元組的網路號,1個位元組的主機號,用於小規模的網路。
A類地址
第一個位元組的最高位固定為0,另外7位元可變的網路號可以標識128個網路(0~127),0一般不用,127用作環回地址。所以共有126個可用的A類網路。A類地址的24位元主機號可以標識1677216臺主機(2^24 =1677216)。另外,主機號為全0時用於表示網路地址,主機號為全1時用於表示廣播地址。這兩個主機號不能用來標識主機。所以,每個A類網路最多可以容納1 677 214臺主機。A類地址的第一個位元組的取值範圍為0~127。
B類地址
第一個位元組的最高2位元固定為10,另外14位元可變的網路號可以標識214=16384個網路。16位元主機號可以標識65 536臺主機,(216=65536)。由於主機號不能為全0和全1,所以,每個B類網路最多可以容納65534臺主機。B類地址的第一個位元組的取值範圍為128~191。
C類地址
第一個位元組的最高3位元固定為110,另外21位元可變的網路號可以標識221=2097152個網路。8位元主機號可以標識256臺主機(28=256),由於主機號不能為全0和全1。所以,每個C類網路最多可以容納254臺主機。C類地址的第一個位元組的取值範圍為192~223。
D類地址
D類地址用於組播(multicasting),因此,D類地址又稱為組播地址。D類地址的範圍為224.0.0.0~239.255.255.255,每個地址對應一個組,發往某一組播地址的資料將被該組中的所有成員接收。D類地址不能分配給主機。D類地址的第一個位元組的取值範圍為224~239。
有些D類地址已經分配用於特殊用途:
224.0.0.0 是保留地址、224.0.0.1 是指本子網中的所有系統、224.0.0.2 是指本子網中的所有路由器、224.0.0.9 是指執行RIPv2路由協議的路由器、224.0.0.11是指移動IP中的移動代理。
另外,還有一些D類地址留給了網路會議:
224.0.1.11 用於IETF-1-AUDIO、224.0.1.12 用於IETF-1-VIDEO
E類地址
E類地址為保留地址,可以用於實驗目的。E類地址的範圍:240.0.0.0 ~ 255.255.255.254,E類地址的第一個位元組的取值範圍為240~255。
在分類地址網路中每個網路佔用一個地址塊。各類網路地址塊的示例如下表所示:
類別 | 起始地址 | 結束地址 | 網路地址 | 主機地址範圍 | 廣播地址 |
A類 | 86.0.0.0 | 86.255.255.255 | 86.0.0.0 | 86.0.01-86.255.255.254 | 86.255.255.255 |
B類 | 188.6.0.0 | 188.6.255.255 | 188.6.0.0 | 188.6.0.1-188.6.255.254 | 188.6.255.255 |
C類 | 206.8.2.0 | 206.8.2.255 | 206.8.2.0 | 206.8.2.1-206.8.2.254 | 206.8.2.255 |
每個網路都要佔用兩個IP地址,一個用於標識網路,一個用於網路廣播。每個網路使用該網路地址塊的起始地址作為網路地址,該地址僅作為網路的標識,主要用在網路路由中。網路地址塊的結束地址被用作該網路的廣播地址。
在因特網的地址中包含了網路資訊。當一個路由器或閘道器連到多個網路上時,每個網路都會給路由器或閘道器分配一個IP地址,裝置有多少個網路連線,就有多少個IP地址。而且這些IP地址分別屬於不同的網路。一臺主機也可以連線多個網路,這種主機叫作多宿主主機(Multi-homed Host)。多宿主主機擁有多個IP地址,每個地址對應於一個物理連線。下圖是一個多宿主主機的例子:
因特網地址的本質是標識主機的網路連線。
因特網地址是由中央管理機構進行分配的。一個組織加入因特網時,從因特網的網路資訊中心InterNIC獲得網路字首,然後負責組織內部的地址分配。這樣,既解決了全域性唯一性問題,又分散了管理負擔。
特殊IP地址
在IP地址中有一些並不是來標註主機的,這些地址具有特殊的意義。這些地址包括網路地址、直接廣播地址、受限廣播地址、本網路地址、環回地址等。
網路地址
因特網上的每個網路都有一個IP地址,其主機號部分為“0”。
網路地址的一般表示式為:
{<Network-number>,<Host-number>}={<Network-number>,0}
該地址用於標識網路,不能分配給主機,因此不能作為資料的源地址和目的地址。
- A類網路的網路地址為:Network-number.0.0.0。例如,120.0.0.0;
- B類網路的網路地址為:Network-number.0.0。例如,139.22.0.0;
- C類網路的網路地址為:Network-number.0。例如,203.120.16.0。
直接廣播地址
直接廣播(Direct Broadcast Address):向某個網路上所有的主機發送報文。TCP/IP規定,主機號各位全部為“1”的IP地址用於廣播,叫作廣播地址。路由器在目標網路處將IP直接廣播地址對映為物理網路的廣播地址,乙太網的廣播地址為6個位元組的全“1”二進位制位,即:ff:ff:ff:ff:ff:ff 。
直接廣播地址的一般表示式為:
{<Network-number>,<Host-number>}={<Network-number>, -1}
這裡的“-1”表示全“1”。
直接廣播地址只能作為目的地址。
- A類網路的直接廣播地址為:Network-number.255.255.255。例如,120.255.255.255;
- B類網路的直接廣播地址為:Network-number.255.255。例如,139.22.255.255;
- C類網路的直接廣播地址為:Network-number.255。例如,203.120.16.255。
受限廣播地址
直接廣播要求傳送方必須知道信宿網路的網路號。但有些主機在啟動時,往往並不知道本網路的網路號,這時候如果想要向本網路廣播,只能採用受限廣播地址(Limited Broadcast Address)。
受限廣播地址是在本網路內部進行廣播的一種廣播地址。TCP/IP規定,32位元全為“1”的IP地址用於本網路內的廣播。
受限廣播地址的一般表示式為:
{<Network-number>,<Host-umber>}={-1, -1}
其點分十進位制表示為:255.255.255.255。
受限廣播地址只能作為目的地址。
路由器隔離受限廣播,不對受限廣播分組進行轉發。也就是說因特網不支援全網路範圍的廣播。
本網路地址
TCP/IP協議規定,網路號各位全部為“0”時表示的是本網路。本網路地址分為兩種情況:本網路特定主機地址和本網路本主機地址。
本網路特定主機地址的一般表示式為:
{<Network-number>,<Host-number>}={0, <Host-number>}
本網路特定主機地址只能作為源地址。
本網路本主機地址的一般表示式為:
{<Network-number>,<Host-number>}={0, 0}
本網路本主機地址的點分十進位制表示為:0.0.0.0。
本網路本主機地址只能作為源地址。
無盤工作站啟動時沒有IP地址,此時採用網路號和主機號都為“0”的本網路本主機地址作為源地址。
環回地址
環回地址(Loopback Address)是用於網路軟體測試以及本機程序之間通訊的特殊地址。
A類網路地址127.X.X.X被用作環回地址。
環回地址的一般表示式為:
{<Network-number>,<Host-number>}={127, <any>}
習慣上採用127.0.0.1作為環回地址,命名為localhost。
當使用環回地址作為目標地址傳送資料時,資料將不會被髮送到網路上,而是在資料離開網路層時將其回送給本機的有關程序。
環回介面對IP資料報的處理過程,如下圖所示:
在傳送IP資料時,首先要判別該資料報的目的IP地址是否為環回地址,如果是環回地址,則直接將IP資料報放入IP輸入佇列實現環回。對於直接以本機地址作為目的地址的IP資料包也要會送給本機。對於廣播或組播資料報,則在會送給本機的同時還要向網路傳送。