Mitigate UDP MTU mismatches
Opened 6 months ago
#2793newdefect
Mitigate UDP MTU mismatches
Reported by:joggerOwned by:zzz Priority: major Milestone: undecided Component: router/transport Version: 0.9.47 Keywords:
Cc:
Parent Tickets:
Sensitive: no
Description
When sitting on a line with MTU lower than I2P defaults, in my tests UDP traffic was severely impacted because of the far end setting our MTU too high. If the other end sends packets too large, IPv6 drops them because fragmentation is not supported and IPv4 UDP fragments may not properly travel along the path and across firewalls.
The effect is easy to see: Set MTU below defaults and see 100s of peers sending larger packets to us on /peers.
I suggest the following:
-
When creating our UDP address, go down to the interfaces and see, if the IP address we are going to publish is registered on one of them. If yes, use that MTU if lower for our RouterAddress? and our outgoing traffic.
-
In the Establishment Manager use setHisMTU(1280) in places where we currently are unable to determine the remote MTU, instead of using defaults. That MTU can be adjusted afterwards if a RouterAddress? with higher MTU arrives or we receive packets larger than the current value.
-
When creating our UDP address also always publish our IPv4 MTU. This way one could change the static in source in one or two years time if necessary.