Mobile DNS Cache and Connection Pool for IPv4 IPv6 Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Dual-stack networks, which prioritize IPv6 while supporting IPv4, experience increased connectivity overhead, leading to higher DNS resolution and TCP connection times, negatively impacting user experience in mobile devices.
Innovation Solution
A method for concurrently performing asynchronous operations over IPv4 and IPv6 in mobile devices, utilizing intelligent caching and concurrency to redesign DNS resolution and TCP connection phases, capturing DNS query-patterns, performing DNS lookups, and storing pre-connected connection descriptors in a connection pool cache to reduce latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If dual-stack network prioritizes IPv6 while supporting IPv4, then IPv6 adoption rate is improved, but DNS resolution time and TCP connection time increase
Solution Approach 1:
The system performs DNS lookups for both IPv4 and IPv6 addresses concurrently before the actual connection is needed. By resolving domain names to both IPv4 and IPv6 addresses in advance and storing them in a connection pool cache, the system eliminates the time penalty of sequential DNS resolution when connections are actually established.
Solution Approach 2:
The system separates the DNS resolution process into independent concurrent operations for IPv4 and IPv6, rather than executing them sequentially. This segmentation allows both protocol stacks to be resolved simultaneously, reducing the total time required while maintaining dual-stack functionality.
2Adaptability or versatility
If dual-stack network performs sequential DNS lookups for IPv4 and IPv6, then connectivity compatibility is maintained, but connectivity overhead increases
Solution Approach 1:
The system merges the DNS resolution operations for IPv4 and IPv6 into a single concurrent execution framework. Instead of performing separate sequential lookups that increase overhead, both protocol resolutions are initiated simultaneously and managed together, reducing the total operational complexity while maintaining support for both protocols.
Solution Approach 2:
The connection pool cache acts as an intermediary that stores pre-resolved IPv4 and IPv6 addresses. When a connection is needed, the system retrieves addresses from this cache rather than performing new DNS lookups, significantly reducing connectivity overhead while maintaining dual-stack compatibility.
3Reliability
If DNS resolution and TCP connection are performed sequentially, then connection reliability is ensured, but page loading time increases
Solution Approach 1:
The system performs DNS resolution and TCP connection establishment in advance and stores the results in a connection pool cache. When actual data transfer is needed, the pre-established connections are reused, significantly reducing page loading time while maintaining connection reliability through the use of proven working connections.
Solution Approach 2:
The system maintains a pool of pre-established TCP connections that remain available for reuse. Instead of breaking and reforming connections for each data transfer operation, the system keeps connections continuous and ready, eliminating the repeated overhead of connection establishment while ensuring reliable communication channels remain available.
Data Source
AI summary
Embodiments herein include a method for concurrently performing asynchronous operations over IPv4 and IPv6 in a mobile device. The method includes capturing a DNS query-pattern of a plurality of DNS queries for a plurality of services of an application in the mobile device. Further, the method includes performing a DNS lookup in a DNS cache, to obtain a DNS resolution over the IPv4 and the IPv6 based on the DNS query-pattern of the plurality of DNS queries for the plurality of services of the application. Further, the method includes storing the DNS resolution based on the DNS lookup in the DNS cache. Further, the method includes triggering a TCP connection using a pre-connected connection descriptor based on a domain name resolution. Further, the method includes storing the pre-connected connection descriptor corresponding to the TCP connection in a connection pool cache.


