Multi-publisher routing protocol for named data networks
First Claim
1. A computer-implemented method, comprising:
- performing, by a network node, distance-vector routing with one or more network neighbors to determine a network topology for a computer network;
receiving a namespace-join message that specifies a publisher in the computer network that is to provide content objects for the namespace;
constructing an acyclic graph that includes one or more publishers for the namespace, and includes one or more forwarder nodes that form network paths between the one or more publishers;
receiving, from a first neighbor in the acyclic graph, a first core advertisement for a first publisher in the acyclic graph that is to function as a core for the namespace;
receiving, from a second neighbor in the acyclic graph, a second core advertisement for a second publisher in the acyclic graph that is to function as a core for the namespace;
comparing information on the first and second core network nodes to elect a core for the namespace;
responsive to electing the first network node as the core for the namespace, forwarding the first core advertisement to the second neighbor and the elected core, and storing the core election in association with the namespace, wherein the core election specifies a namespace, and specifies a publisher in the acyclic graph that is to function as a core network node for the namespace; and
responsive to receiving an Interest message that specifies a name prefix associated with the namespace, forwarding the Interest message along the acyclic graph to one or more publishers associated with the namespace.
3 Assignments
0 Petitions
Accused Products
Abstract
A multi-publisher routing system facilitates forwarding an Interest to multiple publishers associated with a namespace. During operation, network devices across a computer network can perform distance-vector routing with one or more network neighbors to determine a network topology. Also, one or more network devices may receive a namespace-join message from one or more publishers that are to provide content objects for the namespace. These network devices that receive the namespace-join message can construct an acyclic graph that includes one or more publishers for the namespace, and includes one or more forwarder nodes that form network paths between the one or more publishers. Then, when a network node in the acyclic graph receives an Interest message that specifies a name prefix associated with the namespace, this network node can forward the Interest message along the acyclic graph to one or more publishers associated with the namespace.
-
Citations
18 Claims
-
1. A computer-implemented method, comprising:
-
performing, by a network node, distance-vector routing with one or more network neighbors to determine a network topology for a computer network; receiving a namespace-join message that specifies a publisher in the computer network that is to provide content objects for the namespace; constructing an acyclic graph that includes one or more publishers for the namespace, and includes one or more forwarder nodes that form network paths between the one or more publishers; receiving, from a first neighbor in the acyclic graph, a first core advertisement for a first publisher in the acyclic graph that is to function as a core for the namespace; receiving, from a second neighbor in the acyclic graph, a second core advertisement for a second publisher in the acyclic graph that is to function as a core for the namespace; comparing information on the first and second core network nodes to elect a core for the namespace; responsive to electing the first network node as the core for the namespace, forwarding the first core advertisement to the second neighbor and the elected core, and storing the core election in association with the namespace, wherein the core election specifies a namespace, and specifies a publisher in the acyclic graph that is to function as a core network node for the namespace; and responsive to receiving an Interest message that specifies a name prefix associated with the namespace, forwarding the Interest message along the acyclic graph to one or more publishers associated with the namespace. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:
-
performing distance-vector routing with one or more network neighbors to determine a network topology for a computer network; receiving a namespace-join message that specifies a publisher in the computer network that is to provide content objects for the namespace; constructing an acyclic graph that includes one or more publishers for the namespace, and includes one or more forwarder nodes that form network paths between the one or more publishers; receiving, from a first neighbor in the acyclic graph, a first core advertisement for a first publisher in the acyclic graph that is to function as a core for the namespace; receiving, from a second neighbor in the acyclic graph, a second core advertisement for a second publisher in the acyclic graph that is to function as a core for the namespace; comparing information on the first and second core network nodes to elect a core for the namespace; responsive to electing the first network node as the core for the namespace, forwarding the first core advertisement to the second neighbor and the elected core, and storing the core election in association with the namespace, wherein the core election specifies a namespace, and specifies a publisher in the acyclic graph that is to function as a core network node for the namespace; and responsive to receiving an Interest message that specifies a name prefix associated with the namespace, forwarding the Interest message along the acyclic graph to one or more publishers associated with the namespace. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. An apparatus, comprising:
-
a routing module to perform distance-vector routing with one or more network neighbors to determine a network topology for a computer network; a communication module to receive a namespace-join message that specifies a publisher in the computer network that is to provide content objects for the namespace; and a graph-constructing module to constructing an acyclic graph that includes one or more publishers for the namespace, and includes one or more forwarder nodes that form network paths between the one or more publishers; wherein the communication module is further configured to; receive, from a first neighbor in the acyclic graph, a first core advertisement for a first publisher in the acyclic graph that is to function as a core for the namespace; and receive, from a second neighbor in the acyclic graph, a second core advertisement for a second publisher in the acyclic graph that is to function as a core for the namespace; and wherein the apparatus further comprises; a core-electing module to; compare information on the first and second core network nodes to elect a core for the namespace; and responsive to electing the first network node as the core for the namespace, forward the first core advertisement to the second neighbor and the elected core, and store the core election in association with the namespace, wherein the core election specifies a namespace, and specifies a publisher in the acyclic graph that is to function as a core network node for the namespace; and an Interest-processing module to; process an Interest message received by the communication module, wherein the an Interest message specifies a name prefix associated with the namespace; and forward the Interest message along the acyclic graph to one or more publishers associated with the namespace. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification