引言
從上一篇文章,我們知道,ARP協議的工作原理,那么本次就來學習IP層的另一個重要協議——IP協議。
IP協議
IP協議(Internet Protocol),又稱之為網際協議,IP協議處于IP層工作,它是整個TCP/IP協議棧的核心協議之一,上層協議都要依賴IP協議提供的服務,IP協議負責將數據報從源主機發送到目標主機,通過IP地址作為唯一識別碼,簡單來說,不同主機之間的IP地址是不一樣的,在發送數據報的過程中,IP協議還可能對數據報進行分片處理,同時在接收數據報的時候還可能需要對分片的數據報進行重裝等等。注意:分片僅在IPv4中實現,而IPv6是沒有分片的。本系列教程若非特別說明,IP協議均為IPv4。
IP協議是一種無連接的不可靠數據報交付協議,協議本身不提供任何的錯誤檢查與恢復機制。
IP地址
在學習IP協議之前,先來明確一下IP地址的概念。
在TCP/IP設計之初,為了標識互聯網中的每臺主機的身份,設計人員為每個接入網絡中的主機都分配一個IP地址(Internet Protocol Address),是一個32位的整數地址,只有合法的IP地址才能接入互聯網中并且與其他主機進行通信,IP地址是軟件地址而非硬件地址,硬件MAC地址是存儲在網卡中的,應用于本地網絡中尋找目標主機。而IP地址能讓一個網絡中的主機能夠與另一個網絡中的主機進行通信,因為MAC地址的多樣性是很難通過MAC地址直接通信的,因此只能通過IP協議屏蔽這些差異。由于全世界存在著各式各樣的網絡,它們使用不同的硬件地址。要使這些異構網絡能夠互相通信就必須進行非常復雜的硬件地址轉換工作,因此幾乎是不可能的事。
連接到因特網的主機都擁有統一的 IP 地址,它們之間的通信就像連接在同一個網絡上那樣簡單方便,因為調用 ARP 來尋找某個路由器或主機的硬件地址都是由計算機軟件自動進行的,對用戶來說是看不見這種調用過程的。
在學習IP地址之前,我們需要簡述一下主機與路由器連入網絡的通信的方法:一臺主機通常只有一條或多條鏈路連接到網絡,即有一個或多個網卡;當主機中想發送一個數據報時,它就在對應的鏈路上發送,一個網卡對應一個MAC地址與IP地址。
每個IP地址長度為32比特(4字節),因此總共有2^32個可能的IP地址,大約有40億個IP地址能被使用的。這些地址一般按所謂點分十進制記法(dotted-decimal notation)書寫,即地址中的每個字節用它的十進制形式書寫,各字節間以點分隔開。例如, IP地址為192.168.0.122,192是該地址第一個8比特的十進制等價數,168是該地址第二個8比特的十進制等價數,依次類推。
IP地址編址
我們把整個因特網看成為一個單一的、抽象的網絡。IP 地址就是給每個連接在因特網上的主機(或路由器)分配一個在全世界范圍是唯一的 32 位的標識符。
IP 地址現在由因特網名字與號碼指派公司ICANN (Internet Corporation for Assigned Names and Numbers)進行分配。
分類的 IP 地址 :這是最基本的編址方法,在 1981 年就通過了相應的標準協議。
子網的劃分 :這是對最基本的編址方法的改進,其標準在 1985 年通過。
構成超網 :這是比較新的無分類編址方法。1993 年提出后很快就得到推廣應用。
每一類地址都由兩個固定長度的字段組成,其中一個字段是網絡號 net-id,它標志主機(或路由器)所連接到的網絡,而另一個字段則是主機號 host-id,它標志該主機(或路由器)。
IP地址::={<網絡號>,<主機號>}
A 類網絡地址的第一個字節的第一位必須為0 ,因此, A 類網絡地址第一個字節的取值范圍為0~127(注意:但0 和127 不是有效的A 類網絡地址號),A類地址總共有128個網絡號,其中3個網絡號用作特殊用途,因此可以在互聯網上使用的還有125個,而每一個網絡號后面的3字節主機號表示能用于A類網絡地址不同網絡號的的主機數量(多達2^24-2 = 16777214個),所以總的來說A類網絡支持的主機數量為125*16777214=2097151750個,大約占據了40億IP地址的半壁江山,這些IP地址通常被分配給世界上超大型的幾個室友,但是通常沒有任何一個機構能使用那么大量的IP地址,所以A類地址的很多IP地址都會被白白浪費掉。
B 類網絡地址的第一個字節的第一位必須為1 ,且第二位必須為0,因此, B 類網絡地址第一個字節的取值范圍為128~191,前2字節剩余的14bit表示網絡號,多達16384個網絡號,其中16個網絡號被保留使用,因此可以分配給企業使用的網絡號有16368個,每一個網絡號中可以擁有2^16-2 =65534個主機,總的來說B類網絡支持的主機個數為16368*65534=1072660512,大約占據了所有IP地址的四分之一。
**C **類網絡地址的第一個字節的第一位必須為1,第二位必須為1,第三位必須為0,因此C類網絡第一個字節的取值范圍為192~223,C類地址的前三個字節用于表示網絡號(剩下的21bit),所以擁有2097152個網絡號,但是其中的256個網絡號被保留出來,因此C類地址的可用網絡號為2096896個,每個網絡號下的主機個數為254,因此C類網絡支持的主機數量為532611584,大約占據了所有IP地址的八分之一。
**D **類IP地址的第一個字節前四位為1110,那么它第一個字節的取值范圍為224~239,約占據了所有IP地址的十六分之一,它是一個專門保留的地址,它并不指向特定的網絡,目前這一類地址被用于多播。
**E **類IP地址的第一個字節前四位必須為1111,那么它第一個字節的取值范圍為240~255,約占據了所有IP地址的十六分之一,是為將來使用而保留的,其中32bit全為1的IP地址(255.255.255.255)用作廣播地址。
類別 | 第一字節 | 第一字節取值范圍 | 網絡號個數 | 主機號個數 | 適用范圍 |
---|---|---|---|---|---|
A類 | 0XXX XXXX | 0~127 | 125 | 16777214 | 大型網絡 |
B類 | 10XX XXXX | 128~191 | 16368 | 65534 | 中型網絡 |
C類 | 110X XXXX | 192~223 | 2097152 | 254 | 小型網絡 |
D類 | 1110 XXXX | 224~239 | - | - | 多播 |
E類 | 1111 XXXX | 240~255 | - | - | 保留 |
特殊IP地址
1.受限廣播地址
廣播通信是一對所有的通信方式,受限廣播地址用于定義整個互聯網,如果設備想使IP數據報被整個網絡所接收,就發送這個目的地址全為1的廣播包,但這樣會給整個互聯網帶來災難性的負擔,所以在任何情況下,路由器都會禁止轉發目的地址為255.255.255.255的廣播數據包,因此這樣的數據包僅會出現在本地網絡中(局域網),255.255.255.255這個地址指本網段內的所有主機, 相當于“房子里面的人都聽著”通知所有主機。
注意:此處不要與以太網的廣播地址(255-255-255-255-255-255)混淆了。
2.直接廣播地址
受限廣播地址是網絡號與主機號都為1的地址,但是直接廣播地址是主機號全為1而得到的地址,廣播地址代表本網絡內的所有主機,使用該地址可以向網絡內的所有主機發送數據,比如一個IP地址是192.168.0.181,這是C類地址,所以它的主機號只有一個字節,那么對主機號全取1得到一個廣播地址192.168.0.255,向這個地址發送數據就能讓同一網絡下的所有主機接收到。
A、B、C三類地址的廣播地址結構如下:
A類地址的廣播地址為:XXX.255.255.255(XXX為A類地址的第一個字節取值范圍)。
A類地址的廣播地址為:XXX. XXX.255.255(XXX為B類地址的前兩個字節取值范圍)。
A類地址的廣播地址為:XXX. XXX. XXX.255(XXX為C類地址的前三個字節取值范圍)。
注意:這個地址在IP數據報中只能作為目的地址。另外,直接廣播地址使一個網段中可分配給設備的地址數減少了1個。
3.多播地址
多播地址用在一對多的通信中,即一個發送者,多個接收者,不論接受者員數量的多少,發送者只發送一次數據包。多播地址屬于分類編址中的D類地址, D類地址只能用作目的地址,而不能作為主機中的源地址。
4.環回地址
127網段的所有地址都稱為環回地址,主要用來測試網絡協議是否工作正常的作用。比如在電腦中使用ping 命令去ping 127.1.1.1就可以測試本地TCP/IP協議是否正常。用通俗的話表示,就是“我自己”,不能以127網段中的IP地址作為主機地址,因此A類地址又少了一個可用網絡號。
5.本網絡本主機
IP地址32bit全為0的地址(0.0.0.0)表示的是本網絡本主機,這個IP地址在IP數據報中只能用作源IP地址,這發生在當設備啟動時但又不知道自己的IP地址情況下。在使用DHCP分配IP地址的網絡環境中,這樣的地址是很常見的,主機為了獲得一個可用的IP地址,就給DHCP服務器發送IP數據報,并用這樣的地址(0.0.0.0)作為源地址,目的地址為255.255.255.255(因為主機這時還不知道DHCP服務器的IP地址),然后DHCP服務器就會知道這個主機暫時沒有IP地址,那么就會分配一個IP給這個主機。
-
IP協議
+關注
關注
3文章
84瀏覽量
21599 -
數據報
+關注
關注
0文章
4瀏覽量
7242 -
協議棧
+關注
關注
2文章
137瀏覽量
33572
發布評論請先 登錄
相關推薦
評論