Patentable/Patents/US-7570653
US-7570653

Buffer allocation using probability of dropping unordered segments

PublishedAugust 4, 2009
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Allocation of buffer space for segment re-ordering is restricted based on a probability that the flow would consume too much space. A flow's current or recently past space consumption is used to predict the flow's activity with respect to future consumption. If the prediction of future consumption is high relative to other flows and to the total allocable buffer space in the device, then a decreasing amount of space than would otherwise be provided is allocated to the flow. In a preferred embodiment, if a flow's buffers are below a predetermined threshold for the flow (i.e., the “flow threshold”), and the amount of overall system memory space is above a predetermined system threshold then buffer allocation can proceed normally for that flow. For example, all of an additional amount of space that the flow may currently be requesting can be allocated to the flow. However, if one or both of the system threshold or the flow threshold requirements are not met then allocation can be according to a prediction of the behavior (i.e., consumption) of the flow.

Patent Claims
15 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for allocating buffer space in a network device, the method comprising: using a plurality of buffers in the network device to re-order out-of-order segments in data flows through the network device; determining a prediction of a consumption of space in the plurality of buffers for a particular flow, wherein the particular flow comprises out-of-order segments; obtaining a value for an amount of allocable system memory space in the plurality of buffers; deriving an allocation of space in the plurality of buffers for the particular flow to allow for re-ordering of out-of-order segments in the particular flow by using the prediction and the value, wherein the allocation is in inverse proportion to the prediction and in direct proportion to the value; changing a drop probability for the particular flow when a predetermined flow operation is encountered, wherein the allocation of space in the plurality of buffers to allow for re-ordering of out-of-order segments in the particular flow is configured to be adjusted using the changed drop probability; hashing a flow identifier for the particular flow to obtain a parameter; using the obtained parameter to determine a threshold; when the predetermined flow operation is an enqueue operation, increasing the drop probability for the particular flow when the determined threshold is greater than a comparison threshold, the drop probability being incremented by a scale factor multiplied by a number of active data flows divided by a number of available buffers from the plurality of buffers; and when the predetermined flow operation is a dequeue operation, decreasing the drop probability for the particular flow when the determined threshold is less than the comparison threshold.

2

2. The method of claim 1 , wherein the determining the prediction includes measuring an allocation of space for the particular flow during a time interval.

3

3. The method of claim 2 , wherein the obtaining the value includes setting the value equal to a total amount of system memory divided by a number of flows.

4

4. The method of claim 3 , wherein the number of flows is equal to the number of active data flows at the network device.

5

5. The method of claim 3 , wherein the number of flows is equal to a predetermined quantity.

6

6. The method of claim 1 , further comprising modifying the scale factor by experimentation.

7

7. The method of claim 1 , wherein the flow identifier includes a source IP address.

8

8. The method of claim 1 , wherein the flow identifier includes a destination IP address.

9

9. The method of claim 1 , wherein the flow identifier includes a source port.

10

10. The method of claim 1 , wherein the flow identifier includes a destination port.

11

11. The method of claim 1 , further comprising determining whether a current buffer usage is above a predetermined threshold and, if so, using the drop probability to drop a segment in the particular flow.

12

12. The method of claim 1 , wherein the scale factor is set by a user of the network device.

13

13. A method for allocating storage space in a network device, wherein the network device receives segments from a plurality of flows, the method comprising: receiving out-of-order segments for Transmission Control Protocol (TCP) reassembly for a particular flow; storing the received segments in a buffer for re-ordering the received out-of-order segments; requesting additional storage space for the buffer for re-ordering the received out-of-order segments; determining an allocation of storage space for the buffer by using a rate of utilization of storage space by the buffer over a time period as a prediction of a consumption of the storage space, a number of flows, and available storage space; hashing a flow identifier for a particular flow to obtain a parameter; using the obtained parameter to determine a threshold; and increasing a drop probability for the particular flow when the determined threshold is greater than a comparison threshold value, the drop probability being incremented by a scale factor multiplied by a number of active flows divided by a number of available portions in the buffer.

14

14. An apparatus, comprising: means for using a plurality of buffers in the apparatus to re-order out-of-order segments in data flows through the apparatus; means for determining a prediction of a consumption of space in the plurality of buffers for a particular flow, wherein the particular flow comprises out-of order segments; means for obtaining a value for an amount of allocable system memory space in the plurality of buffers; means for deriving an allocation of space in the plurality of buffers for the particular flow to allow for re-ordering of out-of-order segments in the particular flow by using the prediction and the value, wherein the allocation is in inverse proportion to the prediction and in direct proportion to the value; means for changing a drop probability for the particular flow when a predetermined flow operation is encountered, wherein the allocation of space in the plurality of buffers to allow for re-ordering of out-of-order segments in the particular flow is configured to be adjusted using the changed drop probability; means for hashing a flow identifier for the particular flow to obtain a parameter; means for using the obtained parameter to determine a threshold; when the predetermined flow operation is an enqueue operation, means for increasing the drop probability for the particular flow when the determined threshold is greater than a comparison threshold, the drop probability being incremented by a scale factor multiplied by a number of active data flows divided by a number of available buffers from the plurality of buffers; and when the predetermined flow operation is a dequeue operation, means for decreasing the drop probability for the particular flow when the determined threshold is less than the comparison threshold.

15

15. The apparatus of claim 14 , wherein the means for determining the prediction comprises means for measuring an allocation of memory space for the particular flow during a time interval.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

September 2, 2004

Publication Date

August 4, 2009

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Buffer allocation using probability of dropping unordered segments” (US-7570653). https://patentable.app/patents/US-7570653

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.