[PATCH 4 of 4] QUIC: path MTU discovery
Roman Arutyunyan
arut at nginx.com
Fri Jul 7 07:58:13 UTC 2023
On Thu, Jul 06, 2023 at 05:57:17PM +0400, Roman Arutyunyan wrote:
> # HG changeset patch
> # User Roman Arutyunyan <arut at nginx.com>
> # Date 1688481216 -14400
> # Tue Jul 04 18:33:36 2023 +0400
> # Node ID 1a49fd5d2013b6c8d50263499e6ced440927e949
> # Parent a1ea543d009311765144351b2557c00c8e6445bf
> QUIC: path MTU discovery.
>
> MTU selection starts by stepping up until the first failure. Then binary
>in search is used to find the path MTU.
[..]
As an alternative, the ascending part can be changed from additive to
multiplicative, which would work better on the off chance MTU is really high.
diff --git a/src/event/quic/ngx_event_quic_migration.c b/src/event/quic/ngx_event_quic_migration.c
--- a/src/event/quic/ngx_event_quic_migration.c
+++ b/src/event/quic/ngx_event_quic_migration.c
@@ -11,7 +11,6 @@
#define NGX_QUIC_PATH_MTU_DELAY 1000
-#define NGX_QUIC_PATH_MTU_STEP 256
#define NGX_QUIC_PATH_MTU_PRECISION 16
@@ -592,7 +591,7 @@ ngx_quic_discover_path_mtu(ngx_connectio
path->mtud = (path->mtu + path->max_mtu) / 2;
} else {
- path->mtud = path->mtu + NGX_QUIC_PATH_MTU_STEP;
+ path->mtud = path->mtu * 2;
if (path->mtud >= qc->ctp.max_udp_payload_size) {
path->mtud = qc->ctp.max_udp_payload_size;
--
Roman Arutyunyan
More information about the nginx-devel
mailing list