Token Bucket Policing with Virtual Queue Prediction for TCP Friendliness
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing congestion avoidance and policing methods in networks, such as RED and token bucket algorithms, do not effectively address network congestion and fairness in resource allocation, leading to suboptimal performance and instability when implemented together.
Innovation Solution
Assigning a non-zero drop probability for packets even when there are sufficient tokens in a token bucket, and treating the token bucket as a virtual queue to predict future congestion, allowing for dynamic control of packet transmission based on token bucket levels and rates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If token bucket policing is applied to control traffic bursts, then network resource allocation fairness is improved, but TCP friendliness deteriorates due to excessive packet drops
Solution Approach 1:
The patent applies different drop probability strategies to different traffic conditions: zero drop probability when tokens are abundant, and non-zero drop probability when tokens are scarce. This local differentiation resolves the contradiction by being lenient to TCP flows under normal conditions while still enforcing policing constraints when necessary.
Solution Approach 2:
The patent predicts future token bucket levels based on current arrival rates and policing rates, allowing proactive adjustment of drop probabilities before actual congestion occurs. This preliminary action prevents excessive drops that would harm TCP while maintaining policing effectiveness.
2Productivity
If strict token bucket policing is enforced, then traffic burst control is improved, but network stability deteriorates due to TCP timeouts and oscillations
Solution Approach 1:
The patent applies partial policing action by using non-zero drop probability only when necessary (when predicted token levels indicate future congestion), rather than enforcing strict policing at all times. This partial action maintains burst control effectiveness while avoiding excessive drops that cause TCP timeouts and network oscillations.
Solution Approach 2:
The patent uses feedback from current token bucket levels and predicted future levels to dynamically adjust drop probabilities. This feedback mechanism allows the system to respond adaptively to changing traffic conditions, maintaining stability while enforcing policing constraints when needed.
3Productivity
If zero drop probability is assigned when tokens are sufficient, then packet transmission efficiency is improved, but congestion prediction capability deteriorates
Solution Approach 1:
The patent performs preliminary prediction of future token bucket levels based on current rates and traffic patterns, even when current tokens are sufficient. This allows the system to maintain congestion prediction capability by anticipating future conditions, while still assigning zero drop probability now to maximize transmission efficiency.
Data Source
AI summary
Various improvements are provided for prior art policing methods, including token bucket methods and virtual time policing methods. Some preferred methods of the invention involve assigning a non-zero drop probability even when the packet would otherwise have been transmitted according to a prior art policing method. For example, a non-zero drop probability may be assigned even when there are sufficient tokens in a token bucket to allow transmission of the packet. A non-zero drop probability may be assigned, for example, when a token bucket level is at or below a predetermined threshold or according to a rate at which a token bucket is being emptied. Some implementations involve treating a token bucket as a virtual queue wherein the number of free elements in the virtual queue is proportional to the number of remaining tokens in the token bucket. Such implementations may involve predicting a future virtual queue size according to a previous virtual queue size and using this predicted value to calculate a drop probability.


