MLD協議
出自 MBA智库百科(https://wiki.mbalib.com/)
MLD(Multicast Listener Discovery,組播偵聽發現協議)
目錄 |
MLD是組播偵聽發現協議的簡稱。它是在IGMPv2基礎上改進以支持IPv6功能的組播組管理協議。組播組管理協議主要負責對組播組的成員進行管理。一個組播路由器建立路由並傳送其組播組成員關係信息之前,它必須確定在本地網路上是否有接收主機加入了某個組播組。為此組播路由器和接收主機必須進行組成員關係的交互,這種功能是通過MLD(在IPv6網路上,在IPv4中使用IGMP協議)來實現的。
MLD協議有三類消息類型:
(1)組播徵聽者查詢消息(Type=130)。
①一般查詢消息。用於發現在直連的鏈路上哪些組播地址有組播徵聽者。
②特定組播地址查詢消息(MulticastAddressSpecificQuery)。用於判斷一個特定的組播地址在本地鏈路上是否有組播徵聽者。在MLDv2中還有一類消息即特定源組播查詢消息(MulticastAddressandSourceSpecificQuery),用於判斷一個特定源的組播地址在本地鏈路上是否有組播徵聽者。
(2)組播徵昕者報告消息(Type=131)。
(3)組播徵聽者Done消息(Type=132)。
這些查詢消息和應答消息有三種不同的報文交互方式,如圖1所示。
第一種交互方式(圖1中的1a和2a):這種交互方式是由路由器發起的。路由器作為詢問者向與其相連接的所有主機發送一個GeneralQueries報文。其目的地址是FF02::1。主機收到此消息後,應答一個包含當前組播地址狀態記錄的報文消息,此報文告訴路由器此主機希望接收哪個組播組或者哪些源發來的數據。
第二種交互方式(圖1中的2a和2b):這種交互方式是由主機發起的。當一個主機離開一個組播組時,它就要向路由器發送組播徵聽者完成消息,該消息包括一個狀態改變記錄。路由器收到此消息後,向其相連的鏈路上發送一個特定組播地址查詢消息。詢問是否還有主機加人了此特定的組播地址。在MLDv2中,如果指定了源,路由器向所有主機發送一個特定源組播查詢消息.詢問是否有主機加入此有源組播。
第三種交互方式(圖1中的1c和2c):這種交互方式是由路由器發起的。如果在路由器的組播地址表中某一個組播地址的相關定時器超時後.仍然沒有收到主機發來的包含StateChangeRecords的組播徵聽者報告消息,路由器則向所有主機發送一個特定組播地址查詢消息或者特定源組播查詢消息,確認該組播組或者此特定源組播是否還有組播徵聽者。