【3】TCP/IP協議族詳解——IP協議

聲明:本書參考自《TCP/IP詳解卷一:協議》

1.概述

IP協議是TCP/IP協議族中最核心的協議。所有的TCP、UDP、ICMP、IGMP數據都以IP數據報個數傳輸。IP提供的是不可靠、無連接的服務。

不可靠指的是它不保證將數據報送往目的地。但是當發生錯誤的時候一般會發送ICMP消息報給信源,通報信源錯誤的類型。

無連接指的是IP並不維護任何關於後續數據報狀態信息。每個數據報都是相互獨立的。這就導致同一信源發送的消息到達的順序可能會不同。

2.IP首部

如上圖所示,最高位在左邊,記爲0bit;最低位在右邊,記爲3bit。

4個字節的32bit值以下面的次序傳輸:首先0~7bit,其次8~15bit,然後16~23bit,最後是24~31bit。這種傳輸次序稱爲大端序。

各個字段說明:

①4位版本:目前協議版本號是4,因此稱爲IPv4。目前IPv6也已全部部署。。。

②首部長度:指的是首部佔32bit字的數目,包括任何選項。因此首部最長爲32*15/8 = 60字節。

③服務類型(TOS):該字段包括一個3bit的優先權子字段(現在已被忽略),4bit的TOS子字段和1bit未用位(置爲0)。 4bit分別代表最小延時、最大吞吐量、最高可靠性和最低費用。4bit只能置其中1bit。

下圖給出了不同應用的TOS值

根據應用程序對延時、吞吐量、可靠性和費用的要求而設置不同的TOS值。

④總長度指的是IP數據報的總長度,以字節爲單位。利用首部長度字段和總長度字段,就可以知道IP數據報中數據內容的起始位置和總長度了。由於該字段長16bit,故IP數據報的最大可達長度爲65535。注意將這個值和MTU區分開來,MTU是鏈路層的限制。而這個值是IP層的限制。在上份博客中,我們瞭解到鏈路層傳輸有個最小的長度,以太網這一長度是46,此字段可以幫助我們識別IP數據報的位置。

⑤標識字段唯一標識主機發送的數據報。通常每發送一份數據報其程度加1。

⑥標誌字段和片偏移字段涉及到IP數據報的分片內容。

⑦TTL(time-to-live)字段設置數據報最多經過的路由,通常每經過一層路由這個字段的值-1,設置這個字段可以防止網絡的環路。注意在防火牆中可以讓TTL字段不減,所以防火牆可以在網絡中隱形,這樣別人就不能探測有防火牆網絡的拓撲了。到TTL爲1或者0的時候,路由器會將該數據報丟棄,併發送ICMP報文給信源。

⑧協議字段用來標誌IP後面的協議類型,UDP、TCP、ICMP、IGMP等。

⑨首部檢驗和用來檢驗IP首部的內容是否出現錯誤。注意其只計算首部,不計算IP數據報中的其它內容。

⑩源IP地址和目的IP地址。

最後是選項部分。這些內容主要的定義如下:

① 記錄路徑

②寬鬆的源站選路

③嚴格的源站選路

3.子網

從上圖可以看出A和B類地址分配了相等多的主機號,但是人們在一個網絡中並不會用到這麼多的主機,所以人們把主機號再分成一個子網號和一個主機號。(注:全0或1的主機地址無效)

下面是一種子網示例

採用字節劃分的方式很容易確定子網號,但是子網的劃分並不是一定以字節爲單位。子網的劃分對外部路由器來說隱藏了內部的細節,有利於保證網絡的安全性。

子網中一個很重要的概念就是子網掩碼,子網掩碼是一個32bit的值,其中全1的bit留給網絡號,其它的留給主機號。下圖給出了B類地址的兩種不同的子網掩碼格式:

給定I P地址和子網掩碼以後,主機就可以確定 I P數據報的目的是:(1)本子網上的主機;
(2)本網絡中其他子網中的主機;(3)其他網絡上的主機。

幾組特殊的IP地址

-1表示255,注意子網號和主機號不一定是8個字節,所以140.252.13.63也可能是廣播地址。

4.兩個重要的指令

(1)ifconfig命令:查看主機上的IP以及網卡接口信息。windos下是ipconfig

(2)netstat命令:打印系統上的接口信息

 

 

 

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