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的组播征听者报告消息,路由器则向所有主机发送一个特定组播地址查询消息或者特定源组播查询消息,确认该组播组或者此特定源组播是否还有组播征听者。