NIC-Aware Application Throttling via Overflow Queues
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Object-affected harmful factors
If the application throttles packet output in response to NIC congestion, then network congestion is prevented, but application throughput decreases
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
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
Data Source
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.


