One document matched: draft-perkins-rtcweb-rtp-usage-00.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-perkins-rtcweb-rtp-usage-00"
ipr="trust200902">
<front>
<title abbrev="RTP for RTC-Web">RTP Requirements for RTC-Web</title>
<author fullname="Colin Perkins" initials="C. S." surname="Perkins">
<organization>University of Glasgow</organization>
<address>
<postal>
<street>School of Computing Science</street>
<city>Glasgow</city>
<code>G12 8QQ</code>
<country>United Kingdom</country>
</postal>
<email>csp@csperkins.org</email>
</address>
</author>
<author fullname="Magnus Westerlund" initials="M." surname="Westerlund">
<organization>Ericsson</organization>
<address>
<postal>
<street>Farogatan 6</street>
<city>SE-164 80 Kista</city>
<country>Sweden</country>
</postal>
<phone>+46 10 714 82 87</phone>
<email>magnus.westerlund@ericsson.com</email>
</address>
</author>
<author fullname="Joerg Ott" initials="J." surname="Ott">
<organization>Aalto University</organization>
<address>
<postal>
<street>School of Electrical Engineering</street>
<city>Espoo</city>
<code>02150</code>
<country>Finland</country>
</postal>
<email>jorg.ott@aalto.fi</email>
</address>
</author>
<date year="2011" />
<abstract>
<t>This document discusses usage of RTP in the context of RTC-WEB work.
It discusses important factors of RTP to consider by other parts of the
solution, it also discusses which RTP profile to support and which RTP
extensions that should be supported.</t>
</abstract>
</front>
<middle>
<!--Possible todos: Number each implementation requirement so that they can be directly referenced.-->
<section title="Introduction">
<t>This document discusses RTP in the context of RTC-WEB. This include
RTP's requirement on underlying transport, for example when it comes to
provide multiplexing. It discusses which RTP profile that should be
supported and what RTP extensions that should be supported. The
importance of congestion control and media adaptation is also discussed.
This document is intended as a starting point for discussing RTP
features in RTC-WEB.</t>
<t>The work in the AVT WG has all been about providing building blocks
and not specify who should use which building blocks. Selection of
building blocks and functionalities can really only be done in the
context of some application(s). RTC-WEB will greatly benefit in
interoperability if a reasonable set of RTP functionalities and
extensions are selected. For RTC-WEB we have selected RTP extensions
that are suitable for a number of applications that fits the context.
Thus applications such as VoIP, audio and video conferencing, and
on-demand multi-media streaming are considered. Applications that rely
on multicast transport has not been considered likely to be applicable
to RTC-WEB, thus extensions related to multicast have been excluded.</t>
<t>The document is structured into different topics. For each topic one
or several recommendations from the authors are done. When it comes to
extensions or need for implementation support we use three levels to
indicate the importance for it to be included in an RTC-WEB
specification. We see it as likely that everything that is included is
in fact mandated to be implemented.</t>
<t><list style="hanging">
<t hangText="REQUIRED:">Absolutely needed functionality to make the
solution work well. Also functionality of low complexity that
provide high value has also been categorized as required.</t>
<t hangText="RECOMMENDED:">Should be included as its brings
significant benefit, but the solution can potentially work without
it.</t>
<t hangText="OPTIONAL:">Something that is useful in some cases, but
not always a benefit.</t>
</list>When this documents discusses RTP it always include RTCP unless
explicitly stated otherwise. This as RTCP is a fundamental and integral
part of the protocol.</t>
</section>
<section title="Requirements from RTP">
<t>This section discusses some requirements <xref
target="RFC3550">RTP/RTCP</xref> puts its underlying transport, the
signalling etc.</t>
<section title="RTP Session Multiplexing">
<t>RTP has three fundamental points of multiplexing. The first one is
the RTP session, which is used to separate media of different kind or
purpose. Such as Audio and Video, or the document camera and the
speaker camera in video conference. This multiplexing point does not
have an identifier within the RTP protocol, instead it relies on the
lower layer to separate the different RTP session. Thus the most
common RTP session separation is different UDP port numbers, but also
IP address or other identifiers maybe used to achieve this separation.
The second multiplexing point is the SSRC that separates different
sources of media within a single RTP session. The third is the RTP
Payload type, which identifies how the media from a particular source
is encoded.</t>
<t>These multiplexing points area fundamental part of the design of
RTP and is discussed in Section 5.2 of <xref target="RFC3550"></xref>.
From that list the ones that are directly related to the importance of
the RTP session as concept are 4 and 5 (from RFC 3550):</t>
<t><list style="hanging">
<t hangText=""4.">An RTP mixer would not be able to combine
interleaved streams of incompatible media into one stream."</t>
<t hangText=""5.">Carrying multiple media in one RTP session
precludes: the use of different network paths or network resource
allocations if appropriate; reception of a subset of the media if
desired, for example just audio if video would exceed the
available bandwidth; and receiver implementations that use
separate processes for the different media, whereas using separate
RTP sessions permits either single- or multiple-process
implementations."</t>
</list>Point 4, has to do with media of different kind or purpose.
The processing that can happen in an RTP mixer, translator or in an
end-point is dependent on the purpose and media type of the stream.
Thus there is an importance of separating such streams from each
other. This could of course be achieved by other methods, like tagging
SSRC values with their purpose, however there are reasons why this was
not chosen. First of all it is not the simple solution, as this
require additional signalling, and possibly synchronization between
session peers. In addition there is the issue point 5 raises.</t>
<t>Point 5 has to do with enabling quality of service or traffic
engineering between the media flows in different RTP sessions. By
using different transport layer ports, QoS mechanism that are capable
of operating on the 5-tuple (Source address, port, destination
address, port, and protocol) can be used without modification on
RTP.</t>
<t>Due to these design principle implementors of various services or
applications using RTP has commonly not violated this model. If one
choses to violate it today one fails to achieve interoperability with
a number of existing services, applications and implementations.</t>
<t>Lets assume one overloads multiple RTP sessions into one by tagging
the SSRC to belong to different purposes. If one would gateway that
design into a legacy system, then there would be a significant issue
with SSRC collision. This as the legacy system would not know about
the need to avoid using the same SSRC in the different RTP
sessions.</t>
<t>There are also various RTP mechanism that has the potential for
issues if one don't have a clear separation of RTP sessions:</t>
<t><list style="hanging">
<t hangText="Scalabilty:">RTP was built with media scalability in
consideration. The simplest way of achieving separation between
different scalability layers are placing them in different RTP
sessions, and using the same SSRC and CNAME in each session to
bind them together. This is most commonly done in multicast, and
not particular applicable to RTC-WEB, but gatewaying of such a
session would then require more alterations and likely stateful
translation.</t>
<t
hangText="RTP Retransmission in Session Multiplexing mode:"><xref
target="RFC4588">RTP Retransmission</xref> does have a mode for
session multiplexing. This would not be the main mode used in
RTC-WEB, but for interoperability and reduced cost in translation
support for different RTP Sessions are required.</t>
<t hangText="Forward Error Correction:">The <xref
target="RFC2733">"An RTP Payload Format for Generic Forward Error
Correction"</xref> and its update <xref target="RFC5109"></xref>
can only be used on media formats that produce RTP packets that
are smaller than half the MTU if the FEC flow and media flow being
protected are to be sent in the same RTP session, this is due to
<xref target="RFC2198"> "RTP Payload for Redundant Audio
Data"</xref>. This is because the SSRC value of the original flow
is recovered from the FEC packets SSRC field. So for anything that
desires to use these format with RTP payloads that are close to
MTU needs to put the FEC data in a separate RTP session compared
to the original transmissions.</t>
</list>RTCP behavior also becomes a factor in why overloading RTP
sessions is problematic. The extension mechanisms used in RTCP depends
on the media streams. For example the Extended RTCP report block for
VoIP is of suitable for conversational audio, but clearly not useful
for Video. This has three impacts, either one get unusable reports if
they are generated for streams where there are little purpose. This is
maybe less likely for the VoIP report, but for example the more
detailed media agnostic reports it may occur. It otherwise makes the
implementation of RTCP more complex as the SSRC purpose tagging needs
not only to be one the media side, but also on the RTCP reporting.
Also the RTCP reporting interval and transmission scheduling will be
affected.</t>
<t>As a conclusion not ensuring that RTP sessions are used for its
intended purpose as a multiplexing point does violate the RTP design
philosophy. It prevents the usage of certain RTP extensions. It will
require additional extensions to function and will significantly
increase the complexity of the implementation. At the same time it
will significantly reduce the interoperability with current
implementations.</t>
</section>
<section anchor="sdp" title="Signalling for RTP sessions">
<t>RTP is built with the assumption of an external to RTP/RTCP
signalling channel to configure the RTP sessions and its functions.
The basic configuration of an RTP session consists of the following
parameters:</t>
<t><list style="hanging">
<t hangText="RTP Profile:">The name of the RTP profile to be used
in session. The <xref target="RFC3551">RTP/AVP</xref> and <xref
target="RFC4585">RTP/AVPF</xref> profiles can interoperate on
basic level, as can their secure variants <xref
target="RFC3711">RTP/SAVP</xref> and <xref
target="RFC5124">RTP/SAVPF</xref>. The secure variants of the
profiles do not directly interoperate with the non-secure
variants, due to the presence of additional header fields.</t>
<t hangText="Transport Information:">Source and destination
address(s) and ports for RTP and RTCP must be signalled for each
RTP session. If <xref target="RFC5761">RTP and RTCP
multiplexing</xref> is to be used, such that a single port is used
for RTP and RTCP flows, this must be signalled.</t>
<t hangText="RTP Payload Types and Media formats:">The mapping
between media type names (and hence the RTP payload formats to be
used) and the RTP payload type numbers must be signalled. Each
media type may also have a number of media type parameters that
must also be signalled to configure the codec and RTP payload
format (the "a=fmtp:" line from SDP).</t>
</list></t>
<t>Support for exchanging RTCP Bandwidth values to the end-points will
be necessary, as described in <xref target="RFC3556">"Session
Description Protocol (SDP) Bandwidth Modifiers for RTP Control
Protocol (RTCP) Bandwidth"</xref>, or something semantically
equivalent. This also ensures that the end-points have a common view
of the RTCP bandwidth, this is important as too different view of the
bandwidths may lead to failure to interoperate.</t>
</section>
<section title="(Lack of) Signalling for Payload Format Changes">
<t>As discussed in <xref target="sdp"></xref>, the mapping between
media type name, and its associated RTP payload format, and the RTP
payload type number to be used for that format must be signalled as
part of the session setup. An endpoint may signal support for multiple
media formats, or multiple configurations of a single format, each
using a different RTP payload type number. If multiple formats are
signalled by an endpoint, that endpoint must be prepared to receive
data encoded in any of those formats at any time. RTP does not require
advance signalling for changes between formats that were signalled as
part of the session setup. This is necessary for rapid rate
adaptation.</t>
</section>
</section>
<section title="RTP Profile">
<t>The RTP profile REQUIRED to implement is <xref
target="RFC5124">"Extended Secure RTP Profile for Real-time Transport
Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)"</xref>. Which will
mean implicit support for <xref target="RFC4585">AVPF</xref>, <xref
target="RFC3551">AVP</xref> and <xref target="RFC3711">SAVP</xref>.</t>
<t>The AVPF part of SAVPF is required to get the improved RTCP timer
model, that allows more flexible transmission of RTCP packets as
response to events, rather than strictly according to bandwidth. This
also saves RTCP bandwidth and will commonly only utilize the full amount
when there is a lot of events to send feedback on.</t>
<t>The S part of SAVPF is for support of SRTP. This provides media
encryption, integrity protection, replay protection and a limited form
of source authentication. It does not contain a specific keying
mechanism. So that and the set of security transforms will be required
to be selected. It is possible that a security mechanism operating on a
lower layer than RTP can be used instead and that should be evaluated.
However, the reasons for the design of SRTP should be taken into
consideration in that discussion.</t>
</section>
<section title="RTP and RTCP Guidelines">
<t>RTP and RTCP are two flexible and extensible protocols that allow, on
the one hand, choosing from a variety of building blocks and combining
those to meet application needs, and on the other hand, create
extensions where existing mechanisms are not sufficient: from new
payload formats to RTP extension headers to additional RTCP control
packets.</t>
<t>Different informational documents provide guidelines to the use and
particularly the extension of RTP and RTCP, including the following:
<xref target="RFC2736">Guidelines for Writers of RTP Payload Format
Specifications</xref> and <xref target="RFC5968">Guidelines for
Extending the RTP Control Protocol</xref>.</t>
</section>
<section title="RTP Optimizations">
<t>This section discusses some optimizations that makes RTP/RTCP work
better and more efficient and therefore are considered.</t>
<section title="RTP and RTCP Multiplexing">
<t>Historically, RTP and RTCP have been run on separate UDP ports.
With the increased use of Network Address Port Translation (NAPT) this
has become problematic, since maintaining multiple NAT bindings can be
costly. It also complicates firewall administration, since multiple
ports must be opened to allow RTP traffic. To reduce these costs and
session setup times, support for multiplexing RTP data packets and
RTCP control packets on a single port <xref target="RFC5761"></xref>
is REQUIRED.</t>
<t>Note that the use of RTP and RTCP multiplexed on a single port
ensures that there is occasional traffic sent on that port, even if
there is no active media traffic. This may be useful to keep-alive NAT
bindings.</t>
</section>
<section title="Reduced Size RTCP">
<t>RTCP packets are usually sent as compound RTCP packets; and RFC
3550 demands that those compound packets always start with an SR or RR
packet. However, especially when using frequent feedback messages,
these general statistics are not needed in every packet and
unnecessarily increase the mean RTCP packet size and thus limit the
frequency at which RTCP packets can be sent within the RTCP bandwidth
share.</t>
<t>RFC5506 <xref target="RFC5506">"Support for Reduced-Size Real-Time
Transport Control Protocol (RTCP): Opportunities and
Consequences"</xref> specifies how to reduce the mean RTCP message and
allow for more frequent feedback. Frequent feedback, in turn, is
essential to make real-time application quickly aware of changing
network conditions and allow them to adapt their transmission and
encoding behavior.</t>
<t>Support for RFC5506 is REQUIRED.</t>
</section>
<section title="Symmetric RTP/RTCP">
<t>RTP entities choose the RTP and RTCP transport addresses, i.e., IP
addresses and port numbers, to receive packets on and bind their
respective sockets to those. When sending RTP packets, however, they
may use a different IP address or port number for RTP, RTCP, or both;
e.g., when using a different socket instance for sending and for
receiving. Symmetric RTP/RTCP requires that the IP address and port
number for sending and receiving RTP/RTCP packets are identical.</t>
<t>Using <xref target="RFC4961">Symmetric RTP and RTCP</xref> is
REQURIED.</t>
</section>
<section title="CNAME generation">
<t>The RTCP Canonical Name (CNAME) provides a persistent
transport-level identifier for an RTP endpoint. While the
Synchronization Source (SSRC) identifier for an RTP endpoint may
change if a collision is detected, or when the RTP application is
restarted, it's RTCP CNAME is meant to stay unchanged, so that RTP
endpoints can be uniquely identified and associated with their RTP
media streams. For proper functionality, RTCP CNAMEs should be unique
within the participants of an RTP session.</t>
<t>The <xref target="RFC3550">RTP specification</xref> includes
guidelines for choosing a unique RTP CNAME, but these are not
sufficient in the presence of NAT devices. In addition, some may find
long-term persistent identifiers problematic from a privacy viewpoint.
Accordingly, support for generating the RTP CNAME as specified in
<xref target="I-D.ietf-avt-rtp-cnames">"Guidelines for Choosing RTP
Control Protocol (RTCP) Canonical Names (CNAMEs)"</xref> is
RECOMMENDED, since this addresses both concerns.</t>
</section>
</section>
<section title="RTP Extensions">
<t>There are a number of RTP extensions that could be very useful in the
RTC-WEB context. One set is related to conferencing, others are more
generic in nature.</t>
<section title="RTP Conferencing Extensions">
<t>RTP is inherently defined for group communications, originally
assuming the availability of IP multicast. In today's practice,
however, overlay-based conferencing dominates, typically using one or
a few so-called conference bridges or servers to connect endpoints in
a star or flat tree topology. Quite diverse conferencing topologies
can be created using the basic elements of RTP mixers and translators
as defined in RFC 3550.</t>
<t>An number of conferencing topologies are defined in <xref
target="RFC5117"></xref> out of the which the following ones are the
more common (and most likely in practice workable) ones:</t>
<t>1) RTP Translator (Relay) with Only Unicast Paths (RFC 5117,
section 3.3)</t>
<t>2) RTP Mixer with Only Unicast Paths (RFC 5117, section 3.4)</t>
<t>3) Point to Multipoint Using a Video Switching MCU (RFC 5117,
section 3.5)</t>
<t>4) Point to Multipoint Using Content Modifying MCUs (RFC 5117,
section 3.6)</t>
<t>RTP protocol extensions to be used with conferencing are included
because they are important in the context of centralized conferencing,
where one RTP Mixer (Conference Focus) receives a participants media
streams and distribute them to the other participants. These messages
are defined in <xref target="RFC4585">AVPF</xref> or in <xref
target="RFC5104">"Codec Control Messages in the RTP Audio-Visual
Profile with Feedback (AVPF)"</xref>.</t>
<section title="RTCP Feedback Message: Full Intra Request">
<t>The Full Intra Request is defined in Section 3.51 and 4.3.1 of
<xref target="RFC5104"></xref>. It is used to have the mixer request
from the currently distributed session participants a new Intra
picture. This is used when switching between sources to ensure that
the receivers can decode the video or other predicted media encoding
with long prediction chains. It is RECOMMENDED that this feedback
message is supported.</t>
</section>
<section title="RTCP Feedback Message: Picture Loss Indicator">
<t>The Picture Loss Indicator is defined in Section 6.3.1 of <xref
target="RFC4585"></xref>. It is used by a receiver to tell the
encoder that it lost the decoder context and would like to have it
repaired somehow. This is semantically different from the the Full
Intra Request above. It is RECOMMENDED that this feedback message is
supported.</t>
</section>
<section title="RTCP Feedback Message: Temporary Maximum Media Stream Bit Rate Request">
<t>This feedback message is defined in Section 3.5.4 and 4.2.1 in
<xref target="RFC5104"></xref>. This message and its notification
message is used by a media receiver, to inform the sending party
that there is a current limitation on the amount of bandwidth
available to this receiver. This can be for various reasons, and can
for example be used by an RTP mixer to limit the media sender being
forwarded by the mixer (without doing media transcoding) to fit the
bottlenecks existing towards the other session participants. It is
RECOMMENDED that this feedback message is supported.</t>
</section>
</section>
<section title="RTP Header Extensions">
<t>The <xref target="RFC3550">RTP specification</xref> provides a
capability to extend the RTP header with in-band data, but the format
and semantics of the extensions are poorly specified. Accordingly, if
header extensions are to be used, it is REQUIRED that they be
formatted and signalled according to the general mechanism of RTP
header extensions defined in <xref target="RFC5285"></xref>.</t>
<t>As noted in <xref target="RFC5285"></xref>, the requirement from
the RTP specification that header extensions are "designed so that the
header extension may be ignored" <xref target="RFC3550"></xref>
stands. To be specific, header extensions must only be used for data
that can safely be ignored by the recipient without affecting
interoperability, and must not be used when the presence of the
extension has changed the form or nature of the rest of the packet in
a way that is not compatible with the way the stream is signaled
(e.g., as defined by the payload type). Valid examples might include
metadata that is additional to the usual RTP information.</t>
<t>The RTP rapid synchronisation header extension is recommended, as
discussed in <xref target="rapid-sync"></xref>.</t>
<t>Currently no other header extensions are recommended. But we do
include a list of the available ones for consideration below:</t>
<t><list style="hanging">
<t hangText="Transmission Time offsets:"><xref
target="RFC5450"></xref> defines a format for including an RTP
timestamp offset of the actual transmission time of the RTP packet
in relation to capture/display timestamp present in the RTP
header. This can be used to improve jitter determination and
buffer management.</t>
<t hangText="Associating Time-Codes with RTP Streams:"><xref
target="RFC5484"></xref> defines how to associate SMPTE times
codes with the RTP streams.</t>
<t hangText="Audio Levels indications:">There is ongoing work to
define RTP header extensions for providing audio levels both from
a media sender to an mixer <xref
target="I-D.ietf-avtext-client-to-mixer-audio-level"></xref>, and
from a mixer to a receiver<xref
target="I-D.ietf-avtext-mixer-to-client-audio-level"></xref>.</t>
</list></t>
</section>
<section anchor="rapid-sync" title="Rapid Synchronisation Extensions">
<t>Many RTP sessions require synchronisation between audio, video, and
other content. This synchronisation is performed by receivers, using
information contained in RTCP SR packets, as described in the <xref
target="RFC3550">RTP specification</xref>. This basic mechanism can be
slow, however, so it is RECOMMENDED that the rapid RTP synchronisation
extensions described in <xref target="RFC6051"></xref> be implemented.
The rapid synchronisation extensions use the general RTP header
extension mechanism <xref target="RFC5285"></xref>, which requires
signalling, but are otherwise backwards compatible.</t>
</section>
</section>
<section title="Improving RTP Transport Robustness">
<t>There are some tools that can robustify RTP flows against Packet loss
and reduce the impact on media quality. However they all add extra bits
compared to a non-robustified stream. These extra bits needs to be
considered and the aggregate bit-rate needs to be rate controlled. Thus
robustification might require a lower base encoding quality but has the
potential to give that quality with fewer errors in it.</t>
<section title="RTP Retransmission">
<t>Support for RTP retransmission as defined by <xref
target="RFC4588">"RTP Retransmission Payload Format"</xref> is
RECOMMENDED.</t>
<t>The retransmission scheme in RTP allows flexible application of
retransmissions. Only selected missing packets can be requested by the
receiver. It also allows for the sender to prioritize between missing
packets based on senders knowledge about their content. Compared to
TCP, RTP retransmission also allows one to give up on a packet that
despite retransmission(s) still has not been received within a time
window.</t>
</section>
<section title="Forward Error Correction">
<t>Support of some type of FEC scheme to combat packet loss is
beneficial, but is application dependent and also claimed to be mostly
encumbered. For further discussion.</t>
</section>
</section>
<section title="RTP Rate Control and Media Adaptation">
<t>It is REQUIRED to have an RTP Rate Control mechanism using Media
adaptation to ensure that the generated RTP flows are network
friendly.</t>
<t>The biggest issue is that there are no standardized and ready to use
mechanism that can simply be included in RTC-WEB. Thus there will be
need for the IETF to produce such a specification. A potential starting
point for defining a solution is "RTP with TCP Friendly Rate
Control"<xref target="rtp-tfrc"></xref>.</t>
</section>
<section title="RTP Performance Monitoring">
<t>RTCP does contains a basic set of RTP flow monitoring points like
packet loss and jitter. There exist a number of extensions that could be
included in the set to be supported. However, in most cases which RTP
monitoring that is needed depends on the application, which makes it
difficult to select which to include when the set of applications is
very large.</t>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>This document makes no request of IANA.</t>
<t>Note to RFC Editor: this section may be removed on publication as an
RFC.</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>RTP and its various extensions each have their own security
considerations. These should be taken into account when considering the
security properties of the complete suite. We currently don't think this
suite creates any additional security issues or properties. The usage of
SRTP will provide protection or mitigation against all the fundamental
issues by offering confidentiality, integrity and partial source
authentication. We don't discuss the key-management aspect of SRTP in
this document, that needs to be done taking the RTC-WEB communication
model into account.</t>
<t>In the context of RTC-WEB the actual security properties required
from RTP are currently not fully understood. Until security goals and
requirements are specified it will be difficult to determine what
security features in addition to SRTP and a suitable key-management, if
any, that are needed.</t>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t></t>
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.3550"?>
<?rfc include='reference.RFC.2733'?>
<?rfc include='reference.RFC.2736'?>
<?rfc include='reference.RFC.3551'?>
<?rfc include='reference.RFC.3556'?>
<?rfc include='reference.RFC.3711'?>
<?rfc include='reference.RFC.4585'?>
<?rfc include='reference.RFC.4588'?>
<?rfc include='reference.RFC.4961'?>
<?rfc include='reference.RFC.5104'?>
<?rfc include='reference.RFC.5109'?>
<?rfc include='reference.RFC.5117'?>
<?rfc include='reference.RFC.5124'?>
<?rfc include='reference.RFC.5285'?>
<?rfc include='reference.RFC.5450'?>
<?rfc include='reference.RFC.5484'?>
<?rfc include='reference.RFC.5506'?>
<?rfc include='reference.RFC.5761'?>
<?rfc include='reference.RFC.5968'?>
<?rfc include='reference.RFC.6051'?>
<?rfc include='reference.I-D.draft-ietf-avt-rtp-cnames-05'?>
<?rfc include='reference.I-D.draft-ietf-avtext-mixer-to-client-audio-level-00'?>
<?rfc include='reference.I-D.draft-ietf-avtext-client-to-mixer-audio-level-00'?>
</references>
<references title="Informative References">
<reference anchor="rtp-tfrc">
<front>
<title>RTP with TCP Friendly Rate Control
(draft-gharai-avtcore-rtp-tfrc-00)</title>
<author fullname="Ladan Gharai" initials="L." surname="Gharai">
<organization></organization>
</author>
<date day="7" month="March" year="2011" />
</front>
</reference>
<?rfc ?>
<?rfc include='reference.RFC.2198'?>
</references>
</back>
</rfc>| PAFTECH AB 2003-2026 | 2026-04-24 01:06:38 |