Re: [rtcweb] data-over-RTP vs data-over-datagram (Re: non-media data)

Magnus Westerlund <magnus.westerlund@ericsson.com> Fri, 15 April 2011 14:28 UTC

Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: rtcweb@ietfc.amsl.com
Delivered-To: rtcweb@ietfc.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfc.amsl.com (Postfix) with ESMTP id A291AE0670 for <rtcweb@ietfc.amsl.com>; Fri, 15 Apr 2011 07:28:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.554
X-Spam-Level:
X-Spam-Status: No, score=-106.554 tagged_above=-999 required=5 tests=[AWL=0.045, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([208.66.40.236]) by localhost (ietfc.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZGErpRIyu6gA for <rtcweb@ietfc.amsl.com>; Fri, 15 Apr 2011 07:28:41 -0700 (PDT)
Received: from mailgw9.se.ericsson.net (mailgw9.se.ericsson.net [193.180.251.57]) by ietfc.amsl.com (Postfix) with ESMTP id C279DE0745 for <rtcweb@ietf.org>; Fri, 15 Apr 2011 07:28:40 -0700 (PDT)
X-AuditID: c1b4fb39-b7c6dae0000023f2-45-4da85617e997
Received: from esessmw0191.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw9.se.ericsson.net (Symantec Mail Security) with SMTP id 11.C6.09202.71658AD4; Fri, 15 Apr 2011 16:28:39 +0200 (CEST)
Received: from [147.214.183.89] (153.88.115.8) by esessmw0191.eemea.ericsson.se (153.88.115.85) with Microsoft SMTP Server id 8.3.137.0; Fri, 15 Apr 2011 16:28:39 +0200
Message-ID: <4DA85617.1090506@ericsson.com>
Date: Fri, 15 Apr 2011 16:28:39 +0200
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9
MIME-Version: 1.0
To: Harald Alvestrand <harald@alvestrand.no>
References: <4D9EF7D3.1040806@alvestrand.no> <F4467DDA-816F-4DDD-B66F-8A48F9A0A16C@apple.com> <A444A0F8084434499206E78C106220CA0875E32DED@MCHP058A.global-ad.net> <1D64F821-8D2B-4983-9989-F3EE076583E3@phonefromhere.com> <BBF498F2D030E84AB1179E24D1AC41D614348B47DF@ESESSCMS0362.eemea.ericsson.se> <BANLkTi==JtrJ_fmtYm7=UKSpp+56WdH-Hw@mail.gmail.com> <4DA7F6E3.6010100@ericsson.com> <4DA84449.8090904@alvestrand.no>
In-Reply-To: <4DA84449.8090904@alvestrand.no>
X-Enigmail-Version: 1.1.1
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: AAAAAA==
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] data-over-RTP vs data-over-datagram (Re: non-media data)
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Apr 2011 14:28:43 -0000

Haralad and other interested

Snipped out more parts as I added quite a lot around possible
alternatives for you to think about. See below

Harald Alvestrand skrev 2011-04-15 15:12:
>> I promised to return to why I think TCP over RTP or more general,
>> generic data over RTP isn't the most suitable model.
>> - RTP is a protocol built towards real-time media. Yes the definition of
>> media can be pretty loose here. But carrying the individual datagrams of
>> a TCP connection over RTP is plainly stupid, when TCP over UDP will get
>> you all the desired functionality anyway with less overhead.

> RTP is, in the extreme view, a ~12-byte header and a  set of handling 
> rules. We should look at what it is, not so much what it was originally 
> thought to be designed for (a component in a framework for multicast 
> distribution of unidirectional media channels).

Well, the handling rules include RTCP and an intention to handle a
number of different topologies with multi-party handling. There are also
additional signalling issues, like how to configure the RTCP bandwidth
value, which features to use and all these things. Things you may not
need for your data transport. If you need them, you anyway should define
an RTP payload format for your data format.

And to be frank, the transport and RAI ADs has been very hesitant to
allow any RTP payload format that is defined for just being a bit pipe
over RTP. The two reasons for this has been Application level framing
principle and the lack of congestion control for RTP.

>> - RTP requires RTP payload formats for anything it carries. That is to
>> ensure that the application level framing ideas are as well captured for
>> a particular media encoding as possible. That optimization is not
>> possible for general data.

> I think "general data" is a red herring. We can define a few different 
> data-carrying "modes" that have different properties; if some of these 
> are useful, I think it makes sense to define them.

I agree that different transport protocol provides different properties.
And that you should chose the one most appropriate. However, one usually
has to compromise on some aspects, either by needing to do specific
solution for ones data or accept some other potential limitation. On a
high level comparisons between our transport protocols I think can be
summarized like this:

TCP: unicast only, congestion controlled reliable byte stream

SCTP: unicast, multihoming, congestion controlled, reliable and
unreliable, message oriented.

DCCP: unicast, unreliable, congestion controlled sequence numbered datagram

RTP/UDP: unicast and multicast, unreliable, RTP payload of single MTU
size, medium time scale transport feedback.

UDP: unicast and multicast, unreliable, datagram

>> - If one can't do general optimization one goes with more general
>> transport solutions, thus why not use a more general data transport for
>> the general data?

> Pushing stuff towards a "more general data transport" requires one of 
> two things:
> a) having an existing more general data transport that fulfils our 
> requirements
> b) defining a new more general data transport that fulfils our requirements
> The second seems tough. The first ..... what's your preferred candidate?

Actually the one I think is easiest from a specification point of view
and that does provide a reasonable service for unreliable datagrams are:

DTLS/DCCP/UDP

That would be the following references:
https://datatracker.ietf.org/doc/rfc4340/ (Base Spec)
https://datatracker.ietf.org/doc/rfc4341/ (TCP-Like CC)
https://datatracker.ietf.org/doc/rfc4342/ (TFRC CC)
https://datatracker.ietf.org/doc/rfc5238/ (DTLS for DCCP)
https://datatracker.ietf.org/doc/draft-ietf-dccp-udpencap/ (DCCP over UDP)

My main concern is the maturity of available implementations of DCCP.
Otherwise it provides congestion control and can actually choose which
congestion control algorithms we want supported, TCP-like or TFRC. It
also have some additional features. One is that we get a second port
space providing additional multiplexing points.

Please note that this is just a friendly suggestion. At least check it
out, and possible post some comments why it would be unsuitable.

>> - RTP and RTCP monitoring is also designed with more continous medias in
>> mind. Here we don't know how much such properties will be true. Also the
>> congestion controls available might actually have not the most suitable
>> properties for certain type of data.

> It's not clear to me that there *are* congestion controls available 
> (other than media-specific ones).
> Which ones are you thinking of?

The one that is full defined is to run RTP over DCCP.
https://datatracker.ietf.org/doc/rfc5762/

I guess the biggest issue is the lack of experience with this and
especially how you interface the DCCP stack to work well between media
encoding, RTP stack and the DCCP congestion control.

The alternative, not standardized yet but closest available for RTP over
UDP is TFRC for RTP.
https://datatracker.ietf.org/doc/draft-gharai-avtcore-rtp-tfrc/

That was in reasonable shape prior to its abandonment due to lack of
funding from the ones driving it.


> Now, the flipside: What does RTP *have* that we will otherwise need
> to define? From your earlier list:
> 
> - Congestion Controlled: eh... maybe not. 
> - Confidentiality and  Integrity Protected - done, we've got SRTP.
> - Providing consent to receive data prior to allow transmission of
>   substantial amounts of data - done, we have ICE,
>   and need it for media too.
> - Some type of source authentication to prevent man in the middles
>    - done, we have SRTP
> 
> So apart from congestion control, it seems that RTP's 12-byte header
> actually gives us a lot.

Well, the security parts can be provided by ICE and DTLS over UDP also.
we still are short the congestion control for such a thing plus all
these things that the UDP guidelines (RFC5405) discuss. Using RTP over
UDP does drag all the RTP baggage into something that may not needed it,
but it will provide some parts of what you need. If a particular data
format needs RTP functionality, it should define its own RTP payload
format anyway.

Cheers

Magnus Westerlund

----------------------------------------------------------------------
Multimedia Technologies, Ericsson Research EAB/TVM
----------------------------------------------------------------------
Ericsson AB                | Phone  +46 10 7148287
Färögatan 6                | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden| mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------