tailscale/wgengine/magicsock
David Crawshaw a6ad3c46e2 magicsock: spray some normal packets after a handshake
In particular, this is designed to catch the case where a
HandshakeInitiation packet is sent out but the intermediate NATs
have not been primed, so the packet passes over DERP.
In that case, the HandshakeResponse also comes back over DERP,
and the connection proceeds via DERP without ever trying to punch
through the NAT.

With this change, the HandshakeResponse (which was sprayed out
and so primed one NAT) triggers an UpdateDst, which triggers
the extra spray logic.

(For this to work, there has to be an initial supply of packets
to send on to a peer for the three seconds following a handshake.
The source of these packets is left as a future exercise.)

Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-24 17:29:35 -05:00
..
derpmap.go wgengine/magicsock: support multiple derp servers, and not just for handshakes 2020-02-20 08:10:12 -08:00
magicsock_test.go wgengine/magicsock: support multiple derp servers, and not just for handshakes 2020-02-20 08:10:12 -08:00
magicsock.go magicsock: spray some normal packets after a handshake 2020-02-24 17:29:35 -05:00