Bi-directional NAT Traversal via Endpoint Discriminators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network Address Translation (NAT) traversal is challenging, especially when multiple types of NAT implementations, such as Endpoint Independent, Address Dependent, Address and Port Dependent, and Symmetric, are present in a network, as there is no single approach to ensure transparent connectivity across all types, particularly for applications operating behind symmetric NAT devices.

Innovation Solution

A method is introduced that assigns unique identifiers to each endpoint, transmits these identifiers across the network, and uses a symmetric NAT device to establish a secure link by transmitting a data-session establishment packet with the unique identifier, allowing for matching and creating a forwarding table entry for bi-directional NAT traversal.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single NAT traversal approach is used, then implementation simplicity is improved, but connectivity reliability deteriorates because it cannot work across all NAT types

Engineering Contradiction:
ImproveNAT traversal implementation complexityVSAvoidconnectivity reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system dynamically adapts its traversal method based on the detected NAT type. The endpoint first performs a NAT type detection phase, then selects the appropriate traversal mechanism (STUN, TURN, or ICE) based on whether the NAT is symmetric, restricted cone, or full cone. This dynamic adaptation resolves the contradiction by making the system complex only when necessary while maintaining simplicity for straightforward cases.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes key parameters including the candidate address format, port mapping behavior, and connection establishment protocol based on the detected NAT type. For symmetric NAT, the system uses full candidate descriptions including source and destination addresses and ports, while for endpoint-independent NAT, simpler address formats suffice. This parameter adaptation enables reliable connectivity across diverse NAT implementations.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If multiple NAT traversal methods are implemented to ensure connectivity across all NAT types, then connectivity reliability is improved, but implementation complexity worsens

Engineering Contradiction:
Improveconnectivity reliabilityVSAvoidNAT traversal implementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The NAT traversal functionality is segmented into distinct components: NAT type detection module, candidate gathering module, candidate pairing module, and connection establishment module. Each segment handles a specific aspect of the traversal process. This segmentation allows the system to implement multiple traversal methods while keeping each component's complexity manageable and well-defined.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The ICE framework provides a universal platform that can handle multiple NAT types through a single unified architecture. The same candidate gathering and pairing mechanisms work across symmetric NAT, restricted cone NAT, and full cone NAT, eliminating the need for separate specialized implementations for each NAT type while maintaining broad compatibility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If endpoint identifiers are transmitted through symmetric NAT, then secure link establishment is improved, but packet filtering restrictions worsen connectivity

Engineering Contradiction:
Improvesecure link establishmentVSAvoidpacket transmission ease
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary actions by first detecting the NAT type and then pre-establishing the appropriate candidate descriptions and port mappings before attempting connection. For symmetric NAT, the endpoint pre-calculates the full candidate description including the specific source and destination addresses and ports that will be used, ensuring that the connection attempt matches the NAT's filtering rules. This preliminary preparation resolves the contradiction by ensuring packets are transmitted with the correct parameters before connectivity issues arise.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses an intermediary control plane protocol to coordinate the data-plane connection establishment. The control plane exchanges candidate descriptions and pairing information between endpoints, mediating the complex interaction required for symmetric NAT traversal. This intermediary layer simplifies the overall process by managing the detailed packet transmission requirements while focusing the application layer on high-level connection logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10243886B2Bi-directional NAT traversal using endpoint assigned discriminators
Publication Date: 2019.03.26 CISCO TECHNOLOGY INC
  • US10243886B2 patent drawing
  • US10243886B2 patent drawing
  • US10243886B2 patent drawing

AI summary

A method for creating a secure link between any two endpoints in a network comprises: assigning a unique identifier to each endpoint of a network; for each endpoint in the network, transmitting the unique identifiers associated with each of the remaining endpoints in the network to said endpoint; establishing a secure link between a source endpoint and a destination comprising: transmitting a data-session establishment packet from the source endpoint to the destination endpoint via a symmetric NAT device; wherein the data-session establishment packet comprises the unique identifier associated with the source endpoint; performing a matching operation at the destination endpoint to match the unique identifier associated with the source endpoint with a unique identifier known to the destination endpoint; and upon matching of unique identifiers then creating a forwarding table entry for the destination endpoint based on the source address and source port associated with the source endpoint.