標籤:
章節回顧:
《TCP/IP詳解卷1:協議》第1章 概述-讀書筆記
《TCP/IP詳解卷1:協議》第2章 鏈路層-讀書筆記
1、引言
IP是TCP/IP協議族中最核心的協議。所有的TCP、UDP、ICMP及IGMP資料都以IP資料報格式傳輸。IP提供不可靠、不需連線的資料報傳送服務。
(1)不可靠
它不能保證IP資料報能成功地到達目的地。IP僅提供最好的傳輸服務。如果發生某種錯誤,如某個路由器暫時用完了緩衝區,IP有一個簡單的錯誤處理演算法:丟棄該資料報,然後發送ICMP訊息報給信源端。任何要求的可靠性必須由上層來提供(如TCP)。
(2)無串連
IP並不維護任何關於後續資料報的狀態資訊。每個資料報的處理是相互獨立的。即IP資料報可以不按發送順序接收。如果一信源向相同的信宿發送兩個連續的資料報(先是A,後是B),每個資料報都是獨立地進行路由選擇,可能選擇不同的路線,因此B可能在A到達之前先到達。
2、IP首部
IP資料報的格式3-1所示。
IP資料報說明:
(1)普通的IP首部長為20個位元組,除非含有選項欄位。最高位在左邊,記為0 bit;最低位在右邊,記為31 bit。
(2)4個位元組的32 bit值以下面的次序傳輸:首先是0~7 bit,其次8~15 bit,然後1 6~23 bit,最後是24~31 bit。這種傳輸次序稱作big endian位元組序。由於TCP/IP首部中所有的二進位整數在網路中傳輸時都要求以這種次序,因此又稱作網路位元組序。以其他形式儲存二進位整數的機器,如little endian格式,則必須在傳輸資料之前把首部轉換成網路位元組序。
(3)目前的協議版本號碼是4,因此IP有時也稱作IPv4。
(4)服務類型(TOS)欄位包括一個3 bit的優先權子欄位(現在已被忽略),4 bit的TOS子欄位和1 bit未用位,但必須置0。4 bit的TOS分別代表:最小時延、最大輸送量、最高可靠性和最小費用。 4 bit中只能置其中1 bit。如果所有4 bit均為0,那麼就意味著是一般服務。圖3-2列出了對不同應用建議的TOS值。
注意:現在大多數的TCP/IP實現都不支援TOS特性。
(5)總長度欄位是指整個IP資料報的長度,以位元組為單位。由於該欄位長16位元,所以IP資料報最長可達65535位元組。
注意:儘管可以傳送一個長達65535位元組的IP資料報,但是大多數的鏈路層都會對它進行分區。而且,主機也要求不能接收超過576位元組的資料報。
(6)識別欄位唯一地標識主機發送的每一份資料報。通常每發送一份報文它的值就會加1。
(7)TTL存留時間欄位設定了資料報可以經過的最多路由器數。它指定了資料報的存留時間。 TTL的初始值由源主機設定(通常為32或64),一旦經過一個處理它的路由器,它的值就減去1。當該欄位的值為0時,資料報就被丟棄,並發送ICMP報文通知源主機。
(8)協議欄位,它可以識別是哪個協議向IP傳送資料。
(9)首部檢驗和欄位是根據IP首部計算的檢驗和碼。
(10)任選項,是資料報中的一個可變長的可選資訊。這些選項很少被使用,並非所有的主機和路由器都支援這些選項。
3、IP路由選擇
IP路由選擇是簡單的,特別對於主機來說。如果目的主機與源主機直接相連(如點對點鏈路)或都在一個共用網路上(乙太網路或令牌環網),那麼IP資料報就直接送到目的主機上。否則,主機把資料報發往一預設的路由器上,由路由器來轉寄該資料報。
說明:大多數多使用者系統,都可以配置成一個路由器。我們可以為它指定主機和路由器都可以使用的簡單路由演算法。本質上的區別在於主機從不把資料報從一個介面轉寄到另一個介面,而路由器則要轉寄資料報。
(1)IP資料報處理過程
IP可以從TCP、UDP、ICMP和IGMP接收資料報(即在本地產生的資料報)並進行發送,或者從一個網路介面接收資料報(待轉寄的資料報)並進行發送。IP層在記憶體中有一個路由表。當收到一份資料報並進行發送時,它都要對該表搜尋一次。當資料報來自某個網路介面時, IP首先檢查目的IP地址是否為原生IP地址之一或者IP廣播位址。
如果是這些地址:資料報就被送到由IP首部協議欄位所指定的協議模組進行處理。如果不是這些地址:如果IP層被設定為路由器的功能,那麼就對資料報進行轉寄;否則資料報被丟棄。
(2)路由表包含的資訊
路由表中的每一項都包含下面這些資訊:
1)目的IP地址。
它既可以是一個完整的主機地址,也可以是一個網路地址,由該表目中的標誌欄位來指定。主機地址有一個非0的主機號,以指定某一特定的主機,而網路地址中的主機號為0,以指定網路中的所有主機(如乙太網路,令牌環網)。
2)下一跳路由器的IP地址,或者有直接連接的網路IP地址。
下一跳路由器是指一個在直接相連網路上的路由器,通過它可以轉寄資料報。下一跳路由器不是最終的目的,但是它可以把傳送給它的資料報轉寄到最終目的。
3)標誌。
其中一個標誌指明目的IP地址是網路地址還是主機地址,另一個標誌指明下一跳路由器是否為真正的下一跳路由器,還是一個直接相連的介面。
4)為資料報的傳輸指定一個網路介面。
(3)IP路由選擇主要完成的功能
IP路由選擇是逐跳地進行的。IP並不知道到達任何目的的完整路徑(當然,除了那些與主機直接相連的目的)。所有的IP路由選擇只為資料報傳輸提供下一跳路由器的IP地址。它假定下一跳路由器比發送資料報的主機更接近目的,而且下一跳路由器與該主機是直接相連的。
1)搜尋路由表,尋找能與目的IP地址完全符合的表目(網路號和主機號都要匹配)。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網路介面(取決於標誌欄位的值)。
2)搜尋路由表,尋找能與目的網路號相匹配的表目。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網路介面。
3)搜尋路由表,尋找標為“預設”的表目。如果找到,則把報文發送給該表目指定的下一站路由器。
說明:
(1)如果上面這些步驟都沒有成功,那麼該資料報就不能被傳送。如果不能傳送的資料報來自本機,那麼一般會向產生資料報的應用程式返回一個“主機不可達”或“網路不可達”的錯誤。
(2)完整主機地址匹配在網路號匹配之前執行。只有當它們都失敗後才選擇預設路由。
(3)為一個網路指定一個路由器,而不必為每個主機指定一個路由器,這是IP路由選擇機制的一個基本特性。這樣做可以極大地縮小路由表的規模,例如Internet上的路由器有只有幾千個表目,而不會是超過100萬個表目。
PS:今天沒有完成本章任務,本章剩餘小結放在明天來總結。
《TCP/IP詳解卷1:協議》第3章 IP:網際協議(1)-讀書筆記