Parallel NAT Type Detection via Simultaneous Test Messages

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional techniques for determining a peer's NAT type in a peer-to-peer architecture are cumbersome and time-consuming, requiring serial message sending and prolonged waiting periods for responses or timeouts.

Innovation Solution

A peer simultaneously sends multiple test messages to a server, analyzing responses and timeouts to quickly determine its NAT type, reducing detection time to within a predetermined timeout or roundtrip period.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional serial message sending technique is used to determine NAT type, then reliability of detection is maintained, but detection time becomes excessively long

Engineering Contradiction:
ImproveNAT type detection timeVSAvoidpeer connection establishment speed
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The detection process is segmented into multiple parallel test message streams instead of a single serial sequence. Each test message represents an independent detection path that can be executed simultaneously, dividing the overall detection task into concurrent segments that reduce total execution time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple test messages are sent in advance simultaneously rather than waiting for sequential completion. The system performs preliminary detection actions by launching all test messages at once, allowing the NAT type to be determined as soon as sufficient response information is gathered, rather than waiting for a predetermined serial sequence to complete.

Inventive Principle:
Principle #10Preliminary action

2Speed

If multiple test messages are sent simultaneously to determine NAT type, then detection speed is improved, but message handling complexity increases

Engineering Contradiction:
ImproveNAT type detection speedVSAvoidmessage response analysis complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The server acts as an intermediary that receives all test messages and generates standardized responses. This intermediary approach simplifies the peer's analysis task by providing consistent, structured response data that can be systematically interpreted, rather than requiring the peer to manage complex multi-message coordination and analysis itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where server responses to test messages provide direct information about NAT type characteristics. Each response contains feedback data that indicates whether the peer is behind a NAT and what type it is, allowing the system to quickly converge on the correct classification without exhaustive analysis.

Inventive Principle:
Principle #23Feedback

3Productivity

If traditional serial detection method is used, then implementation simplicity is maintained, but peer-to-peer connection setup time increases

Engineering Contradiction:
Improveconnection setup throughputVSAvoidtime to determine NAT type
Core Design Contradiction:
ProductivityVSDuration of action of moving object

Solution Approach 1:

Instead of continuous serial messaging, the system uses periodic batch testing where multiple test messages are sent in a coordinated manner. This periodic action allows the detection process to complete in discrete time intervals rather than continuous sequential steps, improving throughput by utilizing parallel communication channels efficiently.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS9160794B2Network address translators (NAT) type detection techniques
Publication Date: 2015.10.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9160794B2 patent drawing
  • US9160794B2 patent drawing
  • US9160794B2 patent drawing

AI summary

Techniques described herein enable peers to determine each peer's NAT type much more efficiently and quickly than when compared with existing techniques. To do so, a peer simultaneously sends multiple test messages to a server. The peer then waits to either receive a response for each of the multiple test messages or may store an indication that no response has been received after a predetermined timeout period. The peer then analyzes the received responses and/or the stored timeout indications to determine the peer's NAT type or to determine that the peer is operating free from concealment by a NAT/firewall device. By simultaneously sending the multiple test messages, the peer may determine the NAT type within a maximum time defined by the predetermined timeout period or a roundtrip time period that is required for communication between the peer and the server. As such, the tools allow for efficient NAT-type detection.