Custodian Routing Proxy for NAT Traversal in Content-Centric Networks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Internet architecture based on location-binding TCP/IP networks is inadequate for meeting the demands of ubiquitous and dynamic content access, as it relies on a conversation model that was not designed for the modern Internet's requirements, making it difficult to access content anywhere, anytime.

Innovation Solution

The implementation of a Session Initiation Protocol (SIP)-based custodian routing system in content-centric networks (CCNs) that facilitates connection establishment between local and remote endpoints across various network address translation (NAT) firewalls by using a proxy server to replicate connection requests and manage address information, enabling multiple connections across different NAT types, including symmetric NATs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single connection-request message is sent to a proxy server for establishing connections to multiple remote endpoints, then the signaling overhead is reduced and connection establishment is simplified, but the complexity of handling NAT firewalls increases and connection reliability across different NAT types deteriorates

Engineering Contradiction:
Improveconnection establishment complexityVSAvoidconnection reliability across NAT firewalls
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent introduces a proxy server as an intermediary that receives connection requests from the local endpoint and forks them to multiple remote endpoints. The proxy server also acts as a mediator in the NAT traversal process by collecting address information from remote endpoints and relaying it back to the local endpoint, enabling connection establishment across different NAT firewall types without requiring complex NAT handling at the endpoint level.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the connection establishment process into distinct phases: (1) sending a single connection request to the proxy server, (2) forking the request to multiple remote endpoints, (3) collecting address information from responders, and (4) establishing individual connections to each remote endpoint. This segmentation allows each component to handle specific tasks, simplifying the overall system while maintaining reliability across NAT firewalls.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the system determines NAT firewall type and sends connection requests with external address information for cone type NATs, then connection establishment is simplified for certain NAT types, but the adaptability to handle all NAT types (including symmetric NATs) deteriorates

Engineering Contradiction:
ImproveNAT type compatibilityVSAvoidNAT detection and handling complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic NAT handling by determining the NAT firewall type at runtime and adapting the connection establishment process accordingly. For cone type NATs, the system uses a simplified approach with external address information, while for symmetric NATs and other types, it employs alternative methods such as relay servers or different signaling protocols. This dynamic adaptation maintains high NAT type compatibility without requiring a single complex solution for all cases.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes connection parameters based on detected NAT type. For example, it modifies the connection request format, address information inclusion, and signaling protocol details according to the specific NAT firewall type. This parameter adaptation allows the system to optimize connection establishment for each NAT type while maintaining overall versatility through the proxy server's coordination.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the proxy server forks connection requests to multiple remote endpoints, then content access from a single local endpoint to multiple remote endpoints is enabled, but the loss of information about which endpoint responded increases and connection management becomes more difficult

Engineering Contradiction:
Improveconnection establishment efficiencyVSAvoidresponse tracking information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent implements feedback mechanisms where remote endpoints send response messages back to the proxy server indicating which endpoint is responding. The proxy server uses this feedback to track which remote endpoints have responded to the connection request and to relay address information back to the local endpoint. This feedback loop prevents information loss and enables proper connection management despite the forking process.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent uses copying of connection request messages with unique identifiers to different remote endpoints through the proxy server. Each forked message contains information that allows the receiving endpoint to identify itself and respond appropriately. The proxy server maintains copies of response information and relays them to the local endpoint, ensuring no information is lost in the forking process while maintaining connection establishment efficiency.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP2466847B1Custodian routing with network address translation in content-centric networks
Publication Date: 2017.03.29 CISCO TECHNOLOGY INC
  • EP2466847B1 patent drawing
  • EP2466847B1 patent drawing
  • EP2466847B1 patent drawing

AI summary

One embodiment of the present invention provides a system for facilitating establishment of connections between a local endpoint and a remote endpoint. During operation, the system sends (614), from the local endpoint, a single connection-request message to a proxy server (604), which forks (616,618) the single connection-request message to a number of remote endpoints. The system receives one or more response messages (620,622) from the remote endpoints. A respective response message carries address information associated with the remote endpoint. Upon receiving the response message, the system sends an acknowledgment (632,634) corresponding to the received response message to the corresponding remote endpoint via the proxy server, and establishes (636-642) a connection between the local endpoint and at least one remote endpoint.