One document matched: draft-cbran-rtcweb-data-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="std" docName="draft-cbran-rtcweb-data-00"
     ipr="noDerivativesTrust200902">
  <front>
    <title abbrev="Abbreviated-Title">RTC-Web Non-Media Data Transport
    Requirements</title>

    <author fullname="Cary Bran" initials="C." surname="Bran">
      <organization>Cisco</organization>

      <address>
        <postal>
          <street>170 West Tasman Drive</street>

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>USA</country>
        </postal>

        <phone>+1 206 256-3502</phone>

        <email>cbran@cisco.com</email>
      </address>
    </author>

    <author fullname="Cullen Jennings" initials="C." surname="Jennings">
      <organization>Cisco</organization>

      <address>
        <postal>
          <street>170 West Tasman Drive</street>

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>USA</country>
        </postal>

        <phone>+1 408 421-9990</phone>

        <email>fluffy@cisco.com</email>
      </address>
    </author>

    <date day="4" month="July" year="2011" />

    <abstract>
      <t>This document outlines a protocol and requirements for RTC-Web client
      application to transmit real-time, non-media data.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>This specification will focus on the transport of real-time non-media
      data requirements for RTC-Web client applications. An example of
      real-time non-media data, would be a characters screen position within
      an multiplayer HTML5 video game.</t>

      <t>The non-media data transport requirements fit into a series of
      specifications have been created to address RTC-Web negotiation and
      signaling protocols, security requirements, media transmission and use
      cases. More information on the RTC-Web can be found here:</t>

      <t>[TODO put links to supporting drafts here]</t>
    </section>

    <section title="Terminology">
      <t>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 <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </section>

    <section title="Non-Media Data Transport Requirements">
      <t>The RTC-WEB will enable for rich voice and video communications from
      client applications, such as a web browser. One of the natural
      extensions of the RTC-WEB and the work emerging from the HTML5 community
      is video games. Video games have a similar stringent real-time
      requirement for exchanging non-media data types such as a player’s
      screen position.</t>

      <t>The question of how best to handle non-media data types has been
      raised. There have been proposals to address this problem. Common to all
      proposals is how the data transport session is set up, using ICE <xref
      target="RFC5245"></xref> in a similar manner to that of RTP <xref
      target="RFC3550"></xref>. The proposals vary from once the session is
      set up; one proposal is just to use a thin shim on top of UDP or DTLS to
      de-multiplex the packets from other packets such as RTP on the same
      connection. Another proposal is DTLS over DCCP over UDP with some
      appropriate congestion control scheme chosen for DCCP. Lastly there has
      been a proposal to define a data codec to carry the data in RTP. </t>

      <t>Of all the solutions proposed to date there have been issues with
      implementation maturity and availability, congestion control, high
      overhead and NAT traversal. The solution outlined within this
      specification proposes a lightweight, simple to implement approach for
      RTC-Web client applications to transmit real-time non-media data.</t>
    </section>

    <section title="Solution Overview">
      <t>Each application datagram is send with a single byte header to help
      with de-multiplexing issues. The combined datagraph and header are sent
      either over UDP or DTLS to the receiver. The receiver sends an
      acknowledgment for every packet it receives. The sender computes a
      packet loss rate based upon the number of packets sent, and number of
      acknowledgements it has received inside of given time window. The
      browser, or other RTC-Web client application implementation, then
      enforces a maximum bandwidth usage using the TFRC-SP<xref
      target="RFC4828"></xref>. </t>

      <t>Practically this can be implemented with a simple lookup table such
      as Table 1 in <xref target="RFC4828"></xref> that limits the data rate.
      A JavaScript application running in the browser can implement more
      complex fragmentation, reliability, and congestion control algorithms,
      but it is the browser, or other RTC-Web client application, that is
      responsible for enforcing the basic congestion safety with the TFRC-SP
      algorithm.</t>
    </section>

    <section title="Specification">
      <t>When sending a datagram, a single byte with the value 62 MUST be
      prepended to the data to be sent. The data is then sent over the UDP or
      a DTLS flow that has been set up by ICE. The receiver MUST send an
      acknowledgement for each packets it receives. This acknowledgment is a
      UDP or DTLS datagram containing a single byte with the value of 63. The
      packet loss rate is computed by comparing the number of packet sent to
      the of acknowledgements received within the past 2 seconds. The packet
      loss rate and amount of data sent is used with the TFRC-SP algorithm to
      compute a maximum safe bandwidth. The sender MUST not exceed this
      bandwidth. If an application requests the browser, or other RTC-Web
      client application, to send a packet that would exceed the bandwidth,
      the RTC-Web client application MUST signal an error to the requesting
      application and drop the packet.</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>Because there are a number of security issues, considerations and
      requirements for RTC-WEB client applications there is a draft that
      specifically addresses the RTC-WEB application security considerations.
      This draft defers it's security considerations and requirements to the
      security considerations for RTC-Web draft <xref
      target="I-D.ekr-security-considerations-for-rtc-web"></xref>.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>You too can see your name here, just send us comments.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?>

      <?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml'?>

      <?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.4828.xml'?>

      <?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.5245.xml'?>

      <reference anchor="I-D.ekr-security-considerations-for-rtc-web">
        <front>
          <title abbrev="RTC-Web Security">Security Considerations for
          RTC-Web</title>

          <author fullname="Eric Rescorla" initials="E.K." surname="Rescorla">
            <organization>RTFM, Inc.</organization>

            <address>
              <postal>
                <street>2064 Edgewood Drive</street>

                <city>Palo Alto</city>

                <region>CA</region>

                <code>94303</code>

                <country>USA</country>
              </postal>

              <phone>+1 650 678 2350</phone>

              <email>ekr@rtfm.com</email>
            </address>
          </author>

          <date day="30" month="May" year="2011" />

          <area>RAI</area>

          <workgroup>RTC-Web</workgroup>

          <abstract>
            <t>The Real-Time Communications on the Web (RTC-Web) working group
            is tasked with standardizing protocols for real-time
            communications between Web browsers. The two major use cases for
            RTC-Web technology are real-time audio and/or video calls and
            direct data transfer. Unlike most conventional real-time systems
            (e.g., SIP-based soft phones) RTC-Web communications are directly
            controlled by some Web server, which poses new security
            challenges. For instance, a Web browser might expose a JavaScript
            API which allows a server to place a video call. Unrestricted
            access to such an API would allow any site which a user visited to
            "bug" a user's computer, capturing any activity which passed in
            front of their camera. This document defines the RTC-Web threat
            model and defines an architecture which provides security within
            that threat model.</t>
          </abstract>

          <note title="Legal">
            <t>THIS DOCUMENT AND THE INFORMATION CONTAINED THEREIN ARE
            PROVIDED ON AN “AS IS” BASIS AND THE CONTRIBUTOR, THE
            ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE
            INTERNET SOCIETY, THE IETF TRUST, AND THE INTERNET ENGINEERING
            TASK FORCE, DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
            BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
            THEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
            MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.</t>
          </note>
        </front>
      </reference>
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-23 13:11:19