COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR UPDATING A NETWORK'S KNOWLEDGE OF THE NETWORK'S TOPOLOGY
20220053052 · 2022-02-17
Inventors
Cpc classification
H04L9/3239
ELECTRICITY
H04L63/00
ELECTRICITY
H04L9/3297
ELECTRICITY
International classification
Abstract
The computer implemented invention provides a method, corresponding systems and arrangement within a network for detecting changes in the topology, ordering those changes by occurrence and constructing a new topology reflecting the changes. The invention addresses problems with keeping the knowledge of the network topology at each network node current, particularly when the network topology is dynamic, i.e. when links fail and recover at arbitrary times. The topology updating is event driven, as it is activated when some change in the network, particularly with nodes and links occurs. Events cause topology changes to be reported to other nodes in the network. Timestamping of messages allows the messages to be correctly applied as the most recent update or discarded. An algorithm is provided that allows each merchant node to maintain a correct view of the network topology despite link and node failures.
Claims
1-19. (canceled)
20. A computer-implemented method comprising: detecting, by a first node in a network, cessation of receiving information, within a time interval, indicative of a topology data set from a second node in the network; generating, by the first node and in response to the detection, a change of information indicative of the topology data set accessible to the first node, wherein the change indicates a value comparable with another value of another topology data set to determine whether the topology data set is more recent than the other topology data set; and sending, by the first node, the generated change to another node in the network.
21. The computer-implemented method of claim 1, further comprising: sending, by the first node, an entirety of information indicative of the topology of the data set accessible to the first node to the other node.
22. The computer-implemented method of claim 1, further comprising selecting the other node as a result of the other node being within an adjacency radius or a neighbour radius relative to the first node.
23. The computer-implemented method of claim 1, wherein the value is from a logical clock; and the method further comprises: advancing, in response to detecting the termination of receiving information, time of the logical clock; advancing, in response to generating the change, time of the logical clock; and including the advanced time of the logical clock of the first node when sending the generated change.
24. A system, comprising: one or more processors; and memory that stores computer-executable instructions that, as a result of execution, cause the one or more processors to: receive, at a first node in a network, an update to information indicative of a topology data set from a second node in the network; determine, at the first node, a condition indicated by the update is met; determine, at the first node, the update is more recent than a stored topology data set of the first node; and update, at the first node and in response to the determinations, the stored topology data set of the first node corresponding to the received update.
25. The system of claim 24, wherein the instructions that cause the one or more processors to update the stored topology data sets include further instructions to cause the system to advance a logical clock of the first node.
26. The system of claim 24, wherein the instructions further include instructions that, as a result of execution by the one or more processors, further cause the system to send, by the first node, information indicative of the updated topology data set to a third node.
27. The system of claim 26, wherein the instructions further include instructions that, as a result of execution by the one or more processors, further cause the system to: advance a logical clock of the third node; and send, by the third node and including, the information indicative of the updated topology data set to a forth node, the information including a time indicative of the advanced logical clock of the third node.
28. The system of claim 24, wherein the condition indicates that the update contains one or more statuses of links not in the topology data set of the first node.
29. The system of claim 24, wherein the first node and the second node participate within the network with equivalent privileges or abilities.
30. The system of claim 24, wherein the instructions that cause the one or more processors to determine the update is more recent is based at least in part on the update indicating a more advanced logical time compared to one or more additional topology data sets accessible to the first node.
31. A non-transitory computer-readable storage medium comprising executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least: receive, at a first node in a network, an update to information indicative of a topology data set from a second node in the network; determine, at the first node, a condition indicated by the update is met; determine, at the first node, the update is more recent than a stored topology data set of the first node; and update, at the first node and in response to the determinations, the stored topology data set of the first node corresponding to the received update.
32. The non-transitory computer-readable storage medium of claim 31, wherein the instructions that cause the one or more processors to determine the update is more recent is based at least in part on the update indicating a more advanced logical time compared to one or more additional topology data sets accessible to the first node.
Description
BRIEF SUMMARY OF THE DRAWINGS
[0111] These and other aspects of the present invention will be apparent from and elucidated with reference to, the embodiment described herein. An embodiment of the present invention will now be described, by way of example only, and with reference to the accompany drawings, in which:
[0112]
[0113]
[0114]
[0115]
[0116]
DETAILED DESCRIPTION
[0117] A central problem for unstructured peer-to-peer (P2P) networks is topology maintenance. For instance, how to properly update neighbour variables when nodes join and leave the network and/or when nodes crash abruptly. The invention is concerned with a topology update algorithm.
[0118] Within P2P networks, there is a need for searching, information dissemination, broadcasting and the like need to know “who is connected to whom” or “who knows whom”. In this context a number of broadcast algorithms are known, such as probabilistic algorithms and deterministic algorithms.
[0119] Epidemiological Algorithms or Gossip Protocols are probabilistic in nature and they do not rely on fixed topologies. Nodes exchange information with random neighbours to implement a diffusion-like computation pattern, and as a result the system converges to a state where all the nodes know the message. Gossip protocols are scalable because each node sends only a fixed number of messages, independent of the number of nodes in the network. In addition, a node does not wait for acknowledgments nor does it take some recovery action should an acknowledgment not arrive. They achieve fault-tolerance against intermittent link failures and node crashes because a node receives copies of a message from different nodes. No node has a specific role to play, and so failed node will not prevent other nodes from continuing sending messages. Hence, there is no need for failure detection or specific recovery actions.
[0120] A drawback of gossip protocols is the number of messages that they send. One class of gossip protocols (anti-entropy protocols) send an unbounded number of messages in nonterminating runs.
[0121] Spanning Tree Algorithms such as breadth-first search are a class of deterministic algorithms. Spanning trees provide a simple way to visualize networks as “backbones”, i.e. a minimal set of edges that connect nodes. The idea is simple; a spanning tree is first constructed and used to collect local data variables from each node, and then aggregate the data towards the root node (or sink node). Each node transmits its value to its own parent. At each non-leaf node, the value of its child nodes, in addition to its own value, is processed before transmitting the result up the tree. Since breadth-first protocol does not generate a node in the tree until all the nodes at shallower levels have been generated, it always finds a shortest path to a node. Spanning tress are a very efficient form of information distribution and collection, and in how they calculate the new topology of the network.
[0122] In general, structures like spanning trees are considered structurally fragile: single vertex or edge failure causes the broadcast to fail.
[0123] The topology-update problem is the problem of keeping the knowledge of the network topology at each network site current, when the network topology is dynamic, i.e. when links fail and recover at arbitrary times. The correct operation of any topology algorithm depends strongly on the way in which links status changes (failures and repairs) are detected by the network nodes and other factors.
[0124] There are several subtleties in the challenges that underlay the use of topology algorithms and which should be accounted for in any solution: [0125] A link may experience several topology changes within a short time. Other network nodes must eventually determine which changes was the most recent. Nodes must be able to distinguish between old and new information about the status of a link. [0126] While a topology algorithm is running, additional topology changes may occur. The topology algorithm must be capable of either incorporating new information during execution, or of starting a new algorithm version. If different versions are used, each node must be able to determine which is the most recent version. [0127] The repair of a single link can cause two parts of the network which were disconnected to reconnect. Each part may have out-of-date topology information about the other. The algorithm must ensure that the two parts eventually agree, and adapt the correct network topology. [0128] The ability for a network to realise changes within itself is important for fast and effective communication through the network and for the network to function fully. As an example, in order to provide a fast payment network for digital currencies, the transactions and other information must be shared through the distributed network completely and quickly.
[0129] In a method which relies on threshold cryptosystems to protect secrets by distributing shares to participants, a network consisting of a set of merchants who collectively hold a subset of the secret shares is first constructed. The second half of the secret share is held by the customer(s). The merchant network performs important tasks, such as creating signatures, updating key shares, defining the threshold level, validating transactions etc. Their ability to collaborate and communicate, and to be aware of the network topology is essential in these situations.
[0130] In the following description, we present an algorithm that allows each merchant node to maintain a correct view of the network topology despite link and node failures. The algorithm allows the network to automatically return to a stable configuration within a finite number of steps (so called “self-stabilisation”) and uses logical clocks to accurately capture the causality relation between events. The topology updating protocol is event driven, i.e. it is activated when some change is detected.
[0131] The system includes steps for: [0132] detecting changes in the topology; [0133] ordering those changes by occurrence; and [0134] constructing a new topology reflecting the changes.
[0135] To enable a full description of the invention, it is useful to understand a mathematical model of a network.
[0136] Referring to
[0137] The network can be represented by a graph G=(V, E) where V is the set of nodes, each having a distinct identity, and E is the set of edges (or links).
[0138] The mathematical model uses the following definitions:
[0139] Definition 1. (A definition of “Hop”) The distance d(i,j) between two nodes i and j is equal to the minimum number of links connecting the nodes. Thus in
[0140] Definition 2. (A definition of “Adjacent Nodes) The adjacent nodes, adj(i), for node i in set V, t∈V, are nodes j in set V, j∈V, within defined distance or adjacent radius r.sub.adj. Hence:
[0141] Definition 3. (A definition of “Neighbour Nodes”) The neighbour nodes, N(), for node i in set V, i∈V, are nodes j in set V, j∈V, within defined distance or horizon radius H≥r.sub.adj. Hence:
[0142] In , then the neighbour nodes are represented in blue; namely nodes 5 and 6.
[0143] Detecting Changes
[0144] Clearly to be able to account for a topological change, there is a need to be able to detect such a change.
[0145] Topological changes may occur at any time. Thus, we make the following assumptions about the system to capture any kind of initial faults. Each node i in the network maintains the identities of its adjacent neighbours in a list, adj(i). Node i periodically sends a test messages “I'm alive” to its adjacent nodes. Referring to
[0146] The frequency of the dispatch of “I'm alive” messages has a large impact on the efficiency of the error detection mechanism. To achieve a short error detection time, the “I'm alive” messages have to be sent and checked very frequently.
[0147] Each processor in a node i has a local clock that is used to measure time intervals. The clocks at different nodes may not be synchronized with each other. For each link () node i maintains a timer
for its adjacent nodes j∈adj(i). If node i does not receive the “I'm alive” message from node j within a time interval
, it assumes that the link (
) is no longer available and removes j from its adjacent node set. It then updates its current (possibly wrong) topology table T.sup.1. A topology table is a list of the operational status of the links that are directly connected to node i. Thus referring to
[0148] The above consideration forms a first topology update rule, namely: [0149] 1. When a node detects that an adjacent link has failed, the failed status is entered in the node's main topology table.
[0150] It is desirable to share this updated topology table with other nodes in the set of nodes, V. When this occurs, a node updates its own topology table according to the topology table received from the adjacent node. Hence, a second topology update rule is formed, namely: [0151] 2. When a node receives an entire main topology table from a neighbour, it updates its main topology table by using the main topology update algorithm (described below).
Ordering Changes
[0152] As noted above, updated topology table messages are only sent in response to topological change that has been detected. Since all messages sent in the network are subject to delay, a node can never be certain that it knows the correct topology at some instant of time. One or more of the updated topology table messages may be older and out of date compared with the status noted in another updated topology message, irrespective of its time of reception. Causal ordering broadcast (as detailed in Raynal, M., and Singhal, M.,—Capturing Causality in Distributed Systems—1996 IEEE), ensures that if two messages are causally related and have the same destinations, they are delivered to the application in their sending order.
[0153] The invention uses a system of logical clocks, where every node (peer) has a logical clock that is advanced using a set of rules described below. As a result, every message is assigned a timestamp, by which a process can infer the causality relation between events. The timestamps assigned to events obey a monotonicity property; they are always increasing. That is, if an event a causally effects an event b, the timestamp of a is smaller than the timestamp of b. Event b is the effect of event a in that case.
[0154] The logical clock advances according to the following rules; vector time clocks.
[0155] In a system of vector clocks, the time domain is represented by a set of finite-dimensional, non-negative integer vectors. Each node i maintains a vector ) where
is the local logical clock of node i and describes the logical time progress of node i from time 1 through to time n.
T.sub.ij represents node i's latest knowledge of node j's local time where node j∈adj(i).
[0156] We denote the dimension of T.sub.i by dim(), and we have dim(
) equal to the size of adj(i).
[0157] The time stamp of an initial local event on node i is all 0's except for the i.sup.th entry, which is 1. If T.sub.ij=x, node i knows that the local time at node j has progressed up to x. The vector T.sub.i constitutes node t's view of the logical global time; node uses it to timestamp events. The time stamp of a received message is the element-wise max of the current stamp and the incoming vector time stamp.
[0158] This operation is illustrated in
[0159] Node A goes through a similar process of updating by 1 and amending by the addition of 1 to result in a message to node B of A:2 B:2 C:1. By the time node B receives this message, node B has noted another independent event and has communicated that to C. Thus there is an update of node B by 1, but the amendment is the addition of 1 to the node B local time (3 by this point) rather than the addition of 1 to the node B local time in the message (only 2 at this time). Hence the new message sent to A has a value of B:5 (3+1+1 and not 2+1+1).
[0160] Subsequent messages are dealt with in the same manner. The second message sent by node B at time 3 is independent of the other messages discussed above, message one (C to B), message two (B to A) and message four (A to B) and message five (B to C).
[0161] The above consideration forms the logical clock update rules, namely: [0162] 1. Before sending a message, node updates its local logical time +1. [0163] 2. Upon receiving a message (
, T.sub.j) from node j ∈adj(i), node i executes the following sequence of action [0164] a. Update s logical global time as follows ∀
adj(i),
[0165]
[0166] Significantly, by the time node 2 receives the second message (m.sub.2,T.sub.2) from node 3, node 2 has already received (m.sub.2,T.sub.1) from node 1. Node 2 knows the order of these messages from the methodology outlined above. Hence, node 2 discards the second message (m.sub.2,T.sub.3) a and makes use of the third message (m.sub.2,T.sub.2) guaranteeing the integrity of the message contents.
[0167] Constructing the Updated Topography
[0168] Having detected changes and having ensured the correct ordering of those changes at nodes, the manner in which a node establishes the new topography is discussed below.
[0169] The following algorithm is used by each node i to construct its main topology view V.sub.i. We refer to the single bidirectional link between nodes m and n as l.sub.mn or either l.sub.nm. Each entry in the topology table V.sub.i is a link l.sub.mn or l.sub.nm. Links can take on one of two values 1 or ∞. When a link is operational the value is set to 1. When the link is dead the value is set to ∞.
[0170] Upon receiving a message m={V.sub.j,T.sub.j} from node j at a given time, node i uses it to update its global view V.sub.i.
[0171] Let link l.sub.mn be a link in both global views, V.sub.i∪V.sub.j. The information about link l.sub.mn is updated due to the received V.sub.j, if the time stamp . The newer status for link l.sub.mn is taken.
[0172] Let l.sub.pq be a link in V.sub.j that is not presently a link in V.sub.i. The information about link l.sub.pq is added to the global view V.sub.i, if the distance between the nodes l and q is lower than the value for the adjacent nodes, horizon H. That is where
are every active link of V.sub.i.
[0173] Hence changes in a link's operational status are updated, links returning to operational status are added and new links appearing in the network are added. When a link returns to the network or a new link is added to the network, the topology algorithm ensures that it is provided with a copy of the up to date topology table.
[0174] The above consideration forms the communication rules, namely: [0175] 1. When a link status entry in a node's main topology table changes, a message containing the new topology table is sent to the neighbour nodes. [0176] 2. When the link protocol at a node detects that an adjacent link has become operational, the node transmits its entire main topology table over that link.
An example of suitable code for the protocol is:
TABLE-US-00001 1: for every received do 2: begin 3: if
>
then 4: begin 5:
=
6: for every link
do 7: begin 8:
=
9: end 10: for every link
and
do 11: begin 12: if
+
+ . . . +
+
< H then 13: begin 14:
=
15: end 16: end 17: end 18: end
indicates data missing or illegible when filed
[0177] A worked example of the topology updating algorithm is now described with reference to the network in
[0178] We assume =1 and H=2. Hence, relative to node 1, nodes 2 and 3 are adjacent nodes and nodes 4 and 5 are neighbouring nodes.
[0179] At the initial stage, the topological views V.sub.i of nodes 1, 2 and 3, t∈(1,2,3), are:
[0180] As a consequence, node 3 has a main topology view which is more informed and complete than nodes 1 and 2.
[0181] Referring back to the method of ordering messages detailing changes, the logical clocks T.sub.i are:
Phase 1:
[0182] Node 3 sends the first message m.sub.1= to node 1 and node 2.
Phase 2:
[0183] Nodes 1 and 2, that is t=(1,2) checks if . As the first message this is the case and so nodes 1 and 2, that is nodes i, update their logical clock T.sub.i and their view V.sub.i. In practice this means the addition to V.sub.1 of l.sub.23 as that link was previously unknown to node 1. Whilst link l.sub.45 was also unknown to node 1, V.sub.1 is not updated to include link l.sub.45 as that link is outside of the allowable neighbour node limit; l.sub.13+l.sub.34+l.sub.43>H. The resulting updates to T and V for nodes 1 and 2 are:
[0184] If node 1 sends a similar message m.sub.2={V.sub.1,T.sub.1[t.sub.1]=1} to node 2, then node 2 updates its logical clock:
[0185] The topological view V.sub.2 for node 2 is unchanged as it already knows about links l.sub.12, l.sub.13, l.sub.23 and l.sub.34. As there is no change in V.sub.2 node 2 does not broadcast a new message.
Phase 3:
[0186] The link (edge) l.sub.34 is now dead. Node 3 detects this change due to a lack of test message from node 4. As a consequence, node 3 updates the view to include that operational status for l.sub.34. The undated view is:
[0187] Node 3, because there is a change, sends a new message to node 1 and node 2. In this example we are assuming that m.sub.2 does not reach node 2 (or has not yet reached node 2).
Phase 4:
[0188] Node 1 updates its logical clock T.sub.1 and its view V.sub.1 having performed the checks outlined above. This gives:
Phase 5:
[0189] Node 1 acts promptly and sends the message .
Phase 6:
[0190] On receiving message m.sub.4, node 2 performs the mentioned checks and then node 2 updates T.sub.2 and V.sub.2 accordingly
[0191] Further changes would be detected, messaged, ordered and updated in the same manner.
[0192] It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be capable of designing many alternative embodiments without departing from the scope of the invention as defined by the appended claims. In the claims, any reference signs placed in parentheses shall not be construed as limiting the claims. The word “comprising” and “comprises”, and the like, does not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. In the present specification, “comprises” means “includes or consists of” and “comprising” means “including or consisting of”. The singular reference of an element does not exclude the plural reference of such elements and vice-versa. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.