NAT Packet Checksum Updates Using RFC 1624 Incremental Recalculation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Information handling systems face challenges in efficiently updating data packet checksums during Network Address Translation (NAT) operations, leading to misidentification of translated packets as invalid due to mismatched checksums.

Innovation Solution

A checksum calculation module within the NAT router calculates new checksums for IP, TCP, and UDP packets using algorithms based on RFC 1624, ensuring accurate packet translation and forwarding by updating checksums based on source and destination field translations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If Network Address Translation is performed to translate source or destination fields in data packets, then packet routing and network address management are improved, but packet checksum validation fails causing misidentification of translated packets as invalid

Engineering Contradiction:
Improvepacket translation capabilityVSAvoidchecksum validation accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies preliminary action by calculating and updating the checksum before the packet is forwarded after NAT translation. The checksum is recalculated using the translated source or destination fields, ensuring that the checksum reflects the actual packet content before validation occurs at the destination. This prevents the validation failure that would occur if the original checksum were used with translated fields.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If checksums are recalculated after NAT translation, then packet validity is maintained, but processing time and computational overhead increase

Engineering Contradiction:
Improvepacket checksum accuracyVSAvoidchecksum recalculation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies parameter changes by modifying the checksum calculation parameters to match the translated packet fields. Specifically, when the source field is translated, the source address and source port in the checksum calculation are updated to reflect the new translated values. Similarly, when the destination field is translated, the destination address and destination port are updated. This ensures the checksum accurately reflects the translated packet without requiring complete recalculation from scratch.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If complete checksum recalculation is performed for each translated packet, then checksum accuracy is ensured, but processing speed and network throughput decrease

Engineering Contradiction:
Improvechecksum correctnessVSAvoidpacket processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by selectively updating only the specific fields in the checksum calculation that correspond to the translated fields in the packet. Rather than recalculating the entire checksum over all packet fields, the method identifies which fields were translated (source or destination) and updates only those corresponding checksum components. This localized approach maintains checksum accuracy while significantly reducing the computational overhead compared to complete recalculation.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10382058B2Fast update of data packet checksums
Publication Date: 2019.08.13 SONICWALL US HOLDINGS INC
  • US10382058B2 patent drawing
  • US10382058B2 patent drawing
  • US10382058B2 patent drawing

AI summary

A device includes a processor and a checksum module, wherein the checksum module calculates, for first data, an updated checksum that complies with Internet Engineering Task Force Request For Comments Number 1624 using twos-complement arithmetic. The processor replaces the original checksum with the updated checksum to update a data packet.