Peer-to-peer communication system using relay servers
Patent Information
- Application Number
- JP2021150045
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-15
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2041-09-15
Smart Images

Figure 0007639625000001 
Figure 0007639625000002 
Figure 0007639625000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a technology for performing communication between terminals in a peer-to-peer (P2P) manner via the Internet, and more particularly to a technology for performing communication between terminals in a peer-to-peer manner through a TURN (Traversal Using Relay around NAT) server as a relay server. [Background technology]
[0002] In P2P communication (P2P communication) that transmits high-quality, low-latency media via the Internet, a protocol using a relay server (TURN server) is widely used as a method for establishing communication between terminals beyond the constraints of NAT (Network Address Translation). For example, Patent Document 1 proposes a communication system that executes P2P communication using WebRTC (Web Real-Time Communication) via STUN server, TURN server, and authentication server operated by a network operator as a technology for facilitating the construction of applications, services, systems, etc. involving P2P communication, and has an authentication function that manages an authentication key issued by an authentication server that has determined that the STUN server and the TURN server are accessible, and an ICE function that acquires an IP address for P2P communication by executing ICE (Interactive Connectivity Establishment) for passing through NAT / FW (Network Address Translation / Firewall) implemented in WebRTC. In addition, a multipath transport technology that utilizes multiple communication means and lines has been proposed and put into practical use in order to improve the availability of communication, reduce quality degradation, and increase resilience. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2015-153076 Summary of the Invention [Problem to be solved by the invention]
[0004] In a P2P communications protocol (communications protocol called "TURN") that uses the above-mentioned TURN server as a relay server, simply put, the TURN server connected to the Internet is assigned an area (relay area) that accepts data (packets) to be sent from one terminal performing P2P communication to the other, and each terminal sends data to the TURN server's relay area over the Internet, via routers and ISP gateways, and the TURN server then transmits the data in the relay area to the destination terminal (via the destination's router and ISP gateway), thereby achieving P2P communication between terminals (see Figure 6). In P2P communication, data should be sent and received directly between the terminals that are to carry out the communication, but in network systems based on the currently popular Internet Protocol IPv4, to put it simply, the network on the Internet side of the router to which the terminals are connected uses a global IP address to identify the router, and the network on the terminal side of the router uses a private IP address to identify the terminal, and when the terminals send and receive data over the Internet, the router executes NAT (or NAPT), which converts the global IP address and private IP address, including the port number used by the program on the terminal, making it difficult for terminals to directly identify each other's terminal by IP address over the Internet and send and receive data in the P2P method. The protocol using the above-mentioned TURN server is used as one method that enables P2P communication between terminals over the Internet, which is difficult as it is.
[0005] In the procedure for actually establishing P2P communication via the above-mentioned TURN server, first, one of the terminals (client terminal) issues a request to relay P2P communication to the TURN server via a communication line (access line) to the Internet, and the TURN server then assigns a relay area to store data transmitted and received via the line from which the request was sent, and transmits to the client terminal permission to relay and address information (relay identifier: transport address) that identifies the relay area for the transmitted and received data. This enables the client terminal to send data to the relay area of the TURN server using the relay identifier, and when the client terminal sends data to the TURN server, the data is transmitted to the destination terminal by the TURN server. The data sent from the TURN server to the destination terminal contains the address of the relay area of the TURN server, so when the destination terminal sends data to the relay area of the TURN server using the address of the relay area, the data is stored in the relay area and is transferred from there to the client terminal by the TURN server.
[0006] In such P2P communication via a TURN server, as described above, communication between the terminal and the TURN server is performed through the single communication line that was used when the terminal sent a relay request to the TURN server. In this regard, since communication conditions of a communication line generally change, if there is only one communication line between the terminal and the TURN server, and the condition of that line becomes unstable, the communication quality will decrease, and good P2P communication may not be achieved. One method for avoiding such a situation and maintaining the stability of P2P communication is to establish communication between the terminal and the TURN server through multiple communication lines.
[0007] Thus, one object of the present invention is to stabilize communication conditions in a system that performs P2P communication using a TURN server via the Internet, by enabling communication between terminals and the TURN server via multiple communication lines.
[0008] Another object of the present invention is to provide a configuration in a system that executes P2P communication as described above that enables communication between a terminal and a TURN server via a plurality of communication lines. [Means for solving the problem]
[0009] According to the present invention, the above-mentioned object is achieved by a system that performs peer-to-peer terminal-to-terminal communication using a TURN server via the Internet, wherein a terminal has at least two communication means for connecting to the Internet, the terminal is connected to the Internet via separate communication lines using each of the at least two communication means, and is communicatively connected to the TURN server via each of the communication lines.
[0010] In the above configuration, the "terminal" may be any communication terminal communicatively connected to the Internet through a router by wired communication, wireless communication, or both, and may be a personal computer, tablet terminal, smartphone terminal, mobile phone terminal, etc. The terminal is usually connected to the Internet through a router and an ISP gateway ("connected to the Internet" means being in a state where data can be sent and received to the Internet). "Peer-to-peer terminal-to-terminal communication" is communication in which data is sent and received between multiple equal terminals. The "TURN server" is a relay server that has a relay area assigned to accept data from terminals in the communication protocol called "TURN" as described above, and receives data from the terminal in the relay area and transmits it to the destination. The "TURN server" may be a computer device that can be connected to the Internet (usually connected to the Internet through an ISP gateway). The communication means of the terminal is a combination of a communication protocol for network communication and a communication device (or communication apparatus) that operates according to the communication protocol. A "communication line" is a wired or wireless communication path (access line) for connecting a terminal to the Internet, and a router and an ISP gateway are provided on each communication line, and the terminal is connected to the Internet via them. In this invention, the terminal has at least two communication means, and each communication means is connected to the Internet via a separate communication line (simultaneously or in a time-sharing manner). The state of being "communicatively connected to the TURN server via each of the communication lines" means that the TURN server is set to be able to receive data from the terminal to a relay area, and to be able to transmit data from the relay area to the terminal, via each of the communication lines connecting the terminal to the Internet.
[0011] In the above-mentioned system of the present invention, a terminal performing peer-to-peer communication using a TURN server can transmit and receive data to and from the TURN server through at least two communication paths. With this configuration, multiple lines capable of transmitting and receiving data between the terminal and the TURN server are used in combination, and even if the communication status of one of those lines becomes unstable, it is expected that stable peer-to-peer communication will be maintained on the other lines. In other words, by using multiple lines in combination, it is expected that deterioration of communication quality will be reduced, and even if communication is interrupted, the time until recovery will be shortened. For example, even if a change in communication means or a change in the network to which the terminal is connected occurs due to the movement of the terminal, the relay session will continue as long as relay by the TURN server can continue on one or more communication lines, so it is expected that peer-to-peer communication can be advantageously maintained even in mobility (moving body). In addition, by using multiple lines in combination, it is expected that deterioration of communication quality will be reduced by increasing the communication bandwidth and using it redundantly.
[0012] In the above-mentioned system of the present invention, the communication lines used for at least two communication means between the terminal and the TURN server may be used for transmitting and receiving data in various manners. In one manner, the same communication content (data) may be transmitted using multiple communication lines, in which case packet loss in the network is reduced and network availability is expected to be improved. Alternatively, in another manner, different communication content (data) may be transmitted using multiple communication lines, in which case the communication band is increased and the communication speed is expected to be increased. In addition, the selection of the communication means and communication line to be used may be controlled according to the characteristics of the communication lines and communication means and the nature of the communication content.
[0013] Furthermore, in the above-described system of the present invention, the terminal and the TURN server may be able to select or control the mode of use of the communication line in transmitting and receiving data based on the communication status of the communication line between them. That is, in communication with the TURN server, the terminal may transmit information on the usage status of the communication means in the terminal to the TURN server, and the TURN server may be able to select the communication line to be used in transmitting data to the terminal based on the information on the usage status of the communication means from the terminal, or adjust the usage level of each communication line. Similarly, in communication with the terminal, the TURN server may transmit information on the usage status of the communication means in the TURN server to the terminal, and the terminal may be able to select the communication line to be used in transmitting data to the TURN server based on the information on the usage status of the communication means from the TURN server, or adjust the usage level of each communication line. In adjusting the degree of utilization of each communication line, for example, a priority for communication may be determined in accordance with the line load of each communication line at every moment (the priority may be determined to be lower as the line load increases), and the utilization ratio of the communication line when transmitting data may be controlled in accordance with the priority (the higher the priority of the communication line, the higher the utilization ratio may be).
[0014] In the above-described system of the present invention, whether or not each communication line between the terminal and the TURN server is made communicable may be controlled as appropriate. That is, the communication lines and the number of communication lines that are made communicable between the terminal and the TURN server may be selected or controlled arbitrarily. The process of making each communication line between the terminal and the TURN server communicable (process of opening communication) or the process of blocking communication may be achieved by transmitting a relay request or a relay deletion request from the terminal to the TURN server, and transmitting a relay permission or deletion confirmation from the TURN server to the terminal. Effect of the Invention
[0015] Thus, in the above configuration of the present invention, in P2P communication using a TURN server, multiple communication paths are set between the terminal and the TURN server, and these paths can be used in combination, thereby stabilizing the communication conditions. Also, according to the system of the present invention, multiple communication lines are used in combination between the terminal and the TURN server, making it possible to improve the quality and available bandwidth through communication redundancy.
[0016] Other objects and advantages of the present invention will become apparent from the following description of preferred embodiments of the invention. [Brief description of the drawings]
[0017] [Figure 1] FIG. 1 is a diagram illustrating a network configuration of a system for performing P2P communication according to this embodiment. [Diagram 2] Fig. 2(A) is a block diagram showing the configuration related to communication of a terminal that executes P2P communication according to this embodiment. Fig. 2(B) to (D) are block diagrams showing the configuration related to communication of a TURN server that executes P2P communication according to this embodiment. [Diagram 3] FIG. 3 is a flowchart showing the process of establishing a state in which communication is possible between a terminal and a TURN server via multiple communication lines in a system that performs P2P communication according to this embodiment. [Figure 4] FIG. 4 is a flowchart showing an example of a process for suspending the use of one of a plurality of communication lines that enable communication between a terminal and a TURN server in a system that performs P2P communication according to this embodiment. [Diagram 5] FIG. 5 is a flowchart showing another example of the process of suspending the use of one of a plurality of communication lines that enable communication between a terminal and a TURN server in a system that performs P2P communication according to this embodiment. [Figure 6] FIG. 6 is a diagram for explaining the network configuration of a system that performs conventional P2P communication. [Explanation of symbols]
[0018] Tr1, 2: Terminals 1, 2 r1~r4...Routers GW1~GW4…Gateway CM…Communication means TURN-S: TURN server (repeater) RS: Relay area BEST MODE FOR CARRYING OUT THEINVENTION
[0019] Basic configuration of P2P communication using a TURN server in this embodiment This embodiment is applied to a communication system that executes P2P communication between terminals connected to the Internet using a TURN server (TURN-S). As already briefly explained in the Summary of the Invention section with reference to Fig. 6, in the currently popular IPv4 Internet, terminals Tr1 and Tr2 are connected to the Internet through routers r1 and r3 and gateways GW1 and GW3, respectively, and in the Internet, the routers r1 and r3 are identified by global IP addresses, and the terminals Tr1 and Tr2 are identified by private IP addresses in the LAN to which the routers are connected, and when the terminals Tr1 and Tr2 transmit and receive data on the Internet, the NAT function of the routers r1 and r3 converts between the private IP addresses and the global IP addresses to identify the terminals. For this reason, in order for a terminal Tr1 connected to a certain router r1 to directly transmit and receive data to and from a terminal Tr2 connected to another router r3 via the Internet, it is necessary for the routers r1 and r3 to be able to identify each other by overcoming the IP address conversion in the NAT function (NAT traversal), but since it is usually difficult to directly know the private IP address of the other terminal, it is difficult for each terminal Tr1 and Tr2 to directly specify the IP address of the other terminal and transmit and receive data using the P2P method. Therefore, as one method of transmitting and receiving data in P2P communication between terminals via the Internet, a technology has been put into practical use in which the data transmitted and received between terminals is relayed by a TURN server as described above. In P2P communication between terminals using a TURN server, the TURN server is assigned an area (relay area RS) from its resources for storing data sent and received between terminals, and when data (packet) is sent from one terminal to another, the data is sent from one terminal to the relay area RS, and the TURN server forwards the data sent to the relay area RS to the other terminal (put simply, the TURN server is accessed by each terminal participating in P2P communication and can learn the IP addresses and port numbers used to transmit data to each terminal, allowing it to relay data transmission between terminals).
[0020] In a system for P2P communication using a TURN server, as shown in Fig. 6, each terminal is configured to transmit and receive data to and from the TURN server via the Internet through one communication line (access line) via one router and gateway. That is, the TURN server is configured to receive data sent from each terminal through one communication line, and transmit the data to a destination terminal (for that destination) through one communication line. In this configuration, if the communication conditions of the communication line to the Internet used by each terminal to transmit and receive data to the TURN server become unstable, problems such as deterioration of the quality of P2P communication, communication interruptions, and longer times until recovery after communication interruptions may occur.
[0021] Incidentally, although one terminal may be connected to the Internet only through a single communication line, a configuration has been proposed in which one terminal is equipped with multiple communication means and can simultaneously connect to the Internet through multiple communication lines (multipath transport technology). That is, as shown diagrammatically in Figure 1, one terminal Tr1 is simultaneously connected to the Internet through multiple communication lines via routers r1 and r2 and gateways GW1 and GW2, each of which is assigned a different global IP address. This makes it possible to maintain a good connection to the Internet even if one of the multiple communication lines becomes unstable, and is expected to improve the availability of communication, reduce deterioration in communication quality, and increase resilience.
[0022] If a terminal is connected to the Internet via multiple communication lines in accordance with the multi-path transport technology described above, when such a terminal performs P2P communication using a TURN server, as shown in Figure 1, the relay area RS of the TURN server can receive data from the terminal via each of the multiple communication lines connecting the terminal to the Internet, and can also transmit data to the terminal via each of these multiple communication lines.This makes it possible to enjoy the benefits of multi-path transport technology even in P2P communication, and it is believed that improved availability, reduced degradation of communication quality, and improved resilience can be achieved. Therefore, in this embodiment, as shown in Fig. 1, a plurality of communication means CM101, 102, CM201, 202 are provided in each terminal Tr1, Tr2 participating in P2P communication, and each communication means is connected to the Internet through a communication line via separate routers r1-4 and gateways GW1-4, and in the TURN server, the relay area RS is set to transmit and receive data packets from and to the terminals Tr1, Tr2 through the communication lines to which each communication means is connected. With this configuration, P2P communication between terminals is achieved by using multiple lines in combination, and it is possible to improve the quality and available bandwidth through communication redundancy.
[0023] Configuring the terminal and TURN server (a) Terminal configuration The terminal used in the system of this embodiment may be any communication terminal communicatively connected to the Internet via a router by wired communication, wireless communication, or both, and may be a personal computer, a tablet terminal, a smartphone terminal, a mobile phone terminal, or the like. With reference to FIG. 2(A), the terminal in the system of this embodiment may basically be a terminal configured to execute P2P communication, but in this embodiment, the terminal is particularly connected to the Internet by a plurality of communication lines, and therefore has at least two communication means 101, 102, etc. Each communication means is composed of communication devices a, b (wired communication device, WiFi communication device, mobile phone communication device, etc.) and communication procedure A (or B) (transport layer protocol TCP, UDP, etc., Internet layer protocol IP). The terminal is provided with an application section, a communication control section, and a memory, and various application programs corresponding to WebRTC and the like are executed in the application section, and data processed there and sent to the other terminal of the P2P communication is converted into data (packets) for transmission in the communication control section and transmitted from the communication means, while data from the other terminal is received by the communication means, and then converted in the communication control section into a state that can be processed by the application section and given to the application section. The transmission and reception of data with the Internet is executed according to a predetermined communication protocol. In particular, in the transmission and reception of data in P2P communication via a TURN server, information such as a transport address for identifying the relay area RS of the TURN server, information for executing a P2P session with the other terminal (relay session information), and authentication information (key information, random number information, etc.) for guaranteeing and authenticating that the terminal reading the data is a correct terminal are added to the transmitted and received data, so that the information for this purpose is stored in the memory section, and the communication control section executes the transmission and reception of data by referring to the information as appropriate. Furthermore, as will be described later, in this embodiment, data is transmitted and received via a plurality of communication lines, and information that is referenced to determine which communication line to use and how to transmit data (referred to as a "communication control policy").) may be added to the data being transmitted and received, an area for storing the communication control policy may be provided in the memory unit, and the communication control unit may be configured to refer to the communication control policy when transmitting data.
[0024] (b) TURN server configuration The TURN server used in the system of this embodiment may be a server computer device capable of executing a normal TURN protocol in a basic configuration. In one aspect, referring to FIG. 2(B), the TURN server has a communication means 501 consisting of a communication device e and a communication procedure A, a communication control unit, a relay control unit, and a memory unit. The communication means 501 is connected to the Internet, receives data from a terminal performing P2P communication, and transmits the data to a partner terminal. The communication control unit executes a process for receiving data sent from a terminal via the Internet and a process for transmitting data to be sent to the terminal, and the relay control unit has a relay area for storing data to be sent from one terminal to another terminal, and executes a process for receiving data from one terminal in the relay area and sending data from the relay area to a destination terminal. In addition, in the transmission and reception of data by the communication control unit and the relay control unit, the relay session information, authentication information, and communication control policy stored in the memory unit are referenced as appropriate, as in the case of the terminal.
[0025] Regarding the above-mentioned configuration of the TURN server, if the communication quality between the TURN server and the Internet is sufficiently high, as illustrated in FIG. 2(B), the TURN server may be connected to the Internet by a single communication means 501, and data transmitted and received over multiple lines to the Internet used by terminals in P2P communication may be sent and received via the single communication means 501. As another example when the communication quality between the TURN server and the Internet is sufficiently high, as shown in Fig. 2(C), the TURN server is connected to the Internet by a single communication device e, but communication means 501, 502 using communication procedures A and B are configured corresponding to the communication procedures A and B on the multiple lines on the terminal side, and data transmission and reception between the line using communication procedure A among the multiple lines to the Internet used by the terminal in P2P communication is performed by communication means 501 using the same communication procedure A, and data transmission and reception between the line using communication procedure B is performed by communication means 502 using the same communication procedure B. In this way, the TURN server may be able to select a communication procedure to be used from among the multiple communication means in accordance with the communication procedure of the terminal and the characteristics of the communication device. Furthermore, if the communication quality between the TURN server and the Internet is not sufficiently high, the multiple communication means 501, 502 in the TURN server may be connected to the Internet separately by separate communication devices e and d, as shown in Fig. 2(D). In relaying P2P communication, separate communication means 501, 502 of the TURN server may be assigned to the multiple communication means 101, 102 of the terminal and used to relay data transmission and reception. For example, data transmission and reception through communication means 101 of the terminal may be performed using TURN server communication means 501, and data transmission and reception through communication means 102 of the terminal may be performed using TURN server communication means 502.
[0026] Use of multiple communication lines As shown in Fig. 1, in a system that performs P2P communication using the TURN server of this embodiment, a terminal is connected to the Internet via multiple communication lines, and data is sent and received between the terminal and the relay area RS of the TURN server through these multiple communication lines. That is, in the configuration of this embodiment, multiple communication lines that connect the terminal to the Internet are used in combination to transmit data between the terminal and the TURN server. In such a configuration, the multiple communication lines may be used in combination in various ways.
[0027] Specifically, in one embodiment, the same communication contents, i.e., the same data, may be transmitted over a plurality of lines. In this case, even if a packet loss occurs due to a malfunction in one line, the packet is transmitted over another line, so that data integrity is maintained and availability against packet loss in the network is expected to be improved. In another embodiment, different communication contents, i.e., data, may be transmitted over a plurality of lines. In this case, the communication bandwidth is expanded, and high-speed data transmission is expected. In addition, by selecting or combining an appropriate communication procedure (TCP, UDP, SCTP, DCCP) according to the characteristics of the communication line and communication means and the nature of the communication contents, communication control suited to the characteristics of the available communication means and communication line can be achieved.
[0028] Furthermore, in a state where a terminal is connected to the Internet via multiple communication lines and data transmission between the terminal and the TURN server is possible via these multiple lines, either the terminal or the TURN server may be able to select which line to use for data transmission, taking into consideration the communication status of each line. More specifically, the terminal and the TURN server may each have a means for referring to the line load of each of the multiple communication lines, and may be configured to preferentially use a line with a lighter line load for data transmission. In one embodiment, for example, a priority is determined according to the line load of each of the multiple lines as viewed from the terminal or the TURN server (the priority may be set higher as the line load is smaller), and the priority information is transmitted from the terminal to the TURN server or from the TURN server to the terminal, and the TURN server or the terminal may be configured to refer to the priority information of each given line and use a line with a higher priority for data transmission. In this case, specifically, a mode may be implemented in which a line with a higher priority is selected when transmitting data, or the ratio of the amount of data transmission is increased as the priority is higher.
[0029] Alternatively, in the system of this embodiment, when transmitting and receiving data between the terminal and the TURN server as described above, the terminal and the TURN server may control in what manner to use a plurality of communication lines according to information transmitted from each of them. For example, as described later, when the terminal transmits a relay request to the TURN server to execute P2P communication, if the terminal transmits information on the line to be used when transmitting data from the TURN server to the terminal or information specifying the ratio of the data amount for each line to be set as a communication control policy, the TURN server may use the line according to the communication control policy when transmitting data to the terminal. Similarly, when the TURN server transmits permission for the requested relay of P2P communication to the terminal, if the terminal transmits information on the line to be used when transmitting data from the terminal to the TURN server or information specifying the ratio of the data amount for each line to be set as a communication control policy, the terminal may use the line according to the communication control policy when transmitting data to the TURN server. With this configuration, it is possible to use multiple communication lines appropriately to reduce the impact on relay transmission caused by deterioration of communication quality and relay interruption as much as possible. In addition, since there are multiple available lines, even if communication is interrupted, the communication state can be restored if communication is restored on any of the lines, so it is expected that the recovery time from communication interruption will be shortened.
[0030] Procedure for starting relay by the TURN server Relaying of P2P communication between a terminal and a TURN server via multiple lines may be started by the procedure shown in Fig. 3. First, when the communication control unit of terminal 1 instructs communication means 101 to start negotiations for relaying by the TURN server, data indicating a relay request is transmitted to the TURN server via the communication line from communication means 101. At that time, the transmitted relay request includes a request to start relaying, authentication information for ensuring that the terminal transmitting the data is terminal 1, and a communication means identifier indicating that the communication means is 101. As shown in Fig. 1, communication means 101 is connected to the Internet via router r1, and therefore communication means 101 is identified from the TURN server side by the global IP address of router r1. Furthermore, an authentication method using any encryption key technology may be used to authenticate the terminal and the server. Then, when the TURN server receives a relay request from communication means 101, it allocates a relay area in its resources for accepting data transmitted from one terminal in P2P communication between terminal 1 and terminal 2 and transferring the data to the other terminal, and then transmits relay permission and address information (relay identifier) for identifying the relay area to communication means 101. Such relay permission includes permission to start relaying, authentication information of the TURN server, and a communication means identifier indicating that the communication means is 101, and may further include communication control policy 1, which is information regarding the use of the line when transmitting data from terminal 1 to the TURN server. Communication control policy 1 may be determined by any method with reference to the line load of the communication line as viewed from the TURN server. Next, when communication means 101 receives permission to start relaying from the TURN server, the information is transmitted (together with authentication information) to the communication control unit of terminal 1, and thus data transmission becomes possible between terminal 1 and the TURN server using communication means 101. In other words, when the TURN server receives data addressed to terminal 2 from the communication means 101 of terminal 1, it temporarily stores the data in the relay area RS and then forwards it to terminal 2 (to one of the communication means), and when the TURN server receives data addressed to terminal 1 from terminal 2, it temporarily stores the data in the relay area RS and then becomes ready to forward it to the communication means 101 of terminal 1.
[0031] Thus, when a state in which data transmission through the first line is possible between terminal 1 and the TURN server is established, the communication control unit of terminal 1 instructs communication means 102 to start negotiations for relay by the TURN server, and data representing a relay request is transmitted to the TURN server through the communication line from communication means 102. As shown in FIG. 1, communication means 102 is connected to the Internet through router r2, so communication means 102 is identified from the TURN server side by the global IP address of router r2. In addition, together with the relay request, address information (relay identifier) of the relay area already assigned in the TURN server is also transmitted. The relay request includes a request for adding a communication line to be used in P2P communication, authentication information for authenticating terminal 1, and a communication means identifier indicating that the communication means is 102, and may further include communication control policy 2, which is information regarding the method of using the line when transmitting data from the TURN server to terminal 1. The communication control policy 2 may be determined by any method with reference to the line load of the communication line as viewed from the terminal 1, etc.
[0032] When the TURN server receives a relay addition request from communication means 102 of terminal 1 through router r2, it refers to the relay identifier transmitted along with the request, recognizes that the relay request from communication means 102 is a request from terminal 1 to connect a line added to communication means 101, and allocates the relay area of the relay identifier as a relay area for data transmitted between communication means 102, and then transmits relay permission and address information (relay identifier) for identifying the relay area to communication means 102. The relay permission here may include permission to add a communication path, authentication information of the TURN server, a communication means identifier indicating that the communication means is 102, and communication control policy 1, which is information regarding the use of the line when transmitting data from terminal 1 to the TURN server. Then, when communication means 102 receives relay permission from the TURN server, it transmits the information (together with authentication information) to the communication control unit of terminal 1, and as a result, data transmission is possible between terminal 1 and the TURN server using communication means 102. In other words, when the TURN server receives data addressed to terminal 2 from the communication means 102 of terminal 1, it temporarily stores the data in the relay area RS and then forwards it to terminal 2 (to one of the communication means), and when the TURN server receives data addressed to terminal 1 from terminal 2, it temporarily stores the data in the relay area RS and then becomes ready to forward it to the communication means 102 of terminal 1.
[0033] The above series of processes may be similarly executed in terminal 2. In this case, terminal 2 executes a session with terminal 1 by P2P communication, so that information for accessing the relay area assigned to terminal 1 is given by some method, and the terminal 2 transmits a relay request to the TURN server using the information (the specific procedure may be realized in any manner).
[0034] Thus, when data can be sent from terminal 1 and terminal 2 to the relay area of the TURN server and the data can be transferred from there to the destination terminal, P2P communication between terminals 1 and 2 is relayed and executed by the TURN server. As already explained, terminal 1 (and also terminal 2) is connected to the Internet via multiple communication lines, and the TURN server is set to relay data transmission between terminal 2 through these multiple communication lines, so that terminal 1 and the TURN server are configured to be able to use the multiple communication lines for data transmission for P2P communication in any manner depending on the communication conditions such as line load, the communication content, etc., as described above.
[0035] Communication line degradation procedure As described above, in a state where connections are established between terminal 1 and the TURN server via multiple communication lines, the connections via any of the communication lines may be cut off at any time (degeneration of communication lines), and the number of communication lines that are connected simultaneously may be selected at any time. Degeneration of communication lines may be performed by the following procedure.
[0036] In a first mode of degeneration of a communication line, the deletion of the connection is executed through the communication line to be cut off. With reference to Fig. 4, for example, when the connection of communication means 1 of terminal 1 is deleted, first, an instruction to start relay stop processing is given from the communication control unit of terminal 1 to communication means 101 (together with authentication information), and communication means 101 transmits a deletion request and relay identifier information to the TURN server. The deletion request includes deletion request information, authentication information, and the identifier of communication means 101 to be deleted. Then, the TURN server transmits deletion acknowledgement indicating that the cutoff of the connection of communication means 101 is acknowledged, and information of the relay identifier to communication means 101, and the information is further transmitted from communication means 101 to the communication control unit. Thereafter, the TURN server releases the connection with communication means 101, and data transmission between terminal 1 and the TURN server is executed through communication means 102.
[0037] In the second mode of degeneration of communication lines, the connection of another communication line is deleted through the maintained communication line. With reference to Fig. 5, for example, when deleting the connection of communication means 1 of terminal 1, first, an instruction to start relay stop processing in communication means 101 is given from the communication control unit of terminal 1 to communication means 102 (together with authentication information), and communication means 102 transmits a deletion request for the connection of communication means 101 and relay identifier information to the TURN server. The deletion request includes deletion request information, authentication information, and the identifier of communication means 101 to be deleted. Then, the TURN server transmits deletion consent indicating consent to cutoff of the connection of communication means 101 and relay identifier information to communication means 102, and the information is further transferred from communication means 102 to the communication control unit. Thereafter, the TURN server releases the connection with communication means 101, and data transmission between terminal 1 and the TURN server is performed through communication means 102.
[0038] Thus, in the system for executing P2P communication using the TURN server according to the above embodiment, a state in which data transmission can be performed over multiple communication lines is established between the terminal and the TURN server, and by making it possible to use these multiple communication lines in combination, the P2P communication can be stabilized. Also, by using multiple communication lines in combination between the terminal and the TURN server, it is possible to improve the quality of P2P communication and the available bandwidth through communication redundancy.
[0039] The above description has been given in relation to the embodiment of the present invention, but it will be apparent to those skilled in the art that many modifications and changes can be easily made thereto, and that the present invention is not limited to the embodiment exemplified above, but can be applied to various devices without departing from the concept of the present invention.
Claims
[Claim 1] A system for performing peer-to-peer terminal-to-terminal communication using a TURN server via the Internet, wherein a terminal has at least two communication means for connecting to the Internet, the terminal is connected to the Internet via separate communication lines passing through separate routers and ISP gateways using each of the at least two communication means, and the terminal is communicatively connected to the TURN server via each of the communication lines.
Citation Information
Patent Citations
Communication apparatus, method, and program
JP2015153076A
Communication terminal, communication method, and program
WO2010073656A1
Communication system, address notification device, communication control device, terminal, communication method, and program
WO2017065244A1