RPC Frame Multiplexing for Connection Saturation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing RPC implementations face issues with exclusive connection use, authentication and authorization challenges in untrusted environments, and inefficient load balancing for non-authoritative servers, leading to saturation, prioritization difficulties, and fragmentation of trust relationships.
Innovation Solution
The solution involves chunking RPC payloads into frames with identifiers for multiplexing over connections, enabling load balancing and authentication/authorization enforcement by an authoritative endpoint, and implementing load-shedding algorithms to manage connection lifetimes and prioritize RPCs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If RPC connections are used exclusively for single RPC requests, then authentication and authorization can be properly enforced, but connection saturation occurs and subsequent RPCs cannot be prioritized
Solution Approach 1:
The RPC payload is segmented into multiple frames (header frame and data frames) that can be transmitted independently over the same connection. This segmentation allows the connection to handle multiple RPC requests by interleaving frames from different RPCs, thereby improving connection utilization while maintaining the ability to enforce authentication and authorization at the connection level.
Solution Approach 2:
The system dynamically manages frame transmission by assigning priorities to different RPC requests and adjusting the transmission order of frames accordingly. High-priority RPC frames can be sent before lower-priority ones, enabling dynamic prioritization without requiring exclusive connection use for each RPC.
2Reliability
If authentication and authorization are implemented at the RPC server level, then trust relationships can be enforced, but it becomes difficult to run RPC servers in untrusted environments
Solution Approach 1:
The system introduces an intermediary authentication mechanism where the RPC client establishes an authenticated connection with the RPC server, and this authenticated context is then carried through the framed payload transmission. This allows the RPC server to run in untrusted environments while maintaining security through the intermediary authentication layer at the connection level.
3Ease of operation
If traditional load balancing is used for non-authoritative RPC servers, then initial connections can be distributed, but connections become overused as servers get loaded making load balancing ineffective
Solution Approach 1:
The system implements feedback mechanisms where the RPC server monitors its load and communicates this information back to the load balancer. Based on this feedback, the load balancer can dynamically adjust its distribution strategy, preventing connection overuse by redirecting new RPC requests to less loaded servers while maintaining effective initial connection distribution.
Data Source
AI summary
Systems and methods are provided for improving communications between infrastructures using RPCs. An authoritative endpoint in a first infrastructure receives a registration request from a non-authoritative server in a second infrastructure through a transport layer on which a remote procedure call (RPC) layer depends. This request establishes a connection with the authoritative endpoint. The authoritative entity authenticates and registers the non-authoritative entity, and receives RPCs from client devices through the non-authoritative entity. The authoritative entity provides responses to the RPCs through the non-authoritative entity over the established connection. The authoritative entity also performed load-shedding operations, such as notifying the non-authoritative entity of a time to live of the connection. The RPC requests and responses sent over the connection may be chunked into frames, each frame identifying a stream to which it belongs.


