Re: [rtcweb] PseudoTCP implementation (Re: realiable data service)

Justin Uberti <juberti@google.com> Wed, 20 July 2011 15:37 UTC

Return-Path: <juberti@google.com>
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 89D9B21F8797 for <rtcweb@ietfa.amsl.com>; Wed, 20 Jul 2011 08:37:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.143
X-Spam-Level:
X-Spam-Status: No, score=-105.143 tagged_above=-999 required=5 tests=[AWL=-0.833, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, SARE_HTML_USL_OBFU=1.666, 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 WAVu-Ke0MY9y for <rtcweb@ietfa.amsl.com>; Wed, 20 Jul 2011 08:37:36 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.67]) by ietfa.amsl.com (Postfix) with ESMTP id A414821F8757 for <rtcweb@ietf.org>; Wed, 20 Jul 2011 08:37:35 -0700 (PDT)
Received: from kpbe20.cbf.corp.google.com (kpbe20.cbf.corp.google.com [172.25.105.84]) by smtp-out.google.com with ESMTP id p6KFbYSh016909 for <rtcweb@ietf.org>; Wed, 20 Jul 2011 08:37:34 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1311176254; bh=nbKtaSPLQIDedP+h6EcSNvWqnSU=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=BEmE3tsExD2ZM2YBPsNxCGpYb5isKAG/5KN7feJbbCDMcwYY4UDrYSgBzDAedFE2F F4NIfbOQjLigIbbLZzkkA==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=dkim-signature:mime-version:in-reply-to:references:from:date: message-id:subject:to:cc:content-type:x-system-of-record; b=EdW2IetpBMm318pK77IM3GifjHSx107f7iJ1IRejqWuTxkwsmrfIzOc/2z35eNR52 kdD4Tp1RoJMdFiJKMOLQQ==
Received: from iyb14 (iyb14.prod.google.com [10.241.49.78]) by kpbe20.cbf.corp.google.com with ESMTP id p6KFbKMB011565 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for <rtcweb@ietf.org>; Wed, 20 Jul 2011 08:37:32 -0700
Received: by iyb14 with SMTP id 14so367520iyb.0 for <rtcweb@ietf.org>; Wed, 20 Jul 2011 08:37:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=cCgNzdsMLIISjtul4LQoGwvh7q2T/1uweMqWVdrt2HM=; b=FkgRu5KNo5+LhH6D/6Db+qIEwwlyLYLyBZB7pQJi5NPHegA3dCAVI7MD1jvWL6K0Ly fsPIIVLYU74G8UQ/cRbg==
Received: by 10.231.73.138 with SMTP id q10mr8269946ibj.13.1311176252241; Wed, 20 Jul 2011 08:37:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.231.35.4 with HTTP; Wed, 20 Jul 2011 08:37:12 -0700 (PDT)
In-Reply-To: <4E26D4D6.3020602@alvestrand.no>
References: <4E0832FE.7010401@ericsson.com> <4E1DC07B.7000807@ericsson.com> <D1BE71E1-4F3B-474E-8A28-AA53CE6B684E@cisco.com> <CA+9kkMCJiE+bfEqZzOBo46aXVH-H2sehHh6UJv3tVdJKGjaokQ@mail.gmail.com> <49CD37FC-7951-45A0-84C4-A443F8B151F3@cisco.com> <4E24AF7C.4080604@jesup.org> <CB57E808-FB8D-41D7-90C6-0EA1051629A8@cisco.com> <4E26D4D6.3020602@alvestrand.no>
From: Justin Uberti <juberti@google.com>
Date: Wed, 20 Jul 2011 11:37:12 -0400
Message-ID: <CAOJ7v-3RLhaxOWyNJ6p4nE7QyFxOCAeM7xoENPvNhYhoDmyKOw@mail.gmail.com>
To: Harald Alvestrand <harald@alvestrand.no>
Content-Type: multipart/alternative; boundary="000e0cd56f26c0b79004a8820279"
X-System-Of-Record: true
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] PseudoTCP implementation (Re: 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: Wed, 20 Jul 2011 15:37:40 -0000

On Wed, Jul 20, 2011 at 9:15 AM, Harald Alvestrand <harald@alvestrand.no>wrote:

> On 07/20/11 03:13, Cullen Jennings wrote:
>
>> On Jul 18, 2011, at 15:11 , Randell Jesup wrote:
>>
>>  All that said - yes, there are complexity issues to consider, which was
>>> why I was suggesting leveraging
>>> an existing tunneled protocol like SCTP or even TCP-over-UDP.
>>>
>> I agree with bunch of what you are saying but the previous several times
>> I've seen the use SCTP over UDP conversation, it usually ends about the
>> point the we ask for a user land implementation. Whatever we do more or less
>> has to be user land or already exist in the OS that people run browsers on.
>>
>> If someone has a user land implementation of SCTP or TCP, I imagine that
>> might change the outcome a bit from previous times. I have not looked at the
>> TCP over UPD library Justin mentioned but, at casual glance, I noticed is
>> around 400 lines of code which is very small, which is cool. But given the
>> lines of code in say the BSD TCP stack, it does make me wonder what's
>> missing. That said, I don't think we need something with the perforce of the
>> BSD TCP stack as long as what is there is TCP friendly and robust.
>>
> I believe this is the current URL:
>
> http://code.google.com/p/**libjingle/source/browse/trunk/**
> talk/session/tunnel/**pseudotcpchannel.cc<http://code.google.com/p/libjingle/source/browse/trunk/talk/session/tunnel/pseudotcpchannel.cc>(500 or so lines).
>
> The real protocol implementation is here:
> http://code.google.com/p/**libjingle/source/browse/trunk/**
> talk/p2p/base/pseudotcp.cc<http://code.google.com/p/libjingle/source/browse/trunk/talk/p2p/base/pseudotcp.cc>
> which is another 1000 lines (not counting the various .h files).
>
> We're not THAT good at writing compact code :-)
>

Yes, I was going to send a similar email. There are some
deficiencies/optimizations for the fact it runs over ICE-UDP - doesn't do
path MTU discovery, no checksum, no OOB data - but it is based on TCP and
implements slow start and other congestion avoidance mechanisms, and is
actively used by a number of applications where reliable transfer is
important, such as file transfer and remote desktop applications.


>
>>
>>
>>
>> ______________________________**_________________
>> rtcweb mailing list
>> rtcweb@ietf.org
>> https://www.ietf.org/mailman/**listinfo/rtcweb<https://www.ietf.org/mailman/listinfo/rtcweb>
>>
>>
> ______________________________**_________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/**listinfo/rtcweb<https://www.ietf.org/mailman/listinfo/rtcweb>
>