1. 程式人生 > >《TCP/IP協議詳解 卷1》--- IP:網際協議

《TCP/IP協議詳解 卷1》--- IP:網際協議

IP:不可靠–不保證IP資料報能成功到達目的地;無連線—不維護任何關於後續資料報的狀態資訊,可能無序。

IP首部
這裡寫圖片描述
最高位在左端,為0bit,最低位為右端,為31bit。傳輸次序為大端。

目前的協議版本號是4,因此IP有時也稱作IPv4。

首部長度指的是首部佔 32 bit字的數目,包括任何選項。由於它是一個4位元欄位,因此首部最長為60(首部長度單位為4位元組,4*15=60)個位元組。

服務型別(TOS)欄位包括一個3 bit的優先權子欄位(現在已被忽略),4 bit的TOS子欄位和1 bit未用位但必須置0。4 bit的TOS分別代表:最小時延、最大吞吐量、最高可靠性和最小費用。4 bit中只能置其中1 bit。如果所有4 bit均為0,那麼就意味著是一般服務。
這裡寫圖片描述

總長度欄位是指整個IP資料報的長度,以位元組為單位。利用首部長度欄位和總長度欄位,就可以知道IP資料報中資料內容的起始位置和長度。由於該欄位長 16位元,所以I P資料報最長可達65535位元組。當資料報被分片時,該欄位的值也隨著變化。

標識欄位唯一地標識主機發送的每一份資料報。通常每傳送一份報文它的值就會加 1。
分片時用到標誌欄位和片偏移欄位。

TTL(time-to-live)生存時間欄位設定了資料報可以經過的最多路由器數。它指定了資料報的生存時間。TTL的初始值由源主機設定(通常為32或64),一旦經過一個處理它的路由器,它的值就減去1。當該欄位的值為 0時,資料報就被丟棄,併發送 ICMP報文通知源主機。

協議欄位用於分用時識別是哪個協議向 IP傳送資料。

首部檢驗和欄位是根據IP首部計算的檢驗和碼。它不對首部後面的資料進行計算。 ICMP、IGMP、UDP和TCP在它們各自的首部中均含有同時覆蓋首部和資料檢驗和碼。

IP路由選擇
路由表中的每一項都包含下面這些資訊:
1、目的IP地址
2、下一站(或下一跳)路由器( next-hop router)的IP地址,或者有直接連線的網路IP地址
3、標誌。其中一個標誌指明目的 IP地址是網路地址還是主機地址,另一個標誌指明下一站路由器是否為真正的下一站路由器,還是一個直接相連的介面
4、為資料報的傳輸指定一個網路介面

IP路由選擇主要完成以下這些功能:
1、搜尋路由表,尋找能與目的 IP地址完全匹配的表目(網路號和主機號都要匹配)。如果找到,則把報文傳送給該表目指定的下一站路由器或直接連線的網路介面(取決於標
志欄位的值)。
2、搜尋路由表,尋找能與目的網路號相匹配的表目。如果找到,則把報文傳送給該表目指定的下一站路由器或直接連線的網路介面(取決於標誌欄位的值)。
3、搜尋路由表,尋找標為“預設( default)”的表目。如果找到,則把報文傳送給該表目指定的下一站路由器。
如果上面這些步驟都沒有成功,那麼該資料報就不能被傳送。

主機的路由選擇可以非常簡單:如果目的主機在直接相連的網路上,那麼就把資料報直接傳給目的主機,否則傳給預設路由器。
在選擇路由時,主機路由優先於網路路由,最後在沒有其他可選路由存在時才選擇預設路由。
資料報在各站的傳輸過程中目的 IP地址始終不變,但是封裝和目的鏈路層地址在每一站都可以改變。大多數的主機和許多路由器對於非本地網路的資料報都使用預設的下一站路由器。

子網定址
子網編址:不是把IP地址看成由單純的一個網路號和一個主機號組成,而是把主機號再分成一個子網號和一個主機號。
這裡寫圖片描述
上圖中,允許有254個子網,每個子網可以有254臺主機。

大多數的子網例子都是B類地址。
子網對外部路由器來說隱藏了內部網路組織(一個校園或公司內部)的細節。
子網可以縮小Internet路由表的規模。
這裡寫圖片描述
粗線表示乙太網,虛線表示點對點。