Welcome! Log In Create A New Profile

Advanced

[PATCH 0 of 3] QUIC post-migration address issues

Roman Arutyunyan
May 02, 2023 08:36AM
The first issue was reported in ticket #2488. The second and third issues were
observed while working on the first one.

The issues manifest themselves best when migrating to another IP address. When
testing migration with ngtcp2 --change-local-addr, only the port is changed.
I had to patch ngtcp2 client to make it migrate to a new IP address, which has
to be bigger in text representation to trigger the length issues. However,
while doing that, it became clear that nginx does not handle well this kind of
migrations. I observed the following issues:

- After address validation completes, in_flight counter is reset, but in-flight
packets which contributed to the old value of the counter are not ignored.
This resulted in in_flight counter underflow, followed by a connection stall.
The counter reset does not happen if the IP address stays the same.

- While congestion controller is reset on successful address validation,
RTT estimator is not. According to RFC 900, both should be reset.

- While address validation is in progress, nginx sends packets using the new
path. This is something allowed by RFC 9000. However, it's not clear
which congestion/RTT/PTO/loss detection to use during that period. The
safest solution is to block all output until PATH_RESPONSE is received or
validation timeout expires.

These issues were partially addressed in this patchset by Sergey:

https://mailman.nginx.org/pipermail/nginx-devel/2022-December/IMZ7IUAF67OO6OVFHQHTFMUODV6OA73M.html

The series is not yet commited. Hopefully we'll get back to it shortly.

--
Roman Arutyunyan
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH 0 of 3] QUIC post-migration address issues

Roman Arutyunyan 384 May 02, 2023 08:36AM

[PATCH 1 of 3] QUIC: fixed addr_text after migration (ticket #2488)

Roman Arutyunyan 86 May 02, 2023 08:36AM

[PATCH 2 of 3] QUIC: set c->socklen for streams

Roman Arutyunyan 88 May 02, 2023 08:36AM

[PATCH 3 of 3] QUIC: keep stream sockaddr and addr_text constant

Roman Arutyunyan 129 May 02, 2023 08:36AM

Re: [PATCH 3 of 3] QUIC: keep stream sockaddr and addr_text constant

Roman Arutyunyan 80 May 10, 2023 01:48PM

Re: [PATCH 3 of 3] QUIC: keep stream sockaddr and addr_text constant

Sergey Kandaurov 82 May 11, 2023 06:28AM

Re: [PATCH 3 of 3] QUIC: keep stream sockaddr and addr_text constant

Roman Arutyunyan 98 May 11, 2023 11:42AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 222
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready