home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc1458 < prev    next >
Text File  |  1993-05-27  |  48KB  |  1,067 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        R. Braudes
  8. Request for Comments: 1458                                    S. Zabele
  9.                                                                    TASC
  10.                                                                May 1993
  11.  
  12.  
  13.                   Requirements for Multicast Protocols
  14.  
  15. Status of this Memo
  16.  
  17.    This memo provides information for the Internet community.  It does
  18.    not specify an Internet standard.  Distribution of this memo is
  19.    unlimited.
  20.  
  21. Summary
  22.  
  23.    Multicast protocols have been developed over the past several years
  24.    to address issues of group communication.  Experience has
  25.    demonstrated that current protocols do not address all of the
  26.    requirements of multicast applications.  This memo discusses some of
  27.    these unresolved issues, and provides a high-level design for a new
  28.    multicast transport protocol, group address and membership authority,
  29.    and modifications to existing routing protocols.
  30.  
  31. Table of Contents
  32.  
  33.    1.    Introduction  . . . . . . . . . . . . . . . . . . . . . . .   2
  34.    2.    The Image Communication Problem   . . . . . . . . . . . . .   2
  35.    2.1   Scope   . . . . . . . . . . . . . . . . . . . . . . . . . .   2
  36.    2.2   Requirements  . . . . . . . . . . . . . . . . . . . . . . .   3
  37.    3.    Review of Existing Multicast Protocols  . . . . . . . . . .   4
  38.    3.1   IP/Multicast  . . . . . . . . . . . . . . . . . . . . . . .   4
  39.    3.2   XTP   . . . . . . . . . . . . . . . . . . . . . . . . . . .   5
  40.    3.3   ST-II   . . . . . . . . . . . . . . . . . . . . . . . . . .   6
  41.    3.4   MTP   . . . . . . . . . . . . . . . . . . . . . . . . . . .   7
  42.    3.5   Summary   . . . . . . . . . . . . . . . . . . . . . . . . .   8
  43.    4.    Reliable Adaptive Multicast Service   . . . . . . . . . . .   9
  44.    4.1   The Multicast Group Authority   . . . . . . . . . . . . . .   9
  45.    4.1.1 Address Management  . . . . . . . . . . . . . . . . . . . .   9
  46.    4.1.2 Service Registration, Requests, Release, and Group
  47.          Membership Maintenance  . . . . . . . . . . . . . . . . . .  10
  48.    4.2   The Reliable Adaptive Multicast Protocol (RAMP)   . . . . .  11
  49.    4.2.1 Quality of Service Levels   . . . . . . . . . . . . . . . .  12
  50.    4.2.2 Error Recovery  . . . . . . . . . . . . . . . . . . . . . .  12
  51.    4.2.3 Flow Control  . . . . . . . . . . . . . . . . . . . . . . .  13
  52.    4.3   Routing Support   . . . . . . . . . . . . . . . . . . . . .  14
  53.    4.3.1 Path Set-up   . . . . . . . . . . . . . . . . . . . . . . .  14
  54.    4.3.2 Path Tear-down  . . . . . . . . . . . . . . . . . . . . . .  15
  55.  
  56.  
  57.  
  58. Braudes & Zabele                                                [Page 1]
  59.  
  60. RFC 1458          Requirements for Multicast Protocols          May 1993
  61.  
  62.  
  63.    4.3.3 Multicast Routing Based on Quality of Service   . . . . . .  15
  64.    4.3.4 Quality of Service Based Packet Loss  . . . . . . . . . . .  15
  65.    5.    Interactions Among the Components: An Example   . . . . . .  15
  66.    Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  18
  67.    References  . . . . . . . . . . . . . . . . . . . . . . . . . . .  18
  68.    Security Considerations   . . . . . . . . . . . . . . . . . . . .  19
  69.    Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  19
  70.  
  71. 1.  Introduction
  72.  
  73.    Multicast protocols have been developed to support group
  74.    communications.  These protocols use a one-to-many paradigm for
  75.    transmission, typically using class D Internet Protocol (IP)
  76.    addresses to specify specific multicast groups.  While designing
  77.    network services for reliable transmission of very large imagery as
  78.    part of the DARPA-sponsored ImNet program, we have reviewed existing
  79.    multicast protocols and have determined that none meet all of the
  80.    requirements of image communications [3].  This RFC reviews the
  81.    current state of multicast protocols, highlights the missing
  82.    features, and motivates the design and development of an enhanced
  83.    multicast protocol.
  84.  
  85.    First, the requirements for network services and underlying protocols
  86.    related to image communications are presented.  Existing protocols
  87.    are then reviewed, and an analysis of each protocol against the
  88.    requirements is presented.  The analyses identify the need for a new
  89.    multicast protocol.  Finally, the features of an ideal reliable
  90.    multicast protocol that adapts to network congestion in the
  91.    transmission of large data volumes are presented.  Additional network
  92.    components needed to fully support the new protocol, including a
  93.    Multicast Group Authority and modifications to existing routing
  94.    protocols, are also introduced.
  95.  
  96. 2.  The Image Communications Problem
  97.  
  98. 2.1 Scope
  99.  
  100.    Image management and communications systems are evolving from film-
  101.    based systems toward an all-digital environment where imagery is
  102.    acquired, transmitted, analyzed, and stored using digital computer
  103.    and communications technologies.  The throughput required for
  104.    communicating large numbers of very large images is extremely large,
  105.    consisting of thousands of terabytes of imagery per day.  Temporal
  106.    requirements for capture and dissemination of single images are
  107.    stringent, ranging from seconds to at most several minutes.  Imagery
  108.    will be viewed by hundreds of geographically distributed users who
  109.    will require on-demand, interactive access to the data.
  110.  
  111.  
  112.  
  113.  
  114. Braudes & Zabele                                                [Page 2]
  115.  
  116. RFC 1458          Requirements for Multicast Protocols          May 1993
  117.  
  118.  
  119.    Traditional imaging applications involve images on the order of 512
  120.    by 512 pixels.  In contrast, a single image used for remote sensing
  121.    can have tens of thousands of pixels on a side.  Multiplying the data
  122.    volume associated with remotely sensed images by even a small number
  123.    of users clearly motivates moving beyond the current suite of
  124.    reliable protocols.
  125.  
  126.    Basic image communication applications involve distribution of
  127.    individual images to multiple users for both individual and
  128.    collaborative analyses, and network efficiency requires the use of
  129.    multicast protocols.  Areas where multicasting offers significant
  130.    advantages include real-time image acquisition and dissemination,
  131.    distribution of annotated image-based reports, and image
  132.    conferencing.  Images are viewed on a heterogeneous set of
  133.    workstations with differing processing and display capabilities,
  134.    traveling over a heterogeneous network with bandwidths varying by up
  135.    to six orders of magnitude between the initial down link and the
  136.    slowest end user.
  137.  
  138. 2.2 Requirements
  139.  
  140.    Multicast protocols used for image communications must address
  141.    several requirements.  Setting up a multicast group first requires
  142.    assigning a multicast group address.  All multicast traffic is then
  143.    delivered to this address, which implies that all members of the
  144.    group must be listening for traffic with this address.
  145.  
  146.    Within an image communications architecture such as that used for the
  147.    ImNet program, diversity and adaptability can be accommodated by
  148.    trading quality of service (i.e., image quality) with speed of
  149.    transmission.  Multicast support for quality-speed trades can be
  150.    realized either through the use of different multicast groups, where
  151.    each group receives a different image quality, or through the use of
  152.    a single hierarchical stream with routers (or users) extracting
  153.    relevant portions.
  154.  
  155.    Due to the current inability of routers to support selective
  156.    transmission of partial streams, a multiple stream approach is being
  157.    used within ImNet.  Efficient operation using a multiple stream
  158.    approach requires that users be able to switch streams very quickly,
  159.    and that streams with no listeners not be disseminated.
  160.    Consequently, rapid configuration of multicast groups and rapid
  161.    switching between multicast groups switching is essential.
  162.  
  163.    Inevitably, network congestion or buffer overruns result in packet
  164.    loss. A full range of transport reliability is required within an
  165.    image communications framework. For some applications such as image
  166.    conferencing, packet loss does not present a problem as dropped mouse
  167.  
  168.  
  169.  
  170. Braudes & Zabele                                                [Page 3]
  171.  
  172. RFC 1458          Requirements for Multicast Protocols          May 1993
  173.  
  174.  
  175.    movements can be discarded with no meaningful degradation in utility.
  176.    However, for functions such as image archiving or detailed image
  177.    analysis, transport must be completely reliable, where any dropped
  178.    packets must be retransmitted by the sender.  Additionally, several
  179.    hierarchical image compression methods can provide useful, albeit
  180.    degraded, imagery using a semi-reliable service, where higher level
  181.    data is transmitted reliably and the lower level data is transmitted
  182.    unreliably.
  183.  
  184.    In support of reliable transport, image communications services must
  185.    also support adaptation to network congestion using flow control
  186.    mechanisms.  Flow control regulates the quantity of data placed on
  187.    the network per unit time interval, thereby increasing network
  188.    efficiency by reducing the number of dropped packets and avoiding the
  189.    need for large numbers of retransmissions.
  190.  
  191. 3.  Review of Existing Multicast Protocols
  192.  
  193.    Several existing protocols provide varying levels of support for
  194.    multicasting, including IP/Multicast [5], the Xpress Transfer
  195.    Protocol (XTP) [11], and Experimental Internet Stream Protocol
  196.    Version 2 (ST-II) [10].  While the Versatile Message Transaction
  197.    Protocol (VMTP) [4] also supports multicast, it has been designed to
  198.    support the transfer of small packets, and so is not appropriate for
  199.    large image communications.  Additionally, a specification exists for
  200.    the Multicast Transport Protocol (MTP) [2].
  201.  
  202.    The image communication requirements for a multicast protocol include
  203.    multicast group address assignment, group set-up, membership
  204.    maintenance (i.e., join, drop, and switch membership), group tear-
  205.    down, error recovery, and flow control, as presented above.  The
  206.    remainder of this section discusses how well each of the existing
  207.    protocols meets these requirements.
  208.  
  209. 3.1 IP/Multicast
  210.  
  211.    IP/Multicast is an extension to the standard IP network-level
  212.    protocol that supports multicast traffic.  IP/Multicast has no
  213.    address allocation mechanism, with addresses assigned either by an
  214.    outside authority or by each application.  This has the potential for
  215.    address contention among multiple applications, which would result in
  216.    the traffic from the different groups becoming commingled.
  217.  
  218.    There is no true set-up processing for IP/Multicast; once an address
  219.    is determined, the sender simply transmits packets to that address
  220.    with routers determining the path(s) taken by the data.  The receiver
  221.    side is only slightly more complex, as an application must issue an
  222.    add membership request for IP to listen to traffic destined to the
  223.  
  224.  
  225.  
  226. Braudes & Zabele                                                [Page 4]
  227.  
  228. RFC 1458          Requirements for Multicast Protocols          May 1993
  229.  
  230.  
  231.    desired address.  If this is the first member of a group, IP
  232.    multicasts the request to routers on the local network using the
  233.    Internet Group Multicast Protocol (IGMP) for inclusion in routing
  234.    tables.  Multicast packets are then routed like all other IP packets,
  235.    with receivers accepting traffic addressed to joined groups in
  236.    addition to the normal host address.
  237.  
  238.    A major problem with the IP/Multicast set-up approach is informing
  239.    hosts of multicast group addresses.  If addresses are dynamically
  240.    allocated, then a mechanism must be established for informing
  241.    receivers which addresses have been assigned to which groups.  This
  242.    requires a minimum of one round trip time, with an address requested
  243.    from a server and then returned to the receiver.
  244.  
  245.    Dropping membership in a group involves issuing a request to the
  246.    local IP, which decrements the count of members in the IP tables.
  247.    However, no special action is taken when group membership goes to
  248.    zero.  Instead, a heartbeat mechanism is used in which hosts are
  249.    periodically polled for active groups, and routers stop forwarding
  250.    group traffic to a network only after several polls receive no
  251.    activity requests for that group to ensure that a membership report
  252.    is not lost or corrupted in transit.  This causes the problem of
  253.    unneeded traffic being transmitted, due to a long periodicity for the
  254.    heartbeat (minimum of one minute between polls); consequently there
  255.    is no method for quickly dropping a group over a given path, impeding
  256.    attempts to react to network congestion in real-time.
  257.  
  258.    Finally, there is no transport level protocol compatible with
  259.    IP/Multicast that is both reliable and implements a flow control
  260.    mechanism.
  261.  
  262. 3.2 XTP
  263.  
  264.    XTP is a combined network and transport level protocol that offers
  265.    significant support for multicast transfers.  As with IP/Multicast,
  266.    XTP offers no inherent address management scheme, so that an outside
  267.    authority is required.
  268.  
  269.    XTP is also similar to IP/Multicast as there is no explicit set-up
  270.    processing between the sender and the receivers prior to the
  271.    establishment of group communications.  While there is implicit
  272.    processing in key management, an external mechanism is required for
  273.    passing the multicast group address to the receivers.  The receivers
  274.    must have established "filters" for the address prior to transmission
  275.    in order to receive the data, and suffers the same problems as
  276.    IP/Multicast.
  277.  
  278.    In contrast to IP/Multicast, XTP does require explicit handshaking
  279.  
  280.  
  281.  
  282. Braudes & Zabele                                                [Page 5]
  283.  
  284. RFC 1458          Requirements for Multicast Protocols          May 1993
  285.  
  286.  
  287.    between the sender and receivers that wish to join an existing group;
  288.    however, there is no parallel communication for receivers dropping
  289.    out of groups, and the only mechanism for a sender to know if there
  290.    are any receivers is the polling scheme used for error control and
  291.    recovery.  This causes the same problems with sending traffic to
  292.    groups without members discussed under IP/Multicast.
  293.  
  294.    The XTP specification does not address how routers distribute a
  295.    multicast stream among different connected networks; however it does
  296.    include a discussion of the optional bucket, damping, slotting, and
  297.    cloning algorithms to reduce duplicate multicast traffic within a
  298.    local network.
  299.  
  300.    The specification allows the user to determine whether multicast
  301.    transfers are unreliable or semi-reliable, where semi-reliable
  302.    transfers are defined to provide a "high-probability of success [9]"
  303.    of delivery to all receivers.  Reliability cannot be guaranteed due
  304.    to the fact that XTP does not maintain the cardinality of the
  305.    receiver set, and so cannot know that the data has been received by
  306.    all hosts.
  307.  
  308.    XTP recovers from errors using a go-back-n approach (assuming that
  309.    the bucket algorithm has been implemented) by retransmitting dropped
  310.    packets to all members of the multicast group, as group members are
  311.    unknown.  This has the potential of flooding the network if only a
  312.    single receiver dropped a packet. If all dropped packets belong to a
  313.    single network on an internet, with traffic generated over the entire
  314.    connected network.
  315.  
  316. 3.3 ST-II
  317.  
  318.    ST-II is another network protocol that provides support for multicast
  319.    communications.  Similar to IP/Multicast and XTP, ST-II requires a
  320.    separate application-specific protocol for assigning and
  321.    communicating multicast group addresses.
  322.  
  323.    While ST-II is a network level protocol, it guarantees end-to-end
  324.    bandwidth and delay, and so obviates the need for many of the
  325.    functions of a transport protocol.  The guarantee is provided by
  326.    requiring bandwidth reservations for all connections, which are made
  327.    at set-up time, and ensuring that the requested bandwidth is
  328.    available throughout the lifetime of the connection.  The enforcement
  329.    policy ensures that the same path is followed for all transmissions,
  330.    and prohibits new connections over the network unless there is
  331.    sufficient bandwidth to accommodate the expected traffic.  This is
  332.    accomplished by maintaining the state of all connections in the
  333.    network routers, trading the overhead of this connection set-up for
  334.    the performance guarantees.
  335.  
  336.  
  337.  
  338. Braudes & Zabele                                                [Page 6]
  339.  
  340. RFC 1458          Requirements for Multicast Protocols          May 1993
  341.  
  342.  
  343.    Connection set-up involves negotiation of the bandwidth and delay
  344.    parameters and path between the sender, intermediate routers, and
  345.    receivers. If the requested resources cannot be made available, the
  346.    sender is given the option of either accepting what is available or
  347.    canceling the connection request.
  348.  
  349.    To add a new user to an existing group, the new receiver must first
  350.    communicate directly with the sender using a different protocol to
  351.    exchange relevant information such as the group address.  The sender
  352.    then requests ST-II to add the new receiver, with the basic
  353.    connection set-up processing invoked as before with the new
  354.    connection completed only if there is sufficient bandwidth to process
  355.    the user.
  356.  
  357.    While the resource guarantee system imposed by ST-II tries to prevent
  358.    network congestion from occurring, there are situations where
  359.    priority traffic must be introduced into the network.  ST-II makes
  360.    this very expensive, as the resource requirements for existing
  361.    connections must be adjusted, which can only be accomplished by the
  362.    origin of each stream.  This must be completed prior to the
  363.    connection set-up for the priority stream, introducing a large delay
  364.    before the important data can be transmitted.
  365.  
  366.    ST-II connections can be closed by either the sender or the receiver.
  367.    When the last receiver along a path has been removed, the resources
  368.    allocated over that path are released.  When all receivers have been
  369.    removed, the sender in informed and has the option of either adding a
  370.    new receiver or tearing down the group.
  371.  
  372. 3.4 MTP
  373.  
  374.    MTP is a transport level protocol designed to support efficient,
  375.    reliable multicast transmissions on top of existing network protocols
  376.    such as IP/Multicast.  It is based on the notion of a multicast
  377.    "master" which controls all aspects of group communications.
  378.  
  379.    Allocation of a specific group address, or network service access
  380.    point, is not considered part of MTP, and as with the other multicast
  381.    protocols requires the use of an outside addressing authority.  The
  382.    MTP specification does require the master to make a "robust effort
  383.    [2]" to ensure the address selected is not already in use by trying
  384.    to join an existing group at that address, but the problems described
  385.    above remain.
  386.  
  387.    Once the address is established, receivers issue a request to join
  388.    the existing group using a unique connection identifier that is pre-
  389.    assigned.  The MTP specification addresses neither how the identifier
  390.    is allocated nor how the receivers learn its value, but is assumed to
  391.  
  392.  
  393.  
  394. Braudes & Zabele                                                [Page 7]
  395.  
  396. RFC 1458          Requirements for Multicast Protocols          May 1993
  397.  
  398.  
  399.    be handled through an external protocol.  The join request specifies
  400.    whether the receiver wishes to be a producer of information or only a
  401.    receiver, whether the connection should be reliable or best effort,
  402.    whether the receiver is able to accept multiple senders of
  403.    information, the minimum throughput desired, and the maximum data
  404.    packet size.  If the request can be granted, then the master replies
  405.    with an ACK with a multicast connection identifier; otherwise a NAK
  406.    is returned.
  407.  
  408.    Dropping membership in a group is coordinated through the master.
  409.    The specification does not address what action the master should take
  410.    when the group is reduced to a single member, but a logical action
  411.    would be to stop distributing transmit tokens if there are no active
  412.    receivers.
  413.  
  414.    One of the major features in MTP is the ordering of received data.
  415.    The master distributes transmit tokens to data producers in the
  416.    group, which allow data to be provided at a specified rate.  Rate
  417.    control provides flow control within the protocol, with members that
  418.    cannot maintain a minimum flow requested to leave the group.
  419.  
  420.    Error recovery utilizes a NAK-based selective retransmission scheme.
  421.    Senders are required to maintain data for a time period specified by
  422.    the master, and to be able to retransmit this data when requested by
  423.    members of the group.  These retransmissions are multicast to the
  424.    entire group, requiring receivers to be able to cope with duplicate
  425.    packets.  If a retransmission request arrives after the data has been
  426.    released, the sender must NAK the request.
  427.  
  428.    A potential problem with MTP is the significant amount of overhead
  429.    associated with the protocol, with virtually all control traffic
  430.    flowing through the master.  The extra delay and congestion makes MTP
  431.    inappropriate for the image dissemination applications.
  432.  
  433. 3.5 Summary
  434.  
  435.    Our analysis has determined that there are significant problems with
  436.    all of the major multicast protocols for the reliable, adaptive
  437.    multicast transport of large data items.  The problems include
  438.    inadequate address management, excessive processing of control
  439.    information, poor response to network congestion, inability to handle
  440.    high priority traffic, and suboptimal error recovery and
  441.    retransmission procedures.  We have developed a high-level notion of
  442.    the requirements for a service that addresses these issues, which we
  443.    now discuss.
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Braudes & Zabele                                                [Page 8]
  451.  
  452. RFC 1458          Requirements for Multicast Protocols          May 1993
  453.  
  454.  
  455. 4.  Protocol Suite for Reliable, Adaptive Multicast
  456.  
  457.    We present an integrated set of three basic components required to
  458.    provide a reliable multicast service: the Multicast Group Authority
  459.    (MGA); the Reliable, Adaptive Multicast Protocol (RAMP); and modified
  460.    routing algorithms.  These components are designed to be compatible
  461.    with, and take full advantage of, reservation systems such as RSVP
  462.    [12].
  463.  
  464.    In this discussion, we have broadened the definition of the term
  465.    "Quality of Service (QOS)."  There are many applications where the
  466.    information content of the underlying data can be reduced through
  467.    data compression techniques.  For example, a 1,024 x 1,024 pixel
  468.    image can be sub-sampled down to 512 x 512 pixels.  This degradation
  469.    results in a lower quality of service for the end user, while
  470.    reducing the traditional network QOS requirements for the transfer.
  471.  
  472. 4.1 The Multicast Group Authority
  473.  
  474.    The Multicast Group Authority (MGA) provides services related to
  475.    managing the multicast address space and high-level management
  476.    support to existing multicast groups.  The MGA has three primary
  477.    responsibilities: address management, service registration, and group
  478.    membership maintenance.
  479.  
  480.    The MGA is hierarchical in nature, similar to the Internet Domain
  481.    Name System (DNS) [7].  Requests for service are directed to an MGA
  482.    agent on the local workstation, which are propagated upwards as
  483.    required.
  484.  
  485. 4.1.1 Address Management
  486.  
  487.    The MGA is responsible for the allocation and deallocation of
  488.    addresses within the Internet Class D address space.  Address
  489.    requests received from application processes or other MGA nodes
  490.    result in a block of addresses being assigned to the requesting MGA
  491.    node.  The size of the address block allocated is dependent on the
  492.    position of the requester in the MGA hierarchy, to reduce the number
  493.    of address requests propagated through the MGA tree.
  494.  
  495.    Figure 1 can be used to show what happens when an application
  496.    requests a multicast address from the authority at node 1.1.1.
  497.    Assuming that this is the first request from this branch of the MGA,
  498.    node 1.1.1 issues a request to its parent, node 1.1, which propagates
  499.    the request to node 1.  Node 1 passes this request to the root, which
  500.    issues a block of, say, 30 class D addresses.  Of these 30, 10 are
  501.    returned to node 1.1, with the remaining 20 reserved for requests
  502.    from node 1's other children. Similarly, node 1.1 passes 3 addresses
  503.  
  504.  
  505.  
  506. Braudes & Zabele                                                [Page 9]
  507.  
  508. RFC 1458          Requirements for Multicast Protocols          May 1993
  509.  
  510.  
  511.    to node 1.1.1, reserving the other 7 for future requests.  Finally,
  512.    node 1.1.1 answers the applications request for an address, keeping
  513.    the remaining 2 addresses for future use.
  514.  
  515.                          --------
  516.                          | root |
  517.                          --------
  518.                           /  |  \
  519.                          /   |   \
  520.                   --------       --------
  521.                   |   1  |  ...  |   n  |
  522.                   --------       --------
  523.                    /  |  \
  524.                   /   |   \
  525.            --------       --------
  526.            |  1.1 |  ...  |  1.n |
  527.            --------       --------
  528.             /  |  \
  529.            /   |   \
  530.         --------       --------
  531.         |1.1.1 |  ...  |1.1.n |
  532.         --------       --------
  533.  
  534.                     Figure 1.  Sample MGA Hierarchy
  535.  
  536.    When the root exhausts the address space, a request is made to the
  537.    children for reclamation of unused addresses.  This request
  538.    propagates down the tree, with unused addresses passed back through
  539.    the hierarchy and returned to the address pool.  If the entire
  540.    address space is in use, then requests for additional addresses are
  541.    not honored.
  542.  
  543.    When an application no longer requires an address, it is returned to
  544.    the local MGA node, which keeps it until either it is requested by
  545.    another application, it is requested by its parent, or the node is
  546.    terminated.  At node termination, all available addresses are
  547.    returned to the parent.  Parents periodically send heartbeat requests
  548.    to their children to ensure connectivity, and local nodes similarly
  549.    poll applications, with addresses recalled if the queries are not
  550.    answered.
  551.  
  552. 4.1.2 Service Registration, Requests, Release, and Group Membership
  553.       Maintenance
  554.  
  555.    The MGA maintains the state of all registered multicast services and
  556.    receivers.  State information includes the number of members
  557.    associated with each group by requested QOS reliability, which is
  558.    updated as services are offered or rescinded and as members join or
  559.  
  560.  
  561.  
  562. Braudes & Zabele                                               [Page 10]
  563.  
  564. RFC 1458          Requirements for Multicast Protocols          May 1993
  565.  
  566.  
  567.    leave a group.  The state information is used to ensure that there is
  568.    at least one group member listening to each multicast transfer.
  569.  
  570.    Servers register the availability of service, specifying whether
  571.    reliable service is available [section 4.2.2] and optionally the
  572.    number of qualities of service offered [section 4.2.1].  A multicast
  573.    group address is allocated from the address pool and the service is
  574.    assigned an identifier as required.  If a reservation protocol that
  575.    requires information from the server (such as RSVP) is in use, then
  576.    the MGA notifies the reservation system of the service with any
  577.    required parameters.  The service registration is propagated through
  578.    the MGA, so that potential clients can discover service availability.
  579.    However, servers do not begin data transfers until directed to do so
  580.    by the MGA.
  581.  
  582.    Client requests for service are also processed through the MGA.
  583.    Service requests specify a service, a desired quality of service, and
  584.    a reliability indication.  If the request is for a service that has
  585.    been registered, then the routing support is directed to add a route
  586.    for the new user [section 4.3.1].  If necessary, the MGA also
  587.    notifies the reservation protocol.  If either the requested QOS is
  588.    not being provided or it is provided unreliably and the request is
  589.    for reliable transport, then the service provider is also notified.
  590.    If the service has not yet been registered, an identifier for the
  591.    service is assigned and the request is queued for when the service is
  592.    registered.  In either case, a response is sent to the requester.
  593.  
  594.    Requests for termination of group membership are also sent to the
  595.    MGA.  If the request originates at a client, the MGA notifies the
  596.    routing function and reservation protocol of the termination in case
  597.    the route should be released [section 4.3.2].  If termination results
  598.    in a given QOS no longer having any recipients, the service provider
  599.    is notified that the QOS is no longer required and should not be
  600.    transmitted.  Server-directed group terminations follow a similar
  601.    procedure, with all clients of the group notified, and the service
  602.    offering is removed from the MGA state tables.
  603.  
  604. 4.2 The Reliable Adaptive Multicast Protocol (RAMP)
  605.  
  606.    RAMP is a transport-level protocol designed to provide reliable
  607.    multicast service on top of a network protocol such as IP/Multicast,
  608.    with unreliable transport also available.  RAMP is build on the
  609.    premise that applications can request one quality of service (using
  610.    our extended definition), but only require reliable transmission at a
  611.    lower level of quality.  For example, consider the transmission of
  612.    hierarchical image data, in which a base spatial resolution is
  613.    transmitted, followed by higher resolution data.  An application may
  614.    require the base data to be sent reliably, but can tolerate dropped
  615.  
  616.  
  617.  
  618. Braudes & Zabele                                               [Page 11]
  619.  
  620. RFC 1458          Requirements for Multicast Protocols          May 1993
  621.  
  622.  
  623.    packets for the higher resolution by using interpolation or pixel
  624.    replication from the base level to approximate the missing data.
  625.    Similar methods can be applied to other data types, such as audio or
  626.    video.
  627.  
  628. 4.2.1 Quality of Service Levels
  629.  
  630.    RAMP allows a multicast service to be provided at multiple qualities
  631.    of service, with all or some of these levels transmitted reliably.
  632.    These QOS can be distributed across different groups using different
  633.    class D addresses, or in the simplest case be transmitted in
  634.    individual groups.  Single packets can be used for either a single
  635.    QOS, or may be applicable to multiple qualities of service.
  636.  
  637.    When a data packet is transmitted, a header field indicates the QOS
  638.    level(s) associated with that packet.  In the old IP implementations,
  639.    the Type of Service field can be used as a bit field with one bit for
  640.    each applicable QOS, although this is incompatible with RFC 1349 [1].
  641.    If a packet is required for multiple QOS, then multiple values are
  642.    encoded in the field.  The RAMP host receiver protocol only accepts
  643.    those packets addressed to a group in which an application has
  644.    requested membership and that has a QOS value which is in the set of
  645.    values requested by the receivers.
  646.  
  647.    The quality of service requested within a flow can be modified during
  648.    the life of the flow.  QOS modification requests are forwarded to the
  649.    MGA, which reduces the number of receivers in the original QOS group
  650.    and increments the count for the requested QOS.  These changes are
  651.    propagated through the MGA hierarchy, with the server notified if
  652.    either the original QOS has no remaining receivers or if the new QOS
  653.    is not currently being served; similarly, the routers are notified if
  654.    routing changes are required.
  655.  
  656. 4.2.2 Error Recovery
  657.  
  658.    Sequence numbers are used in RAMP to determine the ordering of
  659.    packets within a multicast group.  Mechanisms for ordering packets
  660.    transmitted from different senders is a current research topic [2,
  661.    6], and an appropriate sequencing algorithm will be incorporated
  662.    within the protocol.
  663.  
  664.    Applications exist that do not require in-order delivery of data; for
  665.    example, some image servers include position identification
  666.    information in each packet.  To enhance the efficiency of such
  667.    schemes, RAMP includes an option to allow out-or-order delivery of
  668.    packets to a receiver.
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Braudes & Zabele                                               [Page 12]
  675.  
  676. RFC 1458          Requirements for Multicast Protocols          May 1993
  677.  
  678.  
  679.    A NAK-based selective retransmission scheme is used in RAMP to
  680.    minimize the protocol overhead associated with ACK-based schemes.
  681.    When a receiver notices that one or more packets have not been
  682.    received, and the transmission is reliable, a request is sent to the
  683.    sender for the span of packets which are missing.
  684.  
  685.    RAMP at the sender aggregates retransmission requests for the time
  686.    specified by the retransmission hold timer [section 4.2.3].  After
  687.    this time, the requests are evaluated to determine if sufficient
  688.    receivers dropped a given packet to make multicasting the
  689.    retransmission worthwhile by comparing it to a threshold value.  All
  690.    packets that have received a number of retransmission requests
  691.    greater than the threshold are multicast to the group address, with
  692.    other packets unicast to the individual requesters.  The proposed
  693.    retransmission scheme is a compromise between the extremes of
  694.    multicasting and unicasting all retransmissions.  The rationale is
  695.    that multicasting a request issued by a single sender unnecessarily
  696.    floods networks which had no packet loss, while unicasting to a large
  697.    number of receivers floods the entire network.  The optimal approach,
  698.    dynamically constructing a new multicast group for each dropped
  699.    packet, is currently too costly in terms of group set-up time.
  700.  
  701.    For those cases where the service provider is unable to retransmit
  702.    the data due to released or overwritten buffers, the protocol
  703.    delivers NAK responses using either multicast or unicast based on the
  704.    number of retransmission requests received.
  705.  
  706. 4.2.3 Flow Control
  707.  
  708.    RAMP utilizes a rate-based flow control mechanism that derives rate
  709.    reductions from requests for retransmission or router back-off
  710.    requests (i.e., ICMP source quench messages), and derives rate
  711.    increases from the number of packets transmitted without
  712.    retransmission requests.  When a retransmission request is received,
  713.    the protocol uses the number of packets requested to compute a rate
  714.    reduction factor.  Similarly, a different reduction factor is
  715.    computed upon receipt of a router-generated squelch request.  The
  716.    rate reduction factors are then used to compute a reduced rate of
  717.    transmission.
  718.  
  719.    When a given number of packets have been transmitted without packet
  720.    loss, the rate of transmission is incrementally increased. The size
  721.    of the increase will always be smaller than the size of the smallest
  722.    rate decrease, in order to minimize throttling.
  723.  
  724.    The retransmission hold timer is modified according to both
  725.    application requests and network state.  As the number of
  726.    retransmission requests rises, the hold timer is incremented to
  727.  
  728.  
  729.  
  730. Braudes & Zabele                                               [Page 13]
  731.  
  732. RFC 1458          Requirements for Multicast Protocols          May 1993
  733.  
  734.  
  735.    minimize the number of duplicate retransmissions.  Similarly, the
  736.    timer is decremented as the number of retransmission requests drops.
  737.  
  738.    RAMP allows for priority traffic, which is marked in the packet
  739.    header.  The protocol transmits a variable number of packets from
  740.    each sending process in proportion to the priority of the flow.
  741.  
  742. 4.3 Routing Support
  743.  
  744.    The protocol suite requires routing support for four functions: path
  745.    set-up, path tear-down, forwarding based on QOS values, and
  746.    prioritized packet loss due to congestion.  The support must be
  747.    integrated into routers and network-level protocols in a similar
  748.    fashion to IGMP [8].
  749.  
  750.    Partial support comes as a direct consequence of using reservation
  751.    protocols such as RSVP.  This RFC does not mandate the means of
  752.    implementing the required functions, and the specified protocols are
  753.    compatible with known reservation protocols.
  754.  
  755.    The routers state tables must maintain both the multicast group
  756.    address and the QOS level(s) requested for each group on each
  757.    outbound interface in order to make appropriate routing decisions
  758.    [section 4.3.3].  Therefore, the router state tables are updated
  759.    whenever group membership changes, including QOS changes.
  760.  
  761. 4.3.1 Path Set-up
  762.  
  763.    Routers receive path set-up requests from the MGA as required when
  764.    new members join a multicast group, which specifies the incoming and
  765.    outgoing interfaces, the group address, and the QOS associated with
  766.    the request.  When the message is received, the router establishes a
  767.    path between the server and the receiver, and subsequently updates
  768.    the multicast group state table.  The mechanism used to discern the
  769.    network interfaces is not specified, but may take advantage of other
  770.    protocols such as the RSVP path and reservation mechanism.
  771.  
  772. 4.3.2 Path Tear-down
  773.  
  774.    Path tear-down requests are also propagated through the routers by
  775.    the MGA when group membership changes or QOS changes no longer
  776.    require data to be sent over a given route.  These are used to inform
  777.    routers of both deletions of QOS for a given path and deletions of
  778.    entire paths.  The purpose of the message is to explicitly remove
  779.    route table entries in order to minimize the time required to stop
  780.    forwarding multicast data across networks once the path is no longer
  781.    required.
  782.  
  783.  
  784.  
  785.  
  786. Braudes & Zabele                                               [Page 14]
  787.  
  788. RFC 1458          Requirements for Multicast Protocols          May 1993
  789.  
  790.  
  791. 4.3.3 Multicast Routing Based on Quality of Service
  792.  
  793.    Traditional multicast routing formulates route/don't route decisions
  794.    based on the destination address in the packet header, with packets
  795.    duplicated as necessary to reach all destinations.  In the proposed
  796.    new protocol suite, routers also consult the QOS field for each
  797.    packet as different paths may have requested different qualities of
  798.    service.  Packets are only forwarded if the group address has been
  799.    requested and the quality of service specified in the header is
  800.    requested in the state table entry for a given interface.
  801.  
  802. 4.3.4 Quality of Service Based Packet Loss
  803.  
  804.    Network congestion causes router queues to overflow, and as a result
  805.    packet loss occurs.  The QOS and priority indications in the packet
  806.    headers can be used to prioritize the order in which packets are
  807.    dropped.  First, packets with the priority field set in the header
  808.    are dropped last.  Within packets of equal priority, packets are
  809.    dropped in order of QOS, with the highest QOS packets dropped first.
  810.    The rationale is that other packets with lower QOS may be usable by
  811.    receivers, while packets with high QOS may not be usable without the
  812.    lower QOS data.
  813.  
  814. 5.  Interactions Among the Components: An Example
  815.  
  816.    The MGA, RAMP, and routing support functions all cooperate in the
  817.    multicast process.  As an example, assume that a network exists with
  818.    a single server (S), three routers (R1, R2, and R3), and two clients
  819.    (C1 and C2).  The path between S and C1 goes through R1 and R2, while
  820.    the path between S and C2 goes through R1, R2, and R3.  The network
  821.    is shown in figure 2.
  822.  
  823.                 S ------- R1 -------- R2 -------- R3
  824.                           |           |
  825.                           C1          C2
  826.  
  827.                 Figure 2.  Sample Network Configuration
  828.  
  829.    Service Registration
  830.  
  831.    When S is initiated, it registers a service with the MGA node in
  832.    the local workstation, offering reliable service at two qualities
  833.    of service, Q1 and Q2.  As this is the first multicast offering on
  834.    the workstation, the local MGA requests a block of multicast
  835.    addresses from the hierarchy, and assigns an address and service
  836.    identifier to S.  If the RSVP reservation protocol is in operation,
  837.    the local MGA node in S notifies RSVP to send a RpathS
  838.    message out for the service, which goes through R1, R2, and R3,
  839.  
  840.  
  841.  
  842. Braudes & Zabele                                               [Page 15]
  843.  
  844. RFC 1458          Requirements for Multicast Protocols          May 1993
  845.  
  846.  
  847.    reaching the RSVP nodes on C1 and C2.  The service and its
  848.    characteristics are propagated throughout the MGA hierarchy,
  849.    ultimately reaching the MGA nodes resident on C1 and C2.  The
  850.    service is now available throughout the network.
  851.  
  852.    Service Request and Path Set-up
  853.  
  854.    The client C1 requests reliable service from S at QOS Q1, by
  855.    issuing a request to the MGA node in C1.  If a reservation protocol
  856.    is in use, then it is used to reserve bandwidth and establish a
  857.    path between the sender and receiver, going through R1 and R2;
  858.    otherwise, the path is established through R1 and R2 by the routing
  859.    protocol.  R1 now forwards all packets from S with QOS Q1 along the
  860.    path to R2, which routes them to C1.  In concert with the path
  861.    set-up, the add membership request is propagated through MGA to the
  862.    server workstation.  The local MGA tables are checked and it is
  863.    noted that the service is not currently being offered, so the
  864.    server is notified to begin reliable distribution of the service at
  865.    Q1.
  866.  
  867.    Initial Delivery
  868.  
  869.    The server now begins transmitting Q1 data which is observed by R1.
  870.    R1 inspects the header and notes that the packet has QOS Q1.  The
  871.    routing tables specify that QOS Q1 for this address are only
  872.    forwarded along the interface leading to R2, and R1 acts
  873.    accordingly.  Similarly, R2 routes the packet to C1.  When the data
  874.    arrives at C1, the RAMP node inspects the QOS and destination
  875.    address fields in the header, accepts the packet, and forwards it
  876.    to the C1 client process.
  877.  
  878.    Error Recovery
  879.  
  880.    During transmission, if the RAMP node in C1 realizes that packets
  881.    have been dropped, a retransmission request is returned to the
  882.    server identifying spans of the missing packets.  The RAMP node
  883.    accepts the packet, builds the retransmission packets, and sets the
  884.    retransmission hold timer.  When the timer expires, the number of
  885.    retransmission requests for each missing packet is compared against
  886.    the threshold, and the packets are either unicast directly to the
  887.    requesters or multicast to the entire group.  As in this case there
  888.    is only requester, the threshold is not exceeded and the packets
  889.    are retransmitted to C1Us unicast address.
  890.  
  891.    Group Membership Addition
  892.  
  893.    Client C2 now joins the group, requesting reliable transmission at
  894.    QOS Q2.  Following the process used for C1, the request propagates
  895.  
  896.  
  897.  
  898. Braudes & Zabele                                               [Page 16]
  899.  
  900. RFC 1458          Requirements for Multicast Protocols          May 1993
  901.  
  902.  
  903.    through the MGA (and potentially reservation protocol) hierarchy.
  904.    Upon completion of the request processing, R1 routes packets for
  905.    QOS Q1 and Q2 to R2, while R2 forwards QOS Q1 packets to C1 and Q2
  906.    packets to R3; client C1 only accepts packets marked as Q1 while C2
  907.    only accepts Q2 packets.  The server is notified that it now has
  908.    clients for Q2, and begins serving that QOS in addition to Q1.
  909.  
  910.    QOS Based Routing
  911.  
  912.    First, assume that QOS Q1 data is independent of QOS Q2 data.  When
  913.    the server sends a packet with Q1 marked in the header, the packet
  914.    is received by R1 and is forwarded to R2.  R2 receives the packet,
  915.    and sends it out the interface to C1, but not to R3.  Next, the
  916.    server delivers a packet for Q2.  R1 receives the packet and sends
  917.    it to R2, which forwards it to R3 but not to C1.  R3 accepts the
  918.    packet, and forwards it to C2.
  919.  
  920.    Now, assume that either Q2 is a subset of Q1, or that receivers of
  921.    Q1 data also require Q2 data as in conditional compression schemes.
  922.    Therefore, all Q2 packets are marked for both Q1 and Q2, while the
  923.    remaining Q1 packets only have Q1 set in the header.  Q1-only
  924.    packets are routed as before, following the path S -> R1 -> R2 ->
  925.    C1.  However, Q2 packets are now routed from S to R1 to R2, at
  926.    which point R2 duplicates the packets and sends them to both C1 and
  927.    R3, with R3 forwarding them to C2.  At C1, these packets have Q1
  928.    marked, and so are accepted, while at C2 the packet is accepted as
  929.    the Q2 bit is verified.
  930.  
  931.    Group Membership Deletion
  932.  
  933.    When C1 issues a drop membership request, the MGA on the client
  934.    workstation is notified, and the request is propagated through the
  935.    MGA hierarchy back to the server MGA node.  In parallel, the
  936.    routers are notified to close the path, as it is no longer
  937.    required, possibly through the reservation protocol.  As this is
  938.    the last client for the Q1 QOS, the server is informed to stop
  939.    transmitting Q1 data, with Q2 data unaffected.  A similar process
  940.    occurs when C2 drops membership from the group, leaving the server
  941.    idle.  At this point, the server has the option of shutting down
  942.    and returning the group address to the MGA, or to continue in an
  943.    idle state until another client requests service.
  944.  
  945. Acknowledgements
  946.  
  947.    This research was supported in part by the Defense Research
  948.    Projects Agency (DARPA) under contract number F19618-91-C-0086.
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Braudes & Zabele                                               [Page 17]
  955.  
  956. RFC 1458          Requirements for Multicast Protocols          May 1993
  957.  
  958.  
  959. References
  960.  
  961.    [1] Almquist, P., "Type of Service in the Internet Protocol Suite",
  962.        RFC 1349, Consultant, July 1992.
  963.  
  964.    [2] Armstrong, S., Freier, A., and K. Marzullo, "Multicast Transport
  965.        Protocol", RFC 1301, Xerox, Apple, Cornell University, February
  966.        1992.
  967.  
  968.    [3] Braudes, R., and S. Zabele, "A Reliable, Adaptive Multicast
  969.        Service for High-Bandwidth Image Dissemination", submitted to ACM
  970.        SIGCOMM '93.
  971.  
  972.    [4] Cheriton, D., "VMTP: Versatile Message Transaction Protocol", RFC
  973.        1045, Stanford University, February 1988.
  974.  
  975.    [5] Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC
  976.        1112, Stanford University, August 1989.
  977.  
  978.    [6] Mayer, E., "An Evaluation Framework for Multicast Ordering
  979.        Protocols", Proceedings ACM SIGCOMM '92, Baltimore, Maryland, pp.
  980.        177-187.
  981.  
  982.    [7] Mockapetris, P., "Domain Names - Concepts and Facilities," STD
  983.        13, RFC 1034, USC/Information Sciences Institute, November 1987.
  984.  
  985.    [8] Postel, J., "Internet Control Message Protocol - DARPA Internet
  986.        Program Protocol Specification", STD 5, RFC 792, USC/Information
  987.        Sciences Institute, September 1981.
  988.  
  989.    [9] Strayer, W., Dempsey, B., and A. Weaver, "XTP: The Xpress
  990.        Transfer Protocol", Addison-Wesley Publishing Co., Reading, MA,
  991.        1992.
  992.  
  993.   [10] Topolcic, C., Editor, "Experimental Internet Stream Protocol,
  994.        Version 2 (ST- II)", RFC 1190, CIP Working Group, October 1990.
  995.  
  996.   [11] "XTP Protocol Definition Revision 3.6", Protocol Engines
  997.        Incorporated, PEI 92-10, Mountain View, CA, 11 January 1992.
  998.  
  999.   [12] Zhang, L., Deering, S., Estrin, D., Shenker, S., and D. Zappala,
  1000.        "RSVP: A New Resource ReSerVation Protocol", Work in Progress,
  1001.        March 1993.
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Braudes & Zabele                                               [Page 18]
  1011.  
  1012. RFC 1458          Requirements for Multicast Protocols          May 1993
  1013.  
  1014.  
  1015. Security Considerations
  1016.  
  1017.    Security issues are not discussed in this memo.
  1018.  
  1019. Authors' Addresses
  1020.  
  1021.    Bob Braudes
  1022.    TASC
  1023.    55 Walkers Brook Drive
  1024.    Reading, MA 01867
  1025.  
  1026.    Phone:  (617) 942-2000
  1027.    EMail:  rebraudes@tasc.com
  1028.  
  1029.  
  1030.    Steve Zabele
  1031.    TASC
  1032.    55 Walkers Brook Drive
  1033.    Reading, MA 01867
  1034.  
  1035.    Phone:  (617) 942-2000
  1036.    EMail: gszabele@tasc.com
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Braudes & Zabele                                               [Page 19]
  1067.