Re: [rtcweb] realiable data service

Randell Jesup <randell1@jesup.org> Mon, 18 July 2011 14:35 UTC

Return-Path: <randell1@jesup.org>
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 CA0B521F8C6C for <rtcweb@ietfa.amsl.com>; Mon, 18 Jul 2011 07:35:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.479
X-Spam-Level:
X-Spam-Status: No, score=-2.479 tagged_above=-999 required=5 tests=[AWL=0.120, BAYES_00=-2.599]
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 FABFgByDpsFp for <rtcweb@ietfa.amsl.com>; Mon, 18 Jul 2011 07:35:28 -0700 (PDT)
Received: from arthur.webserversystems.com (arthur.webserversystems.com [174.132.191.98]) by ietfa.amsl.com (Postfix) with ESMTP id 47AD121F8C6B for <rtcweb@ietf.org>; Mon, 18 Jul 2011 07:35:28 -0700 (PDT)
Received: from pool-98-111-140-38.phlapa.fios.verizon.net ([98.111.140.38] helo=[192.168.1.12]) by arthur.webserversystems.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from <randell1@jesup.org>) id 1Qiout-0008Lt-AB for rtcweb@ietf.org; Mon, 18 Jul 2011 09:35:27 -0500
Message-ID: <4E24447B.5010208@jesup.org>
Date: Mon, 18 Jul 2011 10:34:35 -0400
From: Randell Jesup <randell1@jesup.org>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <4E0832FE.7010401@ericsson.com> <4E1DC07B.7000807@ericsson.com> <D1BE71E1-4F3B-474E-8A28-AA53CE6B684E@cisco.com> <F43A8952-0CF3-4683-923F-DF1ED0B4344B@phonefromhere.com> <4E243B77.1000900@ericsson.com>
In-Reply-To: <4E243B77.1000900@ericsson.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - arthur.webserversystems.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - jesup.org
X-Source:
X-Source-Args:
X-Source-Dir:
Subject: Re: [rtcweb] realiable data service
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: Mon, 18 Jul 2011 14:35:28 -0000

On 7/18/2011 9:56 AM, Magnus Westerlund wrote:
> On 2011-07-15 19:29, Tim Panton wrote:
>> I don't think it is very hard to implement, we could take RFC 5456's
>> sequencing and retry mechanism for example. or indeed Plan9's IL .
> I would warn about thinking this is easy. It is easy to get something
> that works on sunny days, it is hard to build something that is secure,
> efficient, robust and fair.

Agreed, absolutely - which is why I don't want 100 bad designs (let 
alone implementations)
in Javascript.


> I would like to point out that a reliable protocol do need a number of
> functions. If those are achieve from a lower layer or need to be
> implemented in this protocol is a choice. However, functionalities such as:
>
> - Congestion Control
> - Flow Control
> - Retransmission
> - RTT estimation
> - Buffer handling
> - Parameter and functionality negotiation
>
> Are likely all need for a safe and stable and future safe protocol.
>
> There are good reasons for choosing something there is experience in
> that it works.

Agreed also.  There are a few options, one of this is:
1) Encapsulated TCP-over-UDP, where the UDP channel is set up by the same
     mechanisms we use to set up the RTP channels, such as 
http://code.google.com/p/udptunnel/
     This is a big advantage in that normally devices behind NATs can't 
easily set up a direct TCP
     connection, and we can leverage the ability to set up p2p UDP 
channels to get it.

     The UDP channel could participate in the proposed shared bandwidth 
handling/
     congestion control, which is an advantage over a separate TCP 
channel.  The downside is that
     TCP's AIMD may cause interactions with the underlying bandwidth 
handling, so it may need
     to be excluded - some analysis is needed, once we know what we're 
doing on congestion
     control for the UDP channels.

     TCP's time characteristics are very well understood, though not 
optimal.

     The MTU would be slightly reduced - shouldn't be a problem.

It's not a datagram service, which is a minor downside, which offers the 
second option:
2) SCTP-over-UDP.  This is datagram-oriented and provides reliable delivery.
      It supports ECN and congestion control.

      One nice thing is that SCTP allows for unreliable delivery but 
with sequencing, or reliable
      delivery without in-sequence delivery, dependent on the 
application needs.  This can help
      the application optimize the realtime aspects of the reliable channel.

-- 
Randell Jesup
randell-ietf@jesup.org