IP Library Granted Patent US 8,804,740
Granted Patent B2
US 8,804,740 · App. 13/524,739 · Granted Aug 12, 2014

Systems and methods for reassembly of packets distributed across a cluster

Inventor: Vivekanand Rangaraman (Karnataka, IN)
Assignee: Citrix Systems, Inc.
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 8,804,740
App. No.
13/524,739
Granted
Aug 12, 2014
Kind
B2
Abstract

The present application is directed towards systems and methods for handling fragmented packets in a cluster environment. Fragments received by the cluster may be hashed based on a tuple of network layer information, such as source and destination IP addresses. The tuple of network layer information may be used to identify a device of the cluster as a “fragment owner” or node responsible for assembling the fragments of the packet. The fragment may be transmitted or steered to the fragment owner for accumulation and assembly. Once all fragments of the packet have been received by the fragment owner, the packet may be assembled and a second hash may be calculated based on a four-tuple of network and transport layer information, such as source and destination IP addresses and port numbers. The packet may then be steered or transmitted to the “packet owner” or node responsible for processing the packet.

Claims (27)

1. A method for handling fragmented packets distributed across intermediary devices of a cluster, the method comprising:

(a) receiving, by a first intermediary device of a cluster comprising a plurality of intermediary devices, a first fragmented packet of a plurality of fragmented packets;

(b) transmitting the first fragmented packet to the second intermediary device, by the first intermediary device, responsive to a hash of a source internet protocol (IP) address and a destination IP address of the first fragmented packet identifying a second intermediary device of the cluster as an owner of fragmented packets for the plurality of fragmented packets;

(c) receiving, by a third intermediary device of the cluster, a second fragmented packet of the plurality of fragmented packets;

(d) transmitting the second fragmented packet to the second intermediary device, by the third intermediary device, responsive to the hash of the source IP address and the destination IP address of the second fragmented packet identifying the second intermediary device as the owner of fragmented packets for the plurality of fragmented packets;

(e) collecting, by the second intermediary device, the first fragmented packet and the second fragmented packet of the plurality of fragmented packets;

(f) determining, by the second intermediary device, that all the fragments of the plurality of fragments have been collected by the second intermediary device; and

(g) computing, by the second intermediary device, a second hash of a four tuple of the plurality of fragmented packets the four tuple comprising the source IP, the destination IP, a source port and a destination port.

2. The method of claim 1 , wherein step (a) further comprises receiving, by the first intermediary device, the first fragmented packet from a device responsive to a forwarding policy of the device.

3. The method of claim 1 , wherein step (b) further comprises determining, by the first intermediary device, that the second intermediary is the owner of the fragmented packets for the first fragmented packet responsive to computing the hash.

4. The method of claim 1 , wherein step (b) further comprises transmitting, by the first intermediary device, the first fragmented packet to the second intermediary device via a common data backplane of the cluster.

5. The method of claim 1 , wherein step (d) further comprises determining, by the third intermediary device, that the second intermediary is the owner of the fragmented packets for the second fragmented packet responsive to computing the hash.

6. The method of claim 1 , wherein step (d) further comprises transmitting, by the third intermediary device, the second fragmented packet to the second intermediary device via a common data backplane of the cluster.

7. The method of claim 1 , further comprising identifying, by the second intermediary device from the second hash, an intermediary device of the cluster as a processor of the plurality of fragmented packets.

8. The method of claim 7 , further comprising forwarding, by the second intermediary device responsive to the identification, the plurality of fragmented packets to the intermediary device.

9. A system for handling fragmented packets distributed across intermediary devices of a cluster, the system comprising:

a cluster of a plurality of intermediary devices;

a first intermediary device of the cluster receiving a first fragmented packet of a plurality of fragmented packets and transmitting, responsive to a hash of a source internet protocol (IP) address and a destination IP address of the first fragmented packet identifying a second intermediary device of the cluster as an owner of fragmented packets for the plurality of fragmented packets, the first fragmented packet to the second intermediary device;

a third intermediary device of the cluster receiving a second fragmented packet of the plurality of fragmented packets and transmitting, responsive to the hash of the source IP address and the destination IP address of the second fragmented packet identifying the second intermediary device as the owner of fragmented packets for the plurality of fragmented packets, the second fragmented packet to the second intermediary device; and

wherein the second intermediary device: collects the first fragmented packet and the second fragmented packet of the plurality of fragmented packets; determines that all the fragments of the plurality of fragments have been collected by the second intermediary device; and computes a second hash of a four tuple of the plurality of fragmented packets, the four tuple comprising the source IP, the destination IP, a source port and a destination port.

10. The system of claim 9 , wherein the first intermediary device receives the first fragmented packet from a device responsive to a forwarding policy of the device.

11. The system of claim 9 , wherein the first intermediary device determines that the second intermediary is the owner of the fragmented packets for the first fragmented packet responsive to computing the hash.

12. The system of claim 9 , wherein the first intermediary device transmits the first fragmented packet to the second intermediary device via a common data backplane of the cluster.

13. The system of claim 9 , wherein the third intermediary device determines that the second intermediary is the owner of the fragmented packets for the second fragmented packet responsive to computing the hash.

14. The system of claim 9 , wherein the third intermediary device transmits the second fragmented packet to the second intermediary device via a common data backplane of the cluster.

15. The system of claim 9 , wherein the second intermediary device identifies from the second hash, an intermediary device of the cluster as a processor of the plurality of fragmented packets.

16. The system of claim 15 , wherein the second intermediary device forwards, responsive to the identification, the plurality of fragmented packets to the intermediary device.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2012
From: RANGARAMAN, VIVEKANAND
To: CITRIX SYSTEMS, INC.
Reel/Frame 028711/0830 →
Continuity (1)
Related Publication 20130336320A1 · Dec 19, 2013