什么叫释怀| 轻度异常脑电图是什么意思| 条件致病菌是什么意思| 磕碜是什么意思| 长方脸适合什么样的发型| 梦见别人杀人是什么预兆| 小众是什么意思| 琥珀五行属什么| 内火旺是什么原因| 讽刺是什么意思| 桑蚕丝被有什么好处| 不老莓是什么| 怀孕前三个月需要注意什么| 复山是什么意思| 磬是什么乐器| 什么品牌的冰箱好| 吃什么减肥效果最快| 地震为什么会发生| 私募是什么| 中暑吃什么水果好| 天蝎座属于什么象星座| 结石不能吃什么| 天宫是什么意思| 局级是什么级别| 雾是什么| 喉咙痰多是什么原因造成的| 盎司是什么意思| 青云志3什么时候上映| 4.28是什么星座| 毅五行属什么| 紫癜有什么危害| 千年杀是什么| 桃花指什么生肖| 肺癌积水意味什么结果| 牡丹花什么时候开| 甲功三项能查出什么病| 觉是什么结构| mL代表什么| 宫寒是什么原因引起的| 七叶子是什么意思| 5月24号是什么日子| 长期喝豆浆有什么好处和坏处| 女上位什么意思| 婴儿什么时候会说话| 65年属什么生肖| 辟加木念什么| 鼻子两侧挤出来的白色东西是什么| 月经不调吃什么药好| 盆底肌高张是什么意思| 516是什么意思| 爱思是什么| 出栏是什么意思| 本是同根生相煎何太急是什么意思| trp是什么氨基酸| 晚上梦见蛇是什么预兆| 天运子什么修为| 嗓子痒干咳吃什么药| 荷花象征着什么| 眼干眼涩眼疲劳用什么眼药水| 菊花配枸杞什么功效| 一直吐是什么原因| 尿路感染看什么科室| 雄鱼是什么鱼| 什么食物对心脏有好处| 刚柔并济是什么意思| 乳腺癌吃什么水果好| 肥皂水是什么| 力不从心的意思是什么| 维生素b族为什么不能晚上吃| 拔罐挂什么科| 地球是什么| 骨赘是什么意思| 4月12号是什么星座| 子宫瘢痕是什么意思| 喉咙疼吃什么| 尿葡萄糖阴性什么意思| 谷氨酰转移酶高是什么原因| 一什么不什么| 鱼泡是鱼的什么器官| 什么时候闰十月| 右脚浮肿预示着什么| 身体上有小红点是什么病| cdf1是什么意思| 什么少年| ad是什么意思| 天方夜谭是什么意思| 电轴右偏是什么意思| 鸟死在家里是什么征兆| b超是检查什么的| 油面筋是什么做的| 高血压能吃什么| 做t是什么意思| 安徽什么阳| 腺体肠化是什么意思| 把碗打碎了有什么征兆| 防晒衣什么颜色最好| 合胞病毒是什么| 什么东西越洗越脏答案| 淘宝和天猫有什么区别| 甲状腺结节是什么意思| 不近女色是什么意思| 女生为什么会流白带| 总胆红素偏高什么意思| 今年是什么| 心肌炎用什么药治疗最好| 什么动物有四个胃| 牡蛎是什么东西| 米西米西什么意思| 苹果跟什么榨汁好喝| 冒昧是什么意思| 五塔标行军散有什么功效| 头发沙发是什么意思| cin是什么意思| 梦见摘黄瓜是什么意思| 绛紫色是什么颜色| 1981年是什么命| 牛的三合和六个合生肖是什么| 父亲是o型血孩子是什么血型| 翻白眼是什么意思| 耳石症是什么原因| 太平猴魁属于什么茶| 肺活量5000什么水平| 彩泥可以做什么| 猫发出咕噜咕噜的声音是什么意思| 农历十月是什么月| 没有鱼鳞的鱼是什么鱼| 2月30日是什么星座| 三伏天什么时候开始| 尿酸高的人吃什么食物好| 免疫力低挂什么科| 喝什么补血| 夏天喝绿茶有什么好处| 童子是什么意思| 什么的色彩| 虾不能和什么一起吃| 三唑酮主治什么病害| 头孢克肟和头孢拉定有什么区别| 3885是什么罩杯| 泌尿外科主要检查什么| 身上长红色的痣是什么原因| 44岁属什么| 四联用药是些什么药| 高山仰止是什么意思| 高血压吃什么降的快| 法国鳄鱼属于什么档次| 善对什么| 上环后需要注意什么| 口腔白斑是什么病| 脾的作用是什么| 蜈蚣吃什么| 6月6号是什么日子| 聪明是什么意思| 胆囊结石是什么症状| 丁克是什么| 火高念什么| nsfw什么意思| 老年人吃什么营养品好| pa是什么| 眼角痒用什么眼药水| 乳酸菌素片什么时候吃| 德高望重是什么生肖| 什么是胰腺癌| 万字第二笔是什么| 柏拉图爱情是什么意思| 7月13日什么星座| 补办港澳通行证需要什么材料| hr是什么意思| 君王是什么生肖| 眼睛痛是什么原因| 吃什么能补钙| 乡镇派出所所长是什么级别| 艾滋病阳性是什么意思| s标志的运动鞋是什么牌子| 什么是空腹血糖| 子五行属什么| 什么治疗咽炎效果好| 牛油果有什么营养| 梦见蘑菇是什么预兆| 县委办公室主任是什么级别| 什么皮球| 梅菜是什么菜晒干的| 平均血小板体积低是什么原因| 三尖瓣少量反流是什么意思| 经常腿麻是什么原因| 胃烧心是怎么回事吃什么药| 吃什么容易长高| 晨尿有泡沫是什么原因| 幼儿腹泻吃什么食物| 热鸡蛋滚脸有什么作用| 白头发吃什么药| 检查肺部最好做什么检查最准确| 转氨酶高是什么引起的| bb粥指的是什么意思| 绝望是什么意思| 室间隔增厚是什么意思| 低压高吃什么药好| 一月7日是什么星座| 什么水果贵| 顺风顺水什么意思| 胃胆汁反流是什么原因引起的| 上唇肿胀是什么原因| 得了幽门螺杆菌是什么症状| 正方形纸能折什么| spyder是什么品牌| 夏枯草是什么样子| 做腹腔镜手术后需要注意什么| 到付是什么意思| 疱疹挂号挂什么科室| 湿气重吃什么调理| 低血压食补吃什么最快| 失眠去药店买什么药| 做梦梦到男朋友出轨了是什么意思| 孕妇耻骨疼是什么原因| 血虚风燥是什么意思| 折煞是什么意思| 人工受孕和试管婴儿有什么区别| 大方得体是什么意思| 头皮长疙瘩是什么原因| 翌日是什么意思| 五月二十五是什么星座| 奇异是什么意思| 血小板为什么会减少| 感冒发烧吃什么药| 腿肿脚肿是什么原因引起的| 藏蓝色是什么颜色| 多囊卵巢综合征是什么意思| diy什么意思| 虾吃什么食物| 腰突然疼是什么原因| 骶髂关节炎吃什么药| 狗狗蛋蛋红肿是什么原因| 女性尿频繁是什么原因| 路冲是什么意思| 微量元素六项是什么检查| 骨质增生吃什么药最好| 口腔溃疡什么药最管用| 小壁虎的尾巴有什么作用| 河南有什么市| 什么时候浇花最好| 2013年是什么年| 肾功能三项检查什么| 肾功能不全是指什么| 身上长黑痣是什么原因| 29度穿什么衣服合适| 钾低是什么原因造成的| 护理员是干什么的| 孕妇做唐筛是检查什么| 宝宝不吃奶是什么原因| 天蝎女和什么星座最配| 左手有痣代表什么| 什么啤酒劲最大| 十月份生日是什么星座| 为什么做春梦| 1月28日什么星座| 生化妊娠后需要注意什么| 人大常委会副主任是什么级别| 高祖父的爸爸叫什么| 爆菊花是什么意思| 王昆念什么| 做梦梦见火是什么意思| 什么时候吃饺子| aj是什么鞋子| 巴氏杀菌是什么意思| 一什么故事| 百度

Network Working Group                                         M. Handley
Request for Comments: 2974                                         ACIRI
Category: Experimental                                        C. Perkins
                                                                 USC/ISI
                                                               E. Whelan
                                                                     UCL
                                                            October 2000


                     Session Announcement Protocol

Status of this Memo

   This memo defines an Experimental Protocol for the Internet
   community.  It does not specify an Internet standard of any kind.
   Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

Copyright Notice

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

Abstract

   This document describes version 2 of the multicast session directory
   announcement protocol, Session Announcement Protocol (SAP), and the
   related issues affecting security and scalability that should be
   taken into account by implementors.

1  Introduction

   In order to assist the advertisement of multicast multimedia
   conferences and other multicast sessions, and to communicate the
   relevant session setup information to prospective participants, a
   distributed session directory may be used.  An instance of such a
   session directory periodically multicasts packets containing a
   description of the session, and these advertisements are received by
   other session directories such that potential remote participants can
   use the session description to start the tools required to
   participate in the session.

   This memo describes the issues involved in the multicast announcement
   of session description information and defines an announcement
   protocol to be used.  Sessions are described using the session
   description protocol which is described in a companion memo [4].






Handley, et al.               Experimental                      [Page 1]


RFC 2974             Session Announcement Protocol          October 2000


2  Terminology

   A SAP announcer periodically multicasts an announcement packet to a
   well known multicast address and port.  The announcement is multicast
   with the same scope as the session it is announcing, ensuring that
   the recipients of the announcement are within the scope of the
   session the announcement describes (bandwidth and other such
   constraints permitting).  This is also important for the scalability
   of the protocol, as it keeps local session announcements local.

   A SAP listener learns of the multicast scopes it is within (for
   example, using the Multicast-Scope Zone Announcement Protocol [5])
   and listens on the well known SAP address and port for those scopes.
   In this manner, it will eventually learn of all the sessions being
   announced, allowing those sessions to be joined.

   The key words `MUST', `MUST NOT', `REQUIRED', `SHALL', `SHALL NOT',
   `SHOULD', `SHOULD NOT', `RECOMMENDED', `MAY', and `OPTIONAL' in this
   document are to be interpreted as described in [1].

3  Session Announcement

   As noted previously, a SAP announcer periodically sends an
   announcement packet to a well known multicast address and port.
   There is no rendezvous mechanism - the SAP announcer is not aware of
   the presence or absence of any SAP listeners - and no additional
   reliability is provided over the standard best-effort UDP/IP
   semantics.

   That announcement contains a session description and SHOULD contain
   an authentication header.  The session description MAY be encrypted
   although this is NOT RECOMMENDED (see section 7).

   A SAP announcement is multicast with the same scope as the session it
   is announcing, ensuring that the recipients of the announcement are
   within the scope of the session the announcement describes. There are
   a number of possibilities:

   IPv4 global scope sessions use multicast addresses in the range
      224.2.128.0 - 224.2.255.255 with SAP announcements being sent to
      224.2.127.254 (note that 224.2.127.255 is used by the obsolete
      SAPv0 and MUST NOT be used).









Handley, et al.               Experimental                      [Page 2]


RFC 2974             Session Announcement Protocol          October 2000


   IPv4 administrative scope sessions using administratively scoped IP
      multicast as defined in [7].  The multicast address to be used for
      announcements is the highest multicast address in the relevant
      administrative scope zone.  For example, if the scope range is
      239.16.32.0 - 239.16.33.255, then 239.16.33.255 is used for SAP
      announcements.

   IPv6 sessions are announced on the address FF0X:0:0:0:0:0:2:7FFE
      where X is the 4-bit scope value.  For example, an announcement
      for a link-local session assigned the address
      FF02:0:0:0:0:0:1234:5678, should be advertised on SAP address
      FF02:0:0:0:0:0:2:7FFE.

   Ensuring that a description is not used by a potential participant
   outside the session scope is not addressed in this memo.

   SAP announcements MUST be sent on port 9875 and SHOULD be sent with
   an IP time-to-live of 255 (the use of TTL scoping for multicast is
   discouraged [7]).

   If a session uses addresses in multiple administrative scope ranges,
   it is necessary for the announcer to send identical copies of the
   announcement to each administrative scope range.  It is up to the
   listeners to parse such multiple announcements as the same session
   (as identified by the SDP origin field, for example).  The
   announcement rate for each administrative scope range MUST be
   calculated separately, as if the multiple announcements were
   separate.

   Multiple announcers may announce a single session, as an aid to
   robustness in the face of packet loss and failure of one or more
   announcers.  The rate at which each announcer repeats its
   announcement MUST be scaled back such that the total announcement
   rate is equal to that which a single server would choose.
   Announcements made in this manner MUST be identical.

   If multiple announcements are being made for a session, then each
   announcement MUST carry an authentication header signed by the same
   key, or be treated as a completely separate announcement by
   listeners.

   An IPv4 SAP listener SHOULD listen on the IPv4 global scope SAP
   address and on the SAP addresses for each IPv4 administrative scope
   zone it is within.  The discovery of administrative scope zones is
   outside the scope of this memo, but it is assumed that each SAP
   listener within a particular scope zone is aware of that scope zone.
   A SAP listener which supports IPv6 SHOULD also listen to the IPv6 SAP
   addresses.



Handley, et al.               Experimental                      [Page 3]


RFC 2974             Session Announcement Protocol          October 2000


3.1 Announcement Interval

   The time period between repetitions of an announcement is chosen such
   that the total bandwidth used by all announcements on a single SAP
   group remains below a preconfigured limit.  If not otherwise
   specified, the bandwidth limit SHOULD be assumed to be 4000 bits per
   second.

   Each announcer is expected to listen to other announcements in order
   to determine the total number of sessions being announced on a
   particular group.  Sessions are uniquely identified by the
   combination of the message identifier hash and originating source
   fields of the SAP header (note that SAP v0 announcers always set the
   message identifier hash to zero, and if such an announcement is
   received the entire message MUST be compared to determine
   uniqueness).

   Announcements are made by periodic multicast to the group.  The base
   interval between announcements is derived from the number of
   announcements being made in that group, the size of the announcement
   and the configured bandwidth limit.  The actual transmission time is
   derived from this base interval as follows:

      1. The announcer initializes the variable tp to be the last time a
         particular announcement was transmitted (or the current time if
         this is the first time this announcement is to be made).

      2. Given a configured bandwidth limit in bits/second and an
         announcement of ad_size bytes, the base announcement interval
         in seconds is

                interval =max(300; (8*no_of_ads*ad_size)/limit)

      3. An offset is calculated based on the base announcement interval

                offset= rand(interval* 2/3)-(interval/3)

      4. The next transmission time for an announcement derived as

                tn =tp+ interval+ offset

   The announcer then sets a timer to expire at tn and waits.  At time
   tn the announcer SHOULD recalculate the next transmission time.  If
   the new value of tn is before the current time, the announcement is
   sent immediately.  Otherwise the transmission is rescheduled for the
   new tn.  This reconsideration prevents transient packet bursts on
   startup and when a network partition heals.




Handley, et al.               Experimental                      [Page 4]


RFC 2974             Session Announcement Protocol          October 2000


4  Session Deletion

   Sessions may be deleted in one of several ways:

   Explicit Timeout The session description payload may contain
      timestamp information specifying the start- and end-times of the
      session.  If the current time is later than the end-time of the
      session, then the session SHOULD be deleted from the receiver's
      session cache.

   Implicit Timeout A session announcement message should be received
      periodically for each session description in a receiver's session
      cache.  The announcement period can be predicted by the receiver
      from the set of sessions currently being announced.  If a session
      announcement message has not been received for ten times the
      announcement period, or one hour, whichever is the greater, then
      the session is deleted from the receiver's session cache.  The one
      hour minimum is to allow for transient network partitionings.

   Explicit Deletion A session deletion packet is received specifying
      the session to be deleted.  Session deletion packets SHOULD have a
      valid authentication header, matching that used to authenticate
      previous announcement packets.  If this authentication is missing,
      the deletion message SHOULD be ignored.

5  Session Modification

   A pre-announced session can be modified by simply announcing the
   modified session description.  In this case, the version hash in the
   SAP header MUST be changed to indicate to receivers that the packet
   contents should be parsed (or decrypted and parsed if it is
   encrypted).  The session itself, as distinct from the session
   announcement, is uniquely identified by the payload and not by the
   message identifier hash in the header.

   The same rules apply for session modification as for session
   deletion:

    o Either the modified announcement must contain an authentication
      header signed by the same key as the cached session announcement
      it is modifying, or:

    o The cached session announcement must not contain an authentication
      header, and the session modification announcement must originate
      from the same host as the session it is modifying.






Handley, et al.               Experimental                      [Page 5]


RFC 2974             Session Announcement Protocol          October 2000


   If an announcement is received containing an authentication header
   and the cached announcement did not contain an authentication header,
   or it contained a different authentication header, then the modified
   announcement MUST be treated as a new and different announcement, and
   displayed in addition to the un-authenticated announcement.  The same
   should happen if a modified packet without an authentication header
   is received from a different source than the original announcement.

   These rules prevent an announcement having an authentication header
   added by a malicious user and then being deleted using that header,
   and it also prevents a denial-of-service attack by someone putting
   out a spoof announcement which, due to packet loss, reaches some
   participants before the original announcement.  Note that under such
   circumstances, being able to authenticate the message originator is
   the only way to discover which session is the correct session.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | V=1 |A|R|T|E|C|   auth len    |         msg id hash           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                originating source (32 or 128 bits)            :
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    optional authentication data               |
   :                              ....                             :
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
   |                      optional payload type                    |
   +                                         +-+- - - - - - - - - -+
   |                                         |0|                   |
   + - - - - - - - - - - - - - - - - - - - - +-+                   |
   |                                                               |
   :                            payload                            :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 1: Packet format

6  Packet Format

   SAP data packets have the format described in figure 1.

   V: Version Number. The version number field MUST be set to 1 (SAPv2
      announcements which use only SAPv1 features are backwards
      compatible, those which use new features can be detected by other
      means, so the SAP version number doesn't need to change).




Handley, et al.               Experimental                      [Page 6]


RFC 2974             Session Announcement Protocol          October 2000


   A: Address type. If the A bit is 0, the originating source field
      contains a 32-bit IPv4 address.  If the A bit is 1, the
      originating source contains a 128-bit IPv6 address.

   R: Reserved. SAP announcers MUST set this to 0, SAP listeners MUST
      ignore the contents of this field.

   T: Message Type. If the T field is set to 0 this is a session
      announcement packet, if 1 this is a session deletion packet.

   E: Encryption Bit. If the encryption bit is set to 1, the payload of
      the SAP packet is encrypted.  If this bit is 0 the packet is not
      encrypted.  See section 7 for details of the encryption process.

   C: Compressed bit. If the compressed bit is set to 1, the payload is
      compressed using the zlib compression algorithm [3].  If the
      payload is to be compressed and encrypted, the compression MUST be
      performed first.

   Authentication Length. An 8 bit unsigned quantity giving the number
      of 32 bit words following the main SAP header that contain
      authentication data.  If it is zero, no authentication header is
      present.

   Authentication data containing a digital signature of the packet,
      with length as specified by the authentication length header
      field.  See section 8 for details of the authentication process.

   Message Identifier Hash. A 16 bit quantity that, used in combination
      with the originating source, provides a globally unique identifier
      indicating the precise version of this announcement.  The choice
      of value for this field is not specified here, except that it MUST
      be unique for each session announced by a particular SAP announcer
      and it MUST be changed if the session description is modified (and
      a session deletion message SHOULD be sent for the old version of
      the session).

      Earlier versions of SAP used a value of zero to mean that the hash
      should be ignored and the payload should always be parsed.  This
      had the unfortunate side-effect that SAP announcers had to study
      the payload data to determine how many unique sessions were being
      advertised, making the calculation of the announcement interval
      more complex that necessary.  In order to decouple the session
      announcement process from the contents of those announcements, SAP
      announcers SHOULD NOT set the message identifier hash to zero.

      SAP listeners MAY silently discard messages if the message
      identifier hash is set to zero.



Handley, et al.               Experimental                      [Page 7]


RFC 2974             Session Announcement Protocol          October 2000


   Originating Source. This gives the IP address of the original source
      of the message.  This is an IPv4 address if the A field is set to
      zero, else it is an IPv6 address.  The address is stored in
      network byte order.

      SAPv0 permitted the originating source to be zero if the message
      identifier hash was also zero.  This practise is no longer legal,
      and SAP announcers SHOULD NOT set the originating source to zero.
      SAP listeners MAY silently discard packets with the originating
      source set to zero.

   The header is followed by an optional payload type field and the
   payload data itself.  If the E or C bits are set in the header both
   the payload type and payload are encrypted and/or compressed.

   The payload type field is a MIME content type specifier, describing
   the format of the payload.  This is a variable length ASCII text
   string, followed by a single zero byte (ASCII NUL).  The payload type
   SHOULD be included in all packets.  If the payload type is
   `application/sdp' both the payload type and its terminating zero byte
   MAY be omitted, although this is intended for backwards compatibility
   with SAP v1 listeners only.

   The absence of a payload type field may be noted since the payload
   section of such a packet will start with an SDP `v=0' field, which is
   not a legal MIME content type specifier.

   All implementations MUST support payloads of type `application/sdp'
   [4].  Other formats MAY be supported although since there is no
   negotiation in SAP an announcer which chooses to use a session
   description format other than SDP cannot know that the listeners are
   able to understand the announcement.  A proliferation of payload
   types in announcements has the potential to lead to severe
   interoperability problems, and for this reason, the use of non-SDP
   payloads is NOT RECOMMENDED.

   If the packet is an announcement packet, the payload contains a
   session description.

   If the packet is a session deletion packet, the payload contains a
   session deletion message.  If the payload format is `application/sdp'
   the deletion message is a single SDP line consisting of the origin
   field of the announcement to be deleted.

   It is desirable for the payload to be sufficiently small that SAP
   packets do not get fragmented by the underlying network.
   Fragmentation has a loss multiplier effect, which is known to
   significantly affect the reliability of announcements.  It is



Handley, et al.               Experimental                      [Page 8]


RFC 2974             Session Announcement Protocol          October 2000


   RECOMMENDED that SAP packets are smaller than 1kByte in length,
   although if it is known that announcements will use a network with a
   smaller MTU than this, then that SHOULD be used as the maximum
   recommended packet size.

7  Encrypted Announcements

   An announcement is received by all listeners in the scope to which it
   is sent.  If an announcement is encrypted, and many of the receivers
   do not have the encryption key, there is a considerable waste of
   bandwidth since those receivers cannot use the announcement they have
   received.  For this reason, the use of encrypted SAP announcements is
   NOT RECOMMENDED on the global scope SAP group or on administrative
   scope groups which may have many receivers which cannot decrypt those
   announcements.

   The opinion of the authors is that encrypted SAP is useful in special
   cases only, and that the vast majority of scenarios where encrypted
   SAP has been proposed may be better served by distributing session
   details using another mechanism.  There are, however, certain
   scenarios where encrypted announcements may be useful.  For this
   reason, the encryption bit is included in the SAP header to allow
   experimentation with encrypted announcements.

   This memo does not specify details of the encryption algorithm to be
   used or the means by which keys are generated and distributed.  An
   additional specification should define these, if it is desired to use
   encrypted SAP.

   Note that if an encrypted announcement is being announced via a
   proxy, then there may be no way for the proxy to discover that the
   announcement has been superseded, and so it may continue to relay the
   old announcement in addition to the new announcement.  SAP provides
   no mechanism to chain modified encrypted announcements, so it is
   advisable to announce the unmodified session as deleted for a short
   time after the modification has occurred.  This does not guarantee
   that all proxies have deleted the session, and so receivers of
   encrypted sessions should be prepared to discard old versions of
   session announcements that they may receive.  In most cases however,
   the only stateful proxy will be local to (and known to) the sender,
   and an additional (local-area) protocol involving a handshake for
   such session modifications can be used to avoid this problem.

   Session announcements that are encrypted with a symmetric algorithm
   may allow a degree of privacy in the announcement of a session, but
   it should be recognized that a user in possession of such a key can
   pass it on to other users who should not be in possession of such a
   key.  Thus announcements to such a group of key holders cannot be



Handley, et al.               Experimental                      [Page 9]


RFC 2974             Session Announcement Protocol          October 2000


   assumed to have come from an authorized key holder unless there is an
   appropriate authentication header signed by an authorized key holder.
   In addition the recipients of such encrypted announcements cannot be
   assumed to only be authorized key holders.  Such encrypted
   announcements do not provide any real security unless all of the
   authorized key holders are trusted to maintain security of such
   session directory keys.  This property is shared by the multicast
   session tools themselves, where it is possible for an un-trustworthy
   member of the session to pass on encryption keys to un-authorized
   users.  However it is likely that keys used for the session tools
   will be more short lived than those used for session directories.

   Similar considerations should apply when session announcements are
   encrypted with an asymmetric algorithm, but then it is possible to
   restrict the possessor(s) of the private key, so that announcements
   to a key-holder group can not be made, even if one of the untrusted
   members of the group proves to be un-trustworthy.

                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | V=1 |P| Auth  |                                               |
   +-+-+-+-+-+-+-+-+                                               |
   |              Format  specific authentication subheader        |
   :                        ..................                     :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Figure 2:  Format of the authentication data in the SAP header

8  Authenticated Announcements

   The authentication header can be used for two purposes:

    o Verification that changes to a session description or deletion of
      a session are permitted.

    o Authentication of the identity of the session creator.

   In some circumstances only verification is possible because a
   certificate signed by a mutually trusted person or authority is not
   available.  However, under such circumstances, the session originator
   may still be authenticated to be the same as the session originator
   of previous sessions claiming to be from the same person.  This may
   or may not be sufficient depending on the purpose of the session and
   the people involved.






Handley, et al.               Experimental                     [Page 10]


RFC 2974             Session Announcement Protocol          October 2000


   Clearly the key used for the authentication should not be trusted to
   belong to the session originator unless it has been separately
   authenticated by some other means, such as being certified by a
   trusted third party.  Such certificates are not normally included in
   an SAP header because they take more space than can normally be
   afforded in an SAP packet, and such verification must therefore take
   place by some other mechanism.  However, as certified public keys are
   normally locally cached, authentication of a particular key only has
   to take place once, rather than every time the session directory
   retransmits the announcement.

   SAP is not tied to any single authentication mechanism.
   Authentication data in the header is self-describing, but the precise
   format depends on the authentication mechanism in use.  The generic
   format of the authentication data is given in figure 2.  The
   structure of the format specific authentication subheader, using both
   the PGP and the CMS formats, is discussed in sections 8.1 and 8.2
   respectively.  Additional formats may be added in future.

   Version Number, V:  The version number of the authentication format
      specified by this memo is 1.

   Padding Bit, P:  If necessary the authentication data is padded to be
      a multiple of 32 bits and the padding bit is set.  In this case
      the last byte of the authentication data contains the number of
      padding bytes (including the last byte) that must be discarded.

   Authentication Type, Auth: The authentication type is a  4 bit
      encoded field that denotes the authentication infrastructure the
      sender expects the recipients to use to check the authenticity and
      integrity of the information.  This defines the format of the
      authentication subheader and can take the values:  0 = PGP format,
      1 = CMS format.  All other values are undefined and SHOULD be
      ignored.

   If a SAP packet is to be compressed or encrypted, this MUST be done
   before the authentication is added.

   The digital signature in the authentication data MUST be calculated
   over the entire packet, including the header.  The authentication
   length MUST be set to zero and the authentication data excluded when
   calculating the digital signature.

   It is to be expected that sessions may be announced by a number of
   different mechanisms, not only SAP.  For example, a session
   description may placed on a web page, sent by email or conveyed in a





Handley, et al.               Experimental                     [Page 11]


RFC 2974             Session Announcement Protocol          October 2000


   session initiation protocol.  To ease interoperability with these
   other mechanisms, application level security is employed, rather than
   using IPsec authentication headers.

8.1 PGP Authentication

   A full description of the PGP protocol can be found in [2].  When
   using PGP for SAP authentication the basic format specific
   authentication subheader comprises a digital signature packet as
   described in [2].  The signature type MUST be 0x01 which means the
   signature is that of a canonical text document.

8.2 CMS Authentication

   A full description of the Cryptographic Message Syntax can be found
   in [6].  The format specific authentication subheader will, in the
   CMS case, have an ASN.1 ContentInfo type with the ContentType being
   signedData.

   Use is made of the option available in PKCS#7 to leave the content
   itself blank as the content which is signed is already present in the
   packet.  Inclusion of it within the SignedData type would duplicate
   this data and increase the packet length unnecessarily.  In addition
   this allows recipients with either no interest in the authentication,
   or with no mechanism for checking it, to more easily skip the
   authentication information.

   There SHOULD be only one signerInfo and related fields corresponding
   to the originator of the SAP announcement.  The signingTime SHOULD be
   present as a signedAttribute.  However, due to the strict size
   limitations on the size of SAP packets, certificates and CRLs SHOULD
   NOT be included in the signedData structure.  It is expected that
   users of the protocol will have other methods for certificate and CRL
   distribution.

9  Scalability and caching

   SAP is intended to announce the existence of long-lived wide-area
   multicast sessions.  It is not an especially timely protocol:
   sessions are announced by periodic multicast with a repeat rate on
   the order of tens of minutes, and no enhanced reliability over UDP.
   This leads to a long startup delay before a complete set of
   announcements is heard by a listener.  This delay is clearly
   undesirable for interactive browsing of announced sessions.

   In order to reduce the delays inherent in SAP, it is recommended that
   proxy caches are deployed.  A SAP proxy cache is expected to listen
   to all SAP groups in its scope, and to maintain an up-to-date list of



Handley, et al.               Experimental                     [Page 12]


RFC 2974             Session Announcement Protocol          October 2000


   all announced sessions along with the time each announcement was last
   received.  When a new SAP listeners starts, it should contact its
   local proxy to download this information, which is then sufficient
   for it to process future announcements directly, as if it has been
   continually listening.

   The protocol by which a SAP listener contacts its local proxy cache
   is not specified here.

10 Security Considerations

   SAP contains mechanisms for ensuring integrity of session
   announcements, for authenticating the origin of an announcement and
   for encrypting such announcements (sections 7 and 8).

   As stated in section 5, if a session modification announcement is
   received that contains a valid authentication header, but which is
   not signed by the original creator of the session, then the session
   must be treated as a new session in addition to the original session
   with the same SDP origin information unless the originator of one of
   the session descriptions can be authenticated using a certificate
   signed by a trusted third party.  If this were not done, there would
   be a possible denial of service attack whereby a party listens for
   new announcements, strips off the original authentication header,
   modifies the session description, adds a new authentication header
   and re-announces the session.  If a rule was imposed that such spoof
   announcements were ignored, then if packet loss or late starting of a
   session directory instance caused the original announcement to fail
   to arrive at a site, but the spoof announcement did so, this would
   then prevent the original announcement from being accepted at that
   site.

   A similar denial-of-service attack is possible if a session
   announcement receiver relies completely on the originating source and
   hash fields to indicate change, and fails to parse the remainder of
   announcements for which it has seen the origin/hash combination
   before.

   A denial of service attack is possible from a malicious site close to
   a legitimate site which is making a session announcement.  This can
   happen if the malicious site floods the legitimate site with huge
   numbers of (illegal) low TTL announcements describing high TTL
   sessions.  This may reduce the session announcement rate of the
   legitimate announcement to below a tenth of the rate expected at
   remote sites and therefore cause the session to time out.  Such an
   attack is likely to be easily detectable, and we do not provide any
   mechanism here to prevent it.




Handley, et al.               Experimental                     [Page 13]


RFC 2974             Session Announcement Protocol          October 2000


A. Summary of differences between SAPv0 and SAPv1

   For this purpose SAPv0 is defined as the protocol in use by version
   2.2 of the session directory tool, sdr.  SAPv1 is the protocol
   described in the 19 November 1996 version of this memo.  The packet
   headers of SAP messages are the same in V0 and V1 in that a V1 tool
   can parse a V0 announcement header but not vice-versa.  In SAPv0, the
   fields have the following values:

     o Version Number:  0

     o Message Type:  0 (Announcement)

     o Authentication Type:  0 (No Authentication)

     o Encryption Bit:  0 (No Encryption)

     o Compression Bit:  0 (No compression)

     o Message Id Hash:  0 (No Hash Specified)

     o Originating Source:  0 (No source specified, announcement has
       not been relayed)

B. Summary of differences between SAPv1 and SAPv2

   The packet headers of SAP messages are the same in V1 and V2 in that
   a V2 tool can parse a V1 announcement header but not necessarily
   vice-versa.

    o The A bit has been added to the SAP header, replacing one of the
      bits of the SAPv1 message type field.  If set to zero the
      announcement is of an IPv4 session, and the packet is backwards
      compatible with SAPv1.  If set to one the announcement is of an
      IPv6 session, and SAPv1 listeners (which do not support IPv6) will
      see this as an illegal message type (MT) field.

    o The second bit of the message type field in SAPv1 has been
      replaced by a reserved, must-be-zero, bit.  This bit was unused in
      SAPv1, so this change just codifies existing usage.

    o SAPv1 specified encryption of the payload.  SAPv2 includes the E
      bit in the SAP header to indicate that the payload is encrypted,
      but does not specify any details of the encryption.

    o SAPv1 allowed the message identifier hash and originating source
      fields to be set to zero, for backwards compatibility.  This is no
      longer legal.



Handley, et al.               Experimental                     [Page 14]


RFC 2974             Session Announcement Protocol          October 2000


    o SAPv1 specified gzip compression.  SAPv2 uses zlib (the only known
      implementation of SAP compression used zlib, and gzip compression
      was a mistake).

    o SAPv2 provides a more complete specification for authentication.

    o SAPv2 allows for non-SDP payloads to be transported.  SAPv1
      required that the payload was SDP.

    o SAPv1 included a timeout field for encrypted announcement, SAPv2
      does not (and relies of explicit deletion messages or implicit
      timeouts).

C. Acknowledgements

   SAP and SDP were originally based on the protocol used by the sd
   session directory from Van Jacobson at LBNL.  Version 1 of SAP was
   designed by Mark Handley as part of the European Commission MICE
   (Esprit 7602) and MERCI (Telematics 1007) projects.  Version 2
   includes authentication features developed by Edmund Whelan, Goli
   Montasser-Kohsari and Peter Kirstein as part of the European
   Commission ICE-TEL project (Telematics 1005), and support for IPv6
   developed by Maryann P. Maher and Colin Perkins.




























Handley, et al.               Experimental                     [Page 15]


RFC 2974             Session Announcement Protocol          October 2000


D. Authors' Addresses

   Mark Handley
   AT&T Center for Internet Research at ICSI,
   International Computer Science Institute,
   1947 Center Street, Suite 600,
   Berkeley, CA 94704, USA

   EMail: mjh@aciri.org


   Colin Perkins
   USC Information Sciences Institute
   4350 N. Fairfax Drive, Suite 620
   Arlington, VA 22203, USA

   EMail: csp@isi.edu


   Edmund Whelan
   Department of Computer Science,
   University College London,
   Gower Street,
   London, WC1E 6BT, UK

   EMail: e.whelan@cs.ucl.ac.uk

























Handley, et al.               Experimental                     [Page 16]


RFC 2974             Session Announcement Protocol          October 2000


References

   [1] Bradner, S., "Key words for use in RFCs to indicate requirement
       levels", BCP 14, RFC 2119, March 1997.

   [2] Callas, J., Donnerhacke, L., Finney, H. and R. Thayer. "OpenPGP
       message format", RFC 2440, November 1998.

   [3] Deutsch, P. and J.-L. Gailly, "Zlib compressed data format
       specification version 3.3", RFC 1950, May 1996.

   [4] Handley, M. and V. Jacobson, "SDP: Session Description Protocol",
       RFC 2327, April 1998.

   [5] Handley, M., Thaler, D. and R. Kermode, "Multicast-scope zone
       announcement protocol (MZAP)", RFC 2776, February 2000.

   [6] Housley, R., "Cryptographic message syntax", RFC 2630, June 1999.

   [7] Mayer, D., "Administratively scoped IP multicast", RFC 2365, July
       1998.






























Handley, et al.               Experimental                     [Page 17]


RFC 2974             Session Announcement Protocol          October 2000


Full Copyright Statement

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

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

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

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

Acknowledgement

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



















Handley, et al.               Experimental                     [Page 18]
秋五行属什么 电压mv是什么意思 舛是什么意思 3个火念什么 活血化瘀吃什么药
虾皮是什么 光圈是什么 每天喝柠檬水有什么好处 仓鼠是什么动物 医保定点是什么意思
轻度脂肪肝吃什么药 裤子前浪后浪是什么 爱出汗是什么原因女人 合菜是什么 千钧一发是什么生肖
胸闷气短吃什么药 罗非鱼长什么样 晚上睡觉遗精是什么原因 7月6日是什么节日 胃疼吃什么好
夷是什么意思hcv8jop1ns8r.cn 节育是什么意思hcv9jop7ns2r.cn 什么是火象星座hcv9jop2ns3r.cn 遗物是什么意思hcv8jop0ns5r.cn 胃不好吃什么蔬菜hcv7jop4ns5r.cn
舌苔发黑是什么原因hcv7jop4ns8r.cn 指甲扁平是什么原因gysmod.com 鲔鱼是什么鱼cj623037.com 蜘蛛痣是什么样的hcv7jop7ns4r.cn 5月12号是什么日子hcv9jop0ns9r.cn
u什么意思hcv8jop3ns0r.cn g点是什么hcv8jop0ns4r.cn 张柏芝什么星座hcv9jop5ns1r.cn 脚背肿是什么原因引起的hcv8jop2ns6r.cn 冰枕对人有什么危害吗hcv8jop2ns1r.cn
睡觉翻白眼是什么原因hcv7jop7ns3r.cn 9.4号是什么星座hcv9jop1ns8r.cn 什么什么的沙滩hcv9jop5ns8r.cn 子宫肌瘤什么症状hcv8jop3ns0r.cn 钨砂是什么东西jasonfriends.com
百度