IP Library Granted Patent US 10,999,200
Granted Patent B2
US 10,999,200 · App. 15/336,333 · Granted May 4, 2021

Offline, intelligent load balancing of SCTP traffic

Inventors: Jude Pragash Vedam (Bangalore, IN); Suresh Paruchuri (Bangalore, IN); Deepak Hegde (Bangalore, IN)
Assignee: Extreme Networks, Inc.
H04L47/125H04L43/062H04L43/12
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 10,999,200
App. No.
15/336,333
Granted
May 4, 2021
Kind
B2
Abstract

Techniques for enabling offline, intelligent load balancing of Stream Control Transmission Protocol (SCTP) traffic are provided. According to one embodiment, a load balancer can receive one or more SCTP packets that have been replicated from a network being monitored. The load balancer can further recover an SCTP message from the one or more SCTP packets and can map the SCTP message to an egress port based on one or more parameters decoded from the SCTP message and one or more rules. The load balancer can then transmit the SCTP message out of the egress port towards an analytic probe or tool for analysis.

Claims (74)

1. A method comprising:

receiving, by a load balancer, a Stream Control Transmission Protocol (SCTP) packet that has been replicated from a network being monitored, wherein the SCTP packet comprises a plurality of data chunks;

recovering, by the load balancer, a SCTP message from the SCTP packet, wherein the SCTP message comprises one or more data chunks from the plurality of data chunks and wherein a data chunk of the one or more data chunks includes a defined message boundary and wherein recovering the SCTP message comprises:

determining an SCTP association for the SCTP packet;

selecting a packet queue and a data chunk queue based on the SCTP association;

placing the SCTP packet into the packet queue;

placing the plurality of data chunks into the data chunk queue;

passing the one or more data chunks from the data chunk queue to a stream queue in response to a control chunk in the SCTP packet; and

detecting the defined message boundary in the data chunk of the one or more data chunks which indicates that the SCTP message is available in the stream queue;

extracting, by a message decoder module, session state information from the recovered SCTP message;

mapping, by the message decoder module, the recovered SCTP message to an egress port based at least in part on the session state information and one or more rules;

transmitting, by the load balancer, the recovered SCTP message out of the egress port towards an analytic probe or tool for analysis.

2. The method of claim 1 wherein the passing the one or more data chunks from the data chunk queue to the stream queue comprises:

de-multiplexing the plurality of data chunks into the stream queue based on a stream identifier included in each data chunk.

3. The method of claim 2 wherein the defined message boundary is a bit and wherein the recovering further comprises:

identifying the bit in one of the plurality of data chunks that indicates an entirety of the SCTP message has been received.

4. The method of claim 1 , further comprising:

receiving, by the load balancer, another SCTP packet that has been replicated from the network being monitored, wherein the session state information comprises application protocol parameters pertaining to a state of a same communication session to which the SCTP message and the another SCTP message belong; and

recovering, by the load balancer, another SCTP message from the another SCTP packet.

5. The method of claim 4 further comprising:

saving the application protocol parameters to a session table of the load balancer.

6. The method of claim 1 wherein the session state information comprises SCTP-specific parameters.

7. The method of claim 1 wherein the one or more rules comprise load balancing logic indicating how to distribute other SCTP messages to other egress ports of the load balancer based on session state information extracted from the other SCTP messages.

8. The method of claim 7 wherein the load balancing logic is user-defined.

9. The method of claim 1 wherein the transmitting comprises:

packaging the SCTP message into a newly constructed SCTP packet; and

transmitting the newly constructed SCTP packet over a pre-opened SCTP association to the analytic probe or tool.

10. The method of claim 1 wherein the transmitting comprises:

retrieving, from the packet queue, an original copy of the SCTP packet received by the load balancer that contains the SCTP message; and

forwarding the original copy of the SCTP packet out of the egress port towards the analytic probe or tool.

11. The method of claim 1 , further comprising:

receiving, by the load balancer, another SCTP packet that has been replicated from the network being monitored, wherein the SCTP packet and the another SCTP packet originate from different SCTP associations in the network being monitored.

12. The method of claim 1 further comprising:

identifying one or more control chunks in the SCTP packet; and

passing the one or more control chunks to a control chunk processor of the load balancer for handling, without forwarding the one or more control chunks to the analytic probe or tool.

13. The method of claim 1 wherein the network being monitored is a mobile network.

14. The method of claim 1 wherein the load balancer is part of a packet broker implemented in a visibility network.

15. A non-transitory computer readable storage medium having stored thereon program code that when executed by a load balancer processor cause the load balancer processor to perform operations comprising:

receiving a Stream Control Transmission Protocol (SCTP) packet that has been replicated from a network being monitored, wherein the SCTP packet comprises a plurality of data chunks;

recovering a SCTP message from the SCTP packet, wherein the SCTP message comprises one or more data chunks from the plurality of data chunks and wherein a data chunk of the one or more data chunks includes a defined message boundary and wherein recovering the SCTP message comprises:

determining an SCTP association for the SCTP packet;

selecting a packet queue and a data chunk queue based on the SCTP association;

placing the SCTP packet into the packet queue;

placing the plurality of data chunks into the data chunk queue;

passing the one or more data chunks from the data chunk queue to a stream queue in response to a control chunk in the SCTP packet; and

detecting the defined message boundary in the data chunk of the one or more data chunks which indicates that the SCTP message is available in the stream queue;

extracting, by a message decoder module in the load balancer processor, session state information from the recovered SCTP message;

mapping, by the message decoder module in the load balancer processor, the recovered SCTP message to an egress port based at least in part on the session state information and one or more rules; and

transmitting the recovered SCTP message out of the egress port towards an analytic probe or tool for analysis.

16. The non-transitory computer readable storage medium of claim 15 wherein the operations further comprises:

packaging the recovered SCTP message into a newly constructed SCTP packet; and

transmitting the newly constructed SCTP packet over a pre-opened SCTP association to the analytic probe or tool.

17. The non-transitory computer readable storage medium of claim 15 wherein the operations further comprises:

retrieving, from the packet queue, an original copy of the SCTP packet received by the load balancer processor that contains the SCTP message; and

forwarding the original copy of the SCTP packet out of the egress port towards the analytic probe or tool.

18. A load balancing system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon program code that, when executed by the processor, causes the processor to:

receive a Stream Control Transmission Protocol (SCTP) packets that has been replicated from a network being monitored, wherein the SCTP packet comprises a plurality of data chunks;

recover a SCTP message from the SCTP packets, wherein the SCTP message comprises one or more data chunks from the plurality of data chunks and wherein the SCTP message is defined by a defined message boundary and wherein recovering the SCTP message comprises:

determine an SCTP association for the SCTP packet;

select a packet queue and a data chunk queue based on the SCTP association;

placing the SCTP packet into the packet queue;

placing the plurality of data chunks into the data chunk queue;

passing the one or more data chunks from the data chunk queue to a stream queue in response to a control chunk in the SCTP packet; and

detect the defined message boundary in a data chunk of the one or more data chunks which indicates that the SCTP message is available in the stream queue;

extract, by a message decoder module in the load balancing system, session state information from the recovered SCTP message;

map the recovered SCTP message to an egress port based at least in part on the first session state information and one or more rules; and

transmit the recovered SCTP message out of the egress port towards an analytic probe or tool for analysis.

19. The load balancing system of claim 18 wherein the program code that causes the processor to transmit the recovered SCTP message comprises program code that causes the processor to:

package the recovered SCTP message into a newly constructed SCTP packet; and

transmit the newly constructed SCTP packet over a pre-opened SCTP association to the analytic probe or tool.

20. The load balancing system of claim 18 wherein the program code that causes the processor to transmit the recovered SCTP message comprises program code that causes the processor to:

retrieve, from the packet queue, an original copy of the SCTP packet received by the load balancing system that contains the SCTP message; and forward the original copy of the SCTP packet out of the egress port towards the analytic probe or tool.

Assignments (6)
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC
To: EXTREME NETWORKS, INC.
Reel/Frame 044054/0678 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2016
From: VEDAM, JUDE PRAGASH; PARUCHURI, SURESH; HEGDE, DEEPAK
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 040154/0140 →
Priority Claims (1)
IN 201641010295 · Mar 24, 2016 · national
Continuity (1)
Related Publication 20170279723A1 · Sep 28, 2017
Cited By (1)
US 12,238,193