Multiport Wake Pattern for Scalable Remote Application Waking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for waking applications in a suspended state are limited by the need for individual data patterns per application transport connection, leading to scalability issues and inconsistencies in user experience due to the limited number of supported data patterns by network interface controllers (NICs).

Innovation Solution

Implementing a multiport wake pattern that designates a set of ports as a wake-enabled port set, allowing a single configurable pattern to support multiple wake-enabled applications by assigning ports from a reserved range, enabling NICs to wake applications based on a wildcard pattern, even if they are configured to support only a limited number of patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If each application transport connection requires its own data pattern, then the application can be woken reliably, but the number of supported wake-enabled applications is limited due to NIC pattern constraints

Engineering Contradiction:
Improvewake reliabilityVSAvoidnumber of wake-enabled applications
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent combines multiple individual data patterns into a single multiport wake pattern that can match multiple ports simultaneously. This merging allows one pattern to serve multiple application transport connections, thereby increasing the number of wake-enabled applications beyond the NIC's native pattern limit while maintaining reliable wake functionality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The multiport wake pattern is designed to be universal, enabling a single pattern to match packets destined for multiple different ports. This multi-functionality allows the NIC to support more wake-enabled applications than the number of patterns it natively supports, as one pattern performs the work of multiple patterns.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If multiple NICs are used to support more data patterns, then more wake-enabled applications can be supported, but device complexity and configuration inconsistency increase

Engineering Contradiction:
Improvenumber of supported data patternsVSAvoidNIC configuration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The invention makes a single NIC pattern universal by enabling it to match multiple ports through the multiport wake pattern mechanism. This eliminates the need to add multiple NICs or configure multiple patterns, thereby supporting more wake-enabled applications without increasing device complexity or configuration inconsistency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Device complexity

If a limited number of data patterns are supported by NICs, then hardware complexity is reduced, but scalability of wake-enabled applications is limited

Engineering Contradiction:
ImproveNIC pattern support complexityVSAvoidscalability of wake-enabled applications
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent merges the functionality of multiple patterns into a single multiport wake pattern that the NIC can process. This merging maintains simple NIC hardware (supporting only a limited number of patterns) while achieving scalability for wake-enabled applications, as one pattern now represents multiple application connections.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The invention changes the parameters of the wake pattern by introducing port range specifications and wildcard matching capabilities. This allows a single pattern to cover multiple ports dynamically, thereby scaling the number of supported applications without requiring the NIC to support more patterns, maintaining hardware simplicity while improving productivity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9866398B2Pattern coalescing for remote wake-enabled applications
Publication Date: 2018.01.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9866398B2 patent drawing
  • US9866398B2 patent drawing
  • US9866398B2 patent drawing

AI summary

In various embodiments, methods and systems for managing wake-enabled transport connections of wake-enabled applications is provided. A set of ports is designated as a wake-enabled port set. An operating system (OS) of a computing device running applications plumbs the multiport wake pattern to the one or more network interface controllers (NIC) of the computing device. A wake-enabled application acquires a port from the wake-enabled port set. The OS makes a determination that the application is wake-enabled and as such, assigns a port, from the wake-enable port set, to the wake-enabled application. Upon receiving a packet at the NIC, a determination is made whether the packet corresponds to a wake-enabled transport connection based on comparing the packet to the multiport wake pattern. Upon matching the packet to the multiport wake pattern, the NIC communicates with the OS to wake a portion of the wake-enabled application associated with the wake-enabled transport connection.