Network Appliance Packet Batching for Throughput Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The performance of network appliances in packet data communication networks is bottlenecked by inefficiencies in data packet processing, particularly when operating as intermediary nodes, due to the overhead of traditional interrupt-handling methods and the inefficiency of combining and recreating packets.

Innovation Solution

The method involves storing received data packets into batches based on their specific properties, allowing for simultaneous processing of packets that require similar operations, thereby reducing memory access overhead and maintaining packet structure for forwarding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional interrupt-handling methods are used to transfer data packets from network interface to main memory, then packet-by-packet processing can be achieved, but processing overhead increases significantly due to frequent context switches between operating system kernel and device driver

Engineering Contradiction:
Improvedata packet processing throughputVSAvoidcontext switch overhead time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines multiple individual packet processing operations into a single batch processing operation. By collecting multiple packets into a batch and processing them together in one context switch cycle, the system reduces the frequency of context switches between the operating system kernel and device driver, thereby reducing overhead time while maintaining processing capability.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If LRO or GRO is used to combine multiple packets into a single larger packet, then memory access efficiency improves, but packet structure is altered requiring recreation which is inefficient for intermediary network nodes

Engineering Contradiction:
Improvememory access efficiencyVSAvoidpacket recreation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments packets into batches based on their processing requirements rather than combining them into single large packets. Each batch maintains the individual packet structures intact while grouping them for collective processing. This approach achieves memory access efficiency through batch operations without requiring packet recreation, avoiding the complexity issues of LRO/GRO while maintaining packet integrity for intermediary nodes.

Inventive Principle:
Principle #1Segmentation

3Reliability

If packets are processed individually through the operating system's network stack, then each packet can be handled with full protocol processing, but the overhead of repeated operations on similar packets reduces overall performance

Engineering Contradiction:
Improveprotocol processing correctnessVSAvoidoverall processing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple packet processing operations into batch processing while maintaining protocol correctness. By identifying common processing operations across multiple packets and applying them collectively to the entire batch, the system achieves both reliability (correct protocol processing) and improved productivity (reduced overhead from repeated individual operations).

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies partial processing to batches of packets by performing common operations on the entire batch rather than each individual packet. This partial action approach handles the repetitive portions of protocol processing efficiently at the batch level, while still maintaining full protocol correctness where individual packet handling is required.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2768200B8Receiving data packets
Publication Date: 2019.09.18 FORCEPOINT FINLAND OY

AI summary

At least one connection is defined between protocol entities hosted by network nodes in a packet data communication network. Data packets that include information identifying communicating protocol entities are received. The received data packets are stored into batches corresponding to the defined connections, on the basis of the information identifying communicating protocol entities.