Network Interface Controller Packet Coalescing Logic
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network protocols, such as TCP/IP, incur significant processing overhead by handling and processing multiple packets individually, even if they belong to the same data flow, due to parsing headers, updating flow state information, and generating acknowledgment messages.
Innovation Solution
Implementing a network interface controller (NIC) with logic to coalesce multiple packets belonging to the same flow into a single packet, combining TCP payloads and preparing a single IP and TCP header, thereby reducing per-packet processing overhead by batching packets and optimizing header preparation and acknowledgment management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple packets are handled individually by the protocol stack, then each packet can be processed with complete protocol compliance, but processing overhead increases significantly
Solution Approach 1:
The patent merges multiple packets belonging to the same flow into a single coalesced packet. The NIC combines packets that share the same source/destination IP addresses and TCP ports, creating one aggregated packet that contains multiple original packets' data. This reduces the number of individual protocol processing operations while maintaining TCP compliance through proper sequence number management and flow identification.
Solution Approach 2:
The patent performs preliminary coalescing of packets at the NIC before they reach the protocol stack. By pre-combining packets and preparing their headers in advance, the system reduces the processing burden on the protocol stack. The NIC maintains flow state information and pre-processes header information, so that when coalesced packets are passed to the protocol stack, minimal additional processing is required.
2Productivity
If packets are coalesced into fewer larger packets, then processing overhead is reduced, but packet handling complexity increases
Solution Approach 1:
The patent introduces the NIC as an intermediary device between the network interface and the protocol stack. The NIC contains dedicated coalescing logic that manages the complexity of packet merging, flow tracking, and header preparation. This intermediary handles the complex operations of monitoring incoming packets, identifying flows, combining packets, and managing TCP sequence numbers, thereby shielding the protocol stack from this complexity while still achieving reduced processing overhead.
3Measurement precision
If individual packets are processed separately, then acknowledgment accuracy is maintained, but processing time increases
Solution Approach 1:
The patent changes the parameter of packet aggregation at the NIC, combining multiple individual packets into coalesced packets while maintaining TCP sequence number tracking. The NIC monitors and manages sequence numbers across coalesced packets, ensuring that acknowledgment accuracy is preserved even though packets are processed in batches rather than individually. This parameter change enables batch processing without sacrificing measurement precision.
Data Source
AI summary
In general, in one aspect, the disclosures describes a method that includes receiving multiple ingress Internet Protocol packets, each of the multiple ingress Internet Protocol packets having an Internet Protocol header and a Transmission Control Protocol segment having a Transmission Control Protocol header and a Transmission Control Protocol payload, where the multiple packets belonging to a same Transmission Control Protocol/Internet Protocol flow. The method also includes preparing an Internet Protocol packet having a single Internet Protocol header and a single Transmission Control Protocol segment having a single Transmission Control Protocol header and a single payload formed by a combination of the Transmission Control Protocol segment payloads of the multiple Internet Protocol packets. The method further includes generating a signal that causes receive processing of the Internet Protocol packet.


