# US 10,313,302 B2 · Methods for NAT (network address translation) traversal and systems using the same

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,302 B2
- Document ID: US10313302B2
- Status: Granted
- Kind: B2
- Application number: 15/240,376
- Filed: 2016-08-18
- Published: 2017-03-23
- Granted: 2019-06-04
- Earliest claimed: 2015-09-17
- Assignees: Synology Incorporated
- Applicants: Synology Inc.
- Inventors: Kan-Yueh Chen; Tsung-Wei Wang; Jia-Yu Liu
- Web page: https://patentgrep.com/patent/US10313302B2

## CPC

- H04L 61/2575: using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
- H04L 45/20: {Hop count for routing purposes, e.g. TTL}
- H04L 45/74: Address processing for routing
- H04L 45/745: Address table lookup; Address filtering
- H04L 61/256: NAT traversal
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The invention introduces a method for NAT (Network Address Translation) traversal, performed by a processing unit of a node, which contains at least the following steps: issuing an initial packet to an intermediate server through a router, in which the initial packet at least contains ID (identity) information of the node; and periodically sending packets to a black hole through the router, so that the router maintains session information between the node and the black hole.

## Claims

### Claim 1

A method for NAT (Network Address Translation) traversal, performed by a processing unit of a first node, comprising:
issuing an initial packet to an intermediate server through a router for attempting to establish a connection with a second node through the intermediate server, wherein the initial packet comprises ID (identity) information of the first node;
periodically sending packets to a black hole instead of the intermediate server through the router, so that the router maintains session information between the first node and the black hole; and
receiving a faked error packet originated from the intermediate server, wherein the faked error packet is fake in that as if the faked error packet is originated from the black hole, and a payload of the faked error packet comprises an external address of the second node.

### Claim 2 (depends on 1)

The method of claim 1, wherein the black hole is an apparatus with no capability for responding to any request, or a network address binding no apparatus.

### Claim 3 (depends on 1)

The method of claim 1, wherein the router's NAT type is not a symmetric NAT.

### Claim 4

A method for NAT (Network Address Translation) traversal, performed by a processing unit of an intermediate server, comprising:
receiving a punch request from a first node, wherein the punch request comprises ID (identity) information of a second node; and
faking an error packet between a black hole and the second node and issuing the faked error packet to the second node, wherein a payload of the faked error packet comprises an external address of the first node.

### Claim 5 (depends on 4)

The method of claim 4, wherein the black hole is an apparatus with no capability for responding to any request, or a network address binding no apparatus.

### Claim 6 (depends on 4)

The method of claim 4, wherein the error packet is an ICMP (Internet Control Message Protocol) TTL (Time To Live) packet.

### Claim 7 (depends on 4)

The method of claim 4, further comprising:
searching a local database to obtain an external address of the second node according to the ID information of the second node; and
replying with the external address of the second node to the first node.

### Claim 8

A system for NAT (Network Address Translation) traversal, comprising:
a first node issuing an initial packet to an intermediate server through a router for attempting to establish a connection with a second node through the intermediate server, wherein the initial packet comprises ID (identity) information of the first node; determining an NAT type of the router; and, when the NAT type is not a symmetric NAT, periodically sending packets to a black hole instead of the intermediate server through the router, so that the router maintains session information between the first node and the black hole;
wherein the intermediate server fakes an error packet between the black hole and the first node and issues the faked error packet to the first node, and a payload of the faked error packet comprises an external address of the second node.

### Claim 9 (depends on 8)

The system of claim 8, wherein, when the NAT type is a symmetric NAT, periodically sending packets to the intermediate server through the router, so that the router maintains session information between the first node and the intermediate server.

### Claim 10 (depends on 8)

The system of claim 8, wherein the black hole is an apparatus with no capability for responding to any request, or a network address binding no apparatus.

### Claim 11 (depends on 8)

The system of claim 8, wherein the NAT performed by the router is not a symmetric NAT.

### Claim 12 (depends on 11)

The system of claim 11, wherein the intermediate server receives a punch request from a second node, the punch request comprises the ID information of the first node.

### Claim 13 (depends on 12)

The system of claim 12, wherein the error packet is an ICMP (Internet Control Message Protocol) TTL (Time To Live) packet.

### Claim 14 (depends on 12)

The system of claim 12, wherein the intermediate server searches a local database to obtain an external address of the first node according to the ID information of the first node; and replies with the external address of the first node to the second node.

### Claim 15 (depends on 14)

The system of claim 14, wherein the first node obtains the external address of the second node from the payload of the error packet, so that the first node and the second node have capabilities for starting a hole punching process.
