堅信:知識改變命運,,技術成就夢想。 當今是信息爆炸的年代,,過多,、無營養(yǎng)的信息充斥著我們,龍哥愿致力于傳播正能量,、網絡技術等有價值的信息,,同大家分享,。 愿我們都能充分利用零碎時間,每天進步一點點,。 本期與大家聊聊IGMPv1(因特網組管理協(xié)議),,分享我個人見解,以及梳理一下IGMPv1相關知識點,。 一 它是干嘛用的,? 我們學一個協(xié)議時,首先,,最想知道的就是它是干嘛用的,?什么時候才需要它?部署場景,? 1,、它是干嘛的? IGMP(Internet Group Mangment Protocl)因特網組管理協(xié)議,,開發(fā)該協(xié)議,,主要是用于組播流接收主機和相鄰組播路由器之間維護組播組成員關系的。 說白了,,主機通過它來表達自己想加入哪個組播組,。組播路由器通過它可以清楚了解連接主機子網內有哪些組播組成員。 2,、什么時候才需要它? 部署場景,? 當部署組播時候,有主機需要加入組播組時就需要它,。 部署場景: 二 IGMP協(xié)議,、原理介紹 1、協(xié)議發(fā)展: 2,、協(xié)議具體介紹 IGMP協(xié)議運行于主機和 與主機相鄰的組播路由器(最后一跳路由器)之間,。 IGMP工作機制,龍哥就從兩個維度來說把,,就是主機和路由器,。 3、IGMP工作機制 聊IGMP工作機制前,,我個人還是偏向先了解一下報文格式,,如果有報文格式讀透了,然后再去研究原理,,就容易理解一些,。 IGMPv1報文格式 版本:即=1' 類型:0x11= ’成員關系查詢報文;0x12=成員加入報告報文。 組播地址: 如果是成員關系查詢報文,,即等于0.0.0.0 如果是成員加入報告報文,,即等于想要加入的組播地址。 結合上述格式,,龍哥再抓個包給大家看,,就會更加深刻了。 紅色部分,,我們可知,IGMP是基于IP之上進行封裝的,,協(xié)議號為2,。 在這,大家是不是能想到ICMP,,也是基于IP之上的,,協(xié)議號為1。不過與ICMP不同的是,,IGMP消息僅局限于本地數(shù)據(jù)鏈路,,為啥呢? 看圖說話,,TTL=1,。 4、IGMPv1成員加入 例如,,PC1想加入239.1.1.1這個組播組,,就會發(fā)送IGMPv1的成員報告報文,目的IP地址為想要加入的組,。路由器收到后,,就會了解到該網段有組播組239.1.1.1的成員,為其生成組播轉發(fā)表項(*,,239.1.1.1) , *表示任意組播源,。 路由器沒收到 成員報告 : 當PC1 發(fā)送 成員報告報文,表示想加入239.1.1.1時,,成員報告報文如下: 從報文,,我們一下就知道了: IGMPv1的成員報告報文類型為:0x12 報文的目的IP為 所要加入組的組播IP地址。 5,、IGMPv1 成員維護,。 值得一提的是,IGMPv1 里沒有查詢器這個東西,,是依賴組播協(xié)議PIM選擇產生的,。 下面,我們通過配一下PIM來看看是否就有查詢器了? 這樣,IGMP 查詢器就產生了,,就可以看到路由器周期發(fā)送查詢報文,。 路由器缺省每隔60s發(fā)送一次查詢報文,向224.0.0.1發(fā)生查詢報文:問問大家,,這個組還有成員嗎,? (224.0.0.1 代表組內所有主機系統(tǒng)) 該網段的所有主機都能收到這個查詢報文,同時會啟動一個延時定時器,,值為0到10s之間,,隨機取一個。誰先到期,,就由誰來發(fā)送響應報文,。這樣做的好處,避免重復的響應報文,。 PC1先到期,,然后就會發(fā)生響應報文。 其他PC也會收到PC1的響應報文,,就會清除延時定時器,,同時他們不會發(fā)響應報文的。 如果130s內沒有響應路由器,,路由器就將該組對應的轉發(fā)表項刪除了,。 6、IGMPv1 成員離開,。 IGMPv1 沒有定義離開報文,,所以PC離開時,不會發(fā)任何報文,,路由器無法感知到,,只能通過繼續(xù)周期查詢,如果查了3次還是沒有人響應,,則認為該組沒有成員了,。 |
|