# US 2019/0173796 A1 · Load balancing in data hosting systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0173796 A1
- Document ID: US20190173796A1
- Status: Published application
- Kind: A1
- Application number: 15/829,652
- Filed: 2017-12-01
- Published: 2019-06-06
- Earliest claimed: 2017-12-01
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Ping Li; Liang Rong; Gang Tang; Ming Shuang Xian
- Web page: https://patentgrep.com/patent/US20190173796A1

## CPC

- H04L 61/255: Maintenance or indexing of mapping tables
- H04L 45/74: Address processing for routing
- H04L 45/745: Address table lookup; Address filtering
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 61/25: of the same type
- H04L 61/2514: between local and global IP addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method, computer system, and computer program product for load balancing network traffic. First network address translation rules are executed with respect to a first data packet of the network traffic to translate initial address space data thereof, with respect to an initial destination network address and port identifier. An entry is generated with respect to the first data packet that includes data related to the translated destination network address and port identifier, and an initial source network address and port identifier. A second data packet is received from a client. The generated entry is identified and implemented in executing second network address translation rules with respect to the second data packet, to translate address space data thereof with respect to an initial destination network address and port identifier, for routing thereof to the host, and upon servicing, for routing thereof directly to the client.

## Claims

### Claim 1

A computer-implemented method for load balancing network traffic in a data hosting network, the method comprising:
executing first network address translation rules with respect to a first data packet of the network traffic to translate initial address space data of the first data packet, the first rules being executed to translate data related to an initial destination network address and port identifier of the first data packet for routing of the first data packet to a host of the data hosting network;
generating an entry based on the initial and translated address space data of the first data packet, the generated entry comprising data related to the translated destination network address and port identifier of the first data packet, as well as an initial source network address and port identifier of the first data packet;
receiving a second data packet of the network traffic from a client;
identifying the generated entry based on correspondence between the initial address space data of the first data packet and initial address space data of the second data packet;
executing second network address translation rules with respect to the second data packet according to the identified entry to translate the initial address space data of the second data packet, the second rules being executed based on the translated destination network address and port identifier of the first data packet to translate data related to an initial destination network address and port identifier of the second data packet for routing of the second data packet to the host; and
routing the second data packet with respect to the initial and translated address space data of the second data packet, wherein the second data packet is routed directly to the client upon servicing of the second data packet based on data related to an initial source network address and port identifier of the second data packet.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the host comprises a container that is hosted by one or more node elements of the data hosting network.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein generating an entry comprises:
generating the entry in a network address translation table; and
installing the network address translation table on a node element for implementation of the entry by the node element in routing a data packet of the network traffic with respect to the data hosting network.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein the network address translation rules are generated with respect to a hosted group of containers, each container of the hosted group of containers, and a routable address and corresponding port identifier assigned to the hosted group of containers.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the network address translation rules are generated for and upon creation of each respectively created group of containers in the data hosting network, to which a routable address is respectively assigned.

### Claim 6 (depends on 3)

The computer-implemented method of claim 3, further comprising:
monitoring the hosted group of containers with respect to each container added to and removed from the hosted group of containers;
updating the network address translation table based on each container added to the hosted group of containers, by adding a corresponding entry in the network address translation table; and
updating the network address translation table based on each container removed from the hosted group of containers, by removing a corresponding entry in the network address translation table.

### Claim 7 (depends on 4)

The computer-implemented method of claim 4, wherein the hosted group of containers and each container of the hosted group of containers are created based on user input by an end-user.

### Claim 8

A computer system for load balancing network traffic in a data hosting network, comprising:
one or more computer processors, one or more computer-readable storage media, and program instructions stored on one or more of the computer-readable storage media for execution by at least one of the one or more computer processors, the program instructions, when executed by the at least one of the one or more computer processors, causing the computer system to perform a method comprising:
executing first network address translation rules with respect to a first data packet of the network traffic to translate initial address space data of the first data packet, the first rules being executed to translate data related to an initial destination network address and port identifier of the first data packet for routing of the first data packet to a host of the data hosting network;
generating an entry based on the initial and translated address space data of the first data packet, the generated entry comprising data related to the translated destination network address and port identifier of the first data packet, as well as an initial source network address and port identifier of the first data packet;
receiving a second data packet of the network traffic from a client;
identifying the generated entry based on correspondence between the initial address space data of the first data packet and initial address space data of the second data packet;
executing second network address translation rules with respect to the second data packet according to the identified entry to translate the initial address space data of the second data packet, the second rules being executed based on the translated destination network address and port identifier of the first data packet to translate data related to an initial destination network address and port identifier of the second data packet for routing of the second data packet to the host; and
routing the second data packet with respect to the initial and translated address space data of the second data packet, wherein the second data packet is routed directly to the client upon servicing of the second data packet based on data related to an initial source network address and port identifier of the second data packet.

### Claim 9 (depends on 8)

The computer system of claim 8, wherein the host comprises a container that is hosted by one or more node elements of the data hosting network.

### Claim 10 (depends on 9)

The computer system of claim 9, wherein generating an entry comprises:
generating the entry in a network address translation table; and
installing the network address translation table on a node element for implementation of the entry by the node element in routing a data packet of the network traffic with respect to the data hosting network.

### Claim 11 (depends on 10)

The computer system of claim 10, wherein the network address translation rules are generated with respect to a hosted group of containers, each container of the hosted group of containers, and a routable address and corresponding port identifier assigned to the hosted group of containers.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein the network address translation rules are generated for and upon creation of each respectively created group of containers in the data hosting network, to which a routable address is respectively assigned.

### Claim 13 (depends on 10)

The computer system of claim 10, the method further comprising:
monitoring the hosted group of containers with respect to each container added to and removed from the hosted group of containers;
updating the network address translation table based on each container added to the hosted group of containers, by adding a corresponding entry in the network address translation table; and
updating the network address translation table based on each container removed from the hosted group of containers, by removing a corresponding entry in the network address translation table.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein the hosted group of containers and each container of the hosted group of containers are created based on user input by an end-user.

### Claim 15

A computer program product for load balancing network traffic in a data hosting network, comprising:
one or more computer-readable storage devices and program instructions stored on at least one of the one or more computer-readable storage devices for execution by at least one or more computer processors of a computer system, the program instructions, when executed by the at least one of the one or more computer processors, causing the computer system to perform a method comprising:
executing first network address translation rules with respect to a first data packet of the network traffic to translate initial address space data of the first data packet, the first rules being executed to translate data related to an initial destination network address and port identifier of the first data packet for routing of the first data packet to a host of the data hosting network;
generating an entry based on the initial and translated address space data of the first data packet, the generated entry comprising data related to the translated destination network address and port identifier of the first data packet, as well as an initial source network address and port identifier of the first data packet;
receiving a second data packet of the network traffic from a client;
identifying the generated entry based on correspondence between the initial address space data of the first data packet and initial address space data of the second data packet;
executing second network address translation rules with respect to the second data packet according to the identified entry to translate the initial address space data of the second data packet, the second rules being executed based on the translated destination network address and port identifier of the first data packet to translate data related to an initial destination network address and port identifier of the second data packet for routing of the second data packet to the host; and
routing the second data packet with respect to the initial and translated address space data of the second data packet, wherein the second data packet is routed directly to the client upon servicing of the second data packet based on data related to an initial source network address and port identifier of the second data packet.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the host comprises a container that is hosted by one or more node elements of the data hosting network.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein generating an entry comprises:
generating the entry in a network address translation table; and
installing the network address translation table on a node element for implementation of the entry by the node element in routing a data packet of the network traffic with respect to the data hosting network.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the network address translation rules are generated with respect to a hosted group of containers, each container of the hosted group of containers, and a routable address and corresponding port identifier assigned to the hosted group of containers.

### Claim 19 (depends on 18)

The computer program product of claim 18, wherein the network address translation rules are generated for and upon creation of each respectively created group of containers in the data hosting network, to which a routable address is respectively assigned.

### Claim 20 (depends on 17)

The computer program product of claim 17, the method further comprising:
monitoring the hosted group of containers with respect to each container added to and removed from the hosted group of containers;
updating the network address translation table based on each container added to the hosted group of containers, by adding a corresponding entry in the network address translation table; and
updating the network address translation table based on each container removed from the hosted group of containers, by removing a corresponding entry in the network address translation table.
