IP Library Granted Patent US 9,923,808
Granted Patent B2
US 9,923,808 · App. 13/647,503 · Granted Mar 20, 2018

System and method for real-time load balancing of network packets

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 9,923,808
App. No.
13/647,503
Granted
Mar 20, 2018
Kind
B2
Abstract

Internet protocol packets are statelessly identified as associated with a particular session-instance by identifying a key, or session-instance identifier, within the data (or payload) portion of a user plane packet. This identifier is specific to the session-instance and remains constant throughout the session-instance. Using this stateless identification, transmitted user plane packets are automatically routed at the transmission speed of the transmission link using a method that automatically balances the analysis processing load between network probes. The load is balanced by routing the user plane packet to a network probe that is either already analyzing the session-instance or by routing the user plane packet to a system that has processing capacity to analyze a new session-instance. The network probe then analyzes the user plane packet and the session-instance to measure the quality of the user experience of the session-instance and performance of the network.

Claims (60)

1. A method for routing packets at a packet flow switch, comprising:

receiving at a packet flow switch a packet having a header portion and a payload portion, the packet flow switch in communication with at least two network probes;

determining whether the received packet is a user plane packet or a control plane packet;

responsive to determining that the received packet is a control plane packet, sending the control plane packet to all of the at least two probes;

responsive to determining that the received packet is a user plane packet, automatically distributing the user plane packet to only one of the at least two network probes to automatically balance the monitoring load while sending all user plane packets associated with a first session instance to the same one of the at least two network probes; and

responsive to identifying that a user plane packet is associated with a new session-instance not already monitored by a network probe, assigning the user plane packet to one of at least two network probes, the assigning including:

selecting one of the network probes;

saving an identifier of the selected network probe and associating a packet session-instance identifier with the saved identifier of the selected network probe which includes identifying the session-instance identifier of the received user plane packet using a value in a payload portion of the packet at a fixed number of bits from a first end of a header portion of the packet; and

sending the user plane packet to the selected network probe.

2. The method of claim 1 , wherein automatically distributing the user plane packet further comprises:

identifying a session-instance identifier of the received user plane packet using a value in the payload portion of the user plane packet;

using the session-instance identifier, determining whether the user plane packet is associated with an existing session-instance being analyzed by a first network probe or a new session-instance; and

responsive to identifying that the user plane packet is associated with the existing session-instance, sending the received user plane packet to the first network probe.

3. The method of claim 2 , wherein identifying the session-instance identifier of the received user plane packet using the value in the payload portion comprises using data in the payload portion at a fixed number of bits from a first end of the header portion.

4. The method of claim 3 , wherein the value in the payload portion is a GTP field of the user plane packet.

5. The method of claim 2 , wherein identifying a session-instance identifier of the received packet using the value in the payload portion comprises using data in the payload portion at a variable number of bits from a first end of the header portion.

6. The method of claim 1 , further comprising identifying a protocol of the user plane packet.

7. The method of claim 6 , wherein identifying the protocol of the user plane packet comprises determining that the payload of the packet includes at least one protocol identifying pattern.

8. The method of claim 1 , further comprising measuring a quality of experience of a user session-instance, the measuring comprising:

identifying the control plane packets and the user plane packets of a session-instance;

calculating quality metrics of the session-instance;

identifying a user-specific identifier in the control plane packet of the session-instance; and

using the user-specific identifier in the control plane packet to associate the quality metrics with a user.

9. A non-transitory computer-readable medium storing computer program code, the computer program code, when executed by one or more processors, causing the one or more processors to perform operations comprising:

receiving at a packet flow switch a packet having a header portion and a payload portion, the packet flow switch in communication with at least two network probes;

determining whether the received packet is a user plane packet or a control plane packet;

responsive to determining that the received packet is a control plane packet, sending the control plane packet to all of the at least two probes;

responsive to determining that the received packet is a user plane packet, automatically distributing the user plane packet to only one of the at least two network probes to automatically balance the monitoring load while sending all user plane packets associated with a first session instance to the same one of the at least two network probes; and

responsive to identifying that a user plane packet is associated with a new session-instance not already monitored by a network probe, assigning the user plane packet to one of at least two network probes, the assigning including:

selecting one of the network probes;

saving an identifier of the selected network probe and associating a packet session-instance identifier with the saved identifier of the selected network probe which includes identifying the session-instance identifier of the received user plane packet using a value in a payload portion of the packet at a fixed number of bits from a first end of a header portion of the packet; and

sending the user plane packet to the selected network probe.

10. The non-transitory computer-readable medium of claim 9 , wherein automatically distributing the user plane packet further comprises:

identifying a session-instance identifier of the received user plane packet using a value in the payload portion of the user plane packet;

using the session-instance identifier, determining whether the user plane packet is associated with an existing session-instance being analyzed by a first network probe or a new session-instance; and

responsive to identifying that the user plane packet is associated with the existing session-instance, sending the received user plane packet to the first network probe.

11. The non-transitory computer-readable medium of claim 10 , wherein identifying the session-instance identifier of the received user plane packet using the value in the payload portion comprises using data in the payload portion at a fixed number of bits from a first end of the header portion.

12. The non-transitory computer-readable medium of claim 11 , wherein the value in the payload portion is a GTP field of the user plane packet.

13. The non-transitory computer-readable medium of claim 10 , wherein identifying a session-instance identifier of the received packet using the value in the payload portion comprises using data in the payload portion at a variable number of bits from a first end of the header portion.

14. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise identifying a protocol of the user plane packet.

15. The non-transitory computer-readable medium of claim 14 , wherein identifying the protocol of the user plane packet comprises determining that the payload of the packet includes at least one protocol identifying pattern.

16. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise measuring a quality of experience of a user session-instance, the measuring comprising:

identifying the control plane packets and the user plane packets of a session-instance; calculating quality metrics of the session-instance;

identifying a user-specific identifier in the control plane packet of the session-instance; and using the user-specific identifier in the control plane packet to associate the quality metrics with a user.

17. A packet flow switch, comprising:

one or more processors; and

a computer-readable medium storing computer program code, the computer program code, when executed, causing the one or more processors to perform operations comprising:

receiving at a packet flow switch a packet having a header portion and a payload portion, the packet flow switch in communication with at least two network probes;

determining whether the received packet is a user plane packet or a control plane packet;

responsive to determining that the received packet is a control plane packet, sending the control plane packet to all of the at least two probes;

responsive to determining that the received packet is a user plane packet, automatically distributing the user plane packet to only one of the at least two network probes to automatically balance the monitoring load while sending all user plane packets associated with a first session instance to the same one of the at least two network probes; and

responsive to identifying that a user plane packet is associated with a new session-instance not already monitored by a network probe, assigning the user plane packet to one of at least two network probes, the assigning including:

selecting one of the network probes;

saving an identifier of the selected network probe and associating a packet session-instance identifier with the saved identifier of the selected network probe which includes identifying the session-instance identifier of the received user plane packet using a value in a payload portion of the packet at a fixed number of bits from a first end of a header portion of the packet; and

sending the user plane packet to the selected network probe.

18. The packet flow switch of claim 17 , wherein automatically distributing the user plane packet further comprises:

identifying a session-instance identifier of the received user plane packet using a GTP field in the payload portion of the user plane packet;

identifying a protocol of the user plane packet;

using the session-instance identifier, determining whether the user plane packet is associated with an existing session-instance being analyzed by a first network probe or a new session-instance; and

responsive to identifying that the user plane packet is associated with the existing session-instance, sending the received user plane packet to the first network probe.

Assignments (2)
SECURITY INTEREST Recorded Jul 14, 2015
From: NETSCOUT SYSTEMS, INC.; FIDELIA TECHNOLOGY, INC.; NETSCOUT SERVICE LEVEL CORPORATION; ONPATH TECHNOLOGIES INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 036087/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2013
From: KELLEY, BRUCE A., JR.
To: NETSCOUT SYSTEMS, INC.
Reel/Frame 029557/0317 →