Session-Based RoCE Protocol for Network Service Compatibility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing RDMA over Converged Ethernet (RoCE) protocols, such as RoCE v2, are limited by the use of a fixed destination port number, which restricts the application of network services like NAT, firewalls, and multipath routing to RoCE packets.
Innovation Solution
The introduction of a session-based protocol, referred to as session-based RoCE (SRoCE), which uses unique IP 5-tuples for each RDMA session, allowing for dynamic assignment of UDP source ports and enabling network services to be applied to SRoCE packets like any other UDP/IP packet flow.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a fixed destination port number is used in RoCE protocols, then RDMA communication efficiency is maintained, but network services like NAT, firewalls, and multipath routing cannot be applied to RoCE packets
Solution Approach 1:
The patent segments the RDMA communication into multiple sessions, each identified by a unique IP 5-tuple including a unique source port. This segmentation allows different sessions to be handled differently by network services while maintaining efficient RDMA communication within each session, resolving the contradiction between protocol simplicity and network service compatibility.
Solution Approach 2:
The patent introduces dynamic source port assignment for each RDMA session, making the port number variable rather than fixed. This dynamic approach enables network services to differentiate and process different RDMA sessions appropriately, achieving compatibility with NAT, firewalls, and multipath routing without sacrificing RDMA communication efficiency.
2Adaptability or versatility
If unique IP 5-tuples are assigned to each RDMA session, then network services can be applied to RDMA traffic, but protocol complexity increases
Solution Approach 1:
The patent implements self-service mechanisms where the network interface controller automatically manages session identification and routing based on the IP 5-tuples in packet headers. Network services can process packets independently using standard UDP/IP handling, while the RDMA session context is automatically maintained, reducing the perceived complexity for both the protocol and network services.
Solution Approach 2:
The patent makes the RDMA protocol universal by using standard UDP/IP packet structures that can be processed by any network service. The same packet format serves both RDMA communication and network service processing needs, eliminating the need for special-case handling and reducing overall system complexity despite the added session management capability.
3Reliability
If dynamic UDP source ports are assigned to RDMA sessions, then encryption of entire UDP payloads becomes feasible, but processing overhead increases
Solution Approach 1:
The patent performs preliminary actions by establishing session context and encryption parameters before data transmission begins. The network interface controller pre-configures encryption keys and session identifiers for each RDMA session, allowing encryption to be applied efficiently to entire UDP payloads without per-packet setup overhead, thus improving security while managing processing complexity.
Solution Approach 2:
The patent merges the session identification and encryption key management into a unified structure based on the IP 5-tuple. By combining session context, encryption parameters, and packet routing information into a single lookup key, the system can apply encryption to entire UDP payloads efficiently without separate processing steps, reducing overall processing overhead while maintaining strong security.
Data Source
AI summary
Apparatus for data communication includes a network interface for connection to a packet data network and a host interface for connection to a host computer, which includes a central processing unit (CPU) and a host memory. Packet processing circuitry receives, via the host interface, from a kernel running on the CPU, associations between multiple remote direct memory access (RDMA) sessions and multiple different User Datagram Protocol (UDP) 5-tuple, which are assigned respectively to the RDMA sessions, and receives from an application running on the CPU a request to send an RDMA message, using a selected group of one or more of the RDMA sessions, to a peer application over the packet data network, and in response to the request, transmits, via the network interface, one or more data packets using a UDP 5-tuple that is assigned to one of the RDMA sessions in the selected group.


