home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft__misc / This < prev    next >
Internet Message Format  |  1997-10-30  |  50KB

  1. Return-Path: fenner@parc.xerox.com 
  2. Received: from ns.cnri.reston.va.us (cnri [132.151.1.1])
  3.     by ietf.org (8.8.7/8.8.7a) with ESMTP id PAA18753
  4.     for <internet-drafts@ietf.org>; Thu, 23 Oct 1997 15:16:29 -0400 (EDT)
  5. Received: from alpha.xerox.com (alpha.Xerox.COM [13.1.64.93])
  6.     by ns.cnri.reston.va.us (8.8.5/8.8.7a) with SMTP id PAA16884
  7.     for <internet-drafts@cnri.reston.va.us>; Thu, 23 Oct 1997 15:19:31 -0400 (EDT)
  8. Received: from crevenia.parc.xerox.com ([13.2.116.11]) by alpha.xerox.com with SMTP id <52259(5)>; Thu, 23 Oct 1997 12:15:46 PDT
  9. Received: by crevenia.parc.xerox.com id <177487>; Thu, 23 Oct 1997 12:15:38 -0700
  10. From: Bill Fenner <fenner@parc.xerox.com>
  11. To: fenner@parc.xerox.com, internet-drafts@cnri.reston.va.us
  12. Subject: IGMPv2 draft update
  13. Message-Id: <97Oct23.121538pdt.177487@crevenia.parc.xerox.com>
  14. Date: Thu, 23 Oct 1997 12:15:28 PDT
  15. Content-Type: text
  16. Content-Length: 48938
  17.  
  18. Internet Engineering Task Force   Inter-Domain Multicast Routing Working Group
  19. INTERNET-DRAFT                                                       W. Fenner
  20. draft-ietf-idmr-igmp-v2-07.txt                                      Xerox PARC
  21. Obsoletes: Appendix I of RFC1112                              October 23, 1997
  22.                                                             Expires April 1997
  23.  
  24.              Internet Group Management Protocol, Version 2
  25.  
  26.  
  27. Status of this Memo
  28.  
  29. This document is an Internet Draft.   Internet Drafts are working
  30. documents of the Internet Engineering  Task Force (IETF), its  Areas,
  31. and its  Working Groups.   Note that other  groups may also  distribute
  32. working documents  as Internet Drafts).
  33.  
  34. Internet Drafts  are draft  documents valid  for a  maximum of  six
  35. months.  Internet Drafts may be  updated, replaced, or  obsoleted by
  36. other  documents at any time.   It  is not appropriate  to use Internet
  37. Drafts as  reference material or  to cite  them  other than  as a
  38. "working  draft" or  "work  in progress."
  39.  
  40. Please check  the I-D  abstract  listing contained  in each  Internet
  41. Draft directory to learn the current status of this or any other
  42. Internet Draft.
  43.  
  44. Distribution of this document is unlimited.
  45.  
  46.                                 Abstract
  47.  
  48.      This draft documents IGMPv2, used by IP hosts to report their
  49.      multicast group memberships to routers.  It replaces Appendix I of
  50.      RFC1112.
  51.  
  52.      IGMPv2 allows group membership termination to be quickly reported
  53.      to the routing protocol, which is important for high-bandwidth
  54.      multicast groups and/or subnets with highly volatile group
  55.      membership.
  56.  
  57. This document is a product of the Inter-Domain Multicast Routing working
  58. group within the Internet Engineering Task Force.  Comments are
  59. solicited and should be addressed to the working group's mailing list at
  60. idmr@cs.ucl.ac.uk and/or the author(s).
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. Fenner                     Expires April 1997                   [Page 1]
  70.  
  71. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  72.  
  73.  
  74. 1.  Definitions
  75.  
  76. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  77. "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
  78. document are to be interpreted as described in RFC 2119 [Bradner97].
  79.  
  80. 2.  Introduction
  81.  
  82. The Internet Group Management Protocol (IGMP) is used by IP hosts to
  83. report their multicast group memberships to any immediately-neighboring
  84. multicast routers.  This memo describes only the use of IGMP between
  85. hosts and routers to determine group membership.  Routers that are
  86. members of multicast groups are expected to behave as hosts as well as
  87. routers, and may even respond to their own queries.  IGMP may also be
  88. used between routers, but such use is not specified here.
  89.  
  90. Like ICMP, IGMP is a integral part of IP.  It is required to be
  91. implemented by all hosts wishing to receive IP multicasts.  IGMP
  92. messages are encapsulated in IP datagrams, with an IP protocol number of
  93. 2.  All IGMP messages described in this document are sent with IP TTL 1,
  94. and contain the IP Router Alert option [Katz97] in their IP header.  All
  95. IGMP messages of concern to hosts have the following format:
  96.  
  97.  0                   1                   2                   3
  98.  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
  99. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  100. |      Type     | Max Resp Time |           Checksum            |
  101. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  102. |                         Group Address                         |
  103. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  104.  
  105.  
  106. 2.1.  Type
  107.  
  108.      There are three types of IGMP messages of concern to the host-
  109.      router interaction:
  110.  
  111.      0x11 = Membership Query
  112.           There are two sub-types of Membership Query messages:
  113.           - General Query, used to learn which groups have members on an
  114.             attached network.
  115.           - Group-Specific Query, used to learn if a particular group
  116.             has any members on an attached network.
  117.           These two messages are differentiated by the Group Address, as
  118.           described in section 1.4 .  Membership Query messages are
  119.           referred to simply as "Query" messages.
  120.  
  121.      0x16 = Version 2 Membership Report
  122.  
  123.  
  124.  
  125. Fenner                     Expires April 1997                   [Page 2]
  126.  
  127. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  128.  
  129.  
  130.      0x17 = Leave Group
  131.  
  132.      There is an additional type of message, for backwards-compatibility
  133.      with IGMPv1:
  134.  
  135.      0x12 = Version 1 Membership Report
  136.  
  137.      This document refers to Membership Reports simply as "Reports".
  138.      When no version is specified, the statement applies equally to both
  139.      versions.
  140.  
  141.      Unrecognized message types should be silently ignored.  New message
  142.      types may be used by newer versions of IGMP, by multicast routing
  143.      protocols, or other uses.
  144.  
  145. 2.2.  Max Response Time
  146.  
  147.      The Max Response Time field is meaningful only in Membership Query
  148.      messages, and specifies the maximum allowed time before sending a
  149.      responding report in units of 1/10 second.  In all other messages,
  150.      it is set to zero by the sender and ignored by receivers.
  151.  
  152.      Varying this setting allows IGMPv2 routers to tune the "leave
  153.      latency" (the time between the moment the last host leaves a group
  154.      and when the routing protocol is notified that there are no more
  155.      members), as discussed in section 7.8.  It also allows tuning of
  156.      the burstiness of IGMP traffic on a subnet, as discussed in section
  157.      7.3.
  158.  
  159. 2.3.  Checksum
  160.  
  161.      The checksum is the 16-bit one's complement of the one's complement
  162.      sum of the whole IGMP message (the entire IP payload).  For
  163.      computing the checksum, the checksum field is set to zero.  When
  164.      receiving packets, the checksum MUST be verified before processing
  165.      a packet.
  166.  
  167. 2.4.  Group Address
  168.  
  169.      In a Membership Query message, the group address field is set to
  170.      zero when sending a General Query, and set to the group address
  171.      being queried when sending a Group-Specific Query.
  172.  
  173.      In a Membership Report or Leave Group message, the group address
  174.      field holds the IP multicast group address of the group being
  175.      reported or left.
  176.  
  177.  
  178.  
  179.  
  180.  
  181. Fenner                     Expires April 1997                   [Page 3]
  182.  
  183. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  184.  
  185.  
  186. 2.5.  Other fields
  187.  
  188.      Note that IGMP messages may be longer than 8 octets, especially
  189.      future backwards-compatible versions of IGMP.  As long as the Type
  190.      is one that is recognized, an IGMPv2 implementation MUST ignore
  191.      anything past the first 8 octets while processing the packet.
  192.      However, the IGMP checksum is always computed over the whole IP
  193.      payload, not just over the first 8 octets.
  194.  
  195. 3.  Protocol Description
  196.  
  197. Note that defaults for timer values are described later in this
  198. document.  Timer and counter names appear in square brackets.
  199.  
  200. The term "interface" is sometimes used in this document to mean "the
  201. primary interface on an attached network"; if a router has multiple
  202. physical interfaces on a single network this protocol need only run on
  203. one of them.  Hosts, on the other hand, need to perform their actions on
  204. all interfaces that have memberships associated with them.
  205.  
  206. Multicast routers use IGMP to learn which groups have members on each of
  207. their attached physical networks.  A multicast router keeps a list of
  208. multicast group memberships for each attached network, and a timer for
  209. each membership.  "Multicast group memberships" means the presence of at
  210. least one member of a multicast group on a given attached network, not a
  211. list of all of the members.  With respect to each of its attached
  212. networks, a multicast router may assume one of two roles: Querier or
  213. Non-Querier.  There is normally only one Querier per physical network.
  214. All multicast routers start up as a Querier on each attached network.
  215. If a multicast router hears a Query message from a router with a lower
  216. IP address, it MUST become a Non-Querier on that network.  If a router
  217. has not heard a Query message from another router for [Other Querier
  218. Present Interval], it resumes the role of Querier.  Routers periodically
  219. [Query Interval] send a General Query on each attached network for which
  220. this router is the Querier, to solicit membership information.  On
  221. startup, a router SHOULD send [Startup Query Count] General Queries
  222. spaced closely together [Startup Query Interval] in order to quickly and
  223. reliably determine membership information.  A General Query is addressed
  224. to the all-systems multicast group (224.0.0.1), has a Group Address
  225. field of 0, and has a Max Response Time of [Query Response Interval].
  226.  
  227. When a host receives a General Query, it sets delay timers for each
  228. group (excluding the all-systems group) of which it is a member on the
  229. interface from which it received the query.  Each timer is set to a
  230. different random value, using the highest clock granularity available on
  231. the host, selected from the range (0, Max Response Time] with Max
  232. Response Time as specified in the Query packet.  When a host receives a
  233. Group-Specific Query, it sets a delay timer to a random value selected
  234.  
  235.  
  236.  
  237. Fenner                     Expires April 1997                   [Page 4]
  238.  
  239. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  240.  
  241.  
  242. from the range (0, Max Response Time] as above for the group being
  243. queried if it is a member on the interface from which it received the
  244. query.  If a timer for the group is already running, it is reset to the
  245. random value only if the requested Max Response Time is less than the
  246. remaining value of the running timer.  When a group's timer expires, the
  247. host multicasts a Version 2 Membership Report to the group, with IP TTL
  248. of 1.  If the host receives another host's Report (version 1 or 2) while
  249. it has a timer running, it stops its timer for the specified group and
  250. does not send a Report, in order to suppress duplicate Reports.
  251.  
  252. When a router receives a Report, it adds the group being reported to the
  253. list of multicast group memberships on the network on which it received
  254. the Report and sets the timer for the membership to the [Group
  255. Membership Interval].  Repeated Reports refresh the timer.  If no
  256. Reports are received for a particular group before this timer has
  257. expired, the router assumes that the group has no local members and that
  258. it need not forward remotely-originated multicasts for that group onto
  259. the attached network.
  260.  
  261. When a host joins a multicast group, it should immediately transmit an
  262. unsolicited Version 2 Membership Report for that group, in case it is
  263. the first member of that group on the network.  To cover the possibility
  264. of the initial Membership Report being lost or damaged, it is
  265. recommended that it be repeated once or twice after short delays
  266. [Unsolicited Report Interval].  (A simple way to accomplish this is to
  267. send the initial Version 2 Membership Report and then act as if a
  268. Group-Specific Query was received for that group, and set a timer
  269. appropriately).
  270.  
  271. When a host leaves a multicast group, if it was the last host to reply
  272. to a Query with a Membership Report for that group, it SHOULD send a
  273. Leave Group message to the all-routers multicast group (224.0.0.2). If
  274. it was not the last host to reply to a Query, it MAY send nothing as
  275. there must be another member on the subnet.  This is an optimization to
  276. reduce traffic; a host without sufficient storage to remember whether or
  277. not it was the last host to reply MAY always send a Leave Group message
  278. when it leaves a group.  Routers SHOULD accept a Leave Group message
  279. addressed to the group being left, in order to accommodate
  280. implementations of an earlier version of this standard.  Leave Group
  281. messages are addressed to the all-routers group because other group
  282. members have no need to know that a host has left the group, but it does
  283. no harm to address the message to the group.
  284.  
  285. When a Querier receives a Leave Group message for a group that has group
  286. members on the reception interface, it sends [Last Member Query Count]
  287. Group-Specific Queries every [Last Member Query Interval] to the group
  288. being left.  These Group-Specific Queries have their Max Response time
  289. set to [Last Member Query Interval].  If no Reports are received after
  290.  
  291.  
  292.  
  293. Fenner                     Expires April 1997                   [Page 5]
  294.  
  295. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  296.  
  297.  
  298. the response time of the last query expires, the routers assume that the
  299. group has no local members, as above.  Any Querier to non-Querier
  300. transition is ignored during this time; the same router keeps sending
  301. the Group-Specific Queries.
  302.  
  303. Non-Queriers MUST ignore Leave Group messages, and Queriers SHOULD
  304. ignore Leave Group messages for which there are no group members on the
  305. reception interface.
  306.  
  307. When a non-Querier receives a Group-Specific Query message, if its
  308. existing group membership timer is greater than [Last Member Query
  309. Count] times the Max Response Time specified in the message, it sets its
  310. group membership timer to that value.
  311.  
  312. 4.  Compatibility with IGMPv1 Routers
  313.  
  314. An IGMPv2 host may be placed on a subnet where the Querier router has
  315. not yet been upgraded to IGMPv2.  The following requirements apply:
  316.  
  317.      The IGMPv1 router will send General Queries with the Max Response
  318.      Time set to 0.  This MUST be interpreted as a value of 100 (10
  319.      seconds).
  320.  
  321.      The IGMPv1 router expects Version 1 Membership Reports in response
  322.      to its Queries, and will not pay attention to Version 2 Membership
  323.      Reports.  Therefore, a state variable MUST be kept for each
  324.      interface, describing whether the multicast Querier on that
  325.      interface is running IGMPv1 or IGMPv2.  This variable MUST be based
  326.      upon whether or not an IGMPv1 query was heard in the last [Version
  327.      1 Router Present Timeout] seconds, and MUST NOT be based upon the
  328.      type of the last Query heard.  This state variable MUST be used to
  329.      decide what type of Membership Reports to send for unsolicited
  330.      Membership Reports as well as Membership Reports in response to
  331.      Queries.
  332.  
  333.      An IGMPv2 host MAY suppress Leave Group messages on a network where
  334.      the Querier is using IGMPv1.
  335.  
  336. An IGMPv2 router may be placed on a subnet where at least one router on
  337. the subnet has not yet been upgraded to IGMPv2.  The following
  338. requirements apply:
  339.  
  340.      If any IGMPv1 routers are present, the querier MUST use IGMPv1.
  341.      The use of IGMPv1 must be administratively configured, as there is
  342.      no reliable way of dynamically determining whether IGMPv1 routers
  343.      are present on a network.  Implementations MAY provide a way for
  344.      system administrators to enable the use of IGMPv1 on their routers;
  345.      in the absence of explicit configuration, the configuration MUST
  346.  
  347.  
  348.  
  349. Fenner                     Expires April 1997                   [Page 6]
  350.  
  351. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  352.  
  353.  
  354.      default to IGMPv2.  When in IGMPv1 mode, routers MUST send Periodic
  355.      Queries with a Max Response Time of 0, and MUST ignore Leave Group
  356.      messages.  They SHOULD also warn about receiving an IGMPv2 query,
  357.      although such warnings MUST be rate-limited.
  358.  
  359.      If a router is not explicitly configured to use IGMPv1 and hears an
  360.      IGMPv1 Query, it SHOULD log a warning.  These warnings MUST be
  361.      rate-limited.
  362.  
  363. 5.  Compatibility with IGMPv1 Hosts
  364.  
  365. An IGMPv2 host may be placed on a subnet where there are hosts that have
  366. not yet been upgraded to IGMPv2.  The following requirement applies:
  367.  
  368.      The host MUST allow its Membership Report to be suppressed by
  369.      either a Version 1 Membership Report or a Version 2 Membership
  370.      Report.
  371.  
  372. An IGMPv2 router may be placed on a subnet where there are hosts that
  373. have not yet been upgraded to IGMPv2.  The following requirements apply:
  374.  
  375.      If a router receives a Version 1 Membership Report, it MUST set a
  376.      timer to note that there are version 1 hosts present which are
  377.      members of the group for which it heard the report.  This timer
  378.      should be the same as the [Group Membership Interval].
  379.  
  380.      If there are version 1 hosts present for a particular group, a
  381.      router MUST ignore any Leave Group messages that it receives for
  382.      that group.
  383.  
  384. 6.  Host State Diagram
  385.  
  386. Host behavior is more formally specified by the state transition diagram
  387. below.  A host may be in one of three possible states with respect to
  388. any single IP multicast group on any single network interface:
  389.  
  390. - "Non-Member" state, when the host does not belong to the group on the
  391.   interface.  This is the initial state for all memberships on all
  392.   network interfaces; it requires no storage in the host.
  393.  
  394. - "Delaying Member" state, when the host belongs to the group on the
  395.   interface and has a report delay timer running for that membership.
  396.  
  397. - "Idle Member" state, when the host belongs to the group on the
  398.   interface and does not have a report delay timer running for that
  399.   membership.
  400.  
  401. There are five significant events that can cause IGMP state transitions:
  402.  
  403.  
  404.  
  405. Fenner                     Expires April 1997                   [Page 7]
  406.  
  407. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  408.  
  409.  
  410. - "join group" occurs when the host decides to join the group on the
  411.   interface.  It may occur only in the Non-Member state.
  412.  
  413. - "leave group" occurs when the host decides to leave the group on the
  414.   interface.  It may occur only in the Delaying Member and Idle Member
  415.   states.
  416.  
  417. - "query received" occurs when the host receives either a valid General
  418.   Membership Query message, or a valid Group-Specific Membership Query
  419.   message.  To be valid, the Query message must be at least 8 octets
  420.   long, and have a correct IGMP checksum.  The group address in the IGMP
  421.   header must either be zero (a General Query) or a valid multicast
  422.   group address (a Group-Specific Query).  A General Query applies to
  423.   all memberships on the interface from which the Query is received.  A
  424.   Group-Specific Query applies to membership in a single group on the
  425.   interface from which the Query is received.  Queries are ignored for
  426.   memberships in the Non-Member state.
  427.  
  428. - "report received" occurs when the host receives a valid IGMP
  429.   Membership Report message (Version 1 or Version 2).  To be valid, the
  430.   Report message must be at least 8 octets long and have a correct IGMP
  431.   checksum.  A Membership Report applies only to the membership in the
  432.   group identified by the Membership Report, on the interface from which
  433.   the Membership Report is received.  It is ignored for memberships in
  434.   the Non-Member or Idle Member state.
  435.  
  436. - "timer expired" occurs when the report delay timer for the group on
  437.   the interface expires.  It may occur only in the Delaying Member
  438.   state.
  439.  
  440. All other events, such as receiving invalid IGMP messages, or IGMP
  441. messages other than Query or Report, are ignored in all states.
  442.  
  443. There are seven possible actions that may be taken in response to the
  444. above events:
  445.  
  446. - "send report" for the group on the interface.  The type of report is
  447.   determined by the state of the interface.  The Report Message is sent
  448.   to the group being reported.
  449.  
  450. - "send leave" for the group on the interface.  If the interface state
  451.   says the Querier is running IGMPv1, this action SHOULD be skipped.  If
  452.   the flag saying we were the last host to report is cleared, this
  453.   action MAY be skipped.  The Leave Message is sent to the ALL-ROUTERS
  454.   group (224.0.0.2).
  455.  
  456. - "set flag" that we were the last host to send a report for this group.
  457.  
  458.  
  459.  
  460.  
  461. Fenner                     Expires April 1997                   [Page 8]
  462.  
  463. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  464.  
  465.  
  466. - "clear flag" since we were not the last host to send a report for this
  467.   group.
  468.  
  469. - "start timer" for the group on the interface, using a delay value
  470.   chosen uniformly from the interval (0, Max Response Time], where Max
  471.   Response time is specified in the Query.  If this is an unsolicited
  472.   Report, the timer is set to a delay value chosen uniformly from the
  473.   interval (0, [Unsolicited Report Interval] ].
  474.  
  475. - "reset timer" for the group on the interface to a new value, using a
  476.   delay value chosen uniformly from the interval (0, Max Response Time],
  477.   as described in "start timer".
  478.  
  479. - "stop timer" for the group on the interface.
  480.  
  481. In all of the following state diagrams, each state transition arc is
  482. labeled with the event that causes the transition, and, in parentheses,
  483. any actions taken during the transition.  Note that the transition is
  484. always triggered by the event; even if the action is conditional, the
  485. transition still occurs.
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517. Fenner                     Expires April 1997                   [Page 9]
  518.  
  519. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  520.  
  521.  
  522.  
  523.                               ________________
  524.                              |                |
  525.                              |                |
  526.                              |                |
  527.                              |                |
  528.                    --------->|   Non-Member   |<---------
  529.                   |          |                |          |
  530.                   |          |                |          |
  531.                   |          |                |          |
  532.                   |          |________________|          |
  533.                   |                   |                  |
  534.                   | leave group       | join group       | leave group
  535.                   | (stop timer,      |(send report,     | (send leave if
  536.                   |  send leave if    | set flag,        |  flag set)
  537.                   |  flag set)        | start timer)     |
  538.           ________|________           |          ________|________
  539.          |                 |<---------          |                 |
  540.          |                 |                    |                 |
  541.          |                 |<-------------------|                 |
  542.          |                 |   query received   |                 |
  543.          | Delaying Member |    (start timer)   |   Idle Member   |
  544.     ---->|                 |------------------->|                 |
  545.    |     |                 |   report received  |                 |
  546.    |     |                 |    (stop timer,    |                 |
  547.    |     |                 |     clear flag)    |                 |
  548.    |     |_________________|------------------->|_________________|
  549.    | query received    |        timer expired
  550.    | (reset timer if   |        (send report,
  551.    |  Max Resp Time    |         set flag)
  552.    |  < current timer) |
  553.     -------------------
  554.  
  555.  
  556. The all-systems group (address 224.0.0.1) is handled as a special case.
  557. The host starts in Idle Member state for that group on every interface,
  558. never transitions to another state, and never sends a report for that
  559. group.
  560.  
  561. In addition, a host may be in one of two possible states with respect to
  562. any single network interface:
  563.  
  564. - "No IGMPv1 Router Present", when the host has not heard an IGMPv1
  565.   style query for the [Version 1 Router Present Timeout].  This is the
  566.   initial state.
  567.  
  568. - "IGMPv1 Router Present", when the host has heard an IGMPv1 style query
  569.   within the [Version 1 Router Present Timeout].
  570.  
  571.  
  572.  
  573. Fenner                     Expires April 1997                  [Page 10]
  574.  
  575. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  576.  
  577.  
  578. There are two events that can cause state transitions:
  579.  
  580. - "IGMPv1 query received", when the host receives a query with the Max
  581.   Response Time field set to 0.
  582.  
  583. - "timer expires", when the timer set to note the presence of an IGMPv1
  584.   router expires.
  585.  
  586. And a single action that can be triggered by an event:
  587.  
  588. - "set timer", setting the timer to its maximum value [Version 1 Router
  589.   Present Timeout] and (re)starting it.
  590.  
  591.  
  592.                               ________________
  593.                              |                |
  594.                              |                |
  595.                              |   No IGMPv1    |
  596.                              |     Router     |
  597.                              |    Present     |
  598.                              |                |
  599.                         ---->|                |----
  600.                        |     |                |    |
  601.                        |     |________________|    |
  602.          timer expires |                           | IGMPv1 query received
  603.                        |      ________________     | (set timer)
  604.                        |     |                |    |
  605.                        |     |                |    |
  606.                        |     |                |    |
  607.                         -----|     IGMPv1     |<---
  608.                              |     Router     |
  609.                              |    Present     |
  610.                              |                |
  611.                         ---->|                |----
  612.                        |     |________________|    |
  613.                        |                           |
  614.                        | IGMPv1 query received     |
  615.                        | (set timer)               |
  616.                         ---------------------------
  617.  
  618.  
  619. 7.  Router State Diagram
  620.  
  621. Router behavior is more formally specified by the state transition
  622. diagrams below.
  623.  
  624. A router may be in one of two possible states with respect to any single
  625. attached network:
  626.  
  627.  
  628.  
  629. Fenner                     Expires April 1997                  [Page 11]
  630.  
  631. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  632.  
  633.  
  634. - "Querier", when this router is designated to transmit IGMP Membership
  635.   Queries on this network.
  636.  
  637. - "Non-Querier", when there is another router designated to transmit
  638.   IGMP membership Queries on this network.
  639.  
  640. The following three events can cause the router to change states:
  641.  
  642. - "query timer expired" occurs when the timer set for query transmission
  643.   expires.
  644.  
  645. - "query received from a router with a lower IP address" occurs when an
  646.   IGMP Membership Query is received from a router on the same network
  647.   with a lower IP address.
  648.  
  649. - "other querier present timer expired" occurs when the timer set to
  650.   note the presence of another querier with a lower IP address on the
  651.   network expires.
  652.  
  653. There are three actions that may be taken in response to the above
  654. events:
  655.  
  656. - "start general query timer" for the attached network.
  657.  
  658. - "start other querier present timer" for the attached network [Other
  659.   Querier Present Interval].
  660.  
  661. - "send general query" on the attached network.  The General Query is
  662.   sent to the all-systems group (224.0.0.1), and has a Max Response Time
  663.   of [Query Response Interval].
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685. Fenner                     Expires April 1997                  [Page 12]
  686.  
  687. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  688.  
  689.  
  690.  
  691.                                       --------------------------------
  692.                               _______|________  gen. query timer      |
  693.   ---------                  |                |        expired        |
  694.  | Initial |---------------->|                | (send general query,  |
  695.   ---------  (send gen. q.,  |                |  set gen. q. timer)   |
  696.         set initial gen. q.  |                |<----------------------
  697.               timer)         |    Querier     |
  698.                              |                |
  699.                         -----|                |<---
  700.                        |     |                |    |
  701.                        |     |________________|    |
  702.  query received from a |                           | other querier
  703.  router with a lower   |                           | present timer expired
  704.  IP address            |                           | (send general query,
  705.  (set other querier    |      ________________     |  set gen. q. timer)
  706.   present timer)       |     |                |    |
  707.                        |     |                |    |
  708.                        |     |                |    |
  709.                         ---->|      Non       |----
  710.                              |    Querier     |
  711.                              |                |
  712.                              |                |
  713.                         ---->|                |----
  714.                        |     |________________|    |
  715.                        | query received from a     |
  716.                        | router with a lower IP    |
  717.                        | address                   |
  718.                        | (set other querier        |
  719.                        |  present timer)           |
  720.                         ---------------------------
  721.  
  722.  
  723. A router should start in the Initial state on all attached networks, and
  724. immediately move to Querier state.
  725.  
  726. In addition, to keep track of which groups have members, a router may be
  727. in one of four possible states with respect to any single IP multicast
  728. group on any single attached network:
  729.  
  730. - "No Members Present" state, when there are no hosts on the network
  731.   which have sent reports for this multicast group.  This is the initial
  732.   state for all groups on the router; it requires no storage in the
  733.   router.
  734.  
  735. - "Members Present" state, when there is a host on the network which has
  736.   sent a Membership Report for this multicast group.
  737.  
  738.  
  739.  
  740.  
  741. Fenner                     Expires April 1997                  [Page 13]
  742.  
  743. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  744.  
  745.  
  746. - "Version 1 Members Present" state, when there is an IGMPv1 host on the
  747.   network which has sent a Version 1 Membership Report for this
  748.   multicast group.
  749.  
  750. - "Checking Membership" state, when the router has received a Leave
  751.   Group message but has not yet heard a Membership Report for the
  752.   multicast group.
  753.  
  754. There are six significant events that can cause router state
  755. transitions:
  756.  
  757. - "v2 report received" occurs when the router receives a Version 2
  758.   Membership Report for the group on the interface.  To be valid, the
  759.   Report message must be at least 8 octets long and must have a correct
  760.   IGMP checksum.
  761.  
  762. - "v1 report received" occurs when the router receives a Version 1
  763.   Membership report for the group on the interface.  The same validity
  764.   requirements apply.
  765.  
  766. - "leave received" occurs when the router receives an IGMP Group Leave
  767.   message for the group on the interface.  To be valid, the Leave
  768.   message must be at least 8 octets long and must have a correct IGMP
  769.   checksum.
  770.  
  771. - "timer expired" occurs when the timer set for a group membership
  772.   expires.
  773.  
  774. - "retransmit timer expired" occurs when the timer set to retransmit a
  775.   group-specific Membership Query expires.
  776.  
  777. - "v1 host timer expired" occurs when the timer set to note the presence
  778.   of version 1 hosts as group members expires.
  779.  
  780. There are six possible actions that may be taken in response to the
  781. above events:
  782.  
  783. - "start timer" for the group membership on the interface - also resets
  784.   the timer to its initial value [Group Membership Interval] if the
  785.   timer is currently running.
  786.  
  787. - "start timer*" for the group membership on the interface - this
  788.   alternate action sets the timer to [Last Member Query Interval] *
  789.   [Last Member Query Count] if this router is a Querier, or the [Max
  790.   Response Time] in the packet * [Last Member Query Count] if this
  791.   router is a non-Querier.
  792.  
  793. - "start retransmit timer" for the group membership on the interface
  794.  
  795.  
  796.  
  797. Fenner                     Expires April 1997                  [Page 14]
  798.  
  799. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  800.  
  801.  
  802.   [Last Member Query Interval].
  803.  
  804. - "start v1 host timer" for the group membership on the interface - also
  805.   resets the timer to its initial value [Group Membership Interval] if
  806.   the timer is currently running.
  807.  
  808. - "send group-specific query" for the group on the attached network.
  809.   The Group-Specific Query is sent to the group being queried, and has a
  810.   Max Response Time of [Last Member Query Interval].
  811.  
  812. - "notify routing +" notify the routing protocol that there are members
  813.   of this group on this connected network.
  814.  
  815. - "notify routing -" notify the routing protocol that there are no
  816.   longer any members of this group on this connected network.
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853. Fenner                     Expires April 1997                  [Page 15]
  854.  
  855. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  856.  
  857.  
  858. The state diagram for a router in Querier state follows:
  859.  
  860.                               ________________
  861.  ----------------------------|                |<-----------------------------
  862. |                            |                |                              |
  863. |               timer expired|                |timer expired                 |
  864. |          (notify routing -)|   No Members   |(notify routing -,            |
  865. |                    ------->|    Present     |<---------  clear rxmt tmr)   |
  866. |                   |        |                |          |                   |
  867. |v1 report rec'd    |        |                |          |                   |
  868. |(notify routing +, |        |________________|          |  ---------------  |
  869. | start timer,      |                    |               | | rexmt timer   | |
  870. | start v1 host     |  v2 report received|               | |  expired      | |
  871. |  timer)           |  (notify routing +,|               | | (send g-s     | |
  872. |                   |        start timer)|               | |  query,       | |
  873. |         __________|______              |       ________|_|______ st rxmt | |
  874. |        |                 |<------------       |                 | tmr)   | |
  875. |        |                 |                    |                 |<-------  |
  876. |        |                 | v2 report received |                 |          |
  877. |        |                 | (start timer)      |                 |          |
  878. |        | Members Present |<-------------------|     Checking    |          |
  879. |  ----->|                 | leave received     |    Membership   |          |
  880. | |      |                 | (start timer*,     |                 |          |
  881. | |      |                 |  start rexmt timer,|                 |          |
  882. | |      |                 |  send g-s query)   |                 |          |
  883. | |  --->|                 |------------------->|                 |          |
  884. | | |    |_________________|                    |_________________|          |
  885. | | |v2 report rec'd |  |                          |                         |
  886. | | |(start timer)   |  |v1 report rec'd           |v1 report rec'd          |
  887. | |  ----------------   |(start timer,             |(start timer,            |
  888. | |v1 host              | start v1 host timer)     | start v1 host timer)    |
  889. | |tmr    ______________V__                        |                         |
  890. | |exp'd |                 |<----------------------                          |
  891. |  ------|                 |                                                 |
  892. |        |    Version 1    |timer expired                                    |
  893. |        | Members Present |(notify routing -)                               |
  894.  ------->|                 |-------------------------------------------------
  895.          |                 |<--------------------
  896.  ------->|_________________| v1 report rec'd     |
  897. | v2 report rec'd |   |   (start timer,          |
  898. | (start timer)   |   |    start v1 host timer)  |
  899.  -----------------     --------------------------
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909. Fenner                     Expires April 1997                  [Page 16]
  910.  
  911. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  912.  
  913.  
  914. The state diagram for a router in  Non-Querier  state  is  similar,  but
  915. non-Queriers do not send any messages and are only driven by message re-
  916. ception.  Note that non-Queriers do not care whether a Membership Report
  917. message is Version 1 or Version 2.
  918.  
  919.                               ________________
  920.                              |                |
  921.                              |                |
  922.                 timer expired|                |timer expired
  923.            (notify routing -)|   No Members   |(notify routing -)
  924.                    --------->|    Present     |<---------
  925.                   |          |                |          |
  926.                   |          |                |          |
  927.                   |          |                |          |
  928.                   |          |________________|          |
  929.                   |                   |                  |
  930.                   |                   |report received   |
  931.                   |                   |(notify routing +,|
  932.                   |                   | start timer)     |
  933.           ________|________           |          ________|________
  934.          |                 |<---------          |                 |
  935.          |                 |  report received   |                 |
  936.          |                 |  (start timer)     |                 |
  937.          | Members Present |<-------------------|     Checking    |
  938.          |                 | g-s query rec'd    |    Membership   |
  939.          |                 | (start timer*)     |                 |
  940.     ---->|                 |------------------->|                 |
  941.    |     |_________________|                    |_________________|
  942.    | report received |
  943.    | (start timer)   |
  944.     -----------------
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965. Fenner                     Expires April 1997                  [Page 17]
  966.  
  967. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  968.  
  969.  
  970.  
  971. 8.  List of timers and default values
  972.  
  973. Most of these timers are  configurable.   If  non-default  settings  are
  974. used,  they MUST be consistent among all routers on a single link.  Note
  975. that parentheses are used to  group  expressions  to  make  the  algebra
  976. clear.
  977.  
  978. 8.1.  Robustness Variable
  979.  
  980. The Robustness Variable allows tuning for the expected packet loss on  a
  981. subnet.   If  a  subnet is expected to be lossy, the Robustness Variable
  982. may be increased.  IGMP is robust to (Robustness Variable  -  1)  packet
  983. losses.   The  Robustness  Variable  MUST NOT be zero, and SHOULD NOT be
  984. one.  Default: 2
  985.  
  986. 8.2.  Query Interval
  987.  
  988. The Query Interval is the interval between General Queries sent  by  the
  989. Querier.  Default: 125 seconds.
  990.  
  991. By varying the [Query Interval], an administrator may tune the number of
  992. IGMP messages on the subnet; larger values cause IGMP Queries to be sent
  993. less often.
  994.  
  995. 8.3.  Query Response Interval
  996.  
  997. The Max Response Time inserted into the periodic General Queries.
  998. Default: 100 (10 seconds)
  999.  
  1000. By varying the [Query Response Interval], an administrator may tune the
  1001. burstiness of IGMP messages on the subnet; larger values make the
  1002. traffic less bursty, as host responses are spread out over a larger
  1003. interval.  The number of seconds represented by the [Query Response
  1004. Interval] must be less than the [Query Interval].
  1005.  
  1006. 8.4.  Group Membership Interval
  1007.  
  1008. The Group Membership Interval is the amount of time that must pass
  1009. before a multicast router decides there are no more members of a group
  1010. on a network.  This value MUST be ((the Robustness Variable) times (the
  1011. Query Interval)) plus (one Query Response Interval).
  1012.  
  1013. 8.5.  Other Querier Present Interval
  1014.  
  1015. The Other Querier Present Interval is the length of time that must pass
  1016. before a multicast router decides that there is no longer another
  1017. multicast router which should be the querier.  This value MUST be ((the
  1018.  
  1019.  
  1020.  
  1021. Fenner                     Expires April 1997                  [Page 18]
  1022.  
  1023. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  1024.  
  1025.  
  1026. Robustness Variable) times (the Query Interval)) plus (one half of one
  1027. Query Response Interval).
  1028.  
  1029. 8.6.  Startup Query Interval
  1030.  
  1031. The Startup Query Interval is the interval between General Queries sent
  1032. by a Querier on startup.  Default: 1/4 the Query Interval.
  1033.  
  1034. 8.7.  Startup Query Count
  1035.  
  1036. The Startup Query Count is the number of Queries sent out on startup,
  1037. separated by the Startup Query Interval.  Default: the Robustness
  1038. Variable.
  1039.  
  1040. 8.8.  Last Member Query Interval
  1041.  
  1042. The Last Member Query Interval is the Max Response Time inserted into
  1043. Group-Specific Queries sent in response to Leave Group messages, and is
  1044. also the amount of time between Group-Specific Query messages.  Default:
  1045. 10 (1 second)
  1046.  
  1047. This value may be tuned to modify the "leave latency" of the network.  A
  1048. reduced value results in reduced time to detect the loss of the last
  1049. member of a group.
  1050.  
  1051. 8.9.  Last Member Query Count
  1052.  
  1053. The Last Member Query Count is the number of Group-Specific Queries sent
  1054. before the router assumes there are no local members.  Default: the
  1055. Robustness Variable.
  1056.  
  1057. 8.10.  Unsolicited Report Interval
  1058.  
  1059. The Unsolicited Report Interval is the time between repetitions of a
  1060. host's initial report of membership in a group.  Default: 10 seconds.
  1061.  
  1062. 8.11.  Version 1 Router Present Timeout
  1063.  
  1064. The Version 1 Router Present Timeout is how long a host must wait after
  1065. hearing a Version 1 Query before it may send any IGMPv2 messages.
  1066. Value: 400 seconds.
  1067.  
  1068. 9.  Message destinations
  1069.  
  1070. This information is provided elsewhere in the document, but is
  1071. summarized here for convenience.
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077. Fenner                     Expires April 1997                  [Page 19]
  1078.  
  1079. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  1080.  
  1081.  
  1082.  
  1083. Message Type                  Destination Group
  1084. ------------                  -----------------
  1085. General Query                 ALL-SYSTEMS (224.0.0.1)
  1086. Group-Specific Query          The group being queried
  1087. Membership Report             The group being reported
  1088. Leave Message                 ALL-ROUTERS (224.0.0.2)
  1089.  
  1090.  
  1091.      Note: in older (i.e., non-standard and now obsolete) versions of
  1092.      IGMPv2, hosts send Leave Messages to the group being left.  A
  1093.      router SHOULD accept Leave Messages addressed to the group being
  1094.      left in the interests of backwards compatability with such hosts.
  1095.      In all cases, however, hosts MUST send to the ALL-ROUTERS address
  1096.      to be compliant with this specification.
  1097.  
  1098. 10.  Security Considerations
  1099.  
  1100. We consider the ramifications of a forged message of each type.
  1101.  
  1102. Query Message:
  1103.  
  1104.      A forged Query message from a machine with a lower IP address than
  1105.      the current Querier will cause Querier duties to be assigned to the
  1106.      forger.  If the forger then sends no more Query messages, other
  1107.      routers' Other Querier Present timer will time out and one will
  1108.      resume the role of Querier.  During this time, if the forger
  1109.      ignores Leave Messages, traffic might flow to groups with no
  1110.      members for up to [Group Membership Interval].
  1111.  
  1112.      A forged Query message sent to a group with members will cause the
  1113.      hosts which are members of the group to report their memberships.
  1114.      This causes a small amount of extra traffic on the LAN, but causes
  1115.      no protocol problems.
  1116.  
  1117. Report messages:
  1118.  
  1119.      A forged Report message may cause multicast routers to think there
  1120.      are members of a group on a subnet when there are not.  Forged
  1121.      Report messages from the local subnet are meaningless, since
  1122.      joining a group on a host is generally an unprivileged operation,
  1123.      so a local user may trivially gain the same result without forging
  1124.      any messages.  Forged Report messages from external sources are
  1125.      more troublesome; there are two defenses against externally forged
  1126.      Reports:
  1127.      - Ignore the Report if you cannot identify the source address of
  1128.        the packet as belonging to a subnet assigned to the interface on
  1129.        which the packet was received.  This solution means that Reports
  1130.  
  1131.  
  1132.  
  1133. Fenner                     Expires April 1997                  [Page 20]
  1134.  
  1135. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  1136.  
  1137.  
  1138.        sent by mobile hosts without addresses on the local subnet will
  1139.        be ignored.
  1140.      - Ignore Report messages without Router Alert options [Katz97], and
  1141.        require that routers not forward Report messages.  (The
  1142.        requirement is not a requirement of generalized filtering in the
  1143.        forwarding path, since the packets already have Router Alert
  1144.        options in them).  This solution breaks backwards compatibility
  1145.        with implementations of earlier versions of this specification
  1146.        which did not require Router Alert.
  1147.  
  1148.      A forged Version 1 Report Message may put a router into "version 1
  1149.      members present" state for a particular group, meaning that the
  1150.      router will ignore Leave messages.  This can cause traffic to flow
  1151.      to groups with no members for up to [Group Membership Interval].
  1152.      There are two defenses against forged v1 Reports:
  1153.      - To defend against externally sourced v1 Reports, ignore the
  1154.        Report if you cannot identify the source address of the packet as
  1155.        belonging to a subnet assigned to the interface on which the
  1156.        packet was received.  This solution means that v1 Reports sent by
  1157.        mobile hosts without addresses on the local subnet will be
  1158.        ignored.
  1159.      - Provide routers with a configuration switch to ignore Version 1
  1160.        messages completely.  This breaks automatic compatibility with
  1161.        Version 1 hosts, so should only be used in situations where "fast
  1162.        leave" is critical.  This solution protects against forged
  1163.        version 1 reports from the local subnet as well.
  1164.  
  1165. Leave message:
  1166.  
  1167.      A forged Leave message will cause the Querier to send out Group-
  1168.      Specific Queries for the group in question.  This causes extra
  1169.      processing on each router and on each member of the group, but can
  1170.      not cause loss of desired traffic.  There are two defenses against
  1171.      externally forged Leave messages:
  1172.      - Ignore the Leave message if you cannot identify the source
  1173.        address of the packet as belonging to a subnet assigned to the
  1174.        interface on which the packet was received.  This solution means
  1175.        that Leave messages sent by mobile hosts without addresses on the
  1176.        local subnet will be ignored.
  1177.      - Ignore Leave messages without Router Alert options [Katz97], and
  1178.        require that routers not forward Leave messages.  (The
  1179.        requirement is not a requirement of generalized filtering in the
  1180.        forwarding path, since the packets already have Router Alert
  1181.        options in them).  This solution breaks backwards compatibility
  1182.        with implementations of earlier versions of this specification
  1183.        which did not require Router Alert.
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189. Fenner                     Expires April 1997                  [Page 21]
  1190.  
  1191. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  1192.  
  1193.  
  1194. 11.  Acknowledgments
  1195.  
  1196. IGMPv2 was designed by Rosen Sharma and Steve Deering.
  1197.  
  1198. 12.  References
  1199.  
  1200. Bradner97      Bradner, S., "Key words for use in RFCs to Indicate
  1201.                Requirement Levels", RFC 2119/BCP 14, Harvard University,
  1202.                March 1997.
  1203.  
  1204. Katz97         Katz, D., "IP Router Alert Option," RFC 2113, Cisco
  1205.                Systems, February 1997.
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245. Fenner                     Expires April 1997                  [Page 22]
  1246.  
  1247. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  1248.  
  1249.  
  1250. 13.  Appendix I - Changes from IGMPv1
  1251.  
  1252. The IGMPv1 "Version" and "Type" fields are combined into a single "Type"
  1253. field.
  1254.  
  1255. A new IGMP Type is assigned to Version 2 Membership Report messages, so
  1256. a router may tell the difference between an IGMPv1 and IGMPv2 host
  1257. report.
  1258.  
  1259. A new IGMP Type is created for the IGMPv2 Leave Group message.
  1260.  
  1261. The Membership Query message is changed so that a previously unused
  1262. field contains a new value, the Max Response Time.
  1263.  
  1264. The IGMPv2 spec now specifies a querier election mechanism.  In IGMPv1,
  1265. the querier election was left up to the multicast routing protocol, and
  1266. different protocols used different mechanisms.  This could result in
  1267. more than one querier per network, so the election mechanism has been
  1268. standardized in IGMPv2.  However, this means that care must be taken
  1269. when an IGMPv2 router is trying to coexist with an IGMPv1 router that
  1270. uses a different querier election mechanism.  In particular, it means
  1271. that an IGMPv2 router must be able to act as an IGMPv1 router on a
  1272. particular network if configured to do so.  The actions required
  1273. include:
  1274.  
  1275. - Set the Max Response Time field to 0 in all queries.
  1276.  
  1277. - Ignore Leave Group messages.
  1278.  
  1279. The IGMPv2 spec relaxes the requirements on validity-checking for
  1280. Membership Queries and Membership Reports.  When upgrading an
  1281. implementation, be sure to remove any checks that do not belong.
  1282.  
  1283. The IGMPv2 spec requires the presence of the IP Router Alert option
  1284. [Katz97] in all packets described in this memo.
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301. Fenner                     Expires April 1997                  [Page 23]
  1302.  
  1303. Internet Draft       draft-ietf-idmr-igmp-v2-07.txt     October 23, 1997
  1304.  
  1305.  
  1306. 14.  Author's Address
  1307.  
  1308.  
  1309.    William C. Fenner
  1310.    Xerox PARC
  1311.    3333 Coyote Hill Road
  1312.    Palo Alto, CA 94304
  1313.    Phone: +1 650 812 4816
  1314.    Email: fenner@parc.xerox.com
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357. Fenner                     Expires April 1997                  [Page 24]
  1358.