IP Library Granted Patent US 7,353,276
Granted Patent B2
US 7,353,276 · App. 10/365,810 · Granted Apr 1, 2008

Bi-directional affinity

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,353,276
App. No.
10/365,810
Granted
Apr 1, 2008
Kind
B2
Abstract

A new network load balancing/firewall node for use in a system including multiple network load balancing/firewall nodes is disclosed. The network load balancing/firewall applies bi-directional load balancing affinity with regard to requests from external clients and corresponding responses from internal network servers. An external network load balancing adapter executes a load-balancing algorithm to determine whether a received client request is accepted by the network load balancing/firewall node. A firewall utility processes the received client request and maintains state information associated with the received client request. An internal network load balancing adapter executes a complementary load-balancing algorithm simultaneously on each network load balancing/firewall node to ensure that the same network load balancing/firewall node accepts a response from an internal network server corresponding to the received client request.

Claims (38)

1. A network load balancing/external network interface node, for use in a system including multiple network load balancing/external network interface nodes, including bi-directional load balancing affinity with regard to requests from external clients and corresponding responses from internal network servers, the network load balancing/external network interface node comprising:

an external network load balancing adapter that executes a load-balancing algorithm to determine whether a received client request is accepted by the network load balancing/external network interface node;

an external network interface utility that processes the received client request and maintains state information associated with the received client request;

an internal network load balancing adapter that ensures the network load balancing/external network interface node accepts a response from an internal network server corresponding to the received client request, the internal network load balancing adapter comprising:

a complementary load-balancing algorithm to ensure that the network load balancing/external network interface node that processed the received client request processes the received server response, wherein the complementary load-balancing algorithm executes simultaneously on the network load balancing/external network interface nodes.

2. The network load balancing/external network interface node of claim 1 wherein the load-balancing algorithm of the external network interface node includes as its input, an external address of a requesting client.

3. The network load balancing/external network interface node of claim 2 wherein the external address of the requesting client is an IP address of the requesting client.

4. The network load balancing/external network interface node of claim 1 wherein the complementary load-balancing algorithm of the external network interface node includes as its input, an external address of a requesting client.

5. The network load balancing/external network interface node of claim 4 wherein the external address of the requesting client is an IP address of the requesting client.

6. The network load balancing/external network interface node of claim 1 wherein the external network interface utility is a firewall.

7. A method for establishing bi-directional affinity for a load balancing firewall comprising multiple load balancing/firewall nodes interposed between an internal network comprising multiple published servers and an external network comprising requesting clients, the method comprising:

first receiving, by an external network load balancing interface of the load balancing firewall, a request from an external client;

first determining, based upon a load-balancing algorithm, a selected load balancing/firewall node that processes the request from the external client;

establishing, by the selected load balancing/firewall node, a connection state corresponding to the request from the external client;

passing, by the selected load balancing/firewall node, the request from the external client to a selected one of the multiple published servers;

second receiving, by an internal network load balancing interface of the load balancing firewall, a message from the selected one of the multiple published servers;

applying, by the internal network load balancing interface of the load balancing firewall, a complementary load-balancing algorithm to the message received during the second receiving step, the complementary load-balancing algorithm determining the selected load balancing/firewall node established during the first determining step, wherein the complementary load-balancing algorithm executes simultaneously on the load balancing/firewall nodes; and

processing, by the selected load balancing/firewall node, the message from the selected one of the multiple published servers.

8. The method for establishing bi-directional affinity for a load balancing firewall in claim 7 wherein the applying step further comprises the steps of:

applying, by the internal network load balancing interface of the load balancing firewall, a default load-balancing algorithm to the message received during the second receiving step, the default load-balancing algorithm differing from the complementary load-balancing algorithm.

9. The method for establishing bi-directional affinity for a load balancing firewall in claim 8 wherein the default algorithm is a modulo algorithm applied to a hash of the message received from the selected one of the multiple published servers.

10. The method for establishing bi-directional affinity for a load balancing firewall in claim 7 further comprising:

passing, by the selected load balancing/firewall node, the message from the selected one of the multiple published servers to the external client; and

receiving, by the external client, the message from the selected load balancing/firewall node.

11. A computer-readable medium having computer-executable components thereon for a load balancing firewall comprising multiple load balancing/firewall nodes interposed between an internal network comprising multiple published servers and an external network comprising requesting clients, the components performing the steps of:

first receiving, by an external network load balancing interface of the load balancing firewall, a request from an external client;

first determining, based upon a load-balancing algorithm, a selected load balancing/firewall node that processes the request from the external client;

establishing, by the selected load balancing/firewall node, a connection state corresponding to the request from the external client;

passing, by the selected load balancing/firewall node, the request from the external client to a selected one of the multiple published servers;

second receiving, by an internal network load balancing interface of the load balancing firewall, a message from the selected one of the multiple published servers;

applying, by the internal network load balancing interface of the load balancing firewall, a complementary load-balancing algorithm to the message received during the second receiving step, the complementary load-balancing algorithm determining the selected load balancing/firewall node established during the first determining step, wherein the complimentary load-balancing algorithm executes simultaneously on the load balancing/firewall nodes; and

processing, by the selected load balancing/firewall node, the message from the selected one of the multiple published servers.

12. The computer-readable medium for establishing bi-directional affinity for a load balancing firewall in claim 11 wherein the applying step further comprises computer-executable instructions facilitating performing the steps of:

applying, by the internal network load balancing interface of the load balancing firewall, a default load-balancing algorithm to the message received during the second receiving step, the default load-balancing algorithm differing from the complementary load-balancing algorithm.

13. The computer-readable medium for establishing bi-directional affinity for a load balancing firewall in claim 12 wherein the default algorithm is a modulo algorithm applied to a hash of the message received from the selected one of the multiple published servers.

14. The computer-readable medium for establishing bi-directional affinity for a load balancing firewall in claim 11 comprising further computer-executable instructions facilitating performing the steps of:

passing, by the selected load balancing/firewall node, the message from the selected one of the multiple published servers to the external client; and

receiving, by the external client, the message from the selected load balancing/firewall node.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2003
From: BAIN, WILLIAM L.; FAENOV, KYRIL
To: MICROSOFT CORPORATION
Reel/Frame 013771/0794 →