NAT Router Port Translation Bypass via Server Mediation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional network session systems fail to enable direct communication between terminal devices located behind different NAT routers due to the unpredictable translation of source addresses and port numbers by NAT routers, particularly in scenarios where NAT routers of pattern 3 translate source port numbers differently for packets with different destination port numbers, making it difficult to establish successful communication without knowing the translated addresses and port numbers.
Innovation Solution
A communication system that includes a terminal apparatus and a server, where the server notifies the terminals of different port numbers based on the source port numbers used for data transmission, allowing the terminals to attempt connection using new source and destination port numbers, thereby bypassing the need to determine the type of NAT routers and enabling direct communication regardless of the NAT router patterns.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If terminals transmit data using the same source address and source port number to different destinations, then NAT routers translate the source port number into an identical port number regardless of destination (Pattern 1), but this makes it impossible to establish direct communication between terminals behind different NAT routers because the translated port numbers cannot be predicted
Solution Approach 1:
The server performs preliminary actions by notifying terminals of the translated port numbers before direct communication is attempted. The server receives data from terminals, identifies the translated port numbers in the NAT translation process, and provides this information to the terminals in advance, enabling them to establish direct communication successfully.
Solution Approach 2:
The server acts as an intermediary between terminals behind different NAT routers. It receives data from terminals, extracts the translated port number information, and communicates this information to the respective terminals, thereby mediating the establishment of direct peer-to-peer communication despite NAT translation barriers.
2Adaptability or versatility
If NAT routers of Pattern 3 translate source port numbers differently for packets with different destination port numbers, then direct communication becomes even more difficult because the translation behavior is unpredictable without knowing the destination port number in advance
Solution Approach 1:
The server performs preliminary data reception and translation identification before direct communication is attempted. By receiving data first, the server can identify the translated port numbers that result from NAT translation, and then notify terminals of these port numbers, eliminating the need for terminals to guess or trial-and-error their translated port numbers.
Solution Approach 2:
The server provides feedback to terminals about the actual translated port numbers assigned by the NAT routers. This feedback mechanism allows terminals to adjust their communication parameters accordingly and establish direct communication successfully, rather than relying on predictions or assumptions about NAT translation behavior.
3Reliability
If terminals need to determine the type of NAT router to establish direct communication, then communication reliability improves with correct identification, but the complexity and time required for connection establishment increases significantly
Solution Approach 1:
The server serves as an intermediary that eliminates the need for terminals to determine NAT router types themselves. The server performs the data reception first, identifies the translated port numbers, and communicates this information to terminals, thereby removing the time-consuming NAT type detection step from the connection establishment process.
Solution Approach 2:
The NAT router performs self-service by automatically translating port numbers according to its configured pattern, and the server automatically identifies these translated port numbers. This eliminates the need for manual or complex automated detection of NAT router types, as the translation behavior is inherently observable in the data transmission process.
4Device complexity
If terminals use the same source port number for communication with the server, then server processing is simplified, but the ability to establish direct communication with terminals behind Pattern 3 NAT routers is compromised
Solution Approach 1:
The server uses feedback from the data reception process to identify the translated port numbers assigned by NAT routers. Even though terminals use the same source port number for simplicity, the server observes the actual translated port numbers in the incoming data and communicates this information back to terminals, enabling direct communication capability without complicating server processing.
Solution Approach 2:
The server acts as an intermediary that bridges the simplicity of uniform source port number usage with the requirement for accurate translated port number knowledge. By receiving data first and extracting translation information, the server mediates between these two requirements, allowing terminals to maintain simple source port number usage while still achieving direct communication capability.
Data Source
AI summary
A communication system allows terminals PC1 and PC2 located behind NAT routers to communicate with each other by using source address, source port number, destination address and destination port number. The terminals PC1 and PC2 send data to a server in order to notify respective partner terminals PC2 and PC1 of their respective source port numbers. The server notifies the terminals PC2 and PC1 of port numbers based on the source port numbers used for the data transmission by the terminals PC1 and PC2. The terminals PC1 and PC2 attempt to connect to the terminals PC2 and PC1, respectively, by sending data by using source port numbers different from the source port numbers used for the data transmission to the server SV, and destination port numbers based on the received port numbers related to the terminals PC2 and PC1.


