On 2/6/2025 12:55 PM, Martin Thomson wrote:

On Fri, Feb 7, 2025, at 04:59, Greg White wrote:
This is an important topic relating to the expectations and
requirements that transport protocols place on layer 2 protocols.  In
layer 2 standards bodies that I've been involved in, it has been
understood that "the upper layers" expect in-order delivery,
As far as QUIC goes, it is sensitive to reordering in the network.  Some 
reordering will be interpreted as damage (Christian cited the relevant parts) 
and performance suffers in a few minor way when things arrive out of order 
(ACKs are less efficient, data needs to be held, memory accesses are less 
likely to be contiguous, etc...).

However, the idea that the network might seek to "fix" these problems, when doing so 
necessarily involves extra work and delays, is not a good trade.  Stuff that is delayed to 
"fix" a reordering that happened might delay signals that the QUIC stack could use, even 
if some data needs to be held at the endpoint.  QUIC packets contain many things, some of which 
don't need to be strictly ordered to be useful.

Applications that are sensitive to delays will break their traffic into multiple QUIC streams. In case of packet loss, only one of those streams will be blocked, the others will be delivered without "head of queue blocking". Implementing L2 correction will make the response worse, not better, because all the streams will be delayed for the duration of the L2 correction instead of just one.

-- Christian Huitema

Reply via email to