NIC Buffer Size Adjustment via Moving Window
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network interface controllers (NICs) face inefficiencies in memory allocation due to over-allocation of buffers for incoming data packets, as the buffer size is not dynamically adjusted to match the varying sizes of packets, leading to unnecessary memory consumption.
Innovation Solution
The receive buffer size for NICs is adjusted based on the K-th largest data packet size among the most recently received N packets, where K and N are positive integers, using a NIC buffer manager component that implements a moving window mechanism to track packet sizes and adjust the buffer size accordingly.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If a fixed buffer size is allocated for NIC receive operations, then memory allocation is simple and deterministic, but memory is over-allocated when packet sizes vary, leading to wasted memory resources
Solution Approach 1:
The patent implements dynamic buffer size adjustment by continuously monitoring incoming packet sizes and adapting the buffer allocation accordingly. The buffer manager component dynamically modifies the buffer size parameter based on observed packet size patterns, transitioning from a static fixed-size allocation to a dynamic adaptive allocation that matches actual network traffic characteristics, thereby reducing memory wastage while maintaining manageable complexity through automated adaptation
Solution Approach 2:
The patent changes the buffer size parameter from a fixed constant to a variable that adapts based on packet size observations. By monitoring the sizes of incoming packets and adjusting the buffer size parameter dynamically, the system optimizes memory utilization to match actual traffic patterns, reducing over-allocation without requiring complex manual configuration
2Reliability
If the buffer size is increased to accommodate large packets, then all packets can be received without overflow, but smaller packets waste significant buffer space, reducing memory efficiency
Solution Approach 1:
The system dynamically adjusts buffer size based on the actual size of incoming packets rather than using a static oversized buffer. The buffer manager monitors packet sizes in real-time and adapts the buffer allocation dynamically, ensuring that the buffer size matches the current packet being received, thus maintaining reliable packet reception while minimizing memory usage for each specific packet size
Solution Approach 2:
The patent applies local quality by tailoring the buffer size to the specific packet size being received. Instead of using a uniform oversized buffer for all packets, the system adjusts the buffer size locally to match each packet's actual requirements, ensuring adequate space for large packets while minimizing waste for smaller packets, thereby optimizing the balance between reliability and memory efficiency
3Quantity of substance
If the buffer size is decreased to match small packets, then memory usage is optimized, but large packets cannot be received completely, causing data loss
Solution Approach 1:
The system employs dynamic buffer size adjustment that responds to the size of incoming packets. The buffer manager continuously monitors packet sizes and adapts the buffer allocation in real-time, ensuring that the buffer size is sufficient for each specific packet being received. This dynamic adaptation maintains packet reception completeness for both small and large packets while optimizing memory efficiency compared to static oversized buffer allocation
Data Source
AI summary
Systems and methods for adjusting the receive buffer size for network interface controllers. An example method may comprise: maintaining, by a computer system, a moving window referencing a pre-defined number of incoming data packets; responsive to receiving a new data packet, shifting the moving window to include the new data packet while excluding a least recently received data packet; calculating a weighted average value of sizes the incoming data packets referenced by the moving window, wherein a most recently received data packet is associated with a first weight that is higher that a second weight associated with a least recently received data packet; and adjusting, using the weighted average value, a size of a buffer allocated for incoming data packets.


