IGMP:因特網組管理協議,手機TCP/IP協議族中負責IP組播成員管理的協議,它用來在接受者和與其直接相鄰的組播路由器之間創建、維護組播組成員關係。ide
接受者與路由器須要交換哪些信息呢spa
1.接受者須要聲明本身要接受哪一個組的數據blog
2.路由器須要瞭解哪些組播組存在接受者ip
組成員管理-IGMP:因特網組管理協議路由
IGMP協議運行在主機與組播路由器之間get
做用:it
主機側:經過IGMP協議向路由器通告組成員關係io
路由器側:經過IGMP協議維護組成員關係class
IGMPv1的工做機制:cli
IGMPv1版本支持兩種報文:
廣泛組查詢報文(General Query):路由器會週期性的向224.0.0.1這個地址發送查詢報文,默認週期時間爲60S
成員關係報告報文(Membership Report):用於主機加入某個組播組
若是所示,廣泛組查詢和響應過程以下:
①RTA發送廣泛組的查詢報文
②網段內的全部主機都收到該查詢報文,clintA和clintC是屬於G1組的,因此他們就啓動定時器Timer-G1,clintB屬於G2組,因此啓動timer-G2。定時器的範圍是0-10s,定時器先超時的主機發送該組的成員關係
③原本當RTA發送一個查詢報文的時候,同一個網段內的全部主機都須要給RTA發送一個消息確認,這樣就形成了網段內的大量流量,因此,當clintC收到clintA發送的成員關係報文以後,則中止定時器,不在發送針對G1的成員關係報文,這樣就減小了協議流量,這就是抑制機制
IGMPv1成員加入:
若是有clintD加入這個組,爲了快速接受組播數據,clintD會主動發送IGMP成員關係報文,標識但願加入這個組,RTA收到之後,就會向該網段轉發數據
組成員的離開:
靜默離開:不打任何招呼就走了,很是討厭啊
組成員離開的話,RTA不會收到組成員關係報文,以後會在130s以後會刪除這個組播
查詢器選舉:
依賴於組播路由協議
選舉規則:
優先級以大爲優
若相同,IP地址以大爲優
IGMPv2:
改進了組成員離開
ClintB向本網段內的全部組播路由器(畝的地址爲224.0.0.2)發送針對組G2離開的消息,而後查詢器收到了離開的報文,會發送針對這個G2的特定組的查詢報文,同時啓動組成員關係定時器,每隔1s發送一次,一共發送2次,速度仍是很快的,比V1版本強太多了。若是G2組沒有成員了,那麼路由器就刪除了這個組播,若是這個組播還有主機,那麼就接着向該網段轉發數據
改進了查詢器選舉
獨立的查詢器選舉機制
全部的IGMPv2版本的路由器在初始狀態都認爲本身是查詢器,而後他們向本網段內的路由器和主機發送廣泛組查詢報文,而後另外一個路由器收到這個查詢報文以後,會將報文中的IP地址和本身的IP地址進行比較,哪一個IP地址小就成爲查詢器,也就是winer。
IGMPv3版本:
這個版本很簡單啦,簡單的來講,就是哪些我想接受,哪些我不想接受,把不想接受的過濾掉,留下我想接受的,簡單吧。
各個版本的差別: