Network Stack Direct Data Access Reducing Memory Copy Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data transfer mechanisms over networks, such as VNC and UPnP, consume significant processing and memory resources due to the need for multiple copies of data, which can limit the capacity of servers and impact user experience, especially in mobile systems with limited processing capability.

Innovation Solution

The method involves providing direct access information to the network stack or driver, allowing devices to retrieve data from its original location without copying, thereby reducing the number of data copies and conserving processing and memory resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is copied multiple times during network transmission (from kernel space to background server, then to TCP/IP stack), then data transfer can be completed, but processing capacity and memory resources are consumed excessively

Engineering Contradiction:
Improvedata transfer completenessVSAvoidprocessing capacity consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies the copying principle in reverse by eliminating unnecessary data copies. Instead of copying data multiple times through kernel space, background servers, and TCP/IP stacks, the system enables direct access to data in its original location, allowing network drivers to retrieve data without intermediate copying operations.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent extracts the background server component from the data transfer path. By allowing network drivers to directly access data stored in kernel space or file systems without requiring a background server to copy and forward the data, the system eliminates the intermediate copying step that consumes processing resources.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If entire frame buffers are transmitted at high frame rates to achieve desirable user experience in VNC, then visual quality is improved, but CPU power consumption increases significantly

Engineering Contradiction:
Improveuser experience qualityVSAvoidCPU power consumption
Core Design Contradiction:
ReliabilityVSPower

Solution Approach 1:

The patent enables partial data transmission by allowing selective access to portions of frame buffers or specific data regions. Network drivers can retrieve only the necessary data portions directly from their original locations without copying entire frame buffers, reducing CPU power consumption while maintaining acceptable visual quality.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If software-based TCP/IP stack is used to handle large amounts of network packets, then protocol compliance is ensured, but processing load increases and mobile systems with limited processing capability are overwhelmed

Engineering Contradiction:
Improveprotocol complianceVSAvoidprocessing load
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent enables network drivers to directly access and retrieve data from their original locations without requiring intermediate processing by software-based TCP/IP stacks. This self-service approach allows network drivers to handle data transmission independently, reducing the processing load on mobile systems while maintaining protocol compliance through direct network driver implementation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2726995B1Methods, apparatuses and computer program products for improving network transmission by reducing memory copy overhead by providing direct access to data
Publication Date: 2022.09.14 NOKIA TECHNOLOGIES OY
  • EP2726995B1 patent drawingFigure 1A~1B
  • EP2726995B1 patent drawingFigure 2
  • EP2726995B1 patent drawingFigure 3

AI summary

An apparatus for providing an efficient and reliable manner for transferring data via a network may include a processor and memory storing executable computer code causing the apparatus to at least perform operations including receiving a request for data from a device and enabling provision of information to a network stack. The information may include content indicating a location of the requested data for direct access by the network stack or a network driver, in response to receipt of the request. The computer program code may further cause the apparatus to enable provision of the requested data to the network driver, or enabling the network driver to retrieve the requested data, based at least in part on the indicated location of the requested data. Corresponding methods and computer program products are also provided.