EPS Conduits  v0.0.2-775
networking over networking
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
EPS Conduits Documentation

Help support the
development of
EPS Conduits

EPS Conduits

Stéphane Charette, steph.nosp@m.anec.nosp@m.haret.nosp@m.te@g.nosp@m.mail..nosp@m.com
See also
MIT license, see license.txt for details


EPS establishes secure TCP and UDP network connections between computers on a single network, or distributed across many different networks. The connections between computers are named "EPS conduits".

Network topology showing EPS conduits in green.

In the above network diagram, all EPS-related connections and addresses are shown in green. Normally, the two devices on LAN #1 cannot easily access resources on LAN #2. With EPS conduits, another IP address is automatically assigned to all computers running the EPS client. Thus all computers on the EPS network can communicate as if they were on the same LAN segment.

Network topology with routable EPS server.

The above network diagram shows how the EPS server can be hosted anywhere on the internet, it doesn't have to be in the same location as the EPS clients. As in the previous example, all communication within LAN #1 bypasses the central EPS server. Same with clients on LAN #2. The only time the EPS server is used is on startup when clients want to join a EPS network, and when clients from different physical networks need to communicate.

Typical UDP behaviour is exploited when possible to accelerate communication between the different computers. This can include sending TCP over reliable UDP.

Computers running the EPS client software will attempt to form a mesh. The EPS client has the necessary knowledge to attempt to directly connect to other peers without having to route traffic through the EPS server. Only when a direct connection cannot be established (likely due to firewall or NAT) will network traffic be routed through the EPS server.


Graphviz network diagram

The EPS server can generate Graphviz-format network diagrams. The network diagram includes details on bytes transferred and EPS network bandwidth usage.

Network diagram with bandwidth and transfer statistics.

See --graphviz for details on how to generate network diagrams.