Re: [Taps] I-D Action: draft-ietf-taps-transports-06.txt

Joe Touch <touch@isi.edu> Thu, 16 July 2015 17:49 UTC

Return-Path: <touch@isi.edu>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0B54D1B2A5B for <taps@ietfa.amsl.com>; Thu, 16 Jul 2015 10:49:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level:
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 E2oIZLPX-RLs for <taps@ietfa.amsl.com>; Thu, 16 Jul 2015 10:49:03 -0700 (PDT)
Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 34AC11B2A38 for <taps@ietf.org>; Thu, 16 Jul 2015 10:48:45 -0700 (PDT)
Received: from [128.9.184.152] ([128.9.184.152]) (authenticated bits=0) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id t6GHmW0C013201 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 16 Jul 2015 10:48:33 -0700 (PDT)
To: Karen Elisabeth Egede Nielsen <karen.nielsen@tieto.com>, taps@ietf.org
References: <20150706220631.6336.219.idtracker@ietfa.amsl.com> <456cadf6d459a1c9e2c508af7b5470de@mail.gmail.com> <55A6A31B.3090500@isi.edu> <0047fc6ff18d95970285941d02534db4@mail.gmail.com>
From: Joe Touch <touch@isi.edu>
X-Enigmail-Draft-Status: N1110
Message-ID: <55A7EE70.9040308@isi.edu>
Date: Thu, 16 Jul 2015 10:48:32 -0700
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.0.1
MIME-Version: 1.0
In-Reply-To: <0047fc6ff18d95970285941d02534db4@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: <http://mailarchive.ietf.org/arch/msg/taps/lk6jzhNF7kMT7zHx9dxsUqH0CCU>
Cc: touch@isi.edu
Subject: Re: [Taps] I-D Action: draft-ietf-taps-transports-06.txt
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.15
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: Thu, 16 Jul 2015 17:49:06 -0000

Hi, Karen,

On 7/16/2015 12:27 AM, Karen Elisabeth Egede Nielsen wrote:
...
>> So there are several levels of the latency issue:
>>
>> 	- minimize the latency ADDED by the transport layer
>> 	- reduce the latency seen by the app
>> 	(which can involve more active interaction with the network
>> 	layer, anticipation, etc.)
>>
>> Note also that latency is not a single metric nor a meaningful standalone
>> metric:
>>
>> 	1. latency between two parties is a property *of a message*,
>> 	i.e., it requires knowing the message size
>>
>> 	2. latency includes both basic and higher order effects;
>> 	the basic is "delay", the higher order include "jitter" etc.
>> 	Many common delay-sensitive use cases are really mostly
>> 	jitter sensitive.
>>
>> ...
> [Karen ] I agree so what do we mean in this document when we say that
> a transport service feature can be to provide minimal latency ?

There should probably be two levels:

	- minimize what you add at the transport layer

	- reduce even further

> Are we thinking about Nagle OFF ?

That is how TCP might react to a request to minimizing added latency,
but I don't expect a TAPS API should expose the specific knob of "Nagle".

>>> I am not sure if Connection oriented  and Feature negotiation should
>>> be split into two features ?
>>
>> If you don't share state (i.e., what we tend to call a "connection"),
> what is the
>> meaning of feature negotiation?
>>
> [Karen ] Yes, but does connection oriented necessarily means that you can
> negotiate features ?

Absolutely. Connection oriented means there is state that persists
between messages. To be useful, that state needs to be controllable.
Negotiating features *is* controlling that state.

...
>> So the general assumption that turning off Nagle will reduce latency
> should be
>> reasonable.
> [Karen ] I agree with this as a general assumption.
> But when I read the paragraph in the doc it almost sounds as if turning
> Nagle off comes with no price.

I would think that should be clarified.

>  Do you have a counterexample seen in the wild?
>
> [Karen ] Yes we have examples with NO Nagle where the number of packets
> then becomes the bottleneck.
> In the local ends (CPU) as well as in the infrastructure elements. I am
> not sure how much of this information I can share.
> I can try to find out. That is why I was saying that how to provide
> minimal latency may depend on the application traffic.

Because latency depends on the sizes of the messages, it should not be a
surprise that latency can't be minimized without that context.

> How to solve also depends on whether it is the average latency that needs
> to be minimal or whether the latency for some particular application
> "messages" should be kept as low as possible.

This is difficult for TCP to handle, because TCP thinks of the input
stream as an ordered sequence of bytes, and the issue of latency is
related to message boundaries within the TCP stream that are NOT part of
the TCP API (there's no way for an application to indicate those
boundaries to TCP - and no, the SEND boundaries are explicitly NOT those
markers).

> For SCTP we allow for that Nagle is disabled on some streams (streams with
> high scheduling priority) and not on others. This is done exactly for this
> purpose.

Sure, but that's also why it doesn't make sense for TCP.

Joe