# US 9,882,972 B2 · Packet forwarding optimization without an intervening load balancing node

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

- Number: US 9,882,972 B2
- Document ID: US9882972B2
- Status: Granted
- Kind: B2
- Application number: 14/928,231
- Filed: 2015-10-30
- Published: 2017-05-04
- Granted: 2018-01-30
- Earliest claimed: 2015-10-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: David A. Herr; Grant S. Mericle; Bruce H. Ratcliff; Benjamin T. Rau
- Web page: https://patentgrep.com/patent/US9882972B2

## CPC

- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 45/74: Address processing for routing
- H04L 47/50: Queue scheduling
- H04L 61/5007: Internet protocol [IP] addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

According to some embodiments, a computer-implemented method for packet forwarding optimization across multiple nodes may include receiving, via a processor on a network controller, a first packet from a client. The first packet can include information indicative of a target node and a protocol type. The method may further include receiving, via the processor, a balancing node from a packet engine, forwarding, via the processor, the first packet to the target node though the balancing node according to a balancing node address, a target node address, and the protocol type, receiving, via the processor, a registration from the packet engine, and saving the registration to a network controller queue, and forwarding, via the network controller queue, a second packet to the target node based on the registration without the second packet traversing the balancing node.

## Claims

### Claim 1

A computer-implemented method for packet forwarding optimization across multiple nodes utilizing a single internet protocol (IP) address, comprising:
receiving, via a processor on a network controller, a first packet from a client, wherein the first packet includes information indicative of a target node and a protocol type;
receiving, via the processor, a balancing node address of a balancing node from a packet engine;
forwarding, via the processor, the first packet to the target node though the balancing node according to the balancing node address, a target node address, and the protocol type;
receiving, via the processor, a registration from the packet engine, and saving the registration to a network controller queue, wherein the registration comprises the target node address mapped by the packet engine, wherein the registration does not include the balancing node address; and
forwarding, via the network controller queue, a second packet to the target node based on the registration without the second packet traversing the balancing node.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the target node and the balancing node utilize the single IP address, and the client has an IP address different from the single IP address.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the registration comprises an IP protocol type, an originating node address, the target node address, an originating node port number, and a target node port number.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein the registration comprises a plurality of target node addresses.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the originating node and the target node are shared on the network controller.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the forwarding the first packet to the target node is based on the target node address and the protocol type.

### Claim 7

A system for packet forwarding optimization across multiple nodes utilizing a single internet protocol (IP) address, comprising:
a network controller comprising a processor configured to:
receive a first packet from a client, wherein the first packet includes information indicative of a target node address and a protocol type;
receive a balancing node address of a balancing node from a packet engine;
forward first packet to the target node though the balancing node according to the balancing node address, a target node address, and the protocol type;
receive a registration from the packet engine and save the registration to a network controller queue, wherein the registration comprises the target node address mapped by the packet engine, and wherein the registration does not include the balancing node address; and
forward, via the network controller queue, a second packet to the target node based on the registration without the second packet traversing the balancing node.

### Claim 8 (depends on 7)

The system of claim 7, wherein the target node and the balancing node utilize the single IP address, and the client has an IP address different from the single IP address.

### Claim 9 (depends on 7)

The system of claim 7, wherein the registration comprises an IP protocol type, an originating node address, the target node address, and an originating node port number, and target node port number.

### Claim 10 (depends on 9)

The system of claim 9, wherein the registration comprises a plurality of target node addresses.

### Claim 11 (depends on 7)

The system of claim 7, wherein the originating node and the target node are shared on the network controller.

### Claim 12 (depends on 7)

The system of claim 7, wherein the forwarding the first packet to the target node is based on the shared destination ID and the protocol type.

### Claim 13

A non-transitory computer-readable storage medium storing executable instructions that, when executed by a computer, perform a method for packet forwarding optimization across multiple nodes utilizing a single internet protocol (IP) address, the method comprising:
receiving, via a processor on a network controller, a first packet from a client, wherein the first packet includes information indicative of a target node address and a protocol type;
receiving, via the processor, a balancing node address of a balancing node from a packet engine;
forwarding, via the processor, the first packet to the target node though the balancing node according to the balancing node address, a target node address, and the protocol type;
receiving, via the processor, a registration from the originating node, and saving the registration to a network controller queue, wherein the registration comprises the target node address mapped by the packet engine, wherein the registration does not include the balancing node address; and
forwarding, via the network controller queue, a second packet to the target node based on the registration without the second packet traversing the balancing node.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the target node and the balancing node utilize the single IP address, and the client has an IP address different from the single IP address.

### Claim 15 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the registration comprises an IP protocol type, an originating node address, the target node address, and an originating node port number, and a target node port number.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the registration comprises a plurality of target node addresses.

### Claim 17 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the originating node and the target node are shared on the network controller.

### Claim 18 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the forwarding the first packet to the target node is based on the target node address and the protocol type.
