Fast Session Resumption via Datagram Injection in Dormant Apps
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Battery-powered resource-constrained devices, such as smartphones and IoT devices, face challenges in quickly resuming dormant sessions due to increased communication latency and additional operations required when using push notifications, especially in NAT environments, which is problematic for time-sensitive applications.
Innovation Solution
A method involving a client device receiving a push notification, extracting a datagram packet, injecting it into the communication stack, and reading it, allowing the application to respond without reestablishing a session, using protocols like TCP or TLS, and potentially UDP, to reduce latency and conserve resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If the application transitions to sleep state to optimize power consumption, then energy efficiency is improved, but communication latency increases when resuming sessions
Solution Approach 1:
The notification process maintains a persistent connection with the push notification server while the application sleeps, performing preliminary setup work so that when a notification arrives, the application can resume quickly without establishing a new connection. This preliminary connection maintenance resolves the contradiction by preparing the communication path in advance.
Solution Approach 2:
The notification process acts as an intermediary between the sleeping application and the network. It receives push notifications containing datagram packets, extracts them, and injects them into the application's communication stack, allowing the application to receive data without being actively connected. This intermediary mechanism enables low-latency communication while maintaining application sleep state.
2Use of energy by moving object
If push notification is used to wake dormant applications, then power consumption is reduced, but additional operations and complexity are introduced
Solution Approach 1:
The notification process on the client device automatically handles receiving push notifications, extracting datagram packets, and injecting them into the communication stack without requiring application-level intervention. The system serves itself by managing the wake-up and data delivery process autonomously, reducing the complexity burden on the application developer.
Solution Approach 2:
The notification process serves multiple functions: it maintains the persistent connection, receives push notifications, extracts embedded datagram packets, and injects them into the appropriate application communication stacks. This multi-functional component consolidates complexity into a single system-level process rather than requiring each application to implement its own wake-up logic.
3Reliability
If connection resume procedure is implemented in NAT environments, then communication reliability is improved, but latency and processing overhead increase
Solution Approach 1:
The persistent connection between the notification process and push notification server is established in advance before the application needs to resume. This preliminary connection setup eliminates the need for connection establishment during session resumption, maintaining reliability while reducing latency in NAT environments.
Solution Approach 2:
The notification process acts as an intermediary that receives data through the persistent connection and forwards it to the application. This intermediary approach allows the application to remain dormant while maintaining communication reliability through the persistent connection, avoiding the latency of connection resumption procedures.
4Speed
If application maintains persistent connection to receive data quickly, then communication speed is improved, but power consumption increases
Solution Approach 1:
The system segments the connection responsibility between the notification process (which maintains the persistent connection) and the application (which remains dormant). This segmentation allows the connection to be maintained at the system level without requiring the application to stay active, achieving fast communication while conserving application power consumption.
Solution Approach 2:
The notification process serves as an intermediary that maintains the persistent connection with the server while the application sleeps. When data arrives, the intermediary extracts and delivers it to the application, enabling fast communication through the persistent connection without the power consumption penalty of keeping the application awake.
Data Source
AI summary
Methods, apparatuses, and computer program products for fast resumption of dormant sessions on a client device are disclosed. A client device receives a push notification from a push notification server, the push notification having a payload that includes a datagram packet from an application server that initiated the push notification. A push notification process on the client device extracts the datagram packet from the push notification and injects the datagram packet into a communications protocol stack for at least one application on the client device. The application is awakened from a dormant state and reads the datagram packet. The application may then send a response to the datagram packet to the application server.


