TCP Stream Inspection via Dual-Processor Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current router technologies face throughput limitations when performing packet monitoring and filtering, as they require significant CPU processing, which reduces performance and is not easily portable across different router models.

Innovation Solution

A method and router configuration that involves receiving and buffering TCP data packets, determining whether to block or allow connections by examining stored packets, and using a dual processor setup to handle traffic efficiently, allowing safe packets to be forwarded via the ASIC for increased throughput while blocking malicious connections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If packet monitoring and filtering is implemented on the CPU, then the router can perform traffic inspection and blocking, but the throughput is significantly reduced to 200-400 Mb/s

Engineering Contradiction:
Improvepacket monitoring capabilityVSAvoidthroughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The router processing is segmented into two distinct paths: a fast path handled by the ASIC for high-speed packet forwarding, and a slow path handled by the CPU for inspection and filtering. This segmentation allows the majority of traffic to bypass CPU processing while still enabling monitoring capabilities for specific connections.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a TCP connection tracking mechanism as an intermediary between the fast path and slow path. The CPU inspects packets and decides whether to allow or block connections, then the ASIC handles subsequent packet forwarding based on these decisions. This intermediary approach enables CPU-based filtering without requiring all traffic to be processed by the CPU.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If packet monitoring is implemented as a user-mode application on the CPU, then the software is easily portable across different router models, but the processing speed is slower compared to kernel-mode or ASIC implementations

Engineering Contradiction:
Improvesoftware portabilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The system performs preliminary actions by establishing TCP connection tracking before full packet inspection. The CPU sets up the connection state and filtering rules in advance, then the ASIC handles subsequent packet forwarding without requiring continuous CPU intervention. This preliminary setup enables fast processing while maintaining software portability.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If all data packets are buffered and inspected by the CPU before forwarding, then malicious connections can be blocked, but the router throughput and response time are significantly reduced

Engineering Contradiction:
Improvemalicious connection blockingVSAvoidpacket forwarding delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of inspecting all packets thoroughly before forwarding, the system performs partial inspection by examining only the initial packets to establish TCP connection state and apply filtering rules. Once the connection is approved, subsequent packets are forwarded rapidly by the ASIC without repeated CPU inspection, reducing delay while maintaining security.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11729215B2Method for inspection and filtering of TCP streams in gateway router
Publication Date: 2023.08.15 F SECURE CORP
  • US11729215B2 patent drawing
  • US11729215B2 patent drawing

AI summary

A method of monitoring traffic by a router acting as a gateway between a first and second network is described. The router can receive data packets sent from the first device over the TCP connection and can send a TCP ACK packet to the first device in response to each data packet. The data packets can be stored without sending them to the second device. The stored data packets can be examined in order to determine whether to block or allow the TCP connection. In the event that it is determined to allow the TCP connection, the router can send each of the stored data packets to the second device. In the event that it is determined to block the TCP connection, the router can send a TCP RST message to each of the first and second devices in order to close the TCP connection.