Matchmaker Service for NAT Traversal in P2P Mobile Sessions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Peer-to-peer (P2P) communication between mobile devices is hindered by Network Address Translation (NAT) types, which complicate direct connections due to varying NAT implementations across different networks, especially with mobile devices frequently switching between Wi-Fi, 3G, and other communication channels.

Innovation Solution

A matchmaker service groups mobile devices based on application requirements and variables like NAT type, connection type, and language, using a connection data exchange (CDX) service to generate NAT traversal data and establish secure, efficient P2P sessions through a relay service when direct connections are not feasible.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If NAT traversal is implemented to enable P2P communication behind NAT networks, then connection security is improved, but connection establishment complexity increases due to varying NAT types

Engineering Contradiction:
Improveconnection securityVSAvoidconnection establishment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a matchmaker service as an intermediary that coordinates P2P connections between mobile devices behind NAT networks. The matchmaker collects NAT type information from each device, determines compatibility between NAT types, and facilitates connection establishment. This intermediary approach maintains security by not bypassing NAT while reducing complexity by centralizing the compatibility checking and coordination logic, allowing devices to connect without directly handling complex NAT traversal algorithms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If direct P2P connections are attempted between mobile devices with different NAT types, then connection speed is improved, but connection reliability deteriorates due to NAT incompatibility

Engineering Contradiction:
Improveconnection speedVSAvoidconnection reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent implements preliminary action by having the matchmaker service collect and store NAT type information from each mobile device before connection attempts. This pre-collected information is used to determine NAT type compatibility and predict whether direct P2P connections will succeed. By performing this compatibility assessment in advance, the system can quickly establish reliable connections when compatible and avoid futile connection attempts when incompatible, thus maintaining both speed and reliability.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If mobile devices frequently switch between Wi-Fi and 3G networks, then network adaptability is improved, but connection stability deteriorates due to NAT type changes

Engineering Contradiction:
Improvenetwork adaptabilityVSAvoidconnection stability
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent implements feedback by having mobile devices report their current NAT type and network status to the matchmaker service. The matchmaker continuously monitors these reports and can detect when a device's NAT type changes due to network switching. When changes are detected, the matchmaker can notify connected devices and coordinate re-establishment of connections using updated NAT information, thereby maintaining connection stability despite network adaptability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8341207B2Apparatus and method for matching users for online sessions
Publication Date: 2012.12.25 APPLE INC
  • US8341207B2 patent drawing
  • US8341207B2 patent drawing
  • US8341207B2 patent drawing

AI summary

An apparatus, method, and machine-readable medium are described for establishing peer-to-peer (“P2P”) communication channels. In particular, in one embodiment, a matchmaker service performs a series of operations to service match requests received from a group of mobile devices. In one embodiment, the matchmaker service groups the match requests into matchable sets based on the application for which the requests are received and one or more variables associated with the application. Match requests within each match set can then be matched based on variables such as the NAT type, connection type and language associated with each of the mobile devices. Other variables such as geographical location, experience level, and age of the match requests may also be used to render match decisions.