Latency, TCP ACKs and upload needs

Lee ler762 at
Wed Apr 20 15:08:59 UTC 2016

On 4/19/16, Jean-Francois Mezei <jfmezei_nanog at> wrote:
> As part of the ongoing CRTC hearings, the incumbents' claim that
> continued implementation of the current 5/1 standard would make Canada a
> world leader for broadband in the future.
> A satellite company who currently can't even deliver its advertised 5/1
> now brags its next satellite will deliver 25/1.

Take a look at
  TCP Performance Implications of Network Path Asymmetry

> So I have a few questions:
> Considering a single download TCP connection. I am aware that modern TCP
> stacks will rationalize ACKs and send 1 ACK for every x packets
> received, thus reducing upload bandwidth requirements. Is this basically
> widespread and assumed that everyone has that ?

The usual defaults are to ack every other packet & wait 200ms before
acking a single packet.

> Also, as you split available bandwidth between multiple streams, won't
> ack upload requirements increase because ACK rationalisation happens far
> less often sicne each TCP connection has its own context for ACKs?

Yes.  And multiple streams will interfere with each other.
It used to be popular to split a download into multiple streams but I
thought that went out of style now that tcp window scaling is
generally enabled by default.

> When one considers the added latency of satellite links, does 25/1 make
> sense ?  (I need a sanity check to distinguish between marketing spin
> presented to the regulator and real life)
> I noticed that in the USA, EXEDE Satellite advertises 12/3 plans and
> they are also on a VIA Sat satellite, presumably the same vehicle that
> Xplornet tries to deliver its measly 5/1 on. Would all beams be
> identical on a satellite or can they be configured differently with a
> ISP adjustable rate of upload/download inside the same spectrum ?
> Also, when you establish a TCP connection, do most stacks have a default
> window size that gives the sender enough "patience" to wait long enough
> for the ACK ?

There's an initial timeout that's on the order of 3-5 seconds.  Once
the xfer starts ... I've forgotten the details, but the retransmission
timer is based on the "smoothed round trip time" (srtt).

> If sender sends packet 457, doesn't get ACK in time and resends 457,
> doesn't that also result in reduction in window size (the very opposite
> of what would be needed in high latency links) ?

The window size is what the receiver advertises, the congestion window
(cwnd) is what the sender computes based on the advertised window size
& packet loss.  cwnd is what gets reduced when there's packet loss.
& yes, reducing cwnd is bad for thruput as is not having selective
acks (sack) enabled on the receiver.

> And when the first ACK finally arrives, won't the sender assume this ACK
> was for the resent 457 ?

The sender keeps track of the 'smoothed round trip time' (srtt).
Since it can't tell if the ack is for the original or retransmitted
pkt, it's not supposed to use that ack for updating the rtt

>   Or is satellite latency low enough that
> stacks all have enough default "patience" to wait for ACKs and this is a
> non issue ?

should be a non-issue

> (Note Xplornet refused to answer questions on whether they operate
> special proxies at their gound stations to manage TCP connections to
> appear "close").
> What i am trying to get at here is whether 25/1 on satellite, in real
> life with a few apps exchanging data, would actually be able to make use
> of the 25 download speed or whether the limited 1mbps upload would choke
> the downloads ?

dunno.  Assuming the bandwidth is available, I suspect you could get
25Mb/s doing something like downloading a movie from but
for anything interactive like web surfing / gaming I'd bet no - but
because of latency, not the 1Mb/s uplink speed.


More information about the NANOG mailing list