Proxy Server Packet Acknowledgment for QUIC Congestion Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing proxy solutions struggle to provide effective congestion control for QUIC protocols due to differences between QUIC and TCP protocols, particularly in managing packet acknowledgments and congestion control loops.

Innovation Solution

A method where a proxy server buffers packets and sends a promise frame to the receiving device, allowing for early acknowledgement of packet delivery, enabling continued data transmission and improved congestion control by buffering packets for later delivery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the proxy server waits to send acknowledgments until packets are actually delivered, then packet delivery reliability is improved, but network throughput and sender productivity deteriorate due to delayed congestion control feedback

Engineering Contradiction:
Improvepacket delivery reliabilityVSAvoidnetwork throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The proxy server performs preliminary acknowledgment by sending ACK frames to the sender before the packet is actually delivered to the receiving device. This preliminary action allows the sender to continue transmitting packets without waiting for actual delivery confirmation, thereby maintaining high network throughput while the proxy retains packets for later delivery, resolving the contradiction between reliability and productivity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the proxy server buffers packets for congestion control, then congestion control effectiveness is improved, but packet delivery time increases

Engineering Contradiction:
Improvecongestion control effectivenessVSAvoidpacket delivery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The proxy server acts as an intermediary between the sender and receiving device, buffering packets temporarily to enable effective congestion control. By decoupling the acknowledgment timing from actual delivery timing, the proxy allows congestion control to function properly based on buffered packet management while maintaining the illusion of continuous delivery to the sender, thus balancing congestion control effectiveness with acceptable delivery time.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the proxy server sends early acknowledgments, then sender productivity is improved, but packet loss risk increases if the proxy fails to deliver

Engineering Contradiction:
Improvesender productivityVSAvoidpacket delivery reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The proxy server implements beforehand cushioning by maintaining a buffer of acknowledged but undelivered packets. This buffer acts as a safety cushion that allows the system to tolerate proxy failures or delays without causing actual packet loss, since the sender has already been notified of delivery and can retransmit only if necessary, thus protecting sender productivity while maintaining reliability.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS12052326B2Packet acknowledgment techniques for improved network traffic management
Publication Date: 2024.07.30 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • US12052326B2 patent drawing
  • US12052326B2 patent drawing
  • US12052326B2 patent drawing

AI summary

A proxy server (700) receives, from a sending device, a packet intended for a receiving device (600). The proxy sewer (700) sends, to the receiving device (600), a promise frame (300) indicating that the proxy server (700) will deliver the packet to the receiving device (600) later. The receiving device (600) receives the promise frame (300) from the proxy server (700), and sends an acknowledgement of the packet to the sending device via the proxy sewer (700). The proxy server (700) forwards the acknowledgement of the packet from the receiving device (600) to the sending device, and delivers the packet to the receiving device (600) after having forwarded the acknowledgement to the sending device. The receiving device (600) receives the packet from the proxy server (700) after having sent the acknowledgement of the packet to the sending device via the proxy server (700).