Network Interface Controller Timestamping for Packet Accuracy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for timestamping data packets in computer systems are inaccurate due to delays and processing overhead, especially when dealing with grouped packets or systems with varying loads, which affects the accuracy of network property computations and divert processing cycles from other tasks.

Innovation Solution

A method and system where a network interface controller (NIC) includes a clock to generate timestamps for individual data packets, allowing precise timestamping and offloading this process from the system processor, enabling more accurate timestamping and reducing processing overhead by transferring timestamps and data packets separately or embedding them in packet headers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the system uses a system clock to assign timestamps to data packets, then timestamping can be performed, but delays and processing overhead reduce timestamp accuracy and divert processing cycles from other tasks

Engineering Contradiction:
Improvetimestamp accuracyVSAvoidprocessing delay
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The timestamping function is extracted from the system processor and implemented in the NIC hardware itself. The NIC includes a local clock and logic to generate timestamps at the moment data packets arrive at the network interface, completely separating this function from system processor operations and eliminating the delays associated with system clock access and processor scheduling.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The NIC acts as an intermediary between the network and the system processor. It performs timestamping as an intermediate step in the packet reception process, generating timestamps before packets are transferred to system memory. This intermediary function eliminates the need for the system processor to directly access the system clock for each packet, thereby reducing processing overhead and improving timestamp accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If data packets are grouped for transfer to reduce processing overhead, then fewer transfers are required, but individual packet arrival times cannot be determined

Engineering Contradiction:
Improvepacket transfer efficiencyVSAvoidindividual packet arrival time
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The timestamping function is segmented to operate at the individual packet level within grouped transfers. The NIC generates a separate timestamp for each data packet as it arrives at the network interface, even when multiple packets are transferred together to system memory. This segmentation preserves individual packet timing information while maintaining the efficiency benefits of grouped transfers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Timestamps are generated in advance, at the moment each packet arrives at the NIC, before the grouped transfer to system memory occurs. This preliminary timestamping action ensures that individual packet arrival times are captured and stored with each packet, allowing subsequent processing to access precise timing information without requiring separate packet transfers.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If the system processor is responsible for transferring data packets into system memory (PIO method), then more control over the transfer process is achieved, but processing overhead increases significantly

Engineering Contradiction:
Improvetransfer controlVSAvoidprocessing cycle availability
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The data packet transfer function is extracted from the system processor and delegated to the NIC hardware using DMA. The NIC independently manages the transfer of packets from its buffer to system memory, freeing the system processor from this repetitive task. The processor retains control through configuration and monitoring capabilities while experiencing significantly reduced processing overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The NIC performs self-service by autonomously transferring data packets to system memory using DMA without requiring continuous system processor intervention. The NIC manages its own buffer operations and packet transfers, only involving the system processor when configuration or interrupt handling is necessary. This self-service approach dramatically improves processing cycle availability while maintaining operational control.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8102852B2Method and system for time-stamping data packets from a network
Publication Date: 2012.01.24 ORACLE AMERICAN INC
  • US8102852B2 patent drawing
  • US8102852B2 patent drawing
  • US8102852B2 patent drawing

AI summary

A method for timestamping data packets from a network involves receiving a first data packet from the network, obtaining, from a clock, a timestamp indicating an arrival time of the first data packet, where a network interface controller (NIC) includes the clock, providing the timestamp and the first data packet to a client operatively connected to the NIC, computing a network property using the timestamp, selecting a network protocol based on the network property, and transmitting a second data packet via the NIC using the network protocol.