Intermediary Device MSS Learning for TCP Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Intermediary devices in data communication networks face inefficiencies when managing network traffic due to mismatched Maximum Segment Size (MSS) values between clients and services, leading to unnecessary CPU usage and packet splitting, which results in inefficient processing and resource wastage.

Innovation Solution

The intermediary device learns and adapts the MSS values of backend services through monitoring and statistics, allowing it to set an optimal MSS for TCP connections, thereby avoiding packet splitting and improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the intermediary device uses a globally configured max MSS value for all services, then the device is simple to operate and configure, but packet splitting occurs unnecessarily leading to CPU cycle waste and processing inefficiency

Engineering Contradiction:
Improveease of configurationVSAvoidprocessing efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system dynamically changes the MSS parameter based on service-specific requirements. Instead of using a fixed globally configured MSS value, the intermediary device learns and adapts MSS values for different backend services through monitoring TCP acknowledgments and statistics, then applies appropriate MSS values per service to eliminate unnecessary packet splitting and improve processing efficiency

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system transitions from a static MSS configuration approach to a dynamic learning and adaptation mechanism. The intermediary device continuously monitors TCP acknowledgments from backend services, learns the actual MSS values through statistics collection, and dynamically adjusts MSS settings per service based on observed network conditions and service requirements

Inventive Principle:
Principle #15Dynamics

2Productivity

If the intermediary device performs packet splitting to accommodate service-specific MSS requirements, then processing efficiency improves, but CPU cycles are consumed unnecessarily and resource wastage increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidCPU cycle consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary learning of MSS values through monitoring TCP acknowledgments before actual data transmission occurs. By collecting statistics during the TCP handshake and initial communication phase, the intermediary device pre-determines the appropriate MSS values for each service, eliminating the need for runtime packet splitting operations and associated CPU overhead

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from TCP acknowledgment packets to learn and determine service-specific MSS values. The intermediary device monitors the ACK packets returned by backend services, extracts MSS information from these feedback signals, and uses this information to configure optimal MSS values, thereby avoiding unnecessary packet splitting and reducing CPU cycle consumption

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9491218B2Systems and methods for learning MSS of services
Publication Date: 2016.11.08 CITRIX SYSTEMS INC
  • US9491218B2 patent drawing
  • US9491218B2 patent drawing
  • US9491218B2 patent drawing

AI summary

The virtual Server (vServer) of an intermediary device deployed between a plurality of clients and services supports parameters for setting maximum segment size (MSS) on a per vServer/service basis and for automatically learning the MSS among the back-end services. In case of vServer/service setting, all vServers will use the MSS value set through the parameter for the MSS value set in TCP SYN+ACK to clients. In the case of learning mode, the backend service MSS will be learnt through monitor probing. The vServer will monitor and learn the MSS that is being frequently used by the services. When the learning is active, the intermediary device may keep statistics of the MSS of backend services picked up during load balancing decisions and once an interval timer expires, the MSS value may be picked by a majority and set on the vServer. If there is no majority, then the highest MSS is picked up to be set on the vServer.