WO2008051028A1 - Network address translation control system and method for providing multilateral-bidirectional audio communication service - Google Patents

Network address translation control system and method for providing multilateral-bidirectional audio communication service Download PDF

Info

Publication number
WO2008051028A1
WO2008051028A1 PCT/KR2007/005275 KR2007005275W WO2008051028A1 WO 2008051028 A1 WO2008051028 A1 WO 2008051028A1 KR 2007005275 W KR2007005275 W KR 2007005275W WO 2008051028 A1 WO2008051028 A1 WO 2008051028A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
information
hole punching
relay server
nat
Prior art date
Application number
PCT/KR2007/005275
Other languages
French (fr)
Inventor
Min-Seok Lee
Kwan-Je Seong
Sang-Hyun Cho
Original Assignee
Huliv Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huliv Co., Ltd. filed Critical Huliv Co., Ltd.
Publication of WO2008051028A1 publication Critical patent/WO2008051028A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers

Definitions

  • the present invention relates to a network user datagram protocol (UDP) control system, and more particularly, to a network address translation (NAT) control system and method using the system providing a bidirectional call service by establishing a multiple UDP communication session.
  • UDP network user datagram protocol
  • NAT network address translation
  • FIG. 1 illustrates a multilateral voice call system and multilateral voice call control method according to a conventional art.
  • a plurality of clients simultaneously connect to a single server.
  • a voice call is very useful between the plurality of connected clients.
  • a voice call may be very useful in a multi-player online game, an auction system, or an academic conference having a plurality of participants.
  • a multilateral voice call system on the Internet is conducted according to a peer to peer (P2P) communication method.
  • the P2P communication method is a direct communication method between clients, without a server, under a condition that an Internet Protocol (IP) address and the like are mutually shared between the clients.
  • IP Internet Protocol
  • IP address of each client required for P2P communication between a plurality of connected clients is generally provided as an additional service, it may be an additional burden for a service provider or a service developer.
  • a plurality of clients use a network address translation (NAT) to share a valid IP address on the Internet or to protect a private network being connected to a public network having a plurality of clients from invaders.
  • NAT network address translation
  • Valid IP addresses on the Internet are so limited that the authorized IP address is inevitably shared, however if the NAT is used, a private IP address may be used since the private IP address may be convertible to a valid IP address. That is, an authorized address may be shared by a plurality of clients, and accordingly authorized addresses may be conserved.
  • the NAT may be used as a basic protection method for protecting a communication network of a user from an outside invasion by establishing a firewall between a public network and a private network, in this instance, when the NAT is established in a router connecting to an outer communication network of the Internet, since a router allows an authorized IP address being allocated to the router to be exposed to an outside and to use a private IP address internally, and the authorized IP address and the private IP address are converted with each other when the conversion is required, when each of the plurality of clients exists in its own private network, the P2P communication capable of providing a voice call service between the plurality of clients participating in the multi-player online game, the auction system, or the academic conference may not be conducted.
  • a full cone In the full cone type, all ports toward an outside are mapped as one with respect to a couple of internal IP addresses and ports, all external clients may transmit packets to internal clients using mapped addresses and ports.
  • the restricted cone type a transmission method is identical to the full type, however mapping is conducted under a condition that packets are transmitted from the inside to the outside prior to receiving packets from the outside. That is, ports are mapped to identical ports when having identical external IP addresses.
  • the port restricted cone a transmission method is identical to the restricted cone, however mapping is conducted under condition that external IP addresses need to correspond to ports since port are included as a limitation condition.
  • the three types except for the symmetric cone type may communicate with an internal client via session establishment using a single port being mapped in the NAT. That is, a packet being received via a single port that transmits the packet may be transmitted to anywhere outside, communication between one and multiple clients is possible. However, in the symmetric cone, only one to one communication between clients is possible since each of outside clients communicating with an inside client uses its own individual port.
  • the present invention provides a NAT control system and method using the system which can perform a voice call service by establishing multilateral network user datagram protocol (UDP) communication sessions using a UDP hole punching technique and a relay server.
  • the present invention also provides a NAT control system and method using the system which can perform a multilateral-bidirectional voice call service in real time.
  • UDP network user datagram protocol
  • the present invention also provides a NAT control system and method using the system which can provide a service provider and a service developer with a smooth service for a multilateral-bidirectional voice call.
  • the present invention also provides a NAT control system and method using the system which can provide a smooth voice call service without increasing a load of a main server since the NAT control system and the method using the system can perform a multilateral-bidirectional voice call service.
  • a network address translation (NAT) control system including: a main server receiving first connection request information or first hole punching information from a first client to transmit the received first connection request information or first hole punching information to a relay server, and receiving second hole punching information from a second client to transmit the received second hole punching information to the relay server; and a relay server relaying the second hole punching information to the first client, simultaneously relaying the first hole punching information to the second client when the first connection request information is received, and supporting a hole punching process that establishes a user datagram protocol (UDP) communication session between the first client and the second client, wherein the relay server relays a communication session between the first client and the second client.
  • UDP user datagram protocol
  • an NAT control method for a multilateral voice call service including: receiving first session establishment request information from a first client and second session establishment request information from a second client to maintain communication sessions with the first client and the second client; a main server receiving a first connection request information or first hole punching information from the first client to transmit the received first connection request information or first hole punching information to a relay server, and receiving the second hole punching information from the second client to transmit the received second hole punching information to the relay server; and performing a first hole punching process that receives the first hole punching information from the first client to relay the received first hole punching information to the second client, and simultaneously receives the second hole punching information from the second client to relay the received second hole punching information to the first client, when the first connection request information is received.
  • FIG. 1 illustrates a multilateral voice call system and control method using the system according to a conventional art
  • FIG. 2 illustrates a network address translation (NAT) control system and a state when a network datagram protocol (UDP) session is established prior to processing a UDP hole punching process between configuration elements of the NAT control system according to an embodiment of the present invention
  • NAT network address translation
  • UDP network datagram protocol
  • FIG. 3 illustrates a NAT control system and NAT control method which provides a multilateral-bidirectional voice call service via a first UDP hole punching process between a first client and a second client according to an embodiment of the present invention
  • FIG. 4 illustrates a UDP communication channel generated between a first client and a second client via a first hole punching process by a relay server of FIG. 3;
  • FIG. 5 illustrates a NAT control system displaying operations of when a third client is additionally established in a communication channel of a first client and a second client having a UDP session already established from FIG. 4.
  • FIG. 6 illustrates a UDP communication channel generated between a first client, a second client, and a third client via a second hole punching process by the relay server of FIG. 5;
  • FIG. 7 is a flowchart illustrating a NAT control method for a multilateral- bidirectional voice call service according to an embodiment of the present invention
  • FIG. 8 is a flowchart illustrating operations of generating and entering into a room on a NAT control system which provides a multilateral voice call service according to an embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating a NAT control method which provides a multilateral voice call service, the multilateral voice call service being performed since a UDP communication session is established via a UDP hole punching process by a relay server between a first client and a second client according to an embodiment of the present invention.
  • FIG. 2 illustrates a network address translation (NAT) control system and a state when a network datagram protocol (UDP) session is established prior to processing a UDP hole punching process between configuration elements of the NAT control system.
  • the NAT control system providing a multilateral voice call service includes a relay server 100 and a main server 200, a UDP session is established between the main server 200 and a plurality of clients 301, 302, and 303, and each of the plurality of clients 301, 302, and 303 have a different node via a different NAT.
  • the main server 200 receives a first session establishment request from a first client 301 and a second session establishment request from a second client 302 to relay the first session establishment request or the second session establishment request to the relay server 100.
  • the relay server 100 receives the first session establishment request or the second session establishment request from the main server 200 to maintain a communication session with the first client 301 or with a second client 302. In FIG.
  • a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1
  • a session MS-C2 122 is established between the second client 302 having another node and the main server 200
  • a session MS-C3 123 is established between the third client 303 having still another node and the main server 200.
  • the session MS-RS 110 is established between the relay server 100 and the main server 200, thus sessions are established between the plurality of clients 301, 302, and 303 and the relay server 100 via the main server 200. That is, the relay server 100 can establish and maintain a communication session with any client since the relay server 100 uses a public IP address, thereby successfully performing a hole punching process, which will be described later. Regardless of the hole punching process, the relay server 100 may process a relay process of voice data between clients. However, when the relay server 100 exclusively processes a relay process of voice data between clients, and when a number of the clients is increased, problems such as processing power, network bandwidth, and communication latency occur in the relay server 100 due to the relay process of voice data.
  • voice data is directly received/transmitted between the clients not by way of the relay server 100 when a hole punching process between clients is successfully performed.
  • Direct voice call is possible between the clients when the hole punching process is successfully performed, and the problems such as processing power, network bandwidth, and communication latency can be overcome.
  • the main server 200 receives first hole punching information from the first client 301 and second hole punching information from the second client 302 to relays the first and second hole punching information to the relay server 100.
  • the relay server 100 relays the received first hole punching information to the second client 302, receives the second hole punching information from the second client 302 and relays the second hole punching information to the first client 301, and performs a first hole punching process.
  • the first hole punching information includes fixed address information and private address information of the first client 301
  • the second hole punching information includes fixed address information and private address information of the second client 302. Detailed description will be described later.
  • FIG. 3 illustrates a NAT control system and NAT control method providing a multilateral-bidirectional voice call service via a first UDP hole punching process between a first client and a second client.
  • a first client 301 When a first client 301 attempts a direct UDP connection to a second client 302, the first client 301 transmits a UDP packet to a fixed IP address of the second client 302 in operation 210, and a NAT 2 drops the UDP packet from the first client 301. This is because an original IP address and a port number do not correspond to the session MS- C2 122 whose session establishment is originally connected to an outside, and in a reversed case of when the UDP packet is transmitted from the second client 302 to the first client 301 in operation 220.
  • a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1
  • a session MS-C2 122 is established between the second client 302 having another node and the main server 200
  • a session MS-C3 123 is established between the third client 303 having still another node and the main server 200.
  • the main server 200 receives a first session establishment request from a first client 301 and a second session establishment request from a second client 302 to relay the first session establishment request or the second session establishment request to the relay server 100.
  • the relay server 100 receives the first session establishment request or the second session establishment request from the main server 200 to establish a communication session with the first client 301 or with the second client 302, accordingly a session MS-RS 110 is established between the relay server 100 and the main server 200, and a session is established between the first and second clients 301 and 302 and the relay server 100 via the main server 200.
  • the relay server 100 may perform a relay process of voice data between clients.
  • the relay server 100 processes only a relay process of voice data between clients, and when a number of the clients is increased, problems such as processing power, network bandwidth, and communication latency occur in the relay server 100 due to the relay process of voice data.
  • voice data is directly received/transmitted between the clients not by way of the relay server 100 when a hole punching process between clients is successfully performed.
  • the relay server 100 performs a relay process of voice data, and also performs a hole punching process.
  • a direct UDP communication between the first client 301 and the second client 302 is possible via a UDP hole punching process by the relay 100.
  • a first hole punching process between the first client 301 and the second client 302 is performed after the relay server 100 relays second hole punching information to the first client 301 and first hole punching information to the second client 302 when the relay server 100 receives a connection request, such as creating a chatting room, from the first client 301.
  • First connection establishment request information 230 includes information about UDP communication session establishment with the second client 302. Specifically, the first connection request information may be connection request information for conducting a voice call.
  • the first client 301 transmits the first connection request information 230 which includes information about a UDP communication session establishment request to the second client 302 to the relay server 100 having a session established, via the main server 200.
  • the relay server 100 having received the first connection request information 230 receives first hole punching information from the first client 301, relays the first hole punching information to the second client 302, and simultaneously relays the second hole punching information 240, which is received from the second client 302, to the first client 301.
  • the first hole punching information includes fixed address information and private address information of the first client 301
  • the second hole punching information 240 includes fixed address information and private address information of the second client 302.
  • NAT 1 when the first client 301 transmits a packet to a fixed address of the second client 302, NAT 1 generates a new UDP communication channel between a private address of the first client 301 and the fixed address of the second client 302, and when the second client 302 transmits a packet to a fixed address of the first client 301, NAT 2 generates a new UDP communication channel between a private address of the second client 302 and the fixed address of the first client 301.
  • the first client 301 and the second client 302 can directly communicate with each other without burdening the main server 200 with an additional load.
  • the first client 301 When the first hole punching process is successfully performed, the first client 301 ceases the communication session with the relay server 100, and performs UDP communication with the second client 302. That is, a direct voice call between the first client 301 and the second client 302 is possible. Even when the first hole punching process fails, the relay server 100 relays a voice call between the first client 301 and the second client 302 so that the voice call between the first client 301 and the second client 302 is possible.
  • FIG. 4 illustrates a UDP communication channel generated between a first client and a second client via a first hole punching process by a relay server of FIG. 3.
  • a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1
  • a session MS-C2 122 is established between the second client 302 having another node and the main server 200
  • a session MS-C3 123 is established between the third client 303 having still another node and the main server 200.
  • a session MS-RS 110 is established between the relay server 100 and the main server 200 so that sessions are established between the first and second clients 301 and 302 and the relay server 100 via the main server 200.
  • NAT 1 when the first client 301 transmits a packet to a fixed address of the second client 302, NAT 1 generates a new UDP communication channel between a private address of the first client 301 and the fixed address of the second client 302, and, when the second client 302 transmits a packet to a fixed address of the first client 301, NAT 2 generates a new UDP communication channel between a private address of the second client 302 and the fixed address of the first client 301, thereby establishing the new UDP sessions in each direction between the first client 301 and the second client 302. That is, a session C1-C2 124 is established.
  • the first client 301 When the first hole punching process is successfully performed, the first client 301 ceases the communication session with the relay server 100, and performs UDP communication with the second client 302. That is, a direct voice call between the first client 301 and the second client 302 is possible.
  • the relay server 100 relays a voice call between the first client 301 and the second client 302 so that the voice call between the first client 301 and the second client 302 is possible.
  • a peer to peer (P2P) communication channel is established between the first client 301 and the second client 302, and other client, that is other peers existing in connection with the P2P communication channel performs as a guide, thus contributing to a connection of P2P UDP communication of the other clients and minimizing a load of the main server 200.
  • P2P peer to peer
  • the NAT control system of the present invention is described being limited to a gap between clients ranging over a single operation in FIG. 4, the NAT control system of the present invention is not limited thereby, and also may be applicable to multiple NATs.
  • FIG. 5 illustrates a NAT control system displaying operations of when a third client is additionally established in a communication channel of a first client and a second client having a UDP session already established from FIG. 4.
  • a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1
  • a session MS-C2 122 is established between the second client 302 having another node and the main server 200
  • a session MS-C3 123 is established between the third client 303 having still another node and the main server 200
  • a session MS-RS 110 is established between the relay server 100 and the main server 200
  • a session is established between the first and second clients 301, 302, and 303 and the relay server 100 via the main server 200.
  • a session C1-C2 124 is established between the first client 301 and the second client 302.
  • direct UDP communication between the first client 301, the second client 302, and the third client 303 is performed via a UDP hole punching process via the relay server 100.
  • a second hole punching process between the first client 301, the second client 302, and the third client 303 is performed via the relay server 100 after the relay server 100 relays third hole punching information to the first client 301 and the second client 302 and first hole punching information and the second hole punching information to the third client 303 when the relay server 100 receives second connection request information 310 from the third client 303.
  • the second connection request information 310 includes information about a UDP communication session establishment request with the first client 301 and the second client 302. Specifically, the second connection request information 310 may be connection request information for conducting a voice call.
  • the third client 303 transmits the second connection request information 310, which includes information about a UDP communication session establishment request to the first client 301 and the second client 302, to the relay server 100 via the main server 200.
  • the relay server 100 having received the second connection request information 310 receives third hole punching information 330 and 331 from the third client 303, relays the third hole punching information 330 and 331 to the first client 301 and the second client 302, and simultaneously relays the first hole punching information and the second hole punching information 320, which is received from the first client 301 and the second client 302, to the third client 303.
  • the first hole punching information 250 includes fixed address information and private address information of the first client 301
  • the second hole punching information 240 includes fixed address information and private address information of the second client 302
  • the third hole punching information includes fixed address information and private address information of the third client 303.
  • NAT 3 When the third client 303 transmits a packet to the fixed address of the first client 301, NAT 3 generates a new UDP communication channel between a private address of the third client 303 and a fixed address of the first client 301, and simultaneously, when the first client 301 transmits a packet to a fixed address of the third client 303, NAT 1 generates a new UDP communication channel between a private address of the first client 301 and a fixed address of the third client 303.
  • the first client 301 and the third client 303 can directly communicate with each other without burdening the main server 200 with an additional load. Same operations may be applied between the second client 302 and the third client 303.
  • FIG. 6 illustrates a UDP communication channel generated between a first client, a second client, and a third client via a second hole punching process by the relay server 100 of FIG. 5.
  • FIG. 6 prior to processing the second hole punching process by a relay server 100 between the first client 301, the second client 302, and the third client 303 of a NAT control system including the relay server 100 of FIG.
  • a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1
  • a session MS-C2 122 is established between the second client 302 and the main server 200
  • a session MS-C3 123 is established between the third client 303 and the main server 200
  • a session MS-RS 110 is established between the relay server 100 and the main server 200 so that sessions are established between the clients 301, 302, and 303 and the relay server 100 via the main server 200.
  • a session C1-C2 124 is established between the first client 301 and the second client 302.
  • a session C2-C3 125 is established between the second client 302 and the third client 303, and a session C1-C3 126(#126 is not illustrated in FIG. 6) is established between the first client 301 and the third client 303.
  • the first client 301 and the third client 303 can directly communicate with each other without burdening the main server 200 with an additional load.
  • the third client 303 ceases the communication session with the relay server 100, and performs UDP communication with the first client 301 and the second client 302.
  • the relay server 100 relays a communication session between the first client 301, the second client 302, and the third client 303.
  • FIG. 7 is a flowchart illustrating a NAT control method for a multilateral- bidirectional voice call service according to an embodiment of the present invention.
  • a relay server 100 receives first session establishment request information from a first client 301 and second session establishment request information from a second client 302 to maintain a communication session with the first client 301 and the second client 302 by establishing the communication session.
  • a session MS-Cl 121 is established between the first client 301 and a main server 200 via NAT 1
  • a session MS- C2 122 is established between the second client 302 and the main server 200
  • a session MS-C3 123 is established between the a client 303 and the main server 200.
  • a session MS-RS 110 is established between the relay server 100 and the main server 200 so that sessions are established between the clients 301, 302, and 303 and the main server 300 via the main server 200.
  • the main server 200 receives first connection request information or first hole punching information from the first client 301 to transmit the received first connection request information or first hole punching information to the relay server 100, and receive second hole punching information from the second client 302 to transmit the received second hole punching information to the relay server 100.
  • the first connection request information includes requesting information about a UDP communication session establishment with the second client 302.
  • a first hole punching process that receives the first hole punching information from the first client 301 to relay the received first hole punching information to the second client 302, and that receives the second hole punching information from the second client 302 to relay the received second hole punching information to the first client 301, is directly performed between the first client 301 and the second client 302.
  • the first hole punching information includes fixed address information and private address information of the first client 301
  • the second hole punching information includes fixed address information and private address information of the second client 302. It is determined whether the first hole punching process is successfully performed in operation 604, and the relay server 100 relays a communication session between the first client 301 and the second client 302 in operation 605 when the first hole punching process fails. Conversely, the first client 301 ceases the communication session with the relay server 100, and performs direct UDP communication, that is a voice call, with the second client 302 in operation 606 when the first hole punching process is successfully performed.
  • the relay server 100 receives second connection request information from the third client 303.
  • the second connection request information includes information about a UDP communication session establishment request with the first client and the second client 302.
  • a second hole punching process that receives the third hole punching information from the third client 303 to relay the received third hole punching information to the first client 301 and the second client 302, and that relays the first hole punching information and the second hole punching information to the third client 303, is directly performed between the first client 301, the second client 302, and the third client 303.
  • the third hole punching information includes fixed address information and private address information of the third client 303.
  • the relay server 100 It is determined whether the second hole punching process is successfully performed in operation 609, and the relay server 100 relays a communication session between the first client 301, the second client 302, and the third client 303 in operation 610 when the second hole punching process fails.
  • the third client 303[FIG. 7 has "FIRST CLIENT"] ceases the communication session with the relay server 100, and performs direct UDP communication, that is a voice call, with the first client 301 and the second client 302 in operation 611 when the second hole punching process is successfully performed.
  • the NAT control method according to the above-described exemplary embodiments of the present invention may be recorded in computer-readable media including program instructions to implement various operations embodied by a computer.
  • the media may also include, alone or in combination with the program instructions, data files, data structures, and the like.
  • Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVD; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like
  • Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
  • the described hardware devices may be configured to act as one or more software modules in order to perform the operations of the above-described exemplary embodiments of the present invention.
  • FIG. 8 is a flowchart illustrating a chat room on a NAT control system which provides a multilateral voice call service according to an embodiment of the present invention.
  • each client waits in a client room 850.
  • a first client 840 that needs to connect to a voice call in a team-playing online game, an auction system, or an academic conference with a plurality of participants transmits a connection request message that requesting for connection to a login server 810 in operation 701, 702 and 703, and the login server 810 receives the connection request message to transmit a message including server list information to the first client 840 in operation 704 and 705.
  • the first client 840 tries to connect to a main server 820 that provides a service in operation 706, the main server 820 transmits an available communication channel list message to the first client 840 in operation 707.
  • the first client 840 selects a required channel from the available communication channel list message and transmits an entrance acceptance message to the main server 820 in operation 708, and the main server 820 transmits a message including the selected channel information, a message including an entrance acceptance room list, and a message including a room user list to the first client 840 in operations 709 through 710.
  • the first client 840 When a user of the first client 840 is a master client, the first client has an authority to make a room, and may make a new room on the main server 820.
  • the first client 820 having the authority as the master client transmits a room creation message to the main server 820 in operation 712, the main server 820 transmits request information including the room creation message in operation 713, the main server 820 can make a required room by receiving a response message with respect to the request information from the relay server 830 in operation 714.
  • the first client 840 may establish a communication session with the main server 820 and the relay server 830.
  • FIG. 9 is a flowchart illustrating a NAT control method which provides a multilateral voice call service, the multilateral voice call service being performed after a UDP communication session is established via a UDP hole punching process by a relay server between a first client and a second client according to an embodiment of the present invention.
  • the first client 840 generates a required room on the main server 820, and establishes and maintains the communication session with the main server 820 and the relay server 830, through the operations described above with reference to FIG. 8.
  • a second client 860 in a client room 870 that needs to participate in the established communication session transmits a message including entrance request information to the main server 820 in operation 715.
  • the main server 820 transmits the message including entrance request information to the relay server 830 in operation 716, transmits a message including room information to the second client 860 in operation 717, and transmits the message including user list information in operation 718.
  • the second client 860 checks the message including room information and the message including user list information, and transmits entrance request acceptance information in operation 719.
  • the entrance request acceptance information may be the connection request information which has been described from FIGS. 2 through 7, that may be a message including a connection request with the first client.
  • the second client 860 may establish a direct communication session with the first client 840 via a UDP hole punching process by the relay server 830 in operations 720 through 722. That is, the UDP communication session is established via reception/transmission of first hole punching information and second hole punching information by the relay server 830. By such means, a voice call service between the first client 840 and the second client 860 may be smoothly performed.
  • the second client 860 When the second client 860 needs to exit the client room 850, the second client 860 transmits a message including exit request information to the main server 820 in operation 723, the main server 820 relays the message including exit request information to the relay server 830 in operation 724, and the connection of the second client 860 is released.
  • the main server 820 may provide a smooth voice call service without increasing a load of a main server.
  • UDP multilateral network user datagram protocol
  • the present invention it is possible to provide a multilateral- bidirectional voice call service in real time. Also, according to the present invention, it is possible to provide a service provider and a service developer with a smooth service for a multilateral-bidirectional voice call.

Abstract

A network address translation (NAT) control system and method using the system which can provide a multilateral-bidirectional voice call by establishing a user datagram protocol (UDP) communication session between multiple clients is provided. The NAT control system and method using the system can provide a voice call service by establishing a UDP communication session between multiple clients by using a UDP hole punching technique and a relay server.

Description

NETWORKADDRESS TRANSLATION CONTROL SYSTEM AND METHOD
FOR PROVIDING MULTILATERAL-BIDIRECTIONAL AUDIO
COMMUNICATION SERVICE
Technical Field
The present invention relates to a network user datagram protocol (UDP) control system, and more particularly, to a network address translation (NAT) control system and method using the system providing a bidirectional call service by establishing a multiple UDP communication session.
Background Art
FIG. 1 illustrates a multilateral voice call system and multilateral voice call control method according to a conventional art.
Referring to FIG. 1, a plurality of clients simultaneously connect to a single server. Depending on contents provided by a server, there may be a case that a voice call is very useful between the plurality of connected clients. In particular, a voice call may be very useful in a multi-player online game, an auction system, or an academic conference having a plurality of participants.
A multilateral voice call system on the Internet is conducted according to a peer to peer (P2P) communication method. The P2P communication method is a direct communication method between clients, without a server, under a condition that an Internet Protocol (IP) address and the like are mutually shared between the clients.
Since an IP address of each client required for P2P communication between a plurality of connected clients is generally provided as an additional service, it may be an additional burden for a service provider or a service developer.
Also, a plurality of clients use a network address translation (NAT) to share a valid IP address on the Internet or to protect a private network being connected to a public network having a plurality of clients from invaders. Valid IP addresses on the Internet are so limited that the authorized IP address is inevitably shared, however if the NAT is used, a private IP address may be used since the private IP address may be convertible to a valid IP address. That is, an authorized address may be shared by a plurality of clients, and accordingly authorized addresses may be conserved. The NAT may be used as a basic protection method for protecting a communication network of a user from an outside invasion by establishing a firewall between a public network and a private network, in this instance, when the NAT is established in a router connecting to an outer communication network of the Internet, since a router allows an authorized IP address being allocated to the router to be exposed to an outside and to use a private IP address internally, and the authorized IP address and the private IP address are converted with each other when the conversion is required, when each of the plurality of clients exists in its own private network, the P2P communication capable of providing a voice call service between the plurality of clients participating in the multi-player online game, the auction system, or the academic conference may not be conducted.
Also, there exists four types of a full cone, a restricted cone, a port restricted cone, and a symmetric cone in the NAT. In the full cone type, all ports toward an outside are mapped as one with respect to a couple of internal IP addresses and ports, all external clients may transmit packets to internal clients using mapped addresses and ports. In the restricted cone type, a transmission method is identical to the full type, however mapping is conducted under a condition that packets are transmitted from the inside to the outside prior to receiving packets from the outside. That is, ports are mapped to identical ports when having identical external IP addresses. In the port restricted cone, a transmission method is identical to the restricted cone, however mapping is conducted under condition that external IP addresses need to correspond to ports since port are included as a limitation condition.
The three types except for the symmetric cone type may communicate with an internal client via session establishment using a single port being mapped in the NAT. That is, a packet being received via a single port that transmits the packet may be transmitted to anywhere outside, communication between one and multiple clients is possible. However, in the symmetric cone, only one to one communication between clients is possible since each of outside clients communicating with an inside client uses its own individual port.
Disclosure of Invention Technical Goals The present invention provides a NAT control system and method using the system which can perform a voice call service by establishing multilateral network user datagram protocol (UDP) communication sessions using a UDP hole punching technique and a relay server. The present invention also provides a NAT control system and method using the system which can perform a multilateral-bidirectional voice call service in real time.
The present invention also provides a NAT control system and method using the system which can provide a service provider and a service developer with a smooth service for a multilateral-bidirectional voice call. The present invention also provides a NAT control system and method using the system which can provide a smooth voice call service without increasing a load of a main server since the NAT control system and the method using the system can perform a multilateral-bidirectional voice call service.
Technical solutions
According to an aspect of the present invention, there is provided a network address translation (NAT) control system including: a main server receiving first connection request information or first hole punching information from a first client to transmit the received first connection request information or first hole punching information to a relay server, and receiving second hole punching information from a second client to transmit the received second hole punching information to the relay server; and a relay server relaying the second hole punching information to the first client, simultaneously relaying the first hole punching information to the second client when the first connection request information is received, and supporting a hole punching process that establishes a user datagram protocol (UDP) communication session between the first client and the second client, wherein the relay server relays a communication session between the first client and the second client.
According to another aspect of the present invention, there is provided an NAT control method for a multilateral voice call service including: receiving first session establishment request information from a first client and second session establishment request information from a second client to maintain communication sessions with the first client and the second client; a main server receiving a first connection request information or first hole punching information from the first client to transmit the received first connection request information or first hole punching information to a relay server, and receiving the second hole punching information from the second client to transmit the received second hole punching information to the relay server; and performing a first hole punching process that receives the first hole punching information from the first client to relay the received first hole punching information to the second client, and simultaneously receives the second hole punching information from the second client to relay the received second hole punching information to the first client, when the first connection request information is received.
Brief Description of Drawings
FIG. 1 illustrates a multilateral voice call system and control method using the system according to a conventional art;
FIG. 2 illustrates a network address translation (NAT) control system and a state when a network datagram protocol (UDP) session is established prior to processing a UDP hole punching process between configuration elements of the NAT control system according to an embodiment of the present invention;
FIG. 3 illustrates a NAT control system and NAT control method which provides a multilateral-bidirectional voice call service via a first UDP hole punching process between a first client and a second client according to an embodiment of the present invention;
FIG. 4 illustrates a UDP communication channel generated between a first client and a second client via a first hole punching process by a relay server of FIG. 3;
FIG. 5 illustrates a NAT control system displaying operations of when a third client is additionally established in a communication channel of a first client and a second client having a UDP session already established from FIG. 4.
FIG. 6 illustrates a UDP communication channel generated between a first client, a second client, and a third client via a second hole punching process by the relay server of FIG. 5; FIG. 7 is a flowchart illustrating a NAT control method for a multilateral- bidirectional voice call service according to an embodiment of the present invention;
FIG. 8 is a flowchart illustrating operations of generating and entering into a room on a NAT control system which provides a multilateral voice call service according to an embodiment of the present invention; and
FIG. 9 is a flowchart illustrating a NAT control method which provides a multilateral voice call service, the multilateral voice call service being performed since a UDP communication session is established via a UDP hole punching process by a relay server between a first client and a second client according to an embodiment of the present invention.
Best Mode for Carrying Out the Invention Hereinafter, reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings.
FIG. 2 illustrates a network address translation (NAT) control system and a state when a network datagram protocol (UDP) session is established prior to processing a UDP hole punching process between configuration elements of the NAT control system. Referring to FIG. 2, the NAT control system providing a multilateral voice call service includes a relay server 100 and a main server 200, a UDP session is established between the main server 200 and a plurality of clients 301, 302, and 303, and each of the plurality of clients 301, 302, and 303 have a different node via a different NAT.
The main server 200 receives a first session establishment request from a first client 301 and a second session establishment request from a second client 302 to relay the first session establishment request or the second session establishment request to the relay server 100. The relay server 100 receives the first session establishment request or the second session establishment request from the main server 200 to maintain a communication session with the first client 301 or with a second client 302. In FIG. 2, it is illustrated that the state that the UDP session is established prior to processing the UDP hole punching process, specifically, a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1, a session MS-C2 122 is established between the second client 302 having another node and the main server 200, and a session MS-C3 123 is established between the third client 303 having still another node and the main server 200.
Also, the session MS-RS 110 is established between the relay server 100 and the main server 200, thus sessions are established between the plurality of clients 301, 302, and 303 and the relay server 100 via the main server 200. That is, the relay server 100 can establish and maintain a communication session with any client since the relay server 100 uses a public IP address, thereby successfully performing a hole punching process, which will be described later. Regardless of the hole punching process, the relay server 100 may process a relay process of voice data between clients. However, when the relay server 100 exclusively processes a relay process of voice data between clients, and when a number of the clients is increased, problems such as processing power, network bandwidth, and communication latency occur in the relay server 100 due to the relay process of voice data. To solve such problems of the relay server 100, in the specification of the present invention, voice data is directly received/transmitted between the clients not by way of the relay server 100 when a hole punching process between clients is successfully performed. Direct voice call is possible between the clients when the hole punching process is successfully performed, and the problems such as processing power, network bandwidth, and communication latency can be overcome.
Regarding the hole punching process, the main server 200 receives first hole punching information from the first client 301 and second hole punching information from the second client 302 to relays the first and second hole punching information to the relay server 100. Next, the relay server 100 relays the received first hole punching information to the second client 302, receives the second hole punching information from the second client 302 and relays the second hole punching information to the first client 301, and performs a first hole punching process. In this instance, the first hole punching information includes fixed address information and private address information of the first client 301, and the second hole punching information includes fixed address information and private address information of the second client 302. Detailed description will be described later.
FIG. 3 illustrates a NAT control system and NAT control method providing a multilateral-bidirectional voice call service via a first UDP hole punching process between a first client and a second client.
When a first client 301 attempts a direct UDP connection to a second client 302, the first client 301 transmits a UDP packet to a fixed IP address of the second client 302 in operation 210, and a NAT 2 drops the UDP packet from the first client 301. This is because an original IP address and a port number do not correspond to the session MS- C2 122 whose session establishment is originally connected to an outside, and in a reversed case of when the UDP packet is transmitted from the second client 302 to the first client 301 in operation 220.
As described with reference to FIG. 2, prior to performing the first hole punching process, in between the plurality of clients 301, 302, 303, the main server 200, and the relay server 100, a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1, a session MS-C2 122 is established between the second client 302 having another node and the main server 200, and a session MS-C3 123 is established between the third client 303 having still another node and the main server 200. The main server 200 receives a first session establishment request from a first client 301 and a second session establishment request from a second client 302 to relay the first session establishment request or the second session establishment request to the relay server 100. The relay server 100 receives the first session establishment request or the second session establishment request from the main server 200 to establish a communication session with the first client 301 or with the second client 302, accordingly a session MS-RS 110 is established between the relay server 100 and the main server 200, and a session is established between the first and second clients 301 and 302 and the relay server 100 via the main server 200.
As described above, the relay server 100 may perform a relay process of voice data between clients. However, when the relay server 100 processes only a relay process of voice data between clients, and when a number of the clients is increased, problems such as processing power, network bandwidth, and communication latency occur in the relay server 100 due to the relay process of voice data. To solve such problems of the relay server 100, in the specification of the present invention, voice data is directly received/transmitted between the clients not by way of the relay server 100 when a hole punching process between clients is successfully performed.
That is, in the present invention, the relay server 100 performs a relay process of voice data, and also performs a hole punching process. In the present invention, a direct UDP communication between the first client 301 and the second client 302 is possible via a UDP hole punching process by the relay 100. A first hole punching process between the first client 301 and the second client 302 is performed after the relay server 100 relays second hole punching information to the first client 301 and first hole punching information to the second client 302 when the relay server 100 receives a connection request, such as creating a chatting room, from the first client 301. First connection establishment request information 230 includes information about UDP communication session establishment with the second client 302. Specifically, the first connection request information may be connection request information for conducting a voice call.
Referring to FIG. 3, the first client 301 transmits the first connection request information 230 which includes information about a UDP communication session establishment request to the second client 302 to the relay server 100 having a session established, via the main server 200. The relay server 100 having received the first connection request information 230 receives first hole punching information from the first client 301, relays the first hole punching information to the second client 302, and simultaneously relays the second hole punching information 240, which is received from the second client 302, to the first client 301. The first hole punching information includes fixed address information and private address information of the first client 301, and the second hole punching information 240 includes fixed address information and private address information of the second client 302. That is, when the first client 301 transmits a packet to a fixed address of the second client 302, NAT 1 generates a new UDP communication channel between a private address of the first client 301 and the fixed address of the second client 302, and when the second client 302 transmits a packet to a fixed address of the first client 301, NAT 2 generates a new UDP communication channel between a private address of the second client 302 and the fixed address of the first client 301. As described above, when the new UDP sessions are established in each direction, the first client 301 and the second client 302 can directly communicate with each other without burdening the main server 200 with an additional load.
When the first hole punching process is successfully performed, the first client 301 ceases the communication session with the relay server 100, and performs UDP communication with the second client 302. That is, a direct voice call between the first client 301 and the second client 302 is possible. Even when the first hole punching process fails, the relay server 100 relays a voice call between the first client 301 and the second client 302 so that the voice call between the first client 301 and the second client 302 is possible.
FIG. 4 illustrates a UDP communication channel generated between a first client and a second client via a first hole punching process by a relay server of FIG. 3.
Referring to FIG. 4, prior to the processing of the UDP hole punching process by the relay server 100 as described with reference to FIG. 3, a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1, a session MS-C2 122 is established between the second client 302 having another node and the main server 200, and a session MS-C3 123 is established between the third client 303 having still another node and the main server 200. Also, a session MS-RS 110 is established between the relay server 100 and the main server 200 so that sessions are established between the first and second clients 301 and 302 and the relay server 100 via the main server 200. Through the first hole punching process described with reference to FIG. 3, when the first client 301 transmits a packet to a fixed address of the second client 302, NAT 1 generates a new UDP communication channel between a private address of the first client 301 and the fixed address of the second client 302, and, when the second client 302 transmits a packet to a fixed address of the first client 301, NAT 2 generates a new UDP communication channel between a private address of the second client 302 and the fixed address of the first client 301, thereby establishing the new UDP sessions in each direction between the first client 301 and the second client 302. That is, a session C1-C2 124 is established.
When the first hole punching process is successfully performed, the first client 301 ceases the communication session with the relay server 100, and performs UDP communication with the second client 302. That is, a direct voice call between the first client 301 and the second client 302 is possible.
Even when the first hole punching process fails, the relay server 100 relays a voice call between the first client 301 and the second client 302 so that the voice call between the first client 301 and the second client 302 is possible.
According to the NAT control system including the relay server 100 of the present invention, a peer to peer (P2P) communication channel is established between the first client 301 and the second client 302, and other client, that is other peers existing in connection with the P2P communication channel performs as a guide, thus contributing to a connection of P2P UDP communication of the other clients and minimizing a load of the main server 200. Although the NAT control system of the present invention is described being limited to a gap between clients ranging over a single operation in FIG. 4, the NAT control system of the present invention is not limited thereby, and also may be applicable to multiple NATs.
FIG. 5 illustrates a NAT control system displaying operations of when a third client is additionally established in a communication channel of a first client and a second client having a UDP session already established from FIG. 4.
Through the described operations of FIG. 4, after performing the first hole punching process by a relay server 100 between the first client 301 and the second client 302, a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1, a session MS-C2 122 is established between the second client 302 having another node and the main server 200, a session MS-C3 123 is established between the third client 303 having still another node and the main server 200, a session MS-RS 110 is established between the relay server 100 and the main server 200, and a session is established between the first and second clients 301, 302, and 303 and the relay server 100 via the main server 200. Also, a session C1-C2 124 is established between the first client 301 and the second client 302.
According to the present invention, direct UDP communication between the first client 301, the second client 302, and the third client 303 is performed via a UDP hole punching process via the relay server 100. A second hole punching process between the first client 301, the second client 302, and the third client 303 is performed via the relay server 100 after the relay server 100 relays third hole punching information to the first client 301 and the second client 302 and first hole punching information and the second hole punching information to the third client 303 when the relay server 100 receives second connection request information 310 from the third client 303. The second connection request information 310 includes information about a UDP communication session establishment request with the first client 301 and the second client 302. Specifically, the second connection request information 310 may be connection request information for conducting a voice call.
Referring to FIG. 5, the third client 303 transmits the second connection request information 310, which includes information about a UDP communication session establishment request to the first client 301 and the second client 302, to the relay server 100 via the main server 200. The relay server 100 having received the second connection request information 310 receives third hole punching information 330 and 331 from the third client 303, relays the third hole punching information 330 and 331 to the first client 301 and the second client 302, and simultaneously relays the first hole punching information and the second hole punching information 320, which is received from the first client 301 and the second client 302, to the third client 303. The first hole punching information 250 includes fixed address information and private address information of the first client 301, the second hole punching information 240 includes fixed address information and private address information of the second client 302, and the third hole punching information includes fixed address information and private address information of the third client 303.
When the third client 303 transmits a packet to the fixed address of the first client 301, NAT 3 generates a new UDP communication channel between a private address of the third client 303 and a fixed address of the first client 301, and simultaneously, when the first client 301 transmits a packet to a fixed address of the third client 303, NAT 1 generates a new UDP communication channel between a private address of the first client 301 and a fixed address of the third client 303. As described above, when the new UDP session is established in each direction by the relay server 100, the first client 301 and the third client 303 can directly communicate with each other without burdening the main server 200 with an additional load. Same operations may be applied between the second client 302 and the third client 303.
FIG. 6 illustrates a UDP communication channel generated between a first client, a second client, and a third client via a second hole punching process by the relay server 100 of FIG. 5. Referring to FIG. 6, prior to processing the second hole punching process by a relay server 100 between the first client 301, the second client 302, and the third client 303 of a NAT control system including the relay server 100 of FIG. 5, a session MS-Cl 121 is established between the first client 301 and the main server 200 via NAT 1, a session MS-C2 122 is established between the second client 302 and the main server 200, and a session MS-C3 123 is established between the third client 303 and the main server 200, a session MS-RS 110 is established between the relay server 100 and the main server 200 so that sessions are established between the clients 301, 302, and 303 and the relay server 100 via the main server 200. A session C1-C2 124 is established between the first client 301 and the second client 302.
After the second hole punching process via the relay server 100 is performed, a session C2-C3 125 is established between the second client 302 and the third client 303, and a session C1-C3 126(#126 is not illustrated in FIG. 6) is established between the first client 301 and the third client 303. By such means, the first client 301 and the third client 303 can directly communicate with each other without burdening the main server 200 with an additional load.
When the second hole punching process is successfully performed, the third client 303 ceases the communication session with the relay server 100, and performs UDP communication with the first client 301 and the second client 302. When the second hole punching process fails, the relay server 100 relays a communication session between the first client 301, the second client 302, and the third client 303.
FIG. 7 is a flowchart illustrating a NAT control method for a multilateral- bidirectional voice call service according to an embodiment of the present invention.
Referring to FIG. 7, in operation 601, a relay server 100 receives first session establishment request information from a first client 301 and second session establishment request information from a second client 302 to maintain a communication session with the first client 301 and the second client 302 by establishing the communication session. Specifically, a session MS-Cl 121 is established between the first client 301 and a main server 200 via NAT 1, a session MS- C2 122 is established between the second client 302 and the main server 200, and a session MS-C3 123 is established between the a client 303 and the main server 200. Also, a session MS-RS 110 is established between the relay server 100 and the main server 200 so that sessions are established between the clients 301, 302, and 303 and the main server 300 via the main server 200.
In operation 602, the main server 200 receives first connection request information or first hole punching information from the first client 301 to transmit the received first connection request information or first hole punching information to the relay server 100, and receive second hole punching information from the second client 302 to transmit the received second hole punching information to the relay server 100. The first connection request information includes requesting information about a UDP communication session establishment with the second client 302. In operation 603, a first hole punching process that receives the first hole punching information from the first client 301 to relay the received first hole punching information to the second client 302, and that receives the second hole punching information from the second client 302 to relay the received second hole punching information to the first client 301, is directly performed between the first client 301 and the second client 302. The first hole punching information includes fixed address information and private address information of the first client 301, and the second hole punching information includes fixed address information and private address information of the second client 302. It is determined whether the first hole punching process is successfully performed in operation 604, and the relay server 100 relays a communication session between the first client 301 and the second client 302 in operation 605 when the first hole punching process fails. Conversely, the first client 301 ceases the communication session with the relay server 100, and performs direct UDP communication, that is a voice call, with the second client 302 in operation 606 when the first hole punching process is successfully performed.
In operation 607, the relay server 100 receives second connection request information from the third client 303. The second connection request information includes information about a UDP communication session establishment request with the first client and the second client 302. In operation 608, a second hole punching process that receives the third hole punching information from the third client 303 to relay the received third hole punching information to the first client 301 and the second client 302, and that relays the first hole punching information and the second hole punching information to the third client 303, is directly performed between the first client 301, the second client 302, and the third client 303. The third hole punching information includes fixed address information and private address information of the third client 303. It is determined whether the second hole punching process is successfully performed in operation 609, and the relay server 100 relays a communication session between the first client 301, the second client 302, and the third client 303 in operation 610 when the second hole punching process fails. Conversely, the third client 303[FIG. 7 has "FIRST CLIENT"] ceases the communication session with the relay server 100, and performs direct UDP communication, that is a voice call, with the first client 301 and the second client 302 in operation 611 when the second hole punching process is successfully performed.
Thus, according to the NAT control method of the present invention, direct UDP communication between the first client 301, the second client 303, and the third client 303 is possible without burdening the main server 200 with an additional load.
The NAT control method according to the above-described exemplary embodiments of the present invention may be recorded in computer-readable media including program instructions to implement various operations embodied by a computer. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVD; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The described hardware devices may be configured to act as one or more software modules in order to perform the operations of the above-described exemplary embodiments of the present invention.
FIG. 8 is a flowchart illustrating a chat room on a NAT control system which provides a multilateral voice call service according to an embodiment of the present invention.
Referring to FIG. 8, each client waits in a client room 850. A first client 840 that needs to connect to a voice call in a team-playing online game, an auction system, or an academic conference with a plurality of participants transmits a connection request message that requesting for connection to a login server 810 in operation 701, 702 and 703, and the login server 810 receives the connection request message to transmit a message including server list information to the first client 840 in operation 704 and 705. When the connection is completed, the first client 840 tries to connect to a main server 820 that provides a service in operation 706, the main server 820 transmits an available communication channel list message to the first client 840 in operation 707. The first client 840 selects a required channel from the available communication channel list message and transmits an entrance acceptance message to the main server 820 in operation 708, and the main server 820 transmits a message including the selected channel information, a message including an entrance acceptance room list, and a message including a room user list to the first client 840 in operations 709 through 710.
When a user of the first client 840 is a master client, the first client has an authority to make a room, and may make a new room on the main server 820. The first client 820 having the authority as the master client transmits a room creation message to the main server 820 in operation 712, the main server 820 transmits request information including the room creation message in operation 713, the main server 820 can make a required room by receiving a response message with respect to the request information from the relay server 830 in operation 714. By such means, the first client 840 may establish a communication session with the main server 820 and the relay server 830. FIG. 9 is a flowchart illustrating a NAT control method which provides a multilateral voice call service, the multilateral voice call service being performed after a UDP communication session is established via a UDP hole punching process by a relay server between a first client and a second client according to an embodiment of the present invention. Referring to FIG. 9, the first client 840 generates a required room on the main server 820, and establishes and maintains the communication session with the main server 820 and the relay server 830, through the operations described above with reference to FIG. 8. A second client 860 in a client room 870 that needs to participate in the established communication session transmits a message including entrance request information to the main server 820 in operation 715. The main server 820 transmits the message including entrance request information to the relay server 830 in operation 716, transmits a message including room information to the second client 860 in operation 717, and transmits the message including user list information in operation 718. The second client 860 checks the message including room information and the message including user list information, and transmits entrance request acceptance information in operation 719. The entrance request acceptance information may be the connection request information which has been described from FIGS. 2 through 7, that may be a message including a connection request with the first client. Subsequently, similar to the operations described with reference to FIG. 3, the second client 860 may establish a direct communication session with the first client 840 via a UDP hole punching process by the relay server 830 in operations 720 through 722. That is, the UDP communication session is established via reception/transmission of first hole punching information and second hole punching information by the relay server 830. By such means, a voice call service between the first client 840 and the second client 860 may be smoothly performed.
When the second client 860 needs to exit the client room 850, the second client 860 transmits a message including exit request information to the main server 820 in operation 723, the main server 820 relays the message including exit request information to the relay server 830 in operation 724, and the connection of the second client 860 is released.
According to the NAT control method of the present invention, the main server 820 may provide a smooth voice call service without increasing a load of a main server.
Although a few embodiments of the present invention have been shown and described, the present invention is not limited to the described embodiments. Instead, it would be appreciated by those skilled in the art that changes may be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the claims and their equivalents.
Industrial Applicability
According to the present invention, it is possible to perform a voice call service by establishing multilateral network user datagram protocol (UDP) communication sessions using a UDP hole punching technique and a relay server.
Also, according to the present invention, it is possible to provide a multilateral- bidirectional voice call service in real time. Also, according to the present invention, it is possible to provide a service provider and a service developer with a smooth service for a multilateral-bidirectional voice call.
Also, according to the present invention, it is possible to provide a smooth voice call service without increasing a load of a main server since a NAT control system and the method using the system can perform a multilateral-bidirectional voice call service.

Claims

1. A network address translation (NAT) control system for a multilateral voice call service, comprising: a main server receiving first connection request information or first hole punching information from a first client to transmit the received first connection request information or first hole punching information to a relay server, and receiving second hole punching information from a second client to transmit the received second hole punching information to the relay server; and a relay server relaying the second hole punching information to the first client, simultaneously relaying the first hole punching information to the second client when the first connection request information is received, and supporting a hole punching process that establishes a user datagram protocol (UDP) communication session between the first client and the second client, wherein the relay server relays a communication session between the first client and the second client.
2. The NAT control system of claim 1, wherein the relay server receives first session establishment information being transmitted by the first client from the main server and second session establishment information being transmitted by the second client to maintain the communication session with the first and second clients.
3. The NAT control system of claim 1 , wherein, when the first hole punching process is successfully performed, the first client ceases the communication session with the relay server and performs UDP communication with the second client.
4. The NAT control system of claim 1 , wherein the first connection request information comprises information about UDP communication session establishment with the second client.
5. The NAT control system of claim 1 , wherein the first hole punching information comprises fixed address information and private address information of the first client, and the second hole punching information comprises fixed address information and private address information of the second client.
6. The NAT control system of claim 1, wherein the main server receives second connection request information or third hole punching information from a third client to transmit the received second connection request information or third hole punching information to the relay server, and the relay server receiving the second connection request information to maintain a communication session with the third client, and performing a second hole punching process that receives the third hole punching information to relay the received third hole punching information to the first client and the second client, relays the first hole punching information and the second hole punching information to the third client, and the UDP communication session is established.
7. The NAT control system of claim 6, wherein, when the second hole punching process is successfully performed, the third client ceases the communication session with the relay server and performs UDP communication with the first client and the second client.
8. The NAT control system of claim 6, wherein, when the second hole punching process fails, the relay server relays communication sessions between the first client, the second client, and the third client.
9. The NAT control system of claim 6, wherein the third hole punching information comprises fixed address information and private address information.
10. A network address translation (NAT) control method for a multilateral voice call service, comprising: receiving first session establishment request information from a first client and second session establishment request information from a second client to maintain communication sessions with the first client and the second client; a main server receiving a first connection request information or first hole punching information from the first client to transmit the received first connection request information or first hole punching information to a relay server, and receiving the second hole punching information from the second client to transmit the received second hole punching information to the relay server; and performing a first hole punching process that receives the first hole punching information from the first client to relay the received first hole punching information to the second client, and simultaneously receives the second hole punching information from the second client to relay the received second hole punching information to the first client, when the first connection request information is received.
11. The NAT control method of claim 10, wherein, when the first hole punching process fails, the relay server relays a communication session between the first client and the second client.
12. The NAT control method of claim 10, wherein, when the first hole punching process is successfully performed, the first client ceases a communication session with the relay server and performs UDP communication with the second client.
13. The NAT control method of claim 10, wherein the first connection request information comprises information about UDP communication session establishment request with the second client.
14. The NAT control method of claim 10, wherein the first hole punching information comprises fixed address information and private address information of the first client, and the second hole punching information comprises fixed address information and private address information of the second client.
15. The NAT control method of claim 10, further comprising : receiving second connection request information from a third client; and performing a second hole punching process that receives third hole punching information from the third client to relay the received third hole punching information to the first client and the second client, and relays the first hole punching information and the second hole punching information to the third client.
16. The NAT control method of claim 15, wherein, when the second hole punching process is successfully performed, the third client ceases a communication session with the relay server, and performs UDP communication with the first client and the second client.
17. The NAT control method of claim 15, further comprising: relaying communication sessions between the first client, the second client, and the third client when the second hole punching process fails.
18. The NAT control method of claim 15, wherein the third session establishment information comprises information about a UDP communication session establishment request with the first client and the second client.
19. The NAT control method of claim 15, wherein the third hole punching information comprises fixed address information and private address information of the third client.
20. At least one computer-readable storage medium storing instructions for implementing the method of any one of claims 10 through 19.
PCT/KR2007/005275 2006-10-26 2007-10-25 Network address translation control system and method for providing multilateral-bidirectional audio communication service WO2008051028A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2006-0104344 2006-10-26
KR1020060104344A KR100703065B1 (en) 2006-10-26 2006-10-26 Network address translation control system and method for providing multilateral-bidirectional audio communication service

Publications (1)

Publication Number Publication Date
WO2008051028A1 true WO2008051028A1 (en) 2008-05-02

Family

ID=38160747

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2007/005275 WO2008051028A1 (en) 2006-10-26 2007-10-25 Network address translation control system and method for providing multilateral-bidirectional audio communication service

Country Status (2)

Country Link
KR (1) KR100703065B1 (en)
WO (1) WO2008051028A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714410A (en) * 2018-12-24 2019-05-03 上海曼恒数字技术股份有限公司 A kind of data transmission method, device, equipment and storage medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101082851B1 (en) 2010-11-10 2011-11-11 삼성에스디에스 주식회사 System and method for p2p connection based on udp
KR101393017B1 (en) 2013-07-01 2014-05-09 주식회사 엘지유플러스 Hole punching distribution system for controlling significant terminals and method thereof
KR101962022B1 (en) * 2017-07-18 2019-03-25 주식회사 에스원 System and method for access of point to point by using edge server

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212795A1 (en) * 2002-05-13 2003-11-13 Harris Adam Pierce Peer to peer network communication
US20040252683A1 (en) * 2000-06-30 2004-12-16 Kennedy Thomas Scott System, method , and computer program product for resolving addressing in a network including a network address translator
KR20050053365A (en) * 2003-12-01 2005-06-08 (주)휴리브 Multilateral voice call system and control method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040252683A1 (en) * 2000-06-30 2004-12-16 Kennedy Thomas Scott System, method , and computer program product for resolving addressing in a network including a network address translator
US20030212795A1 (en) * 2002-05-13 2003-11-13 Harris Adam Pierce Peer to peer network communication
KR20050053365A (en) * 2003-12-01 2005-06-08 (주)휴리브 Multilateral voice call system and control method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FORD B. ET AL.: "Peer-to-Peer communication across network address translators", USENIX ASSOCIATION, 2005 USENIX ANNUAL TECHNICAL CONFERENCE, pages 179 - 192 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714410A (en) * 2018-12-24 2019-05-03 上海曼恒数字技术股份有限公司 A kind of data transmission method, device, equipment and storage medium
CN109714410B (en) * 2018-12-24 2021-09-10 上海曼恒数字技术股份有限公司 Data transmission method, device, equipment and storage medium

Also Published As

Publication number Publication date
KR100703065B1 (en) 2007-04-09

Similar Documents

Publication Publication Date Title
USRE47566E1 (en) NAT traversal for mobile network devices
CN110301126B (en) Conference server
US8224985B2 (en) Peer-to-peer communication traversing symmetric network address translators
US7912967B2 (en) Symmetrical bi-directional communication
US7729366B2 (en) Method, apparatus and system for network mobility of a mobile communication device
CA2678714C (en) Bootstrapping in peer-to-peer networks with network address translators
WO2016210193A1 (en) Media session
US9705844B2 (en) Address management in a connectivity platform
JP2008544386A (en) System and method for establishing a peer-to-peer connection between a PC and a smartphone using a faulty network
US20060053485A1 (en) Network connection through NAT routers and firewall devices
WO2008051028A1 (en) Network address translation control system and method for providing multilateral-bidirectional audio communication service
JP2007181122A (en) Communication method
US11665755B2 (en) Peer-to-peer communication among end user devices
Matharu NAT Boxes and Firewalls: A Look at VoD and Skype
Topal Design and implementation of a border router for seamless peer-to-peer (P2P) udp communication using IPv4+ 4 addresses

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07833584

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07833584

Country of ref document: EP

Kind code of ref document: A1