NIC-Aware Application Throttling via Overflow Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network Interface Cards (NICs) in data communication networks often experience congestion, leading to application hang-ups as applications are unaware of congestion, causing packets to queue and worsen network conditions.

Innovation Solution

Implementing NIC-aware applications that throttle output based on NIC congestion by using overflow queues and packet processing engines to manage network traffic, allowing the network device to identify and mitigate congestion by queuing and transmitting packets efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If applications continue to output packets to the transmission queue without awareness of NIC congestion, then applications can maintain their normal operation, but network congestion worsens and applications may hang

Engineering Contradiction:
Improveapplication operation continuityVSAvoidnetwork congestion
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent implements a feedback mechanism where the application monitors the congestion status of the NIC transmission queue. When congestion is detected (queue reaches threshold), the application receives feedback and adjusts its packet output rate accordingly, throttling transmissions to prevent further congestion while maintaining operational continuity

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The application dynamically adjusts its packet output behavior based on real-time NIC congestion conditions. Instead of static packet transmission, the application modulates its transmission rate adaptively - transmitting normally when the queue is clear and throttling when congestion is detected, thereby resolving the contradiction between maintaining operation and avoiding congestion

Inventive Principle:
Principle #15Dynamics

2Object-affected harmful factors

If the application throttles packet output in response to NIC congestion, then network congestion is prevented, but application throughput decreases

Engineering Contradiction:
Improvenetwork congestionVSAvoidapplication throughput
Core Design Contradiction:
Object-affected harmful factorsVSProductivity

Solution Approach 1:

The application applies partial throttling rather than complete cessation of packet transmission. When congestion is detected, the application reduces its output rate to a level that prevents further queue overflow while still allowing some packets to be transmitted, thereby maintaining partial throughput and avoiding complete productivity loss

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The application implements periodic monitoring of NIC congestion status and adjusts transmission in periodic cycles. This allows the application to maintain throughput during non-congested periods while temporarily reducing transmission during congestion events, achieving an average throughput that balances both congestion prevention and productivity

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS8644157B2Systems and methods for handling NIC congestion via NIC aware application
Publication Date: 2014.02.04 CITRIX SYSTEMS INC
  • US8644157B2 patent drawing
  • US8644157B2 patent drawing
  • US8644157B2 patent drawing

AI summary

The present solution is directed to a system for handling network interface card (NIC) congestion by a NIC aware application. The system may include a device having a plurality of network interface cards (NICs), a transmission queue corresponding to a NIC of the plurality of NICs; and an overflow queue for storing packets for the NIC when congested. The system may also include an application executing on the device outputting a plurality of packets to the transmission queue responsive to detecting that the NIC is identified as not congested. The device identifies the NIC as congested responsive to determining that a number of packets stored in the transmission queue has reached a predetermined threshold and responsive to detecting identification of the NIC as congested, the application stores one or more packets to the overflow queue. The device transmits one or more of the plurality of packets stored in the transmission queue and transmits a predetermined number of packets from the overflow queue.