Host Server Pre-Connect Caching for High-Latency Networks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Establishing persistent connections with multiple remote host servers during network transactions results in significant delays due to multiple connection requests and responses, especially in high-latency networks like those involving satellite links.
Innovation Solution
Pre-position pre-connect responses from remote host servers on the client-side by mimicking connection requests, allowing for immediate use of cached responses when actual connections are initiated, thereby reducing the need for network trips.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If connection requests are sent to multiple remote host servers during network transactions, then resources can be fetched from various sources, but cumulative delay increases significantly
Solution Approach 1:
The system performs preliminary actions by sending connection requests before the actual network transaction is needed. Connection responses are pre-fetched and cached on the client-side, so when the transaction actually occurs, the connections are already established or can be quickly re-established using the cached responses, eliminating the need to wait for full connection handshakes during the critical transaction window.
Solution Approach 2:
A client-side cache acts as an intermediary between the client device and remote host servers. This cache stores pre-fetched connection responses and allows the system to intercept connection requests, providing immediate responses from the cache rather than requiring real-time network communication. This intermediary layer decouples the connection establishment from the actual data transfer timing.
2Reliability
If connection handshakes are performed for each remote host server, then persistent connections are established reliably, but the number of network trips increases
Solution Approach 1:
Instead of performing complete connection handshakes for each remote host server during the actual transaction, the system creates copies of connection responses by pre-fetching them and storing them in a client-side cache. When connections are needed, these cached copies are retrieved and used immediately, eliminating the need for real-time round-trip network communication while maintaining connection reliability.
Solution Approach 2:
Connection responses are pre-fetched and cached before the actual network transaction occurs. This preliminary action ensures that when the transaction needs to access remote host servers, the connection information is already available locally, eliminating the need for time-consuming handshakes during the critical transaction window.
3Loss of time
If pre-connect requests are sent on behalf of the client device, then connection responses can be pre-positioned on the client-side, but additional initial requests are required
Solution Approach 1:
An interceptor component is introduced as an intermediary that monitors and manages connection requests. This interceptor captures connection requests from the client device, checks the client-side cache for pre-positioned responses, and either provides the cached response or allows the request to proceed normally. This intermediary layer automates the complexity of managing pre-connect requests and cached responses, making the process transparent to the client device while reducing connection establishment time.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In anticipation of a client device establishing a connection over a network with a remote host service, a pre-connect module generates a connection request (referred to herein as a "pre-connect request") on behalf of the client device and sends the pre-connect request to the remote host server. The remote server responds with a connection response (referred to herein as a "pre-connect response"), which is pre-positioned on the client-side of the network along with information for generating a later connection request that is in material respects the same as the pre-connect request. Then, when the client device later seeks to establish a connection with the remote host server, the client device determines whether it has in local storage generation information for generating a connection request to the remote host server. If so, the client device uses the generation information to generate a connection request that is in material respects the same as the pre-connect request. An interceptor on the client-side of the network intercepts connection requests and determines whether a corresponding pre-connect response is locally stored. If so, the interceptor sends the locally stored pre-connect response as a complete response to the intercepted request, which can be discarded.