Re: [tcpm] TCP sendbuffer advertising

Costin Raiciu <c.raiciu@cs.ucl.ac.uk> Fri, 17 July 2015 09:54 UTC

Return-Path: <c.raiciu@cs.ucl.ac.uk>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F0B1F1B3239 for <tcpm@ietfa.amsl.com>; Fri, 17 Jul 2015 02:54:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level:
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, 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 VEW__HRYcDWd for <tcpm@ietfa.amsl.com>; Fri, 17 Jul 2015 02:54:46 -0700 (PDT)
Received: from bells2.cs.ucl.ac.uk (bells2.cs.ucl.ac.uk [128.16.5.33]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 01F2D1B3119 for <tcpm@ietf.org>; Fri, 17 Jul 2015 02:54:46 -0700 (PDT)
Received: from 5-12-82-72.residential.rdsnet.ro ([5.12.82.72] helo=[192.168.0.101]) by bells2.cs.ucl.ac.uk with esmtpsa (TLSv1:AES256-SHA:256) (C.Raiciu authenticated) (Exim 4.54) id 1ZG2Lm-0007Ft-N7; Fri, 17 Jul 2015 10:54:38 +0100
Content-Type: text/plain; charset="windows-1252"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Costin Raiciu <c.raiciu@cs.ucl.ac.uk>
In-Reply-To: <55A83E0F.3010301@palermo.edu>
Date: Fri, 17 Jul 2015 12:55:33 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <7F2A1ADD-7580-473E-8401-0A58A7BF65CA@cs.ucl.ac.uk>
References: <721EA345-FB24-45D1-9ADF-D028F216365F@cs.pub.ro> <55A83E0F.3010301@palermo.edu>
To: Alejandro Popovsky <apopov@palermo.edu>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/tcpm/fI3w21gc5xfoc4F4-HhVe2K1-gQ>
Cc: "tcpm@ietf.org (tcpm@ietf.org)" <tcpm@ietf.org>
Subject: Re: [tcpm] TCP sendbuffer advertising
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Jul 2015 09:54:49 -0000

> Hi Costin,
> 
> Sender buffer info would be useful to check if the flow is network limited
> (NL), data-generation limited (DG), or flow control limited (FC). But a one
> bit field might be enough. I'll comment the draft below:

For most scenarios, a one bit field is enough, I agree. There are however some use cases where knowing the amount of backlogged data might help (e.g. in our HotCloud paper we can infer losses 
even if we sample packets 1:100 just by looking at cwnd information!).

>> A key information needed by networks is whether a connection is
>> limited by the network or by the application.  This information
>> is very difficult to accurately infer by passive measurements.
> 
> We are currently doing that without this extra buffer info for all connections
> between ISP's flowing through the IXP's of the Argentine Chamber of Internet
> (CABASE), by following all connections state using UpPerfomanceAnalyzer. This
> analysis is used to evaluate real time end-user performance and end-to-end
> capacity.

Cool, I’d like to hear more about the operation of this box - however it sounds pretty expensive :).

>> This information enables network boxes and receivers to easily
>> identify connections that need more capacity....
> 
> It might be dangerous to use it to assign capacity in network boxes,
> because end users could just lie about their backlogged data in order to steal
> capacity from neighbor connections.

You are spot on here - this is an open question.

>> ...to estimate the sender congestion window and to accurately
>> monitor flight-size....
> 
>> ...having SND.NXT smaller than WRITE.SEQ indicates that the
>> congestion window is not large enough, so the connection is
>> network limited at that point in time.
> 
> It is not absolutely necessary to estimate sender congestion window size in order
> to check Network Limitation (NL). When senders hit their congestion window
> top, they become ack-clocked and this can be detected at the monitor point
> by checking both the data and ack flow timings.

You are right, but I would think you need to be close to the source to accurately detect packets released by the ACK clock. 
Surely measurements become quite noisy when you are close to the receiver, ACKs can get lost, etc

Even so, this solution is rather expensive as it needs to see most (if not all packets in both directions) - am I right? We are proposing a cheaper, always on option.

> Filling the congestion window is also not necessarily an indication of
> Network Limitation (NL), because the congestion window may be smaller
> than the current bandwidth delay product at the time. In such case the sender
> is ack clocked but the data segment pace is still a burst per round trip time.
> Anyhow, it would simplify the limitation analysis to have a bit at the end of
> each burst indicating if transmission was stopped by the window or by the
> lack of data to send.

Sure, but if you average the send buffer information across enough RTTs you can understand fairly accurately if the network is the limiting factor or the app.

>> As long as the receive window is not a bottleneck...
> 
> Filling the receiver window is again not always an indication of flow control
> limitation (FC) limitation. If receiver window is bigger than the bandwidth
> delay product (BDP), the sender can still reach the available capacity. It can
> be observed in some of the chamber ISP's with old tcp stacks in their
> cache-boxes, with many connections reaching their available capacity
> even with their rcvd window full.

Agreed.

> All this said, including info about the sender buffer looks positive,
> and would help limitation analysis to be less demanding.  Although
> one bit field might suffice, something similar to the push bit,
> or a small change to it.


Thanks a lot for your comments. 
Costin

> 
> Best regards, Alejandro Popovsky.
> 
> 
> On 13/07/2015 05:24 p.m., Costin Raiciu wrote:
>> Dear all,
>> 
>> We have been working on a simple extension to TCP that encode the amount of backlogged bytes in each TCP segment. This information can be used by the network or the receiver for various optimizations.
>> 
>> I will be present our work during the TCPM working group in Prague. This email is a heads-up for those interested in hearing more about the work before it is presented.
>> 
>> We have written a draft on the encoding, but unfortunately we have missed the Prague cutoff. You can download the draft from my webpage at http://nets.cs.pub.ro/~costin/files/draft-agache-tcpm-sndbufadv.txt
>> We will submit it properly as soon as the I-D submission tool reopens on saturday.
>> 
>> We also have a workshop paper in HotClout 2015 on the various use-cases of send buffer advertising, and our prototype implementation, that you can find at: http://nets.cs.pub.ro/~costin/files/sndbuf.pdf
>> 
>> We are looking forward to your comments.
>> 
>> Best.
>> Costin
>> ----------------------------------------------
>> Costin Raiciu
>> Associate Professor
>> Homepage: http://nets.cs.pub.ro/~costin/
>> CS Department
>> University Politehnica of Bucharest
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> tcpm mailing list
>> tcpm@ietf.org
>> https://www.ietf.org/mailman/listinfo/tcpm
>