Commit Graph

17 Commits

Author SHA1 Message Date
Marten Seemann
b47e86cb7f add a way to reset the MTU discoverer (#4947)
This will be used when the connection is migrated to a new path.
2025-02-11 04:50:37 +01:00
Marten Seemann
8f27760e60 query MTU discoverer for increases after processing ACK frame (#4941) 2025-01-27 13:50:14 +01:00
Marten Seemann
302308335c migrate the MTU discoverer tests away from Ginkgo (#4907) 2025-01-21 20:17:15 +08:00
Marten Seemann
fba6ea90a0 avoid calling time.Now() in the MTU discoverer (#4906) 2025-01-21 17:31:10 +08:00
Marten Seemann
5794afbcbf remove unused member variable in the mtuDiscoverer (#4905) 2025-01-21 16:29:45 +08:00
Marten Seemann
0db354456a make Path MTU Discovery resilient to random packet loss (#4545) 2024-06-04 02:10:11 -07:00
Marten Seemann
375fc59084 remove unused SetMax method on the mtuDiscoverer (#4543) 2024-05-31 22:00:15 -07:00
Marten Seemann
e41d1f9dd7 logging / qlog: add support for DPLPMTUD (#4517)
* logging / qlog: add support for DPLPMTUD

* improve the MTU discovery integration test
2024-05-14 02:37:54 -07:00
Marten Seemann
2557fb98b2 initialize the MTU discoverer when processing the transport parameters (#4514)
On the client side, we always use the configured packet size. This comes
with the risk of failing the handshake if the path doesn't support this
MTU. If the server sends a max_udp_payload_size that's smaller than this
size, we can safely ignore this: Obviously, the server still processed
the (fully padded) Initial packet, despite claiming that it wouldn't do
so.

On the server side, there's no downside to using 1200 bytes until we
received the client's transport parameters:
* If the first packet didn't contain the entire ClientHello, all we can
do is ACK that packet. We don't need a lot of bytes for that.
* If it did, we will have processed the transport parameters and
initialized the MTU discoverer.
2024-05-13 22:50:26 -07:00
Marten Seemann
e90a0d4e03 increase initial packet size to 1280 bytes (for both IPv4 and IPv6) (#4500) 2024-05-08 20:55:19 -07:00
Marten Seemann
e1bcedc78c ackhandler: use a frame handler interface for OnAcked / OnLost of all frame types (#3888) 2023-06-04 13:04:28 -07:00
Marten Seemann
bef0f3d31a pass the maximum packet size from MTU discoverer to packet packer 2023-06-02 18:35:02 +03:00
Marten Seemann
ecaef04695 initialize the MTU discoverer immediately 2023-06-02 18:35:02 +03:00
Marten Seemann
58cedf7a4f rename module, adjust import paths to quic-go/quic-go (#3680) 2023-01-21 19:53:57 -08:00
Marten Seemann
2e98150cd4 don't send path MTU probe packets on a timer (#3423) 2022-05-20 03:10:39 -07:00
Marten Seemann
c6ae91a8cf introduce a mtuDiscoverer interface 2021-03-03 12:00:14 +08:00
Marten Seemann
04642c9e4d add a MTU discoverer that performs a binary search to determine the MTU 2021-03-03 12:00:14 +08:00