123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- This document describes how nodes in a VPN find and connect to eachother and
- maintain a stable network.
- Copyright 2001-2006 Guus Sliepen <guus@tinc-vpn.org>
- Permission is granted to make and distribute verbatim copies of
- this documentation provided the copyright notice and this
- permission notice are preserved on all copies.
- Permission is granted to copy and distribute modified versions of
- this documentation under the conditions for verbatim copying,
- provided that the entire resulting derived work is distributed
- under the terms of a permission notice identical to this one.
- $Id$
- 1. Synchronisation
- ==================
- Each tinc daemon has zero or more connections to other tinc daemons. It will
- try to keep its own information synchronised with the other tinc daemons. If
- one of its peers sends information, the tinc daemon will check if it is new
- information. If so, it will update its own information and forward the new
- information to all the other peers.
- This scheme will make sure that after a short amount of time all tinc daemons
- share the same information. It will also almost completely prevent information
- from looping, because "new" information that is already known is ignored and
- not forwarded any further. However, since information can also be deleted
- there's the possibility of a looping sequence of add/delete messages. This is
- resolved by additionaly adding a unique identifier to each broadcasted message.
- Messages are dropped if the same message with that identifier has already been
- seen.
- 2. Routing
- ==========
- Every node tells its peers to which other peers it is connected. This way
- every node will eventually know every connection every node has on the VPN.
- Each node will use graph algorithms to determine if other nodes are reachable or not and
- what the best route is to other nodes.
- Because all nodes share the same information, using a deterministic algorithm
- each node will calculate the same minimum spanning tree for the entire VPN.
- The MST will be used to send broadcast VPN packets.
|