[Dxspider-support] talk messages
djk at tobit.co.uk
Sat Jan 20 19:23:59 CET 2007
Steve Murphy wrote:
> So, then, what stops PC16s from propagating?
And they do this because otherwise you would not get a spot (or an
ann/full) in edgeways. Basically, the problem is that the routing
sentences are designed for a loop free network. Although various
heuristics are in place to mitigate the fact that there are some loops,
the main thing stopping (most) loops is accept and reject/route commands.
This partitions the network to a degree, sufficient to control the
problem of the uncontrolled loops that would occur without these route
control commands in place. Even now, when a new node comes on and asks
for "everything" and then connects to two or three other nodes, we get
the wall to wall PC16/17/19/21s (as well as PC41s).
I have addressed this problem in the upcoming 1.53 (finally)[and which
is now in beta testing on 5 nodes] in these ways:
1. And most important, nodes only send out their own configuration,
together with that of any *directly connected* "old style" nodes. They
will do this every 30 mins.
2. Nodes are responsible for determining the shape of the network from
these periodic broadcasts and are expected to "timeout" nodes that they
have not heard from after 3 30 minute period.
3. Talk/Announce/Chat have been unified so that they are all either
broadcast (Ann/Chat) or can be (and will) be broadcast (Talk) if no
obvious route to a user/node exists. Because only absolutely accurate
lists of routes will exist (from 1.53 PC9x capable nodes and their
directly connected legacy nodes only) in each node, the edge nodes
(which have everybody that they "think" is connected using oldstyle
routing info) are responsible for gatewaying to/from these legacy nodes.
4. Messages (as in bulletins) will also be treated in roughly the same way.
5. PC41s will be aggregated and sent out as one PC95 sentence. It is
possible that I may start to ignore any non-PC92 user data completely.
All this whilst maintaining full compatibility at the "edges" of the
DXSpider "network". Incoming Talk messages will be proxied using the new
protocol, as will chat, announces will simply be passed through.
All this is being done with some carefully designed sentences in the
PC9x range which all have the general structure:-
PC9x^<origin node>^<timestamp^<rest of sentence>^H99^
No PC9x sentence will be sent to a node unless it advertises that it can
handle it in the PC18 received on connection and the connecting node
sends (at least) a PC92 in response.
It is guaranteed that no PC9x sentence will ever be routed back to the
<origin node> and also no sentence will be passed on unless the
<timestamp> is greater than the last <timestamp>. It is by these two
means that loops (at least for PC9x sentences) will be stopped. It also
means that we can have a "plug-an-play" network topology.
An example of a periodic configuration PC92 is:
This indicates that WR3D has 2 PC9x capable nodes and 4 "legacy" nodes
connected, as well as 3 users. The <timestamp> is the no of seconds
since midnight. If (as happens with a periodic broadcast) more than one
sentence is sent then a decimal part is added (for easy > calculations).
showing the connected node K1XX's current configuration.
Hope this helps.
More information about the Dxspider-support