Dynamic Receive Buffering for Network Intermediary Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data communication networks face inefficiencies in memory resource allocation due to static buffer sizes for transport layer connections, leading to wasted resources when buffer sizes are either too large or too small for operational needs.
Innovation Solution
Implementing dynamic receive buffering policies that adjust the advertised window size based on memory usage thresholds, allowing intermediary devices to increase or decrease the window size incrementally to optimize memory utilization according to operational needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the buffer size is increased to ensure sufficient memory for data transmission, then the reliability of data delivery is improved, but the memory resources are wasted when the buffer is larger than operational needs
Solution Approach 1:
The patent implements dynamic receive buffering that allows the intermediary device to adjust the advertised window size dynamically based on actual memory availability and operational needs. Instead of using a static buffer size, the system monitors memory conditions and adjusts the window size accordingly, making the buffer adaptive to changing conditions rather than fixed.
Solution Approach 2:
The system changes the parameter of window size from a fixed value to a dynamically adjustable parameter. The intermediary device modifies the advertised window size based on memory usage thresholds and operational requirements, allowing optimization between reliability and resource utilization by treating the buffer size as a variable rather than a constant.
2Loss of energy
If the buffer size is decreased to free up memory resources, then the memory utilization is improved, but the throughput of the transport layer connection is sacrificed
Solution Approach 1:
The dynamic receive buffering mechanism allows the system to adjust the advertised window size in real-time based on memory conditions. When memory is available, the window size increases to maximize throughput; when memory is constrained, the window size decreases to free up resources, creating a dynamic balance between utilization and performance.
Solution Approach 2:
The window size parameter is transformed from a static configuration to a dynamic variable that responds to memory conditions. The system adjusts this parameter based on thresholds and operational needs, enabling optimization of both memory utilization and throughput by allowing the parameter to change according to system state.
3Reliability
If a large buffer is reserved for each transport layer connection to ensure sufficient space, then the reliability of data transmission is improved, but the memory resources of the intermediary device remain unutilized
Solution Approach 1:
The patent enables the intermediary device to serve multiple transport layer connections while dynamically allocating buffer space. Instead of dedicating fixed large buffers to each connection, the system pools memory resources and allocates them dynamically across multiple connections based on actual needs, making the memory infrastructure universal and multi-functional rather than connection-specific.
Solution Approach 2:
The system implements dynamic buffer management across multiple connections, allowing the advertised window size for each connection to be adjusted based on overall memory availability and the operational needs of individual connections. This dynamic approach ensures reliability for each connection while maximizing overall memory utilization across the system.
Data Source
AI summary
The present disclosure relates to methods and systems for dynamically changing an advertised window for a transport layer connection. A device can receive data from a server destined for an application. The device identifies the size of the application buffer corresponding to the application and advertises the application buffer size as a window size to the server. The device stores the data in the device memory. The device then determines the memory usage by comparing the memory usage to one or more predetermined thresholds. If the device determines that the memory usage is below a first predetermined threshold, the device can implement an aggressive dynamic receive buffering policy in which the device increases the advertised window size by a first increment. If the device determines that the memory usage is above the first threshold and below a second threshold, the device executes a more conservative dynamic receive buffering policy.


