Time-Indexed Traffic Shaping for Scalable Network Rate Limiting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traffic shaping systems face challenges in scaling efficiently to manage large numbers of traffic classes and maintaining network performance across various host architectures, particularly in managing congestion control and memory usage.

Innovation Solution

A network device with a network interface driver that processes packets using a time-indexed data structure to determine transmission times based on rate limit policies, preventing additional packet transmissions until previous packets are confirmed transmitted, and communicating completion notifications to applications, thereby implementing scalable traffic shaping with reduced CPU consumption and accurate rate limiting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional traffic shaping mechanisms are used to manage multiple traffic classes, then network performance can be maintained for small numbers of traffic classes, but the system becomes difficult to scale when considering large numbers of traffic classes

Engineering Contradiction:
Improvescalability to large numbers of traffic classesVSAvoidcomplexity of traffic shaping system
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the traffic shaping system into distinct functional components: packet classification, rate limiting policy application, and time-indexed scheduling. Each component handles specific aspects of traffic management independently, allowing the system to scale to numerous traffic classes without proportionally increasing overall system complexity. The time-indexed data structure further segments packet handling by transmission time rather than requiring complex hierarchical queue management.

Inventive Principle:
Principle #1Segmentation

2Productivity

If traditional queue-based traffic shaping is implemented, then packet prioritization can be achieved, but CPU consumption increases and processing overhead rises

Engineering Contradiction:
Improvepacket transmission efficiencyVSAvoidCPU consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary actions by pre-calculating and storing transmission times for packets in a time-indexed data structure before actual transmission occurs. This allows the network interface driver to efficiently determine packet transmission order without requiring complex real-time scheduling decisions, significantly reducing CPU consumption during packet processing while maintaining high transmission efficiency.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If rate limiting is enforced to control transmission rates, then network resource distribution can be optimized, but additional processing overhead is introduced

Engineering Contradiction:
Improverate limit policy enforcementVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The time-indexed data structure enables packets to essentially self-organize by transmission time without requiring continuous active management. Once packets are inserted into the time-indexed structure with their calculated transmission times, the system automatically manages the scheduling without additional processing overhead, achieving reliable rate limit enforcement with minimal ongoing complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10454835B2Device and method for scalable traffic shaping with a time-indexed data structure
Publication Date: 2019.10.22 GOOGLE LLC
  • US10454835B2 patent drawing
  • US10454835B2 patent drawing
  • US10454835B2 patent drawing

AI summary

Systems and methods of performing rate limiting traffic shaping with a time-indexed data structure in a network device are provided. A network interface driver of the network device can received packets at the packet layer of a network host from a plurality of applications. The network interface driver can prevent one of the applications from sending additional packets for transmission until the application received a transmission completion notification indicating a packet previously forwarded to the packet layer of the network host has been transmitted. The network interface driver can process the received packets to determine a transmission time for each packet based on at least on rate limit policy. The network interface driver can store an identifier associated with the respective packet in a time-indexed data structure at a position associated with the transmission time determined for the packet. The network interface driver can determine that a time indexed in the time-indexed data structure has been reached and in response transmit a packet associated with the identifier stored in the time-indexed data structure at a position associated with the reached time. The network interface driver can communicate a transmission completion notification subsequent to the network interface driver transmitting the packet.