UDP Tunnel Congestion Control via Selective Segment Dropping
Solution Overview
Problem
Communicating unreliable UDP datagrams through a reliable TCP connection in private networks leads to latency and performance issues due to excessive buffering and out-of-synchronization of tunnel segments, particularly in delay-sensitive applications like VOIP and video streaming.
Innovation Solution
Implementing congestion control by selectively dropping tunnel segments when congestion is determined, rather than buffering them, to reduce latency and prevent out-of-synchronization, using a process that compares the data amount of tunnel segments with the available congestion window and flight size to decide on asynchronous transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If tunnel segments are buffered to ensure reliable delivery through TCP connection, then data delivery reliability is improved, but latency increases and performance deteriorates
Solution Approach 1:
The patent dynamically adjusts the congestion window size parameter to control the amount of data sent through the tunnel. By changing this parameter based on network conditions and application requirements, the system can balance between reliable delivery and low latency, allowing delay-sensitive applications to operate more efficiently over TCP-based tunnels.
Solution Approach 2:
The patent implements selective buffering where not all tunnel segments are buffered - only those necessary for congestion control and reliability are buffered, while others are sent immediately. This partial action approach maintains sufficient reliability while minimizing the latency impact of buffering on delay-sensitive applications.
2Stability of the object's composition
If tunnel segments are buffered to maintain synchronization, then data synchronization is improved, but latency increases and performance deteriorates
Solution Approach 1:
The patent employs dynamic congestion control that adapts to changing network conditions and application requirements. The congestion window and buffering behavior are adjusted in real-time based on feedback from network conditions and application performance, allowing the system to maintain synchronization when needed while minimizing latency impact on productivity.
Solution Approach 2:
The patent implements feedback mechanisms where the system monitors network conditions, congestion levels, and application performance metrics. Based on this feedback, the congestion control algorithm adjusts buffering behavior and transmission rates to maintain data synchronization while optimizing application performance, preventing both over-buffering and loss of synchronization.
3Productivity
If congestion control is implemented by dropping tunnel segments, then latency is reduced and performance is improved, but data loss increases
Solution Approach 1:
The patent introduces the congestion window as an intermediary control mechanism that mediates between the application's data transmission and the TCP connection's reliable delivery. This intermediary allows the system to control the flow of tunnel segments, dropping only when necessary to prevent congestion, while the TCP layer ensures that essential data is retransmitted, thus limiting actual data loss.
Solution Approach 2:
The patent dynamically adjusts the congestion window parameter to control data transmission. By changing this parameter based on network conditions, the system can allow aggressive transmission when bandwidth is available (reducing latency) while preventing congestion that would cause excessive drops. The TCP retransmission mechanism then recovers from necessary drops, minimizing net data loss.
Data Source
AI summary
Example methods are provided for a first endpoint to perform congestion control during communication with a second endpoint over a public network, the second endpoint being in a private network. The method may comprise generating a plurality of tunnel segments containing unreliable transport protocol data destined for the second endpoint; and determining whether congestion control is required based on a data amount of the plurality of tunnel segments and a congestion window associated with a tunnel connecting the first endpoint with the private network. The method may further comprise, in response to determination that congestion control is required, performing congestion control by dropping at least some of the plurality of tunnel segments; otherwise, sending the plurality of tunnel segments through the tunnel supported by the reliable transport protocol connection.



