- EPON技術(shù) 您現(xiàn)在的位置 :首頁 -- 技術(shù)論壇 -- EPON技術(shù)
- 上一篇:幾種新興的家庭網(wǎng)絡技術(shù)
- 下一篇:QoS技術(shù)簡介
IGMP知識簡介
| 來源:金錢貓科技股份有限公司 發(fā)表于:2010-11-19 瀏覽4308次 |
?
一、協(xié)議簡介
IGMP是Internet Group Management Protocol(互聯(lián)網(wǎng)組管理協(xié)議)的簡稱。它是TCP/IP協(xié)議族中負責 IP組播成員管理的協(xié)議,用來在 IP主機和與其直接相鄰的組播路由器之間建立、維護組播組成員關(guān)系。
參與IP組播的主機可以在任意位置、任意時間、成員總數(shù)不受限制地加入或退出組播組。組播路由器不需要也不可能保存所有主機的成員關(guān)系,它只是通過IGMP協(xié)議了解每個接口連接的網(wǎng)段上是否存在某個組播組的接收者,即組成員。而主機方只需要保存自己加入了哪些組播組。
IGMP在主機與路由器之間是不對稱的:主機需要響應組播路由器的IGMP查詢報文,即以IGMP membership report報文響應;路由器周期性發(fā)送成員資格查詢報文,然后根據(jù)收到的響應報文確定某個特定組在自己所在子網(wǎng)上是否有主機加入,并且當收到主機的退出組的報告時,發(fā)出特定組的查詢報文(IGMP版本2),以確定某個特定組是否已無成員存在。
二、協(xié)議版本
IGMP具有三種版本,即 IGMP v1、v2 和 v3。
IGMPv1:主機可以加入組播組。沒有離開信息(leave messages)。路由器使用基于超時的機制去發(fā)現(xiàn)其成員不關(guān)注的組。
IGMPv2:該協(xié)議包含了離開信息,允許迅速向路由協(xié)議報告組成員終止情況,這對高帶寬組播組或易變型組播組成員而言是非常重要的。
IGMPv3:與以上兩種協(xié)議相比,該協(xié)議的主要改動為:允許主機指定它要接收通信流量的主機對象。來自網(wǎng)絡中其它主機的流量是被隔離的。IGMPv3也支持主機阻止那些來自于非要求的主機發(fā)送的網(wǎng)絡數(shù)據(jù)包。
三、協(xié)議變種
IGMP 協(xié)議變種有:
距離矢量組播路由選擇協(xié)議(DVMRP: Distance Vector Multicast Routing Protocol)
IGMP 用戶認證協(xié)議 (IGAP: IGMP for user Authentication Protocol)
路由器端口組管理協(xié)議(RGMP: Router-port Group Management Protocol)
四、版本改進
IGMP版本2對版本1所做的改進主要有:
(1)共享網(wǎng)段上組播路由器的選舉機制
共享網(wǎng)段表示一個網(wǎng)段上有多個組播路由器的情況。在這種情況下,由于此網(wǎng)段上運行IGMP的路由器都能從主機那里收到成員資格報告消息,因此,只需要一個路由器發(fā)送成員資格查詢消息,這就需要一個路由器選舉機制來確定一個路由器作為查詢器。
在IGMP版本1中,查詢器的選擇由組播路由協(xié)議決定;IGMP版本2對此做了改進,規(guī)定同一網(wǎng)段上有多個組播路由器時,具有最小IP地址的組播路由器被選舉出來充當查詢器。
?(2)IGMP版本2增加了離開組機制
在IGMP版本1中,主機悄然離開組播組,不會給任何組播路由器發(fā)出任何通知。造成組播路由器只能依靠組播組響應超時來確定組播成員的離開。而在版本2中,當一個主機決定離開時,如果它是對最近一條成員資格查詢消息作出響應的主機,那么它就會發(fā)送一條離開組的消息。
?(3)IGMP版本2增加了對特定組的查詢
在IGMP版本1中,組播路由器的一次查詢,是針對該網(wǎng)段下的所有組播組。這種查詢稱為普遍組查詢。
在IGMP版本2中,在普遍組查詢之外增加了特定組的查詢,這種查詢報文的目的IP地址為該組播組的IP地址,報文中的組地址域部分也為該組播組的IP地址。這樣就避免了屬于其它組播組成員的主機發(fā)送響應報文。
?(4)IGMP版本2增加了最大響應時間字段
IGMP版本2增加最大響應時間字段,以動態(tài)地調(diào)整主機對組查詢報文的響應時間。
五、工作過程
????????? IGMPv1 工作機制
IGMPv1主要基于查詢和響應機制來完成對組播組成員的管理。當一個網(wǎng)段內(nèi)有多臺組播路由器時,由于它們都能從主機那里收到IGMP 成員關(guān)系報告報文(MembershIP Report Message),因此只需要其中一臺路由器發(fā)送IGMP查詢報文(Query Message)就足夠了。這就需要有一個查詢器(Querier)的選舉機制來確定由哪臺路由器作為IGMP查詢器。對于IGMPv1來說,由組播路由協(xié)議(如PIM)選舉出唯一的組播信息轉(zhuǎn)發(fā)者DR(Designated Router,指定路由器)作為IGMP查詢器。
IGMPv1沒有專門定義離開組播組的報文。當運行IGMPv1的主機離開某組播組時,將不會向其要離開的組播組發(fā)送報告報文。當網(wǎng)段中不再存在該組播組的成員后,IGMP路由器將收不到任何發(fā)往該組播組的報告報文,于是IGMP路由器在一段時間之后便刪除該組播組所對應的組播轉(zhuǎn)發(fā)項。
????????? IGMPv2 的改進
與IGMPv1相比,IGMPv2增加了查詢器選舉機制和離開組機制。
1. 查詢器選舉機制
在IGMPv1中,當某共享網(wǎng)段上存在多個組播路由器時,由組播路由協(xié)議(如PIM)選舉的指定路由器充當查詢器。
在IGMPv2中,增加了獨立的查詢器選舉機制,其選舉過程如下:
(1)所有IGMPv2 路由器在初始時都認為自己是查詢器,并向本地網(wǎng)段內(nèi)的所有主
機和路由器發(fā)送IGMP 普遍組查詢(General Query)報文(目的地址為:224.0.0.1);
(2)本地網(wǎng)段中的其它IGMPv2路由器在收到該報文后,將報文的源IP地址與自己的接口地址作比較。通過比較,IP地址最小的路由器將成為查詢器,其它路由器成為非查詢器(Non-Querier);
(3)所有非查詢器上都會啟動一個定時器(即其它查詢器存在時間定時器OtherQuerier Present Timer)。在該定時器超時前,如果收到了來自查詢器的IGMP查詢報文,則重置該定時器;否則,就認為原查詢器失效,并發(fā)起新的查詢器選舉過程。
2. 離開組機制
在IGMPv1中,主機離開組播組時不會向組播路由器發(fā)出任何通知,導致組播路由器只能依靠組播組成員查詢的響應超時來獲知組播組成員的離開。
而在IGMPv2中,當一個主機離開某組播組時:
(1)該主機向本地網(wǎng)段內(nèi)的所有組播路由器(目的地址為224.0.0.2)發(fā)送離開組(Leave Group)報文;
(2)當查詢器收到該報文后,向該主機所聲明要離開的那個組播組發(fā)送特定組查詢(Group-Specific Query)報文(目的地址字段和組地址字段均填充為所要查詢的組播組地址);
(3)如果該網(wǎng)段內(nèi)還有該組播組的其它成員,則這些成員在收到特定組查詢報文后,會在該報文中所設定的最大響應時間(Max Response Time)內(nèi)發(fā)送成員關(guān)系報告報文;
(4)如果在最大響應時間內(nèi)收到了該組播組其它成員發(fā)送的成員關(guān)系報告報文,查詢器就會繼續(xù)維護該組播組的成員關(guān)系;否則,查詢器將認為該網(wǎng)段內(nèi)已無該組播組的成員,于是不再維護這個組播組的成員關(guān)系。
????????? IGMPv3 的改進
IGMPv3 在兼容和繼承IGMPv1 和IGMPv2 的基礎上,進一步增強了主機的控制能力,并增強了查詢和報告報文的功能?!?span lang="EN-US">
1. 主機控制能力的增強
IGMPv3增加了針對組播源的過濾模式(INCLUDE/EXCLUDE),使主機在加入某組播組G 的同時,能夠明確要求接收或拒絕來自某特定組播源S 的組播信息。當主機加入組播組時:
若要求只接收來自指定組播源如S1、S2、……的組播信息,則其報告報文中可以標記為INCLUDE Sources(S1,S2,……);
若拒絕接收來自指定組播源如S1、S2、……的組播信息,則其報告報文中可以標記為EXCLUDE Sources(S1,S2,……)。
2. 查詢和報告報文功能的增強
(1) 攜帶源地址的查詢報文
IGMPv3不僅支持IGMPv1的普遍組查詢和IGMPv2的特定組查詢,而且還增加了對特定源組查詢的支持:
????????? 普遍組查詢報文中,既不攜帶組地址,也不攜帶源地址;
????????? 特定組查詢報文中,攜帶組地址,但不攜帶源地址;
????????? 特定源組查詢報文中,既攜帶組地址,還攜帶一個或多個源地址。
(2) 包含多組記錄的報告報文
IGMPv3報告報文的目的地址為224.0.0.22,可以攜帶一個或多個組記錄。在每個組記錄中,包含有組播組地址和組播源地址列表。組記錄可以分為多種類型,如下:
IS_IN:表示組播組與組播源列表之間的過濾模式為INCLUDE,即只接收從指定組播源列表發(fā)往該組播組的組播數(shù)據(jù)。
IS_EX:表示組播組與組播源列表之間的過濾模式為EXCLUDE,即只接收從指定組播源列表之外的組播源發(fā)往該組播組的組播數(shù)據(jù)。
TO_IN:表示組播組與組播源列表之間的過濾模式由EXCLUDE 轉(zhuǎn)變?yōu)?span lang="EN-US">INCLUDE。
TO_EX:表示組播組與組播源列表之間的過濾模式由INCLUDE 轉(zhuǎn)變?yōu)?span lang="EN-US">EXCLUDE。
ALLOW:表示在現(xiàn)有狀態(tài)的基礎上,還希望從某些組播源接收組播數(shù)據(jù)。如果當前的對應關(guān)系為INCLUDE,則向現(xiàn)有組播源列表中添加這些組播源;如果當前的對應關(guān)系為EXCLUDE,則從現(xiàn)有組播源列表中刪除這些組播源。
BLOCK:表示在現(xiàn)有狀態(tài)的基礎上,不再希望從某些組播源接收組播數(shù)據(jù)。如果當前的對應關(guān)系為INCLUDE,則從現(xiàn)有組播源列表中刪除這些組播源;如果當前的對應關(guān)系為EXCLUDE,則向現(xiàn)有組播源列表中添加這些組播源。
六、IGMP的功能
IGMP 實現(xiàn)的功能是雙向的:
????????? 一方面通過 IGMP協(xié)議,主機通知本地路由器希望加入并接收某個特定多播組。
????????? 另一方面路由器通過 IGMP協(xié)議,周期性地查詢子網(wǎng)內(nèi)某個已知組的成員是否處于活動狀態(tài),即該網(wǎng)段是否仍有屬于某個多播組的成員,實現(xiàn)所連網(wǎng)絡組成員關(guān)系的收集與維護。
????????? 通過IGMP,路由器能夠記錄特定的多播組在某個主機上是否有組成員。
????????? IGMP在TCP/IP協(xié)議棧的位置:









