General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Alan Jenkins <alan.christopher.jenkins@gmail.com>
To: "Fred Baker (fred)" <fred@cisco.com>, "Dave Täht" <dave@taht.net>
Cc: "aqm@ietf.org" <aqm@ietf.org>,
	"bloat@lists.bufferbloat.net" <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] review: Deployment of RITE mechanisms, in use-case trial testbeds report part 1
Date: Wed, 2 Mar 2016 20:53:55 +0000	[thread overview]
Message-ID: <56D752E3.40507@gmail.com> (raw)
In-Reply-To: <650D8A08-A9FF-4EDF-9374-B4DBF3EB87CD@cisco.com>

On 02/03/16 18:09, Fred Baker (fred) wrote:
>> On Feb 27, 2016, at 11:04 AM, Dave Täht <dave@taht.net> wrote:
>>
>> https://reproducingnetworkresearch.wordpress.com/2014/06/03/cs244-14-confused-timid-and-unstable-picking-a-video-streaming-rate-is-hard/
>>
>>>    o the results are very poor with a particular popular AQM
>> Define "very poor". ?
> Presuming this is Adaptive Bitrate Video, as in Video-in-TCP, we (as in Cisco engineers, not me personally; you have met them) have observed this as well. Our belief is that this is at least in part a self-inflicted wound; when the codec starts transmission on any four second segment except the first, there is no slow-start phase because the TCP session is still open (and in the case of some services, there are several TCP sessions open and the application chooses the one with the highest cwnd value). You can now think of the behavior of the line as repeating a four phase sequence: nobody is talking, then one is talking, then both are, and then the other is talking. When only one is talking, whichever it is, its cwnd value is slowing increasing - especially if cwnd*mss/rtt < bottleneck line rate, minimizing RTT. At the start of the "both are talking" phase, the one already talking has generally found a cwnd value that fills the line and its RTT is slowly increasing. The one starting sends a burst of cwnd packets, creating an instant queue and often causing one or both to drop a packet - reducing their respective cwnd values. Depending on the TCP implementation in question at the sender, if the induced drop isn't a single packet but is two or three, that can make the affected session pause for as many RTO timeouts (Reno), RTTs (New Reno), or at least retransmit the lost packets in the subsequent RTT and then reduce cwnd by at least that amount (cubic) and maybe half (SACK).

Interesting!  Just as Dave reminds us that Google avoid the bursts you 
describe, using pacing. (See end of message 
https://lists.bufferbloat.net/pipermail/bloat/2016-February/007205.html)

You can call the result a disadvantage of FQ in the real world if you 
want.  But you can also say it provides some necessary alignment of 
incentives.  Incentives for applications to develop more 
network-friendly behaviour :).  I was surprised that a project with 
large ISP involvement seems to take the first point of view.

(Also the part about connections being chosen by cwnd helps explain the 
fq_codel throughput graph.  You can see the audio and video connections 
switch roles several times.  The same times as the bitrate fluctuates, I 
notice)

I was just skimming PANDA[1], which does AIMD for adaptive streaming. So 
they decrement the interval between chunk fetches, until the observed 
throughput _over the full on-off cycle_ is sufficient to sustain the 
next quality level.  <handwave>It could just as easily pace the fetch 
over the full period. <utopian>No more on-off cycle, no damaging bursts 
of packets?

Alan

[1] http://arxiv.org/pdf/1305.0510.pdf


  reply	other threads:[~2016-03-02 20:53 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <56BB8F05.2030006@mti-systems.com>
     [not found] ` <BF6B00CC65FD2D45A326E74492B2C19FB763038A@FR711WXCHMBA05.zeu.alcatel-lucent.com>
2016-02-27 19:04   ` Dave Täht
2016-02-28 13:33     ` Alan Jenkins
2016-02-28 13:39       ` Toke Høiland-Jørgensen
2016-02-28 14:26         ` Alan Jenkins
2016-02-28 20:20           ` Juliusz Chroboczek
2016-02-28 21:27             ` Toke Høiland-Jørgensen
2016-02-28 21:24           ` Toke Høiland-Jørgensen
2016-02-29 17:55       ` Dave Taht
2016-03-02 11:26     ` [Bloat] [aqm] " De Schepper, Koen (Nokia - BE)
2016-03-02 18:09     ` [Bloat] " Fred Baker (fred)
2016-03-02 20:53       ` Alan Jenkins [this message]
2016-03-02 21:47         ` Fred Baker (fred)
2016-03-03 12:13       ` [Bloat] [aqm] " Ingemar Johansson S
2016-03-03 12:31         ` Luca De Cicco
2016-03-03 16:09           ` [Bloat] HAS traffic behaviors Dave Täht
2016-03-03 18:49             ` [Bloat] [aqm] " Luca De Cicco

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/bloat.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56D752E3.40507@gmail.com \
    --to=alan.christopher.jenkins@gmail.com \
    --cc=aqm@ietf.org \
    --cc=bloat@lists.bufferbloat.net \
    --cc=dave@taht.net \
    --cc=fred@cisco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox