IP Library Granted Patent US 11,095,535
Granted Patent B2
US 11,095,535 · App. 15/848,465 · Granted Aug 17, 2021

Adaptive and flexible packet sampling

Inventors: Maziar Mirzazad Barijough (Santa Cruz, CA); Santosh Reddy Mamidi (Fremont, CA)
Assignee: Gigamon Inc.
H04L43/024H04L43/026H04L47/25H04L47/32
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 11,095,535
App. No.
15/848,465
Granted
Aug 17, 2021
Kind
B2
Abstract

The disclosed techniques include at least one method. The method includes receiving, by a network device, incoming packets communicated over a computer network, and detecting flows to which the incoming packets belong. Each incoming packet belongs to a flow of the flows. The method further includes sampling each incoming packet that satisfies a flow condition having a flow interval of packets for the flow of the incoming packet, and sampling each incoming packet that satisfies a global condition having a global interval of packets irrespective of the flow of the incoming packet. The method further includes storing any sampled packets or information indicative of any sampled packets.

Claims (58)

1. A method comprising:

receiving, by a network device, a plurality of incoming packets communicated over a computer network;

detecting a flow, of a plurality of flows, to which each packet of the plurality of incoming packets belongs, each incoming packet of the plurality of incoming packets belonging to a flow of the plurality of flows;

sampling each incoming packet that satisfies a flow condition having a flow interval of packets for the flow of the incoming packet, wherein the flow interval is a function of a total number of distinct flows that have any packets in a global interval, divided by an output rate;

sampling each incoming packet that satisfies a global condition having the global interval of packets irrespective of the flow of the incoming packet; and

storing any sampled packets or information indicative of any sampled packets.

2. The method of claim 1 , wherein each packet, of the plurality of packets, that satisfies the global condition does not satisfy the flow condition.

3. The method of claim 1 , wherein the network device is a first network device, the method further comprising:

outputting any sampled packets to a second network device coupled to the first network device.

4. The method of claim 3 further comprising:

dropping each incoming packet that does not satisfy either of the flow condition and the global condition.

5. The method of claim 1 , wherein the plurality of incoming packets originate from a plurality of sources, the method further comprising:

dynamically adapting a sampling rate of the network device to a load of incoming packets to satisfy the output rate.

6. The method of claim 1 , wherein the flow condition is satisfied when a flow interval to which an incoming packet belongs does not include any other sampled packet.

7. The method of claim 1 , wherein the global interval is a function of the reciprocal of the output rate.

8. The method of claim 7 , wherein the global condition is satisfied when a global interval to which an incoming packet belongs does not include any other sampled packet.

9. The method of claim 7 , wherein the flow condition is satisfied when a flow interval to which an incoming packet belongs does not include any other sampled packet, and the global condition is satisfied when the flow condition is not satisfied and a global interval to which the incoming packet belongs does not include any other sampled packet.

10. The method of claim 1 , wherein each flow is associated with a different sampling rate that depends on a traffic pattern and a load of the incoming traffic to the network device.

11. The method of claim 1 further comprising:

collecting information of each of the plurality of incoming packets; and

aggregating the collected information.

12. The method of claim 11 , wherein the collected information is only from flows having a size within a limited range.

13. The method of claim 1 , further comprising:

maintaining, by the network device, a flow table including a plurality of entries having information indicative of:

a most recent sampled packet for each flow interval; and

a most recent sampled packet for the global interval such that a sampling rate of each flow is dynamically adjusted as a function of the most recent sampled packet for each flow interval and the most recent sampled packet for the global interval.

14. The method of claim 1 , wherein the plurality of incoming packets are received at single ingress port of the network device.

15. The method of claim 1 , wherein the network device is an inline network device.

16. The method of claim 1 , further comprising, prior to sampling any incoming packet:

setting the output rate of sampled packets to avoid at least one of overloading or underutilization caused by sampling packets.

17. A method comprising:

receiving, by a network device, a plurality of incoming packets of a plurality of flows over a computer network;

setting an output rate of sampled packets for the network device;

for each incoming packet of the plurality of incoming packets:

detecting a flow to which each incoming packet belongs, the flow associated with a flow interval of packets having a number of packets corresponding to a sum of a number of all distinct flows of the plurality of flows in a global interval of packets divided by the output rate, and the global interval of packets has a number of packets that corresponds to an inverse of the output rate;

sampling each incoming packet for a flow when there is no other packet in the flow interval of the incoming packet that has been sampled;

sampling each incoming packet for a flow when there is no other packet in the global interval that has been sampled;

outputting any sampled packet to another network device; and

dropping any incoming packet that has not been sampled.

18. The method of claim 17 , wherein the packet is sampled in accordance with the global interval only if the packet was not sampled in accordance with the flow interval.

19. A network device comprising:

an ingress port through which to receive a plurality of packets of a plurality of flows from a plurality of sources over at least one network;

an egress port through which to output each sampled packet of the plurality of packets to another network device in accordance with an output rate;

a processor physically coupled to the ingress port and the egress port and, when in operation, configured to:

sample each packet that satisfies a flow condition having a flow interval of packets of a flow to which the packet belongs, the number of packets in the flow interval corresponding to a sum of a number of all distinct flows of the plurality of flows in a global interval of packets divided by the output rate; and

sample each packet that satisfies a global condition having the global interval of packets corresponding to an inverse of the output rate.

20. The network device of claim 19 , wherein a packet is sampled from the global interval only if the packet was not sampled from the flow interval.

21. The network device of claim 19 , wherein a global interval of packets includes packets from all the plurality of flows.

22. The method of claim 19 , further comprising:

a memory configured store a flow table including a plurality of entries having information indicative of:

a most recent sampled packet for each flow interval; and

a most recent sampled packet for the global interval such that a sampling rate of each flow is dynamically adjusted as a function of the most recent sampled packet for each flow interval and the most recent sampled packet for the global interval.

23. The method of claim 19 , wherein the plurality of incoming packets originate from a plurality of sources.

24. The method of claim 19 , wherein the network device is further configured to drop each incoming packet that does not satisfy either of the flow condition and the global condition.

25. The method of claim 19 , wherein the processor is further configured to dynamically adapt a sampling rate of the network device to a load of incoming packets to satisfy the output rate.

26. A method comprising:

receiving, by a network device, a plurality of incoming packets, each incoming packet of the plurality of incoming packets belonging to a flow of a plurality of flows; and

sampling packets, of the plurality of incoming packets, by the network device, by adapting a sampling rate to dynamically sample packets proportionally across the plurality of flows to avoid random or pseudo-random sampling of flows, wherein the sampling rate is based on a flow interval that is a function of a total number of distinct flows that have any packets in a global interval, divided by an output rate.

Assignments (2)
SECURITY INTEREST Recorded Mar 11, 2022
From: GIGAMON INC.; ICEBRG LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 059362/0717 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2018
From: BARIJOUGH, MAZIAR MIRZAZAD; MAMIDI, SANTOSH REDDY
To: GIGAMON INC.
Reel/Frame 045042/0135 →
Continuity (2)
Provisional Application 62545913 · Aug 15, 2017
Related Publication 20190058641A1 · Feb 21, 2019
Cited By (1)
US 12,255,794