Incremental TCP Checksum Updates for Modified Packet Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In network communication, modifying data within a TCP segment can lead to incorrect checksums, causing transmission errors if the checksum is not updated, and recomputing the checksum from scratch is resource-intensive.

Innovation Solution

Implementing an incremental checksum update method that adjusts the checksum based on changes to specific portions of the segment, reducing the need for full recalculation and conserving memory bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the checksum is recomputed from scratch after modifying segment data, then the checksum accuracy is improved, but the computational overhead and memory bandwidth consumption increase

Engineering Contradiction:
Improvechecksum accuracyVSAvoidcomputational overhead
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the checksum computation process by identifying and isolating only the modified bytes within the TCP segment. Instead of recalculating the entire checksum over all segment bytes, the system divides the problem into: (1) the unchanged portion of the segment that contributes a constant value to the checksum, and (2) the modified bytes that require recalculation. This segmentation allows the checksum to be updated by computing only the difference caused by modified bytes, significantly reducing computational overhead while maintaining full checksum accuracy.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the checksum is updated after modifying segment data, then transmission reliability is improved, but the packet processing time increases

Engineering Contradiction:
Improvetransmission reliabilityVSAvoidpacket processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing the checksum of the original segment before any modifications are made. When data modification occurs, the system uses this pre-computed checksum as a baseline and applies a differential update based on the changed bytes. This preliminary preparation enables rapid checksum updates without requiring full recalculation, thus maintaining transmission reliability while minimizing additional packet processing time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements partial action by performing only the necessary portion of the checksum computation - specifically, only the bytes that have been modified are recalculated and incorporated into the checksum update. The unchanged bytes are excluded from the recalculation process entirely. This partial computation approach maintains transmission reliability by ensuring the checksum reflects current segment data, while avoiding the time penalty of excessive full-segment recalculation.

Inventive Principle:
Principle #16Partial or excessive action

3Speed

If the checksum is not updated after modifying segment data, then the processing speed is improved, but transmission errors occur

Engineering Contradiction:
Improveprocessing speedVSAvoidtransmission reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies partial action by performing only the necessary portion of the checksum computation - specifically, only the bytes that have been modified are recalculated and incorporated into the checksum update. The unchanged bytes are excluded from the recalculation process entirely. This partial computation approach maintains transmission reliability by ensuring the checksum reflects current segment data, while avoiding the time penalty of excessive full-segment recalculation.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7441179B2Determining a checksum from packet data
Publication Date: 2008.10.21 INTEL CORP
  • US7441179B2 patent drawing
  • US7441179B2 patent drawing
  • US7441179B2 patent drawing

AI summary

In general, in one aspect, the disclosure describes a method of determining a checksum. The method includes accessing a checksum of the at least the portion of a packet and adjusting the checksum based on a subset of the at least the portion of the packet before and after modification of the subset.