magic_wormhole

Module forwarding

source
Expand description

Client-to-Client protocol to forward TCP connections

This is a new (and still slightly experimental feature) that allows you to forward TCP connections over a wormhole transit connection.

It is bound to an APPID, which is distinct to the one used for file transfer. Therefore, the codes used for port forwarding are in an independent namespace than those for sending files.

At its core, “peer messages” are exchanged over an established wormhole connection with the other side. They are used to set up a transit portal that will be used instead of the wormhole connection, which will be closed. Connections are tracked via an identifier, and multiplexed over the transit channel. The forwarding is “logical” and not “raw”; because “TCP in TCP” tunneling is known to be problematic. Packages are sent and received as they come in, no additional buffering is applied. (Under the assumption that those applications that need buffering already do it on their side, and those who don’t, don’t.)

Structs§

  • The application specific version information for this protocol.
  • A pending forwarding offer from the other side

Enums§

  • An error occurred when establishing a port forwarding session

Constants§

Functions§

  • Request a port forwarding offer from the other side
  • Offer to forward some ports