Opened 6 years ago
Last modified 5 years ago
#1613 open defect
SSU packet ordering issues / restore multiple PacketHandler threads
Reported by: | zzz | Owned by: | zzz |
---|---|---|---|
Priority: | minor | Milestone: | soon |
Component: | router/transport | Version: | 0.9.20 |
Keywords: | Cc: | ||
Parent Tickets: | Sensitive: | no |
Description
PacketHandler? threads were reduced to 1 due to issues raised in #660 andhttp://zzz.i2p/topics/1198 post 8. While SSU can handle packets out-of-order, it can't handle a Data packet before the SessionConfirmed?.
Other packets before SessionConfirmed? (relay etc.) are possible but much less likely.
Even without multithreading, packets could get reordered or dropped in the internet. A dropped SessionConfirmed? would appear to be fatal? We don't retx it? That's a separate problem…
A Data packet coming after a Destroy packet would also be dropped but is much less likely, if not impossible, since we'd only send a Destroy after idle.
Multiple threads may make SSU go faster (although zab in #660 was skeptical… need to do tests), so we should queue Data packets received on an unconfirmed connection and wait for the SessionConfirmed?.