(maybe more generic?)
This specification describes how 2 or more tox clients can setup and run tcp/udp traffic forwarding. A common usecase for this is securely exposing local webserver to a friend or forwarding game traffic without setting up a vpn or punching holes into a firewall.
If a successful setup is performed,
- peer
A
sends anOffer
toB
, B
sends anAccept
back- and
A
Acknowlages with anAck-Acc
. After thatData
packets can flow in both directions, until either side sends aDeny/Kill
packet. There might be an unspecified delay betweenOffer
andAccept
, since the user needs to manually accept, or might just ignore it all together. Instead ofAccept
, aDeny/Kill
might also be sent instead to tell theOffer
is no longer valid (from the offerer) or is not wanted right now (offer receiver).
- random
msg_id
(namespace is shared between sender and receiver, but not anyone else) - type (tcp/udp)
- direction (eg is it a server offer or a connection offer)
- suggested port (usually the port the offerer used, 0 for random)
- name (human readable, might be an application name or other to identify the purpose)
- the
msg_id
of the offer
- the
msg_id
of the accept/offer
- the
msg_id
of the accept/offer/running mapping
- the
msg_id
of the running mapping Usually sent via lossy packets. Since its for udp, too large packets can be dropped. (no reassembly support for now)
- the
msg_id
of the running mapping Usually sent via "lossless" packets. Might need reassambly
- 08.05.2024 Green-Sky: wrote down inital spec (v0.1)