《資料通訊與網路》筆記–IGMP

來源:互聯網
上載者:User
文章目錄
  • 組管理
  • IGMP操作
  • 封裝

網際網路組管理協議(internet group management protocol,IGMP)是實現IP多播的輔助協議。那什麼是多播呢?

“多播”亦稱“多點傳送”(multicast),也就是一台主機發出的包可以同時被其他多個有資格的主機接收,這台主機和那些有資格的主機就形成了一個組,他們在組內的通訊是廣播式的。多播的工作原理是,將一個網路上的某些主機的網卡設定成多播傳送工作模式,指定其不過濾以某一個多播傳送地址作為目的物理地址的資料幀,這樣,這些主機的驅動程式中就可以同時接收以該多播傳送地址作為目的物理地址的資料幀,而其他主機的驅動程式卻接收不到,這些主機在邏輯上便形成了一個“多播”組。採用這種技術,相對廣播而言,可有效減輕網路上“多播”組之外的其他主機的負擔,因為發送給“多播”組的資料不會被傳送到它們的驅動程式中去處理,避免資源的無謂浪費。最開始的時候,設計這一技術的目的是彌補“廣播”(Broadcasting)通訊的不足。

實際上多播還是廣播(因為交換器無法找到多播幀的物理目的地址,關於多播幀的物理目的地址會在本文的後面講到),只是不加入組播組的機器在硬體一層就已經將組播進行過濾了,減少了機器運算資源的浪費,但是還是浪費了網路資源,所以思科公司制定了CGMP cisco group membership Protocol 思科群組成員關係協議,CGMP以Client/Server方式工作,路由器相當於伺服器,交換器相當於客戶機,路由器接收到IGMP 訊息後,以CGMP指令通知交換器多播接收者加入或退出多播組的情況,指導交換器進行準確的多播定向轉寄。 

扯遠了,我們回來繼續講IGMP吧~

組管理對於英特網上的多播,我們需要具有路由多播分組能力的路由器,這些路由器的路由表必須由某些多播路由協議更新,這些多播路由協議將在以後進行說明。IGMP不是一個多播路由協議,而是一個管理群組成員(group membership)的協議。在任何網路中,都存在有一個或多個多播路由器把多播分組分發給主機或者其他的路由器,IGMP協議為多播路由器(multicast router),提供關於串連到網路上的主機(路由器)成員狀態的資訊。一共有2個版本的IGMP,本文討論的是IGMPV2IGMP操作對於每一個組,都有一個路由器負責將多播分組分發給指定的那個組,如果與網路相連的多播路由器有3個,他們的群組識別碼都是相互排斥的。中,只有路由器R分發其多播地址為239.2.59.1的分組。路由器R是分發路由器,R1和R2依賴於R進行組列表的維護,它們是這個網路中R的接收者,但是對於其他的網路,R1和R2可能是分發路由器,但是不在本網路中。加入一個組一個主機或者路由器可加入一個組,每一個主機維護一個組內成員進程表,當一個進程要加入到一個新組時,他就向主機發送請求,該主機就在他的表中增加該進程的名字和所請求的組的名字。如果這是在該組中的第一個成員關係請求,則該主機就向多播路由器發送一個成員關係報告報文(地址為主播地址,在這個網段中的群組成員都能接收到,其他群組成員接收到該報文後就不再發送關係報告報文了),如果這不是第一個成員關係,則不需要發送成員關係報文,因為主機已經是組的成員,他已經接收了這個組的多播分組。離開一個組當主機發現沒有進程對一個特殊的組有加入請求時,他就發送一個離開報告,同樣的,當路由器發現沒有一個與網路連接的介面對一個特殊的組有加入請求,他就發現一個關於該組的離開報告(地址:224.0.0.2,所有的組播路由器)。但是當一個多播路由器接收到一個離開報告時,因為報告只是來自一個主機或者路由,可能還有其他的主機或者路由器依然存在對該組有加入請求,所以他不可能立即從它的多播地址表中清除該組。為了確保這樣做,路由器發送一個特殊查詢報文,並插入有關該組的群組識別碼或多播地址,對任意主機或路由器,路由器允許有一個規定的時間對主機或路由器做出響應。如果在規定的時間內沒有接收到加入請求,那麼路由器就假定網路中沒有忠實的成員,並從它的列表中刪除該組。監視成員關係主機或路由器可通過發送成員關係報告報文加入到一個組中,也可以通過發送一個離開報告離開一個組,但是發送這兩種類型的報告時不夠的。考慮這種情形,有一個主機對一個組中有加入請求,但是該主機關閉或者從系統中刪除。多播路由器將永遠接收不到離開報文。所以路由器周期性發送普通的查詢報文(地址:224.0.0.1,所有的主機),當主機或者路由器接收到普通查詢報文時,如果它對一個組有加入請求,就用一個成員關係報告來響應。封裝IGMP報文封裝在IP資料報中,而IP資料報本身有封裝在幀中。在網路層的封裝對於IGMP協議,IP分組的協議欄位是2,在協議欄位中攜帶這個值的每一個IP分組都有需要給IGMP協議傳送資料,當這個報文被封裝在IP資料報中,TTL的值設定為1。因為IGMP的域是在區域網路中,IGMP報文不能傳送到區域網路以外。這個TTL保證了報文不能離開區域網路。在資料連結層的封裝在網路層,IGMP報文被封裝在IP分組中,作為IP分組處理,但是IP分組有一個多播地址,所以ARP協議不能找到在資料連結層轉寄該分組對應的mac地址,接著發生的事情依賴於下面的資料連結層是否支援物理多播地址。大多數區域網路支援物理多播地址,乙太網路就是其中的一種。乙太網路的物理地址是6個位元組的。如果乙太網路地址的前25位是0000000100000000010111100,他被定義為TCP/IP協議的物理多播地址,餘下的23位可用來定一個組,要將IP多播地址轉換成乙太網路地址,多播路由器就要提取D類IP地址中最低的23位,並將其插入到乙太網路物理地址中。但是D類地址的群組識別碼是28位,這就是說5位沒有使用,這就表示2^5(32)個IP多播地址映射到一個多播地址,映射是多對一的,主機可能接收到並不屬於它涉及到的組的分組,為此,主機必須檢查IP地址,並丟棄任何不屬於他它的分組。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.