mirror of
https://github.com/nginx/nginx.git
synced 2025-06-12 21:52:41 +08:00
QUIC: do not shrink congestion window after losing an MTU probe.
As per RFC 9000, Section 14.4: Loss of a QUIC packet that is carried in a PMTU probe is therefore not a reliable indication of congestion and SHOULD NOT trigger a congestion control reaction.
This commit is contained in:
parent
cab22e246c
commit
c0aec46b6e
@ -755,6 +755,14 @@ ngx_quic_congestion_lost(ngx_connection_t *c, ngx_quic_frame_t *f)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (f->ignore_loss) {
|
||||||
|
ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0,
|
||||||
|
"quic congestion lost ignore t:%M win:%uz if:%uz",
|
||||||
|
now, cg->window, cg->in_flight);
|
||||||
|
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
cg->recovery_start = now;
|
cg->recovery_start = now;
|
||||||
cg->window /= 2;
|
cg->window /= 2;
|
||||||
|
|
||||||
|
@ -923,6 +923,7 @@ ngx_quic_send_path_mtu_probe(ngx_connection_t *c, ngx_quic_path_t *path)
|
|||||||
|
|
||||||
frame->level = ssl_encryption_application;
|
frame->level = ssl_encryption_application;
|
||||||
frame->type = NGX_QUIC_FT_PING;
|
frame->type = NGX_QUIC_FT_PING;
|
||||||
|
frame->ignore_loss = 1;
|
||||||
|
|
||||||
qc = ngx_quic_get_connection(c);
|
qc = ngx_quic_get_connection(c);
|
||||||
ctx = ngx_quic_get_send_ctx(qc, ssl_encryption_application);
|
ctx = ngx_quic_get_send_ctx(qc, ssl_encryption_application);
|
||||||
|
@ -271,6 +271,7 @@ struct ngx_quic_frame_s {
|
|||||||
unsigned need_ack:1;
|
unsigned need_ack:1;
|
||||||
unsigned pkt_need_ack:1;
|
unsigned pkt_need_ack:1;
|
||||||
unsigned ignore_congestion:1;
|
unsigned ignore_congestion:1;
|
||||||
|
unsigned ignore_loss:1;
|
||||||
|
|
||||||
ngx_chain_t *data;
|
ngx_chain_t *data;
|
||||||
union {
|
union {
|
||||||
|
Loading…
Reference in New Issue
Block a user