Dynamic Receive Buffering for Network Intermediary Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata delivery reliabilityVSAvoidmemory resource waste
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvememory resource utilizationVSAvoidtransport layer throughput
Core Design Contradiction:
Loss of energyVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvedata transmission reliabilityVSAvoidmemory resource utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10694003B2Systems and methods for dynamic receive buffering
Publication Date: 2020.06.23 CITRIX SYSTEMS INC
  • US10694003B2 patent drawing
  • US10694003B2 patent drawing
  • US10694003B2 patent drawing

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.