On 2/6/2025 8:15 PM, Martin Thomson wrote:
On Fri, Feb 7, 2025, at 13:53, Neal Cardwell wrote:
[...] (X less than, say, 10ms), then it may be worth the user's
5G cell phone modem buffering received packets for X milliseconds to
try to deliver in-order data to the receiver if this can be done in a
low-latency manner.
These decisions have knock-on effects (what if every hop in the chain were to
do the same?), but that does sound reasonable on the surface of it. That is,
there might be some value where spending that time on restoring order is more
productive than exposing the receiver to the out of order stuff. It's possible
that retransmissions on a short hop of a link fit that. It's possible that
reordering at that layer is - in the aggregate - more efficient, though I'm
less convinced of that.
Actually, +- 10ms does have bad effects. It creates jitter, and it will
throw time-based congestion control algorithms out of whack. I saw that
first hand when testing Cubic, and especially Hystart, on an LTE
connection. Hystart will mistake a jitter event for a sudden increase of
the queuing delay, get out of Slow-Start early, and then the Cubic
algorithm will take a long time to recover. The occasional 10ms for L2
error correction may seem right at first sight, the error correction
might help some ancient implementation of TCP, but it does hurt some
modern implementations of Cubic and Hystart.
However, I would suggest that this is only true if the 10ms would otherwise be
gainfully occupied by the receiver OR the receiver would not be able to use the
data 10ms faster. If the receiver is eager for work to do, then why deprive it
of that opportunity? If you don't know, why presume?
Yes. When the network tries to "help the end points", that ends up
counter productive more often than not.
-- Christian Huitema