NAT Traversal via Sequential Port Number Sequences

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network devices behind different NATs cannot connect to each other due to the shielding effect of their respective NATs, limiting peer-to-peer communication across different local networks.

Innovation Solution

A network communication system and method that involves a link server and two address translators, where one network device generates a port number sequence with a mix of gradually and randomly generated port values based on external port numbers to establish a connection through the link server, allowing traversal across NATs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If NAT is used to conserve IP addresses, then the number of usable IP addresses is improved, but network devices behind different NATs cannot traverse to connect to each other

Engineering Contradiction:
Improvenumber of usable IP addressesVSAvoidnetwork connectivity between devices behind different NATs
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent introduces a link server as an intermediary component that facilitates peer-to-peer connection establishment between devices behind different NATs. The link server stores address information of communicating devices and assists in the traversal process by providing external port numbers, enabling devices to establish direct connections despite being behind NAT barriers.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transitions from traditional single-port NAT traversal to multi-port sequence traversal. By generating and trying multiple port numbers in sequence (combining sequential and random port values), the system adds a dimensional aspect of port number exploration, increasing the probability of successfully traversing symmetric NATs that block unsolicited incoming connections.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Device complexity

If traditional NAT traversal methods are used, then connection establishment is simple, but the connection speed and success rate are low due to random port guessing

Engineering Contradiction:
Improvetraversal method complexityVSAvoidconnection establishment speed
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by first obtaining the external port number through the link server before attempting connection. This preliminary information gathering step allows the system to start port traversal from a known reference point (the external port number) rather than completely random guessing, significantly improving connection establishment speed while maintaining manageable complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic port number generation by combining sequential port values (starting from the external port number) with random port values. This dynamic approach adapts the traversal strategy during the connection process, trying ports in a structured sequence first and then expanding to random ports if needed, optimizing both speed and success rate.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10333892B2Network communication system and network-traversal method
Publication Date: 2019.06.25 THROUGHTEK TECH SHENZHEN
  • US10333892B2 patent drawing
  • US10333892B2 patent drawing
  • US10333892B2 patent drawing

AI summary

A network-traversal method includes: receiving an address information of a network device from a link server; generating a port number sequence composed of port values according to an external port number of the address information; and sending a link packet to an external network address of the address information in an order of the port values in the port number sequence until receiving an acknowledgement packet from the network device. At least one of the port values is related to the external port number. A part of the rest port values is/are generated gradually based on the external port number, and the others of the rest port values is/are generated randomly.