NAT Device Characterization via STUN Probe Packets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Network Address Translation (NAT) devices hinder packet traversal due to unknown or uncharacterized NAT device characteristics, leading to dropped packets when internal computers are unaware of the NAT device's settings, particularly port mappings and filtering behaviors.

Innovation Solution

An internal computer behind a NAT device uses STUN servers to determine NAT characteristics by transmitting UDP packets and analyzing responses to identify port mappings, filtering behaviors, and allocation rules, allowing it to predict and communicate the necessary port information for successful packet traversal.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If NAT devices are used to increase the number of computer connections to the Internet, then the number of concurrent connections is improved, but packet traversal reliability deteriorates due to unknown NAT characteristics

Engineering Contradiction:
Improvenumber of concurrent connectionsVSAvoidpacket traversal reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The internal computer performs preliminary characterization of the NAT device by sending probe packets through the NAT to a STUN server before actual communication begins. This preliminary action determines NAT characteristics (port mapping behavior, filtering rules) in advance, allowing the system to adapt subsequent packet transmission to the identified characteristics, thereby resolving the contradiction between supporting multiple concurrent connections and ensuring reliable packet traversal.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If internal computers do not know NAT device characteristics, then device complexity is reduced, but communication effectiveness deteriorates due to dropped packets

Engineering Contradiction:
Improveinternal computer complexityVSAvoidcommunication effectiveness
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The internal computer autonomously characterizes the NAT device by independently sending probe packets and analyzing responses from STUN servers. This self-service approach allows the internal computer to determine NAT characteristics without requiring external assistance or complex configuration from network administrators. The computer uses the obtained characteristics to predict port mappings and construct appropriate packets, thereby maintaining communication effectiveness while avoiding increased device complexity.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If STUN requests are sent to multiple servers to determine NAT characteristics, then measurement precision is improved, but loss of time increases due to multiple network round trips

Engineering Contradiction:
ImproveNAT characteristic detection accuracyVSAvoidcharacterization time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system sends STUN requests to multiple STUN servers simultaneously to obtain sufficient NAT characteristic information. By using multiple servers in parallel rather than sequentially, the system achieves the measurement precision required for accurate NAT characterization while minimizing the time penalty. The internal computer can stop sending requests once adequate characteristics are gathered, avoiding excessive action that would waste additional time.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7738468B2Method and apparatus for packet traversal of a network address translation device
Publication Date: 2010.06.15 LOGITECH EUROPE SA
  • US7738468B2 patent drawing
  • US7738468B2 patent drawing
  • US7738468B2 patent drawing

AI summary

A characterization method for a network address translation (NAT) device by an internal computer behind the NAT device includes creating a plurality of sockets; binding the plurality of sockets, respectively, to a plurality of ports; transmitting a plurality of STUN requests in user datagram protocol (UDP) packets to a plurality of STUN servers, wherein each STUN request is associated with one of the sockets; determining that the NAT device does not support UDP packets if responses are not received from the STUN servers; and determining a set of NAT characteristics of the NAT device if a response is received from each of the STUN servers.