1- README for synergy()
2- ====================
1+ # README for SocketSynergy
2+
3+ > * SocketSynergy helps to connect peers behind firewalls. It is a generic
4+ > solution to a problem that most peer-to-peer applications run into.*
35
46From: Rick van Rein < rick@openfortress.nl >
57
68
7- Quickstart demo
8- ---------------
9+ ## Purpose
10+
11+ The intention of SocketSynergy is to allow peers to connect in spite of
12+ * both* being behind a firewall. This is traditionally considered
13+ impossible, because always one of the firewalls blocks. That is a problem
14+ for peer-to-peer applications, but SocketSynergy makes it possible. And
15+ easy, all it takes is another call ` synergy() ` on top of the general
16+ Socket API.
17+
18+ The assumptions made by SocketSynergy are
19+
20+ * transparent addressing
21+ * firewalls following the general
22+ [ BEHAVE WG] ( https://datatracker.ietf.org/wg/behave/charter/ )
23+ specifications
24+
25+ Specifically note: There is no support for Network Address Translation.
26+ If we want the network to function, we should rely on IPv6. Do have a look
27+ at the other elements in the
28+ [ P2P Toolkit] ( P2P-TOOLKIT.MD )
29+ to learn how reasonable this assumption is.
30+
31+
32+ ## Quickstart demo
933
1034Following is a quick intro showing how to use the synergy() library
1135call and, perhaps one day, syscall.
@@ -34,7 +58,9 @@ standard tool like netcat6::
3458
3559It is also possible to do the same things based on UDP. Just give a
3660first argument `` udp `` to `` listendemo `` and add a `` -u `` option
37- to the ``nc6`` commandline. Of course, with UDP there are no sharp
61+ to the `` nc6 `` commandline. Likewise, SCTP is possible.
62+
63+ Of course, with UDP there are no sharp
3864boundaries to the start and end of a session. The trick used to
3965open the port is sending out a UDP packet that, once again, drops
4066as soon as it has crossed the last firewall protecting this domain.
@@ -46,8 +72,8 @@ remote firewalls might receive it and respond with RST, causing
4672the incoming firewalls to close the just-punched hole).
4773
4874
49- Code reference
50- --------------
75+ ## Code reference
5176
5277This code was written based on RFC 2292, "Advanced Sockets API for
5378IPv6", by W. Stevens and M. Thomas.
79+
0 commit comments