Various odd errors recently (PacketSequenceException for example) seem to have been caused by running several JFK negotiations simultaneously and all of them succeeding. STS was stateful and therefore could only have one in flight, but JFK can have more than one. So one completes, then another completes; this exposed a bug which I fixed, but it is problematic as the second connection will clobber the first.
Options: - 1) Introduce some state, resend the same message 2 after receiving the same message 1. Bad: memory DoS. - 2) Ignore the problem. It works, don't fix it. Probably what we'll go with. - 3) Stagger the sending of the phase 1 handshakes. The problem is that we may have to keep firewall tunnels open, so we have to send to each address every <30 secs. But there should be space within this to send to a few addresses... - 4) Support multiple temporary connections. Drop according to a defined order in the noderef. - 5) Support multiple permanent connections. Separate AIMD for each connection, so messages can be distributed according to whichever connection has the lowest RTT and has available bandwidth. Any comments? -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20071027/26eb7cb8/attachment.pgp>
