IP Library Granted Patent US 8,873,557
Granted Patent B2
US 8,873,557 · App. 13/083,410 · Granted Oct 28, 2014

Systems and methods for packet de-duplication

Inventors: Hung Nguyen (San Jose, CA); Sandeep Dahiya (San Jose, CA); Murali Bommana (Fremont, CA)
Assignee: Gigamon Inc.
H04L49/552H04L63/0236H04L49/208
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,873,557
App. No.
13/083,410
Granted
Oct 28, 2014
Kind
B2
Abstract

A method of packet processing includes receiving a first packet that includes a header, the header having a plurality of fields, one of the plurality of fields being an identification field, determining an identification value for the identification field in the header of the first packet, determining whether the identification value of the first packet matches an identification value in a header of a second packet, and using another one of the fields in the header of the first packet to determine whether the first packet is a duplicate packet when the identification value of the first packet matches the identification value of the second packet.

Claims (91)

1. A method of packet processing, comprising:

receiving a first packet that includes a header, the header having a plurality of fields; and

determining whether the first packet is a duplicate packet using a first one of the plurality of fields according to a pre-determined field-checking hierarchy;

wherein the pre-determined field-checking hierarchy prescribes the first one of the plurality of fields to be checked before a second one of the plurality of fields, the first one of the plurality of fields having a higher change rate statistically than the second one of the plurality of fields; and

wherein the first packet is determined to be the duplicate packet when the first one of the plurality of fields matches a respective one of fields in a second packet that is received before the first packet, and when the first packet is received within a prescribed time period since the second packet is received.

2. The method of claim 1 , wherein the one of the plurality of fields includes an identification field for identifying the first packet.

3. The method of claim 1 , further comprising using a prescribed number of bits in the header to determine whether the first packet is the duplicate packet.

4. The method of claim 1 , further comprising:

determining a destination IP address; and

using the destination IP address to determine whether the first packet is the duplicate packet.

5. The method of claim 1 , further comprising:

determining a source IP address; and

using the source IP address to determine whether the first packet is the duplicate packet.

6. The method of claim 1 , further comprising:

determining a fragment offset that is associated with the first packet; and

using the fragment offset to determine whether the first packet is the duplicate packet.

7. The method of claim 1 , further comprising determining an amount of workload in an appliance, wherein the act of determining whether the first packet is the duplicate packet is performed when the amount of workload is below a prescribed threshold.

8. The method of claim 1 , wherein the prescribed time period is 100 milliseconds or less.

9. The method of claim 1 , wherein the header of the first packet comprises a L3 IPv4 or L3 IPv6 header.

10. A packet switch system, comprising:

a first port configured for receiving a first packet that includes a header, the header having a plurality of fields; and

an integrated circuit configured for:

determining whether the first packet is a duplicate packet using a first one of the plurality of fields according to a pre-determined field-checking hierarchy;

wherein the pre-determined field-checking hierarchy prescribes the first one of the plurality of fields to be checked before a second one of the plurality of fields, the first one of the plurality of fields having a higher change rate statistically than the second one of the plurality of fields; and

wherein the integrated circuit is configured to determine the first packet as the duplicate packet when the first one of the plurality of fields matches a respective one of fields in a second packet that is received before the first packet, and when the first packet is received within a prescribed time period since the second packet is received.

11. The system of claim 10 , wherein the one of the plurality of fields includes an identification field for identifying the first packet.

12. The system of claim 10 , wherein the integrated circuit is further configured for using a prescribed number of bits in the header to determine whether the first packet is the duplicate packet.

13. The system of claim 10 , wherein the integrated circuit is further configured for:

determining a destination IP address; and

using the destination IP address to determine whether the first packet is the duplicate packet.

14. The system of claim 10 , wherein the integrated circuit is further configured for:

determining a source IP address; and

using the source IP address to determine whether the first packet is the duplicate packet.

15. The system of claim 10 , wherein the integrated circuit is further configured for:

determining a fragment offset that is associated with the first packet; and

using the fragment offset to determine whether the first packet is the duplicate packet.

16. The system of claim 10 , wherein the integrated circuit is further configured for determining an amount of workload in an appliance, and wherein the integrated circuit is configured to determine whether the first packet is the duplicate packet when the amount of workload is below a prescribed threshold.

17. The system of claim 10 , wherein the prescribed time period is 100 milliseconds or less.

18. The system of claim 10 , wherein the header of the first packet comprises a L3 IPv4 or L3 IPv6 header.

19. A computer program product having a non-transitory medium storing a set of instructions, an execution of which causes a method of packet processing to be performed, the method comprising:

receiving a first packet that includes a header, the header having a plurality of fields; and

determining whether the first packet is a duplicate packet using a first one of the plurality of fields according to a pre-determined field-checking hierarchy;

wherein the pre-determined field-checking hierarchy prescribes the first one of the plurality of fields to be checked before a second one of the plurality of fields, the first one of the plurality of fields having a higher change rate statistically than the second one of the plurality of fields; and

wherein the first packet is determined to be the duplicate packet when the first one of the plurality of fields matches a respective one of fields in a second packet that is received before the first packet, and when the first packet is received within a prescribed time period since the second packet is received.

20. A method of packet processing, comprising:

receiving a first packet that includes a header, the header having a plurality of fields, one of the plurality of fields being an identification field;

determining an identification value for the identification field in the header of the first packet;

determining whether the identification value of the first packet matches an identification value in a header of a second packet; and

using an other one of the fields in the header of the first packet to determine whether the first packet is a duplicate packet when the identification value of the first packet matches the identification value of the second packet;

wherein the act of using the another one of the fields comprises: after the act of determining the identification value for the identification field in the header of the first packet, and after the act of determining whether the identification value of the first packet matches the identification value of the second packet, determining whether a first N bits in the header of the first packet match a first N bits in the header of the second packet, N being a value greater than zero.

21. The method of claim 20 , further comprising:

after the act of determining whether the first N bits in the header of the first packet matches the first N bits in the header of the second packet, determining whether a destination IP address in the header of the first packet matches a destination IP address in the header of the second packet.

22. The method of claim 21 , further comprising checking whether a fragment offset of the first packet matches a fragment offset of the second packet.

23. The method of claim 20 , further comprising:

after the act of determining whether the first N bits in the header of the first packet matches the first N bits in the header of the second packet, determining whether a source IP address in the header of the first packet matches a source IP address in the header of the second packet.

24. The method of claim 23 , further comprising checking whether a fragment offset of the first packet matches a fragment offset of the second packet.

25. The method of claim 20 , wherein the act of determining whether the identification value of the first packet matches the identification value of the second packet comprises using a hashing function.

26. The method of claim 20 , further comprising determining an amount of workload in an appliance, wherein the acts of determining are performed when the amount of workload is below a prescribed threshold.

27. The method of claim 20 , further comprising checking an additional one or more of the fields before the act of determining the identification value for the identification field in the header of the first packet, and the act of determining whether the identification value of the first packet matches the identification value in the header of the second packet.

28. The method of claim 20 , wherein the first packet is received after the second packet is received, and is determined to be the duplicate packet

when the identification value of the first packet matches the identification value of the second packet,

when the other one of the plurality of fields in the header of the first packet matches a corresponding field in the plurality of fields in the header of the second packet, and

when the first packet is received within a prescribed time period since the second packet is received.

29. The method of claim 28 , wherein the prescribed time period is 100 milliseconds or less.

30. A packet switch system, comprising:

a first port configured for receiving a first packet that includes a header, the header having a plurality of fields, one of the plurality of fields being an identification field; and

an integrated circuit configured for:

determining an identification value for the identification field in the header of the first packet;

determining whether the identification value of the first packet matches an identification value in a header of a second packet; and

using an other one of the fields to determine whether the first packet is a duplicate packet when the identification value of the first packet matches the identification value of the second packet;

wherein the integrated circuit is configured to use the another one of the fields by: after the act of determining the identification value for the identification field in the header of the first packet, and after the act of determining whether the identification value of the first packet matches the identification value of the second packet, determining whether a first N bits in the header of the first packet match a first N bits in the header of the second packet, N being a value greater than zero.

31. The system of claim 30 , wherein the integrated circuit is further configured for:

after the act of determining whether the first N bits in the header of the first packet matches the first N bits in the header of the second packet, determining whether a destination IP address in the header of the first packet matches a destination IP address in the header of the second packet.

32. The system of claim 31 , wherein the integrated circuit is further configured for checking whether a fragment offset of the first packet matches a fragment offset of the second packet.

33. The system of claim 30 , wherein the integrated circuit is further configured for:

after the act of determining whether the first N bits in the header of the first packet matches the first N bits in the header of the second packet, determining whether a source IP address in the header of the first packet matches a source IP address in the header of the second packet.

34. The system of claim 33 , wherein the integrated circuit is further configured for checking whether a fragment offset of the first packet matches a fragment offset of the second packet.

35. The system of claim 30 , wherein the integrated circuit is configured for determining whether the identification value of the first packet matches the identification value of the second packet by using a hashing function.

36. The system of claim 30 , wherein the integrated circuit is further configured for determining an amount of workload in an appliance, wherein the integrated circuit is configured to perform the acts of determining when the amount of workload is below a prescribed threshold.

37. The system of claim 30 , wherein the integrated circuit is further configured to check additional one or more of the fields before performing the acts of determining.

38. The system of claim 30 , wherein integrated circuit is configured to determine the first packet as the duplicate packet

when the identification value of the first packet matches the identification value of the second packet,

when the other one of the plurality of fields in the header of the first packet matches a corresponding one of fields in the header of the second packet, and

when the first packet is received within a prescribed time period since the second packet is received.

39. The system of claim 38 , wherein the prescribed time period is 100 millisecond or less.

40. A computer program product having a non-transitory medium storing a set of instructions, an execution of which causes a method of packet processing to be performed, the method comprising:

receiving a first packet that includes a header, the header having a plurality of fields, one of the plurality of fields being an identification field;

determining an identification value for the identification field in the header of the first packet;

determining whether the identification value of the first packet matches an identification value in a header of a second packet; and

using another one of the fields to determine whether the first packet is a duplicate packet when the identification value of the first packet matches the identification value of the second packet;

wherein the act of using the another one of the fields comprises: after the act of determining the identification value for the identification field in the header of the first packet, and after the act of determining whether the identification value of the first packet matches the identification value of the second packet, determining whether a first N bits in the header of the first packet match a first N bits in the header of the second packet, N being a value greater than zero.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Mar 11, 2022
From: JEFFERIES FINANCE LLC
To: GIGAMON INC.
Reel/Frame 059362/0491 →
SECURITY INTEREST Recorded Mar 11, 2022
From: GIGAMON INC.; ICEBRG LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 059362/0717 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 11, 2020
From: GIGAMON INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 051898/0559 →
CHANGE OF NAME Recorded Jul 18, 2013
From: GIGAMON LLC
To: GIGAMON INC.
Reel/Frame 030831/0205 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2011
From: NGUYEN, HUNG; DAHIYA, SANDEEP; BOMMANA, MURALI
To: GIGAMON LLC
Reel/Frame 026338/0787 →
Continuity (1)
Related Publication 20120257627A1 · Oct 11, 2012