Re: [tsvwg] Comments on draft-pauly-tsvwg-tcp-encapsulation

Tom Herbert <tom@herbertland.com> Tue, 25 September 2018 18:10 UTC

Return-Path: <tom@herbertland.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AFE85130DDA for <tsvwg@ietfa.amsl.com>; Tue, 25 Sep 2018 11:10:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, URIBL_BLOCKED=0.001] 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 wv_TSqPjhkIb for <tsvwg@ietfa.amsl.com>; Tue, 25 Sep 2018 11:10:54 -0700 (PDT)
Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) (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 6D273128BAC for <tsvwg@ietf.org>; Tue, 25 Sep 2018 11:10:53 -0700 (PDT)
Received: by mail-qk1-x72c.google.com with SMTP id q12-v6so5713587qkl.13 for <tsvwg@ietf.org>; Tue, 25 Sep 2018 11:10:53 -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:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=CJvf7nz9Oh5QWdx8Elz9W/tF69aFMdGO2UuPSSF+Ri8=; b=jTwON/JE8BK/LY/LtLIKVjzVcOn+7HWUHHHpKxfAHbU9vtWwYalYZtVWDssjiYIcwo v/ZvlBi/bpR/Xzcmu7/UWnRmDYyB5fIuBSDFPIYYOp/HlQR6gSoLk0F4iytD5rZSQDcd mOBjwrzdIeUrljtTuyDoS2HIZKwRaHUrUGAutR7Hyw5HEldUH0alSg1fvb7ooYPZ6PFm DZo8aE48KU+LqX7P+sMhYLgf+9kSntmPsG7qP34pCElQqxn4yBnXsvhWeTJKn4JvXH7v X9iOZLxJrK8mOAfoUlZxH7dOWTaZLHZnlh23KDmDNwY3o0X4yQudT4CHMrXtvM+0LZCU IldQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=CJvf7nz9Oh5QWdx8Elz9W/tF69aFMdGO2UuPSSF+Ri8=; b=tmF2B9xfj+ni8umki6orY1fampEFwk68D22qtOC8r9UTauZ3d9MTPJDyHmFFSI4SR3 Anex/rUJRGx826+deuzfCdoFuGNL5+f5/8o7tJjMWZZD+aPspDQxA/K6Xfp7Q0UdR6yo 7Auy8s7W9wPKgHjS5jMTrypmlrs/gp383MfAy81UKXLEVAGK+gfX1hTKHNJRkmitNWNY AI8lWcJMjs70RCR4O+Rp0TTNjlz3pH0oZ75mpK0eB3ZKGGUOwDJB//TVZZHE++eWxUYJ QVBhJDrFUaq/CL9cMK/2e/5LJZh4hFyQwgwXnV9UOxGDl0Z9Ka6Jbtrtx/DvQMMoC0i6 UI7Q==
X-Gm-Message-State: ABuFfoguoUG9WaZNG8dBp7NSjWS1daxF3ATuN0AbUY9Srq2Maia6SzK+ szmt9CnULrStOn+0prjSwYsSpX+PU3kXeGp3+8AwDg==
X-Google-Smtp-Source: ACcGV61B6Wli/sy/6s93Cvx3fxSybxZpN2ANxBhSyuTuyuNFQ6RgKHbfYD7LMR51RBKomBLmBnRo8nrNXeNPkfIiAuM=
X-Received: by 2002:a37:168e:: with SMTP id 14-v6mr1646560qkw.168.1537899052345; Tue, 25 Sep 2018 11:10:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:ac8:2a94:0:0:0:0:0 with HTTP; Tue, 25 Sep 2018 11:10:51 -0700 (PDT)
In-Reply-To: <0BBCB01A-C5DE-4330-A14A-4CB03C1124D3@tik.ee.ethz.ch>
References: <0BBCB01A-C5DE-4330-A14A-4CB03C1124D3@tik.ee.ethz.ch>
From: Tom Herbert <tom@herbertland.com>
Date: Tue, 25 Sep 2018 11:10:51 -0700
Message-ID: <CALx6S37MBaZ1PtHXod5Kii+rcj14b9uN5eVikL=t00EA58S04A@mail.gmail.com>
To: Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>
Cc: Tommy Pauly <tpauly@apple.com>, Eric Kinnear <ekinnear@apple.com>, tsvwg <tsvwg@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/MY8hqCiA_1DrBqieZ-yQ8La5zQw>
Subject: Re: [tsvwg] Comments on draft-pauly-tsvwg-tcp-encapsulation
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Sep 2018 18:11:02 -0000

On Tue, Sep 25, 2018 at 8:12 AM, Mirja Kühlewind
<mirja.kuehlewind@tik.ee.ethz.ch> wrote:
> Hi Erik, hi Tommy,
>
> I beliebe I promised in Montreal to send some more comments on draft-pauly-tsvwg-tcp-encapsulation; at least that’s what my todo list says (now that I reached down to some bottom part of it).
>
> Anyway, here it comes, mainly based on what I already said in the meeting:
>
> - Section 3: the example format you define is definitely the right way to go and is what is usually used. However, when I was reading encapsulation, I was thinking that you could probably also just put the whole UDP packet including the UDP header into the TCP stream. Is that a thing that we want maybe discuss as well?

Mirja,

Would that include the IP header for for each encapsulated packet? If
the TCP encapsulation endpoints are coincident with the UDP endpoints
then the IP headers for reconstituting the UDP/IP packet could be
derived from the outer IP header- that would save quite a few bytes.
This makes the inner UDP checksum interesting when the packet goes
through NAT, but that can be resolved by using the NAT Address
Checksum option as described in draft-ietf-intarea-gue-extensions.

On the the topic of encapsulation format, I would suggest the authors
look at GUE as a possible candidate to make TCP encapsulation generic
and extensible. The generic part would mean that each TCP encapsulated
packet could have type, extensible allows options like the one
described above and there might be some other options that are useful
like CRC and header authentication. Checksum offload for TCP and UDP
packets encapsulated in TCP might also be possible to pull off with a
little protocol help. The only thing needed to turn GUE into GTE
(Generic TCP Encapsulation) would be adding the length field to
demarcate messages in the stream.

>
> - One comment I had in the meeting is actually related to this first point. I said that there should be a stronger recommendation to not change the protocol above. However, if you currently implement your own congestion control and the switch to TCP, it might actually be beneficial to disable that congestion control. I guess the point needs more discussion to figure out what we actually want to recommend, e.g. make minimal change and don’t change the header for easier convergence at gateway…?
>
One obvious question that will be raised on this draft is why would an
application bother to encapsulate UDP in TCP as opposed to just using
TCP directly. I would presume the answer is that there are some
applications where the client or server side can't be changed and TCP
encapsulation would be implemented as a transparent layer beneath the
application. If that's the case, the congestion control of the
application protocol probably can't be changed too easily.

Tom

> - In section 3.1 it could probably make sense briefly mention the possibility of head-of-line blocking when you multiplex.
>
> - Another high level comment from the discussion in Montreal was, that it would probably make sense to separate more clearly the case where encapsulation is used end-to-end or between tunnel endpoints. I guess for the second case, there may be some docs in the INT area that could be worth citing, e.g. draft-touch-intarea-tunnels; not sure if there is more.
>
> That’s all I have for now! Hope that helps! Thanks for writing this up!
>
> Mirja
>
>
>