Queue Scheduler Priority Shifting for Network Congestion Avoidance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network congestion avoidance techniques, such as TCP global loss synchronization, lead to underutilization of link bandwidth and inconsistent service quality due to simultaneous rate adjustments by multiple TCP flows, which can result in repeated congestion cycles.

Innovation Solution

Implementing a congestion control logic that changes the priority of selected frames before they reach their designated queue, causing them to be processed through a different queue, thereby reducing synchronization among TCP flows without premature packet dropping.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If TCP flows use standard congestion avoidance with a common queue, then packet dropping occurs when congestion is detected, but all TCP flows reduce their sending rates simultaneously causing global loss synchronization and underutilization of link bandwidth

Engineering Contradiction:
Improvecongestion avoidanceVSAvoidlink bandwidth utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the common queue into multiple priority queues (e.g., high priority, medium priority, low priority). By dividing the single queue into multiple segmented queues with different priorities, TCP flows are distributed across different queues rather than all competing in a single common queue. This segmentation prevents global loss synchronization because packet drops in one queue do not necessarily cause simultaneous drops in other queues, allowing link bandwidth to be more fully utilized while still providing congestion avoidance.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If multiple TCP flows share a common queue, then simplicity in queue management is maintained, but simultaneous packet drops across all flows cause synchronized rate reduction and repeated congestion cycles

Engineering Contradiction:
Improvequeue managementVSAvoidcongestion cycle repetition
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent introduces multiple priority queues to break the synchronization of packet drops. While this increases queue management complexity slightly, it effectively prevents repeated congestion cycles by ensuring that not all flows experience drops at the exact same time. The segmentation allows the system to tolerate the additional complexity in exchange for eliminating the harmful repeated congestion cycles.

Inventive Principle:
Principle #1Segmentation

3Productivity

If TCP flows accelerate their sending rates together after congestion resolution, then throughput increases temporarily, but they quickly reach congestion levels again causing repeated packet drops

Engineering Contradiction:
ImprovethroughputVSAvoidcongestion stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

By segmenting flows into different priority queues, the patent creates staggered acceleration patterns. When congestion is resolved, flows in different queues accelerate at different times rather than all simultaneously. This segmentation of the acceleration process prevents the system from quickly reaching congestion levels again, as the distributed nature of flow acceleration across multiple queues provides a natural damping effect that stabilizes congestion conditions.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9350659B1Congestion avoidance for network traffic
Publication Date: 2016.05.24 MARVELL ASIA PTE LTD
  • US9350659B1 patent drawing
  • US9350659B1 patent drawing
  • US9350659B1 patent drawing

AI summary

In one embodiment, an apparatus comprises a queue scheduler configured to schedule frames to be buffered through one of a plurality of queues wherein each queue is designated to buffer frames having a pre-assigned priority. Congestion control logic is configured to change the pre-assigned priority of one or more frames before the one or more frames are scheduled by the queue scheduler to cause the one or more frames to be buffered in a different queue than the queue designated for the pre-assigned priority.