Mercurial > hg > nginx
comparison src/event/quic/ngx_event_quic.c @ 8696:88c9c868a7c9 quic
QUIC: disabled non-immediate ACKs for Initial and Handshake.
As per quic-transport-33:
An endpoint MUST acknowledge all ack-eliciting Initial and Handshake
packets immediately
If a packet carrying Initial or Handshake ACK was lost, a non-immediate ACK
should not be sent later. Instead, client is expected to send a new packet
to acknowledge.
Sending non-immediate ACKs for Initial packets can cause the client to
generate an inflated RTT sample.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 04 Feb 2021 20:39:47 +0300 |
parents | 0b3d70fbba99 |
children | faa3201ff351 |
comparison
equal
deleted
inserted
replaced
8695:0b3d70fbba99 | 8696:88c9c868a7c9 |
---|---|
5525 ngx_queue_remove(&f->queue); | 5525 ngx_queue_remove(&f->queue); |
5526 | 5526 |
5527 switch (f->type) { | 5527 switch (f->type) { |
5528 case NGX_QUIC_FT_ACK: | 5528 case NGX_QUIC_FT_ACK: |
5529 case NGX_QUIC_FT_ACK_ECN: | 5529 case NGX_QUIC_FT_ACK_ECN: |
5530 /* force generation of most recent acknowledgment */ | 5530 if (ctx->level == ssl_encryption_application) { |
5531 ctx->send_ack = NGX_QUIC_MAX_ACK_GAP; | 5531 /* force generation of most recent acknowledgment */ |
5532 ctx->send_ack = NGX_QUIC_MAX_ACK_GAP; | |
5533 } | |
5534 | |
5532 ngx_quic_free_frame(c, f); | 5535 ngx_quic_free_frame(c, f); |
5533 break; | 5536 break; |
5534 | 5537 |
5535 case NGX_QUIC_FT_PING: | 5538 case NGX_QUIC_FT_PING: |
5536 case NGX_QUIC_FT_PATH_RESPONSE: | 5539 case NGX_QUIC_FT_PATH_RESPONSE: |