Packet Pacing Subsystem for Streaming Media Delivery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing streaming media transmission systems are inefficient due to excessive CPU resource consumption from frequent suspension/resume operations and context switches when processing individual data packets, leading to suboptimal delivery of media streams.

Innovation Solution

A packet pacing subsystem that waits for a group of packets instead of individual ones, schedules delivery events based on predetermined times, and reduces CPU overhead by minimizing suspension/resume operations and context switches through batch processing and a delivery queue mechanism.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the packet pacing sub-system processes individual data packets with suspension/resume operations and context switches, then the data stream can be transmitted to clients, but CPU resource consumption increases excessively

Engineering Contradiction:
Improvestreaming media delivery efficiencyVSAvoidCPU resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent combines multiple individual packet processing operations into a single batch processing operation. The packet pacing sub-system waits to receive multiple data packets before processing them together, eliminating the need for repeated suspension/resume operations and context switches that would occur if each packet were processed individually. This merging of operations directly reduces CPU resource consumption while maintaining streaming media delivery efficiency.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If the server processes each data packet individually with multiple suspension/resume points, then packet delivery can be controlled, but system performance deteriorates due to excessive CPU overhead

Engineering Contradiction:
Improvepacket delivery controlVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary action by having the packet pacing sub-system wait to receive a group of data packets before processing them. This preliminary gathering of packets allows the system to perform multiple delivery control operations in a single processing cycle, rather than controlling each packet individually. The sub-system schedules delivery events for multiple packets in advance, reducing the frequency of suspension/resume operations and improving overall system performance while maintaining reliable packet delivery control.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If the packet pacing sub-system waits for individual packets and performs filtering and scheduling operations, then the data stream quality can be maintained, but the number of suspension/resume operations increases

Engineering Contradiction:
Improvedata stream qualityVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent merges multiple quality control operations (filtering, scheduling, delivery event setup) into a single batch processing cycle. Instead of performing these operations on each individual packet, the packet pacing sub-system collects multiple packets and applies all necessary quality control measures to the group simultaneously. This approach maintains the required data stream quality while significantly reducing the total processing time by eliminating repeated operation cycles.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7752325B1Method and apparatus to efficiently transmit streaming media
Publication Date: 2010.07.06 NETAPP INC
  • US7752325B1 patent drawing
  • US7752325B1 patent drawing
  • US7752325B1 patent drawing

AI summary

A method and system to efficiently transmit streaming media are described. The system includes a network protocol engine configured to receive a request for a data stream from a client system and to transmit data packets from the data stream to the client system; and a packet pacing sub-system, responsive to the request for the data stream. The packet pacing sub-system is configured to wait to receive a plurality of data packets from the data stream, and schedule delivery events for the plurality of data packets.The system may further include a streaming media protocol engine to determine a delivery time for data packets in the data stream. The packet pacing sub-system may be configured to receive an associated delivery time for the data packets from the streaming media protocol engine and schedule the delivery events for the data packets according to the associated delivery times for the plurality of packets.