From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path:
Received: from smtp64.iad3a.emailsrvr.com (smtp64.iad3a.emailsrvr.com
[173.203.187.64])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
by lists.bufferbloat.net (Postfix) with ESMTPS id 124F63B29E
for ; Thu, 1 Sep 2022 13:08:48 -0400 (EDT)
Received: from app14.wa-webapps.iad3a (relay-webapps.rsapps.net
[172.27.255.140])
by smtp17.relay.iad3a.emailsrvr.com (SMTP Server) with ESMTP id 8001822362;
Thu, 1 Sep 2022 13:08:48 -0400 (EDT)
Received: from deepplum.com (localhost.localdomain [127.0.0.1])
by app14.wa-webapps.iad3a (Postfix) with ESMTP id 69402600BA;
Thu, 1 Sep 2022 13:08:48 -0400 (EDT)
Received: by apps.rackspace.com
(Authenticated sender: dpreed@deepplum.com, from: dpreed@deepplum.com)
with HTTP; Thu, 1 Sep 2022 13:08:48 -0400 (EDT)
X-Auth-ID: dpreed@deepplum.com
Date: Thu, 1 Sep 2022 13:08:48 -0400 (EDT)
From: "David P. Reed"
To: starlink@lists.bufferbloat.net
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_20220901130848000000_75271"
Importance: Normal
X-Priority: 3 (Normal)
X-Type: html
In-Reply-To:
References:
X-Client-IP: 209.6.168.128
Message-ID: <1662052128.388811686@apps.rackspace.com>
X-Mailer: webmail/19.0.18-RC
X-Classification-ID: 10c89328-be14-40f2-b370-5ff631d004e9-1-1
Subject: Re: [Starlink] Starlink Digest, Vol 18, Issue 1
X-BeenThere: starlink@lists.bufferbloat.net
X-Mailman-Version: 2.1.20
Precedence: list
List-Id: "Starlink has bufferbloat. Bad."
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Thu, 01 Sep 2022 17:08:49 -0000
------=_20220901130848000000_75271
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
=0AHi Sebastian -=0Aregarding slow start and video, I was just thinking and=
I came up with a possible answer regarding the slow start issue compatible=
with the Internet architecture. Read the whole piece below, I hope it make=
s sense.=0ASince the "bottleneck link" in Starlink will almost certainly be=
the downlink shared among multiple dishys, which to me is like the CMTS in=
a cable modem system, I think the reasoning is more general than Starlink.=
Oddly, :-) the idea has to do with AQM and TCP flow control. Our common i=
nterest.=0A =0AIt's a concept, not a full implementation. It doesn't requir=
e massive rethinking of the whole Internet. Which means, unlike the QUIC pr=
oject, it can be experimented with in just a part of the Internet, but woul=
d require a video-server partner and a bottleneck-link operator partner.=0A=
=0APlease steal and improve if you like it.=0A =0A- David=0A =0A> Date: Th=
u, 1 Sep 2022 09:58:16 +0200=0A=0A> From: Sebastian Moeller =0A> To: Ulrich Speidel =0A> Cc: David Lang , Ulrich Speidel via Starlink=0A> =0A> Subject: Re: [Starlink] Starlink "beam spread"=0A =0A=0A> I a=
m prepared to eat crow on this in the future, but I am highly skeptical abo=
ut=0A> CDNs in space (in spite of it being a cool project from the technolo=
gical side).=0A>=0AYou and me both...=0A> =0A> *) As it looks slow start is=
getting a bad rep from multiple sides, but I see not=0A> better alternativ=
e out there that solves the challenge slow-start tackles in a=0A> better wa=
y. Namely gradual ramping and probing of sending rates/congestion windows=
=0A> to avoid collapse, this in turn means that short flows will never reac=
h capacity,=0A> the solution to which might well be, use longer flows then.=
..=0A=0A=0AI'm old enough to remember how the TCP slow start problem was fi=
rst dealt with in HTTP pretty well (good enough for the time, and focused o=
n the end-to-end picture of the WWW architecture (REST).=0AMy friend Jim Ge=
ttys was involved, as were a couple of others - I think Jeff Mogul, too.=0A=
=0AThe answer was HTTP 1.1. That is, using a single TCP flow for all HTTP =
requests to a server. That would increase the flow to get through slow star=
t more quickly (aggregating many flows) and holding the flow open, assuming=
(almost always correctly) that between the user's clicks and the multiple =
parts of content, this would keep the flow out of slow start. (HTTP 1.1's m=
ultiplexing of requests onto a single TCP flow had other advantages, too - =
OS Internet stacks couldn't handle many simultaneous HTTP connections, addi=
ng more delay when a web page was sourced from many servers).=0A =0AAs far =
as "pretty good" solution Akamai also solved the bulk of the Web's problem=
- NOT by caching at all, but by letting ISPs *purchase* server capacity cl=
oser to the bulk of their consumers, and letting that *purchased* capacity =
pay for Akamai's costs. This moved the function of what to cache "out of th=
e network" to the edge, and didn't require ANY changes to HTTP (in fact, it=
tended to concentrate more traffic into a single HTTP 1.1 flow, to a share=
d Akamai server.=0A =0AYou may not see where I'm going with this yet - but =
actually it's an End-to-End Argument against putting "function into the net=
work" when the function is about the end points. With HTTP 1.1, a small cha=
nge *at the endpoints of the Web* was easier and simpler than some hypothet=
ical "intelligence" in the network that would obviate "slow start". With Ak=
amai, a small change that allowed heavily trafficed web services to "buy se=
rver capacity" in Akamai's server fabric, which was "at the endpoints of th=
e Internet" itself just distributed around the edges of the Internet was go=
od enough.=0A =0ASo, let's look at video traffic. Well, first of all, any r=
esponse time needs it has is mostly fixed by buffering at the receiver. Not=
needing any fixes "in the network" - you want to receive video, allocate a=
big buffer and fill it at the start. (This is where slow start gets in the=
way, perhaps).=0AI'm pretty sure *most* video watching doesn't go over RTP=
anymore - it goes over TCP now. [Dropped frames are interpolated, but inst=
ead retransmitted, because the buffer is sufficient in all video watching g=
ear at the viewing end. RTP is useful for two-way videoconferencing, but th=
at's because conferencing has the 100 msec. need for RTT, unless you are co=
nferencing with Mars or the Moon.]=0A =0ASo "slow start" of some sort is th=
e current solution that deals with the congestion burst that would disrupt =
others early in a video watching session.=0A =0ABut I think you are right -=
there are better ways to deal with the shared bottleneck link that a new v=
ideo session might encounter. - something like slow start is needed ONLY if=
the bottleneck is *shared* among multiple users.=0A =0AThe problem is the =
potential of "starvation" of other flows at the bottleneck link along the v=
ideo's path.=0A =0AAnd this is a problem we now have one partial solution f=
or, but it's not deployed where it needs to be. That is, in a word - "fair"=
queuing plus aggressive packet dropping (and maybe aggressive ECN marking)=
. Notice I say it needs to be at the *bottleneck link*, not the home router=
, which isn't the bottleneck in practice.=0ANow "fair" queueing's most impo=
rtant property is that it eliminates starvation or (near starvation) caused=
by one flow against another.=0A =0AAnd the key about putting it in the bot=
tleneck link (with packet drops being the default means of signalling incip=
ient congestion) is that the bottleneck link is the only place in the netwo=
rk where any computer knows what the competing traffic is. You need to some=
how get both the new flow and the competing flows to negotiate a new "fair"=
balance of usage, without building up unacceptable queueing delay.=0A =0AS=
o where is the "bottleneck link" today? Well, in cable Internet, it's the =
CMTS almost all the time. That is, not at the premises of the watcher. This=
is where the congestion needs to be signalled to ALL users from. Some need=
to slow down (including the new video watching stream, which has to slow d=
own relative to what it is asking for which is to fill up the buffer as fas=
t as possible when you start watching).=0A =0AThe problem with video watchi=
ng is that when you tune to a new video, you want the buffer to fill "as fa=
st as possible", but the others sharing the Internet resources don't want t=
o be "starved". They want "fair" queuing (not Harrison Bergeron fairness - =
look that up), but a "best efforts" (to use the Cerf and Kahn phrase) fairn=
ess, which is non-starvation.=0A =0ABut fair queueing only works if the sou=
rces of the traffic cut their rate as a result of congestion signalling.=0A=
The real "fairness" requires pushing the problem to the endpoints. It's an =
end-to-end argument. That's why we need to replace "slow start" gradually w=
ith something better.=0A =0AI don't know what the better thing is, but it n=
eeds to trigger the AQM mechanism more quickly than does slow start (includ=
ing causing early signals to the sharers of the bottleneck link).=0AIf we a=
ssume that packet drops are the only effective signals (because ECN just ha=
s failed to be sufficiently widely deployed - a problem that really, really=
bothers me), that means that during the initial phase of a TCP session you=
need some packets to get dropped between source and sink, and also some pa=
ckets on the competing flows to get dropped. But you don't want too much mu=
ltiplicative decrease to be triggered in the AIMD control loop of the TCPs =
involved (or in the QUIC control loops whatever they may be).=0A=0ASo ideal=
ly, a single very high-speed burst of noise packets sent over a period of s=
ay 10msec. This would probably only cause a single round of Multiplicative =
Decrease. These "noise packets" could be all duplicates of the same packet,=
and would thus not require retransmission. But they'd trigger a brief mome=
nt of congestion.
------=_20220901130848000000_75271
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hi Sebastian -
=0A<=
p style=3D"margin:0;padding:0;font-family: arial; font-size: 10pt; overflow=
-wrap: break-word;">regarding slow start and video, I was just thinking and=
I came up with a possible answer regarding the slow start issue compatible=
with the Internet architecture. Read the whole piece below, I hope it make=
s sense.
=0ASince the "bottleneck link" in Starlink=
will almost certainly be the downlink shared among multiple dishys, which =
to me is like the CMTS in a cable modem system, I think the reasoning is mo=
re general than Starlink. Oddly, :-) the idea has to do with AQM and =
TCP flow control. Our common interest.
=0A
=0AIt's a concept, not a full implementation. It does=
n't require massive rethinking of the whole Internet. Which means, unlike t=
he QUIC project, it can be experimented with in just a part of the Internet=
, but would require a video-server partner and a bottleneck-link operator p=
artner.
=0A
=0APlease=
steal and improve if you like it.
=0A
=0A=
- David
=0A
=0A> Date: Thu, 1 Sep 2022 09:58:16 +0200
=0A=0A
> From: Sebastian Moeller <=
moeller0@gmx.de>
> To: Ulrich Speidel <u.speidel@auckl=
and.ac.nz>
> Cc: David Lang <david@lang.hm>, Ulrich Speide=
l via Starlink
> <starlink@lists.bufferbloat.net>
> S=
ubject: Re: [Starlink] Starlink "beam spread"
=0A
&n=
bsp;
=0A
<snip>
> I am prepared to eat=
crow on this in the future, but I am highly skeptical about
> CDNs=
in space (in spite of it being a cool project from the technological side)=
.
>
=0A
You and me both...
>
&=
gt; *) As it looks slow start is getting a bad rep from multiple sides, but=
I see not
> better alternative out there that solves the challenge=
slow-start tackles in a
> better way. Namely gradual ramping and p=
robing of sending rates/congestion windows
> to avoid collapse, thi=
s in turn means that short flows will never reach capacity,
> the s=
olution to which might well be, use longer flows then...
=0A=
I'm old enough to remember how the TCP slow start prob=
lem was first dealt with in HTTP pretty well (good enough for the time, and=
focused on the end-to-end picture of the WWW architecture (REST).
=0A
My friend Jim Gettys was involved, as were a couple of o=
thers - I think Jeff Mogul, too.
=0A
=0A
The answer was HTTP 1.1. That is, using a single TCP flo=
w for all HTTP requests to a server. That would increase the flow to get th=
rough slow start more quickly (aggregating many flows) and holding the flow=
open, assuming (almost always correctly) that between the user's clicks an=
d the multiple parts of content, this would keep the flow out of slow start=
. (HTTP 1.1's multiplexing of requests onto a single TCP flow had other adv=
antages, too - OS Internet stacks couldn't handle many simultaneous HTTP co=
nnections, adding more delay when a web page was sourced from many servers)=
.
=0A
=0A
As far as "p=
retty good" solution Akamai also solved the bulk of the Web's &nb=
sp;problem - NOT by caching at all, but by letting ISPs *purchase* server c=
apacity closer to the bulk of their consumers, and letting that *purchased*=
capacity pay for Akamai's costs. This moved the function of what to cache =
"out of the network" to the edge, and didn't require ANY changes to HTTP (i=
n fact, it tended to concentrate more traffic into a single HTTP 1.1 flow, =
to a shared Akamai server.
=0A
=0A
You may not see where I'm going with this yet - but actually i=
t's an End-to-End Argument against putting "function into the network" when=
the function is about the end points. With HTTP 1.1, a small change *at th=
e endpoints of the Web* was easier and simpler than some hypothetical "inte=
lligence" in the network that would obviate "slow start". With Akamai, a sm=
all change that allowed heavily trafficed web services to "buy server capac=
ity" in Akamai's server fabric, which was "at the endpoints of the Internet=
" itself just distributed around the edges of the Internet was good enough.=
=0A
=0A
So, let's loo=
k at video traffic. Well, first of all, any response time needs it has is m=
ostly fixed by buffering at the receiver. Not needing any fixes "in the net=
work" - you want to receive video, allocate a big buffer and fill it at the=
start. (This is where slow start gets in the way, perhaps).
=0A
I'm pretty sure *most* video watching doesn't go over RTP anym=
ore - it goes over TCP now. [Dropped frames are interpolated, but instead r=
etransmitted, because the buffer is sufficient in all video watching gear a=
t the viewing end. RTP is useful for two-way videoconferencing, but that's =
because conferencing has the 100 msec. need for RTT, unless you are confere=
ncing with Mars or the Moon.]
=0A
=0A
So "slow start" of some sort is the current solution that d=
eals with the congestion burst that would disrupt others early in a video w=
atching session.
=0A
=0A
But I think you are right - there are better ways to deal with the share=
d bottleneck link that a new video session might encounter. - somethin=
g like slow start is needed ONLY if the bottleneck is *shared* among multip=
le users.
=0A
=0A
The =
problem is the potential of "starvation" of other flows at the bottleneck l=
ink along the video's path.
=0A
=0A
And this is a problem we now have one partial solution for, b=
ut it's not deployed where it needs to be. That is, in a word - "fair" queu=
ing plus aggressive packet dropping (and maybe aggressive ECN marking). Not=
ice I say it needs to be at the *bottleneck link*, not the home router, whi=
ch isn't the bottleneck in practice.
=0A
Now "fair" =
queueing's most important property is that it eliminates starvation or (nea=
r starvation) caused by one flow against another.
=0A
=0A
And the key about putting it in the bot=
tleneck link (with packet drops being the default means of signalling incip=
ient congestion) is that the bottleneck link is the only place in the netwo=
rk where any computer knows what the competing traffic is. You need to some=
how get both the new flow and the competing flows to negotiate a new "fair"=
balance of usage, without building up unacceptable queueing delay.
=0A<=
p style=3D"margin:0;padding:0;font-family: arial; font-size: 10pt; overflow=
-wrap: break-word;"> =0A
So where is the "bott=
leneck link" today? Well, in cable Internet, it's the CMTS almost all=
the time. That is, not at the premises of the watcher. This is where the c=
ongestion needs to be signalled to ALL users from. Some need to slow down (=
including the new video watching stream, which has to slow down relative to=
what it is asking for which is to fill up the buffer as fast as possible w=
hen you start watching).
=0A
=0A
The problem with video watching is that when you tune to a new=
video, you want the buffer to fill "as fast as possible", but the others s=
haring the Internet resources don't want to be "starved". They want "fair" =
queuing (not Harrison Bergeron fairness - look that up), but a "best effort=
s" (to use the Cerf and Kahn phrase) fairness, which is non-starvation.
=
=0A
=0A
But fair queueing=
only works if the sources of the traffic cut their rate as a result of con=
gestion signalling.
=0A
The real "fairness" requires=
pushing the problem to the endpoints. It's an end-to-end argument. That's =
why we need to replace "slow start" gradually with something better.
=0A=
=0A
I don't know what th=
e better thing is, but it needs to trigger the AQM mechanism more quickly t=
han does slow start (including causing early signals to the sharers of the =
bottleneck link).
=0A
If we assume that packet drops=
are the only effective signals (because ECN just has failed to be sufficie=
ntly widely deployed - a problem that really, really bothers me), that mean=
s that during the initial phase of a TCP session you need some packets to g=
et dropped between source and sink, and also some packets on the competing =
flows to get dropped. But you don't want too much multiplicative decrease t=
o be triggered in the AIMD control loop of the TCPs involved (or in the QUI=
C control loops whatever they may be).
So ideally, a single very=
high-speed burst of noise packets sent over a period of say 10msec. This w=
ould probably only cause a single round of Multiplicative Decrease. These "=
noise packets" could be all duplicates of the same packet, and would thus n=
ot require retransmission. But they'd trigger a brief moment of congestion.=
=0A
------=_20220901130848000000_75271--