move more of the topology docs into their own section

and some cosmetics
This commit is contained in:
Matthias Radestock committed 2015-01-25 12:21:02 +00:00
1 parent 13fc0bf720
commit af6e5c3438
1 file changed
+20 -22
+20 -22
View File
@@ -12,9 +12,9 @@ different each time it is run. These are opaque identifiers as far as
the router is concerned, although the name defaults to a MAC address.
Weave routers establish TCP connections to each other, over which they
perform a protocol handshake and subsequently exchange topology
information (see below). These connections are encrypted if so
configured. Peers also establish UDP "connections", possibly
perform a protocol handshake and subsequently exchange
[topology](#topology) information. These connections are encrypted if
so configured. Peers also establish UDP "connections", possibly
encrypted, which carry encapsulated network packets. These
"connections" are duplex and can traverse firewalls.
@@ -35,19 +35,11 @@ packet to peers.
Weave routers learn which peer host a particular MAC address resides
on. They combine this knowledge with topology information in order to
make routing decisions and thus avoid forwarding every packet to every
peer. The topology information captures which peers are connected to
which other peers; weave can route packets in partially connected
networks with changing topology.
For example, in this network, peer 1 is connected directly to 2 and 3,
but if 1 needs to send a packet to 4 or 5 it must first send it to
peer 3:
![diagram showing five peers in a weave network][diagram1]
Weave peers [communicate their own topology](#topology) with neighbours, who then
pass on changes to their neighbours, and so on, until the entire
network knows about any change.
[diagram1]: images/top-diag1.png "Diagram 1"
peer. Weave can route packets in partially connected networks with
changing topology. For example, in this network, peer 1 is connected
directly to 2 and 3, but if 1 needs to send a packet to 4 or 5 it must
first send it to peer 3:
![Partially connected Weave Network](images/top-diag1.png "Partially connected Weave Network")
### <a name="encapsulation"></a>Encapsulation
@@ -105,24 +97,31 @@ the MAC. This way weave peers never need to exchange the MAC addresses
of clients and need not take any special action for ARP traffic and
MAC discovery.
### <a name="topology"></a>Topology Communication
### <a name="topology"></a>Topology
Topology is communicated over the TCP links between peers. There are
The topology information captures which peers are connected to which
other peers. Weave peers communicate their knowledge of the topology
(and changes to it) to their neighbours, who then pass this
information on to their own neighbours, and so on, until the entire
network knows about any change.
Topology is communicated over the TCP links between peers. There are
two message types:
##### FetchAll
This carries no payload. The receiver responds with the entire
topology model as the receiver has it. FetchAll is sent:
* when an update is received that references a peer that the receiver does not know
* when an update is received that references a peer that the receiver
does not know
* periodically, on a timer, in case any updates have been missed
##### Update
This carries a topology payload. This is sent:
* upon receipt of a FetchAll message, as above,
* when a connection is established - the update contains the two peers
that have just connected
* when a connection is established - the update contains the two
peers that have just connected
* when a connection is deleted - the update contains just the peer
that lost the connection
@@ -191,7 +190,6 @@ If a peer, after receiving a topology update, sees that another peer
no longer has any connections within the network, it drops all
knowledge of that second peer.
#### Out-of-date topology
The peer-to-peer passing of updates is not instantaneous, so it is
very possible for a node elsewhere in the network to have an