An MLD multicast device can be either a querier or a non-querier:
Querier
A querier is responsible for sending Multicast Listener Query messages to hosts and receiving Multicast Listener Report and Multicast Listener Done messages from hosts. A querier can then learn which multicast group has receivers on a specified network segment.
Non-querier
A non-querier only receives Multicast Listener Report messages from hosts to learn which multicast group has receivers. Then, based on the querier's action, the non-querier identifies which receivers leave multicast groups.
Generally, a network segment has only one querier. Multicast devices follow the same principle to select a querier. The process is as follows (using DeviceA, DeviceB, and DeviceC as examples):
After MLD is enabled on DeviceA, DeviceA considers itself a querier in the startup process by default and sends Multicast Listener Query messages on the network segment. If DeviceA receives a Multicast Listener Query message from DeviceB that has a lower link-local address, DeviceA changes from a querier to a non-querier. DeviceA starts the another-querier-existing timer and records DeviceB as the querier of the network segment.
If DeviceA is a non-querier and receives a Multicast Listener Query message from DeviceB in the querier state, DeviceA updates another-querier-existing timer; if the received Multicast Listener Query message is sent from DeviceC whose link-local address is lower than that of DeviceB in the querier state, DeviceA records DeviceC as the querier of the network segment and updates the another-querier-existing timer.
If DeviceA is a non-querier and the another-querier-existing timer expires, DeviceA changes to a querier.
In this document version, querier election can be implemented only among multicast devices that run the same MLD version on a network segment.