Opened 9 years ago
Closed 9 years ago
#682 closed defect (fixed)
SSU PMTU
Reported by: | zzz | Owned by: | zzz |
---|---|---|---|
Priority: | minor | Milestone: | 0.9.2 |
Component: | router/transport | Version: | 0.9.1 |
Keywords: | Cc: | fnord@… | |
Parent Tickets: | Sensitive: | no |
Description
Background: http://zzz.i2p/topics/1209
Reporter is seeing 1464 byte packets truncated to 1460. 1464 means the other end is sending 1484 byte packets (including 20 byte IP header) and that the sending routers are recent versions (not 0.8.9,10,11 which have MTU bugs). Reporter is using PPTP and ifconfig reports an MTU of 1396 for the interface.
Current SSU uses 620 and 1484 and has rather crude logic to switch between them.
Advanced config i2np.udp.mtu overrides only small MTU value, not large.
TODO
1) Add a config for max mtu, or fix existing config
2) Detect local interface MTU value with NetworkInterface?.getMTU() (Java 6 only)
3) Extend SSU protocol to pass MTU through to other side
3a) use a flag or extended data in the DATA message
3b) add something to one of the Session messages
Subtickets
Change History (6)
comment:1 Changed 9 years ago by
Cc: | fnord@… added |
---|
comment:2 Changed 9 years ago by
Status: | new → accepted |
---|
comment:4 Changed 9 years ago by
0.9.1-6 includes:
1) Change i2np.udp.mtu to set the max MTU, not the initial MTU
2) Use the detected local interface MTU as the max MTU
3c) Publishes the MTU in the netdb if less than the default
What remains is the rest of 3c), i.e. to recognize and use the other side's published MTU
comment:5 Changed 9 years ago by
Milestone: | 0.9.3 → 0.9.2 |
---|
0.9.1-12 includes the rest of 3c), i.e. pulling the peer's MTU from the netdb. Untested.
This works for outbound. For inbound, it works if we already have the netdb entry… otherwise it won't.
To fix that, we need a callback from netdb to SSU when the RI exchange happens (or intercept it in SSU?). Or extend the protocol, i.e. imlement 3b).
Leaving ticket open until tested… or possibly until fixing the inbound problem.
comment:6 Changed 9 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
0.9.2 is out and I see at least two routers advertising a non-default MTU of 1452 in their RouterInfos?. I also see my router adjusting its MTU for that peer to match.
The inbound case is marked as a TODO in EstablishmentManager?. As that's hard and may not be worth it, I'm closing this ticket.
Local MTU detection stubbed out in 0.9.1-5. This is a portion of what is needed for 2) above.