Re: [Taps] MTU / equivalent at the transport layer

Michael Welzl <michawe@ifi.uio.no> Fri, 09 December 2016 08:56 UTC

Return-Path: <michawe@ifi.uio.no>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0B1612A25A for <taps@ietfa.amsl.com>; Fri, 9 Dec 2016 00:56:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.096
X-Spam-Level:
X-Spam-Status: No, score=-7.096 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-2.896] autolearn=ham autolearn_force=no
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 d0DamnrBjmVT for <taps@ietfa.amsl.com>; Fri, 9 Dec 2016 00:56:34 -0800 (PST)
Received: from mail-out01.uio.no (mail-out01.uio.no [IPv6:2001:700:100:10::50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DCAD112A23F for <taps@ietf.org>; Fri, 9 Dec 2016 00:56:33 -0800 (PST)
Received: from mail-mx2.uio.no ([129.240.10.30]) by mail-out01.uio.no with esmtp (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1cFGym-0004fy-2k for taps@ietf.org; Fri, 09 Dec 2016 09:56:32 +0100
Received: from boomerang.ifi.uio.no ([129.240.68.135]) by mail-mx2.uio.no with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) user michawe (Exim 4.80) (envelope-from <michawe@ifi.uio.no>) id 1cFGyl-00022U-GT; Fri, 09 Dec 2016 09:56:31 +0100
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Michael Welzl <michawe@ifi.uio.no>
In-Reply-To: <584A6F71.7020301@erg.abdn.ac.uk>
Date: Fri, 09 Dec 2016 09:56:31 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <CA8A552C-CA54-466B-9576-484628F34F38@ifi.uio.no>
References: <5F2E34E4-7D32-4BDB-B762-2ADB7994672B@ifi.uio.no> <c6b1d261-8c3c-ed50-78e1-9b5e472815fc@isi.edu> <0213051A-C761-43B3-8750-1B999A8A893A@ifi.uio.no> <584A6F71.7020301@erg.abdn.ac.uk>
To: "<gorry@erg.abdn.ac.uk> Fairhurst" <gorry@erg.abdn.ac.uk>
X-Mailer: Apple Mail (2.2104)
X-UiO-SPF-Received:
X-UiO-Ratelimit-Test: rcpts/h 36 msgs/h 16 sum rcpts/h 38 sum msgs/h 17 total rcpts 49768 max rcpts/h 54 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=-6.6, required=5.0, autolearn=disabled, RP_MATCHES_RCVD=-1.643, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: 292A66327FBD865C8E22D9216ADFF34CE4686E0D
X-UiO-SPAM-Test: remote_host: 129.240.68.135 spam_score: -65 maxlevel 80 minaction 2 bait 0 mail/h: 15 total 11806 max/h 21 blacklist 0 greylist 0 ratelimit 0
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/bK9Uol_wRlMU_em_MId9353Wp54>
Cc: "taps@ietf.org" <taps@ietf.org>
Subject: Re: [Taps] MTU / equivalent at the transport layer
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Discussions on Transport Services <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 08:56:36 -0000

> On 09 Dec 2016, at 09:46, Gorry Fairhurst <gorry@erg.abdn.ac.uk> wrote:
> 
> On 09/12/2016 08:09, Michael Welzl wrote:
>>> On 07 Dec 2016, at 20:29, Joe Touch<touch@isi.edu>  wrote:
>>> 
>>> FYI, there are two different "largest messages" at the transport layer:
>>> 
>>> 1) the size of the message that CAN be delivered at all
>> True... I wasn't thinking of that, but yes.
>> 
>> 
>>> 2) the size of the message that can be delivered without network-layer
>>> fragmentation (there are no guarantees about link-layer - see ATM or the
>>> recent discussion on tunnel MTUs on INTAREA)
>>> 
>>> MTU generally refers to the *link payload*. At that point, transports
>>> have to account for network headers, network options, transport headers,
>>> and transport options too. See RFC6691.
>>> 
>>> MSS refers to the transport message size AFAICT. It is *sometimes* tuned
>>> to MTU-headers but not always.
>>> 
>>> E.g., for IPv6, link MTU is required to be at least 1280, but the
>>> src-dst transit MTU is required to be at least 1500. So a transport that
>>> wants to match sizes and reduce fragmentation issues would pick
>>> 1280-IPh-IPo-TCPh-TCPo, but a transport is supposed to be able to trust
>>> that 1500-IPh-IPo-TCPh-TCPo can still get through at least some of the time.
>> So I'm getting the impression that the answer to my question really is that, to figure out 2)  (which I was concerned with), an application programmer needs to do the calculation her/himself.
>> Not a big deal - and maybe some systems offer a function to give you the size of a message that won't be fragmented.
>> 
>> However: this calculation is transport protocol dependent, which we really don't want to have in TAPS.
>> 
>> I conclude: a TAPS system must implement a local function to provide this information, both 1) and 2) above.
> Referning back to DCCP as a RFC reference which agrees with this.
> 
> I agree with (2) for a datagram transport, similar to MPS in DCCP. If you are going to allow different transports to be selected by TAPS - it's hard to know even if the transport below the TAPS API will finally need to choose to add an option to satisfy the service (e.g., timestamp, checksum, whatever ) and the size of such an option likely varies depending on the finally chosen protocol. To me, this suggests it useful to know how many bytes the app can send with reasonable chance of unfragmented delivery.
> 
> Apps should be allowed to send more if they wish, If an app is doing datagram path MTU discovery, this may resilt in raising the maximum unfragmented datagram size.
> 
> I'm OK with being able to retrieve the absolute maximum allowed - that could be useful in determinine probe sizes for an application doing path MTU discovery.  In DCCP there is  a hard limt, called the current congestion control maximum packet size (CCMPS), the largest permitted by the stack using the current congestion control method. That's bound to be less than or equal to what is permittd for the local Interface MTU.
> 
> Gorry

I agree with all that.
But combining this with the wish to have message dependencies, a wish that is in both draft-trammell-post-sockets and draft-mcquistin-taps-low-latency-services, yet also not supported by any of the already defined transport protocols, it gets clear that we must define some extra functionality for a TAPS system, when we get to charter item 3.

These things can be achieved by only changing the implementation of transports to locally provide some more of its internal information to a system on top; they don't change anything on the wire...

Cheers,
Michael