General list for discussing Bufferbloat
 help / color / mirror / Atom feed
* [Bloat] TCP congestion detection - random thoughts
@ 2015-06-21 16:19 Benjamin Cronce
  2015-06-21 17:05 ` Alan Jenkins
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Benjamin Cronce @ 2015-06-21 16:19 UTC (permalink / raw)
  To: bloat

[-- Attachment #1: Type: text/plain, Size: 2224 bytes --]

Just a random Sunday morning thought that has probably already been thought
of before, but I currently can't think of hearing it before.

My understanding of most TCP congestion control algorithms is they
primarily watch for drops, but drops are indicated by the receiving party
via ACKs. The issue with this is TCP keeps pushing more data into the
window until a drop is signaled, even if the rate received is not
increased. What if the sending TCP also monitors rate received and backs
off cramming more segments into a window if the received rate does not
increase.

Two things to measure this. RTT which is part of TCP statistics already and
the rate at which bytes are ACKed. If you double the number of segments
being sent, but in a time frame relative to the RTT, you do not see a
meaningful increase in the rate at which bytes are being ACKed, may want to
back off.

It just seems to me that if you have a 50ms RTT and 10 seconds of
bufferbloat, TCP is cramming data down the path with no care in the world
about how quickly data is actually getting ACKed, it's just waiting for the
first segment to get dropped, which would never happen in an infinitely
buffered network.

TCP should be able to keep state that tracks the minimum RTT and maximum
ACK rate. Between these two, it should not be able to go over the max path
rate except when attempting to probe for a new max or min. Min RTT is
probably a good target because path latency should be relatively static,
however path free-bandwidth is not static. The desirable number of segments
in flight would need to change but would be bounded by the max.

Of course naggle type algorithms can mess with this because when ACKs occur
is no longer based entirely when a segment is received, but also by some
other additional amount of time. If you assume that naggle will coalesce N
segments into a single ACK, then you need to add to the RTT, the amount of
time at the current PPS, how long until you expect another ACK assuming N
number of segments will be coalesced. This would be even important for low
latency low bandwidth paths. Coalesce information could be assumed,
negotiated, or inferred. Negotiated would be best.

Anyway, just some random Sunday thoughts.

[-- Attachment #2: Type: text/html, Size: 2413 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: [Bloat] TCP congestion detection - random thoughts
@ 2015-06-23  5:20 Ingemar Johansson S
  0 siblings, 0 replies; 9+ messages in thread
From: Ingemar Johansson S @ 2015-06-23  5:20 UTC (permalink / raw)
  To: bloat

Hi

FYI SCReAM (Self-Clocked Rate Adaptation for Multimedia) is an offspring of the LEDBAT algorithm
http://tools.ietf.org/wg/rmcat/draft-ietf-rmcat-scream-cc/ 
The congestion control part of SCReAM is designed to be a tad more opportunistic than LEDBAT, the reason to this is that the source in this case is a rate adaptive video encoder.

/Ingemar

> Message: 1
> Date: Mon, 22 Jun 2015 09:12:18 -0700
> From: Dave Taht <dave.taht@gmail.com>
> To: Juliusz Chroboczek <jch@pps.univ-paris-diderot.fr>
> Cc: bloat <bloat@lists.bufferbloat.net>
> Subject: Re: [Bloat] TCP congestion detection - random thoughts
> Message-ID:
> 	<CAA93jw4gyCR9SfXd9fiAQsqgc2WO1XgMCmPUNOGpBtTPG7
> +3WQ@mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
> 
> On Mon, Jun 22, 2015 at 8:55 AM, Juliusz Chroboczek <jch@pps.univ-paris-
> diderot.fr> wrote:
> > To add to what my honourable prelocutors have said, ?TP, which is used
> > by modern BitTorrent implementations, uses the LEDBAT congestion
> > control algorithm, which is based on delay.  The fact that LEDBAT is
> > crowded out by Reno is a desirable feature in this case -- you do want
> > your BitTorrent traffic to be crowded out by HTTP and friends.
> >
> >     https://en.wikipedia.org/wiki/LEDBAT
> 
> Yep. I note that OWD is more desirable than RTT, particularly in modern
> asymmetric networks that have a ratio of up to down bandwidths of 1x10 or
> more.
> 
> A lot of folk have treated that return path as inconsequential when it can
> actually be the biggest source of delay or be the most contested part of the
> path.
> 
> After having much success in squashing torrent down to being invisible using
> classification in cake last week, I realized this morning that also putting the
> short acks into the same bin was perhaps not always the right thing as that
> hurt download throughput..... Perhaps
> stretch(ier) acks are feasible in ledbat/torrent? Or revisiting the packet size
> to shrink once again under contention? Reducing the number of flows?
> 
> >
> > -- Juliusz
> >
> > _______________________________________________
> > Bloat mailing list
> > Bloat@lists.bufferbloat.net
> > https://lists.bufferbloat.net/listinfo/bloat
> 
> 
> 
> --
> Dave T?ht
> worldwide bufferbloat report:
> http://www.dslreports.com/speedtest/results/bufferbloat
> And:
> What will it take to vastly improve wifi for everyone?
> https://plus.google.com/u/0/explore/makewififast
> 
> 
> ------------------------------
> 
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat
> 
> 
> End of Bloat Digest, Vol 54, Issue 39
> *************************************

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-06-23  5:21 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-21 16:19 [Bloat] TCP congestion detection - random thoughts Benjamin Cronce
2015-06-21 17:05 ` Alan Jenkins
2015-06-21 17:33   ` Jonathan Morton
2015-06-21 19:34   ` Benjamin Cronce
2015-06-21 17:53 ` G B
2015-06-22  1:50 ` Stephen Hemminger
2015-06-22 15:55 ` Juliusz Chroboczek
2015-06-22 16:12   ` Dave Taht
2015-06-23  5:20 Ingemar Johansson S

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox