153a5a1b3Sopenharmony_ci
253a5a1b3Sopenharmony_ci
353a5a1b3Sopenharmony_ci
453a5a1b3Sopenharmony_ci
553a5a1b3Sopenharmony_ci
653a5a1b3Sopenharmony_ci
753a5a1b3Sopenharmony_ciNetwork Working Group                                         M. Handley
853a5a1b3Sopenharmony_ciRequest for Comments: 2974                                         ACIRI
953a5a1b3Sopenharmony_ciCategory: Experimental                                        C. Perkins
1053a5a1b3Sopenharmony_ci                                                                 USC/ISI
1153a5a1b3Sopenharmony_ci                                                               E. Whelan
1253a5a1b3Sopenharmony_ci                                                                     UCL
1353a5a1b3Sopenharmony_ci                                                            October 2000
1453a5a1b3Sopenharmony_ci
1553a5a1b3Sopenharmony_ci
1653a5a1b3Sopenharmony_ci                     Session Announcement Protocol
1753a5a1b3Sopenharmony_ci
1853a5a1b3Sopenharmony_ciStatus of this Memo
1953a5a1b3Sopenharmony_ci
2053a5a1b3Sopenharmony_ci   This memo defines an Experimental Protocol for the Internet
2153a5a1b3Sopenharmony_ci   community.  It does not specify an Internet standard of any kind.
2253a5a1b3Sopenharmony_ci   Discussion and suggestions for improvement are requested.
2353a5a1b3Sopenharmony_ci   Distribution of this memo is unlimited.
2453a5a1b3Sopenharmony_ci
2553a5a1b3Sopenharmony_ciCopyright Notice
2653a5a1b3Sopenharmony_ci
2753a5a1b3Sopenharmony_ci   Copyright (C) The Internet Society (2000).  All Rights Reserved.
2853a5a1b3Sopenharmony_ci
2953a5a1b3Sopenharmony_ciAbstract
3053a5a1b3Sopenharmony_ci
3153a5a1b3Sopenharmony_ci   This document describes version 2 of the multicast session directory
3253a5a1b3Sopenharmony_ci   announcement protocol, Session Announcement Protocol (SAP), and the
3353a5a1b3Sopenharmony_ci   related issues affecting security and scalability that should be
3453a5a1b3Sopenharmony_ci   taken into account by implementors.
3553a5a1b3Sopenharmony_ci
3653a5a1b3Sopenharmony_ci1  Introduction
3753a5a1b3Sopenharmony_ci
3853a5a1b3Sopenharmony_ci   In order to assist the advertisement of multicast multimedia
3953a5a1b3Sopenharmony_ci   conferences and other multicast sessions, and to communicate the
4053a5a1b3Sopenharmony_ci   relevant session setup information to prospective participants, a
4153a5a1b3Sopenharmony_ci   distributed session directory may be used.  An instance of such a
4253a5a1b3Sopenharmony_ci   session directory periodically multicasts packets containing a
4353a5a1b3Sopenharmony_ci   description of the session, and these advertisements are received by
4453a5a1b3Sopenharmony_ci   other session directories such that potential remote participants can
4553a5a1b3Sopenharmony_ci   use the session description to start the tools required to
4653a5a1b3Sopenharmony_ci   participate in the session.
4753a5a1b3Sopenharmony_ci
4853a5a1b3Sopenharmony_ci   This memo describes the issues involved in the multicast announcement
4953a5a1b3Sopenharmony_ci   of session description information and defines an announcement
5053a5a1b3Sopenharmony_ci   protocol to be used.  Sessions are described using the session
5153a5a1b3Sopenharmony_ci   description protocol which is described in a companion memo [4].
5253a5a1b3Sopenharmony_ci
5353a5a1b3Sopenharmony_ci
5453a5a1b3Sopenharmony_ci
5553a5a1b3Sopenharmony_ci
5653a5a1b3Sopenharmony_ci
5753a5a1b3Sopenharmony_ci
5853a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 1]
5953a5a1b3Sopenharmony_ci
6053a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
6153a5a1b3Sopenharmony_ci
6253a5a1b3Sopenharmony_ci
6353a5a1b3Sopenharmony_ci2  Terminology
6453a5a1b3Sopenharmony_ci
6553a5a1b3Sopenharmony_ci   A SAP announcer periodically multicasts an announcement packet to a
6653a5a1b3Sopenharmony_ci   well known multicast address and port.  The announcement is multicast
6753a5a1b3Sopenharmony_ci   with the same scope as the session it is announcing, ensuring that
6853a5a1b3Sopenharmony_ci   the recipients of the announcement are within the scope of the
6953a5a1b3Sopenharmony_ci   session the announcement describes (bandwidth and other such
7053a5a1b3Sopenharmony_ci   constraints permitting).  This is also important for the scalability
7153a5a1b3Sopenharmony_ci   of the protocol, as it keeps local session announcements local.
7253a5a1b3Sopenharmony_ci
7353a5a1b3Sopenharmony_ci   A SAP listener learns of the multicast scopes it is within (for
7453a5a1b3Sopenharmony_ci   example, using the Multicast-Scope Zone Announcement Protocol [5])
7553a5a1b3Sopenharmony_ci   and listens on the well known SAP address and port for those scopes.
7653a5a1b3Sopenharmony_ci   In this manner, it will eventually learn of all the sessions being
7753a5a1b3Sopenharmony_ci   announced, allowing those sessions to be joined.
7853a5a1b3Sopenharmony_ci
7953a5a1b3Sopenharmony_ci   The key words `MUST', `MUST NOT', `REQUIRED', `SHALL', `SHALL NOT',
8053a5a1b3Sopenharmony_ci   `SHOULD', `SHOULD NOT', `RECOMMENDED', `MAY', and `OPTIONAL' in this
8153a5a1b3Sopenharmony_ci   document are to be interpreted as described in [1].
8253a5a1b3Sopenharmony_ci
8353a5a1b3Sopenharmony_ci3  Session Announcement
8453a5a1b3Sopenharmony_ci
8553a5a1b3Sopenharmony_ci   As noted previously, a SAP announcer periodically sends an
8653a5a1b3Sopenharmony_ci   announcement packet to a well known multicast address and port.
8753a5a1b3Sopenharmony_ci   There is no rendezvous mechanism - the SAP announcer is not aware of
8853a5a1b3Sopenharmony_ci   the presence or absence of any SAP listeners - and no additional
8953a5a1b3Sopenharmony_ci   reliability is provided over the standard best-effort UDP/IP
9053a5a1b3Sopenharmony_ci   semantics.
9153a5a1b3Sopenharmony_ci
9253a5a1b3Sopenharmony_ci   That announcement contains a session description and SHOULD contain
9353a5a1b3Sopenharmony_ci   an authentication header.  The session description MAY be encrypted
9453a5a1b3Sopenharmony_ci   although this is NOT RECOMMENDED (see section 7).
9553a5a1b3Sopenharmony_ci
9653a5a1b3Sopenharmony_ci   A SAP announcement is multicast with the same scope as the session it
9753a5a1b3Sopenharmony_ci   is announcing, ensuring that the recipients of the announcement are
9853a5a1b3Sopenharmony_ci   within the scope of the session the announcement describes. There are
9953a5a1b3Sopenharmony_ci   a number of possibilities:
10053a5a1b3Sopenharmony_ci
10153a5a1b3Sopenharmony_ci   IPv4 global scope sessions use multicast addresses in the range
10253a5a1b3Sopenharmony_ci      224.2.128.0 - 224.2.255.255 with SAP announcements being sent to
10353a5a1b3Sopenharmony_ci      224.2.127.254 (note that 224.2.127.255 is used by the obsolete
10453a5a1b3Sopenharmony_ci      SAPv0 and MUST NOT be used).
10553a5a1b3Sopenharmony_ci
10653a5a1b3Sopenharmony_ci
10753a5a1b3Sopenharmony_ci
10853a5a1b3Sopenharmony_ci
10953a5a1b3Sopenharmony_ci
11053a5a1b3Sopenharmony_ci
11153a5a1b3Sopenharmony_ci
11253a5a1b3Sopenharmony_ci
11353a5a1b3Sopenharmony_ci
11453a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 2]
11553a5a1b3Sopenharmony_ci
11653a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
11753a5a1b3Sopenharmony_ci
11853a5a1b3Sopenharmony_ci
11953a5a1b3Sopenharmony_ci   IPv4 administrative scope sessions using administratively scoped IP
12053a5a1b3Sopenharmony_ci      multicast as defined in [7].  The multicast address to be used for
12153a5a1b3Sopenharmony_ci      announcements is the highest multicast address in the relevant
12253a5a1b3Sopenharmony_ci      administrative scope zone.  For example, if the scope range is
12353a5a1b3Sopenharmony_ci      239.16.32.0 - 239.16.33.255, then 239.16.33.255 is used for SAP
12453a5a1b3Sopenharmony_ci      announcements.
12553a5a1b3Sopenharmony_ci
12653a5a1b3Sopenharmony_ci   IPv6 sessions are announced on the address FF0X:0:0:0:0:0:2:7FFE
12753a5a1b3Sopenharmony_ci      where X is the 4-bit scope value.  For example, an announcement
12853a5a1b3Sopenharmony_ci      for a link-local session assigned the address
12953a5a1b3Sopenharmony_ci      FF02:0:0:0:0:0:1234:5678, should be advertised on SAP address
13053a5a1b3Sopenharmony_ci      FF02:0:0:0:0:0:2:7FFE.
13153a5a1b3Sopenharmony_ci
13253a5a1b3Sopenharmony_ci   Ensuring that a description is not used by a potential participant
13353a5a1b3Sopenharmony_ci   outside the session scope is not addressed in this memo.
13453a5a1b3Sopenharmony_ci
13553a5a1b3Sopenharmony_ci   SAP announcements MUST be sent on port 9875 and SHOULD be sent with
13653a5a1b3Sopenharmony_ci   an IP time-to-live of 255 (the use of TTL scoping for multicast is
13753a5a1b3Sopenharmony_ci   discouraged [7]).
13853a5a1b3Sopenharmony_ci
13953a5a1b3Sopenharmony_ci   If a session uses addresses in multiple administrative scope ranges,
14053a5a1b3Sopenharmony_ci   it is necessary for the announcer to send identical copies of the
14153a5a1b3Sopenharmony_ci   announcement to each administrative scope range.  It is up to the
14253a5a1b3Sopenharmony_ci   listeners to parse such multiple announcements as the same session
14353a5a1b3Sopenharmony_ci   (as identified by the SDP origin field, for example).  The
14453a5a1b3Sopenharmony_ci   announcement rate for each administrative scope range MUST be
14553a5a1b3Sopenharmony_ci   calculated separately, as if the multiple announcements were
14653a5a1b3Sopenharmony_ci   separate.
14753a5a1b3Sopenharmony_ci
14853a5a1b3Sopenharmony_ci   Multiple announcers may announce a single session, as an aid to
14953a5a1b3Sopenharmony_ci   robustness in the face of packet loss and failure of one or more
15053a5a1b3Sopenharmony_ci   announcers.  The rate at which each announcer repeats its
15153a5a1b3Sopenharmony_ci   announcement MUST be scaled back such that the total announcement
15253a5a1b3Sopenharmony_ci   rate is equal to that which a single server would choose.
15353a5a1b3Sopenharmony_ci   Announcements made in this manner MUST be identical.
15453a5a1b3Sopenharmony_ci
15553a5a1b3Sopenharmony_ci   If multiple announcements are being made for a session, then each
15653a5a1b3Sopenharmony_ci   announcement MUST carry an authentication header signed by the same
15753a5a1b3Sopenharmony_ci   key, or be treated as a completely separate announcement by
15853a5a1b3Sopenharmony_ci   listeners.
15953a5a1b3Sopenharmony_ci
16053a5a1b3Sopenharmony_ci   An IPv4 SAP listener SHOULD listen on the IPv4 global scope SAP
16153a5a1b3Sopenharmony_ci   address and on the SAP addresses for each IPv4 administrative scope
16253a5a1b3Sopenharmony_ci   zone it is within.  The discovery of administrative scope zones is
16353a5a1b3Sopenharmony_ci   outside the scope of this memo, but it is assumed that each SAP
16453a5a1b3Sopenharmony_ci   listener within a particular scope zone is aware of that scope zone.
16553a5a1b3Sopenharmony_ci   A SAP listener which supports IPv6 SHOULD also listen to the IPv6 SAP
16653a5a1b3Sopenharmony_ci   addresses.
16753a5a1b3Sopenharmony_ci
16853a5a1b3Sopenharmony_ci
16953a5a1b3Sopenharmony_ci
17053a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 3]
17153a5a1b3Sopenharmony_ci
17253a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
17353a5a1b3Sopenharmony_ci
17453a5a1b3Sopenharmony_ci
17553a5a1b3Sopenharmony_ci3.1 Announcement Interval
17653a5a1b3Sopenharmony_ci
17753a5a1b3Sopenharmony_ci   The time period between repetitions of an announcement is chosen such
17853a5a1b3Sopenharmony_ci   that the total bandwidth used by all announcements on a single SAP
17953a5a1b3Sopenharmony_ci   group remains below a preconfigured limit.  If not otherwise
18053a5a1b3Sopenharmony_ci   specified, the bandwidth limit SHOULD be assumed to be 4000 bits per
18153a5a1b3Sopenharmony_ci   second.
18253a5a1b3Sopenharmony_ci
18353a5a1b3Sopenharmony_ci   Each announcer is expected to listen to other announcements in order
18453a5a1b3Sopenharmony_ci   to determine the total number of sessions being announced on a
18553a5a1b3Sopenharmony_ci   particular group.  Sessions are uniquely identified by the
18653a5a1b3Sopenharmony_ci   combination of the message identifier hash and originating source
18753a5a1b3Sopenharmony_ci   fields of the SAP header (note that SAP v0 announcers always set the
18853a5a1b3Sopenharmony_ci   message identifier hash to zero, and if such an announcement is
18953a5a1b3Sopenharmony_ci   received the entire message MUST be compared to determine
19053a5a1b3Sopenharmony_ci   uniqueness).
19153a5a1b3Sopenharmony_ci
19253a5a1b3Sopenharmony_ci   Announcements are made by periodic multicast to the group.  The base
19353a5a1b3Sopenharmony_ci   interval between announcements is derived from the number of
19453a5a1b3Sopenharmony_ci   announcements being made in that group, the size of the announcement
19553a5a1b3Sopenharmony_ci   and the configured bandwidth limit.  The actual transmission time is
19653a5a1b3Sopenharmony_ci   derived from this base interval as follows:
19753a5a1b3Sopenharmony_ci
19853a5a1b3Sopenharmony_ci      1. The announcer initializes the variable tp to be the last time a
19953a5a1b3Sopenharmony_ci         particular announcement was transmitted (or the current time if
20053a5a1b3Sopenharmony_ci         this is the first time this announcement is to be made).
20153a5a1b3Sopenharmony_ci
20253a5a1b3Sopenharmony_ci      2. Given a configured bandwidth limit in bits/second and an
20353a5a1b3Sopenharmony_ci         announcement of ad_size bytes, the base announcement interval
20453a5a1b3Sopenharmony_ci         in seconds is
20553a5a1b3Sopenharmony_ci
20653a5a1b3Sopenharmony_ci                interval =max(300; (8*no_of_ads*ad_size)/limit)
20753a5a1b3Sopenharmony_ci
20853a5a1b3Sopenharmony_ci      3. An offset is calculated based on the base announcement interval
20953a5a1b3Sopenharmony_ci
21053a5a1b3Sopenharmony_ci                offset= rand(interval* 2/3)-(interval/3)
21153a5a1b3Sopenharmony_ci
21253a5a1b3Sopenharmony_ci      4. The next transmission time for an announcement derived as
21353a5a1b3Sopenharmony_ci
21453a5a1b3Sopenharmony_ci                tn =tp+ interval+ offset
21553a5a1b3Sopenharmony_ci
21653a5a1b3Sopenharmony_ci   The announcer then sets a timer to expire at tn and waits.  At time
21753a5a1b3Sopenharmony_ci   tn the announcer SHOULD recalculate the next transmission time.  If
21853a5a1b3Sopenharmony_ci   the new value of tn is before the current time, the announcement is
21953a5a1b3Sopenharmony_ci   sent immediately.  Otherwise the transmission is rescheduled for the
22053a5a1b3Sopenharmony_ci   new tn.  This reconsideration prevents transient packet bursts on
22153a5a1b3Sopenharmony_ci   startup and when a network partition heals.
22253a5a1b3Sopenharmony_ci
22353a5a1b3Sopenharmony_ci
22453a5a1b3Sopenharmony_ci
22553a5a1b3Sopenharmony_ci
22653a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 4]
22753a5a1b3Sopenharmony_ci
22853a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
22953a5a1b3Sopenharmony_ci
23053a5a1b3Sopenharmony_ci
23153a5a1b3Sopenharmony_ci4  Session Deletion
23253a5a1b3Sopenharmony_ci
23353a5a1b3Sopenharmony_ci   Sessions may be deleted in one of several ways:
23453a5a1b3Sopenharmony_ci
23553a5a1b3Sopenharmony_ci   Explicit Timeout The session description payload may contain
23653a5a1b3Sopenharmony_ci      timestamp information specifying the start- and end-times of the
23753a5a1b3Sopenharmony_ci      session.  If the current time is later than the end-time of the
23853a5a1b3Sopenharmony_ci      session, then the session SHOULD be deleted from the receiver's
23953a5a1b3Sopenharmony_ci      session cache.
24053a5a1b3Sopenharmony_ci
24153a5a1b3Sopenharmony_ci   Implicit Timeout A session announcement message should be received
24253a5a1b3Sopenharmony_ci      periodically for each session description in a receiver's session
24353a5a1b3Sopenharmony_ci      cache.  The announcement period can be predicted by the receiver
24453a5a1b3Sopenharmony_ci      from the set of sessions currently being announced.  If a session
24553a5a1b3Sopenharmony_ci      announcement message has not been received for ten times the
24653a5a1b3Sopenharmony_ci      announcement period, or one hour, whichever is the greater, then
24753a5a1b3Sopenharmony_ci      the session is deleted from the receiver's session cache.  The one
24853a5a1b3Sopenharmony_ci      hour minimum is to allow for transient network partitionings.
24953a5a1b3Sopenharmony_ci
25053a5a1b3Sopenharmony_ci   Explicit Deletion A session deletion packet is received specifying
25153a5a1b3Sopenharmony_ci      the session to be deleted.  Session deletion packets SHOULD have a
25253a5a1b3Sopenharmony_ci      valid authentication header, matching that used to authenticate
25353a5a1b3Sopenharmony_ci      previous announcement packets.  If this authentication is missing,
25453a5a1b3Sopenharmony_ci      the deletion message SHOULD be ignored.
25553a5a1b3Sopenharmony_ci
25653a5a1b3Sopenharmony_ci5  Session Modification
25753a5a1b3Sopenharmony_ci
25853a5a1b3Sopenharmony_ci   A pre-announced session can be modified by simply announcing the
25953a5a1b3Sopenharmony_ci   modified session description.  In this case, the version hash in the
26053a5a1b3Sopenharmony_ci   SAP header MUST be changed to indicate to receivers that the packet
26153a5a1b3Sopenharmony_ci   contents should be parsed (or decrypted and parsed if it is
26253a5a1b3Sopenharmony_ci   encrypted).  The session itself, as distinct from the session
26353a5a1b3Sopenharmony_ci   announcement, is uniquely identified by the payload and not by the
26453a5a1b3Sopenharmony_ci   message identifier hash in the header.
26553a5a1b3Sopenharmony_ci
26653a5a1b3Sopenharmony_ci   The same rules apply for session modification as for session
26753a5a1b3Sopenharmony_ci   deletion:
26853a5a1b3Sopenharmony_ci
26953a5a1b3Sopenharmony_ci    o Either the modified announcement must contain an authentication
27053a5a1b3Sopenharmony_ci      header signed by the same key as the cached session announcement
27153a5a1b3Sopenharmony_ci      it is modifying, or:
27253a5a1b3Sopenharmony_ci
27353a5a1b3Sopenharmony_ci    o The cached session announcement must not contain an authentication
27453a5a1b3Sopenharmony_ci      header, and the session modification announcement must originate
27553a5a1b3Sopenharmony_ci      from the same host as the session it is modifying.
27653a5a1b3Sopenharmony_ci
27753a5a1b3Sopenharmony_ci
27853a5a1b3Sopenharmony_ci
27953a5a1b3Sopenharmony_ci
28053a5a1b3Sopenharmony_ci
28153a5a1b3Sopenharmony_ci
28253a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 5]
28353a5a1b3Sopenharmony_ci
28453a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
28553a5a1b3Sopenharmony_ci
28653a5a1b3Sopenharmony_ci
28753a5a1b3Sopenharmony_ci   If an announcement is received containing an authentication header
28853a5a1b3Sopenharmony_ci   and the cached announcement did not contain an authentication header,
28953a5a1b3Sopenharmony_ci   or it contained a different authentication header, then the modified
29053a5a1b3Sopenharmony_ci   announcement MUST be treated as a new and different announcement, and
29153a5a1b3Sopenharmony_ci   displayed in addition to the un-authenticated announcement.  The same
29253a5a1b3Sopenharmony_ci   should happen if a modified packet without an authentication header
29353a5a1b3Sopenharmony_ci   is received from a different source than the original announcement.
29453a5a1b3Sopenharmony_ci
29553a5a1b3Sopenharmony_ci   These rules prevent an announcement having an authentication header
29653a5a1b3Sopenharmony_ci   added by a malicious user and then being deleted using that header,
29753a5a1b3Sopenharmony_ci   and it also prevents a denial-of-service attack by someone putting
29853a5a1b3Sopenharmony_ci   out a spoof announcement which, due to packet loss, reaches some
29953a5a1b3Sopenharmony_ci   participants before the original announcement.  Note that under such
30053a5a1b3Sopenharmony_ci   circumstances, being able to authenticate the message originator is
30153a5a1b3Sopenharmony_ci   the only way to discover which session is the correct session.
30253a5a1b3Sopenharmony_ci
30353a5a1b3Sopenharmony_ci    0                   1                   2                   3
30453a5a1b3Sopenharmony_ci    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
30553a5a1b3Sopenharmony_ci   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
30653a5a1b3Sopenharmony_ci   | V=1 |A|R|T|E|C|   auth len    |         msg id hash           |
30753a5a1b3Sopenharmony_ci   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
30853a5a1b3Sopenharmony_ci   |                                                               |
30953a5a1b3Sopenharmony_ci   :                originating source (32 or 128 bits)            :
31053a5a1b3Sopenharmony_ci   :                                                               :
31153a5a1b3Sopenharmony_ci   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
31253a5a1b3Sopenharmony_ci   |                    optional authentication data               |
31353a5a1b3Sopenharmony_ci   :                              ....                             :
31453a5a1b3Sopenharmony_ci   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
31553a5a1b3Sopenharmony_ci   |                      optional payload type                    |
31653a5a1b3Sopenharmony_ci   +                                         +-+- - - - - - - - - -+
31753a5a1b3Sopenharmony_ci   |                                         |0|                   |
31853a5a1b3Sopenharmony_ci   + - - - - - - - - - - - - - - - - - - - - +-+                   |
31953a5a1b3Sopenharmony_ci   |                                                               |
32053a5a1b3Sopenharmony_ci   :                            payload                            :
32153a5a1b3Sopenharmony_ci   |                                                               |
32253a5a1b3Sopenharmony_ci   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32353a5a1b3Sopenharmony_ci
32453a5a1b3Sopenharmony_ci                     Figure 1: Packet format
32553a5a1b3Sopenharmony_ci
32653a5a1b3Sopenharmony_ci6  Packet Format
32753a5a1b3Sopenharmony_ci
32853a5a1b3Sopenharmony_ci   SAP data packets have the format described in figure 1.
32953a5a1b3Sopenharmony_ci
33053a5a1b3Sopenharmony_ci   V: Version Number. The version number field MUST be set to 1 (SAPv2
33153a5a1b3Sopenharmony_ci      announcements which use only SAPv1 features are backwards
33253a5a1b3Sopenharmony_ci      compatible, those which use new features can be detected by other
33353a5a1b3Sopenharmony_ci      means, so the SAP version number doesn't need to change).
33453a5a1b3Sopenharmony_ci
33553a5a1b3Sopenharmony_ci
33653a5a1b3Sopenharmony_ci
33753a5a1b3Sopenharmony_ci
33853a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 6]
33953a5a1b3Sopenharmony_ci
34053a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
34153a5a1b3Sopenharmony_ci
34253a5a1b3Sopenharmony_ci
34353a5a1b3Sopenharmony_ci   A: Address type. If the A bit is 0, the originating source field
34453a5a1b3Sopenharmony_ci      contains a 32-bit IPv4 address.  If the A bit is 1, the
34553a5a1b3Sopenharmony_ci      originating source contains a 128-bit IPv6 address.
34653a5a1b3Sopenharmony_ci
34753a5a1b3Sopenharmony_ci   R: Reserved. SAP announcers MUST set this to 0, SAP listeners MUST
34853a5a1b3Sopenharmony_ci      ignore the contents of this field.
34953a5a1b3Sopenharmony_ci
35053a5a1b3Sopenharmony_ci   T: Message Type. If the T field is set to 0 this is a session
35153a5a1b3Sopenharmony_ci      announcement packet, if 1 this is a session deletion packet.
35253a5a1b3Sopenharmony_ci
35353a5a1b3Sopenharmony_ci   E: Encryption Bit. If the encryption bit is set to 1, the payload of
35453a5a1b3Sopenharmony_ci      the SAP packet is encrypted.  If this bit is 0 the packet is not
35553a5a1b3Sopenharmony_ci      encrypted.  See section 7 for details of the encryption process.
35653a5a1b3Sopenharmony_ci
35753a5a1b3Sopenharmony_ci   C: Compressed bit. If the compressed bit is set to 1, the payload is
35853a5a1b3Sopenharmony_ci      compressed using the zlib compression algorithm [3].  If the
35953a5a1b3Sopenharmony_ci      payload is to be compressed and encrypted, the compression MUST be
36053a5a1b3Sopenharmony_ci      performed first.
36153a5a1b3Sopenharmony_ci
36253a5a1b3Sopenharmony_ci   Authentication Length. An 8 bit unsigned quantity giving the number
36353a5a1b3Sopenharmony_ci      of 32 bit words following the main SAP header that contain
36453a5a1b3Sopenharmony_ci      authentication data.  If it is zero, no authentication header is
36553a5a1b3Sopenharmony_ci      present.
36653a5a1b3Sopenharmony_ci
36753a5a1b3Sopenharmony_ci   Authentication data containing a digital signature of the packet,
36853a5a1b3Sopenharmony_ci      with length as specified by the authentication length header
36953a5a1b3Sopenharmony_ci      field.  See section 8 for details of the authentication process.
37053a5a1b3Sopenharmony_ci
37153a5a1b3Sopenharmony_ci   Message Identifier Hash. A 16 bit quantity that, used in combination
37253a5a1b3Sopenharmony_ci      with the originating source, provides a globally unique identifier
37353a5a1b3Sopenharmony_ci      indicating the precise version of this announcement.  The choice
37453a5a1b3Sopenharmony_ci      of value for this field is not specified here, except that it MUST
37553a5a1b3Sopenharmony_ci      be unique for each session announced by a particular SAP announcer
37653a5a1b3Sopenharmony_ci      and it MUST be changed if the session description is modified (and
37753a5a1b3Sopenharmony_ci      a session deletion message SHOULD be sent for the old version of
37853a5a1b3Sopenharmony_ci      the session).
37953a5a1b3Sopenharmony_ci
38053a5a1b3Sopenharmony_ci      Earlier versions of SAP used a value of zero to mean that the hash
38153a5a1b3Sopenharmony_ci      should be ignored and the payload should always be parsed.  This
38253a5a1b3Sopenharmony_ci      had the unfortunate side-effect that SAP announcers had to study
38353a5a1b3Sopenharmony_ci      the payload data to determine how many unique sessions were being
38453a5a1b3Sopenharmony_ci      advertised, making the calculation of the announcement interval
38553a5a1b3Sopenharmony_ci      more complex that necessary.  In order to decouple the session
38653a5a1b3Sopenharmony_ci      announcement process from the contents of those announcements, SAP
38753a5a1b3Sopenharmony_ci      announcers SHOULD NOT set the message identifier hash to zero.
38853a5a1b3Sopenharmony_ci
38953a5a1b3Sopenharmony_ci      SAP listeners MAY silently discard messages if the message
39053a5a1b3Sopenharmony_ci      identifier hash is set to zero.
39153a5a1b3Sopenharmony_ci
39253a5a1b3Sopenharmony_ci
39353a5a1b3Sopenharmony_ci
39453a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 7]
39553a5a1b3Sopenharmony_ci
39653a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
39753a5a1b3Sopenharmony_ci
39853a5a1b3Sopenharmony_ci
39953a5a1b3Sopenharmony_ci   Originating Source. This gives the IP address of the original source
40053a5a1b3Sopenharmony_ci      of the message.  This is an IPv4 address if the A field is set to
40153a5a1b3Sopenharmony_ci      zero, else it is an IPv6 address.  The address is stored in
40253a5a1b3Sopenharmony_ci      network byte order.
40353a5a1b3Sopenharmony_ci
40453a5a1b3Sopenharmony_ci      SAPv0 permitted the originating source to be zero if the message
40553a5a1b3Sopenharmony_ci      identifier hash was also zero.  This practise is no longer legal,
40653a5a1b3Sopenharmony_ci      and SAP announcers SHOULD NOT set the originating source to zero.
40753a5a1b3Sopenharmony_ci      SAP listeners MAY silently discard packets with the originating
40853a5a1b3Sopenharmony_ci      source set to zero.
40953a5a1b3Sopenharmony_ci
41053a5a1b3Sopenharmony_ci   The header is followed by an optional payload type field and the
41153a5a1b3Sopenharmony_ci   payload data itself.  If the E or C bits are set in the header both
41253a5a1b3Sopenharmony_ci   the payload type and payload are encrypted and/or compressed.
41353a5a1b3Sopenharmony_ci
41453a5a1b3Sopenharmony_ci   The payload type field is a MIME content type specifier, describing
41553a5a1b3Sopenharmony_ci   the format of the payload.  This is a variable length ASCII text
41653a5a1b3Sopenharmony_ci   string, followed by a single zero byte (ASCII NUL).  The payload type
41753a5a1b3Sopenharmony_ci   SHOULD be included in all packets.  If the payload type is
41853a5a1b3Sopenharmony_ci   `application/sdp' both the payload type and its terminating zero byte
41953a5a1b3Sopenharmony_ci   MAY be omitted, although this is intended for backwards compatibility
42053a5a1b3Sopenharmony_ci   with SAP v1 listeners only.
42153a5a1b3Sopenharmony_ci
42253a5a1b3Sopenharmony_ci   The absence of a payload type field may be noted since the payload
42353a5a1b3Sopenharmony_ci   section of such a packet will start with an SDP `v=0' field, which is
42453a5a1b3Sopenharmony_ci   not a legal MIME content type specifier.
42553a5a1b3Sopenharmony_ci
42653a5a1b3Sopenharmony_ci   All implementations MUST support payloads of type `application/sdp'
42753a5a1b3Sopenharmony_ci   [4].  Other formats MAY be supported although since there is no
42853a5a1b3Sopenharmony_ci   negotiation in SAP an announcer which chooses to use a session
42953a5a1b3Sopenharmony_ci   description format other than SDP cannot know that the listeners are
43053a5a1b3Sopenharmony_ci   able to understand the announcement.  A proliferation of payload
43153a5a1b3Sopenharmony_ci   types in announcements has the potential to lead to severe
43253a5a1b3Sopenharmony_ci   interoperability problems, and for this reason, the use of non-SDP
43353a5a1b3Sopenharmony_ci   payloads is NOT RECOMMENDED.
43453a5a1b3Sopenharmony_ci
43553a5a1b3Sopenharmony_ci   If the packet is an announcement packet, the payload contains a
43653a5a1b3Sopenharmony_ci   session description.
43753a5a1b3Sopenharmony_ci
43853a5a1b3Sopenharmony_ci   If the packet is a session deletion packet, the payload contains a
43953a5a1b3Sopenharmony_ci   session deletion message.  If the payload format is `application/sdp'
44053a5a1b3Sopenharmony_ci   the deletion message is a single SDP line consisting of the origin
44153a5a1b3Sopenharmony_ci   field of the announcement to be deleted.
44253a5a1b3Sopenharmony_ci
44353a5a1b3Sopenharmony_ci   It is desirable for the payload to be sufficiently small that SAP
44453a5a1b3Sopenharmony_ci   packets do not get fragmented by the underlying network.
44553a5a1b3Sopenharmony_ci   Fragmentation has a loss multiplier effect, which is known to
44653a5a1b3Sopenharmony_ci   significantly affect the reliability of announcements.  It is
44753a5a1b3Sopenharmony_ci
44853a5a1b3Sopenharmony_ci
44953a5a1b3Sopenharmony_ci
45053a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 8]
45153a5a1b3Sopenharmony_ci
45253a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
45353a5a1b3Sopenharmony_ci
45453a5a1b3Sopenharmony_ci
45553a5a1b3Sopenharmony_ci   RECOMMENDED that SAP packets are smaller than 1kByte in length,
45653a5a1b3Sopenharmony_ci   although if it is known that announcements will use a network with a
45753a5a1b3Sopenharmony_ci   smaller MTU than this, then that SHOULD be used as the maximum
45853a5a1b3Sopenharmony_ci   recommended packet size.
45953a5a1b3Sopenharmony_ci
46053a5a1b3Sopenharmony_ci7  Encrypted Announcements
46153a5a1b3Sopenharmony_ci
46253a5a1b3Sopenharmony_ci   An announcement is received by all listeners in the scope to which it
46353a5a1b3Sopenharmony_ci   is sent.  If an announcement is encrypted, and many of the receivers
46453a5a1b3Sopenharmony_ci   do not have the encryption key, there is a considerable waste of
46553a5a1b3Sopenharmony_ci   bandwidth since those receivers cannot use the announcement they have
46653a5a1b3Sopenharmony_ci   received.  For this reason, the use of encrypted SAP announcements is
46753a5a1b3Sopenharmony_ci   NOT RECOMMENDED on the global scope SAP group or on administrative
46853a5a1b3Sopenharmony_ci   scope groups which may have many receivers which cannot decrypt those
46953a5a1b3Sopenharmony_ci   announcements.
47053a5a1b3Sopenharmony_ci
47153a5a1b3Sopenharmony_ci   The opinion of the authors is that encrypted SAP is useful in special
47253a5a1b3Sopenharmony_ci   cases only, and that the vast majority of scenarios where encrypted
47353a5a1b3Sopenharmony_ci   SAP has been proposed may be better served by distributing session
47453a5a1b3Sopenharmony_ci   details using another mechanism.  There are, however, certain
47553a5a1b3Sopenharmony_ci   scenarios where encrypted announcements may be useful.  For this
47653a5a1b3Sopenharmony_ci   reason, the encryption bit is included in the SAP header to allow
47753a5a1b3Sopenharmony_ci   experimentation with encrypted announcements.
47853a5a1b3Sopenharmony_ci
47953a5a1b3Sopenharmony_ci   This memo does not specify details of the encryption algorithm to be
48053a5a1b3Sopenharmony_ci   used or the means by which keys are generated and distributed.  An
48153a5a1b3Sopenharmony_ci   additional specification should define these, if it is desired to use
48253a5a1b3Sopenharmony_ci   encrypted SAP.
48353a5a1b3Sopenharmony_ci
48453a5a1b3Sopenharmony_ci   Note that if an encrypted announcement is being announced via a
48553a5a1b3Sopenharmony_ci   proxy, then there may be no way for the proxy to discover that the
48653a5a1b3Sopenharmony_ci   announcement has been superseded, and so it may continue to relay the
48753a5a1b3Sopenharmony_ci   old announcement in addition to the new announcement.  SAP provides
48853a5a1b3Sopenharmony_ci   no mechanism to chain modified encrypted announcements, so it is
48953a5a1b3Sopenharmony_ci   advisable to announce the unmodified session as deleted for a short
49053a5a1b3Sopenharmony_ci   time after the modification has occurred.  This does not guarantee
49153a5a1b3Sopenharmony_ci   that all proxies have deleted the session, and so receivers of
49253a5a1b3Sopenharmony_ci   encrypted sessions should be prepared to discard old versions of
49353a5a1b3Sopenharmony_ci   session announcements that they may receive.  In most cases however,
49453a5a1b3Sopenharmony_ci   the only stateful proxy will be local to (and known to) the sender,
49553a5a1b3Sopenharmony_ci   and an additional (local-area) protocol involving a handshake for
49653a5a1b3Sopenharmony_ci   such session modifications can be used to avoid this problem.
49753a5a1b3Sopenharmony_ci
49853a5a1b3Sopenharmony_ci   Session announcements that are encrypted with a symmetric algorithm
49953a5a1b3Sopenharmony_ci   may allow a degree of privacy in the announcement of a session, but
50053a5a1b3Sopenharmony_ci   it should be recognized that a user in possession of such a key can
50153a5a1b3Sopenharmony_ci   pass it on to other users who should not be in possession of such a
50253a5a1b3Sopenharmony_ci   key.  Thus announcements to such a group of key holders cannot be
50353a5a1b3Sopenharmony_ci
50453a5a1b3Sopenharmony_ci
50553a5a1b3Sopenharmony_ci
50653a5a1b3Sopenharmony_ciHandley, et al.               Experimental                      [Page 9]
50753a5a1b3Sopenharmony_ci
50853a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
50953a5a1b3Sopenharmony_ci
51053a5a1b3Sopenharmony_ci
51153a5a1b3Sopenharmony_ci   assumed to have come from an authorized key holder unless there is an
51253a5a1b3Sopenharmony_ci   appropriate authentication header signed by an authorized key holder.
51353a5a1b3Sopenharmony_ci   In addition the recipients of such encrypted announcements cannot be
51453a5a1b3Sopenharmony_ci   assumed to only be authorized key holders.  Such encrypted
51553a5a1b3Sopenharmony_ci   announcements do not provide any real security unless all of the
51653a5a1b3Sopenharmony_ci   authorized key holders are trusted to maintain security of such
51753a5a1b3Sopenharmony_ci   session directory keys.  This property is shared by the multicast
51853a5a1b3Sopenharmony_ci   session tools themselves, where it is possible for an un-trustworthy
51953a5a1b3Sopenharmony_ci   member of the session to pass on encryption keys to un-authorized
52053a5a1b3Sopenharmony_ci   users.  However it is likely that keys used for the session tools
52153a5a1b3Sopenharmony_ci   will be more short lived than those used for session directories.
52253a5a1b3Sopenharmony_ci
52353a5a1b3Sopenharmony_ci   Similar considerations should apply when session announcements are
52453a5a1b3Sopenharmony_ci   encrypted with an asymmetric algorithm, but then it is possible to
52553a5a1b3Sopenharmony_ci   restrict the possessor(s) of the private key, so that announcements
52653a5a1b3Sopenharmony_ci   to a key-holder group can not be made, even if one of the untrusted
52753a5a1b3Sopenharmony_ci   members of the group proves to be un-trustworthy.
52853a5a1b3Sopenharmony_ci
52953a5a1b3Sopenharmony_ci                        1                   2                   3
53053a5a1b3Sopenharmony_ci    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
53153a5a1b3Sopenharmony_ci   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53253a5a1b3Sopenharmony_ci   | V=1 |P| Auth  |                                               |
53353a5a1b3Sopenharmony_ci   +-+-+-+-+-+-+-+-+                                               |
53453a5a1b3Sopenharmony_ci   |              Format  specific authentication subheader        |
53553a5a1b3Sopenharmony_ci   :                        ..................                     :
53653a5a1b3Sopenharmony_ci   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53753a5a1b3Sopenharmony_ci
53853a5a1b3Sopenharmony_ci    Figure 2:  Format of the authentication data in the SAP header
53953a5a1b3Sopenharmony_ci
54053a5a1b3Sopenharmony_ci8  Authenticated Announcements
54153a5a1b3Sopenharmony_ci
54253a5a1b3Sopenharmony_ci   The authentication header can be used for two purposes:
54353a5a1b3Sopenharmony_ci
54453a5a1b3Sopenharmony_ci    o Verification that changes to a session description or deletion of
54553a5a1b3Sopenharmony_ci      a session are permitted.
54653a5a1b3Sopenharmony_ci
54753a5a1b3Sopenharmony_ci    o Authentication of the identity of the session creator.
54853a5a1b3Sopenharmony_ci
54953a5a1b3Sopenharmony_ci   In some circumstances only verification is possible because a
55053a5a1b3Sopenharmony_ci   certificate signed by a mutually trusted person or authority is not
55153a5a1b3Sopenharmony_ci   available.  However, under such circumstances, the session originator
55253a5a1b3Sopenharmony_ci   may still be authenticated to be the same as the session originator
55353a5a1b3Sopenharmony_ci   of previous sessions claiming to be from the same person.  This may
55453a5a1b3Sopenharmony_ci   or may not be sufficient depending on the purpose of the session and
55553a5a1b3Sopenharmony_ci   the people involved.
55653a5a1b3Sopenharmony_ci
55753a5a1b3Sopenharmony_ci
55853a5a1b3Sopenharmony_ci
55953a5a1b3Sopenharmony_ci
56053a5a1b3Sopenharmony_ci
56153a5a1b3Sopenharmony_ci
56253a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 10]
56353a5a1b3Sopenharmony_ci
56453a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
56553a5a1b3Sopenharmony_ci
56653a5a1b3Sopenharmony_ci
56753a5a1b3Sopenharmony_ci   Clearly the key used for the authentication should not be trusted to
56853a5a1b3Sopenharmony_ci   belong to the session originator unless it has been separately
56953a5a1b3Sopenharmony_ci   authenticated by some other means, such as being certified by a
57053a5a1b3Sopenharmony_ci   trusted third party.  Such certificates are not normally included in
57153a5a1b3Sopenharmony_ci   an SAP header because they take more space than can normally be
57253a5a1b3Sopenharmony_ci   afforded in an SAP packet, and such verification must therefore take
57353a5a1b3Sopenharmony_ci   place by some other mechanism.  However, as certified public keys are
57453a5a1b3Sopenharmony_ci   normally locally cached, authentication of a particular key only has
57553a5a1b3Sopenharmony_ci   to take place once, rather than every time the session directory
57653a5a1b3Sopenharmony_ci   retransmits the announcement.
57753a5a1b3Sopenharmony_ci
57853a5a1b3Sopenharmony_ci   SAP is not tied to any single authentication mechanism.
57953a5a1b3Sopenharmony_ci   Authentication data in the header is self-describing, but the precise
58053a5a1b3Sopenharmony_ci   format depends on the authentication mechanism in use.  The generic
58153a5a1b3Sopenharmony_ci   format of the authentication data is given in figure 2.  The
58253a5a1b3Sopenharmony_ci   structure of the format specific authentication subheader, using both
58353a5a1b3Sopenharmony_ci   the PGP and the CMS formats, is discussed in sections 8.1 and 8.2
58453a5a1b3Sopenharmony_ci   respectively.  Additional formats may be added in future.
58553a5a1b3Sopenharmony_ci
58653a5a1b3Sopenharmony_ci   Version Number, V:  The version number of the authentication format
58753a5a1b3Sopenharmony_ci      specified by this memo is 1.
58853a5a1b3Sopenharmony_ci
58953a5a1b3Sopenharmony_ci   Padding Bit, P:  If necessary the authentication data is padded to be
59053a5a1b3Sopenharmony_ci      a multiple of 32 bits and the padding bit is set.  In this case
59153a5a1b3Sopenharmony_ci      the last byte of the authentication data contains the number of
59253a5a1b3Sopenharmony_ci      padding bytes (including the last byte) that must be discarded.
59353a5a1b3Sopenharmony_ci
59453a5a1b3Sopenharmony_ci   Authentication Type, Auth: The authentication type is a  4 bit
59553a5a1b3Sopenharmony_ci      encoded field that denotes the authentication infrastructure the
59653a5a1b3Sopenharmony_ci      sender expects the recipients to use to check the authenticity and
59753a5a1b3Sopenharmony_ci      integrity of the information.  This defines the format of the
59853a5a1b3Sopenharmony_ci      authentication subheader and can take the values:  0 = PGP format,
59953a5a1b3Sopenharmony_ci      1 = CMS format.  All other values are undefined and SHOULD be
60053a5a1b3Sopenharmony_ci      ignored.
60153a5a1b3Sopenharmony_ci
60253a5a1b3Sopenharmony_ci   If a SAP packet is to be compressed or encrypted, this MUST be done
60353a5a1b3Sopenharmony_ci   before the authentication is added.
60453a5a1b3Sopenharmony_ci
60553a5a1b3Sopenharmony_ci   The digital signature in the authentication data MUST be calculated
60653a5a1b3Sopenharmony_ci   over the entire packet, including the header.  The authentication
60753a5a1b3Sopenharmony_ci   length MUST be set to zero and the authentication data excluded when
60853a5a1b3Sopenharmony_ci   calculating the digital signature.
60953a5a1b3Sopenharmony_ci
61053a5a1b3Sopenharmony_ci   It is to be expected that sessions may be announced by a number of
61153a5a1b3Sopenharmony_ci   different mechanisms, not only SAP.  For example, a session
61253a5a1b3Sopenharmony_ci   description may placed on a web page, sent by email or conveyed in a
61353a5a1b3Sopenharmony_ci
61453a5a1b3Sopenharmony_ci
61553a5a1b3Sopenharmony_ci
61653a5a1b3Sopenharmony_ci
61753a5a1b3Sopenharmony_ci
61853a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 11]
61953a5a1b3Sopenharmony_ci
62053a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
62153a5a1b3Sopenharmony_ci
62253a5a1b3Sopenharmony_ci
62353a5a1b3Sopenharmony_ci   session initiation protocol.  To ease interoperability with these
62453a5a1b3Sopenharmony_ci   other mechanisms, application level security is employed, rather than
62553a5a1b3Sopenharmony_ci   using IPsec authentication headers.
62653a5a1b3Sopenharmony_ci
62753a5a1b3Sopenharmony_ci8.1 PGP Authentication
62853a5a1b3Sopenharmony_ci
62953a5a1b3Sopenharmony_ci   A full description of the PGP protocol can be found in [2].  When
63053a5a1b3Sopenharmony_ci   using PGP for SAP authentication the basic format specific
63153a5a1b3Sopenharmony_ci   authentication subheader comprises a digital signature packet as
63253a5a1b3Sopenharmony_ci   described in [2].  The signature type MUST be 0x01 which means the
63353a5a1b3Sopenharmony_ci   signature is that of a canonical text document.
63453a5a1b3Sopenharmony_ci
63553a5a1b3Sopenharmony_ci8.2 CMS Authentication
63653a5a1b3Sopenharmony_ci
63753a5a1b3Sopenharmony_ci   A full description of the Cryptographic Message Syntax can be found
63853a5a1b3Sopenharmony_ci   in [6].  The format specific authentication subheader will, in the
63953a5a1b3Sopenharmony_ci   CMS case, have an ASN.1 ContentInfo type with the ContentType being
64053a5a1b3Sopenharmony_ci   signedData.
64153a5a1b3Sopenharmony_ci
64253a5a1b3Sopenharmony_ci   Use is made of the option available in PKCS#7 to leave the content
64353a5a1b3Sopenharmony_ci   itself blank as the content which is signed is already present in the
64453a5a1b3Sopenharmony_ci   packet.  Inclusion of it within the SignedData type would duplicate
64553a5a1b3Sopenharmony_ci   this data and increase the packet length unnecessarily.  In addition
64653a5a1b3Sopenharmony_ci   this allows recipients with either no interest in the authentication,
64753a5a1b3Sopenharmony_ci   or with no mechanism for checking it, to more easily skip the
64853a5a1b3Sopenharmony_ci   authentication information.
64953a5a1b3Sopenharmony_ci
65053a5a1b3Sopenharmony_ci   There SHOULD be only one signerInfo and related fields corresponding
65153a5a1b3Sopenharmony_ci   to the originator of the SAP announcement.  The signingTime SHOULD be
65253a5a1b3Sopenharmony_ci   present as a signedAttribute.  However, due to the strict size
65353a5a1b3Sopenharmony_ci   limitations on the size of SAP packets, certificates and CRLs SHOULD
65453a5a1b3Sopenharmony_ci   NOT be included in the signedData structure.  It is expected that
65553a5a1b3Sopenharmony_ci   users of the protocol will have other methods for certificate and CRL
65653a5a1b3Sopenharmony_ci   distribution.
65753a5a1b3Sopenharmony_ci
65853a5a1b3Sopenharmony_ci9  Scalability and caching
65953a5a1b3Sopenharmony_ci
66053a5a1b3Sopenharmony_ci   SAP is intended to announce the existence of long-lived wide-area
66153a5a1b3Sopenharmony_ci   multicast sessions.  It is not an especially timely protocol:
66253a5a1b3Sopenharmony_ci   sessions are announced by periodic multicast with a repeat rate on
66353a5a1b3Sopenharmony_ci   the order of tens of minutes, and no enhanced reliability over UDP.
66453a5a1b3Sopenharmony_ci   This leads to a long startup delay before a complete set of
66553a5a1b3Sopenharmony_ci   announcements is heard by a listener.  This delay is clearly
66653a5a1b3Sopenharmony_ci   undesirable for interactive browsing of announced sessions.
66753a5a1b3Sopenharmony_ci
66853a5a1b3Sopenharmony_ci   In order to reduce the delays inherent in SAP, it is recommended that
66953a5a1b3Sopenharmony_ci   proxy caches are deployed.  A SAP proxy cache is expected to listen
67053a5a1b3Sopenharmony_ci   to all SAP groups in its scope, and to maintain an up-to-date list of
67153a5a1b3Sopenharmony_ci
67253a5a1b3Sopenharmony_ci
67353a5a1b3Sopenharmony_ci
67453a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 12]
67553a5a1b3Sopenharmony_ci
67653a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
67753a5a1b3Sopenharmony_ci
67853a5a1b3Sopenharmony_ci
67953a5a1b3Sopenharmony_ci   all announced sessions along with the time each announcement was last
68053a5a1b3Sopenharmony_ci   received.  When a new SAP listeners starts, it should contact its
68153a5a1b3Sopenharmony_ci   local proxy to download this information, which is then sufficient
68253a5a1b3Sopenharmony_ci   for it to process future announcements directly, as if it has been
68353a5a1b3Sopenharmony_ci   continually listening.
68453a5a1b3Sopenharmony_ci
68553a5a1b3Sopenharmony_ci   The protocol by which a SAP listener contacts its local proxy cache
68653a5a1b3Sopenharmony_ci   is not specified here.
68753a5a1b3Sopenharmony_ci
68853a5a1b3Sopenharmony_ci10 Security Considerations
68953a5a1b3Sopenharmony_ci
69053a5a1b3Sopenharmony_ci   SAP contains mechanisms for ensuring integrity of session
69153a5a1b3Sopenharmony_ci   announcements, for authenticating the origin of an announcement and
69253a5a1b3Sopenharmony_ci   for encrypting such announcements (sections 7 and 8).
69353a5a1b3Sopenharmony_ci
69453a5a1b3Sopenharmony_ci   As stated in section 5, if a session modification announcement is
69553a5a1b3Sopenharmony_ci   received that contains a valid authentication header, but which is
69653a5a1b3Sopenharmony_ci   not signed by the original creator of the session, then the session
69753a5a1b3Sopenharmony_ci   must be treated as a new session in addition to the original session
69853a5a1b3Sopenharmony_ci   with the same SDP origin information unless the originator of one of
69953a5a1b3Sopenharmony_ci   the session descriptions can be authenticated using a certificate
70053a5a1b3Sopenharmony_ci   signed by a trusted third party.  If this were not done, there would
70153a5a1b3Sopenharmony_ci   be a possible denial of service attack whereby a party listens for
70253a5a1b3Sopenharmony_ci   new announcements, strips off the original authentication header,
70353a5a1b3Sopenharmony_ci   modifies the session description, adds a new authentication header
70453a5a1b3Sopenharmony_ci   and re-announces the session.  If a rule was imposed that such spoof
70553a5a1b3Sopenharmony_ci   announcements were ignored, then if packet loss or late starting of a
70653a5a1b3Sopenharmony_ci   session directory instance caused the original announcement to fail
70753a5a1b3Sopenharmony_ci   to arrive at a site, but the spoof announcement did so, this would
70853a5a1b3Sopenharmony_ci   then prevent the original announcement from being accepted at that
70953a5a1b3Sopenharmony_ci   site.
71053a5a1b3Sopenharmony_ci
71153a5a1b3Sopenharmony_ci   A similar denial-of-service attack is possible if a session
71253a5a1b3Sopenharmony_ci   announcement receiver relies completely on the originating source and
71353a5a1b3Sopenharmony_ci   hash fields to indicate change, and fails to parse the remainder of
71453a5a1b3Sopenharmony_ci   announcements for which it has seen the origin/hash combination
71553a5a1b3Sopenharmony_ci   before.
71653a5a1b3Sopenharmony_ci
71753a5a1b3Sopenharmony_ci   A denial of service attack is possible from a malicious site close to
71853a5a1b3Sopenharmony_ci   a legitimate site which is making a session announcement.  This can
71953a5a1b3Sopenharmony_ci   happen if the malicious site floods the legitimate site with huge
72053a5a1b3Sopenharmony_ci   numbers of (illegal) low TTL announcements describing high TTL
72153a5a1b3Sopenharmony_ci   sessions.  This may reduce the session announcement rate of the
72253a5a1b3Sopenharmony_ci   legitimate announcement to below a tenth of the rate expected at
72353a5a1b3Sopenharmony_ci   remote sites and therefore cause the session to time out.  Such an
72453a5a1b3Sopenharmony_ci   attack is likely to be easily detectable, and we do not provide any
72553a5a1b3Sopenharmony_ci   mechanism here to prevent it.
72653a5a1b3Sopenharmony_ci
72753a5a1b3Sopenharmony_ci
72853a5a1b3Sopenharmony_ci
72953a5a1b3Sopenharmony_ci
73053a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 13]
73153a5a1b3Sopenharmony_ci
73253a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
73353a5a1b3Sopenharmony_ci
73453a5a1b3Sopenharmony_ci
73553a5a1b3Sopenharmony_ciA. Summary of differences between SAPv0 and SAPv1
73653a5a1b3Sopenharmony_ci
73753a5a1b3Sopenharmony_ci   For this purpose SAPv0 is defined as the protocol in use by version
73853a5a1b3Sopenharmony_ci   2.2 of the session directory tool, sdr.  SAPv1 is the protocol
73953a5a1b3Sopenharmony_ci   described in the 19 November 1996 version of this memo.  The packet
74053a5a1b3Sopenharmony_ci   headers of SAP messages are the same in V0 and V1 in that a V1 tool
74153a5a1b3Sopenharmony_ci   can parse a V0 announcement header but not vice-versa.  In SAPv0, the
74253a5a1b3Sopenharmony_ci   fields have the following values:
74353a5a1b3Sopenharmony_ci
74453a5a1b3Sopenharmony_ci     o Version Number:  0
74553a5a1b3Sopenharmony_ci
74653a5a1b3Sopenharmony_ci     o Message Type:  0 (Announcement)
74753a5a1b3Sopenharmony_ci
74853a5a1b3Sopenharmony_ci     o Authentication Type:  0 (No Authentication)
74953a5a1b3Sopenharmony_ci
75053a5a1b3Sopenharmony_ci     o Encryption Bit:  0 (No Encryption)
75153a5a1b3Sopenharmony_ci
75253a5a1b3Sopenharmony_ci     o Compression Bit:  0 (No compression)
75353a5a1b3Sopenharmony_ci
75453a5a1b3Sopenharmony_ci     o Message Id Hash:  0 (No Hash Specified)
75553a5a1b3Sopenharmony_ci
75653a5a1b3Sopenharmony_ci     o Originating Source:  0 (No source specified, announcement has
75753a5a1b3Sopenharmony_ci       not been relayed)
75853a5a1b3Sopenharmony_ci
75953a5a1b3Sopenharmony_ciB. Summary of differences between SAPv1 and SAPv2
76053a5a1b3Sopenharmony_ci
76153a5a1b3Sopenharmony_ci   The packet headers of SAP messages are the same in V1 and V2 in that
76253a5a1b3Sopenharmony_ci   a V2 tool can parse a V1 announcement header but not necessarily
76353a5a1b3Sopenharmony_ci   vice-versa.
76453a5a1b3Sopenharmony_ci
76553a5a1b3Sopenharmony_ci    o The A bit has been added to the SAP header, replacing one of the
76653a5a1b3Sopenharmony_ci      bits of the SAPv1 message type field.  If set to zero the
76753a5a1b3Sopenharmony_ci      announcement is of an IPv4 session, and the packet is backwards
76853a5a1b3Sopenharmony_ci      compatible with SAPv1.  If set to one the announcement is of an
76953a5a1b3Sopenharmony_ci      IPv6 session, and SAPv1 listeners (which do not support IPv6) will
77053a5a1b3Sopenharmony_ci      see this as an illegal message type (MT) field.
77153a5a1b3Sopenharmony_ci
77253a5a1b3Sopenharmony_ci    o The second bit of the message type field in SAPv1 has been
77353a5a1b3Sopenharmony_ci      replaced by a reserved, must-be-zero, bit.  This bit was unused in
77453a5a1b3Sopenharmony_ci      SAPv1, so this change just codifies existing usage.
77553a5a1b3Sopenharmony_ci
77653a5a1b3Sopenharmony_ci    o SAPv1 specified encryption of the payload.  SAPv2 includes the E
77753a5a1b3Sopenharmony_ci      bit in the SAP header to indicate that the payload is encrypted,
77853a5a1b3Sopenharmony_ci      but does not specify any details of the encryption.
77953a5a1b3Sopenharmony_ci
78053a5a1b3Sopenharmony_ci    o SAPv1 allowed the message identifier hash and originating source
78153a5a1b3Sopenharmony_ci      fields to be set to zero, for backwards compatibility.  This is no
78253a5a1b3Sopenharmony_ci      longer legal.
78353a5a1b3Sopenharmony_ci
78453a5a1b3Sopenharmony_ci
78553a5a1b3Sopenharmony_ci
78653a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 14]
78753a5a1b3Sopenharmony_ci
78853a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
78953a5a1b3Sopenharmony_ci
79053a5a1b3Sopenharmony_ci
79153a5a1b3Sopenharmony_ci    o SAPv1 specified gzip compression.  SAPv2 uses zlib (the only known
79253a5a1b3Sopenharmony_ci      implementation of SAP compression used zlib, and gzip compression
79353a5a1b3Sopenharmony_ci      was a mistake).
79453a5a1b3Sopenharmony_ci
79553a5a1b3Sopenharmony_ci    o SAPv2 provides a more complete specification for authentication.
79653a5a1b3Sopenharmony_ci
79753a5a1b3Sopenharmony_ci    o SAPv2 allows for non-SDP payloads to be transported.  SAPv1
79853a5a1b3Sopenharmony_ci      required that the payload was SDP.
79953a5a1b3Sopenharmony_ci
80053a5a1b3Sopenharmony_ci    o SAPv1 included a timeout field for encrypted announcement, SAPv2
80153a5a1b3Sopenharmony_ci      does not (and relies of explicit deletion messages or implicit
80253a5a1b3Sopenharmony_ci      timeouts).
80353a5a1b3Sopenharmony_ci
80453a5a1b3Sopenharmony_ciC. Acknowledgements
80553a5a1b3Sopenharmony_ci
80653a5a1b3Sopenharmony_ci   SAP and SDP were originally based on the protocol used by the sd
80753a5a1b3Sopenharmony_ci   session directory from Van Jacobson at LBNL.  Version 1 of SAP was
80853a5a1b3Sopenharmony_ci   designed by Mark Handley as part of the European Commission MICE
80953a5a1b3Sopenharmony_ci   (Esprit 7602) and MERCI (Telematics 1007) projects.  Version 2
81053a5a1b3Sopenharmony_ci   includes authentication features developed by Edmund Whelan, Goli
81153a5a1b3Sopenharmony_ci   Montasser-Kohsari and Peter Kirstein as part of the European
81253a5a1b3Sopenharmony_ci   Commission ICE-TEL project (Telematics 1005), and support for IPv6
81353a5a1b3Sopenharmony_ci   developed by Maryann P. Maher and Colin Perkins.
81453a5a1b3Sopenharmony_ci
81553a5a1b3Sopenharmony_ci
81653a5a1b3Sopenharmony_ci
81753a5a1b3Sopenharmony_ci
81853a5a1b3Sopenharmony_ci
81953a5a1b3Sopenharmony_ci
82053a5a1b3Sopenharmony_ci
82153a5a1b3Sopenharmony_ci
82253a5a1b3Sopenharmony_ci
82353a5a1b3Sopenharmony_ci
82453a5a1b3Sopenharmony_ci
82553a5a1b3Sopenharmony_ci
82653a5a1b3Sopenharmony_ci
82753a5a1b3Sopenharmony_ci
82853a5a1b3Sopenharmony_ci
82953a5a1b3Sopenharmony_ci
83053a5a1b3Sopenharmony_ci
83153a5a1b3Sopenharmony_ci
83253a5a1b3Sopenharmony_ci
83353a5a1b3Sopenharmony_ci
83453a5a1b3Sopenharmony_ci
83553a5a1b3Sopenharmony_ci
83653a5a1b3Sopenharmony_ci
83753a5a1b3Sopenharmony_ci
83853a5a1b3Sopenharmony_ci
83953a5a1b3Sopenharmony_ci
84053a5a1b3Sopenharmony_ci
84153a5a1b3Sopenharmony_ci
84253a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 15]
84353a5a1b3Sopenharmony_ci
84453a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
84553a5a1b3Sopenharmony_ci
84653a5a1b3Sopenharmony_ci
84753a5a1b3Sopenharmony_ciD. Authors' Addresses
84853a5a1b3Sopenharmony_ci
84953a5a1b3Sopenharmony_ci   Mark Handley
85053a5a1b3Sopenharmony_ci   AT&T Center for Internet Research at ICSI,
85153a5a1b3Sopenharmony_ci   International Computer Science Institute,
85253a5a1b3Sopenharmony_ci   1947 Center Street, Suite 600,
85353a5a1b3Sopenharmony_ci   Berkeley, CA 94704, USA
85453a5a1b3Sopenharmony_ci
85553a5a1b3Sopenharmony_ci   EMail: mjh@aciri.org
85653a5a1b3Sopenharmony_ci
85753a5a1b3Sopenharmony_ci
85853a5a1b3Sopenharmony_ci   Colin Perkins
85953a5a1b3Sopenharmony_ci   USC Information Sciences Institute
86053a5a1b3Sopenharmony_ci   4350 N. Fairfax Drive, Suite 620
86153a5a1b3Sopenharmony_ci   Arlington, VA 22203, USA
86253a5a1b3Sopenharmony_ci
86353a5a1b3Sopenharmony_ci   EMail: csp@isi.edu
86453a5a1b3Sopenharmony_ci
86553a5a1b3Sopenharmony_ci
86653a5a1b3Sopenharmony_ci   Edmund Whelan
86753a5a1b3Sopenharmony_ci   Department of Computer Science,
86853a5a1b3Sopenharmony_ci   University College London,
86953a5a1b3Sopenharmony_ci   Gower Street,
87053a5a1b3Sopenharmony_ci   London, WC1E 6BT, UK
87153a5a1b3Sopenharmony_ci
87253a5a1b3Sopenharmony_ci   EMail: e.whelan@cs.ucl.ac.uk
87353a5a1b3Sopenharmony_ci
87453a5a1b3Sopenharmony_ci
87553a5a1b3Sopenharmony_ci
87653a5a1b3Sopenharmony_ci
87753a5a1b3Sopenharmony_ci
87853a5a1b3Sopenharmony_ci
87953a5a1b3Sopenharmony_ci
88053a5a1b3Sopenharmony_ci
88153a5a1b3Sopenharmony_ci
88253a5a1b3Sopenharmony_ci
88353a5a1b3Sopenharmony_ci
88453a5a1b3Sopenharmony_ci
88553a5a1b3Sopenharmony_ci
88653a5a1b3Sopenharmony_ci
88753a5a1b3Sopenharmony_ci
88853a5a1b3Sopenharmony_ci
88953a5a1b3Sopenharmony_ci
89053a5a1b3Sopenharmony_ci
89153a5a1b3Sopenharmony_ci
89253a5a1b3Sopenharmony_ci
89353a5a1b3Sopenharmony_ci
89453a5a1b3Sopenharmony_ci
89553a5a1b3Sopenharmony_ci
89653a5a1b3Sopenharmony_ci
89753a5a1b3Sopenharmony_ci
89853a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 16]
89953a5a1b3Sopenharmony_ci
90053a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
90153a5a1b3Sopenharmony_ci
90253a5a1b3Sopenharmony_ci
90353a5a1b3Sopenharmony_ciReferences
90453a5a1b3Sopenharmony_ci
90553a5a1b3Sopenharmony_ci   [1] Bradner, S., "Key words for use in RFCs to indicate requirement
90653a5a1b3Sopenharmony_ci       levels", BCP 14, RFC 2119, March 1997.
90753a5a1b3Sopenharmony_ci
90853a5a1b3Sopenharmony_ci   [2] Callas, J., Donnerhacke, L., Finney, H. and R. Thayer. "OpenPGP
90953a5a1b3Sopenharmony_ci       message format", RFC 2440, November 1998.
91053a5a1b3Sopenharmony_ci
91153a5a1b3Sopenharmony_ci   [3] Deutsch, P. and J.-L. Gailly, "Zlib compressed data format
91253a5a1b3Sopenharmony_ci       specification version 3.3", RFC 1950, May 1996.
91353a5a1b3Sopenharmony_ci
91453a5a1b3Sopenharmony_ci   [4] Handley, M. and V. Jacobson, "SDP: Session Description Protocol",
91553a5a1b3Sopenharmony_ci       RFC 2327, April 1998.
91653a5a1b3Sopenharmony_ci
91753a5a1b3Sopenharmony_ci   [5] Handley, M., Thaler, D. and R. Kermode, "Multicast-scope zone
91853a5a1b3Sopenharmony_ci       announcement protocol (MZAP)", RFC 2776, February 2000.
91953a5a1b3Sopenharmony_ci
92053a5a1b3Sopenharmony_ci   [6] Housley, R., "Cryptographic message syntax", RFC 2630, June 1999.
92153a5a1b3Sopenharmony_ci
92253a5a1b3Sopenharmony_ci   [7] Mayer, D., "Administratively scoped IP multicast", RFC 2365, July
92353a5a1b3Sopenharmony_ci       1998.
92453a5a1b3Sopenharmony_ci
92553a5a1b3Sopenharmony_ci
92653a5a1b3Sopenharmony_ci
92753a5a1b3Sopenharmony_ci
92853a5a1b3Sopenharmony_ci
92953a5a1b3Sopenharmony_ci
93053a5a1b3Sopenharmony_ci
93153a5a1b3Sopenharmony_ci
93253a5a1b3Sopenharmony_ci
93353a5a1b3Sopenharmony_ci
93453a5a1b3Sopenharmony_ci
93553a5a1b3Sopenharmony_ci
93653a5a1b3Sopenharmony_ci
93753a5a1b3Sopenharmony_ci
93853a5a1b3Sopenharmony_ci
93953a5a1b3Sopenharmony_ci
94053a5a1b3Sopenharmony_ci
94153a5a1b3Sopenharmony_ci
94253a5a1b3Sopenharmony_ci
94353a5a1b3Sopenharmony_ci
94453a5a1b3Sopenharmony_ci
94553a5a1b3Sopenharmony_ci
94653a5a1b3Sopenharmony_ci
94753a5a1b3Sopenharmony_ci
94853a5a1b3Sopenharmony_ci
94953a5a1b3Sopenharmony_ci
95053a5a1b3Sopenharmony_ci
95153a5a1b3Sopenharmony_ci
95253a5a1b3Sopenharmony_ci
95353a5a1b3Sopenharmony_ci
95453a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 17]
95553a5a1b3Sopenharmony_ci
95653a5a1b3Sopenharmony_ciRFC 2974             Session Announcement Protocol          October 2000
95753a5a1b3Sopenharmony_ci
95853a5a1b3Sopenharmony_ci
95953a5a1b3Sopenharmony_ciFull Copyright Statement
96053a5a1b3Sopenharmony_ci
96153a5a1b3Sopenharmony_ci   Copyright (C) The Internet Society (2000).  All Rights Reserved.
96253a5a1b3Sopenharmony_ci
96353a5a1b3Sopenharmony_ci   This document and translations of it may be copied and furnished to
96453a5a1b3Sopenharmony_ci   others, and derivative works that comment on or otherwise explain it
96553a5a1b3Sopenharmony_ci   or assist in its implementation may be prepared, copied, published
96653a5a1b3Sopenharmony_ci   and distributed, in whole or in part, without restriction of any
96753a5a1b3Sopenharmony_ci   kind, provided that the above copyright notice and this paragraph are
96853a5a1b3Sopenharmony_ci   included on all such copies and derivative works.  However, this
96953a5a1b3Sopenharmony_ci   document itself may not be modified in any way, such as by removing
97053a5a1b3Sopenharmony_ci   the copyright notice or references to the Internet Society or other
97153a5a1b3Sopenharmony_ci   Internet organizations, except as needed for the purpose of
97253a5a1b3Sopenharmony_ci   developing Internet standards in which case the procedures for
97353a5a1b3Sopenharmony_ci   copyrights defined in the Internet Standards process must be
97453a5a1b3Sopenharmony_ci   followed, or as required to translate it into languages other than
97553a5a1b3Sopenharmony_ci   English.
97653a5a1b3Sopenharmony_ci
97753a5a1b3Sopenharmony_ci   The limited permissions granted above are perpetual and will not be
97853a5a1b3Sopenharmony_ci   revoked by the Internet Society or its successors or assigns.
97953a5a1b3Sopenharmony_ci
98053a5a1b3Sopenharmony_ci   This document and the information contained herein is provided on an
98153a5a1b3Sopenharmony_ci   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
98253a5a1b3Sopenharmony_ci   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
98353a5a1b3Sopenharmony_ci   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
98453a5a1b3Sopenharmony_ci   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
98553a5a1b3Sopenharmony_ci   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
98653a5a1b3Sopenharmony_ci
98753a5a1b3Sopenharmony_ciAcknowledgement
98853a5a1b3Sopenharmony_ci
98953a5a1b3Sopenharmony_ci   Funding for the RFC Editor function is currently provided by the
99053a5a1b3Sopenharmony_ci   Internet Society.
99153a5a1b3Sopenharmony_ci
99253a5a1b3Sopenharmony_ci
99353a5a1b3Sopenharmony_ci
99453a5a1b3Sopenharmony_ci
99553a5a1b3Sopenharmony_ci
99653a5a1b3Sopenharmony_ci
99753a5a1b3Sopenharmony_ci
99853a5a1b3Sopenharmony_ci
99953a5a1b3Sopenharmony_ci
100053a5a1b3Sopenharmony_ci
100153a5a1b3Sopenharmony_ci
100253a5a1b3Sopenharmony_ci
100353a5a1b3Sopenharmony_ci
100453a5a1b3Sopenharmony_ci
100553a5a1b3Sopenharmony_ci
100653a5a1b3Sopenharmony_ci
100753a5a1b3Sopenharmony_ci
100853a5a1b3Sopenharmony_ci
100953a5a1b3Sopenharmony_ci
101053a5a1b3Sopenharmony_ciHandley, et al.               Experimental                     [Page 18]
101153a5a1b3Sopenharmony_ci
1012