# US 9,882,871 B2 · Communication system, terminal apparatus and server

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

- Number: US 9,882,871 B2
- Document ID: US9882871B2
- Status: Granted
- Kind: B2
- Application number: 15/104,754
- Filed: 2014-10-31
- Published: 2016-10-13
- Granted: 2018-01-30
- Earliest claimed: 2013-12-16
- Assignees: Yamaha Corporation
- Applicants: Yamaha Corporation
- Inventors: Takahiro Hara
- Web page: https://patentgrep.com/patent/US9882871B2

## CPC

- H04L 61/2567: for reachability, e.g. inquiring the address of a correspondent behind a NAT server
- H04L 45/00: Routing or path finding of packets in data switching networks (routing or path finding in wireless networks H04W40/00)
- H04L 45/72: {Routing based on the source address}
- H04L 45/745: Address table lookup; Address filtering
- H04L 61/2517: using port numbers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

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.

## Claims

### Claim 1

A communication system comprising: a first terminal located behind a first NAT (Network Address Translation) router; a second terminal located behind a second NAT router; and a server which is not located behind any NAT routers, the first terminal and the second terminal communicating with each other through the first NAT router and the second NAT router; the first terminal including first transmitting unit for transmitting first data to the server through the first NAT router by using a first source port number; the second terminal including second transmitting unit for transmitting second data to the server through the second NAT router by using a second source port number; the server including: a data receiving unit for receiving the first data and the second data transmitted to the server by the first transmitting unit and the second transmitting unit, respectively; and a guessing unit for notifying the second terminal through the second NAT router of a first guessed port number obtained by adding a certain value to the first source port number used for transmission of the first data received by the data receiving unit, and notifying the first terminal through the first NAT router of a second guessed port number obtained by adding the certain value to the second source port number used for transmission of the second data received by the data receiving unit; the first terminal further including: a first receiving unit for receiving the second guessed port number notified by the guessing unit; and a first attempting unit for attempting to connect to the second terminal by transmitting third data to the second terminal through the first NAT router and the second NAT router by using the first source port number and a first destination port number identical to the second guessed port number, and attempting to connect to the second terminal by transmitting fifth data to the second terminal through the first NAT router and the second NAT router by using the first source port number and a third destination port number which is smaller by the certain value than the first destination port number; and the second terminal further including: a second receiving unit for receiving the first guessed port number notified by the guessing unit; and a second attempting unit for attempting to connect to the first terminal by transmitting fourth data to the first terminal through the second NAT router and the first NAT router by using the second source port number and a second destination port number identical to the first guessed port number, and attempting to connect to the first terminal by transmitting sixth data to the first terminal through the second NAT router and the first NAT router by using the second source port number and a fourth destination port number which is smaller by the certain value than the second destination port number.

### Claim 2 (depends on 1)

The communication system according to claim 1, wherein the certain value is “+1”.

### Claim 3

A communication system comprising:
a first terminal located behind a first NAT router;
a second terminal located behind a second NAT router; and
a server which is not located behind any NAT routers,
the first terminal and the second terminal communicating with each other through the first NAT router and the second NAT router;
the first terminal including first transmitting unit for transmitting first data to the server through the first NAT router by using a first source port number;
the second terminal including second transmitting unit for transmitting second data to the server through the second NAT router by using a second source port number;
the server including:
a data receiving unit for receiving the first data and the second data transmitted to the server by the first transmitting unit and the second transmitting unit, respectively; and
a guessing unit for defining the first source port number used for transmission of the first data received by the data receiving unit as a first guessed port number and notifying the second terminal through the second NAT router of the first guessed port number, and defining the second source port number used for transmission of the second data received by the data receiving unit as a second guessed port number and notifying the first terminal through the first NAT router of the second guessed port number;
the first terminal further including:
a first receiving unit for receiving the second guessed port number notified by the guessing unit; and
a first attempting unit for attempting to connect to the second terminal by transmitting third data to the second terminal through the first NAT router and the second NAT router by using the first source port number and a first destination port number obtained by adding a certain value to the second guessed port number, and attempting to connect to the second terminal by transmitting fifth data to the second terminal through the first NAT router and the second NAT router by using the first source port number and a third destination port number which is smaller by the certain value than the first destination port number; and
the second terminal further including:
a second receiving unit for receiving the first guessed port number notified by the guessing unit; and
a second attempting unit for attempting to connect to the first terminal by transmitting fourth data to the first terminal through the second NAT router and the first NAT router by using the second source port number and a second destination port number obtained by adding the certain value to the first guessed port number, and attempting to connect to the first terminal by transmitting sixth data to the first terminal through the second NAT router and the first NAT router by using the second source port number and a fourth destination port number which is smaller by the certain value than the second destination port number.

### Claim 4 (depends on 3)

The communication system according to claim 3, wherein the certain value is “+1”.

### Claim 5

A communicating method employed in a communication system including a first terminal located behind a first NAT router, a second terminal located behind a second NAT router, and a server which is not located behind any NAT routers to allow the first terminal and the second terminal to communicate with each other through the first NAT router and the second NAT router, the method comprising the steps of:
prior to communication between the first terminal and the second terminal,
allowing the first terminal to transmit first data to the server through the first NAT router by using a first source port number; allowing the second terminal to transmit second data to the server through the second NAT router by using a second source port number;
allowing the server:
to receive the first and second data transmitted by the first terminal and the second terminal, respectively; and
to notify the second terminal through the second NAT router of a first guessed port number obtained by adding a certain value to the first source port number used for transmission of the received first data, and to notify the first terminal through the first NAT router of a second guessed port number obtained by adding the certain value to the second source port number used for transmission of the received second data;
further allowing the first terminal:
to receive the second guessed port number notified by the server; and
to attempt to connect to the second terminal by transmitting third data to the second terminal through the first NAT router and the second NAT router by using the first source port number and a first destination port number identical to the second guessed port number, and to attempt to connect to the second terminal by transmitting fifth data to the second terminal through the first NAT router and the second NAT router by using the first source port number and a third destination port number which is smaller by the certain value than the first destination port number; and
further allowing the second terminal:
to receive the first guessed port number notified by the server; and
to attempt to connect to the first terminal by transmitting fourth data to the first terminal through the second NAT router and the first NAT router by using the second source port number and a second destination port number identical to the first guessed port number, and to attempt to connect to the first terminal by transmitting sixth data to the first terminal through the second NAT router and the first NAT router by using the second source port number and a fourth destination port number which is smaller by the certain value than the second destination port number.

### Claim 6 (depends on 5)

The communicating method according to claim 5, wherein the certain value is “+1”.

### Claim 7

A communicating method employed in a communication system including a first terminal located behind a first NAT router, a second terminal located behind a second NAT router, and a server which is not located behind any NAT routers to allow the first terminal and the second terminal to communicate with each other through the first NAT router and the second NAT router, the method comprising the steps of:
prior to communication between the first terminal and the second terminal,
allowing the first terminal to transmit first data to the server through the first NAT router by using a first source port number;
allowing the second terminal to transmit second data to the server through the second NAT router by using a second source port number;
allowing the server:
to receive the first and second data transmitted by the first terminal and the second terminal, respectively; and
to define the first source port number used for transmission of the received first data as a first guessed port number and notify the second terminal through the second NAT router of the first guessed port number, and to define the second source port number used for transmission of the received second data as a second guessed port number and notify the first terminal through the first NAT router of the second guessed port number;
further allowing the first terminal:
to receive the second guessed port number notified by the server; and
to attempt to connect to the second terminal by transmitting third data to the second terminal through the first NAT router and the second NAT router by using the first source port number and a first destination port number obtained by adding a certain value to the second guessed port number, and to attempt to connect to the second terminal by transmitting fifth data to the second terminal through the first NAT router and the second NAT router by using the first source port number and a third destination port number which is smaller by the certain value than the first destination port number; and
further allowing the second terminal:
to receive the first guessed port number notified by the server; and
to attempt to connect to the first terminal by transmitting fourth data to the first terminal through the second NAT router and the first NAT router by using the second source port number and a second destination port number obtained by adding the certain value to the first guessed port number, and to attempt to connect to the first terminal by transmitting sixth data to the first terminal through the second NAT router and the first NAT router by using the second source port number and a fourth destination port number which is smaller by the certain value than the second destination port number.

### Claim 8 (depends on 7)

The communicating method according to claim 7, wherein the certain value is “+1”.
