Re: [iccrg] [tsvwg] New Version Notification for draft-welzl-irtf-iccrg-tcp-in-udp-00.txt

Tom Herbert <tom@herbertland.com> Fri, 25 March 2016 18:51 UTC

Return-Path: <tom@herbertland.com>
X-Original-To: iccrg@ietfa.amsl.com
Delivered-To: iccrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D1FB512D0BE for <iccrg@ietfa.amsl.com>; Fri, 25 Mar 2016 11:51:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3ZK8z8w0IQXH for <iccrg@ietfa.amsl.com>; Fri, 25 Mar 2016 11:51:56 -0700 (PDT)
Received: from mail-io0-x22b.google.com (mail-io0-x22b.google.com [IPv6:2607:f8b0:4001:c06::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A7FF712D0B3 for <iccrg@irtf.org>; Fri, 25 Mar 2016 11:51:56 -0700 (PDT)
Received: by mail-io0-x22b.google.com with SMTP id 124so120681286iov.3 for <iccrg@irtf.org>; Fri, 25 Mar 2016 11:51:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-transfer-encoding; bh=bCtq96LrgZSflCQuAD4TRP+vICaD+Irt5TSOJsrAP3o=; b=oEEK900vWkt6k33X3WVWg+cfstA/oBix++Es8UTk/L8QC451GaMUYxlne/uPOrZw0G 7fcsFatmp4z7Ev4duUbKzpYzkY0YeFdFWIISyYoMKmYdsMhPrQV7zU9vvVN6LCUlN/8g /dPRphQ1dyr3EMhtnWn5ZZxw/akMy1aG2Ag7ad7m2VfpagkRbC7D4JPu4I8CHh72W8x0 GSjcRqoCaPK4RP6xIDveDf3XbW0tmyXhEP25MILevg2AiVmj/hkwg7On6qqj4vJb+ov0 hBOmZiJ2y+zaQbORVsoCTCaZmvqVQwoBCdO+btNA89Q0KDfIgUY8U7d8wGCCk/d+2ykA akGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-transfer-encoding; bh=bCtq96LrgZSflCQuAD4TRP+vICaD+Irt5TSOJsrAP3o=; b=XcUOEtNH6xHRlaWHyh+K6vyZlAsckTNvG7Ej1k2jyJVOioEpF8ZkyAlAU7O1WhDrcV kHgYzwLKdc5Sycd475UHRY155s2dBNcWWndJnJjFgzS7Jtq5Aq5QnGa2DuR8IAd7HCeS 1XAtFQqhHjgwtDAHH0gTL9iWE12oAe84n6Z8BpEmgC4Pm/wuvNelUxwxoPUT+HK111qH sBCnCVkuDexqm1A6W3K+2SCDhO3MQLtg0BcAA3zS+xyJapLtOCY1BZJcpEADP30DkjbA +m3nhpZzu8W3BSfVXAyjwVq91jevno02ZK8kyz9b+Kbni2yjQ8TmxPpCm2MEiKwJRr32 js7w==
X-Gm-Message-State: AD7BkJLUZOc0OX0m94mQbZoRQZUpHNkK6myDw2b7aOOCWD2qSVfeT04t9Mw1jiewVG3hijnoirCA0kzDTLt1JA==
MIME-Version: 1.0
X-Received: by 10.107.10.103 with SMTP id u100mr15852770ioi.50.1458931915958; Fri, 25 Mar 2016 11:51:55 -0700 (PDT)
Received: by 10.107.130.198 with HTTP; Fri, 25 Mar 2016 11:51:55 -0700 (PDT)
In-Reply-To: <654BAAE2-7E75-417C-9A36-C5547015DAC0@ifi.uio.no>
References: <E5DC1ACF-3403-4112-9DB8-9AAE4E5B7428@ifi.uio.no> <28FFF903-C446-46A1-AA9E-4BD2566F1088@ifi.uio.no> <CALx6S37-QdSaGTB9kXyaqvG36GPzd9e2A6jqG=qByrj2U1_rSA@mail.gmail.com> <C43CBFF8-6D87-4B08-B80E-C20736AB8529@ifi.uio.no> <CALx6S340EQvRrrnhpJST-jDcx9RC4Auo8a6SUWw-AdqUc+VjXQ@mail.gmail.com> <654BAAE2-7E75-417C-9A36-C5547015DAC0@ifi.uio.no>
Date: Fri, 25 Mar 2016 11:51:55 -0700
Message-ID: <CALx6S34aA-=0xxWg2t2yLz48-y6U6OcnUP-5HoTH51AEMR9t-w@mail.gmail.com>
From: Tom Herbert <tom@herbertland.com>
To: Michael Welzl <michawe@ifi.uio.no>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/iccrg/iyFoIvl_rPMqOMMTgdVY37hNzqM>
X-Mailman-Approved-At: Fri, 25 Mar 2016 11:52:53 -0700
Cc: iccrg@irtf.org
Subject: Re: [iccrg] [tsvwg] New Version Notification for draft-welzl-irtf-iccrg-tcp-in-udp-00.txt
X-BeenThere: iccrg@irtf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Discussions of Internet Congestion Control Research Group \(ICCRG\)" <iccrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/iccrg>, <mailto:iccrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/iccrg/>
List-Post: <mailto:iccrg@irtf.org>
List-Help: <mailto:iccrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/iccrg>, <mailto:iccrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Mar 2016 18:51:59 -0000

On Fri, Mar 25, 2016 at 11:22 AM, Michael Welzl <michawe@ifi.uio.no> wrote:
>
>> On 25. mar. 2016, at 18.58, Tom Herbert <tom@herbertland.com> wrote:
>>
>> On Fri, Mar 25, 2016 at 10:29 AM, Michael Welzl <michawe@ifi.uio.no> wrote:
>>> Hi!
>>>
>>>
>>>> On 25. mar. 2016, at 18.00, Tom Herbert <tom@herbertland.com> wrote:
>>>>
>>>> Hi Michael,
>>>>
>>>> For encapsulation format I suggest that you look at GUE
>>>> (https://tools.ietf.org/html/draft-ietf-nvo3-gue-02). GUE can
>>>> encapsulate TCP in UDP and inserts a GUE header that allows extra meta
>>>> data.  The connection ID could be moved to the GUE header so that no
>>>> special modification of the encapsulated TCP header would be needed.
>>>> The connection ID would be a new field in the GUE header. There is
>>>> already a session ID option defined, but that is 96 bits which is
>>>> probably overkill.
>>>
>>> I have, as I wrote this draft. It struck me as something that isn’t really necessary just for the purpose of what TCP-in-UDP is trying to achieve. In particular, other than GUE (if I got it correctly), TCP-in-UDP strictly assumes end-to-end operation, and requires changing the sender-side TCP code too because the main point is to combine congestion controls. This makes it possible to do whatever we want with the encapsulated TCP header.
>>>
>> Then you are redefining TCP.
>
> Yes - that’s the whole point
>
>
>> You can do that, but this substantially
>> reduces the possibility of deployment. In real networks we need
>> tcpdump, netflow, diagnostics, other debugging tools. Encapsulation
>> works best when it does not require changes to the encapsulated
>> packet. Besides that if your willing to change TCP for this use, why
>> not just go a little farther and use SCTP/UDP which I believe already
>> has a concept of shared congestion window amongst sub-flows?
>
> You’re completely right. In fact I expect the performance of this TCP coupling to be quite similar to SCTP/UDP with multistreaming. The difference is in how this is implemented: it can, for example, be plugged underneath existing applications that use TCP, and it’s also a way to play with new TCP options that middleboxes wouldn’t like. It’s a small overhead method - TCP code has been optimized to death, SCTP comes with some overheads such as the CRC checksum (but it also has some more benefits).
>
>
>>>> Another consideration is the UDP checksum. This must be set in IPV6
>>>> (excepting that the requirements in RFC6935 and RFC6936 are met) and
>>>> is recommended for encapsulation any way. This means that there are
>>>> two checksums (TCP and UDP) per packet which becomes a performance
>>>> issue since most NICs can offload at most one checksum and often that
>>>> is restricted to only the checksum in a plain TCP or UDP packet with
>>>> no encapsulation. We solved this in GUE with remote checksum offload
>>>> (https://tools.ietf.org/html/draft-herbert-remotecsumoffload-02) which
>>>> should work fine with TCP over UDP case.
>>>
>>> We (and the preceding proposals that are cited in the draft) removed the redundant TCP checksum from the encapsulated TCP header. Because it’s end-to-end and changes TCP anyway, we can do that.
>>>
>> That will break our ability to use NIC offload with TCP/UDP
>> (segmentation offload for instance). Everything, including many
>> performance optimizations, is already designed around the requirement
>> that the TCP checksum must be set. Trying to undo that requirement is
>> actually a complication, not a simplification in practice.
>
> Interesting… here I lack knowledge about offloading. Are you saying that GUE doesn’t have that problem? That would make it a more attractive encapsulation option then.
>

There's been a lot of work in this area since encapsulation over UDP
is very hot as a solution for tunneling. So we are working on
solutions that are generic across all flavors of foo-over-udp for L2
and L3 encapsulation. I believe these solutions should be applicable
to L4 encapsulation also (e.g. TCP/UDP). What we don't want is HW
vendors endlessly adding protocol specific support in HW for all these
foo-over-udp. With some care, we should be able to design new
encapsulations and generic HW support that avoid the need for
protocol-specific awareness in HW.

Tom

> Cheers,
> Michael
>