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

Harald Alvestrand <harald@alvestrand.no> Wed, 27 April 2011 12:18 UTC

Return-Path: <harald@alvestrand.no>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E7A34E069A for <rtcweb@ietfa.amsl.com>; Wed, 27 Apr 2011 05:18:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level:
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ISzTIHcbaoHX for <rtcweb@ietfa.amsl.com>; Wed, 27 Apr 2011 05:18:49 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id AA90FE06A3 for <rtcweb@ietf.org>; Wed, 27 Apr 2011 05:18:48 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id EC26739E0BC; Wed, 27 Apr 2011 14:18:02 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fbiUVXjcHxVw; Wed, 27 Apr 2011 14:17:58 +0200 (CEST)
Received: from hta-dell.lul.corp.google.com (62-20-124-50.customer.telia.com [62.20.124.50]) by eikenes.alvestrand.no (Postfix) with ESMTPS id 7B96939E08B; Wed, 27 Apr 2011 14:17:58 +0200 (CEST)
Message-ID: <4DB809A3.9090102@alvestrand.no>
Date: Wed, 27 Apr 2011 14:18:43 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8
MIME-Version: 1.0
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
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> <4DA85617.1090506@ericsson.com>
In-Reply-To: <4DA85617.1090506@ericsson.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
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: Wed, 27 Apr 2011 12:18:59 -0000

Returning to this thread after a few weeks.... I'm still being contrary 
to make sure we have all the issues explicit where they need to be... 
and I do hope that some of the people who actually want to send data 
(instead of us types who speculate about what you possibly might want) 
can speak up!

On 04/15/11 16:28, Magnus Westerlund wrote:
> 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.
If these questions have fixed answers in a specific scenario (like 
point-to-point), they can be handled by specifying a set of reasonable 
values for that scenario.
> 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.
I do wonder about the ALF principle. In some ways, it seems reasonable 
under ALF that one should be able to use a framing mechanism that 
provides some of what we want without necessarily worrying that it 
provides more than what we want...

The congestion control is definitely an issue. With RTCWEB deployment 
likely to increase the amount of media streams encountering congestion 
significantly, I think we have to address this in a way that's 
applicable to RTP in general - but that's an AVTCORE matter, not an 
RTCWEB matter, I think.
>>> - 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
Also: Implemented in kernels, allowed through firewalls, 
double-NAT-traversal fails frequently.
> SCTP: unicast, multihoming, congestion controlled, reliable and
> unreliable, message oriented.
Also: Not implemented in kernels, firewalls know nothing of it (unless 
UDP encapsulated). NAT boxes know nothing about it (so UDP encapsulation 
seems a must).
> DCCP: unicast, unreliable, congestion controlled sequence numbered datagram
The "also" list here is the same as for SCTP, I think.
> RTP/UDP: unicast and multicast, unreliable, RTP payload of single MTU
> size, medium time scale transport feedback.
>
> UDP: unicast and multicast, unreliable, datagram
Properties of traversal of firewalls and NAT boxes are well known. 
Kernel implemented.
>>> - 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.
In a design point spectrum where Ian Hixie's 44-byte datagram header, 
this proposal and a "data-over-RTP" proposal are the 3 candidates, we 
should have enough design points that we can start discussing the 
criteria we evaluate them against (often a good thing).
>>> - 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.
If we buy DCCP anyway, this is certainly worth investigating.
> 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.
Does anyone want to pick it up and see what's missing?
>
>> 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
> ----------------------------------------------------------------------
>