IP數據報格式 及分組轉發算法


ip數據報分首部和數據兩部分組成:

首部分為固定部分和可變部分

版本——占 4 位,指 IP 協議的版本 目前的 IP 協議版本號為 4 (即 IPv4)

首部長度——占 4 位,可表示的最大數值 是 15 個單位(一個單位為 4 字節) 因此 IP 的首部長度的最大值是 60 字節。

區分服務——占 8 位,用來獲得更好的服務 在舊標准中叫做服務類型,但實際上一直未被使用過。 1998 年這個字段改名為區分服務。 只有在使用區分服務(DiffServ)時,這個字段才起作用。 在一般的情況下都不使用這個字段

總長度——占 16 位,指首部和數據之和的長度, 單位為字節,因此數據報的最大長度為 65535 字節。 總長度必須不超過最大傳送單元 MTU。

標識(identification) 占 16 位, 它是一個計數器,用來產生數據報的標識。

標志(flag) 占 3 位,目前只有前兩位有意義。 標志字段的最低位是 MF (More Fragment)。 MF  1 表示后面“還有分片”。MF  0 表示最后一個分片。 標志字段中間的一位是 DF (Don't Fragment) 。 只有當 DF  0 時才允許分片。

片偏移(13 位)指出:較長的分組在分片后 某片在原分組中的相對位置。 片偏移以 8 個字節為偏移單位。

 

 

 

 

生存時間(8 位)記為 TTL (Time To Live) 數據報在網絡中可通過的路由器數的最大值。

協議(8 位)字段指出此數據報攜帶的數據使用何種協議 以便目的主機的 IP 層將數據部分上交給哪個處理過程

首部檢驗和(16 位)字段只檢驗數據報的首部 不檢驗數據部分。 這里不采用 CRC 檢驗碼而采用簡單的計算方法。

IP 首部的可變部分就是一個選項字段,用來支持排錯、測量以及安全等措施,內容很豐富。 選項字段的長度可變,從 1 個字節到 40 個字節不等,取決於所選擇的項目。 增加首部的可變部分是為了增加 IP 數據報的功能,但這同時也使得 IP 數據報的首部長度成為可變的。這就增加了每一個路由器處理數據報的開銷。 實際上這些選項很少被使用。

 

 

 

 

 

 

分組轉發:

有四個 A 類網絡通過三個路由器連接在一起。每一個網絡上都可能有成千上萬個主機。 可以想像,若按目的主機號來制作路由表,則所得出的路由表就會過於龐大。 但若按主機所在的網絡地址來制作路由表,那么每一個路由器中的路由表就只包含 4 個項目。這樣就可使路由表大大簡化。

根據目的網絡地址就能確定下一跳路由器,這樣做的結果是: IP 數據報最終一定可以找到目的主機所在目的網絡上的路由器(可能要通過多次的間接交付)。 只有到達最后一個路由器時,才試圖向目的主機進行直接交付。

這種路由是為特定的目的主機指明一個路由。 采用特定主機路由可使網絡管理人員能更方便地控制網絡和測試網絡,同時也可在需要考慮某種安全問題時采用這種特定主機路由。

路由器還可采用默認路由以減少路由表所占用的空間和搜索路由表所用的時間。 這種轉發方式在一個網絡只有很少的對外連接時是很有用的。 默認路由在主機發送 IP 數據報時往往更能顯示出它的好處。 如果一個主機連接在一個小網絡上,而這個網絡只用一個路由器和因特網連接,那么在這種情況下使用默認路由是非常合適的

 

 

分組轉發算法

(1) 從數據報的首部提取目的主機的 IP 地址 D, 得出目的網絡地址為 N。

(2) 若網絡 N 與此路由器直接相連,則把數據報直接交付目的主機 D;否則是間接交付,執行(3)。

(3) 若路由表中有目的地址為 D 的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(4)。

(4) 若路由表中有到達網絡 N 的路由,則把數據報傳送給路由表指明的下一跳路由器;否則,執行(5)。

(5) 若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行(6)。

(6) 報告轉發分組出錯。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM