(網絡層)IP 協議首部格式與其配套使用的四個協議(ARP,RARP,ICMP,IGMP)


目錄

IP協議首部格式
地址解析協議 ARP
逆向地址解析協議 RARP
網際控制報文協議 ICMP
網際組管理協議IGMP


IP 數據報首部

IP數據報首部格式:

最高位在左邊,記為0 bit;最低位在右邊,記為31 bit

版本:

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

首部長度:

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

區分服務:

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

總長度:

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

標識:

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

標志(flag):

占3位,目前只有前兩位有意義

  • MF

    • 標志字段的最低位是 MF (More Fragment)
    • MF=1 表示后面“還有分片”。MF=0 表示最后一個分片
  • DF

    • 標志字段中間的一位是 DF (Don't Fragment)
    • 只有當 DF=0 時才允許分片

片偏移:

占12位,指較長的分組在分片后某片在原分組中的相對位置.片偏移以 8 個字節為偏移單位

生存時間:

占8位,記為TTL (Time To Live) 數據報在網絡中可通過的路由器數的最大值,TTL 字段是由發送端初始設置一個 8 bit字段.推薦的初始值由分配數字 RFC 指定,當前值為 64.發送 ICMP 回顯應答時經常把 TTL 設為最大值 255

協議:

占8位,指出此數據報攜帶的數據使用何種協議以便目的主機的IP層將數據部分上交給哪個處理過程, 1表示為 ICMP 協議, 2表示為 IGMP 協議, 6表示為 TCP 協議, 17表示為 UDP 協議

首部檢驗和:

占16位,只檢驗數據報的首部不檢驗數據部分.這里不采用 CRC 檢驗碼而采用簡單的計算方法

源地址和目的地址:

都各占 4 字節,分別記錄源地址和目的地址

 


地址解析協議 ARP

說明:

ARP 每一個主機都設有一個ARP高速緩存(ARP cache),里面有所在的局域網上的各主機和路由器的IP地址到硬件地址的映射表

作用:

通過IP地址得知其物理地址

步驟:


注意:

  • 網絡上其他主機並不響應 ARP 詢問,只有接收端主機接收到這個幀時,才向發送端主機做出這樣的回應
  • ARP 是解決同一個局域網上的主機或路由器的IP地址和硬件地址的映射問題.若所要找的主機和源主機不在同一個局域網上,那么就要通過ARP找到一個位於本局域網上的某個路由器的硬件地址,然后把分組發送給這個路由器,讓這個路由器把分組轉發給下一個網絡.剩下的工作就由下一個網絡來做
  • 從IP地址到硬件地址的解析是自動進行的,主機的用戶對這種地址解析過程是不知道的.
  • 主機或路由器要和本網絡上另一個已知 IP 地址的主機或路由器進行通信,ARP 協議會自動地將該IP地址解析為鏈路層所需要的硬件地址

四種典型情況:

  • 發送方是主機,要把 IP 數據報發送到本網絡上的另一個主機.這時用 ARP 找到目的主機的硬件地址
  • 發送方是主機要 IP 數據報發送到其他網絡的主機.這時 ARP 找到本網絡上某個路由器硬件地址.剩下工作由這個路由器完成
  • 發送方是路由器,要把 IP 數據報轉發到本網絡上的一個主機.這時用 ARP 找到目的主機的硬件地址
  • 發送方是路由器,要把 IP 數據報轉發到另一個網絡上的一個主機.這時用 ARP 找到本網絡上的一個路由器的硬件地址.剩下的工作由這個路由器來完成

報頭格式:

說明:

  • 硬件類型字段表示硬件地址的類型.它的值為1即表示以太網地址
  • 協議類型字段表示要映射的協議地址類型.它的值為 0x0800 即表示 IP 地址
  • 硬件地址長度協議地址長度分別指出硬件地址和協議地址的長度,以字節為單位.對於以太網上 IP 地址的 ARP 請求或應答來說,它們的值分別為 6 和 4
  • 操作字段指出四種操作類型,它們是 ARP 請求(值為1)、ARP 應答(值為 2 )、RARP 請求(值為 3 )和 RARP 應答(值為 4 )
  • 接下來的四個字段是發送端的硬件地址(在本例中是以太網地址)、發送端的協議地址( IP 地址)、目的端的硬件地址目的端的協議地址.

參考鏈接:

http://blog.csdn.net/tigerjb/article/details/7351992

 


逆地址解析協議 RARP

定義:

逆地址解析協議 RARP 使只知道自己硬件地址的主機能夠知道其IP地址

用途:

這種主機往往是無盤工作站.因此 RARP 協議目前已很少使用

RARP 與 RAP:

 


網際控制報文協議 ICMP

目的:

為了提高 IP 數據報交付成功的機會

注意:

  • 允許主機和路由器報告差錯情況和提供有關異常情況的報告
  • ICMP不是高層協議,而是IP層的協議
  • ICMP報文作為IP層數據報的數據,加上數據報的首部,組成 IP 數據報發送出去
  • ICMP報文的前4個字節是統一的格式,共有三個字段:即類型,代碼和檢驗和.接着的4個字節的內容與ICMP的類型有關

種類:

  • ICMP 差錯報告報文:
    • 終點不可達
    • 源點抑制(Source quench)
    • 時間超過
    • 參數問題
    • 改變路由(重定向)(Redirect)
  • ICMP 詢問報文:
    • 回送請求和回答報文
    • 時間戳請求和回答報文

報文格式:

ICMP地址掩碼請求和應答報文

ICMP時間戳請求和應答報文

ICMP不可達報文

ICMP回顯請求和回顯應答報文格式

ICMP超時報文

ICMP重定向報文

ICMP路由器請求報文格式

ICMP路由器通告報文格式

ICMP 源站抑制差錯報文格式

 ICMP 類型:

 

不應發送ICMP差錯報告報文的情況:

  • 對第一個分片的數據報片的所有后續數據報片都不發送ICMP 差錯報告報文
  • 多播地址的數據報都不發送ICMP差錯報告報文
  • 特殊地址(如127.0.0.0 或 0.0.0.0)的數據報不發送 ICMP差錯報告報文

網際組管理協議IGMP

報文格式:

作用:

它是TCP/IP 協議族中負責IP 組播成員管理的協議,用來在IP 主機和與其直接相鄰的組播路由器之間建立、維護組播組成員關系

功能:

當一台主機加入到一個新的組時,它發送一個IGMP消息到組地址以宣告它的成員身份,多播路由器和交換機就可以從中學習到組的成員.利用從IGMP中獲取到的信息,路由器和交換機在每個接口上維護一個多播組成員的列表

兩個階段:

  • 加入:
    • 當主機加入新的多播組時,向多播組的多播地址發送IGMP 報文,聲明自己要成為該組的成員.本地的多播路由器收到 IGMP 報文后,將組成員關系轉發給因特網上的其他多播路由器
  • 詢問:
    • 周期性地探詢本地局域網上的主機,以便知道這些主機是否還繼續是組的成員
  • 注意:
    • 因為組成員關系是動態的,因此本地多播路由器要只要對某個組有一個主機響應,那么多播路由器就認為這個組是活躍的
    • 但一個組在經過幾次的探詢后仍然沒有一個主機響應,則不再將該組的成員關系轉發給其他的多播路由器

數據包:

IGMP 使用 IP 數據報傳遞其報文(即 IGMP 報文加上 IP 首部構成 IP 數據報),但它也向 IP 提供服務

具體措施:

  • 在主機和多播路由器之間的所有通信都是使用 IP 多播
  • 多播路由器在探詢組成員關系時,只需要對所有的組發送一個請求信息的詢問報文,而不需要對每一個組發送一個詢問報文。默認的詢問速率是每 125 秒發送一次
  • 當同一個網絡上連接有幾個多播路由器時,它們能夠迅速和有效地選擇其中的一個來探詢主機的成員關系
  • 在 IGMP 的詢問報文中有一個數值 N,它指明一個最長響應時間(默認值為 10秒)。當收到詢問時,主機在 0 到 N 之間隨機選擇發送響應所需經過的時延。對應於最小時延的響應最先發送
  • 同一個組內的每一個主機都要監聽響應,只要有本組的其他主機先發送了響應,自己就可以不再發送響應了


免責聲明!

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



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