确立是什么意思| 梦见撞车是什么预兆| 紧急避孕药叫什么名字| 什么长而去| 戴菊是什么| 甲亢适合吃什么食物| 突然耳朵疼是什么原因| 除牛反绒是什么意思| 甲亢吃什么食物好| 睡觉手麻木是什么原因| 吴用的绰号是什么| 桑蚕丝被有什么好处| 小狗什么时候换牙| 2月15日是什么星座| np文是什么意思| 不现实什么意思| 吃榴莲对女人有什么好处| 山竹和什么不能一起吃| 镜面是什么意思| 什么样的女人不能娶| 华佗是什么生肖| 三栖明星是什么意思| 指甲不平有凹凸是什么原因| 疱疹性咽峡炎是什么引起的| 咖啡喝了有什么好处| 什么的公鸡| 女人梦见搬家预示什么| 血脂稠吃什么食物好| 右额头上有痣代表什么| 鲤鱼吃什么食物| 凌晨十二点是什么时辰| 尿胆原阳性是什么意思| dsa检查是什么| a4腰什么意思| 临床医学专业学什么| 中国民间为什么要吃腊八粥| 阴道口有点痒用什么药| 甲是什么生肖| 丁克族是什么意思| 晨跑有什么好处| 规培护士是什么意思| 湛江有什么好吃的| 剖腹产坐月子吃什么| 藏青色t恤配什么颜色裤子| 小姐的全套都有什么| 奔波是什么意思| 爷爷的兄弟叫什么| 脚底板疼用什么药| 桎梏什么意思| 美国现在是什么时间| 莲蓬什么季节成熟| 拿铁是什么咖啡| 养狗人容易得什么病| 心脏不舒服做什么检查| 散瞳什么意思| 11月5日是什么星座| 4月25日什么星座| 水可以加什么偏旁| 吃什么药马上硬起来| 头发油的快是什么原因| 骨质疏松检查什么项目| 1946年属什么生肖| 尿肌酐高是什么原因| 漠河什么时候可以看到极光| 猫爪草有什么功效| 马镫什么时候发明的| 肌酐高是什么原因引起的| 排骨炖什么菜好吃| 工作室是干什么的| 戒断反应是什么意思| 儒家思想的核心是什么| 末是什么意思| 颈椎属于什么科室| 减肥吃什么主食比较好| 鼎是干什么用的| 乌龟不能吃什么| 朝霞不出门晚霞行千里是什么意思| 早上起来嘴苦口臭是什么原因| 什么颜色衣服显皮肤白| 南瓜有什么功效| 眼睛有异物感是什么原因| 过敏性皮炎吃什么药好| 夜盲症是什么意思| 龟头有白色污垢是什么| 胎位不正是什么原因导致的| 什么叫柞蚕丝| 西瓜有什么品种| 果胶是什么东西| 张良为什么不救韩信| 隔离霜和bb霜有什么区别| 微信拉黑和删除有什么区别| 女人月经总是提前是什么原因| pangchi是什么牌子的手表| journey是什么意思| 肠道易激惹综合症是什么症状| 梵天是什么意思| 小孩子包皮挂什么科| 拉黑屎是什么原因| 糖尿病人可以吃什么| 蕃秀什么意思| 胆水是什么| 就请你给我多一点点时间是什么歌| 经期喝酒会有什么危害| 缸垫呲了什么症状| 无所不用其极是什么意思| 红细胞高是什么意思| 李白被人们称为什么| 淋巴癌是什么| 羟基丁酸在淘宝叫什么| 劫富济贫是什么意思| 什么叫资本运作| 骨癌有什么症状有哪些| 天顶星座是什么意思| 什么是劣药| 小腹左边疼是什么原因| 吃什么可以软化肝脏| 五什么四什么| 糖尿病喝什么茶| 黄精和什么搭配补肾效果最好| 宀与什么有关| 本座是什么意思| 12点半是什么时辰| 相向而行什么意思| 巴宝莉是什么牌子| 88属什么生肖| 口腔长期溃疡是什么原因引起的| 听天的动物是什么生肖| 黑加出念什么| 心脏病是什么症状| 纷至沓来什么意思| 什么是sku| 什么是嗳气| 隔离霜和防晒霜有什么区别| 12年义务教育什么时候开始| 1964属什么生肖| 什么是牙齿根管治疗| 什么是奢侈品| 孩子贫血吃什么补血最快| 什么风什么月| 计数是什么意思| 大红袍是什么茶| 蒙脱石是什么| 洛阳有什么山| 翻车鱼为什么叫翻车鱼| 小孩吃什么能长高| ofs是什么意思| 宝宝拉肚子吃什么药好得快| 为什么要做羊水穿刺检查| 黍米是什么米| 小孩晚上睡觉磨牙是什么原因| 吸入物变应原筛查是什么| 胃出血什么症状| 聚乙烯醇是什么材料| 关节痛去医院挂什么科| 吃什么能增加免疫力| 什么时间最容易怀孕| 朝拜的意思是什么| 梦到蜘蛛是什么意思| 每晚做梦是什么原因| 蝉联是什么意思| 胃不好不能吃什么| 安是什么单位| 腰痛宁为什么晚上吃| reebok是什么牌子| 早上起床有眼屎是什么原因| 碳酸氢钠有什么作用| 曱亢有什么症状| 血红蛋白偏高是什么意思| 老年人总睡觉是什么原因| 大肠杆菌感染吃什么药| vc什么意思| 结扎对男人有什么伤害| 吃什么最补肾壮阳| 520是什么意思表白| 什么是好朋友| 蛇五行属什么| 小龙女叫什么名字| 红线女是什么意思| 什么菜好消化| 恩施玉露属于什么茶| 丝状疣用什么药| 病字旁加且念什么| 什么叫五官| 黄体生成素高是什么原因| 亚临床甲亢是什么意思| 浑身疼吃什么药管用| 乙肝表面抗体阳性什么意思| 女生第一次是什么感觉| helen是什么意思| 海豹吃什么| ig是什么意思| 梦见吃苹果是什么意思| 钊字五行属什么| 出单是什么意思| 减肥早餐吃什么好| 什么的松果| 病理活检是什么意思| gst是什么| 硬卧代硬座是什么意思| 甚好是什么意思| 什么什么纸贵| 像什么一样| 梦见老虎是什么预兆| 唇炎应该挂什么科室| 吉祥是什么意思| 老是想拉尿是什么原因| 是什么意思| 梦见被子是什么意思| 什么是甲醛| 枸橼酸西地那非片有什么副作用| 11月27日是什么星座| 来月经可以吃什么水果| 尿酸高喝什么茶| 子字属于五行属什么| 什么动物最怕水| 肝不好吃什么| 拔罐出水泡是什么原因| 什么样的柳树| 卤蛋是什么意思| 障碍性贫血是什么病| 制作人是干什么的| 哈士蟆是什么东西| 男人吃生蚝补什么| 经常手淫对身体有什么危害| 穗字五行属什么| 儿童鼻窦炎吃什么药| 肛门口瘙痒涂什么药膏| 大便不成形什么原因| yuri是什么意思| 0x00000024蓝屏代码是什么意思| 尿胆原阳性是什么病| 什么是钓鱼网站| 巨蟹座喜欢什么星座| 锌中毒是什么症状| 7.9什么星座| 什么是有源音箱| 惊蛰是什么季节| 检查食道挂什么科| 红枣和灰枣有什么区别| 腰酸背痛吃什么药| 洋辣子学名叫什么| 结节病变是什么意思| 开心果是什么意思| 女生安全期是什么意思| 1975年属兔的是什么命| 爆肝是什么意思| 长期低血糖对人体有什么危害| 贫血严重会导致什么后果| 爬灰什么意思| bv中间型是什么意思| 刮宫后需要注意什么| 异常出汗是什么原因| 傻白甜是什么意思| 为什么会有狐臭| 什么的船只| 嫁给香港人意味着什么| 什么是情感| 干巴爹什么意思| 肛门瘙痒用什么药好| 鸟飞到头上什么预兆| 十八岁是什么年华| 米果念什么| 经常打屁是什么原因| 梅花什么季节开| 百度

Network Working Group                                        S. Deering
Request for Comments: 2710                                Cisco Systems
Category: Standards Track                                     W. Fenner
                                                          AT&T Research
                                                            B. Haberman
                                                                    IBM
                                                           October 1999


              Multicast Listener Discovery (MLD) for IPv6

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

Abstract

   This document specifies the protocol used by an IPv6 router to
   discover the presence of multicast listeners (that is, nodes wishing
   to receive multicast packets) on its directly attached links, and to
   discover specifically which multicast addresses are of interest to
   those neighboring nodes.  This protocol is referred to as Multicast
   Listener Discovery or MLD.  MLD is derived from version 2 of IPv4's
   Internet Group Management Protocol, IGMPv2.  One important difference
   to note is that MLD uses ICMPv6 (IP Protocol 58) message types,
   rather than IGMP (IP Protocol 2) message types.

1.  Definitions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [KEYWORDS].

2.  Introduction

   The purpose of Multicast Listener Discovery (MLD) is to enable each
   IPv6 router to discover the presence of multicast listeners (that is,
   nodes wishing to receive multicast packets) on its directly attached
   links, and to discover specifically which multicast addresses are of
   interest to those neighboring nodes.  This information is then



Deering, et al.             Standards Track                     [Page 1]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   provided to whichever multicast routing protocol is being used by the
   router, in order to ensure that multicast packets are delivered to
   all links where there are interested receivers.

   MLD is an asymmetric protocol, specifying different behaviors for
   multicast listeners and for routers.  For those multicast addresses
   to which a router itself is listening, the router performs both parts
   of the protocol, including responding to its own messages.

   If a router has more than one interface to the same link, it need
   perform the router part of MLD over only one of those interfaces.
   Listeners, on the other hand, must perform the listener part of MLD
   on all interfaces from which an application or upper-layer protocol
   has requested reception of multicast packets.

3.  Message Format

   MLD is a sub-protocol of ICMPv6, that is, MLD message types are a
   subset of the set of ICMPv6 messages, and MLD messages are identified
   in IPv6 packets by a preceding Next Header value of 58.  All MLD
   messages described in this document are sent with a link-local IPv6
   Source Address, an IPv6 Hop Limit of 1, and an IPv6 Router Alert
   option [RTR-ALERT] in a Hop-by-Hop Options header.  (The Router Alert
   option is necessary to cause routers to examine MLD messages sent to
   multicast addresses in which the routers themselves have no
   interest.)

   MLD messages have the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Code      |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Maximum Response Delay    |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                       Multicast Address                       +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+







Deering, et al.             Standards Track                     [Page 2]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


3.1.  Type

   There are three types of MLD messages:

   Multicast Listener Query (Type = decimal 130)

      There are two subtypes of Multicast Listener Query messages:

      - General Query, used to learn which multicast addresses have
        listeners on an attached link.
      - Multicast-Address-Specific Query, used to learn if a
        particular multicast address has any listeners on an attached
        link.

      These two subtypes are differentiated by the contents of the
      Multicast Address field, as described in section 3.6.

      Multicast Listener Report (Type = decimal 131)

      Multicast Listener Done (Type = decimal 132)

   In the rest of this document, the above messages types are referred
   to simply as "Query", "Report", and "Done".

3.2.  Code

   Initialized to zero by the sender; ignored by receivers.

3.3.  Checksum

   The standard ICMPv6 checksum, covering the entire MLD message plus a
   "pseudo-header" of IPv6 header fields [ICMPv6,IPv6].

3.4.  Maximum Response Delay

   The Maximum Response Delay field is meaningful only in Query
   messages, and specifies the maximum allowed delay before sending a
   responding Report, in units of milliseconds.  In all other messages,
   it is set to zero by the sender and ignored by receivers.

   Varying this value allows the routers to tune the "leave latency"
   (the time between the moment the last node on a link ceases listening
   to a particular multicast address and moment the routing protocol is
   notified that there are no longer any listeners for that address), as
   discussed in section 7.8.  It also allows tuning of the burstiness of
   MLD traffic on a link, as discussed in section 7.3.





Deering, et al.             Standards Track                     [Page 3]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


3.5.  Reserved

   Initialized to zero by the sender; ignored by receivers.

3.6.  Multicast Address

   In a Query message, the Multicast Address field is set to zero when
   sending a General Query, and set to a specific IPv6 multicast address
   when sending a Multicast-Address-Specific Query.

   In a Report or Done message, the Multicast Address field holds a
   specific IPv6 multicast address to which the message sender is
   listening or is ceasing to listen, respectively.

3.7.  Other fields

   The length of a received MLD message is computed by taking the IPv6
   Payload Length value and subtracting the length of any IPv6 extension
   headers present between the IPv6 header and the MLD message.  If that
   length is greater than 24 octets, that indicates that there are other
   fields present beyond the fields described above, perhaps belonging
   to a future backwards-compatible version of MLD.  An implementation
   of the version of MLD specified in this document MUST NOT send an MLD
   message longer than 24 octets and MUST ignore anything past the first
   24 octets of a received MLD message.  In all cases, the MLD checksum
   MUST be computed over the entire MLD message, not just the first 24
   octets.

4.  Protocol Description

   Note that defaults for timer values are described later in this
   document.  Timer and counter names appear in square brackets.

   Routers use MLD to learn which multicast addresses have listeners on
   each of their attached links.  Each router keeps a list, for each
   attached link, of which multicast addresses have listeners on that
   link, and a timer associated with each of those addresses.  Note that
   the router needs to learn only that listeners for a given multicast
   address are present on a link; it does NOT need to learn the identity
   (e.g., unicast address) of those listeners or even how many listeners
   are present.

   For each attached link, a router selects one of its link-local
   unicast addresses on that link to be used as the IPv6 Source Address
   in all MLD packets it transmits on that link.






Deering, et al.             Standards Track                     [Page 4]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   For each interface over which the router is operating the MLD
   protocol, the router must configure that interface to listen to all
   link-layer multicast address that can be generated by IPv6
   multicasts.  For example, an Ethernet-attached router must set its
   Ethernet address reception filter to accept all Ethernet multicast
   addresses that start with the hexadecimal value 3333 [IPv6-ETHER]; in
   the case of an Ethernet interface that does not support the filtering
   of such a range of multicast address, it must be configured to accept
   ALL Ethernet multicast addresses, in order to meet the requirements
   of MLD.

   With respect to each of its attached links, a router may assume one
   of two roles: Querier or Non-Querier.  There is normally only one
   Querier per link.  All routers start up as a Querier on each of their
   attached links.  If a router hears a Query message whose IPv6 Source
   Address is numerically less than its own selected address for that
   link, it MUST become a Non-Querier on that link.  If [Other Querier
   Present Interval] passes without receiving, from a particular
   attached link, any Queries from a router with an address less than
   its own, a router resumes the role of Querier on that link.

   A Querier for a link periodically [Query Interval] sends a General
   Query on that link, to solicit reports of all multicast addresses of
   interest on that link.  On startup, a router SHOULD send [Startup
   Query Count] General Queries spaced closely together [Startup Query
   Interval] on all attached links in order to quickly and reliably
   discover the presence of multicast listeners on those links.

   General Queries are sent to the link-scope all-nodes multicast
   address (FF02::1), with a Multicast Address field of 0, and a Maximum
   Response Delay of [Query Response Interval].

   When a node receives a General Query, it sets a delay timer for each
   multicast address to which it is listening on the interface from
   which it received the Query, EXCLUDING the link-scope all-nodes
   address and any multicast addresses of scope 0 (reserved) or 1
   (node-local).  Each timer is set to a different random value, using
   the highest clock granularity available on the node, selected from
   the range [0, Maximum Response Delay] with Maximum Response Delay as
   specified in the Query packet.  If a timer for any address is already
   running, it is reset to the new random value only if the requested
   Maximum Response Delay is less than the remaining value of the
   running timer.  If the Query packet specifies a Maximum Response
   Delay of zero, each timer is effectively set to zero, and the action
   specified below for timer expiration is performed immediately.






Deering, et al.             Standards Track                     [Page 5]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   When a node receives a Multicast-Address-Specific Query, if it is
   listening to the queried Multicast Address on the interface from
   which the Query was received, it sets a delay timer for that address
   to a random value selected from the range [0, Maximum Response
   Delay], as above.  If a timer for the address is already running, it
   is reset to the new random value only if the requested Maximum
   Response Delay is less than the remaining value of the running timer.
   If the Query packet specifies a Maximum Response Delay of zero, the
   timer is effectively set to zero, and the action specified below for
   timer expiration is performed immediately.

   If a node's timer for a particular multicast address on a particular
   interface expires, the node transmits a Report to that address via
   that interface; the address being reported is carried in both the
   IPv6 Destination Address field and the MLD Multicast Address field of
   the Report packet.  The IPv6 Hop Limit of 1 (as well as the presence
   of a link-local IPv6 Source Address) prevent the packet from
   traveling beyond the link to which the reporting interface is
   attached.

   If a node receives another node's Report from an interface for a
   multicast address while it has a timer running for that same address
   on that interface, it stops its timer and does not send a Report for
   that address, thus suppressing duplicate reports on the link.

   When a router receives a Report from a link, if the reported address
   is not already present in the router's list of multicast address
   having listeners on that link, the reported address is added to the
   list, its timer is set to [Multicast Listener Interval], and its
   appearance is made known to the router's multicast routing component.
   If a Report is received for a multicast address that is already
   present in the router's list, the timer for that address is reset to
   [Multicast Listener Interval].  If an address's timer expires, it is
   assumed that there are no longer any listeners for that address
   present on the link, so it is deleted from the list and its
   disappearance is made known to the multicast routing component.

   When a node starts listening to a multicast address on an interface,
   it should immediately transmit an unsolicited Report for that address
   on that interface, in case it is the first listener on the link.  To
   cover the possibility of the initial Report being lost or damaged, it
   is recommended that it be repeated once or twice after short delays
   [Unsolicited Report Interval].  (A simple way to accomplish this is
   to send the initial Report and then act as if a Multicast-Address-
   Specific Query was received for that address, and set a timer
   appropriately).





Deering, et al.             Standards Track                     [Page 6]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   When a node ceases to listen to a multicast address on an interface,
   it SHOULD send a single Done message to the link-scope all-routers
   multicast address (FF02::2), carrying in its Multicast Address field
   the address to which it is ceasing to listen.  If the node's most
   recent Report message was suppressed by hearing another Report
   message, it MAY send nothing, as it is highly likely that there is
   another listener for that address still present on the same link.  If
   this optimization is implemented, it MUST be able to be turned off
   but SHOULD default to on.

   When a router in Querier state receives a Done message from a link,
   if the Multicast Address identified in the message is present in the
   Querier's list of addresses having listeners on that link, the
   Querier sends [Last Listener Query Count] Multicast-Address-Specific
   Queries, one every [Last Listener Query Interval] to that multicast
   address.  These Multicast-Address-Specific Queries have their Maximum
   Response Delay set to [Last Listener Query Interval].  If no Reports
   for the address are received from the link after the response delay
   of the last query has passed, the routers on the link assume that the
   address no longer has any listeners there; the address is therefore
   deleted from the list and its disappearance is made known to the
   multicast routing component.  This process is continued to its
   resolution (i.e. until a Report is received or the last Multicast-
   Address-Specific Query is sent with no response) despite any
   transition from Querier to Non-Querier on this link.

   Routers in Non-Querier state MUST ignore Done messages.

   When a router in Non-Querier state receives a Multicast-Address-
   Specific Query, if its timer value for the identified multicast
   address is greater than [Last Listener Query Count] times the Maximum
   Response Delay specified in the message, it sets the address's timer
   to that latter value.

5.  Node State Transition Diagram

   Node behavior is more formally specified by the state transition
   diagram below.  A node may be in one of three possible states with
   respect to any single IPv6 multicast address on any single interface:

   - "Non-Listener" state, when the node is not listening to the address
      on the interface (i.e., no upper-layer protocol or application has
      requested reception of packets to that multicast address).  This
      is the initial state for all multicast addresses on all
      interfaces; it requires no storage in the node.






Deering, et al.             Standards Track                     [Page 7]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   - "Delaying Listener" state, when the node is listening to the
      address on the interface and has a report delay timer running for
      that address.

   - "Idle Listener" state, when the node is listening to the address on
      the interface and does not have a report delay timer running for
      that address.

   There are five significant events that can cause MLD state
   transitions:

   - "start listening" occurs when the node starts listening to the
      address on the interface.  It may occur only in the Non-Listener
      state.

   - "stop listening" occurs when the node stops listening to the
      address on the interface.  It may occur only in the Delaying
      Listener and Idle Listener states.

   - "query received" occurs when the node receives either a valid
      General Query message, or a valid Multicast-Address-Specific Query
      message.  To be valid, the Query message MUST come from a link-
      local IPv6 Source Address, be at least 24 octets long, and have a
      correct MLD checksum.  The Multicast Address field in the MLD
      message must contain either zero (a General Query) or a valid
      multicast address (a Multicast- Address-Specific Query).  A
      General Query applies to all multicast addresses on the interface
      from which the Query is received.  A Multicast-Address-Specific
      Query applies to a single multicast address on the interface from
      which the Query is received.  Queries are ignored for addresses in
      the Non-Listener state.

   - "report received" occurs when the node receives a valid MLD Report
      message.  To be valid, the Report message MUST come from a link-
      local IPv6 Source Address, be at least 24 octets long, and have a
      correct MLD checksum.  A Report applies only to the address
      identified in the Multicast Address field of the Report, on the
      interface from which the Report is received.  It is ignored in the
      Non-Listener or Idle Listener state.

   - "timer expired" occurs when the report delay timer for the address
      on the interface expires.  It may occur only in the Delaying
      Listener state.








Deering, et al.             Standards Track                     [Page 8]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   All other events, such as receiving invalid MLD messages or MLD
   message types other than Query or Report, are ignored in all states.

   There are seven possible actions that may be taken in response to the
   above events:

   - "send report" for the address on the interface.  The Report message
      is sent to the address being reported.

   - "send done" for the address on the interface.  If the flag saying
      we were the last node to report is cleared, this action MAY be
      skipped.  The Done message is sent to the link-scope all-routers
      address (FF02::2).

   - "set flag" that we were the last node to send a report for this
      address.

   - "clear flag" since we were not the last node to send a report for
      this address.

   - "start timer" for the address on the interface, using a delay value
      chosen uniformly from the interval [0, Maximum Response Delay],
      where Maximum Response Delay is specified in the Query.  If this
      is an unsolicited Report, the timer is set to a delay value chosen
      uniformly from the interval [0, [Unsolicited Report Interval] ].

   - "reset timer" for the address on the interface to a new value,
      using a delay value chosen uniformly from the interval [0, Maximum
      Response Delay], as described in "start timer".

   - "stop timer" for the address on the interface.

   In all of the following state transition diagrams, each state
   transition arc is labeled with the event that causes the transition,
   and, in parentheses, any actions taken during the transition.  Note
   that the transition is always triggered by the event; even if the
   action is conditional, the transition still occurs.














Deering, et al.             Standards Track                     [Page 9]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


                             ________________
                            |                |
                            |                |
                            |                |
                            |                |
                  --------->|  Non-Listener  |<---------
                 |          |                |          |
                 |          |                |          |
                 |          |                |          |
                 |          |________________|          |
                 |                   |                  |
                 | stop listening    | start listening  | stop listening
                 | (stop timer,      |(send report,     | (send done if
                 |  send done if     | set flag,        |  flag set)
                 |  flag set)        | start timer)     |
         ________|________           |          ________|________
        |                 |<---------          |                 |
        |                 |                    |                 |
        |                 |<-------------------|                 |
        |                 |   query received   |                 |
        |     Delaying    |    (start timer)   |      Idle       |
   ---->|     Listener    |------------------->|     Listener    |
  |     |                 |   report received  |                 |
  |     |                 |    (stop timer,    |                 |
  |     |                 |     clear flag)    |                 |
  |     |_________________|------------------->|_________________|
  | query received    |        timer expired
  | (reset timer if   |        (send report,
  |  Max Resp Delay   |         set flag)
  |  < current timer) |
   -------------------

   The link-scope all-nodes address (FF02::1) is handled as a special
   case.  The node starts in Idle Listener state for that address on
   every interface, never transitions to another state, and never sends
   a Report or Done for that address.

   MLD messages are never sent for multicast addresses whose scope is 0
   (reserved) or 1 (node-local).

   MLD messages ARE sent for multicast addresses whose scope is 2
   (link-local), including Solicited-Node multicast addresses [ADDR-
   ARCH], except for the link-scope, all-nodes address (FF02::1).








Deering, et al.             Standards Track                    [Page 10]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


6.  Router State Transition Diagram

   Router behavior is more formally specified by the state transition
   diagrams below.

   A router may be in one of two possible states with respect to any
   single attached link:

   - "Querier", when this router is designated to transmit MLD Queries
      on this link.

   - "Non-Querier", when there is another router designated to transmit
      MLD Queries on this link.

   The following three events can cause the router to change states:

   - "query timer expired" occurs when the timer set for query
      transmission expires.  This event is significant only when in the
      Querier state.

   - "query received from a router with a lower IP address" occurs when
      a valid MLD Query is received from a router on the same link with
      a lower IPv6 Source Address. To be valid, the Query message MUST
      come from a link-local IPv6 Source Address, be at least 24 octets
      long, and have a correct MLD checksum.

   - "other querier present timer expired" occurs when the timer set to
      note the presence of another querier with a lower IP address on
      the link expires.  This event is significant only when in the
      Non-Querier state.

   There are three actions that may be taken in response to the above
   events:

   - "start general query timer" for the attached link to [Query
      Interval].

   - "start other querier present timer" for the attached link to [Other
      Querier Present Interval].

   - "send general query" on the attached link.  The General Query is
      sent to the link-scope all-nodes address (FF02::1), and has a
      Maximum Response Delay of [Query Response Interval].








Deering, et al.             Standards Track                    [Page 11]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


                                     --------------------------------
                             _______|________  gen. query timer      |
 ---------                  |                |        expired        |
| Initial |---------------->|                | (send general query,  |
 ---------  (send gen. q.,  |                |  start gen. q. timer) |
     start initial gen. q.  |                |<----------------------
             timer)         |    Querier     |
                            |                |
                       -----|                |<---
                      |     |                |    |
                      |     |________________|    |
query received from a |                           | other querier
router with a lower   |                           | present timer
IP address            |                           | expired
(start other querier  |      ________________     | (send gen. query,
 present timer)       |     |                |    | start gen. q. timer)
                      |     |                |    |
                      |     |                |    |
                       ---->|      Non       |----
                            |    Querier     |
                            |                |
                            |                |
                       ---->|                |----
                      |     |________________|    |
                      | query received from a     |
                      | router with a lower IP    |
                      | address                   |
                      | (start other querier      |
                      |  present timer)           |
                       ---------------------------

   A router starts in the Initial state on all attached links, and
   immediately transitions to Querier state.

   In addition, to keep track of which multicast addresses have
   listeners, a router may be in one of three possible states with
   respect to any single IPv6 multicast address on any single attached
   link:

   - "No Listeners Present" state, when there are no nodes on the link
      that have sent a Report for this multicast address.  This is the
      initial state for all multicast addresses on the router; it
      requires no storage in the router.

   - "Listeners Present" state, when there is a node on the link that
      has sent a Report for this multicast address.





Deering, et al.             Standards Track                    [Page 12]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   - "Checking Listeners" state, when the router has received a Done
      message but has not yet heard a Report for the identified address.

   There are five significant events that can cause router state
   transitions:

   - "report received" occurs when the router receives a Report for the
      address from the link.  To be valid, the Report message MUST come
      from a link-local IPv6 Source Address, be at least 24 octets long,
      and have a correct MLD checksum.

   - "done received" occurs when the router receives a Done message for
      the address from the link.  To be valid, the Done message MUST
      come from a link-local IPv6 Source Address, be at least 24 octets
      long, and have a correct MLD checksum.  This event is significant
      only in the "Listerners Present" state and when the router is a
      Querier.

   - "multicast-address-specific query received" occurs when a router
      receives a Multicast-Address-Specific Query for the address from
      the link.  To be valid, the Query message MUST come from a link-
      local IPv6 Source Address, be at least 24 octets long, and have a
      correct MLD checksum.  This event is significant only in the
      "Listeners Present" state and when the router is a Non-Querier.

   - "timer expired" occurs when the timer set for a multicast address
      expires.  This event is significant only in the "Listeners
      Present" or "Checking Listeners" state.

   - "retransmit timer expired" occurs when the timer set to retransmit
      a Multicast-Address-Specific Query expires.  This event is
      significant only in the "Checking Listeners" state.

   There are seven possible actions that may be taken in response to the
   above events:

   - "start timer" for the address on the link - also resets the timer
      to its initial value [Multicast Listener Interval] if the timer is
      currently running.

   - "start timer*" for the address on the link - this alternate action
      sets the timer to the minimum of its current value and either
      [Last Listener Query Interval] * [Last Listener Query Count] if
      this router is a Querier, or the Maximum Response Delay in the
      Query message * [Last Listener Query Count] if this router is a
      non-Querier.





Deering, et al.             Standards Track                    [Page 13]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   - "start retransmit timer" for the address on the link [Last Listener
      Query Interval].

   - "clear retransmit timer" for the address on the link.

   - "send multicast-address-specific query" for the address on the
      link.  The Multicast-Address-Specific Query is sent to the address
      being queried, and has a Maximum Response Delay of [Last Listener
      Query Interval].

   - "notify routing +" internally notify the multicast routing protocol
      that there are listeners to this address on this link.

   - "notify routing -" internally notify the multicast routing protocol
      that there are no longer any listeners to this address on this
      link.

   The following state diagrams apply per group per link.  There are two
   diagrams; one for routers in Querier state and one for routers in
   Non-Querier state.  The transition between Querier and Non-Querier
   state on a link is handled specially.  All groups on that link in "No
   Listeners Present" or "Listeners Present" states switch state
   transition diagrams when the Querier/Non-Querier state transition
   occurs.  However, any groups in "Checking Listeners" state continue
   with the same state transition diagram until the "Checking Listeners"
   state is exited.  E.g. a router that starts as a Querier, receives a
   Done message for a group and then receives a Query from a router with
   a lower address (causing a transition to the Non-Querier state)
   continues to send multicast-address-specific queries for the group in
   question until it either receives a Report or its timer expires, at
   which time it starts performing the actions of a Non-Querier for this
   group.



















Deering, et al.             Standards Track                    [Page 14]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   The state transition diagram for a router in Querier state follows:

                          ________________
                         |                |
                         |                |timer expired
            timer expired|                |(notify routing -,
       (notify routing -)|  No Listeners  |clear rxmt tmr)
                 ------->|    Present     |<---------
                |        |                |          |
                |        |                |          |
                |        |________________|          |  ---------------
                |                    |               | | rexmt timer   |
                |     report received|               | |  expired      |
                |  (notify routing +,|               | | (send m-a-s   |
                |        start timer)|               | |  query,       |
      __________|______              |       ________|_|______ st rxmt |
     |                 |<------------       |                 | tmr)   |
     |                 |                    |                 |<-------
     |                 | report received    |                 |
     |                 | (start timer,      |                 |
     |                 |  clear rxmt tmr)   |                 |
     |    Listeners    |<-------------------|    Checking     |
     |     Present     | done received      |    Listeners    |
     |                 | (start timer*,     |                 |
     |                 |  start rxmt timer, |                 |
     |                 |  send m-a-s query) |                 |
 --->|                 |------------------->|                 |
|    |_________________|                    |_________________|
| report received |
| (start timer)   |
 -----------------




















Deering, et al.             Standards Track                    [Page 15]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   The state transition diagram for a router in Non-Querier state is
   similar, but non-Queriers do not send any messages and are only
   driven by message reception.

                              ________________
                             |                |
                             |                |
                timer expired|                |timer expired
           (notify routing -)|  No Listeners  |(notify routing -)
                   --------->|    Present     |<---------
                  |          |                |          |
                  |          |                |          |
                  |          |                |          |
                  |          |________________|          |
                  |                   |                  |
                  |                   |report received   |
                  |                   |(notify routing +,|
                  |                   | start timer)     |
          ________|________           |          ________|________
         |                 |<---------          |                 |
         |                 |  report received   |                 |
         |                 |  (start timer)     |                 |
         |    Listeners    |<-------------------|     Checking    |
         |     Present     | m-a-s query rec'd  |    Listeners    |
         |                 | (start timer*)     |                 |
    ---->|                 |------------------->|                 |
   |     |_________________|                    |_________________|
   | report received |
   | (start timer)   |
    -----------------

7.  List of timers and default values

   Most of these timers are configurable.  If non-default settings are
   used, they MUST be consistent among all routers on a single link.
   Note that parentheses are used to group expressions to make the
   algebra clear.

7.1.  Robustness Variable

   The Robustness Variable allows tuning for the expected packet loss on
   a link.  If a link is expected to be lossy, the Robustness Variable
   may be increased.  MLD is robust to (Robustness Variable - 1) packet
   losses.  The Robustness Variable MUST NOT be zero, and SHOULD NOT be
   one.  Default: 2






Deering, et al.             Standards Track                    [Page 16]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


7.2.  Query Interval

   The Query Interval is the interval between General Queries sent by
   the Querier.  Default: 125 seconds.

   By varying the [Query Interval], an administrator may tune the number
   of MLD messages on the link; larger values cause MLD Queries to be
   sent less often.

7.3.  Query Response Interval

   The Maximum Response Delay inserted into the periodic General
   Queries.  Default: 10000 (10 seconds)

   By varying the [Query Response Interval], an administrator may tune
   the burstiness of MLD messages on the link; larger values make the
   traffic less bursty, as node responses are spread out over a larger
   interval.  The number of seconds represented by the [Query Response
   Interval] must be less than the [Query Interval].

7.4.  Multicast Listener Interval

   The Multicast Listener Interval is the amount of time that must pass
   before a router decides there are no more listeners for an address on
   a link.  This value MUST be ((the Robustness Variable) times (the
   Query Interval)) plus (one Query Response Interval).

7.5.  Other Querier Present Interval

   The Other Querier Present Interval is the length of time that must
   pass before a router decides that there is no longer another router
   which should be the querier on a link.  This value MUST be ((the
   Robustness Variable) times (the Query Interval)) plus (one half of
   one Query Response Interval).

7.6.  Startup Query Interval

   The Startup Query Interval is the interval between General Queries
   sent by a Querier on startup.  Default: 1/4 the Query Interval.

7.7.  Startup Query Count

   The Startup Query Count is the number of Queries sent out on startup,
   separated by the Startup Query Interval.  Default: the Robustness
   Variable.






Deering, et al.             Standards Track                    [Page 17]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


7.8.  Last Listener Query Interval

   The Last Listener Query Interval is the Maximum Response Delay
   inserted into Multicast-Address-Specific Queries sent in response to
   Done messages, and is also the amount of time between Multicast-
   Address-Specific Query messages.  Default: 1000 (1 second)

   This value may be tuned to modify the "leave latency" of the link.  A
   reduced value results in reduced time to detect the departure of the
   last listener for an address.

7.9.  Last Listener Query Count

   The Last Listener Query Count is the number of Multicast-Address-
   Specific Queries sent before the router assumes there are no
   remaining listeners for an address on a link.  Default: the
   Robustness Variable.

7.10.  Unsolicited Report Interval

   The Unsolicited Report Interval is the time between repetitions of a
   node's initial report of interest in a multicast address.  Default:
   10 seconds.

8.  Message Destinations

   This information is provided elsewhere in the document, but is
   summarized here for convenience.

Message Type                       IPv6 Destination Address
------------                       ------------------------
General Query                      link-scope all-nodes (FF02::1)
Multicast-Address-Specific Query   the multicast address being queried
Report                             the multicast address being reported
Done                               link-scope all-routers (FF02::2)

9.  Security Considerations

   We consider the ramifications of a forged message of each type.  Note
   that the requirement that nodes verify that the IPv6 Source Address
   of all received MLD messages is a link-local address defends them
   from acting on forged MLD messages originated off-link, so we discuss
   only the effects of on-link forgery.








Deering, et al.             Standards Track                    [Page 18]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


   Query message:

        A forged Query message from a machine with a lower IP address
        than the current Querier will cause Querier duties to be
        assigned to the forger.  If the forger then sends no more Query
        messages, other routers' Other Querier Present timer will time
        out and one will resume the role of Querier.  During this time,
        if the forger ignores Done messages, traffic might flow to
        addresses with no listeners for up to [Multicast Listener
        Interval].

        A forged Query message sent to an address with listeners will
        cause one or more nodes that are listeners to that address to
        send a Report.  This causes a small amount of extra traffic on
        the link, but causes no protocol problems.

   Report message:

        A forged Report message may cause routers to think there are
        listeners for an address present on a link when there are not.
        However, since listening to a multicast address is generally an
        unprivileged operation, a local user may trivially gain the same
        result without forging any messages.

   Done message:

        A forged Done message will cause the Querier to send out
        Multicast-Address-Specific Queries for the address in question.
        This causes extra processing on each router and on each of the
        address's listeners, and extra packets on the link, but cannot
        cause loss of desired traffic.

10.  Acknowledgments

   MLD was derived from IGMPv2 [IGMPv2], which was designed by Rosen
   Sharma and Steve Deering and documented by Bill Fenner.















Deering, et al.             Standards Track                    [Page 19]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


11.  References

   [ADDR-ARCH]  Hinden, R. and S. Deering, "IP Version 6 Addressing
                Architecture", RFC 2373, July 1998.

   [ICMPv6]     Conta, A. and S. Deering, "Internet Control Message
                Protocol (ICMPv6) for the Internet Protocol Version 6
                (IPv6) Specification", RFC 2463, December 1998.

   [IGMPv2]     Fenner, W., "Internet Group Management Protocol, Version
                2", RFC 2236, November 1997.

   [IPv6]       Deering, S. and R. Hinden, "Internet Protocol, Version 6
                (IPv6) Specification", RFC 2460, December 1998.

   [IPv6-ETHER] Crawford, M., "Transmission of IPv6 Packets over
                Ethernet Networks", RFC 2464, December, 1998.

   [KEYWORDS]   Bradner, S., "Key words for use in RFCs to Indicate
                Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RTR-ALERT]  Partridge, C. and A. Jackson, "IPv6 Router Alert
                Option", RFC 2711, October 1999.

   [STD-PROC]   Bradner, S., "The Internet Standards Process -- Revision
                3", BCP 9, RFC 2026, October 1996.

























Deering, et al.             Standards Track                    [Page 20]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


12.  Authors' Addresses

   Stephen E. Deering
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, CA 95134-1706
   USA

   Phone: +1 408 527 8213
   EMail: deering@cisco.com


   William C. Fenner
   AT&T Research
   75 Willow Road
   Menlo Park, CA 94025
   USA

   Phone: +1 650 867 6073
   EMail: fenner@research.att.com


   Brian Haberman
   IBM Corporation
   800 Park Office Drive
   Research Triangle Park, NC  27709
   USA

   Phone: +1 919 254 2673
   EMail: haberman@raleigh.ibm.com





















Deering, et al.             Standards Track                    [Page 21]


RFC 2710         Multicast Listener Discovery for IPv6      October 1999


13.  Full Copyright Statement

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.



















Deering, et al.             Standards Track                    [Page 22]
保释金是什么意思 属牛跟什么属相最配 cu是什么意思 骨折吃什么药恢复快 蜂蜜水喝了有什么好处
栀子花什么时候开花 鹌鹑吃什么 pa代表什么意思 肾结石吃什么 有酒窝的女人代表什么
热感冒流鼻涕吃什么药 痰多是什么原因造成的 海葡萄是什么东西 桂枝茯苓丸主治什么病 忧郁症挂什么科
什么的花蕾 惘然什么意思 水瓶座有什么特点 通奸是什么意思 快递客服主要做什么
肺热吃什么hcv9jop3ns8r.cn m2是什么意思hcv8jop7ns8r.cn 落花流水什么意思hcv7jop4ns8r.cn 全员加速中什么时候播hcv8jop5ns8r.cn 肠系膜淋巴结炎吃什么药最有效hcv7jop4ns8r.cn
158是什么意思hcv9jop0ns7r.cn 容易口腔溃疡什么原因hcv7jop5ns4r.cn 吃什么减肥hcv9jop1ns4r.cn 1月26号是什么星座dayuxmw.com 产妇吃什么水果hcv9jop2ns9r.cn
心痛定又叫什么hcv9jop5ns9r.cn 属猪适合佩戴什么饰品hcv8jop6ns9r.cn 1947年属猪的是什么命hcv8jop0ns7r.cn 脚后跟疼什么原因hcv8jop0ns5r.cn 小资生活是什么意思hcv8jop3ns0r.cn
炉甘石是什么hcv9jop2ns8r.cn 为什么佛山有三个车牌hcv8jop1ns4r.cn gbm是什么意思jinxinzhichuang.com 2008是什么年hcv8jop3ns8r.cn 不典型鳞状细胞是什么意思hcv7jop9ns6r.cn
百度