1. 程式人生 > >TCP/IP詳解(二) --Internet地址結構

TCP/IP詳解(二) --Internet地址結構

IP地址用於識別和定位整個Internet系統(單播地址)中裝置的網路介面。也用於識別多個介面(組播、廣播和任播地址)。

一、IP地址表示

IPv4 32位,點位法 0.0.0.0 二進位制00000000 00000000 00000000 00000000

IPv6 128位,包含8個塊,中間冒號隔開,十六進位制表示, 0:0:0:0:0:0:0:1,全0的塊可以簡寫,0:0:0:0:0:0:0:1可以簡寫成::1,一個IPv4地址中::符號只能用一次

  1. 前導0必須壓縮(例如,2001:0db8::0022 變成2001:db8::22)
  2. ::只能用於影響最大的地方(壓縮最多的零)。如果多個塊中包含等長度的零,順序靠前的塊將被替換位::。
  3. a到f十六進位制數字使用小寫 IPv6也有二進位制表示,直接十六進位制轉二進位制就行(和IPv4類似)。
二、分類定址

最初定義Internet地址結果時,每個單播地址都有一個網路部分,用於識別介面使用的IP地址在哪個網路中可被發現;以及一個主機地址,用於識別網路部分給出的網路中的特定主機。

現實中不同網路可能有不同數量的主機,每臺主機都需要一個唯一的IP地址,一種劃分方式是基於當前或預計的主機數量,將不同大小的IP地址空間分配給不同的站點。

IPv4地址空間最初分為五大類。A、B、C類用於為Internet(單播地址)中的介面分配地址,以及其他一些特殊情況下使用。類由地址中的頭幾位來定義:0為A類地址,10位B類地址,110為C類等。D類地址供組播使用,E類地址保留。

Internet地址分類方法在經歷Internet增長(20世紀80年代)的第一個十年中沒有變化。此後,它開始出現規模問題,當每個新的網段被新增到Internet中,集中協調為其分配一個新的A類、B類或C類網路號變得很不方便。為解決上述問題,人們想到了子網定址。

三、子網定址

通過子網定址,一個站點被分配一個A類、B類或C類的網路號,保留一些剩餘主機號進一步用於站點內分配。該站點可能將基礎地址中的主機部分進一步劃分為一個子網號和一個主機號。

子網欄位和主機欄位的定義是由站點指定的(不是由網路號分類決定),一個站點中所有路由器和主機需要一種新的方式,以確定地址中的子網部分和其中的主機部分。

一個IPv4可能的格式: B類: 網路號(16) 子網ID(8位) 主機ID(8位) 16位的網路號集中分配,子網ID和主機ID由站點本地管理

3.1 子網掩碼 由路由器和主機使用,確定一個IP地址的網路/子網部分的結束和主機部分的開始。掩碼由一些1後跟一些0構成(二進位制形式)。例如,常見的子網掩碼:255.255.255.0 轉二進位制為11111111 11111111 11111111 00000000

根據子網掩碼獲取子網

以IPv4地址128.32.1.14為例:

地址: 10000000 00100000 00000001 00001110 128.32.1.14  
掩碼: 11111111 11111111 11111111 00000000 255.255.255.0(/24)  
結果: 10000000 00100000 00000001 00000000 128.32.1.0    

ip地址與子網掩碼進行按位與操作,以形成用於路由的地址的網路/子網識別符號(字首)。

在這個例子中,IPv4地址128.32.1.14使用長度為24的掩碼得到字首128.32.1.0/24。一個目的地址為128.32.1.14的資料報需要轉發到系統所在的子網128.32.1.0/24。(注:掩碼轉二進位制,左起連續位1的個數表示掩碼長度。)

另外,在同一站點的不同部分,可將不同長度的子網掩碼應用於相同網路號。目前,大多數主機、路由器和路由協議支援可變長度子網掩碼(VLSM)。

  • VLSM 可變長度子網掩碼 用於分割一個網路號,使每個子網支援不同數量的主機。每個路由器和主機除了IP地址,還需要配置一個子網掩碼。

3.2 廣播地址

每個IPv4子網中,一個特殊地址被保留作為子網廣播地址。廣播地址構建方式:對子網掩碼取反,並與子網中任意計算機的地址進行按位或運算。

還是以128.32.1.14為例

地址: 10000000 00100000 00000001 00001110 128.32.1.14  
掩碼: 00000000 00000000 00000000 11111111 0.0.0.255  
結果: 10000000 00100000 00000001 11111111 128.32.1.255    

上面結果顯示,子網128.32.1.0/24的子網廣播地址是128.32.1.255。

使用這種地址作為目的地的孰不包,也被稱為定向廣播。至少在理論上,這種廣播可以作為一個單獨的資料報通過Internet路由直至到達目標子網,再作為一組廣播資料報傳送給子網中所有的主機。

定向廣播是一個大問題,從安全形度來看,它們至今在Internet中任被禁用。 路由器現在預設禁止轉發定向廣播,甚至完全省略支援能力。

除了子網廣播地址,特殊用途地址255.255.255.255被保留為本地網路廣播(也稱為有限廣播),它根本不會被路由器轉發。

廣播地址通常與某些協議一起使用,例如UDP/IP或ICMP,因為這些協議不涉及TCP/IP那樣的雙方會話。 IPv6沒有任何廣播地址。廣播地址可用於IPv4中,而IPv6僅使用組播地址。

四、其他概念
  • 組播地址 標識一組主機介面,而不是單個介面。一個組所覆蓋的網路部分稱為組的範圍。常見範圍包括 節點本地(同一計算機)、鏈路本地(同一子網)、站點本地(使用於一些站點)、全球(整個Internet)和管理(用於一個網路區域內已手動配置到路由器的地址)。
  • 任播地址 任播地址是一個單播IPv4或IPv6地址,這些地址根據它所在的網路確定不同的主機。這是通過配置路由器通知Internet中多個站點有相同單播路由實現。一個任播地址不是指Internet中的一臺主機,而是對於任播地址“最合適”或“最接近”的一臺主機。

[1]TCP/IP詳解·卷1:協議 機械工業出版社