Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
REPLICATING NETWORK COMMUNICATIONS
Document Type and Number:
WIPO Patent Application WO/2016/122562
Kind Code:
A1
Abstract:
Examples relate to replicating network communications. In one example, a computing device may: receive a network packet from a source device; determine to replicate the network packet based on a first destination device specified by the network packet; generate at least one replication packet, each replication packet having predetermined characteristics that are different from the network packet and different from the predetermined characteristics each other replication packet; forward the network packet to the first destination device; and forward each replication packet to a destination device specified by the predetermined characteristics of the replication packet.

Inventors:
VIQUEZ CALDERON CLAUDIO ENRIQUE (CR)
SCAGLIONE GIUSEPPE (US)
Application Number:
PCT/US2015/013679
Publication Date:
August 04, 2016
Filing Date:
January 30, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD ENTPR DEV LP (US)
International Classes:
H04L12/70; H04L29/08
Foreign References:
US20120236857A12012-09-20
US20030033426A12003-02-13
US20100103933A12010-04-29
US20100235593A12010-09-16
KR100582732B12006-05-22
Attorney, Agent or Firm:
ALLEN, Matthew R. et al. (3404 E. Harmony RoadMail Stop 7, Fort Collins CO, US)
Download PDF:
Claims:
CLA!MS

We claim:

1 . An intermediary network device for replicating network communications, the intermediary network device comprising:

a hardware processor; and

a data storage device storing instructions that, when executed by the hardware processor, cause the hardware processor to:

receive a network packet from a source device;

determine to replicate the network packet based on a first destination device specified by the network packet;

generate at least one replication packet, each replication packet having predetermined characteristics that are different from the network packet and different from the predetermined characteristics of each other replication packet; forward the network packet to the first destination device; and

forward each replication packet to a destination device specified by the predetermined characteristics of the replication packet.

2. The intermediary network device of claim 1 , wherein the hardware processor determines to replicate the network packet in response to identifying the first destination device in a predefined replication table that specifies, for each of a plurality of destination devices, replication instructions.

3. The intermediary network device of claim 1 , wherein replicated content included in each replication packet matches content included in the network packet.

4. The intermediary network device of claim 2, wherein the replication instructions for the first destination device specified by the network packet include instructions for encapsulating the network packet and forwarding the encapsulated network packet to a second destination device that is different from the first destination device.

5. The intermediary network device of claim 1 , wherein the intermediary network device is a network element operating in a software-defined network, and wherein the hardware processor updates the predefined replication table in response to receiving instructions from a software-defined network controller.

6. A non-transitory machine-readable storage medium encoded with instructions executable by a hardware processor of an intermediary network device for replicating network communications, the machine-readable storage medium comprising instructions to cause the hardware processor to:

receive a network packet from a source device, the network packet including payload data and specifying a first destination device;

in response to identifying the first destination device in a table of destination devices, obtain replication instructions for replicating the network packet;

generate a replication packet according to the replication instructions, the replication packet including the payload data and specifying a second destination device that is different from the first destination device;

forward the network packet to the first destination device; and

forward the replication packet to the second destination device.

7. The storage medium of claim 6, wherein the replication instructions are based on the payload data.

8. The storage medium of claim 7, wherein the instructions further cause the hardware processor to identify a category for the payload data, and wherein the obtained replication instructions are predefined replication instructions specific to the category of the payload data.

9. The storage medium of claim 8, wherein the category is one of a plurality of categories, and wherein each category corresponds to a different set of predefined replication instructions.

10. The storage medium of claim 6, wherein the hardware processor is a programmable processor, and wherein the instructions further cause the hardware processor to update the table of destination devices.

1 1 . A method for replicating network communications, implemented by a hardware processor, the method comprising:

receiving a network packet from a source device, the network packet including payioad data;

determining to replicate the network packet based on a first destination device specified by the network packet;

identifying a particular category for the payioad data;

obtaining replication instructions based on the particular category;

generating at least one replication packet according to the replication instructions, each replication packet including the payioad data and having characteristics that are different from the network packet and characteristics of each other replication packet;

forwarding the network packet to the first destination device; and forwarding each replication packet to a destination device specified by the characteristics of the replication packet.

12. The method of claim 1 1 , wherein:

the particular category for the payioad data is one of a plurality of payioad categories; and

each of the plurality of payioad categories corresponds to a separate set of replication instructions.

13. The method of claim 1 1 . wherein the replication instructions are further obtained based on the first destination device specified by the network packet.

14. The method of claim 13, wherein the first destination device is one of a plurality of destination devices, and each of the plurality of destination devices corresponds to a separate set of categories and corresponding sets of replication instructions.

15. The method of claim 1 , wherein the hardware processor is included in an intermediary network device, and wherein the source device and destination devices are end-point network devices.

Description:
REPLICATING NETWORK COMMUNICATIONS

BACKGROUND

[0001 ] Network communications between computing devices are often carried out by transmitting network packets from one device to another, e.g., using a packet-switched network. In some situations, end-point devices that receive network packets, such as a server computer, may analyze and copy certain network packets and send the copied packets to other end-point devices for further processing.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] The following detailed description references the drawings, wherein:

[0003] FIG. 1 is a block diagram of an example computing device for replicating network communications.

[0004] FIG. 2 is an example data flow for replicating network communications.

[0005] FIG. 3 is a flowchart of an example method for replicating network communications.

DETAILED DESCRIPTION

[0(306] in a packet-switched network, end-point devices, such as personal computers, mobile phones, server computers, often send data to one another using network packets. Network packets are formatted units of data that include metadata and a payioad. Network packet metadata, such as a source device identifier, destination device identifier, and communications protocol information, are often included in the portion(s) of a network packet known as the header and/or trailer. Network packet metadata is generally used to route the network packet from the source device to the destination device, e.g., using intermediary devices, such as routers and switches. A router may, for example, receive a network packet, read the header to identify the destination device, and forward the network packet to the destination device, either indirectly or via other intermediary devices. The payioad portion of a network packet includes data intended for processing by the destination device.

[0007] In some situations, end-point devices will replicate, or copy, certain network packets and send the copies to other end-point devices, e.g., so that other end-point devices may process the same pay!oad. In these situations, end- point devices process network packets to determine which ones to replicate, perform the replication, and send them to the intended recipient devices. For example, a server computer may receive a network packet that includes payioad data intended for storage on multiple storage devices. After determining that the data is intended for redundant storage, the server may store the payioad data and also make a copy of the packet and send it to other server devices that will store an additional copy of the payioad data.

[0008] An intermediary network device that is capable of replicating and forwarding copies of particular network packets alleviates the need to use system resources of end-point devices to perform the processing, and may also reduce network traffic while increasing the speed at which replicated network packets arrive at their intended destination devices. For example, a network router may be programmed to receive network packets, determine that the network packet is to be replicated based on the destination device specified in the packet header, generate replication packets for different destination devices, and forward both the original network packet and the replication packet to their respective destination devices. Further details regarding network packet replication and processing by intermediary devices are discussed in further detail in the paragraphs that follow.

[0009] FIG. 1 is a block diagram of an example computing device 100 for replicating network communications. Computing device 100 may be, for example, an intermediary network device, such as a programmable network switch, router, or any other electronic device suitable for use as an intermediary device in a packet-switched network, including a software defined network (SDN) programmable network element. In the embodiment of FIG. 1 , computing device 10(3 includes a hardware processor, 1 10, and machine-readable storage medium, 120.

[0010] Hardware processor 1 10 may be one or more central processing units (CPUs), semiconductor-based microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120. Hardware processor 1 10 may fetch, decode, and execute instructions, such as 122-130, to control the process for replicating network communications. As an alternative or in addition to retrieving and executing instructions, hardware processor 1 10 may include one or more electronic circuits that include electronic components for performing the functionality of one or more of instructions.

[0(31 1 ] A machine-readable storage medium, such as 120, may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, machine-readable storage medium 120 may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Oniy Memory (EEPROM), a storage device, an optical disc, and the like. In some implementations, storage medium 120 may be a non- transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals. As described in detail below, machine-readable storage medium 120 may be encoded with a series of executable instructions: 122-130, for replicating network communications received by the computing device 100.

[0012] As shown in FIG. 1 , the computing device 100 receives a network packet 142 from a source device 140 (122). The network packet 142 may be, for example, an internet protocol (IP) packet comprising a header portion and a payload portion. The source device 140 is an end-point device, such as a personal computer, mobile phone, server computer, or other computing device from which the network packet 142 originates. The network packet 142 need not be sent directly to the computing device 100, but may instead be routed through various intermediary network devices and, in some implementations, other end- point devices. [0013] The computing device 100 determines to replicate the network packet 142 based on a first destination device 150 specified by the network packet 142 (124), In some implementations, the computing device 100 determines to replicate the network packet 142 in response to identifying the first destination device 150 in a predefined replication table that specifies replication instructions for various destination devices. The first destination device 150 may be identified by metadata included in the network packet 142, such as a packet header. For example, the header of network packet 142 may specify the IP address or MAC address of another device as the destination for the network packet 142. in situations where a replication table is used to determine which packets to replicate, the replication table may be stored, for example, in the storage medium 120.

[0014] in some implementations, the computing device 100 may determine to replicate the network packet 142 based other information. For example, the computing device 1 (30 may be configured to replicate all network packets, or replicate packets from a certain source device, packets of a certain size, and/or packets using a particular communications protocol, to name a few. The other information may also be specified by a replication table with corresponding replication instructions for various destination devices.

[0015] The computing device 100 generates at least one replication packet 182 (126). Each replication packet 144 has predetermined characteristics that are different from the network packet and also different from each other replication packet. Example network packet characteristics include metadata, such as the destination device address, source device address, IP version number, transfer protocol, etc. Other characteristics of the replication packets 144 may also differ, such as payioad data and/or encapsulation status - e.g., for tunneling replication packets. In some implementations, replicated content included in each replication packet matches content included in the network packet. For example, the payioad of each replication packet may be identical to the payioad of the original network packet. [0016] In implementations where replication instructions are used to determine when to replicate a network packet, the replication instructions may include instructions for encapsulating the network packet 142 and forwarding the encapsulated network packet to a second destination device that is different from the first destination device 150. For example, replication instructions for a network packet received from a particular end-user client device may specify that a copy of certain types of network packets should be encapsulated and sent via tunneling protocol, such as GRE or SSH, to an additional destination for further/additional processing.

[0017] The computing device 100 forwards the network packet 142 to the first destination device 150 (128). The first destination device 150 is the end-point device that corresponds to the destination address specified in the network packet 142, e.g., in the header portion. The network packet 142 may be handled by the first destination device 150 in any suitable manner.

[0018] The computing device 100 forwards each replication packet 144 to a destination device 160 specified by the predetermined characteristics of the replication packet (130). Each other destination device 160, as with the first destination device 150, is an end-point device; however, the other destination devices 160 are not specified as the destination address in the network packet 142. In some implementations, the header of each replication packet 144 may specifying the address of a destination device 160. By way of example, a received network packet may be destined for a storage server for saving on a storage device in communication with the storage server. The computing device 100 may receive the packet and generate replication packets that include the same payioad data as the original packet but that have headers specifying different destination devices. The replication packets may then be forwarded to the different destination devices, such as additional storage servers for backup storage of the payioad data.

[0019] While FIG. 1 depicts the intermediary computing device 100 as the only intermediary network device between the source device 140 and first destination device 150, there may be any number of other intermediary network devices between the source device 140 and the computing device 100 and/or between the computing device 100 and the first destination device 150 and other destination device(s) 160. For example, a computing device 100 may logically reside at the edge of a private network, receive network packets from a switch or router operating in a public network, such as the Internet, and forward and replicate packets, as instructed, to various destinations within the private network through one or more private network switches/routers.

[0020] In some implementations, the computing device 10(3 is a network element operating in a software-defined network (SDN), and the hardware processor 1 10 updates the predefined replication table in response to receiving instructions from a SDN controller. The manner in which network elements handle network traffic in an SDN may be specified in a network configuration stored on a storage device, e.g., storage medium 120, of the network element. The network configuration is generally provided to each network element by the SDN controller, and the SDN controller is capable of dynamically configuring network elements as needed. For example, in a cloud computing environment, an SDN controller can direct network traffic received from multiple client devices to various back-end server computers for processing. The SDN controller may direct network traffic by adding and/or updating network configurations of switches, routers, and servers within the SDN. In situations where an SDN controller updates the replication table of a network element, the manner in which the network element replicates and forwards network packets may also be updated.

[0021 ] FIG. 2 is an example data flow 200 for replicating network communications, in the example data flow 200, a source device 210 sends a network packet 202 to an intermediary network device 220. The source device 210 may be any end-point device described above with reference to FIG. 1 ; the intermediary network device 220 may be implemented by a computing device, such as computing device 100 of FIG. 1 ; and the network packet 202 may be any type of network communications packet, such as an IP packet. The example network packet 202 includes information such as a source address, Source Address A, for the source device 210, a destination address for the intended recipient of the network packet 202, and a payioad. Other information may also be included in the network packet 202.

[0022] By way of example, the source device 210 may be a web server for a social media network, and the network packet 202 may be destined for a storage server, e.g., for saving the payioad portion of the network packet on a storage device. The intermediary network device 220 is logically located between the source device 210 and the intended destination in a communications network, such as the Internet, a private network, or a combination thereof. Any number of other intermediary network devices (not shown) may be in between the source device 210 and the intermediary network device 220.

[0023] The intermediary network device 220, upon receipt of the network packet 202, may determine whether or not the network packet 202 should be replicated. In the example data flow 200, the intermediary network device 220 is in communication with network device data 230, e.g., stored on a local or networked storage medium. The network device data 230 includes a replication table 232 that lists source addresses of various source devices, in response to identifying the source address of the network packet 202, Source Address A, in the replication table 232, the intermediary network device 220 may obtain replication instructions for replicating the network packet 202, e.g., instructions A from a set of replication instructions 234 for Source Address A. in situations where the source address of a network packet is not included in the replication table, the intermediary network device 220 may simply forward the packet to its intended destination without obtaining replication instructions.

[0024] in some implementations, the obtained replication instructions are based on the payioad data. Differences in replication instructions allows for different types of payloads to be handled differently. In some implementations the intermediary network device 220 may identify a category for the payioad data, and the obtained replication instructions are predefined instructions that are specific to that category of payioad data. For example, one category of the payioad data of the network packet 202 may be social media network blog post, or micro-blog post. The replication instructions for that category of payioad data may be different from a social media network image post category, a page visit category, or a search engine query category.

[0025] Different source devices may be associated with different replication instructions, in implementations where categories of payload data are used to obtain replication instructions, each source device may have categories that are different from categories of other source devices. In some implementations, the obtained replication instructions are based network packet characteristics other than, or in addition to, the payload data. For example, in addition to the payload data, information such as the destination device or communications protocol may be used, alone or in combination with the payload data, to determine which replication instruction(s) are obtained for a given network packet.

[0026] in some implementations, replication table 232 and/or the source address specific replication instructions, e.g., Source Address A replication instructions 234, may be updated. For example, the intermediary network device 220 may be an SDN network element that updates the network device data 230 at the direction of an SDN controller. As another example, the intermediary network device 220 may include a programmable processor, such as a FPGA, which may be updated in a manner that results in updates for a replication table and/or specific replication instructions for a particular source device. The ability to dynamically update the manner in which network packets are replicated increases the flexibility, and in some situations the speed, of networks using intermediary network devices capable of replicating network traffic.

[0027] in the example data flow 200, the intermediary network device 220 uses "Instructions A" for "Source Address A" to generate three replication packets, Replication Packet A 222, Replication Packet B 224, and Replication Packet C 226. Each replication packet includes the payload data of the network packet 202 and specifies a different destination device: devices A, B, and C for replication packets A, B, and C, respectively.

[0028] Each replication packet may have various characteristics that differentiate the replication packets from each other and the network packet 202. For example, the destination device address of each replication packet is different, as they are each destined for different destination devices. Another example difference in replication packet characteristics includes encapsulation; some replication packets may be encapsulated, e.g., to communicate securely, via a virtual private network (VPN), and/or using a different communications protocol. In addition, destination devices that communicate with different protocols may require that replication packets be formatted in accordance with protocol used by the destination device.

[0029] in the example data flow 200, the intermediary network device 220 forwards the network packet 202 to the first destination device 240 and forwards each replication packet to its corresponding destination device. Using the above example, e.g., the social media network server as the source device 210 and a social media network post as the payioad of the network packet 202, the first destination device 240 may be a storage server designed to store the social media network post for later retrieval. Destination device A 250 may be a second storage server designed to store a backup copy of the social media network post, Destination device B 260 may be an advertisement server designed to identify advertising content relevant to the text of the social media network post, and Destination device C 270 may be an analytics server designed to correlate information about multiple social media network posts. In addition to the examples provided above, other devices - both source and destination - may also be used.

[0030] FIG. 3 is a flowchart of an example method 300 for replicating network communications. The method 300 may be performed by an intermediary network device, such as a computing device described in FIG. 1 and/or intermediary network device described in FIG. 2. Other computing devices may also be used to execute method 300. Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as the storage medium 120 and/or in the form of electronic circuitry.

[0031 ] A network packet is received from a source device, and the network packet includes payioad data (302). For example, the source device may be an end-point device, such as a personal computer, and the payioad data may be a request for a web page destined for a web server, e.g., another end-point device. The network packet may have been received from the personal computer either directly or indirectly, e.g., after being routed through one or more other intermediary devices.

[0(332] The intermediary network device determines to replicate the network packet based on a first destination device specified by the network packet (304). For example, the network packet may include a header portion that specifies the IP address of the web server to which the packet is addressed. The intermediary network device may look up the destination address on a table of destination devices and, upon identifying the IP address in the table, determine that the network packet should be replicated.

[0(333] A particular category for the payload data is identified (306). in some implementations, the category of the payload data may be used to determine the manner in which the network packet is replicated. A web page request is an example of one type of payload category, and data accessible by the intermediary network device may define multiple categories of payload data. Payload categories may be more or less granular, e.g., a web page request for a logged in user, or for a user associated with a cookie identifier, may be in a category that is separate from web page requests for a user who is not logged in, or a user without an association with a cookie identifier.

[0034] Replication instructions are obtained based on the particular category (308). in some implementations, the intermediary network device may look up the payload category in a table to obtain the replication instructions for that category of network packet. The table may be specific to the particular destination device or may be a general table for ail network packets of that category, regardless of the destination. By way of example, after identifying the web server in a table, the intermediary network device may select from a set of replication instructions for the web server based on the identification of the network packet payload as a web page request. The same category of network packet destined for a different destination device may have different replication instructions. [0035] Αί least one replication packet is generated according to the replication instructions (310). Each replication packet includes the pay!oad data and has characteristics that are different from the network packet and the characteristics of each other replication packet. For example, the obtained replication instructions for the web page request may specify that copies of the packet should be sent to an advertising server and an analytics server. The instructions may specify that one or both of the replication packets encapsulate the original network packet, e.g., using GRE for tunneling the replication packets to cloud-based advertising and analytics server devices.

[0036] The network packet is forwarded to the first destination device (312). For example, the original network packet destined for the web server is forwarded by the intermediary network device to the web server. That packet may be sent to the web server either directly or indirectly, e.g., through other intermediary devices.

[0037] Each replication packet is forwarded to a destination device specified by the characteristics of the replication packet (314). For example, the replication packet that includes a header specifying the address of the advertising server may be forwarded, directly or indirectly, to the advertising server, while the replication packet specifying the address of the analytics server may be forwarded, directly or indirectly, to the analytics server.

[0038] in the foregoing example, the intermediary network device may logically reside at the edge of a cloud-based network that manages the web server, advertising, and analytics network traffic for an entity that manages a website hosted by the web server. By replicating and forwarding the network packets at an intermediary device, e.g., rather than relying on the web server, server-to- server network traffic may be reduced, web server processing resources remain available to perform other tasks, and replication packets may arrive at the advertising and analytics servers quickly. In implementations where the intermediary network device is a SDN network element, various features of the intermediary network device may be dynamically updated - e.g., an SDN controller may send an SDN network element an updated configuration that i) adds and/or removes destination devices from a list of destination devices whose network packets are subject to replication, and/or ii) adds, removes, and/or modifies categories and/or replication instructions.

[0039] The steps of method 300, while described in order of steps 302-314, may - in some implementations - be performed in combination with one or more other steps, and/or may be performed in a different order. For example, the identification of a category for the payload data may happen at the same time as a destination device is used to determine whether or not a network packet is to be replicated, e.g., in situations where only one category exists for a particular destination device. As another example, steps 312 and 314 need not happen in order, e.g., the original network packet and replication packet(s) may be forwarded in any order, as they may be processed in parallel and through separate pipelines within the intermediary network device.

[0040] The foregoing disclosure describes a number of example implementations for replicating network communications. As detailed above, examples provide a mechanism for replicating network packets at an intermediary network device and causing the packets to be forwarded to separate destination devices.