A method, device and equipment for data transmission and computer storage medium
The target forwarding server provides the client with the addressing basis for the direct-connected data channel, which solves the problem of tight IPv4 addresses in data transmission of different intranet users, and realizes efficient direct-connected data transmission and intranet transparent transmission.
Patent Information
- Application Number
- CN202411845011.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-13
- Publication Date
- 2025-04-08
AI Technical Summary
In the prior art, when data transmission between users on different intranets is carried out, a fixed public network IP address is needed, resulting in a tight IPv4 address and cannot meet the needs of a large number of users.
Through the target forwarding server as a transit station, each client provides an addressing basis for creating a direct-connected data channel. Using the transmission identifier and preset correspondence relationship, it realizes direct-connected data transmission between clients without additional IPv4 addresses.
It realizes direct data transmission between clients, reduces the demand for IPv4 addresses, improves the efficiency of data transmission intranet, and reduces network bandwidth consumption.
Smart Images

Figure CN119788726A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a method, device and equipment for data transmission and a computer storage medium. Background Art
[0002] With the continuous popularization of science and technology, more and more people are beginning to participate in online life. A basic prerequisite for participating in online life is that you need to have an Internet Protocol version 4 (IPv4) address that can be recognized by all devices, so as to transmit data with other devices on the Internet. However, due to the shortage of IPv4 addresses, in order to ensure that more users can access the Internet and start online life, private networks are usually built, that is, using private IP addresses to build local area networks such as corporate intranets and home networks. In this way, within the private network, devices use private IP addresses to communicate. When they need to access the Internet, they convert private IP addresses into public IP addresses through technologies such as Network Address Translation (NAT), which can greatly reduce the demand for public IP addresses.
[0003] In the related art, when point-to-point data transmission is required between users in different intranets (or local area networks), since the public IP address of the server in the intranet after NAT conversion is not fixed to the external network, and there may be port restrictions and other issues, when users in different intranets need to transmit data to each other, they need to obtain a fixed public IP address, and then transmit data from one device to another through the fixed public IP address. For example, assuming that user A wants to transmit data directly to user B, user B needs to have a public IP address that can be directly accessed by user A, so that data can be accurately transmitted from user A's device to user B's device, and vice versa.
[0004] However, the number of users currently participating in online life is extremely large. If every user who transmits data needs to obtain a fixed public IP address (that is, IPv4 address), the extremely tight IPv4 address cannot meet so many needs.
[0005] Therefore, a new data transmission method is urgently needed to solve the problem of occupying too many IPv4 addresses during data transmission. Summary of the invention
[0006] The embodiments of the present application provide a method, apparatus, device and computer storage medium for data transmission, so as to solve the problem of occupying too many IPv4 addresses during data transmission.
[0007] In a first aspect, an embodiment of the present application provides a method for data transmission, which is applied to a target forwarding server, the target forwarding server is in a public network environment, and the target forwarding server is connected to at least two clients for communication, the method comprising:
[0008] Receive a data transmission request from a first client; wherein the data transmission request at least includes: a transmission identifier corresponding to a second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected for communication; at least one of the first client and the second client is in an intranet environment;
[0009] Based on the transmission identifier of the second client and in combination with a preset correspondence between the transmission identifier and the Internet Protocol address, sending a client direct connection request to the second client;
[0010] When it is determined that any one of the first client and the second client provides a direct communication function, a direct connection confirmation message is sent to the first client; wherein the direct connection confirmation message includes: a direct connection address of the second client, so that the first client and the second client establish a direct connection data transmission channel based on the direct connection address, and perform data transmission through the direct connection data transmission channel.
[0011] Optionally, the target forwarding server is in communication connection with at least one other forwarding server, and after receiving the data transmission request from the first client, the method further includes:
[0012] When the idle resources included in the target forwarding server do not satisfy the expected resource occupancy information included in the data transmission request, acquiring the load information corresponding to each of the at least one other forwarding servers;
[0013] An idle forwarding server is selected from the at least one other forwarding server, and the data transmission request is sent to the idle forwarding server; wherein the idle resources included in the idle forwarding server meet the expected resource occupancy information.
[0014] Optionally, the data transmission request further includes: a server identifier of any one of the target forwarding server and the at least one other forwarding server;
[0015] Then the step of selecting an idle forwarding server from the at least one other forwarding server includes:
[0016] When the load information corresponding to the designated forwarding server corresponding to the server identifier satisfies the expected resource occupancy information included in the data transmission request, the designated forwarding server is used as the idle forwarding server;
[0017] When the load information corresponding to the designated forwarding server corresponding to the server identifier does not meet the expected resource occupancy information included in the data transmission request, an idle forwarding server is selected from the at least one other forwarding server based on the expected resource occupancy information included in the data transmission request.
[0018] Optionally, the method further includes: when it is determined that the second client does not accept the client direct connection request, obtaining the data to be transmitted in the first client from the first client, and forwarding the data to be transmitted to the second client.
[0019] In a second aspect, an embodiment of the present application provides a method for data transmission, which is applied to a first client, wherein the first client is communicatively connected to a target forwarding server in a public network environment, and the target forwarding server is communicatively connected to at least two clients, and when the first client needs to transmit data to a second client, the method includes:
[0020] Sending a data transmission request to the target forwarding server; wherein the data transmission request at least includes: a transmission identifier corresponding to the second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected for communication; at least one of the first client and the second client is in an intranet environment;
[0021] receiving a direct connection confirmation message sent from the target forwarding server; wherein the direct connection confirmation message includes: the direct connection address of the second client;
[0022] A direct data transmission channel is established with the second client based on the direct connection address of the second client, and data transmission is performed based on the direct data transmission channel.
[0023] In a third aspect, an embodiment of the present application provides a data transmission device, which is applied to a target forwarding server, the target forwarding server is in a public network environment, the target forwarding server is connected to at least two clients for communication, and the device includes:
[0024] A first receiving module is used to receive a data transmission request from a first client; wherein the data transmission request at least includes: a transmission identifier corresponding to a second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected to the communication; at least one of the first client and the second client is in an intranet environment;
[0025] A first sending module, configured to send a client direct connection request to the second client based on the transmission identifier of the second client and in combination with a preset correspondence between the transmission identifier and the Internet Protocol address;
[0026] The first processing module is used to send a direct connection confirmation message to the first client when it is determined that any one of the first client and the second client provides a direct connection communication function; wherein the direct connection confirmation message includes: a direct connection address of the second client, so that the first client and the second client establish a direct connection data transmission channel based on the direct connection address, and transmit data through the direct connection data transmission channel.
[0027] Optionally, the target forwarding server is in communication connection with at least one other forwarding server, and after receiving the data transmission request from the first client, the receiving module is further configured to:
[0028] When the idle resources included in the target forwarding server do not satisfy the expected resource occupancy information included in the data transmission request, acquiring the load information corresponding to each of the at least one other forwarding servers;
[0029] An idle forwarding server is selected from the at least one other forwarding server, and the data transmission request is sent to the idle forwarding server; wherein the idle resources included in the idle forwarding server meet the expected resource occupancy information.
[0030] Optionally, the data transmission request further includes: a server identifier of any one of the target forwarding server and the at least one other forwarding server;
[0031] Then, when the receiving module is used to select an idle forwarding server from the at least one other forwarding server, it is specifically used to:
[0032] When the load information corresponding to the designated forwarding server corresponding to the server identifier satisfies the expected resource occupancy information included in the data transmission request, the designated forwarding server is used as the idle forwarding server;
[0033] When the load information corresponding to the designated forwarding server corresponding to the server identifier does not meet the expected resource occupancy information included in the data transmission request, an idle forwarding server is selected from the at least one other forwarding server based on the expected resource occupancy information included in the data transmission request.
[0034] Optionally, the processing device is further used to: when it is determined that the second client does not accept the client direct connection request, obtain the data to be transmitted in the first client from the first client, and forward the data to be transmitted to the second client.
[0035] In a fourth aspect, an embodiment of the present application provides a data transmission device, which is applied to a first client, wherein the first client is communicatively connected to a target forwarding server in a public network environment, and the target forwarding server is communicatively connected to at least two clients, and when the first client needs to transmit data to a second client, the device includes:
[0036] A second sending module is used to send a data transmission request to the target forwarding server; wherein the data transmission request at least includes: a transmission identifier corresponding to the second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected to the communication; at least one of the first client and the second client is in an intranet environment;
[0037] A second receiving module is used to receive a direct connection confirmation message sent from the target forwarding server; wherein the direct connection confirmation message includes: a direct connection address of the second client;
[0038] The second processing module is configured to establish a direct data transmission channel with the second client based on the direct connection address of the second client, and perform data transmission based on the direct data transmission channel.
[0039] In a fifth aspect, an embodiment of the present application provides an electronic device, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the at least one processor executes the instructions stored in the memory, so that the at least one processor executes the method described in the first aspect, the second aspect, or any optional implementation of the first aspect and the second aspect.
[0040] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, which is used to store instructions. When the instructions are executed, the method in any optional implementation of the first aspect, the second aspect, or the first aspect and the second aspect is implemented.
[0041] In the seventh aspect, an embodiment of the present application provides a computer program product comprising instructions, wherein the computer program product stores instructions that, when executed on a computer, enable the computer to execute a method as described in the first aspect, the second aspect, or any one of the optional implementations of the first and second aspects above.
[0042] The beneficial effects of this application are as follows:
[0043] In this solution, the target forwarding server is used as a transfer station between various clients to provide each client with an addressing basis for creating a direct data channel. In this method, after receiving a data transmission request from any client, the target forwarding server can uniquely locate the corresponding peer client according to the transmission identifier in the data transmission request, thereby ensuring that the clients performing data transmission can find each other without obtaining additional IPv4 addresses.
[0044] On the other hand, in this solution, the target forwarding server is used to provide direct communication between clients, so that the target forwarding server does not need to consume a large amount of network bandwidth for data forwarding, and the efficiency of transparent transmission of data in the intranet can be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.
[0046] Figure 1 A schematic diagram of possible application scenarios provided for embodiments of the present application;
[0047] Figure 2 A flowchart of a data transmission method provided in an embodiment of the present application;
[0048] Figure 3 A schematic diagram of communication between a target forwarding server and a client provided in an embodiment of the present application;
[0049] Figure 4 A logical diagram of data transmission provided in an embodiment of the present application;
[0050] Figure 5 A logical diagram of another data transmission provided in an embodiment of the present application;
[0051] Figure 6 A flowchart of a method for selecting a forwarding server provided in an embodiment of the present application;
[0052] Figure 7 A logical schematic diagram of a method for determining a designated forwarding server provided in an embodiment of the present application;
[0053] Figure 8 A flowchart of a data transmission method provided in an embodiment of the present application;
[0054] Fig. 9 A schematic diagram of the structure of a data transmission device is provided for an embodiment of the present application;
[0055] Fig.10 A schematic diagram of the structure of a data transmission device is provided for an embodiment of the present application;
[0056] Fig.11 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0057] In order to make the purpose, technical scheme and advantages of the present application clearer, the technical scheme in the embodiment of the present application will be clearly and completely described below in conjunction with the drawings in the embodiment of the present application. Obviously, the described embodiment is only a part of the embodiment of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of the present application. In the absence of conflict, the embodiments in the present application and the features in the embodiments can be arbitrarily combined with each other. In addition, although the logical order is shown in the flow chart, in some cases, the steps shown or described can be performed in an order different from that here.
[0058] The terms "first" and "second" in the specification and claims of the present application and the above-mentioned drawings are used to distinguish different objects, rather than to describe a specific order. In addition, the term "comprising" and any of their variations are intended to cover non-exclusive protection. For example, a process, method, system, product or device comprising a series of steps or units is not limited to the listed steps or units, but optionally also includes steps or units that are not listed, or optionally also includes other steps or units inherent to these processes, methods, products or devices. "Multiple" in the present application can mean at least two, for example, two, three or more, and the embodiments of the present application are not limited.
[0059] The following is a description of exemplary embodiments of the present application in conjunction with the accompanying drawings, including various details of the embodiments of the present application to facilitate understanding, which should be considered as merely exemplary. Therefore, those of ordinary skill in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope of the present application. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description. It should be noted that in the embodiments of the present application, certain software, components, models and other existing solutions in the industry may be mentioned, which should be considered as exemplary, and their purpose is only to illustrate the feasibility of the implementation of the technical solution of the present application, but it does not mean that the applicant has or will necessarily use the solution.
[0060] In the technical solution of this application, the acquisition, transmission, storage, and use of data are in compliance with the requirements of relevant national laws and regulations.
[0061] With the continuous popularization of science and technology, more and more people are beginning to participate in online life. A basic prerequisite for participating in online life is that you need to have an IPv4 address that can be recognized by all devices, so as to transmit data with other devices on the Internet. However, due to the shortage of IPv4 addresses, in order to ensure that more users can access the Internet and start online life, private networks are usually built, that is, using private IP addresses to build local area networks such as corporate intranets and home networks. In this way, within the private network, devices use private IP addresses to communicate. When they need to access the Internet, they convert private IP addresses into public IP addresses through technologies such as NAT, which can greatly reduce the demand for public IP addresses.
[0062] In the related art, when point-to-point data transmission is required between users in different intranets (or local area networks), since the public IP address of the server in the intranet after NAT conversion is not fixed to the external network, and there may be port restrictions and other issues, when users in different intranets need to transmit data to each other, they need to obtain a fixed public IP address, and then transmit data from one device to another through the fixed public IP address. For example, assuming that user A wants to transmit data directly to user B, user B needs to have a public IP address that can be directly accessed by user A, so that data can be accurately transmitted from user A's device to user B's device, and vice versa.
[0063] However, the number of users currently participating in online life is extremely large. If every user performing data transmission needs to obtain a fixed public IP address (that is, an IPv4 address), the extremely tight IPv4 address surplus cannot meet so many demands.
[0064] In view of this, the present application proposes a data transmission method for solving the problem of occupying too many IPv4 addresses during data transmission. In the method, there is a target forwarding server in a public network environment, and at least one client in an intranet environment, and the target forwarding server is connected to at least two clients. In this way, the method is applied to the target forwarding server, and when implementing the data transmission method, the following operations can be performed:
[0065] First, a data transmission request from a first client is received, wherein the data transmission request includes a transmission identifier corresponding to a second client, and the transmission identifier is uniquely configured by the target forwarding server for each client in a communication connection.
[0066] In this way, based on the transmission identifier of the second client, combined with the correspondence between the preset transmission identifier and the Internet Protocol address, a client direct connection request is sent to the second client. When it is determined that any of the first client and the second client provides a direct communication function, a direct connection confirmation message is sent to the first client, so that the first client can establish a direct data transmission channel with the second client through the direct connection address of the second client in the direct connection confirmation message, and perform data transmission through the direct data transmission channel.
[0067] In this way, clients that need to transmit data do not need to obtain the corresponding IPv4 address separately, but only need to obtain the direct connection address of the second client through the forwarding connection of the target forwarding server, and then establish a direct connection channel for data transmission.
[0068] After completing the introduction of the main inventive ideas of the embodiments of the present application, the specific implementation of the data transmission method proposed in the embodiments of the present application will be introduced below through some specific embodiments and drawings.
[0069] The following briefly introduces the application scenarios to which the technical solutions of the embodiments of the present application can be applied. It should be noted that the application scenarios introduced below are only used to illustrate the embodiments of the present application and are not limited. In the specific implementation process, the technical solutions provided by the embodiments of the present application can be flexibly applied according to actual needs.
[0070] See also Figure 1 , which is a schematic diagram of a possible application scenario provided in an embodiment of the present application. In this scenario, a terminal device 101 and a server 102 may be included.
[0071] The terminal device 101 may be a mobile phone, a tablet computer (PAD), a personal computer (PC), a wearable device, a vehicle-mounted terminal, etc. The server 102 may be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms.
[0072] The terminal device 101 and the server 102 may be directly or indirectly connected to each other through one or more communication networks 103. The communication network 103 may be a wired network or a wireless network, for example, a mobile cellular network or a wireless fidelity (Wireless-Fidelity, WIFI) network, or other possible networks, which are not limited in the embodiment of the present invention.
[0073] It should be noted that the data transmission method in the embodiment of the present application can be Figure 1 For example, the server may receive a data transmission request from a first client, and obtain a transmission identifier of a second client to be connected therefrom, and then send a client direct connection request to the second client based on the transmission identifier, and when determining that there is a direct communication condition between the first client and the second client, send a direct connection confirmation message to the first client, so that the first client and the second client establish a direct data transmission channel for data transmission.
[0074] It should be noted that Figure 1 What is shown is just an example. In fact, the number and communication mode of terminal devices and servers are not limited and are not specifically limited in the embodiments of the present application.
[0075] On the other hand, the data transmission method provided in the embodiment of the present application can be applied to a variety of scenarios where data transmission is performed between users in different intranets. For example, in the scenario of privacy computing, user data does not leave the local area, and all model training is performed locally on the device. After the local model training is completed, the obtained model or parameters are encrypted and transmitted to other participants or the cloud. Other participants combine all parameter values and models for unified convergence calculation, and obtain a new model locally. In the data transmission link of this scenario, the data transmission between each enterprise node can adopt the data transmission method proposed in this application. The data transmission method can also be applied to scenarios where users in other intranets need users in other intranets or public networks to perform data transmission, and this application does not limit this.
[0076] The following describes the data transmission method provided by the exemplary embodiment of the present application in combination with the application scenario described above and with reference to the accompanying drawings. It should be noted that the above application scenario is only shown to facilitate understanding of the spirit and principles of the present application, and the implementation of the present application is not limited in this respect.
[0077] See also Figure 2, is a flow chart of a data transmission method provided in an embodiment of the present application. The method is applied to a target forwarding server in a public network environment, and the target forwarding server is connected to at least two clients for communication. Among them, the at least two clients include a first client and a second client. The data transmission method provided in an embodiment of the present application will be introduced by taking the data transmission between the first client and the second client as an example.
[0078] like Figure 2 As shown, first, from the perspective of the target forwarding server, the data transmission method provided by the embodiment of the present application is introduced, wherein the specific implementation steps of the method are as follows:
[0079] Step 201: receiving a data transmission request from a first client; wherein the data transmission request at least includes: a transmission identifier corresponding to a second client.
[0080] First of all, it should be noted that whether it is the first client or the second client, Figure 3 As shown, for these clients communicating with the target forwarding server, they can all register their identities in the target forwarding server in advance to obtain a transmission identifier corresponding to each client and uniquely configured by the target forwarding server.
[0081] In this way, when the first client expects to transmit data with the second client, it can first obtain the transmission identifier corresponding to the second client from the target forwarding server or the second client, and then the first client can add the transmission identifier of the second client in the data transmission request sent to the target forwarding server, so that the target forwarding server can determine the second client based on the transmission identifier.
[0082] In this way, after receiving the data transmission request from the first client, the target forwarding server can continue to perform the following operations:
[0083] Step S202: Based on the transmission identifier of the second client and in combination with the corresponding relationship between the preset transmission identifier and the Internet Protocol address, a client direct connection request is sent to the second client.
[0084] After receiving the data transmission request, the target forwarding server can obtain the corresponding transmission identifier from the data transmission request, and based on the transmission identifier and the correspondence between the transmission identifier preset in the target forwarding server and the Internet Protocol address, send a client direct connection request to the second client.
[0085] Exemplarily, when the target forwarding server receives a data transmission request, it may be performed in the following manner:
[0086] First, upon receiving a data transmission request, the target forwarding server may attempt to collect the first 50 bytes of the data transmission request. The network protocol header of the data transmission request may be designed as shown in Table 1:
[0087] length 1 36 2 9 2 content flag identifier == serviceid ==
[0088] Table 1
[0089] Next, if the target forwarding server does not receive 50 bytes of the full data transmission request within a preset time period (eg, 5 seconds), the target forwarding server may choose to disconnect from the first client.
[0090] When the target forwarding server receives 50 bytes within the preset time period, it can verify whether the data transmission request is legal and whether the serviceid in the 50-byte header of the data transmission request is legal.
[0091] When it is determined that both are legal, the target forwarding server can use the transmission identifier in the data transmission request to determine the Internet Protocol address of the second client from the correspondence between the transmission identifier stored in the target forwarding server and the Internet Protocol address, and then address its corresponding switching node and send a client direct connection request to the second client.
[0092] Step S203: When it is determined that any one of the first client and the second client provides a direct connection communication function, a direct connection confirmation message is sent to the first client, wherein the direct connection confirmation message includes: the direct connection address of the second client, so that the first client and the second client establish a direct connection data transmission channel based on the direct connection address, and perform data transmission through the direct connection data transmission channel.
[0093] Among them, for the first client and the second client, when any one of the clients can provide a direct communication function, the first client and the second client can establish a direct data transmission channel.
[0094] Exemplarily, the target forwarding server may first detect whether the first client provides a direct communication function, or a Universal Plug and Play (UPnP) function. When it is determined that the first client can provide a direct communication function, the target forwarding server may notify the second client to perform a communication connection operation, and complete the direct connection with the direct connection address of the first client. When it is determined that the first client cannot provide a direct communication function, it detects whether the second client provides a direct communication function. When it is determined that the second client can provide a direct communication function, the target forwarding server may send the direct connection address of the second client to the first client, so that the first client can connect to the second client based on the direct connection address and establish a direct data transmission channel.
[0095] In this way, after the direct data transmission channel is completed, the first client and the second client can perform data transmission through the direct data transmission channel.
[0096] For another example, the target forwarding server can simultaneously detect whether the first client and the second client provide direct communication function. From the detection results obtained, as long as it is determined that any one of the two clients provides direct communication function, the target forwarding server can determine that a direct data transmission channel can be established between the two for data transmission.
[0097] Therefore, this solution proposes that the target forwarding server acts as a transfer station between various clients, providing each client with an addressing basis for creating a direct data channel. In this method, after receiving a data transmission request from any client, the target forwarding server can uniquely locate the corresponding opposite client according to the transmission identifier in the data transmission request, thereby ensuring that the clients performing data transmission can find each other without obtaining additional IPv4 addresses.
[0098] On the other hand, in this solution, the target forwarding server is used to provide direct communication between clients, so that the target forwarding server does not need to consume a large amount of network bandwidth for data forwarding, and the efficiency of transparent transmission of data in the intranet can be improved.
[0099] In a possible implementation, when the target forwarding server determines that both the first client and the second client cannot provide direct communication function, it can use itself as the data forwarding center to obtain the data to be transmitted in the first client from the first client, and then forward the data to be transmitted to the second client.
[0100] like Figure 4As shown, the target forwarding server first needs to determine whether the two clients performing data transmission can provide a direct communication function. If so, a direct data transmission channel can be established between the two clients for data transmission. If not, the target forwarding server can use itself as the data forwarding center, obtain the data to be transmitted from the first client, and then forward it to the second client.
[0101] In this way, data forwarding is performed with the target forwarding server as the center, which provides a bottom-line guarantee for the data transmission method provided by this application, ensuring that even if the client transmitting data cannot provide direct communication function, the target forwarding server can still forward data, thereby improving the reliability of the implementation of this solution.
[0102] In another possible implementation, Figure 5 As shown, when the first client sends a data transmission request to the target forwarding server, the target forwarding server can first obtain the data to be transmitted of the first client with itself as the center, and then forward it to the second client. At the same time, the background thread of the target forwarding server can try to directly connect the first client and the second client to determine whether there is a client that can provide direct communication function between the two. When it is determined that the two can build a direct data transmission channel, the target forwarding server can facilitate the establishment of a direct data transmission channel between the two, and after the direct connection is successful, it will seamlessly switch from the original data forwarding process to a direct connection.
[0103] In this way, data transmission between the first client and the second client can be quickly established without the first client or the second client having to wait for a long time. At the same time, after the direct data transmission channel is established, the data transmission is seamlessly switched to the direct data transmission channel, thereby reducing the bandwidth consumed by the target forwarding server during the data transmission process.
[0104] In a possible implementation, before detecting whether the first client and the second client provide direct communication function, the target forwarding server may first detect whether the first client and the second client are in the same intranet. If it is determined that the two are in the same intranet, the target forwarding server can directly assist the two to communicate directly, thereby performing data transmission.
[0105] The above describes a method in which a target forwarding server provides a data transmission server for a first client and a second client. In actual applications, since the number of accessible clients may be large, there may be more than one target forwarding server that can provide data transmission services for the clients. In other words, the provider of the data transmission service may provide a data transmission server for each client through a server cluster.
[0106] In this case, when the client chooses to access the server cluster for data transmission, the server cluster needs to reasonably distribute the load of different servers in the server cluster to ensure that the efficiency of data transmission can be improved and the problem of server downtime caused by excessive server load in the server cluster can be avoided.
[0107] To this end, in a possible implementation manner, after the target forwarding server receives the data transmission request from the first client, it may further continue to perform the following operations:
[0108] See also Figure 6 , is a flowchart of a method for selecting a forwarding server provided in an embodiment of the present application, such as Figure 6 As shown, the specific implementation steps of this method are as follows:
[0109] Step S601: when the idle resources included in the target forwarding server do not satisfy the expected resource occupancy information included in the data transmission request, the load information corresponding to at least one other forwarding server is obtained.
[0110] For a target forwarding server, when it is in a server cluster, the target forwarding server will be in communication connection with at least one other forwarding server.
[0111] Therefore, when the target forwarding server receives a data transmission request, but the idle resources of the target forwarding server itself do not meet the expected resource occupancy information required by the data transmission request, the target forwarding server can obtain the corresponding load information of at least one other forwarding server.
[0112] For example, for the load information corresponding to other forwarding servers, the target forwarding server may obtain the load information in the following different ways:
[0113] For example, each time the target forwarding server determines that its own idle resources cannot meet the requirements in the data transmission request, it collects the respective load information from each other forwarding server.
[0114] In this way, the target forwarding server only needs to obtain the load information of other forwarding servers when it has corresponding needs, which not only avoids the waste of communication resources between the forwarding servers, but also reduces the occupancy of the storage resources of the target forwarding server.
[0115] At the same time, in this method, the forwarding server that receives the data transmission request from the client can be distinguished in different ways. For example, the client can choose to send the data transmission request to the forwarding server that is physically closer first, or the client can choose to send the data transmission request to the forwarding server that was responsible for processing the data transmission last time first. In this way, the process of the client sending the data transmission request to the forwarding server can be initially balanced among the various forwarding servers, and processed by different forwarding servers, thereby avoiding too many access requests to one forwarding server, resulting in excessive load.
[0116] For another example, each other forwarding server can send its own load information to the target forwarding server based on a preset time interval (e.g., once every 3 seconds), and the load information can include the local IP, public IP, port, server ID, current server connection number, etc. of each other forwarding server. Accordingly, the target forwarding server can save this information in the target forwarding server, so that each time when a data transmission request is received and the resource requirements of the data transmission request cannot be met, the load information of other forwarding servers can be obtained from the saved information.
[0117] Step S602: Select an idle forwarding server from at least one other forwarding server, and send the data transmission request to the idle forwarding server, wherein the idle resources included in the idle forwarding server meet the expected resource occupation information included in the data transmission request.
[0118] After obtaining the load information, the target forwarding server can determine whether it can meet the needs of the data transmission request based on the idle resources contained in each other forwarding server represented in the load information, and then select an idle forwarding server from other forwarding servers that can meet the needs, and send the data transmission request to the idle forwarding server, so that the idle forwarding server can complete the data transmission requested by the data transmission request.
[0119] In this way, after receiving the data transmission request, the target forwarding server forwards the data transmission request exceeding its own idle resources to other idle forwarding servers, thereby achieving load balancing in the server cluster and improving the stability of the implementation of this solution.
[0120] Optionally, for balancing the load of each server in the server cluster, the following method can be selected, namely:
[0121] A load balancing module is set in the target forwarding server to balance the load of each forwarding server in the server cluster.
[0122] Specifically, all clients performing data transmission can send data transmission requests to the target forwarding server. Then the load balancing module in the target forwarding server can first match the data transmission request with the load information of other forwarding servers, and select other forwarding servers with the least load as idle forwarding servers, so that the first client and the second client can perform data transmission through the idle forwarding server.
[0123] In this way, the target forwarding server is used as the center of the server cluster. After receiving the data transmission requests from each client, the target forwarding server distributes these requests to the idle forwarding servers, ensuring load balancing in the server cluster, improving the processing efficiency of data transmission requests, and improving the reliability of the implementation of this solution.
[0124] In a possible implementation manner, the data transmission request may further include a server identifier of the target forwarding server or any forwarding server among other forwarding servers.
[0125] In this way, after the target forwarding server receives the data transmission request, it can first determine the corresponding designated forwarding server according to the server identifier in the data transmission request.
[0126] Then, when the target forwarding server determines the load information corresponding to the designated forwarding server and satisfies the expected resource occupancy information included in the data transmission request, the designated forwarding server can be used as an idle forwarding server, and then the data transmission request can be sent to the idle forwarding server so that the idle forwarding server continues to perform data transmission for the first client and the second client.
[0127] When the target forwarding server determines that the load information corresponding to the designated forwarding server does not meet the expected resource occupancy information included in the data transmission request, the aforementioned method can be continued, that is, based on the expected resource occupancy information included in the data transmission request, an idle forwarding server is selected from at least one other forwarding server, and the data transmission request is then sent to the idle forwarding server for processing.
[0128] Exemplarily, in this method, the target forwarding server can be used only as a load balancing module. For each received data transmission request, it is directly set that the idle resources of the target forwarding server do not meet the expected resource occupancy information. Figure 7 As shown, each time the target forwarding server receives a data transmission request that includes a server identifier, it is necessary to first determine the corresponding designated forwarding server for the server identifier and determine whether it contains idle resources that can process the data transmission request. Once it is determined that it contains idle resources, the designated forwarding server can be used as an idle forwarding server.
[0129] When the designated forwarding server does not contain enough idle resources that can meet the expected resource occupancy information, the target forwarding server can allocate a suitable idle forwarding server for the data transmission request according to the load information of each other forwarding server.
[0130] Furthermore, when the target forwarding server forwards the data transmission request, the idle forwarding server may be selected by: selecting the forwarding server with the least load as the idle server from all other forwarding servers based on the load information. In this way, even when the idle resources of all forwarding servers cannot meet the expected resource occupation information of the data transmission request, a forwarding server with more idle resources may be selected as much as possible for the data transmission request to process the data transmission, thereby improving the processing efficiency of the data transmission.
[0131] Based on the same inventive concept, an embodiment of the present application also provides a method for data transmission, which is applied to a first client, and the first client is communicatively connected to a target forwarding server in a public network environment, and the target forwarding server is communicatively connected to at least two clients. In this way, when the first client needs to transmit data to the second client, the first client can do so through the data transmission method provided by the present application.
[0132] See also Figure 8 , is a flow chart of a data transmission method provided in an embodiment of the present application, such as Figure 8 As shown, the specific implementation steps of this method are as follows:
[0133] Step S801: Send a data transmission request to the target forwarding server; wherein the data transmission request includes at least: a transmission identifier corresponding to the second client; the transmission identifier is uniquely configured by the target forwarding server for each communication connected client; at least one of the first client and the second client is in an intranet environment.
[0134] After the first client sends the data transmission request, it can wait for the target forwarding server to perform subsequent corresponding processing operations, wherein the specific implementation steps are as mentioned above and will not be described in detail in this application.
[0135] When the target forwarding server determines that there is a basis for establishing a direct data transmission channel between the first client and the second client, it can send a corresponding direct connection confirmation message to the first client.
[0136] Accordingly, the first client can continue to perform the following operations:
[0137] Step S802: receiving a direct connection confirmation message sent from the target forwarding server; wherein the direct connection confirmation message includes: the direct connection address of the second client.
[0138] Step S803: establishing a direct data transmission channel with the second client based on the direct connection address of the second client, and performing data transmission based on the direct data transmission channel.
[0139] In this way, with the help of the target forwarding server, the first client can complete direct communication with the second client to perform data transmission, which does not require obtaining an additional public IP address and can also improve the efficiency of data transmission.
[0140] Based on the same inventive concept, an embodiment of the present application also provides a device for data transmission.
[0141] See also Fig. 9 , is a structural schematic diagram of a data transmission device provided in an embodiment of the present application. The device may be the above-mentioned server or a chip or integrated circuit in the device, etc. The device includes a module / unit / technical means for executing the method executed by the server in the above-mentioned method embodiment.
[0142] Exemplarily, the device 900 includes:
[0143] The first receiving module 901 is used to receive a data transmission request from a first client; wherein the data transmission request at least includes: a transmission identifier corresponding to a second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected to the communication; at least one of the first client and the second client is in an intranet environment;
[0144] A first sending module 902, configured to send a client direct connection request to the second client based on the transmission identifier of the second client and in combination with a preset correspondence between the transmission identifier and the Internet Protocol address;
[0145] The first processing module 903 is used to send a direct connection confirmation message to the first client when it is determined that any one of the first client and the second client provides a direct communication function; wherein the direct connection confirmation message includes: the direct connection address of the second client, so that the first client and the second client establish a direct connection data transmission channel based on the direct connection address, and transmit data through the direct connection data transmission channel.
[0146] Optionally, the target forwarding server is in communication connection with at least one other forwarding server, and after receiving the data transmission request from the first client, the first receiving module 901 is further used to:
[0147] When the idle resources included in the target forwarding server do not satisfy the expected resource occupancy information included in the data transmission request, acquiring the load information corresponding to each of the at least one other forwarding servers;
[0148] An idle forwarding server is selected from the at least one other forwarding server, and the data transmission request is sent to the idle forwarding server; wherein the idle resources included in the idle forwarding server meet the expected resource occupancy information.
[0149] Optionally, the data transmission request further includes: a server identifier of any one of the target forwarding server and the at least one other forwarding server;
[0150] Then, when the first receiving module 901 is used to select an idle forwarding server from the at least one other forwarding server, it is specifically used to:
[0151] When the load information corresponding to the designated forwarding server corresponding to the server identifier satisfies the expected resource occupancy information included in the data transmission request, the designated forwarding server is used as the idle forwarding server;
[0152] When the load information corresponding to the designated forwarding server corresponding to the server identifier does not meet the expected resource occupancy information included in the data transmission request, an idle forwarding server is selected from the at least one other forwarding server based on the expected resource occupancy information included in the data transmission request.
[0153] Optionally, the first processing module 903 is further used to: when it is determined that the second client does not accept the client direct connection request, obtain the data to be transmitted in the first client from the first client, and forward the data to be transmitted to the second client.
[0154] As an example, Fig. 9 The apparatus described can be used to perform Figure 2 Therefore, for the functions that can be realized by each functional module of the device, reference can be made to Figure 2 The description of the illustrated embodiment will not be repeated here.
[0155] Based on the same inventive concept, an embodiment of the present application also provides a device for data transmission.
[0156] See also Fig.10 , is a structural schematic diagram of a device for data transmission provided in an embodiment of the present application. The device may be the above-mentioned client or a chip or integrated circuit in the device, etc. The device includes a module / unit / technical means for executing the method executed by the server in the above-mentioned method embodiment.
[0157] Exemplarily, the device 1000 includes:
[0158] The second sending module 1001 is used to send a data transmission request to the target forwarding server; wherein the data transmission request at least includes: a transmission identifier corresponding to the second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected for communication; at least one of the first client and the second client is in an intranet environment;
[0159] The second receiving module 1002 is used to receive a direct connection confirmation message sent from the target forwarding server; wherein the direct connection confirmation message includes: the direct connection address of the second client;
[0160] The second processing module 1003 is configured to establish a direct data transmission channel with the second client based on the direct connection address of the second client, and perform data transmission based on the direct data transmission channel.
[0161] As an example, Fig.10 The apparatus described can be used to perform Figure 8 Therefore, for the functions that can be realized by each functional module of the device, reference can be made to Figure 8 The description of the illustrated embodiment will not be repeated here.
[0162] It should be noted that, although several modules or submodules of the device are mentioned in the above detailed description, this division is merely exemplary and not mandatory. In fact, according to an embodiment of the present invention, the features and functions of two or more units described above can be embodied in one module. Conversely, the features and functions of one module described above can be further divided into multiple modules to be embodied.
[0163] As a possible product form of the above device, see Fig.11 The embodiment of the present application further provides an electronic device 1100, including:
[0164] At least one processor 1101; and a communication interface 1103 communicatively connected to the at least one processor 1101; the at least one processor 1101 executes instructions stored in the memory 1102, so that the electronic device 1100 executes the method steps performed by any device in the above method embodiments through the communication interface 1103.
[0165] Optionally, the memory 1102 is located outside the electronic device 1100 .
[0166] Optionally, the electronic device 1100 includes the memory 1102, the memory 1102 is connected to the at least one processor 1101, and the memory 1102 stores instructions that can be executed by the at least one processor 1101. Fig.11 The dashed lines indicate that the memory 1102 is optional for the electronic device 1100 .
[0167] The processor 1101 and the memory 1102 may be coupled via an interface circuit or may be integrated together, which is not limited here.
[0168] The specific connection medium between the processor 1101, the memory 1102 and the communication interface 1103 is not limited in the embodiment of the present application. Fig.11 In the embodiment, the processor 1101, the memory 1102 and the communication interface 1103 are connected via a bus 1104. Fig.11 The connections between the other components are shown in bold lines, which are only for illustration and are not intended to be limiting. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.11 In the example, only one thick line is used to represent the bus, but it does not mean that there is only one bus or one type of bus. It should be understood that the processor mentioned in the embodiment of the present application can be implemented by hardware or by software. When implemented by hardware, the processor can be a logic circuit, an integrated circuit, etc. When implemented by software, the processor can be a general-purpose processor, which is implemented by reading the software code stored in the memory.
[0169] Exemplarily, the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.
[0170] It should be understood that the memory mentioned in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct memory bus random access memory (DirectRambus RAM, DR RAM).
[0171] It should be noted that when the processor is a general-purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, the memory (storage module) can be integrated into the processor.
[0172] It should be noted that the memory described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0173] As another possible product form, an embodiment of the present application also provides a computer-readable storage medium, which is used to store instructions. When the instructions are executed, the computer executes the method steps executed by any device in the above method example.
[0174] As another possible product form, an embodiment of the present application also provides a computer program product including instructions, wherein the computer program product stores instructions that, when executed on a computer, enable the computer to execute the method steps executed by any device in the above method embodiment.
[0175] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0176] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0177] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0178] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0179] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A method for data transmission, characterized in that: Applied to a target forwarding server, the target forwarding server is in a public network environment, and the target forwarding server is in communication connection with at least two clients, the method comprises: Receive a data transmission request from a first client; wherein the data transmission request at least includes: a transmission identifier corresponding to a second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected for communication; at least one of the first client and the second client is in an intranet environment; Based on the transmission identifier of the second client and in combination with a preset correspondence between the transmission identifier and the Internet Protocol address, sending a client direct connection request to the second client; When it is determined that any one of the first client and the second client provides a direct communication function, a direct connection confirmation message is sent to the first client; wherein the direct connection confirmation message includes: a direct connection address of the second client, so that the first client and the second client establish a direct connection data transmission channel based on the direct connection address, and perform data transmission through the direct connection data transmission channel.
2. The method according to claim 1, characterized in that The target forwarding server is in communication connection with at least one other forwarding server, and after receiving the data transmission request from the first client, the method further includes: When the idle resources included in the target forwarding server do not satisfy the expected resource occupancy information included in the data transmission request, acquiring the load information corresponding to each of the at least one other forwarding servers; An idle forwarding server is selected from the at least one other forwarding server, and the data transmission request is sent to the idle forwarding server; wherein the idle resources included in the idle forwarding server meet the expected resource occupancy information.
3. The method according to claim 2, characterized in that The data transmission request further includes: a server identifier of any one of the target forwarding server and the at least one other forwarding server; Then the step of selecting an idle forwarding server from the at least one other forwarding server includes: When the load information corresponding to the designated forwarding server corresponding to the server identifier satisfies the expected resource occupancy information included in the data transmission request, the designated forwarding server is used as the idle forwarding server; When the load information corresponding to the designated forwarding server corresponding to the server identifier does not meet the expected resource occupancy information included in the data transmission request, an idle forwarding server is selected from the at least one other forwarding server based on the expected resource occupancy information included in the data transmission request.
4. The method according to any one of claims 1 to 3, characterized in that: The method further comprises: When it is determined that each of the first client and the second client does not provide a direct communication function, the data to be transmitted in the first client is obtained from the first client, and the data to be transmitted is forwarded to the second client.
5. A method for data transmission, characterized in that: Applied to a first client, the first client is in communication connection with a target forwarding server in a public network environment, the target forwarding server is in communication connection with at least two clients, when the first client needs to transmit data to a second client, the method includes: Sending a data transmission request to the target forwarding server; wherein the data transmission request at least includes: a transmission identifier corresponding to the second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected for communication; at least one of the first client and the second client is in an intranet environment; receiving a direct connection confirmation message sent from the target forwarding server; wherein the direct connection confirmation message includes: the direct connection address of the second client; A direct data transmission channel is established with the second client based on the direct connection address of the second client, and data transmission is performed based on the direct data transmission channel.
6. A data transmission device, characterized in that: Applied to a target forwarding server, the target forwarding server is in a public network environment, the target forwarding server is in communication connection with at least two clients, and the device comprises: A first receiving module is used to receive a data transmission request from a first client; wherein the data transmission request at least includes: a transmission identifier corresponding to a second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected to the communication; at least one of the first client and the second client is in an intranet environment; A first sending module, configured to send a client direct connection request to the second client based on the transmission identifier of the second client and in combination with a preset correspondence between the transmission identifier and the Internet Protocol address; The first processing module is used to send a direct connection confirmation message to the first client when it is determined that any one of the first client and the second client provides a direct connection communication function; wherein the direct connection confirmation message includes: a direct connection address of the second client, so that the first client and the second client establish a direct connection data transmission channel based on the direct connection address, and transmit data through the direct connection data transmission channel.
7. The device according to claim 6, characterized in that The target forwarding server is in communication connection with at least one other forwarding server, and after receiving the data transmission request from the first client, the receiving module is further used to: When the idle resources included in the target forwarding server do not satisfy the expected resource occupancy information included in the data transmission request, acquiring the load information corresponding to each of the at least one other forwarding servers; An idle forwarding server is selected from the at least one other forwarding server, and the data transmission request is sent to the idle forwarding server; wherein the idle resources included in the idle forwarding server meet the expected resource occupancy information.
8. The device according to claim 7, characterized in that The data transmission request further includes: a server identifier of any one of the target forwarding server and the at least one other forwarding server; Then, when the receiving module is used to select an idle forwarding server from the at least one other forwarding server, it is specifically used to: When the load information corresponding to the designated forwarding server corresponding to the server identifier satisfies the expected resource occupancy information included in the data transmission request, the designated forwarding server is used as the idle forwarding server; When the load information corresponding to the designated forwarding server corresponding to the server identifier does not meet the expected resource occupancy information included in the data transmission request, an idle forwarding server is selected from the at least one other forwarding server based on the expected resource occupancy information included in the data transmission request.
9. The device according to any one of claims 6 to 8, characterized in that: The processing device is also used for: When it is determined that the second client does not accept the client direct connection request, the data to be transmitted in the first client is obtained from the first client, and the data to be transmitted is forwarded to the second client.
10. A data transmission device, characterized in that: Applied to a first client, the first client is connected to a target forwarding server in a public network environment, the target forwarding server is connected to at least two clients, and when the first client needs to transmit data to the second client, the device includes: A second sending module is used to send a data transmission request to the target forwarding server; wherein the data transmission request at least includes: a transmission identifier corresponding to the second client; the transmission identifier is uniquely configured by the target forwarding server for each client connected for communication; at least one of the first client and the second client is in an intranet environment; A second receiving module is used to receive a direct connection confirmation message sent from the target forwarding server; wherein the direct connection confirmation message includes: a direct connection address of the second client; The second processing module is configured to establish a direct data transmission channel with the second client based on the direct connection address of the second client, and perform data transmission based on the direct data transmission channel.
11. An electronic device, characterized in that: include: at least one processor; and a memory communicatively coupled to the at least one processor; The memory stores instructions that can be executed by the at least one processor, and the at least one processor executes the method as described in any one of claims 1-4 or 5 by executing the instructions stored in the memory.
12. A computer-readable storage medium, characterized in that: The computer-readable storage medium is used to store instructions, and when the instructions are executed, the method according to any one of claims 1 to 4 or 5 is implemented.
13. A computer program product comprising instructions, characterized in that The computer program product stores instructions, and when the computer program product is run on a computer, the computer is caused to execute the method according to any one of claims 1 to 4 or 5.