HANDLING SOURCE ROUTED CONTENT

Information

  • Patent Application
  • 20170264656
  • Publication Number
    20170264656
  • Date Filed
    March 10, 2016
    8 years ago
  • Date Published
    September 14, 2017
    6 years ago
Abstract
Methods for handling source-routed content are provided, together with apparatuses for performing the methods. A method at a receiving network node includes receiving a data transmission. The data transmission has control information and a content payload. The receiving node determines whether the control information includes an instruction to execute an action. This determination may involve determining that the instruction is directed to the receiving node. In response, the receiving node performs the action. The action may include caching the content at the receiving node. The receiving node also forwards the content payload in accordance with the control information.
Description
FIELD

The present application relates to techniques for handling source-routed content in communication networks.


BACKGROUND

Nodes in a computer network exchange formatted data units referred to as packets. Packets may carry a content payload. In a controlled network (or subnet), central routing of traffic can be employed. A source node is a node that is either the source of the data to be transmitted or an ingress node in a controlled network segment through which the data packets enter.


Source routing is a routing method where at least a portion of the route that a packet takes through the network is controlled by the source node. Typically, the source node embeds the route as control information in a header of the packet. This may be done by including a list of network addresses constituting the path in the packet header. The source node then forwards the packet along a first hop of the route. When a node (other than a destination node) receives a packet, the node determines the next hop of the route by examining the control information, and then forwards the packet along the next hop. Alternatively, in place of a list of network addresses, the source route can include a node-by-node list of egress ports. A node in the route will receive the packet, examine the associated source route and determine based on the source routing instructions which output port to forward the packet through.


It is possible for a node that receives a packet to act as a cache by locally storing the content in the packet's content payload. Content distribution networks are an example of networks where nodes may act as caches. In a source-routed network, packets received by a caching node are typically both stored by the caching node and forwarded along the route towards the packet's destination(s). The nodes that ace as caching nodes are typically determine a priori and the designated nodes are configured to cache content in advance through the use of an out-of-band control message (e.g., a message sent through a control plane). The configuration of the node may be static or dynamic and may be specific to particular content flows. Subsequently, by serving content from the cache, a node may avoid having to request the content from another node, for example from a node where the content originated.


SUMMARY

In one aspect, there is provided a method at a receiving node. The method involves receiving a data transmission including control information and a content payload, performing an action in response to determining that the control information includes an instruction to execute the action, and forwarding the content payload in accordance with the control information.


Optionally, the instruction includes an indication for the receiving node to cache the content payload. Performing the action includes caching the content payload in a cache at the receiving node.


Optionally, performing the action also includes determining a label for the content payload from the control information. Caching the content payload includes caching the content payload for retrieval by the label.


Optionally, the control information also includes a field specifying a caching expiry time. The method also includes removing the content payload from the cache after the caching expiry time.


Optionally, the control information also includes a command specified in a command field. Performing the action includes performing the command.


Optionally, the command includes an instruction to flush a cache at the receiving node.


Optionally, the command includes an instruction to transmit statistics gathered by the receiving node to another node.


Optionally, the control information also includes metadata in a metadata field. The metadata specifies at least one of parameters for the command or data required to perform the command. Performing an action dictated by the control information includes performing the command as specified by the metadata.


Optionally, the command includes an instruction to communicate to another node whether a content item is cached at the receiving node. The metadata identifies the another node and the content item.


Optionally, the command includes an instruction to replace a first content item cached at the receiving node with a second content item downloaded from a content location. The metadata identifies the first content item, the second content item, and the content location.


Optionally, the command includes an instruction to run a program local to the receiving node. The metadata identifies the program.


Optionally, the command includes an instruction to execute a script. The metadata encodes the script.


Optionally, determining that the control information includes an instruction to execute the action involves determining that the instruction is directed to the receiving node.


Optionally, the control information includes at least one Internet Protocol (IP) address.


Optionally, the control information includes at least one network segment identifier.


Optionally, the control information includes at least one outbound port.


In another aspect, there is provided a method at a source node involving at least one of determining or receiving a route through nodes of a network beginning with the source node, and a specified subset of the nodes for performing an action. The method also involves transmitting a data transmission including a content payload, and control information including an instruction directed to the subset of the nodes to execute the action.


Optionally, the route includes a multicast tree.


Optionally, the control information also includes an encoding of the multicast tree.


In still another aspect, there is provided a network node including an inbound network interface configured to receive a data transmission. The data transmission includes control information and a content payload. The network node also includes a processor configured to perform an action in response to determining that the control information includes an instruction to execute the action. The network node also includes an outbound network interface configured to forward the content payload in accordance with the control information.


Optionally, the processor is also configured to perform the action in response to determining that the instruction is directed to the network node.


In yet another aspect, there is provided a source network node including an inbound network interface and a processor. The inbound network interface is configured to receive or the processor is configured to determine a route through nodes of a network beginning with the source network node, and a specified subset of the nodes for performing an action. The source network node also includes an outbound network interface configured to transmit a data transmission including a content payload and control information including an instruction directed to the subset of the nodes to execute the action.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will be described in greater detail with reference to the accompanying drawings, in which:



FIG. 1 is a diagram of an example network and a multicast tree for distributing content to nodes in the network;



FIG. 2A shows an example encoding of the multicast tree of FIG. 1 for inclusion in a packet header;



FIG. 2B shows an example encoding of the multicast tree of FIG. 1 including flags for caching content;



FIG. 2C shows an example encoding of the multicast tree of FIG. 1 including fields for a flag, a command, and metadata;



FIG. 3 is a flow diagram of an example method performed by a node receiving a source-routed packet;



FIG. 4 is a flow diagram of an example method performed by a source network node determining or receiving a source route through a network;



FIG. 5A is a schematic illustration of an example network node configured to receive source-routed packets; and



FIG. 5B is a schematic illustration of an example network controller configured to determine a source route through a network.





DETAILED DESCRIPTION


FIG. 1 is a diagram of a network 100. Network 100 consists of a number of nodes (including nodes 110, 120a, 120b, 120c, and other nodes, not numbered) interconnected by communication links 1 to 22 to form a multicast distribution tree. The illustrated communication links 1 to 22 form a multicast tree from a source node 110. The multicast tree permits packets originating from source node 110 to be distributed to all of the nodes in network 100. Each of the communication links 1 to 22 is illustrated with a directional arrow showing the direction of a “hop” along which packets are transmitted between nodes in order to distribute packets originating from source node 110. Some nodes in the illustrated multicast tree forward incoming packets along more than one outgoing link to different nodes. Nodes that forward incoming packets to more than one outgoing node are referred to as replication points (or, alternatively, as branch points).


It should be understood that the set of communication links shown in FIG. 1 is intended as an illustrative example of a multicast tree from a particular node acting as source node 110, and that other communication links (not shown) may also exist in the network 100. A different multicast tree would be employed for content from a different node acting as a source node. Also, depending on the topology of a network, there may be more than one possible multicast tree to distribute content from a source node 110 to a particular set of other nodes in the network. It should also be understood that other nodes (not shown) may exist in the network that will not be recipients of content distributed according to the illustrated multicast tree. More generally, embodiments described herein can be applied to any network of interconnected nodes.


The multicast tree from source node 110 is generated based on knowledge of the topology of network 100. In some embodiments, the multicast tree is generated by a central network controller (not shown) and then communicated to source node 110. In other embodiments, the multicast tree is generated by source node 110.


To transmit content generated at source node 110 to the nodes of network 100 using source routing, source node 110 creates a packet having a header and a payload. The payload of the packet contains at least a portion of the content. Source node 110 also encodes the multicast tree into control information associated with the packet. The control information is typically stored in the packet header. That is, the packet header will typically include routing information consisting of the sequence of hops the packet should follow to its destinations. It should be understood that in some cases the packet is to be forwarded to a single destination, and in other cases the packet is to be forwarded to multiple destinations. The encoded sequence includes at least one next hop to take for each node along the route to the packet's destinations. For replication points of the multicast tree, more than one next hop is included. Source node 110 transmits the packet along the first hops indicated in the packet header. Each subsequent node that receives the packet forwards the packet to the next hops indicated in the packet header. In some embodiments, before forwarding the packet to the next hops indicated in the packet header, the forwarding node deletes hops from the packet header which are no longer necessary, i.e., hops along which the packet has already been forwarded.


Content transmitted by source node 110 may be cached at other nodes so that future requests for the content can be served from those other nodes. In some embodiments, during generation of the multicast tree, a set of nodes 120a, 120b, 120c are identified at which content is to be cached. By using multicast source routed packets to distribute content to nodes in a network for caching, the network utilization involved in distributing the content to the nodes where it is to be cached may in some cases be reduced in comparison to other methods of distributing content to network nodes for caching. For example, by using multicast source routed packets, network utilization may be reduced in comparison to transmitting the content for caching from source node 110 in a series of individual packets to each of the set of nodes 120a, 120b, 120c. This is because when the content from source node 110 is transmitted in a series of individual packets to nodes 120a, 120b, 120c, some of the individual packets might traverse some of the same network communication links, which may involve more network traffic.



FIG. 2A shows an example encoding 200 of the multicast tree of FIG. 1 for inclusion in a packet header for a packet originating at source node 110. Each link along which the packet is to be forwarded is listed in the packet header. Replication points are comma delimited and brackets are used to indicate subsequent hops. For example, the element “5 {7,8}” in the encoding 200 indicates that after the packet is forwarded along communication link 5, the node receiving the packet should then forward the packet along communication links 7 and 8. It should be understood that the example encoding 200 shown in FIG. 2A is intended to be illustrative, and that other encodings of the multicast tree are possible. For example, although the example encoding 200 lists communication links by the link numbers illustrated in FIG. 1, in some example embodiments, Internet Protocol (IP) addresses, outbound ports, and/or network segment identifiers may be specified in the encoding 200 to identify outgoing routes along which the packet should be forwarded.



FIG. 2B shows a variation 202 of the encoding of the multicast tree shown in FIG. 2A in which action indicators 220a, 220b, 220c consisting of caching flags are included in the multicast tree to identify which nodes should cache the content. For example, the element “5√{7,8}” in the encoding 210 contains the caching flag “√”. The element “5√{7,8}” indicates that after the packet is forwarded along communication link 5, the content in the content payload of the packet is to be cached prior to forwarding the packet along communication links 7 and 8. As a result, node 120a will receive the packet, cache it and forward it along links 7 and 8.


In addition to specifying the forwarding path, the header can now include a caching flag as shown in FIG. 2B. A node receiving a packet is able to extract both caching instructions as well as forwarding instructions from the encoded source route. In some embodiments, a label for the content may also be included in the packet header. This label may also be stored in the cache so that the content can later be retrieved from the cache by label. In some embodiments, the label is a name identifying the content.


It should be understood that the illustrated caching flag “√” is intended merely as an illustrative symbol. Another symbol may be used as the action indicator representing a caching flag in the encoding. Various other ways of providing action indicators associated with particular nodes are possible. For example, in some embodiments, the action indicators in the encoding may consist of a list of nodes identified by network addresses that should cache a packet's content. More generally, anything that can identify which nodes should cache the packet's content can be used as action indicators in the encoding.


More generally, action indicators may be provided in packet headers to direct specific receiving nodes to perform a variety of actions, not just caching. For example, a particular flag may be included in a packet header to direct a receiving node to flush its cache. In another example, a particular flag may be included in a packet header to direct a receiving node to transmit statistics gathered by the receiving node to another predetermined node. In some embodiments, more than one type of action indicator, such as more than one type of flag, each indicating a different action to be performed by a receiving node, is potentially included in a packet header. In an embodiment, a bitfield is included to direct a receiving node to perform particular actions, where each bit in the bitfield corresponds to one particular action. For example, an 8-bit bitfield may be used to direct receiving nodes to perform any combination of 8 particular actions. A receiving node (to which the bitfield is directed) performs the particular actions for which corresponding bits in the bitfield are set to 1.



FIG. 2C shows another example encoding 204 of the multicast tree shown in FIG. 2A in which action indicators comprising command flags 222a, 222b, 222c are included in the encoded multicast tree. Also included in the encoded multicast tree are command fields 224a, 224b, 224c and metadata fields 226a, 226b, 226c. In the illustrated example, the command flags 222a, 222b, 222c, command fields 224a, 224b, 224c, and metadata fields 226a, 226b, 226c serve to direct certain nodes to perform particular actions. More specifically, in the example illustrated in FIG. 2C, the presence of a command flag 222a, 222b, 222c is used to indicate that respective command fields 224a, 224b, 224c and metadata fields 226a, 226b, 226c follow in the encoding. The command fields 224a, 224b, 224c specify a particular action to take, and the metadata fields 226a, 226b, 226c optionally specify parameters for the command and/or other information required to perform the command. Some specific examples of metadata that can be included in the metadata fields in some embodiments are provided further below. In some embodiments, the metadata fields 226a, 226b, 226c are omitted. In some embodiments, each command field is capable of specifying more than one particular action to take. For example, in some embodiments, each command field contains a list of one or more commands. In some embodiments, each command field contains a bitfield used to indicate particular actions to perform, like the bitfields described above with respect to FIG. 2B. In some embodiments, when the command fields contain bitfields used to indicate particular actions to perform, the command flags referred to above are omitted because the bitfield serves as an implicit indication that the node is to perform an action. In some embodiments, the command fields may include both commands and parameters for those commands. In some embodiments, the command fields may include a command and one or more related subcommands. More generally, it should be understood that the specific manner in which commands, parameters, and/or other information are represented by the command flags, the command fields, and/or the metadata fields are design choices. Some embodiments use a different number or combination of flags and/or fields in order to direct certain nodes to perform particular actions.


In some embodiments, command flags, command fields, and metadata fields can be included in the encoded multicast tree as illustrated in FIG. 2C. Each node that receives an incoming packet examines the packet header. A determination is made to determine whether the encoded multicast tree includes an action indicator consisting of a command flag directed to itself, i.e., to the node receiving the incoming packet. In operation, a node receives a packet and inspects the packet header. In conventional implementations, a node receiving a packet used the header to identify the routing information. Using the enhanced packet header, the node can extract instructions to execute commands as directed. Upon identifying a command for execution, the node reads the command and metadata fields and performs the specified command based on any parameters and/or other relevant information included in the metadata field. The node can then forward the packet to any further destination communication links indicated in routing information provided in the packet header. Forwarding the packet and execution of a specified command can happen in any order, and may happen simultaneously or in an overlapping fashion. Those skilled in the art will also appreciate that metadata may in some embodiments include instructions related to the order in which operations should be performed.


The command and metadata fields can be used to instruct particular nodes in the distribution path to perform a variety of functions. In one embodiment, the command field contains a request to set the cache expiry time for the receiving node, and the metadata field specifies the cache expiry time. When cached items have remained in the node's cache for the specified cache expiry time, the node removes the cached items from the cache. In another embodiment, the command field contains a query about the availability of a content item in the node's cache. The metadata field can be used to provide a content identifier. Upon receipt of this instruction, the node determines if the identified content is cached and sends the result to a specified node (e.g., the source node). In another embodiment, the command field contains an instruction to replace cached content with content specified in the metadata field. In another embodiment, the command field contains an instruction to run a local program at the receiving node, and the metadata field identifies the program to be executed. In another embodiment, the command field contains an instruction to execute a script provided in the metadata field.



FIG. 3 is a flow chart illustrating a method 300 performed by a network node receiving a source-routed packet. At step 302, the node receives a data transmission, such as a packet. The packet has a header and a payload. The payload carries content and the header includes routing information used by the node to determine where the content should be forwarded. The header further includes an instruction to perform a particular action. This instruction is also referred to as control information. At step 304, the node determines whether the control information includes an instruction directed to the receiving node to execute an action. If so, at step 306 the node executes the action specified in the control information. At step 308, the node forwards the content payload based on the routing information in the control information. As noted above, steps 304 and 308 can be performed in parallel, in either order if performed serially, or in an order specified in the control information.


As explained above with respect to FIG. 2B, in some embodiments, step 304 involves determining whether the control information includes an instruction directed to the receiving node to execute an action. This involves determining whether the control information includes an indication for the receiving node to cache the content of the content payload. If so, the receiving node caches the content of the content payload in a cache.


Alternatively, as explained above with respect to FIG. 2C, in some embodiments, step 304 involves determining whether the control information includes a flag for the receiving node indicating that a command specified in a command field is also present. If so, the receiving node performs the command specified in the command field. If an optional metadata field is also present, the receiving node performs the command specified in the command field according to parameters specified in the metadata field.


In the embodiments described above in detail, it is assumed that the type of source routing being used is multicast routing. In another embodiment, unicast routing is employed. Unicast routing specifies a route from a single source node to a single destination node. In some embodiments, unicast routes are encoded in packet headers in the same way as the multicast routes described above with respect to FIGS. 2A to 2C. It should be noted that unicast routes do not need replication points. The use of instructions as described above for multicast routing can also be applied in the same manner, with instructions used to specify certain nodes along the unicast route that should cache the content to be cached and/or perform another action.


The route through the network used for source routing is determined by a network entity having knowledge of the network topology and sufficient processing resources to determine routes. In some embodiments, the network entity determining the route is a part of a network management system. In some embodiments, the network entity determining the route is a network controller, such as a Software Defined Network Controller. In some embodiments, the network entity determining the route is a node such as the source node.


In some embodiments, the network entity also determines a subset of nodes along the route for executing an action. For example, the network entity may determine a subset of nodes along the route that should cache a content item. In some embodiments, the steps of determining the route and determining the subset of nodes are performed in an opposite order to the order described above. That is, the network entity first determines a subset of nodes in the network that are to be used for caching the content item, and then subsequently determines a route through the network beginning with a source node, the route including at least the subset of nodes that are to be used for caching the content item. In some embodiments, different network entities may determine the route through the network and the subset of nodes along the route for executing the action.



FIG. 4 is a flow diagram of a method 400 performed by a source network node. At step 402, the source node determines, or receives from another network entity, a route between the source node and the destination. In some embodiments, the route is as a multicast tree beginning at the source node. In other embodiments, the route is a unicast route. The source node also determines or receives a specified subset of the nodes along the route that are selected to perform an action. At step 404, the source node transmits a data transmission, such as a packet. The data transmission has associated control information. The control information may be stored in a packet header accompanying content stored in the packet payload. The control information includes routing information specifying a data transmission path as well as instructions directed to the subset of the nodes to execute the action. For example, the control information may include caching indicators designating the subset of nodes that are to cache the content. In embodiments where the determined route is a multicast tree, the routing information consists of an encoding of the multicast tree. In embodiments where the determined route is a unicast route, the routing information consists of an encoding of the unicast route.



FIG. 5A is a schematic illustration of a network node 500 configured to receive source-routed packets, for example by performing the method 300 discussed above with respect to FIG. 3. The network node 500 has an inbound network interface 510 configured to receive a data transmission 520. The received data transmission may include control information and a content payload. The control information includes routing information. The network node 500 includes a processor 530 configured to determine whether the control information includes an instruction directed to the network node to execute an action and, if so, perform the action dictated by the control information. In some embodiments, processor 530 is a computer processor executing instructions stored on a computer-readable memory 520. In other embodiments, processor 530 consists of hardware logic. In the illustrated embodiment, the network node 500 also includes a cache memory 540. The instruction dictated by the control information may involve caching the content represented in the content payload in the cache memory 540. The network node 500 also has an outbound network interface 512 configured to forward the content payload based on the control information.


The network node 500 of FIG. 5A may also act as a source node for performing the method 400 discussed above with respect to FIG. 4. In some embodiments, inbound network interface 510 receives a route through nodes of a network beginning with network node 500 as well as a specified subset of the network nodes for performing an action. In other embodiments, processor 530 may determine the route and the specified subset of the network nodes based on information regarding the network topology stored in memory 520. Network node 500 then transmits a data transmission 522 via outbound network interface 512 comprising a content payload and control information comprising an instruction directed to the subset of the nodes to execute the action.



FIG. 5B is a schematic illustration of a network controller 550 configured to determine a source route through a network. The network controller 550 has a memory 580 storing connectivity information of nodes in a network. The network controller 550 also has a processor 570 configured to determine a subset of nodes in the network for caching a content item and to analyze the connectivity information to determine a route through the network beginning with a source node, where the route includes at least the subset of nodes for caching the content item. In some embodiments, processor 570 is a computer processor executing instructions stored on a computer-readable memory (not shown). In other embodiments, processor 570 consists of hardware logic. The network controller 550 also has an outbound network interface 560 configured to communicate with the source node by transmitting 562 an instruction to the source node to transmit a data transmission involving routing information for routing the data transmission along the determined route and a content payload containing the content item. The routing information includes indicators designating the subset of nodes for caching the content item.


In some embodiments, a non-transitory computer readable medium comprising instructions for execution by a processor may be provided to control the operation of processor 530 in FIG. 5A or processor 570 in FIG. 5B, and/or to otherwise control the execution of methods described above. In some embodiments, the processor being controlled may be a component of a general-purpose computer hardware platform. In other embodiments, the processor may be a component of a special-purpose hardware platform. For example, the processor may be an embedded processor, and the instructions may be provided as firmware. Some embodiments may be implemented by using hardware only. In some embodiments, the instructions for execution by a processor may be embodied in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which can be, for example, a compact disc read-only memory (CD-ROM), universal serial bus (USB) flash disk, or a removable hard disk.


The previous description of some embodiments is provided to enable any person skilled in the art to make or use an apparatus, method, or processor readable medium according to the present disclosure. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles of the methods and devices described herein may be applied to other embodiments. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims
  • 1. A method at a receiving node, the method comprising: receiving a data transmission comprising control information and a content payload;performing an action in response to determining that the control information includes an instruction to execute the action; andforwarding the content payload in accordance with the control information.
  • 2. The method of claim 1, wherein: the instruction comprises an indication for the receiving node to cache the content payload; andperforming the action comprises caching the content payload in a cache at the receiving node.
  • 3. The method of claim 2, wherein: performing the action further comprises determining a label for the content payload from the control information; andcaching the content payload comprises caching the content payload for retrieval by the label.
  • 4. The method of claim 2, wherein the control information further comprises a field specifying a caching expiry time, the method further comprising: removing the content payload from the cache after the caching expiry time.
  • 5. The method of claim 1, wherein: the control information further comprises a command specified in a command field; andperforming the action comprises performing the command.
  • 6. The method of claim 5, wherein the command comprises an instruction to flush a cache at the receiving node.
  • 7. The method of claim 5, wherein the command comprises an instruction to transmit statistics gathered by the receiving node to another node.
  • 8. The method of claim 5, wherein: the control information further comprises metadata in a metadata field, the metadata specifying at least one of parameters for the command or data required to perform the command; andperforming an action dictated by the control information comprises performing the command as specified by the metadata.
  • 9. The method of claim 8, wherein: the command comprises an instruction to communicate to another node whether a content item is cached at the receiving node, andthe metadata identifies the another node and the content item.
  • 10. The method of claim 8, wherein: the command comprises an instruction to replace a first content item cached at the receiving node with a second content item downloaded from a content location, andthe metadata identifies the first content item, the second content item, and the content location.
  • 11. The method of claim 8, wherein: the command comprises an instruction to run a program local to the receiving node, andthe metadata identifies the program.
  • 12. The method of claim 8, wherein: the command comprises an instruction to execute a script, andthe metadata encodes the script.
  • 13. The method of claim 1, wherein: determining that the control information includes an instruction to execute the action comprises determining that the instruction is directed to the receiving node.
  • 14. The method of claim 1, wherein the control information comprises at least one Internet Protocol (IP) address.
  • 15. The method of claim 1, wherein the control information comprises at least one network segment identifier.
  • 16. The method of claim 1, wherein the control information comprises at least one outbound port.
  • 17. A method at a source node comprising: at least one of determining or receiving: a route through nodes of a network beginning with the source node, anda specified subset of the nodes for performing an action; andtransmitting a data transmission comprising: a content payload, andcontrol information comprising an instruction directed to the subset of the nodes to execute the action.
  • 18. The method of claim 17, wherein the route comprises a multicast tree.
  • 19. The method of claim 18, wherein the control information further comprises an encoding of the multicast tree.
  • 20. A network node comprising: an inbound network interface configured to receive a data transmission, the data transmission comprising control information and a content payload;a processor configured to perform an action in response to determining that the control information includes an instruction to execute the action; andan outbound network interface configured to forward the content payload in accordance with the control information.
  • 21. The network node of claim 20, wherein: the processor is further configured to perform the action in response to determining that the instruction is directed to the network node.
  • 22. An source network node comprising: an inbound network interface;a processor, wherein the inbound network interface is configured to receive or the processor is configured to determine: a route through nodes of a network beginning with the source network node, and a specified subset of the nodes for performing an action; andan outbound network interface configured to transmit a data transmission comprising: a content payload, andcontrol information comprising an instruction directed to the subset of the nodes to execute the action.