5.【IP基礎】

        IP是Internet Protocol的縮寫,網絡協議,本身是一個協議文件(IETE RFC791)的名稱,協議文件的內容很少,主要是定義和闡釋了 IP報文的格式。平時所說的IP,泛指直接或者間接與IP協議相關的東西。

IP協議有版本之分,兩個最重要的版本分別是IPv4(IP version 4)和IPv6(IP version 6).

5.1 有類編址

爲什麼MAC地址不能用來通信?

如果使用MAC地址來作爲全球範圍內的網絡通信地址,那麼傳遞信息的網絡設備需要每時每刻知道所有在用MAC地址以及他們各自的位置信息,這是不合實際的。也就是說,MAC地址是不帶位置信息的。

          當我們說,給某臺設備分配一個IP地址,實際上是指給這臺設備的某個接口分配一個IP地址,設備有多個接口時,通常是每個接口都需要一個IP地址。需要IP地址的接口通常是路由器和計算機的接口,交換機的接口(端口)通常不需要IP地址。

在談及IP地址的分配問題時,常把路由器和計算機統稱爲“主機(Host)”,把主機的某個或者某些接口的IP地址簡稱爲“主機IP地址”

IP地址長度是32個比特,也就是4個字節。爲了閱讀和書寫方便,通常採用點分十進制數來表示。例如11.1.0.254  寫成32位比特形式是:00001011 00000001 00000000 11111110

IP地址統一由 ICANN(Internet Corporation for Assigned Named and Numbers)互聯網名稱與數字地址分配機構。

IP地址在Internet具有全球唯一性。

最初設計互聯網絡時,爲了便於尋址以及層次化構造網絡,IP地址採用分層結構,每個IP地址包括兩個標識碼(ID),即網絡位和主機ID。同一個物理網絡上的所有主機都使用同一個網絡ID,網絡上的一個主機(包括網絡上工作站,服務器和路由器等)有一個主機ID與其對應。IP地址根據網絡ID的不同分爲5種類型,A類地址、B類地址、C類地址、D類地址和E類地址。

1. A類IP地址 
一個A類IP地址由1字節的網絡地址和3字節主機地址組成,網絡地址的最高位必須是“0”, 地址範圍從0.0.0.0 到127.255.255.255。子網掩碼爲255.0.0.0。可用的A類網絡有126個,每個網絡能容納1億多個主機。 
2. B類IP地址 
一個B類IP地址由2個字節的網絡地址和2個字節的主機地址組成,網絡地址的最高位必須是“10”,地址範圍從128.0.0.0到191.255.255.255。子網掩碼爲255.255.0.0。可用的B類網絡有16382個,每個網絡能容納6萬多個主機 。 
3. C類IP地址 
一個C類IP地址由3字節的網絡地址和1字節的主機地址組成,網絡地址的最高位必須是“110”。範圍從192.0.0.0到223.255.255.255。子網掩碼爲255.255.255.0。C類網絡可達209萬餘個,每個網絡能容納254個主機。 
4. D類地址用於多點廣播(Multicast)。 
D類IP地址第一個字節以“1110”開始,它是一個專門保留的地址。它並不指向特定的網絡,目前這一類地址被用在多點廣播(Multicast)中。多點廣播地址用來一次尋址一組計算機,它標識共享同一協議的一組計算機。 
5. E類IP地址 

某IP地址爲192.168.5.0/24,這是一種基於CIDR劃分的IP地址,最後的/24表示前24位是網絡號,後8位是主機號。同時也表示掩碼爲24位,即子網掩碼爲255.255.255.0,使用2進制排列就是11111111.11111111.11111111.00000000,根據掩碼算術,使用IP地址與掩碼邏輯與,即爲網絡地址。 

5.2 無類編址

顧名思義,不限制網絡號和主機號的位數,可以提高IP地址的利用率。

通常可以這樣來規劃和劃分IP地址:假設一個組織所需的主機IP地址的數量爲N,我們可以通過計算確定出大於等於N+2的最小的2的冪,然後以冪的值作爲主機號的位數,餘下的位全部作爲網絡位。

假如,我需要4000個IP地址,4000+2 = 4002, 2的12次是4096, 2的11次是2048。所以,主機號的位數就是12位,剩下的作爲網絡位。

問題來了,採用無類編址方式時,如何判斷出一個IP地址所屬網絡的網絡號呢?---子網掩碼

1、子網掩碼的作用

在設置電腦IP時,會碰到兩個重要的參數,一個是IP地址,一個是子網掩碼。IP地址是互聯網上每個子網或每個主機在網絡上的唯一身份標籤,那子網掩碼是幹什麼用的呢?

隨着互聯網的發展,越來越多的網絡產生,有的網絡多則幾百臺主機,少則區區幾臺,這樣就浪費了大量的IP地址,所以要劃分子網。爲了有序地區分和管理不同的子網,就需要使用子網掩碼。

子網掩碼是一種用來指明一個IP地址所標示的主機處於哪個子網中。子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址和主機地址兩部分。

2、子網掩碼的用法

子網掩碼是一個32位地址,對於A類地址來說,默認的子網掩碼是255.0.0.0;對於B類地址來說默認的子網掩碼是255.255.0.0;對於C類地址來說默認的子網掩碼是255.255.255.0。

子網掩碼通常有十進制和二級制兩種表現形式,255.255.0.0用二進制表示則爲1111111.11111111.00000000.00000000,其中,前面2個字節的16位“1”表示網絡號,後面2個字節的16位“0”表示主機號。

當配合IP地址172.20.0.4使用時,則表示該IP地址是B類地址,172.20是網絡標識,0.4是主機標識。也即子網掩碼AND IP地址的部分是網絡標識,子網掩碼取反後AND IP地址的部分即爲主機標識。

子網掩碼有兩個特殊地址,當子網掩碼的主機地址全爲0時,表示該網絡地址,當子網掩碼的主機地址全爲1時,表示該網絡的廣播地址。

5.3 特殊IP地址

前面提到,IP地址是由IACN來統一分配的,保證任何一個IP地址在網絡上的唯一性。這裏默認提到的IP地址是公網IP地址。事實上,有一些網絡不需要連接到Internet上,比如實驗室,只需要一些內部的私網IP地址

10.0.0.0/8: 10.0.0.0~10.255.255.255

172.16.0.0/12: 172.16.0.0~172.31.255.255

192.168.0.0/16: 192.168.0.0~192.168.255.255

A、B、C三類地址中,都預留了一些地址專門用於私網IP,如上面提到的地址段。優點在於,同一個私網IP地址可以在不同的私有網絡中得到重複利用。

但是,本來私有網絡是不允許連接到Internet網絡的,但是通過一些技術也是可以實現的,這種技術稱爲“網絡地址轉換(Network Address Translation,NAT)”


其他的特殊IP地址:

255.255.255.255: 有限廣播地址           0.0.0.0:任何網絡的網絡地址

127.0.0.0/8 :環回地址                           169.254.0.0/16:哈

5.5 IP轉發原理

參考:路由器數據轉發過程

5.6 IP報文格式

IP報文的格式是在IETF RFC791中定義的。

版本:IP協議的版本,目前的IP協議版本號爲4,下一代IP協議版本號爲6。

首部長度:IP報頭的長度。固定部分的長度(20字節)和可變部分的長度之和。共佔4位。最大爲1111,即10進制的15,代表IP報頭的最大長度可以爲15個32bits(4字節),也就是最長可爲15*4=60字節,除去固定部分的長度20字節,可變部分的長度最大爲40字節。

服務類型:Type Of Service。

總長度:IP報文的總長度。報頭的長度和數據部分的長度之和。

標識:唯一的標識主機發送的每一分數據報。通常每發送一個報文,它的值加一。當IP報文長度超過傳輸網絡的MTU(最大傳輸單元)時必須分片,這個標識字段的值被複制到所有數據分片的標識字段中,使得這些分片在達到最終目的地時可以依照標識字段的內容重新組成原先的數據。

標誌:共3位。R、DF、MF三位。目前只有後兩位有效,DF位:爲1表示不分片,爲0表示分片。MF:爲1表示“更多的片”,爲0表示這是最後一片。

片位移:本分片在原先數據報文中相對首位的偏移位。(需要再乘以8)

生存時間:IP報文所允許通過的路由器的最大數量。每經過一個路由器,TTL減1,當爲0時,路由器將該數據報丟棄。TTL 字段是由發送端初始設置一個 8 bit字段.推薦的初始值由分配數字 RFC 指定,當前值爲 64。發送 ICMP 回顯應答時經常把 TTL 設爲最大值 255。

協議:指出IP報文攜帶的數據使用的是那種協議,以便目的主機的IP層能知道要將數據報上交到哪個進程(不同的協議有專門不同的進程處理)。和端口號類似,此處採用協議號,TCP的協議號爲6,UDP的協議號爲17。ICMP的協議號爲1,IGMP的協議號爲2.

首部校驗和:計算IP頭部的校驗和,檢查IP報頭的完整性。

源IP地址:標識IP數據報的源端設備。

目的IP地址:標識IP數據報的目的地址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章