SDPng: first shot at requirements
Joerg Ott <jo@tzi.uni-bremen.de> Sun, 09 July 2000 15:46 UTC
Return-Path: <owner-confctrl>
Received: (from majordom@localhost) by zephyr.isi.edu (8.9.3/8.9.3) id IAA25219 for confctrl-outgoing; Sun, 9 Jul 2000 08:46:43 -0700 (PDT)
Received: from venera.isi.edu (venera.isi.edu [128.9.176.32]) by zephyr.isi.edu (8.9.3/8.9.3) with ESMTP id IAA25214 for <confctrl@zephyr.isi.edu>; Sun, 9 Jul 2000 08:46:41 -0700 (PDT)
Received: from bettina.informatik.uni-bremen.de (bettina.informatik.uni-bremen.de [134.102.224.3]) by venera.isi.edu (8.9.3/8.9.3) with ESMTP id IAA24747 for <confctrl@isi.edu>; Sun, 9 Jul 2000 08:47:31 -0700 (PDT)
Received: from plumps (ruin.informatik.uni-bremen.de [134.102.224.52]) by bettina.informatik.uni-bremen.de (8.10.1/8.10.1) with SMTP id e69FlQx07465 for <confctrl@isi.edu>; Sun, 9 Jul 2000 17:47:28 +0200 (MET DST)
Message-Id: <200007091547.e69FlQx07465@bettina.informatik.uni-bremen.de>
X-Sender: jo@127.0.0.1
X-Mailer: QUALCOMM Windows Eudora Pro Version 4.0
Date: Sun, 09 Jul 2000 16:24:34 +0200
To: confctrl@ISI.EDU
From: Joerg Ott <jo@tzi.uni-bremen.de>
Subject: SDPng: first shot at requirements
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by zephyr.isi.edu id IAA25215
Sender: owner-confctrl@zephyr.isi.edu
Precedence: bulk
Folks, we have started talking about a sucessor to SDP for a while now. We have received input from a variety of sources and have started to draw up a small requirements document (at pre-I-D stage) that hopefully collects most of the input which is attached below. This document uses terminology and modeling from draft-ott-mmusic-caps-00.txt submitted as I-D last summer. We have also compiled a collection of input documents (which is probably incomplete at the moment). They can be found at http://www.dmn.tzi.org/ietf/mmusic/sdp-ng/ If you have additions to the documentation, please contact me directly and I will add them to the web page. We look forward to your comments. Joerg ---------------------------------------------------------------------- Requirements for SDPng ====================== Dirk Kutscher, Jörg Ott, Carsten Bormann {dku,jo,cabo}@tzi.uni-bremen.de 4 July 2000 1. Introduction SDP allows to specify multimedia sessions (i.e. conferences, "session" as used here is not to be confused with "RTP session"!) by providing general information about the session as a whole and specifications for all the media streams (RTP sessions and others) to be used to exchange information within the multimedia session. Note: Please keep in mind that whenever we use the terms "conference" or "interaction" this may as well apply to other types of multimedia communication, particularly including (RTSP-controlled) media streaming or broadcasting applications. This separation into a session description and one or more media descriptions needs to be preserved. Currently, media descriptions in SDP are used for two purposes: * to describe session parameters for announcements and invitations (the original purpose of SDP) * to describe the capabilities of a system (and possibly povide a choice between a number of alternatives). Note that SDP was not designed to facilitate this. A distincton between these two "sets of semantics" is only made implictly. A brief note on terminology (taken from draft-ott-mmusic-caps-00.txt): * A multimedia session (or conference) consists of one or more conference components for multi media interaction. * A component describes a particular type of interaction (e.g. audio conversation, slide presentation) that can be realized by means of different applications (possibly using different protocols). * A configuration is a set of parameters that are required to implement a certain variation (realization) of a certain component. There are actual and potential configurations. - Potential configurations describe possible configurations that are supported by an end system - An actual configuration is an "instantiation" of one of the potential configurations, i.e. a decision how to realize a certain component. In less abstract words, potential configurations describe what a system can do ("capabilities") and actual configurations describe how a system is configured to operate at a certain point in time (media stream spec). To decide on a certain actual configuration, a negotiation process needs to take place between the involved peers (a) to determine which potential configuration(s) they have in common. (b) Out of this shared set of common potential configurations the peers need to select one or more to be used for information exchange (e.g. based upon preferences, external constraints, etc.). In SAP-based session announcements on the Mbone, for which SDP was originally developed, the negotiation procedure is non-existent. Instead, the announcement contains the media stream description sent out (i.e. the actual configurations) which implicitly describe what a receiver must understand to participate. In point-to-point scenarios, the negotiation procedure is typically carried out implicitly: each party informs the other about what it can receive and the respective sender chooses from this set a configuration that it can transmit. Capability negotiation must not only work for 2-party conferences but is also required for multi-party conferences. Especially for the latter case it is required that the process of determining the subset of allowable potential configurations is deterministic to reduce the number of required round trips before a session can be established. In the following, we elaborate on requirements for an SDPng specification, subdivided into general requirements and requirements for session descriptions, potential and actual configurations as well as negotiation rules. 2. General Requirements A couple of trivial ones first (just for warming up :-) 2.1 Simplicity The SDPng syntax shall be simple to parse and the protocol rules shall be easy to implement. 2.2 Extensibility SDPng shall be extensible in a backward compatible fashion. Extensions should be doable without modifying the SDPng specification itself. The spec should preclude two independent extensions from clashing with each other (e.g. in the naming of attributes). 2.3 Firewall Friendliness It should be theoretically possible for firewalls (and other network infrastructure elements) to process announcements etc. that contain SDng content. The concrete procedures have to be defined but if possible the processing of the SDPng content should be doable without interpretation of the textual descriptions. Firewall friendliness should not be harmed when extending the SDPng specification later on.. 2.4 Security SDPng should allow independent security attributes for parts of a session description. In particular, signing and/or encrypting parts of a session description should be supported. 2.5 Text encoding A concise text representation is desirable. A syntax should be used that allows parsing and skipping unknown pieces of an SDPng message. 2.6 Mapping (of a Subset) to SDP It shall be possible to translate a subset of SDPng into standard SDP session description to enable a certain minimal degree of interoperability between SDP-based and SDPng-based systems. However, as SDPng will provide enhanced functionality compared to SDP, a full mapping to SDP is not possible. It is unclear at the moment whether syntactic backward compatibility to SDP as per RFC 2327 is a must. Clearly, this is desirable but may not need to be achieved at all cost. Since several flavors of SDP have been developd (e.g., the MEGACO WG uses certain non-SDP enhancements) it needs to be discussed which of these flavors need to be considered for some kind of mapping. 3. Session Description Requirements For now, we only consider requirements for media (stream) desciptions. 3.1 Media Description It must be possible to express the following information with SDPng: 3.1.1 Medium Type Payload types and format paramters for audio and video are well-defined and the basic semantics are clear (as defined in RFC1889 and RFC2327). Format description for text and whiteboard are currently only defined in the context of specific applications, this is probably going to change in the future (not an SDPng work item). Non-standard (in terms of defined as a non-standard payload type) codecs and format parameters can be accomplished by using dynamic payload type mappings. This is a crucial feature of SDP that needs to be preserved for the sake of interopability with RTP-applications. Current SDP only provides a= (a=fmtp) as means to specify codec parameters but actually gives little support on how to do this. Schemes for expressing more sophisticated parameters (e.g. supporting nesting) may be necessary. Nevertheless, it is imperative to keep the overall structure of a codec description manageable. Note that there is a conflict between the desire to be able to use any old SDP and translate it in SDPng and the desire to have a more powerful structure in the SDPng data. 3.1.2 Media Stream Packetization SDPng need to be able to take care of more sophisticated payload descriptions than simple payload type assignment. Audio/video redundancy coding schemes need to be supported as need other mechanisms e.g. for FEC (RFC 2733) and media stream repair (RFC 2354). Also, layered coding schemes need to be supported. Finally, a separation of the media encoding scheme, the packetization format, and possible repair schemes (and their respective parameters) is required. 3.1.3 Transport Since session descriptions are not only used to describe sessions that use IPv4/RTP for media transport it must be possible to specify different transport protocols (and their corresponding mandatory parameters). This means SDPng must support different address formats (IPv4, IPv6, E.164, NSAP, ...) and different transport protocol stacks (RTP/UDP/IP, RTP/AAL5/ATM, ...). Additionally the requirement for expressing multiple addresses per actual configuration (layered coding support) has emerged, as well as the requirement for expressing multiple addresses per potential configuration (one port per payload type to simplify processing at the receiver). (A motivation has been provided by draft-camarillo-sip-sdp-00.txt.) In multi-unicast-scenarios it must be possible to specify more than one transport address for a single media stream in an actual configuration, i.e. by specifying address lists. In "broadcast"- or "lecture"-like sessions source filters might be needed that allow receivers to verify the source and apply filters in multicast sessions. 3.1.4 QoS QoS-Parameters for different protocol domains (e.g. traffic specification and flow specification or TOS bits for IP QoS) need to be specified. draft-ietf-mmusic-sdp-qos-00.txt has provided a proposal for a syntax that can be used with SDP to describe network and security preconditions that have to be met in order to establish a session. 3.1.5 Other parameters (media-specific) Extension mechanisms that allow to describe arbitrary other parameters of media codecs and formats are mandatory. It is possibly required to distinguish between mandatory and optional extension parameters. In particular, it must be possible to introduce new (optional) parameters for a payload format and have old implementations still parse the parameters correctly. 3.1.6 Naming Hierarchy and/or Scoping Parameter names should be constructed in a way to that helps to avoid clashes and thereby simplify independent development of e.g. codec parameter descriptions in different groups. 4. Requirements for Capability Description and Negotiation 4.1 Capability Constraints Capability negotiation is used to gain a session description (a actual configuration) that is compatible with the different end system capabilities and user preferences of the potential participants of a conference. A media capability description is the same as a potential configuration, as it contains a set of allowable configurations for different components that could be used to implement the corresponding component. A capability description should allow specifying a number of interdependencies among capabilities. Traditional SDP only supports alternative capabilities and the specification implicitly assumed that all capabilities could be combined and basically used at the same time (looking at the pure session description, at least). Processing power, hardware, link, or other resources may preclude the simultaneous use of certain configurations and/or limit the number of simultaneous instantiations of one or more configurations. This has led to a need to express in more detail constraints on combinations of configurations including the following: - grouping capabilities (-> capability set); - expressing simultenous capability sets; - expressing alternative capability sets; and - constraining the number of uses of a certain capability (set). It needs to be carefully investigated how much more sophistication (if any) than simply listing alternatives needs to go into a base specification of SDPng (and which extension mechanisms for certain applications or for future revisions should be allowed). Examples are known where complex capability descriptions are available but are simply not used (at least not at the level of sophistication that would be possbile). This strongly calls for keeping requirements on capability constraints rather modest (KISS). 4.2 Processing Rules The processing (i.e. collapsing, forwarding etc.) of different potential configurations in order to find a compatible subset must work without having to know the semantics of the individual parameters. This is a key requirement for extensibility. Additionally it must be possible to make use of different negotiation policies in order to reflect different conference types. For example in a lecture-style conference it must be ensured that a capability collapsing process does not yield an actual configuration that excludes the main source (i.e. the lecturer and her end system) from the conference. Of course, the negotiation of configurations must not only work in peer-to-peer-conference scenarios but also be usable in multi party scenarios. In order to allow for concise capability specification it will probably be required to group descriptions of, say, codecs and to establish a kind of hierarchy that allows to attach a certain attribute or parameter to a whole group of codecs. It might then also be required to have a naming scheme that allows to name definitions in order to be able to later reference them in subsequent definitions. This is useful in situations where some definition extends a previous definition by just one parameter or in situations where codecs are combined, for example for expressing redundancy or layered codings. Different models of re-use are conceivable. 5 Remarks Explicitely addressing the issue of capability negotiation when drafting the new session description language generates new sets of requirements, some of which might conflict with other important goals, such as simplicity, conciseness and SDP-compatibility. However, we think that it's worthwile to sketch a complete and powerful solution first and then later develop a migration path from today's technology instead of imposing limits at the outset to minimize the possibly necessary changes. ----------------------------------------------------------------------
- SDPng: first shot at requirements Joerg Ott