User-Mode Listener Dispatching Network Connections

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network listener technologies face challenges in balancing security and speed, as user-mode listeners are limited by bottlenecks in communication speeds and kernel-mode listeners expose system memory to potential malicious access.

Innovation Solution

A user-mode listener can dispatch control of a client connection to a network component without exposing system memory or services by using socket duplication and dispatch logic to transfer control, allowing direct communication between client and network components at speeds similar to kernel-mode while maintaining user-mode security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a user-mode listener is used to maintain security, then system memory protection is improved, but communication speed deteriorates due to relay bottlenecks

Engineering Contradiction:
Improvesystem memory protectionVSAvoidcommunication speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system dynamically switches between two operational modes: initially operating in user-mode for secure connection establishment, then transitioning to kernel-mode for high-speed data transfer. This dynamic adaptation allows the system to optimize for security during connection setup and for speed during active communication, resolving the speed-security tradeoff.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The communication process is segmented into distinct phases: connection establishment phase (user-mode) and data transfer phase (kernel-mode). Each phase is handled by the appropriate mode optimized for its specific function, allowing security-critical operations to occur in user-mode while performance-critical operations occur in kernel-mode.

Inventive Principle:
Principle #1Segmentation

2Productivity

If a kernel-mode listener is used to improve communication speed, then communication efficiency is improved, but system memory exposure to malicious access worsens

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidmalicious access to system memory
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system dynamically switches between two operational modes: initially operating in user-mode for secure connection establishment, then transitioning to kernel-mode for high-speed data transfer. This dynamic adaptation allows the system to optimize for security during connection setup and for speed during active communication, resolving the speed-security tradeoff.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The user-mode listener acts as an intermediary that verifies and controls the transition to kernel-mode. It validates client credentials and connection requests before allowing kernel-mode access, ensuring that only authorized communications can exploit the speed benefits of kernel-mode while preventing malicious access to system memory.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If a user-mode listener relays all data through communication mechanisms, then security is maintained, but communication bottleneck worsens

Engineering Contradiction:
ImprovesecurityVSAvoidcommunication delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically switches between two operational modes: initially operating in user-mode for secure connection establishment, then transitioning to kernel-mode for high-speed data transfer. This dynamic adaptation allows the system to optimize for security during connection setup and for speed during active communication, resolving the speed-security tradeoff.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The communication process is segmented into distinct phases: connection establishment phase (user-mode) and data transfer phase (kernel-mode). Each phase is handled by the appropriate mode optimized for its specific function, allowing security-critical operations to occur in user-mode while performance-critical operations occur in kernel-mode.

Inventive Principle:
Principle #1Segmentation

4Speed

If direct communication is allowed between client and network components, then communication speed is improved, but security control worsens

Engineering Contradiction:
Improvecommunication speedVSAvoidsecurity control
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system dynamically switches between two operational modes: initially operating in user-mode for secure connection establishment, then transitioning to kernel-mode for high-speed data transfer. This dynamic adaptation allows the system to optimize for security during connection setup and for speed during active communication, resolving the speed-security tradeoff.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The user-mode listener acts as an intermediary that verifies and controls the transition to kernel-mode. It validates client credentials and connection requests before allowing kernel-mode access, ensuring that only authorized communications can exploit the speed benefits of kernel-mode while preventing malicious access to system memory.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7640346B2Dispatching network connections in user-mode
Publication Date: 2009.12.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7640346B2 patent drawing
  • US7640346B2 patent drawing
  • US7640346B2 patent drawing

AI summary

A listener operating in user-mode can dispatch control of a client connection to a listener without exposing system memory or other sensitive services or components. For example, a client component requests access to a network component through connection with a user-mode listener. Based on information contained in the client request, the listener passes a call to an application program interface, which returns a first set of data that includes user-mode contextual information. The listener passes this first set of data to the requested network component. Another call is made to an application program interface, which includes the first set of data, and a request for socket duplication. The application program interface returns control of the requested socket to the network component, such that the network component and the client component communicate directly through the requested socket in user-mode.