1. 程式人生 > >ICMP協議/IGMP協議詳解

ICMP協議/IGMP協議詳解

網際控制報文協議ICMP

功能:ICMP允許主機或者路由器報告差多情況和提供有關異常情況的報告,它是網路層的協議,ICMP報文裝在IP資料報中,作為其中的資料部分。

ICMP報文的種類

  • ICMP差錯報文

    • 終點不可達
    • 源點抑制
    • 超時
    • 引數問題
    • 改變路由(重定向)
  • ICMP詢問報文

    • 回送請求和回答
    • 時間戳請求和回答

ICMP應用舉例

ping(Packet Internet Groper)命令:該命令利用傳送分組網間嗅探資料包來測試兩臺主機之間的連通性

根據經驗判斷,ping區域網內的地址,延遲應該在10ms以內是正常情況

TTL:生存時間,ping包每過一個路由器,TTL值減1

一般作業系統的TTL值:

  • Linux:64
  • windows:128
  • Unix:255

ping -i 2 命令:更改TTL,跟蹤資料包沿途經過的路由器

區域網排除故障的步驟:

  • 1、先ping閘道器,看看通不通
  • 2、再ping內網主機,檢查通不通
  • 3、最後ping外網,檢查通不通

使用ping包來估算頻寬

  • pathping命令:資料包路徑 計算丟包情況
  • tracert 命令: 跟蹤資料包路徑
  • traceroute命令: 路由器上跟蹤資料包

網際組管理協議IGMP

在說IGMP協議之前,先介紹多播的概念

多播,又稱為組播,就是進行一對多的通訊,這裡和廣播區分一下:廣播是一對所有的通訊,一個主機發廣播包,同一個區域網的所有主機都可以收到。而組播是指定的幾個人可以收到組播包。

組播應用舉例

  • 實時資訊的交付(比如新聞和股市行情)
  • 軟體更新
  • 互動式會議等

組播的優點

  • 與單播相比,在一對多的通訊中,多播可以大大節約網路資源

注:區域網具有硬體多播功能,因此當組播包到達區域網時,不需要複製分組,在區域網上的多播組成員都可以收到這個多播包。進行多播通訊時,伺服器與主機之間沒有建立會話,所以每個多播組成員所收到的多播包是同時的,而且是實時的。就像看電視一樣,自己並不能隨意調整自己所看視訊(比如這個多播包是視訊資料)的進度。

因特網上多播資料包的傳輸需要依靠多播路由器(一個路由器要想轉發多播包,必須增加一些能夠識別多播包的軟體)

1992年,因特網上開始試驗多播主幹網MBONE,它可把分組傳播給地點分散但是屬於同一個組的許多主機。

在因特網上進行多播就是IP多播,IP多播所傳送的分組需要使用多播IP地址

實際上,多播組的識別符號就是IP地址中的D類地址!!!

多播使用IGMP協議,多播地址只適用於目的地址,而不能用於源地址,所以,對多播資料包不產生ICMP差錯報文

網際組管理協議IGMP和多播路由選擇協議

1、IP多播需要兩種協議

  • IGMP協議是讓連線在本地區域網上的多播路由器知道本區域網上是否有主機參加或者退出了多播組
  • 多播路由選擇協議是讓因特網上的多播路由器協調工作,以便把多播資料包用最小代價傳送給所有的組成員

2、IGMP協議工作的兩個階段

  • 當某個主機加入新的多播組時,該主機應向多播組的多播地址傳送一個IGMP報文,宣告自己要稱為該組的成員。本地的多播路由器收到IGMP報文後,還要利用多播路由選擇協議把這種組成員關係轉發給因特網上的其他路由器

  • 組成員的關係是動態的,本地多播路由器要週期性的探詢本地區域網上的主機,一遍知道這些主機是否還繼續是組的成員