RDMA Congestion Window Control Without Read-Response Packet Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current RDMA protocols face challenges in tracking read responses due to their unreliable acknowledgment, making it difficult for congestion control algorithms to manage outstanding packets effectively.
Innovation Solution
Implementing a tracker-free congestion window mechanism that uses transmit and receive byte counts to determine the size of the congestion window, with unsolicited acknowledgments and probe packets to synchronize byte counts between requestor and responder devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If packet trackers are used to track all packets including read responses, then congestion control can accurately determine the size of the congestion window, but computing resources are consumed and complexity increases because read responses are not reliably acknowledged
Solution Approach 1:
The patent extracts the tracking function from individual packets and consolidates it at the connection level. Instead of tracking each packet with its own tracker, the system uses connection-level byte count counters that accumulate total bytes transmitted and received, eliminating the need for per-packet tracking infrastructure.
Solution Approach 2:
The patent merges the tracking of multiple packets into a single connection-level byte count measurement. By combining all packet tracking into aggregate byte counters at the connection level, the system reduces the number of tracking entities from per-packet to per-connection, simplifying the overall system architecture.
2Measurement precision
If all packets including read responses are tracked, then accurate congestion window calculation is achieved, but more computing resources are required for tracking
Solution Approach 1:
The patent extracts the tracking function from individual packets and consolidates it at the connection level. Instead of tracking each packet with its own tracker, the system uses connection-level byte count counters that accumulate total bytes transmitted and received, eliminating the need for per-packet tracking infrastructure.
Solution Approach 2:
The patent changes the measurement parameter from per-packet tracking to connection-level byte count aggregation. By transitioning from tracking individual packet states to aggregating byte counts at the connection level, the system reduces the computational burden while maintaining accurate congestion window calculation.
3Device complexity
If read responses are not reliably acknowledged, then protocol simplicity is maintained, but congestion control cannot accurately track outstanding packets
Solution Approach 1:
The patent uses feedback from the receiver's byte count counter to inform the sender's congestion window calculation. The receiver includes its current byte count in acknowledgments, allowing the sender to accurately determine how many bytes are outstanding and adjust its transmission accordingly, even without reliable per-packet tracking.
Solution Approach 2:
The patent introduces byte count counters as intermediary measurement mechanisms that mediate between the sender and receiver. These counters aggregate packet information into simple byte counts that can be exchanged in acknowledgments, providing the necessary feedback for congestion control without requiring complex per-packet tracking protocols.
Data Source
AI summary
A method for remote direct memory access (RDMA) communication includes transmitting, from a first device to a second device via a network, a first RDMA message, storing, by the first device, a transmit byte count (tx_byte_count) of a total number of bytes transmitted in the first RDMA message, receiving, by the first device from the second device, a second RDMA message associated with the first RDMA message, the second RDMA message comprising a receive byte count (rx_byte_count) of a total number of bytes of the first RDMA message received by the second device, and determining, by the first device, a size of a congestion window on the network based on the tx_byte_count and the rx_byte_count.


