Network Stack Stream Shaping for Multi-Application Bandwidth Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network stacks face challenges in handling multiple types of application data generated by different processes within a single executable software application, particularly in resource-scarce environments, and require scalability and flexibility to manage bandwidth allocation dynamically across diverse networks and devices.

Innovation Solution

A network stack that supports multiple protocols, enforces bandwidth quotas, and manages data streams based on metadata, including stream level flow control and connection level flow control, to ensure efficient transmission of application data across varying network conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a network stack handles multiple types of application data from different processes, then the system becomes more versatile and capable of supporting diverse applications, but the device complexity increases due to the need for managing multiple data streams and bandwidth allocations

Engineering Contradiction:
Improvecapability to handle multiple application data typesVSAvoidcomplexity of managing multiple data streams
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The network stack segments application data into separate data streams based on application type and process, with each stream receiving dedicated bandwidth allocation and flow control. This segmentation allows independent management of different application data types while maintaining overall system control.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The network stack implements a universal data stream management framework that can handle multiple application types (voice, video, text, game data) through a single unified architecture. The same flow control mechanisms and bandwidth allocation algorithms apply across all application types, reducing the need for separate management systems.

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

2Reliability

If the network stack enforces strict bandwidth quotas for each application, then the quality of service for each application is maintained, but the loss of time increases due to data shaping and flow control processing

Engineering Contradiction:
Improvequality of service for each applicationVSAvoidtime for data shaping and flow control
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The network stack performs preliminary bandwidth allocation and flow control configuration when data streams are established, rather than enforcing strict quotas in real-time. This preliminary setup includes pre-calculating bandwidth shares and preparing flow control mechanisms, allowing data to pass through more quickly once streams are active.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The network stack applies flow control and bandwidth shaping selectively to critical data streams rather than all data uniformly. Less time-consuming flow control is applied to tolerant applications while stricter control is reserved for time-sensitive streams, optimizing the balance between QoS and processing time.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If the network stack uses stream level flow control for each data stream, then the reliability of data transmission is improved, but the device complexity increases due to the need for metadata processing and stream identification

Engineering Contradiction:
Improvereliability of data transmissionVSAvoidcomplexity of stream identification and metadata processing
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The network stack merges stream identification and metadata processing into a single integrated data stream management structure. The same components that handle flow control also manage stream identification, eliminating the need for separate complex subsystems and reducing overall device complexity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The network stack uses self-identifying data stream markers and automatic stream classification based on application protocols. This self-service approach reduces the need for complex external stream identification mechanisms and manual metadata processing.

Inventive Principle:
Principle #25Self-service

4Productivity

If the network stack dynamically adapts to changing network conditions, then the productivity of data transmission is improved, but the device complexity increases due to the need for real-time bandwidth allocation adjustments

Engineering Contradiction:
Improvedata transmission efficiencyVSAvoidcomplexity of dynamic bandwidth allocation
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The network stack implements feedback mechanisms that monitor network conditions and application performance, automatically adjusting bandwidth allocations and flow control parameters. This feedback-driven adaptation allows the system to respond to changing conditions without requiring complex manual reconfiguration.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The network stack uses dynamic bandwidth allocation that adjusts in real-time based on network conditions and application needs. The flow control mechanisms are designed to be flexible and adaptable, allowing smooth transitions between different bandwidth levels without requiring complete system reconfiguration.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20250379826A1Network stack for transmission of application data over network connections
Publication Date: 2025.12.11 ROBLOX CORP
  • US20250379826A1 patent drawing
  • US20250379826A1 patent drawing
  • US20250379826A1 patent drawing

AI summary

Implementations described herein relate to methods, systems, and computer-readable media. In some implementations, a method to transmit application data over a network connection may include receiving application data, determining a permitted data rate, shaping the application data received from each application of the plurality of applications based on the permitted data rate for the application into respective shaped application data, adding the shaped application data associated with each application to a queue, assigning the datagrams included in the queue to a particular data stream of a plurality of data streams based on metadata associated with each datagram included in the application data, applying stream level flow control to each data stream of the plurality of data streams to identify a subset of datagrams from the each data stream in the queue, generating a packet for transmission over the connection, and transmitting the packet over the network connection.