5.2 Distributed Scheme Summary
5.2.3 Landmark Selection Protocol
The distributed landmark protocol allows nodes to collectively assign landmark status to each nodes. To do this it must rank the nodes into some partial order,
5.2 Distributed Scheme Summary 113
count the network, and select a point in the ranking that divides the nodes into landmarks and other nodes. The reasoning for this is detailed below in Section 5.3. The distributed landmark selection is discussed in Section 5.5 and is composed of 3 sub-protocols:
• A node ranking protocol.
– For the Internet, the distributed k-core algorithm detailed in Chapter 4
is suitable.
• A spanning tree protocol.
• A counting protocol, over the spanning tree.
The root of the spanning tree co-ordinates the count. An instance of the spanning and counting protocols could be run with each node in the highest rank of nodes as a root of that instance. Counts are sent up the spanning tree and the sums aggregated together by it. The total count is then sent back down the spanning tree by the root.
Next, the order of each rank of nodes must be counted (i.e., the number of nodes of that rank), starting from the highest and working down. This may be done in parallel with the full network count, or it could be done in sequence if state overhead is a concern. The root could co-ordinated which approach is used, as required. This count is accumulated, so that the count for the second highest rank includes all the nodes in the highest rank, the count for the third highest includes all the nodes in the second and highest ranks, and so on. The counts of a rank are sent down the spanning tree to at least all nodes in that rank or higher, so that they may be able to verify the resulting decision.
The last rank whose size is still within the agreed bound on the landmark set size becomes the cut-off rank. All nodes in that rank and higher are elected as
landmarks.
In the original Cowen Landmark Routing scheme, the initial set of landmarks are chosen and then augmented with any nodes whose local routing clusters are overly large. As landmarks in this scheme continue to maintain a local routing cluster, a mechanism to have nodes with overly large clusters be selected as landmarks is not provided. Instead, mechanisms are provided to allow nodes to control and limit their local routing cluster independently of landmark states. This is discussed further in Section 5.4.
The reasoning for using a dynamic landmark selection protocol, with 3 sub-protocols for ranking and counting the nodes, as opposed to more static
alternatives such as importing information from, e.g., Internet registries, is discussed in Section 5.6.
Node Ranking Protocol
A protocol to assign the nodes a ranking in a partial order must be run. This ranking algorithm should be granular enough so that a division can be found in the ranking, such that all the nodes in one division are suitable landmarks. The most suitable ranking protocol to use may vary, according to the topography of the network, and potentially other constraints. E.g., a random ranking is simple to compute and may be suitable in some cases.
For the Internet, the k-core graph decomposition was found to be produce suitable, stable rankings that weight nodes according to the k-core measure of cohesive centrality. A distributed form of the k-core graph decomposition was developed, presented and evaluated in Chapter 4. This protocol converges in no worse than O (diam (G)) ∆ (G), in graphs where communication latencies
correspond with graph distances.
Spanning Tree Protocol
The spanning tree protocol is a subset of a distance-vector protocol. Rather than every node keeping vectors to every other node, instead only one vector is
maintained at each node. I.e., effectively one node generally announces a “route” at any given time – the node that should be the root. The root is selected based on the node ordering and then the node identifier. That is, the node with the lowest (or highest) known identifier in the highest known rank set of nodes is the root,. The spanning-tree protocol reacts to events in the node ordering protocol that lower its node ordering.
This spanning tree is not used for packet forwarding or any messaging, other than helping to co-ordinate the counting of the network.
The messages sent are vector announcements of the form “<root node ID, root
node ranking, distance>”.
The protocol operates as per distance-vector, with the exception that only one announcement is ever forwarded on as best.
The protocol starts with nodes forming adjacencies, and announcing their own ID and ranking to neighbours.
5.2 Distributed Scheme Summary 115
then examine the announcements received from its neighbours and select the announcement with the best root, and then with the shortest distance to that best root. If the announcement has changed from what was previously announced to neighbours, the node must re-announce it, to all but the neighbour it was received from.
Previously flooded announcements should be withdrawn if no longer valid, e.g. if the adjacency with the neighbour they were received from is lost or if the
neighbour they were sent is now known to have a better vector.
This protocol can be trivially extended to allow multiple instances to run, so as to provide redundancy for the counting protocol. This can be done by attaching an instance ID to the message.
The convergence of this protocol, when node ranking has converged, can be no worse than a distance-vector protocol, which is the basis for Internet routing today. The state required is a fixed size message multiplied by the node’s degree, and so is degree-compact.
An in-depth discussion of the reasoning for this protocol is given in Section 5.7, along with further possible optimisations. A worked example is given in
Section 5.7.5.
Counting Protocol
The counting protocol is responsible for producing counts of the network size, and the highest orders of the node ranks. These counts are required to find the suitable division in the node rankings to produce the landmark set.
The counting protocol is not run on the full set of links of a node, but only on the set of links that are in the spanning tree. The counting protocol receives events from the spanning tree protocol on the addition and removal of links from the spanning tree, and reacts to these. The counting protocol is also aware of the local and neighbour ranks, from the state of the node ranking protocol.
The message sent is a simple count, for the given ranking context.
The counting protocol produces at least a full network count, to ensure the growth of the landmark set stays within the desired compact bound on growth. With the
k-core ranking this would be the count of the 1-core. The root may also issue calls
for counts of other ranks, as required to determine the split in the rankings between landmarks and other nodes.