summaryrefslogtreecommitdiff
path: root/docs/TCP_Network.txt
blob: b1059892338adba7aae780508f075dcc379fd952 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
It has come to our attention that to achieve decent market penetration Tox 
must work behind ALL internet connections, may they be behind enterprise NATs 
or any other bad network conditions. 

The people who have issues with the UDP direct connection approach seem to be a 
small minority though it is hard to estimate how many.

This means that routing their packets using good nodes on the network will 
probably not take a huge toll on the network and will assure that people
can use Tox regardless of the quality of their internet connection.


How it's probably going to work:
1. Alice, a Tox client on a TCP only network generates a temporary public key 
and connects to a bootstrap node.

2. Using the bootstrap node she finds and connects to a (exact number to be 
determined later) number of random nodes that have TCP relay support.

3. She uses the onion through the TCP relay connections to send friend requests 
or tell online friends which TCP nodes she is connected to and her temporary 
public key.

4. Bob receives an onion packet from Alice telling him which nodes she is 
connected to. Bob connects to these nodes and establishes a routed connection 
with alice using that temporary public key.

5. That connection is used by both to transmit encrypted Messenger and A/V 
packets.

6. If one of the nodes shuts down while it is routing traffic, Alice and Bob 
just switch to one of the other nodes to which they are both connected.


Actual implementation details coming soon.