你好,這裡是網絡技術聯盟站。
前幾天給大家帶來了ICMP的文章:
- 什麼是 ICMP ?ping和ICMP之間有啥關係?
在多個平台廣受大家喜愛,有朋友又想看IGMP的文章,咋一看這兩個技術中間就差了一個字母,不過兩者可是完全不一樣的技術,那麼今天瑞哥就安排一下!
讓我們直接開始!
什麼是IGMP?
- 英文全稱:Internet Group Management Protocol
- 中文名稱:互聯網組管理協議
- 第 3 層協議
- IP 協議號:2
- IPv4 組播的關鍵組件
- IGMP 有 3 個版本:IGMPv1、IGMPv2 和 IGMPv3
IGMP允許主機將其組播成員身份通告給相鄰的交換機和路由器,主機通過向其本地組播路由器發送 IGMP 消息來識別組成員身份,在 IGMP 下,路由器偵聽 IGMP 消息並定期發送查詢來發現特定子網上哪些組是活動的或非活動的。
IGMP基本架構
流量類型
流量一般三種類型:
單播示意圖
單播
單播英文名叫Unicast,是點對點傳輸,單播需要一個發送方和一個接收方使用基於會話的協議發送數據包,例如TCP和UDP。
- TCP的常見傳輸模式示例有http、telnet、smtp。
- UDP 的常見傳輸模式示例有 VoIP、視頻會議、流媒體、實時服務。
廣播
廣播英文名叫Broadcast,單個設備向網絡上的所有其他設備發送通信。
LAN 上廣播流量的常見示例包括查詢 LAN 上所有計算機的 ARP 消息。
廣播流量不是可路由流量。
廣播示意圖
組播
組播英文名叫Multicast,也叫多播,支持從一個節點到多個接收者的單個數據傳輸副本,發送設備會將 UDP 數據包轉發到組播 IP 地址和端口,以便所有想要接收流的目的地都可以接收傳輸,從而節省帶寬和網絡開銷。
組播流量是可路由的流量,但需要 IGMP 和 PIM 來控制整個網絡的泛濫、使上行鏈路飽和並可能導致網絡癱瘓。
組播示意圖
組播版本
在組播介紹中,我們介紹了組播有 3 個版本:
我們來稍微詳細的了解一下。
IGMPv1
IGMPv1 是 TCP 網絡中使用的通信協議的第一個開發和發布版本,對於這個版本,定義了組地址0.0.0.0,並定義了224.0.0.1作為一般查詢的目標地址。
這些路由器生成請求的標準時間是 60 秒,並允許計算機加入對應的組播組。
隨後,向對應的組播地址發出成員資格請求。
IGMPv1 不允許計算機通過超過時間限制自行離開組,從而將計算機從其訪問的組中刪除。
IGMP 頭的總長度為 64 位,前 8 位表示協議版本和消息類型。
lGMPv1報文頭如下:
IGMPv2
IGMPv2 在第一個版本發布後,於 1997 年在 RFC 2236 中定義,在lGMPv2中,group(0.0.0.0)和destination(224.0.0.1)地址沒有變化,但是間隔時間增加到125秒。
第二個版本的主要創新是通過替換使用的註銷時間限制來加快進程,由設備啟動註銷過程的第一個版本。
另一項創新是特定組播地址的接收狀態是通過特定於組的消息確定的。
在這個版本中,地址 224.0.0.2 被定義為目標地址,IGMPv2 使用簡單的 IP 數據包發送消息,IP 協議號為 2。
在 IGMPv2 版本中,子網中具有最低 IP 地址的路由器用於多播查詢。
lGMPv2包頭如下:
IGMPv3
IGMPv3 版本在 RFC 3376 和 RFC 4604 在 2002 中定義,在這個版本中,0.0.0.0 和 224.0.0.1 地址被認為是一個組和目標地址,間隔時間與版本 2 相同。
新的特點是可以特殊選擇組播流,這大大降低了對網絡的需求,並且由於在傳輸過程中不使用未知或隨機源,因此還提供了更高的安全性。
前兩個 32 位序列與 lGMPv2 頭類型、最大響應時間、校驗和和組地址相同。
IGMPv3包頭如下:
IGMP如何工作?
我們已經知道組播就是發送方向一組主機發送一條消息,組播路由器有責任將消息複製並轉發給組播組的每個主機,組播組的每個主機都會收到消息,除非在接收主機上應用了過濾器。
IGMP協議工作的最核心部分就是管理主機在組播組中的成員關係,在管理組播組中主機或路由器的成員身份時,協議必須處理以下過程:
ICMP消息
暫且不看IGMP的版本,一般來說,從大的方面,IGMP消息有以下這六種:
Membership Report 成員報告消息
客戶端在想要接收組播組時發送此消息,成員報告本質上是一條信息,表明有興趣收聽特定組。
Leave 離開消息
客戶端在想要離開組時發送此消息。
General Query 一般查詢消息
查詢器將一般查詢消息發送給所有客戶端,無論查詢器當前是否正在向客戶端發送組播,來找出它們正在偵聽的組,對一般查詢的響應確保查詢者的組成員信息保持最新。
一般查詢的組地址字段設置為 0.0.0.0,它們被發送到目標地址 224.0.0.1,默認情況下,Allied Telesis 路由器和交換機每 125 秒發送一次。
Specific Query 具體查詢消息
查詢器將具體查詢消息發送到組地址,來檢查客戶端是否仍在偵聽該組,在客戶端為該組發送離開消息後,查詢器發送特定查詢,特定查詢使查詢器能夠確認所有下遊客戶端何時離開組,以便查詢器可以停止發送多播流。
Membership Query 成員查詢消息
這是具體查詢和一般查詢的通用術語。
IGMP優缺點
優點
- IGMP促使帶寬得到了有效利用
- 比較靈活,可以立即離開某個組再加入另外一個組
- 不存在大量垃圾包,性能得到提升
缺點
- 缺少 TCP,可能會發生網絡擁塞
- 安全性不高,容易受到攻擊
IGMP 偵聽
IGMP 在第 3 層運行,因此,交換機無法理解 IGMP 消息,另外,交換機也不可能將組播MAC地址加入轉發表,這是因為組播MAC地址從不作為源地址,這會導致組播流量被泛洪到廣播域內的所有主機。
IGMP 偵聽是在第 2 層交換機上啟用的一項功能,用於檢查主機和路由器之間的 IGMP 傳輸,通過這種檢查,建立了一個映射,其中包含特定 VLAN 中的哪些主機需要接收組播傳輸,然後,交換機使用此信息將給定組播組的組播流量僅轉發給給定 VLAN 內的接收器。
ICMP和IGMP的區別
文章開頭也說了,這兩個協議只差了一個字母,但是協議本身差異是非常巨大的,我們來了解一下:
1、定義
- ICMP 代表 Internet 控制消息協議
- IGMP 代表 Internet 組消息協議
2、典型功能
- ICMP:ping
- IGMP:組播
3、工作協議層
- ICMP:第 3 層協議
- IGMP:第 3 層協議
4、用途
- ICMP:用於測試主機或網絡的可達性
- IGMP:用於 DTS 服務等分組數據傳輸
總結
IGMP 代表 Internet 組播管理協議,是 IPv4 網絡上的主機和相鄰路由器用來建立多播組成員資格的通信協議,當多播主機希望加入特定多播組並開始接收組流量時,IGMP 消息主要用於向其本地多播路由器發送信號,IGMP有三個版本:版本1、版本2、版本3,其中版本2是默認版本。
本文主要介紹了:
- 什麼是IGMP?
- 流量類型 單播廣播組播
- 組播版本 IGMPv1IGMPv2IGMPv3
- IGMP如何工作?
- ICMP消息 Membership Report 成員報告消息Leave 離開消息General Query 一般查詢消息Specific Query 具體查詢消息Membership Query 成員查詢消息
- IGMP優缺點 優點缺點
- IGMP 偵聽
- ICMP和IGMP的區別
- 總結
謝謝您的閱讀,如果有任何疑問,請在評論區與我討論!