IP Library › Granted Patent US 9,413,653
Granted Patent B2
US 9,413,653 · App. 14/092,316 · Granted Aug 9, 2016

Communication system and server

Inventor: Takahiro Hara (Hamamatsu, JP)
Assignee: Yamaha Corporation
H04L45/74H04L61/2557H04L61/2589H04L61/2575
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,413,653
App. No.
14/092,316
Granted
Aug 9, 2016
Kind
B2
Abstract

In a communication system, using source address, source port number, destination address and destination port number, terminals A and B located behind NAT routers A and B, respectively, communicate with each other through the NAT routers A and B. A server SV which is not located behind any NAT routers identifies the NAT router A as a NAT router of a certain type which translates the source port number into a different source port number if the destination port number is changed. The server SV then guesses a port number obtained by adding (or subtracting) a value to (or from) the source port number used for transmission of data from the terminal A through the NAT router A as a port number of the terminal A in a case where the NAT router has been identified as the certain type, and informs the terminal B of the guessed port number.

Claims (52)

1. A server included in a communication system which is formed of a first terminal located behind a first NAT router, a second terminal located behind a second NAT router, and the server which is not located behind any NAT routers, in which the first terminal and the second terminal are configured to communicate with each other through the first NAT router and the second NAT router by use of a source address, a source port number, a destination address and a destination port number, and in which the server is configured to receive first data and second data transmitted from the first terminal through the first NAT router to the server such that each of the first data and second data has a different destination port number and a common destination address, the server comprising:

a processor configured to:

identify the first NAT router as a NAT router of a certain type which translates the source port number into a different source port number if the destination port number is changed when a source port number used for transmission of the received first data is different from a source port number used for the transmission of the received second data;

in a case where the first NAT router has been identified as the certain type, define, in response to reception of data transmitted from the first terminal through the first NAT router in order to inform the second terminal of a source port number which the first terminal is to use for communication between the first terminal and the second terminal, a port number obtained by adding a value to the source port number used for transmission of the received data or by subtracting a value from the source port number used for transmission of the received data as a guessed port number; and

inform the second terminal of the guessed port number.

2. The server according to claim 1 , wherein

the certain type is a type of NAT router which sequentially changes source port number if the destination port number is changed in a case where data is transmitted by use of the same source address and source port number.

3. The server according to claim 2 , wherein

the guessed port number is defined by adding “+1” to the source port number used for transmission of the received data.

4. The server according claim 1 , wherein the processor is further configured to:

identify the first NAT router as a type other than the certain type when the source port number used for transmission of the received first data is the same as the source port number used for transmission of the received second data; and

in a case where the first NAT router has been identified as the type other than the certain type, when the server has received data for informing the second terminal of source port number which the first terminal is to use for communication between the first terminal and the second terminal, define the source port number used for transmission of the received data as the guessed port number.

5. The server according to claim 4 , wherein

the type other than the certain type is a type which will not change source port number even if the destination address and the destination port are changed in data transmission using the same source address and source port number, or a type which sequentially changes source port number if the destination address is changed in data transmission using the same source address and source port number.

6. A method for informing a port number, the method applied to a server included in a communication system which is formed of a first terminal located behind a first NAT router, a second terminal located behind a second NAT router, and the server which is not located behind any NAT routers, and in which the first terminal and the second terminal are configured to communicate with each other through the first NAT router and the second NAT router by use of a source address, a source port number, a destination address and a destination port number, the method comprising:

receiving first data and second data transmitted from the first terminal through the first NAT router to the server such that each of the first data and second data has a different destination port number and a common destination address;

identifying the first NAT router as a NAT router of a certain type which translates the source port number into a different source port number if the destination port number is changed when a source port number used for transmission of the received first data is different from a source port number used for the transmission of the received second data;

in a case where the first NAT router has been identified as the certain type, defining, in response to reception of data transmitted from the first terminal through the first NAT router in order to inform the second terminal of a source port number which the first terminal is to use for communication between the first terminal and the second terminal, a port number obtained by adding a value to the source port number used for transmission of the received data or by subtracting a value from the source port number used for transmission of the received data as a guessed port number; and

informing the second terminal of the guessed port number.

7. A non-transitory computer readable storage medium storing a computer program for informing a port number, the program to be executed by processor in a server included in a communication system which is formed of a first terminal located behind a first NAT router, a second terminal located behind a second NAT router, and the server which is not located behind any NAT routers, and in which the first terminal and the second terminal are configured to communicate with each other through the first NAT router and the second NAT router by use of a source address, a source port number, a destination address and a destination port number, the program, when executed by the processor, causing the server to perform:

receiving first data and second data transmitted from the first terminal through the first NAT router to the server such that each of the first data and second data has a different destination port number and a common destination address;

identifying the first NAT router as a NAT router of a certain type which translates the source port number into a different source port number if the destination port number is changed when a source port number used for transmission of the received first data is different from a source port number used for the transmission of the received second data;

in a case where the first NAT router has been identified as the certain type, defining, in response to reception of data transmitted from the first terminal through the first NAT router in order to inform the second terminal of a source port number which the first terminal is to use for communication between the first terminal and the second terminal, a port number obtained by adding a value to the source port number used for transmission of the received data or by subtracting a value from the source port number used for transmission of the received data as a guessed port number; and

informing the second terminal of the guessed port number.

8. 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,

wherein the first terminal and the second terminal are configured to communicate with each other through the first NAT router and the second NAT router by use of a source address, a source port number, a destination address and a destination port number, and wherein the server is configured to receive first data and second data transmitted from the first terminal through the first NAT router to the server such that each of the first data and second data has a different destination port number and a common destination address;

wherein the server comprises a processor configured to:

identify the first NAT router as a NAT router of a certain type which translates the source port number into a different source port number if the destination port number is changed when a source port number used for transmission of the received first data is different from a source port number used for the transmission of the received second data;

defining in a case where the first NAT router has been identified as the certain type, define, in response to reception of data transmitted from the first terminal through the first NAT router in order to inform the second terminal of a source port number which the first terminal is to use for communication between the first terminal and the second terminal, a port number obtained by adding a value to the source port number used for transmission of the received data or by subtracting a value from the source port number used for transmission of the received data as a guessed port number; and

inform the second terminal of the guessed port number;

wherein the first terminal is configured to transmit data for informing the second terminal of the source port number which the first terminal is to use for communication between the first terminal and the second terminal to the server through the first NAT router; and

wherein the second terminal is configured to communicate directly with the first terminal through the second NAT router and the first NAT router, using the guessed port number as the destination port number.

9. The communication system according to claim 8 , wherein

the certain type is a type of NAT router which sequentially changes source port number if the destination port number is changed in a case where data is transmitted by use of the same source address and source port number.

10. The communication system according to claim 9 , wherein

the guessed port number is defined by adding “+1” to the source port number used for transmission of the received data.

11. The communication system according to claim 8 ,

wherein the processor is further configured to:

identify the first NAT router as a type other than the certain type when the source port number used for transmission of the received first data is the same as the source port number used for transmission of the received second data; and

in a case where the first NAT router has been identified as the type other than the certain type, when the server has received data for informing the second terminal of source port number which the first terminal is to use for communication between the first terminal and the second terminal, define the source port number used for transmission of the received data as the guessed port number.

12. The communication system according to claim 11 , wherein

the type other than the certain type is a type which will not change source port number even if the destination address and the destination port are changed in data transmission using the same source address and source port number, or a type which sequentially changes source port number if the destination address is changed in data transmission using the same source address and source port number.

13. A communication method applied to a communication system which is formed of 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, and in which the first terminal and the second terminal are configured to communicate with each other through the first NAT router and the second NAT router by use of a source address, a source port number, a destination address and a destination port number, the communication method comprising:

receiving, by the server, first data and second data transmitted from the first terminal through the first NAT router to the server such that each of the first data and second data has a different destination port number and a common destination address;

identifying, by the server, the first NAT router as a NAT router of a certain type which translates the source port number into a different source port number if the destination port number is changed when a source port number used for transmission of the received first data is different from a source port number used for the transmission of the received second data;

in a case where the first NAT router has been identified as the certain type, defining, by the server, in response to reception of data transmitted from the first terminal through the first NAT router in order to inform the second terminal of a source port number which the first terminal is to use for communication between the first terminal and the second terminal, a port number obtained by adding a value to the source port number used for transmission of the received data or by subtracting a value from the source port number used for transmission of the received data as a guessed port number;

informing, by the server, the second terminal of the guessed port number;

transmitting, by the first terminal, data for informing the second terminal of a source port number which the first terminal is to use for communication between the first terminal and the second terminal to the server through the first NAT router; and

communicating, by the second terminal, directly with the first terminal through the second NAT router and the first NAT router, using the guessed port number informed by the server as the destination port number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2013
From: HARA, TAKAHIRO
To: YAMAHA CORPORATION
Reel/Frame 031687/0813 →
Priority Claims (2)
JP 2012-263882 · Nov 30, 2012 · national
JP 2013-239405 · Nov 19, 2013 · national
Continuity (1)
Related Publication 20140156870A1 · Jun 5, 2014