[nginx] QUIC: ignore congestion control when sending MTU probes.

noreply at nginx.com noreply at nginx.com
Tue Apr 15 15:02:03 UTC 2025


details:   https://github.com/nginx/nginx/commit/a40cc700238796d6668a461e121f6ffee5066394
branches:  master
commit:    a40cc700238796d6668a461e121f6ffee5066394
user:      Roman Arutyunyan <arut at nginx.com>
date:      Mon, 6 Jan 2025 10:19:56 +0400
description:
QUIC: ignore congestion control when sending MTU probes.

If connection is network-limited, MTU probes have little chance of being
sent since congestion window is almost always full.  As a result, PMTUD
may not be able to reach the real MTU and the connection may operate with
a reduced MTU.  The solution is to ignore the congestion window.  This may
lead to a temporary increase in in-flight count beyond congestion window.

---
 src/event/quic/ngx_event_quic_migration.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/event/quic/ngx_event_quic_migration.c b/src/event/quic/ngx_event_quic_migration.c
index 463eeb503..1d914ffd8 100644
--- a/src/event/quic/ngx_event_quic_migration.c
+++ b/src/event/quic/ngx_event_quic_migration.c
@@ -924,6 +924,7 @@ ngx_quic_send_path_mtu_probe(ngx_connection_t *c, ngx_quic_path_t *path)
     frame->level = ssl_encryption_application;
     frame->type = NGX_QUIC_FT_PING;
     frame->ignore_loss = 1;
+    frame->ignore_congestion = 1;
 
     qc = ngx_quic_get_connection(c);
     ctx = ngx_quic_get_send_ctx(qc, ssl_encryption_application);


More information about the nginx-devel mailing list