Data transmission method, apparatus, device, and storage medium
By dynamically selecting acceleration link information and utilizing multiple acceleration access points and nodes for data redirection, the problems of data transmission latency and packet loss rate are solved, achieving efficient and reliable data transmission.
Patent Information
- Application Number
- CN202210094159.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-26
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2042-01-26
AI Technical Summary
Existing data transmission methods cannot guarantee transmission quality when the target server and the dedicated channel are not compatible, and they are highly dependent on the communication quality of the dedicated channel, resulting in uncontrollable packet loss rate and latency issues.
By obtaining network requests from the target application, querying the acceleration server for acceleration link information corresponding to the destination IP, dynamically selecting the optimal path for redirection, and utilizing multiple acceleration access points and acceleration nodes for data transmission, adaptive allocation is achieved.
It reduces data transmission latency, significantly improves data transmission efficiency and quality, and effectively reduces packet loss rate.
Smart Images

Figure CN116546105B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of Internet, and particularly relates to a data transmission method and device, equipment and a storage medium. BACKGROUND
[0002] With the popularity of the Internet, the demand for network data transmission is increasing rapidly. The data transmission speed is limited by network bandwidth and other factors, and problems such as data lag and delay are prone to occur. In order to ensure the data transmission speed and quality of some specified application programs, a static path acceleration method is usually used to establish a dedicated data transmission channel. However, this method sends network requests of the application program and receives response data through the same path, which is difficult to adapt to different target servers. In the case that the target server is not compatible with the dedicated channel, the transmission quality cannot be ensured. In addition, the existing acceleration method has a high dependence on the communication quality of the dedicated channel, and the packet loss rate is uncontrollable. Therefore, an improved data transmission scheme is needed to overcome the above existing problems. SUMMARY
[0003] The present application provides a data transmission method, device, equipment and storage medium, which can effectively reduce the data transmission delay and packet loss rate.
[0004] In one aspect, the present application provides a data transmission method applied to a terminal, the method comprising:
[0005] obtaining a network request sent by a target application program, wherein the network request carries a destination IP of a to-be-accessed server;
[0006] sending a link information query request carrying the destination IP to an acceleration server;
[0007] receiving acceleration link information corresponding to the destination IP sent by the acceleration server, wherein the acceleration link information is determined by the acceleration server based on a preset correspondence relationship between the destination IP, acceleration access points, acceleration nodes and aggregation nodes, and includes node information of a target aggregation node corresponding to the destination IP, at least two target acceleration access points and at least two target acceleration nodes, and the target acceleration access points correspond one by one to the target acceleration nodes;
[0008] performing redirection processing on the network request according to the node information of the at least two target acceleration nodes and the target aggregation node, to obtain a redirection request corresponding to each target acceleration access point respectively, wherein the redirection request carries a request data packet of the network request;
[0009] send each redirection request to a corresponding target acceleration access point, wherein the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation node via the corresponding target acceleration node, and is used to instruct the target aggregation node to send the received request data packet to the to-be-accessed service end.
[0010] Another aspect provides a data transmission method, applied to an acceleration service end, the method comprising:
[0011] receiving a destination IP sent by a terminal, wherein the destination IP is carried by a network request sent by a target application program in the terminal to a to-be-accessed service end;
[0012] determining acceleration link information corresponding to the destination IP based on a preset correspondence relationship among the destination IP, an acceleration access point, an acceleration node, and an aggregation node;
[0013] sending the acceleration link information corresponding to the destination IP to the terminal, wherein the acceleration link information comprises node information of a target aggregation node corresponding to the destination IP, at least two target acceleration access points, and at least two target acceleration nodes, and the target acceleration access points correspond to the target acceleration nodes one by one;
[0014] wherein the node information of the at least two target acceleration nodes and the target aggregation node and the redirection request for instructing the terminal to perform redirection processing on the network request to obtain a respective redirection request of each target acceleration access point, wherein the redirection request carries a request data packet of the network request.
[0015] Another aspect provides a data transmission device, applied to a terminal, the device comprising:
[0016] a network request acquisition module, configured to acquire a network request sent by a target application program, wherein the network request carries a destination IP of a to-be-accessed service end;
[0017] a destination IP sending module, configured to send a link information query request carrying the destination IP to an acceleration service end;
[0018] an acceleration link information receiving module, configured to receive acceleration link information corresponding to the destination IP sent by the acceleration service end, wherein the acceleration link information is determined by the acceleration service end based on a preset correspondence relationship among the destination IP, an acceleration access point, an acceleration node, and an aggregation node, and comprises node information of a target aggregation node corresponding to the destination IP, at least two target acceleration access points, and at least two target acceleration nodes, and the target acceleration access points correspond to the target acceleration nodes one by one;
[0019] The redirection processing module is configured to perform redirection processing on the network request according to node information of the at least two target acceleration access points and the target aggregation point, to obtain a respective redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request.
[0020] The redirection request sending module is configured to send each redirection request to a corresponding target acceleration access point, wherein the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation point via the corresponding target acceleration node, and to instruct the target aggregation point to send the received request data packet to the to-be-accessed service end.
[0021] In another aspect, a data transmission device is provided, which is applied to an acceleration service end, and the device comprises:
[0022] The destination IP receiving module is configured to receive a destination IP sent by a terminal, wherein the destination IP is carried by a network request sent by a target application program in the terminal to a to-be-accessed service end.
[0023] The acceleration link information determining module is configured to determine acceleration link information corresponding to the destination IP based on a preset correspondence relationship among the destination IP, acceleration access points, acceleration nodes, and aggregation nodes.
[0024] The acceleration link information sending module is configured to send the acceleration link information corresponding to the destination IP to the terminal, wherein the acceleration link information comprises node information of at least two target acceleration access points, at least two target acceleration nodes, and a target aggregation node corresponding to the destination IP, and the target acceleration access points correspond to the target acceleration nodes one by one.
[0025] The at least two target acceleration nodes, the node information of the target aggregation node, and the instruction for instructing the terminal to perform redirection processing on the network request to obtain a respective redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request.
[0026] In another aspect, a computer device is provided, which comprises a processor and a memory, and the memory stores at least one instruction or at least one program, and the at least one instruction or the at least one program is loaded and executed by the processor to implement the data transmission method as described above.
[0027] In another aspect, a computer readable storage medium is provided, which stores at least one instruction or at least one program, and the at least one instruction or the at least one program is loaded and executed by a processor to implement the data transmission method as described above.
[0028] Another aspect provides a server, comprising a processor and a memory, the memory storing at least one instruction or at least one program, the at least one instruction or the at least one program being loaded and executed by the processor to implement the data transmission method as described above.
[0029] Another aspect provides a terminal, comprising a processor and a memory, the memory storing at least one instruction or at least one program, the at least one instruction or the at least one program being loaded and executed by the processor to implement the data transmission method as described above.
[0030] Another aspect provides a computer program product or computer program, comprising computer instructions, which, when executed by a processor, implement the data transmission method as described above.
[0031] The data transmission method, device, equipment, storage medium, server, terminal, computer program and computer program product provided in the application have the following technical effects:
[0032] The application obtains a network request sent by a target application program, wherein the network request carries a destination IP of a to-be-accessed server; sends a link information query request carrying the destination IP to an acceleration server; receives acceleration link information corresponding to the destination IP sent by the acceleration server, wherein the acceleration link information is determined by the acceleration server based on a preset correspondence relationship between the destination IP, acceleration access points, acceleration nodes and aggregation nodes, and includes node information of a target aggregation node corresponding to the destination IP, at least two target acceleration access points and at least two target acceleration nodes, the target acceleration access points and the target acceleration nodes corresponding to each other in a one-to-one manner; performs redirection processing on the network request according to the node information of the at least two target acceleration nodes and the target aggregation node, to obtain a redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request; and then sends each redirection request to the corresponding target acceleration access point, wherein the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation node via the corresponding target acceleration node, and instruct the target aggregation node to send the received request data packet to the to-be-accessed server. Based on the above scheme, a data acceleration link is dynamically selected according to a required destination IP to be accessed, target application program traffic is forwarded to the to-be-accessed server through an optimal path, and feedback data is obtained, so that adaptive dynamic allocation of data transmission is realized, transmission delay is reduced, and overall data transmission efficiency is significantly improved. Moreover, data transmission is performed based on multiple acceleration access points and multiple acceleration links, so that the packet loss rate is effectively reduced and the data transmission quality is improved. BRIEF DESCRIPTION OF DRAWINGS
[0033] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, and the advantages thereof, the following will briefly introduce the drawings needed to be used in the embodiments or prior art description. Obviously, the drawings in the following description only constitute some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained from these drawings without creative effort.
[0034] Figure 1 is a schematic diagram of an application environment provided by an embodiment of the present application;
[0035] Figure 2 is a flowchart of a data transmission method provided by an embodiment of the present application;
[0036] Figure 3 is a flowchart of another data transmission method provided by an embodiment of the present application;
[0037] Figure 4 is a flowchart of another data transmission method provided by an embodiment of the present application;
[0038] Figure 5 is a schematic diagram of a data transmission framework provided by an embodiment of the present application;
[0039] Figure 6 is a flowchart of a dynamic acceleration processing method based on a data transmission method provided by an embodiment of the present application;
[0040] Figure 7 is a flowchart of a data transmission method provided by an embodiment of the present application;
[0041] Figure 8 is a flowchart of a data transmission method applied to a terminal provided by an embodiment of the present application;
[0042] Figure 9 is a flowchart of a data transmission method applied to an acceleration server provided by an embodiment of the present application;
[0043] Figure 10 is a schematic diagram of a data transmission device applied to a terminal provided by an embodiment of the present application;
[0044] Figure 11 is a schematic diagram of a data transmission device applied to an acceleration server provided by an embodiment of the present application;
[0045] Figure 12 is a hardware structure block diagram of an electronic device of a data transmission method provided by an embodiment of the present application;
[0046] Figure 13Fig. 1 is a structural schematic diagram of a blockchain system provided by an embodiment of the present application. DETAILED DESCRIPTION
[0047] The technical solutions in the embodiments of the present application will be clearly and completely described in connection with the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative work fall within the scope of protection of the present application.
[0048] It should be noted that the terms "first", "second", and the like in the specification and claims of the present application and the above-described drawings are used to distinguish similar objects, and do not necessarily indicate a specific order or a chronological sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product, or server including a series of steps or sub-modules does not necessarily have to be limited to those steps or sub-modules clearly listed, but can include other steps or sub-modules not clearly listed or inherent to the process, method, product, or device.
[0049] Before the embodiments of the present application are further described in detail, the terms and phrases involved in the embodiments of the present application are explained, and the terms and phrases involved in the embodiments of the present application are applicable to the following explanations.
[0050] Game accelerator: a software for quickly and stably connecting a game server for an individual object, which provides game acceleration services for the object by using a dedicated line or the like.
[0051] Access point server: a server distributed in the territory, which enters a private cloud and a dedicated high-speed channel network through an access point.
[0052] Acceleration node server: distributed in various parts of the world, which is the tail end of a cloud high-speed channel and is located near a server to be accessed.
[0053] Multi-path packet sending: simultaneously sending the same data packet to a target machine through multiple network links.
[0054] Aggregation node: the last hop server before sending a packet to a target machine through multiple network links.
[0055] Dynamic game acceleration: referring to finding the optimal path for game data packet forwarding according to each IP in the game process.
[0056] Please refer to Figure 1 ,Figure 1 is a schematic diagram of an application environment provided by an embodiment of the present application, as shown in the figure, the application environment can at least include terminal 01, acceleration server 02, data transmission server 03 and to-be-accessed server 04. In actual application, terminal 01, acceleration server 02, data transmission server 03 and to-be-accessed server 04 can be directly or indirectly connected through wired or wireless communication mode, and the present application does not make any limitation here. Figure 1
[0057] The server in the embodiment of the present application can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud service, cloud database, cloud computing, cloud function, cloud storage, network service, cloud communication, middleware service, domain name service, security service, CDN (Content Delivery Network), and basic cloud computing services such as big data and artificial intelligence platform.
[0058] Specifically, cloud technology refers to a kind of hosting technology that unifies a series of resources such as hardware, software and network in a wide area network or local area network to realize data calculation, storage, processing and sharing. It distributes computing tasks on a resource pool composed of a large number of computers, so that various application systems can obtain computing power, storage space and information services according to needs. The network that provides resources is called "cloud". Among them, artificial intelligence cloud service is generally also called AIaaS (AI as a Service, Chinese for "AI as a Service"). This is currently the mainstream service mode of artificial intelligence platform, specifically, AIaaS platform will split several common AI services, and provide independent or packaged services in the cloud. This service mode is similar to opening an AI theme mall: all developers can access and use one or more artificial intelligence services provided by the platform through API interface, and some experienced developers can also use the AI framework and AI infrastructure provided by the platform to deploy and operate their own exclusive cloud artificial intelligence services.
[0059] Specifically, the above-mentioned server can include an entity device, can specifically include a network communication submodule, a processor, a memory and the like, and can also include software running in the entity device, and can specifically include an application program and the like.
[0060] In the embodiments of the present application, the terminal 01 can include an entity device such as a smart phone, a desktop computer, a tablet computer, a notebook computer, a digital assistant, an augmented reality (AR) / virtual reality (VR) device, a smart voice interaction device, a smart home appliance, a smart wearable device, and a vehicle-mounted terminal device, and can also include software such as an application program running in the entity device.
[0061] In the embodiments of the present application, the terminal 01 can run a target application, the data transmission server 03 is deployed with an acceleration access point, an acceleration node, and a convergence node; the target application sends a network request to the to-be-accessed server 04, the network request carries a destination IP of the to-be-accessed server 04, the terminal sends the network request of the target application to the acceleration server 02, so that the acceleration server 02 determines corresponding acceleration link information based on the destination IP and feeds back to the terminal 01. The acceleration link information includes node information of the target convergence node, at least two target acceleration access points, and at least two target acceleration nodes deployed in the data transmission server 03, and the target acceleration access point corresponds to the target acceleration node one by one; the terminal 01 performs redirection processing on the network request based on the acceleration link information, generates a redirection request corresponding to each target acceleration access point, and then sends it to each target acceleration access point, so as to send it to the target convergence node through each acceleration link, and the target convergence node performs deduplication and recombination on the request data packets carried by each redirection request received, generates a recombined data packet, and sends it to the to-be-accessed terminal 04.
[0062] In the embodiments of the present application, the to-be-accessed terminal 04 feeds back response information carrying corresponding response data packets to the target convergence node of the data transmission server 03; the target convergence node performs redirection processing on the response information to generate response information for each acceleration link, and finally sends it to the terminal 01 through each target acceleration access point, and the terminal performs deduplication on the response data packets of each response information received to obtain the target data packet corresponding to the network request.
[0063] In addition, it can be understood that, Figure 1 The application environment shown is only an application environment of the data transmission method, and the application environment can include more or fewer nodes, which is not limited in the present application.
[0064] The application environment, or the terminal 01, the acceleration server 02, the data transmission server 03, and the to-be-accessed server 04 in the application environment, etc. involved in the embodiments of the present application can be a distributed system formed by a client, a plurality of nodes (any form of computing device in an access network, such as a server, a user terminal) connected through network communication. The distributed system can be a blockchain system, which can provide the above-mentioned data transmission service and data storage service, etc.
[0065] Referring to Figure 13 , Figure 13 is an optional structural schematic diagram of a distributed system 100 applied to a blockchain system, formed by multiple nodes (any form of computing device in an access network, such as a server, a user terminal) and clients, a point-to-point (P2P, Peer To Peer) network is formed between the nodes, and the P2P protocol is an application layer protocol running on a transmission control protocol (TCP, Transmission Control Protocol) protocol. In the distributed system, any machine such as a server or a terminal can join to become a node, and the node includes a hardware layer, an intermediate layer, an operating system layer, and an application layer.
[0066] The following describes a data transmission method of the present application based on the above application environment. The embodiments of the present application can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, intelligent transportation, and assisted driving. Please refer to Figure 2 , Figure 2 is a flowchart of a data transmission method provided by an embodiment of the present application. The present specification provides method operation steps as embodiments or flowcharts, but more or fewer operation steps can be included based on conventional or non-creative labor. The order of steps listed in the embodiments is only one of the many execution orders, and does not represent the only execution order. In actual system or server product execution, the method order shown in the embodiments or the drawings can be executed in sequence or in parallel (for example, in a parallel processor or multi-threaded processing environment). Specifically, as shown in Figure 2 , the method can include the following steps.
[0067] S201: The terminal obtains a network request sent by a target application program, wherein the network request carries a destination IP of a to-be-accessed server.
[0068] In the embodiments of the present application, the target application program is an application program running on the terminal that has a data transmission acceleration requirement, which can include but is not limited to a specified game client, a multimedia client, or an instant messaging client, etc. The destination IP is the IP address of the to-be-accessed server. The target application program sends a network request to the to-be-accessed server to obtain corresponding network data, such as game resources or multimedia resources, etc. from the to-be-accessed server. Specifically, the terminal can run an acceleration application program, such as an accelerator, to obtain the network request of the target application program and perform data transmission acceleration processing on the network request. Specifically, the network request can be, for example, an HTTP request, which can be transmitted based on a TCP protocol or a UDP protocol, etc.
[0069] In actual application, before S201, the target application program needs to be registered with information, and correspondingly, the method can further include steps S301-S303.
[0070] S301: The terminal acquires running configuration information of the target application program, wherein the running configuration information includes program process identification information of the target application program.
[0071] S303: The terminal registers the running configuration information.
[0072] In specific embodiments, the program process identification information can include program process name or program process ID of the target application program, such as process name of a starting process. By registering the program process identification information and other running configuration information, process monitoring of the target application program is realized, so as to realize interception of corresponding network requests. Correspondingly, S201 specifically includes: the terminal responds to starting of the target application program, and intercepts network requests sent by a corresponding program process based on the program process identification information.
[0073] Specifically, the running configuration information can further include background service configuration information and operation configuration information, such as zone service information of a game application. In the case of data transmission acceleration processing by the acceleration application program, the acceleration application program acquires running configuration information of the target application program in response to an acceleration instruction for the target application program, registers the running configuration information in a corresponding acceleration module, and writes the running configuration information into shared memory. In response to starting of the target application program, the acceleration module injects a program process, acquires a network request, and obtains a destination IP.
[0074] S203: The terminal sends a link information query request carrying the destination IP to an acceleration server.
[0075] In the embodiments of the application, the terminal generates a link information query request carrying the destination IP, and sends the link information query request to the acceleration server. Specifically, the link information query request can be generated and sent by the acceleration application program, and the acceleration server can be a background server of the acceleration application program.
[0076] S205: The acceleration server determines acceleration link information corresponding to the destination IP based on a preset correspondence relationship among the destination IP, an acceleration access point, an acceleration node, and a convergence node.
[0077] In the embodiments of the present application, the acceleration link information includes node information of a target convergence node corresponding to the destination IP, at least two target acceleration access points, and at least two target acceleration nodes, the target acceleration access points correspond to the target acceleration nodes one by one. The target acceleration access point is the starting point of the acceleration link, the physical distance between the target acceleration access point and the local proxy of the terminal or the target application program is smaller than the physical distance between the target acceleration node and the local proxy of the terminal or the target application program; the target acceleration node is deployed in an area near the to-be-accessed server, and the physical distance between the target acceleration node and the to-be-accessed server is smaller than the physical distance between the target acceleration access point and the to-be-accessed server; and the target convergence node is the last hop server through which each acceleration link is sent to the to-be-accessed server.
[0078] In actual application, the acceleration server pre-sets the correspondence between the acceleration access point, the convergence node and the destination IP, and the correspondence between the convergence node and the acceleration node, for example, pre-stores the acceleration access point IP, the convergence node IP and the destination IP in association, and stores the convergence node IP and the acceleration node IP in association. Specifically, one destination IP can be associated with multiple acceleration access points and at least one convergence node, and a single convergence node is associated with multiple acceleration nodes. Specifically, the above-mentioned associated storage can be realized by a node list. Correspondingly, please refer to Figure 3 S205 can include the following steps S2051-S2055.
[0079] S2051: The acceleration server determines, based on the pre-set correspondence between the destination IP, the acceleration access point and the convergence node, multiple to-be-selected acceleration access points corresponding to the destination IP and at least one to-be-selected convergence node.
[0080] S2052: The acceleration server determines, based on the pre-set correspondence between the convergence node and the acceleration node, the to-be-selected acceleration nodes corresponding to each of the to-be-selected convergence nodes.
[0081] S2053: The acceleration server obtains link quality data of multiple to-be-selected communication links including the to-be-selected acceleration access points, the to-be-selected acceleration nodes and the to-be-selected convergence nodes.
[0082] Specifically, the acceleration server determines the acceleration access point associated with the destination IP as a candidate acceleration access point and determines at least one aggregation node associated with the destination IP as a candidate aggregation node based on the preset correspondence. Further, the acceleration server determines a plurality of acceleration nodes associated with each candidate aggregation node as candidate acceleration nodes based on the preset correspondence between the aggregation nodes and the acceleration nodes. The acceleration server determines a plurality of communication links based on the candidate acceleration access point, the candidate acceleration nodes, and the candidate aggregation nodes. The data transmission order in a single communication link is the candidate acceleration access point, the candidate acceleration nodes, and the candidate aggregation node in sequence, and the candidate aggregation node forwards data to the accessed server. Then, the acceleration server obtains link quality data of each communication link, which represents the communication quality of the communication link and can include but is not limited to delay value, packet loss rate, network operator type, and node location. It can be understood that the candidate acceleration access point and the candidate acceleration node can include intermediate nodes. Accordingly, S2053 can include the following steps S20531-S20534.
[0083] S20531: The acceleration server generates a plurality of link quality test requests corresponding to the respective candidate communication links based on the target IP.
[0084] S20532: The acceleration server sends the link quality test requests of each candidate communication link to the accessed server via the corresponding communication link through each candidate acceleration access point.
[0085] S20533: The acceleration server receives test response information sent by the accessed server in response to the link quality test requests of each candidate communication link via each communication link.
[0086] S20534: The acceleration server generates link quality data of each candidate communication link according to the test response information.
[0087] Specifically, after determining the plurality of candidate communication links, the acceleration server sends a link quality test request to the to-be-accessed server through each candidate communication link, so that the to-be-accessed server feeds back test response information via the communication link corresponding to the link quality test request, and then determines the link quality data of each candidate communication link. Specifically, the link quality test request can include test instructions for different types of link quality data. For example, the operator type and node location detection can be performed based on the curl command to obtain the network operator type and node geographic location of the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node, and the delay value and packet loss rate test can be performed based on the ping command. For example, the ping IP method is adopted, a data packet is sent to the to-be-accessed server through each communication link, so that the to-be-accessed server feeds back a corresponding response data packet, the communication time of sending and feedback is calculated to calculate the delay value of the communication link, and the packet loss rate is determined according to the difference between the number of sent data packets and the number of received response data packets.
[0088] In some cases, the correspondence between the acceleration access point and the acceleration node can also be preset, and then the communication link is determined. In other cases, after the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node are determined, the data transmission order and the correspondence between the acceleration node and the aggregation node can be used to arrange and combine them to obtain a plurality of candidate communication links, so as to respectively perform link quality detection. In other cases, in order to avoid too many candidate communication links causing too long quality detection delay, before S2053, the method can further include the following communication link determination steps S401-S403.
[0089] S401: The acceleration server obtains the access point location of the candidate acceleration access point and the acceleration node location of the candidate acceleration node.
[0090] S403: The acceleration server performs link matching on the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node according to the access point location, the acceleration node location and the preset correspondence between the aggregation node and the acceleration node, to obtain a plurality of candidate communication links.
[0091] Specifically, the acceleration server can pre-store the access point location, the acceleration node location and the aggregation node location. For each candidate aggregation node corresponding to a destination IP, the physical distance between each candidate acceleration access point and each candidate acceleration node is determined according to the access point location and the acceleration node location, for each candidate acceleration access point, the candidate acceleration nodes are sorted based on the physical distance, and a specified number of candidate acceleration nodes with the shortest physical distance are determined as the acceleration nodes matched with the candidate acceleration access point, and then a specified number of candidate communication links of each candidate acceleration access point for the candidate aggregation node are obtained, and then the candidate communication links corresponding to each candidate aggregation node are obtained respectively.
[0092] For example, the candidate acceleration access points corresponding to the destination IP include access point 1, access point 2, access point 3 and access point 4, and one candidate aggregation node M, i.e., the target aggregation node M, the corresponding candidate acceleration nodes of which include acceleration node a, acceleration node b, acceleration node c, acceleration node d and acceleration node e, and the specified number is 2. The physical distance sorting is performed on each candidate acceleration access point and each candidate acceleration node, and it is determined that the closest to the access point 1 are the acceleration node a and the acceleration node c, the closest to the access point 2 are the acceleration node a and the acceleration node d, the closest to the access point 3 are the acceleration node b and the acceleration node c, and the closest to the access point 4 are the acceleration node d and the acceleration node e, which are represented by labels. The communication link corresponding to the candidate aggregation node M can be represented as: {1-a-M, 1-c-M, 2-a-M, 2-d-M, 3-b-M, 3-c-M, 4-d-M, 4-e-M}.
[0093] S2054: The acceleration server screens the plurality of candidate communication links according to the link quality data to obtain at least two target acceleration links, wherein the at least two target acceleration links correspond to the same candidate aggregation node.
[0094] S2055: The acceleration server generates the acceleration link information corresponding to the destination IP according to the candidate acceleration access points, the candidate acceleration nodes and the candidate aggregation nodes in the at least two target acceleration links, and determines the candidate acceleration access points, the candidate acceleration nodes and the candidate aggregation nodes in the at least two target acceleration links as the target acceleration access points, the target acceleration nodes and the target aggregation nodes corresponding to the destination IP.
[0095] Specifically, after obtaining the link quality data of each candidate communication link, the link quality statistical result is generated. For example, the delay value and the packet loss rate can be normalized respectively to obtain the delay reference value and the packet loss reference value, and the delay reference value and the packet loss reference value are weighted and summed to obtain the link quality statistical result.
[0096] In the case where there is one candidate aggregation node, the quality sorting is performed on the plurality of candidate communication links according to the link quality statistical result, and the preset number of candidate communication links with the optimal link quality, the candidate acceleration access points of which are different from each other and the candidate acceleration nodes of which are different from each other are determined as the target acceleration links.
[0097] In the case of multiple candidate aggregation nodes, the multiple candidate communication links are sorted as a whole, and the target aggregation node is determined based on the sorting result. For example, the first n candidate communication links with the best link quality are determined, and the candidate aggregation node corresponding to the most links among the n candidate communication links is determined as the target aggregation node. n can be greater than or equal to 1. Then, a preset number of candidate communication links with the best link quality are determined from the candidate communication links corresponding to the target aggregation node, which are used as target acceleration links. The acceleration access points in different target acceleration links are different from each other, and the acceleration nodes are different from each other. The preset number is greater than or equal to 2.
[0098] Based on the foregoing example, the communication links corresponding to the candidate aggregation node M can be represented as: {1-a-M, 1-c-M, 2-a-M, 2-d-M, 3-b-M, 3-c-M, 4-d-M, 4-e-M}, and the preset number is 3. The three target acceleration links with the best link quality determined based on the link quality statistical result are {1-a-M, 2-d-M, 3-c-M}. Correspondingly, please refer to Figure 5 , the target acceleration access point 1 sends the redirection request to the target aggregation node M through the target acceleration node a, the target acceleration access point 2 sends the redirection request to the target aggregation node M through the target acceleration node d, and the target acceleration access point 3 sends the redirection request to the target aggregation node M through the target acceleration node c, so that the target aggregation node M de-duplicates and recombines the request data and sends it to the to-be-accessed server.
[0099] S207: The acceleration server sends the acceleration link information corresponding to the destination IP to the terminal.
[0100] In the embodiment of the application, the acceleration server generates the corresponding acceleration link information after determining the target acceleration links, the target acceleration access points, the target acceleration nodes and the target aggregation nodes, and sends it to the terminal.
[0101] S209: The terminal redirects the network request according to the node information of the at least two target acceleration nodes and the target aggregation node, and obtains the redirection request corresponding to each target acceleration access point, wherein the redirection request carries the request data packet of the network request.
[0102] In the embodiment of the application, the terminal redirects the network request of the target application after receiving the acceleration link information, so as to perform data transmission with the to-be-accessed server through the specified acceleration link. Correspondingly, S209 can include the following steps S2091-S2094.
[0103] S2091: The terminal obtains the request data packet of the network request.
[0104] S2092: The terminal performs header encapsulation processing on the request data packet based on the node information of each target acceleration node, respectively, to obtain initial encapsulation data packets each corresponding to the target acceleration access point and carrying an acceleration node header.
[0105] S2093: The terminal performs encapsulation processing on each initial encapsulation data packet again based on the node information of the target aggregation node, respectively, to obtain target encapsulation data packets each corresponding to the initial encapsulation data packet and carrying an aggregation node header.
[0106] S2094: The terminal generates a redirection request corresponding to each target acceleration access point according to each target encapsulation data packet.
[0107] Specifically, the node information can include the node IP, node port (port), and global unique identifier (GUID) of the node, etc. The terminal obtains a raw request data packet of a network request, which can be a TCP data packet or a UDP data packet. For each target acceleration link, the request data packet is encapsulated according to the node information of the target acceleration node, and the generated acceleration node header can include the IP, port, and GUID of the target acceleration node, as well as the packet sequence number (seq) and destination IP, etc., to obtain an initial encapsulation data packet of each target acceleration link. Then, each initial encapsulation data packet is encapsulated with an upper layer aggregation node header, which includes the IP and port of the target aggregation node, etc., to obtain a target encapsulation data packet. Finally, each target encapsulation data packet is encapsulated according to the application layer protocol to obtain a redirection request corresponding to each target acceleration access point, i.e., a redirection request of each target acceleration link.
[0108] S211: The terminal sends each redirection request to the corresponding target acceleration access point, so that the target acceleration access point sends the request data packet to the to-be-accessed service server through the target acceleration link where the target acceleration access point is located.
[0109] In the embodiments of the present application, the terminal sends redirection requests to multiple target acceleration access points simultaneously, and the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation node through the corresponding target acceleration node, and to instruct the target aggregation node to send the received request data packet to the to-be-accessed service server.
[0110] Specifically, the target aggregation node receives the redirection requests carrying the request data packets sent by the target acceleration nodes, parses the redirection requests, performs deduplication processing and packet recombination on the request data packets carried by the redirection requests based on information such as the packet sequence number, obtains recombined data packets, and sends a redirection request corresponding to the recombined data packets to the to-be-accessed server, so that the to-be-accessed server feeds back response information carrying corresponding response data packets, and the target aggregation node feeds back the response information to the terminal through each target acceleration link. At the same time, when parsing each redirection request, the target aggregation node saves the node connection information of each target acceleration link, such as saving the connection information by using a conn structure, and the connection information includes node information of the target acceleration access point, the target acceleration node and the to-be-accessed server.
[0111] In the embodiments of the present application, the to-be-accessed server feeds back response information carrying response data packets in response to the redirection request sent by the target aggregation node, the target aggregation node parses the response information to obtain the response data packets, and for each target communication link, the target aggregation node first encapsulates the response data packets based on the node information (destination IP and destination port, etc.) of the to-be-accessed server and the node information of the target aggregation node based on the saved node connection information of the target communication link, obtains an initial encapsulated response packet carrying an aggregation node packet header, and sends it to the target acceleration node; the target acceleration node encapsulates the initial encapsulated response packet based on its node information to obtain a response data packet carrying an acceleration node packet header, and sends it to the target acceleration access point and then to the terminal, specifically, to the target application. Correspondingly, please refer to Figure 4 , the method further comprises the following steps.
[0112] S213: The terminal receives at least two response data packets sent by the to-be-accessed server in response to the redirection requests via the target aggregation node, the target acceleration nodes and the target acceleration access points respectively.
[0113] S215: The terminal respectively unpacks each response data packet based on the node information of the target acceleration node and the target aggregation node to obtain a respective unpacked data packet corresponding to each response data packet;
[0114] S217: The terminal performs data deduplication processing on each unpacked data packet to obtain a target data packet corresponding to the network request.
[0115] In actual application, after the terminal receives the response data packets sent by the to-be-accessed server and the target aggregation node via the target acceleration links, it unpacks the response data packets, removes the acceleration node packet header and the aggregation node packet header in sequence to obtain unpacked data packets, and performs deduplication and recombination on the unpacked data packets of each target acceleration link (target acceleration access point) based on information such as the packet sequence number to obtain the target data requested by the terminal.
[0116] In some cases, data reorganization can be performed by a local proxy server of the target application. Specifically, the terminal sends the de-duplicated data to the local proxy server, the local proxy server reorganizes the data based on the packet sequence number and other information to obtain the target data, and sends the target data to the terminal.
[0117] In summary, according to the target IP to be accessed, the data acceleration link is dynamically selected, the target application traffic is forwarded to the to-be-accessed server through the optimal path, and the feedback data is obtained, so as to realize adaptive dynamic allocation of data transmission, reduce transmission delay, and significantly improve the overall data transmission efficiency. Moreover, based on the multiple acceleration access points and the corresponding multiple acceleration links for data transmission, the packet loss rate is effectively reduced, and the data transmission quality is improved.
[0118] The following introduces a data transmission method of the application in combination with an application scenario. The target application is a game client, the terminal runs an accelerator client, the acceleration server is a game acceleration background corresponding to the accelerator client, the to-be-accessed server is a game server, and the data transmission server deploys acceleration access points, S5 acceleration nodes, and aggregation nodes. Correspondingly, please refer to Figure 6 , the specific process of the dynamic acceleration processing method is as follows.
[0119] S11: In response to the acceleration instruction corresponding to the game client submitted by the accelerator client, the accelerator client obtains the running configuration information of the game client, including the process name information of the game process, the zone server information, and the operation configuration information.
[0120] S12: The accelerator client performs information registration of the running configuration information in the acceleration module, and writes the running configuration information into the shared memory.
[0121] S13: In response to the start of the game client, the accelerator client injects the acceleration module into the game process.
[0122] S14: The acceleration module intercepts the destination IP to be accessed by the network request sent by the game client, and sends the destination IP to the accelerator client; wherein the destination IP is the IP of the game server.
[0123] S15: The accelerator client sends a link information query request carrying the destination IP to the game acceleration background.
[0124] S16: The game acceleration background determines the acceleration link information according to the terminal position and the destination IP, including the node information of m target acceleration access points, m target acceleration nodes, and a target aggregation node, m is greater than or equal to 2, corresponding to m target acceleration links. The target acceleration access point corresponds to the target acceleration node one by one.
[0125] S17: The game acceleration background sends the acceleration link information to the accelerator client.
[0126] S18: The accelerator client sends the acceleration link information to the game client.
[0127] S19: The game client establishes a connection with each target acceleration access point to send traffic to the corresponding target acceleration node through the m target acceleration access points in the acceleration link information, and ultimately forward to the game server via the target aggregation node.
[0128] Further, please refer to Figure 7 , first, based on the foregoing steps S11-S19, the initialization process is performed to obtain the running configuration information, and m target acceleration access points, m target acceleration nodes and a target aggregation node are allocated. Then the uplink packet processing and downlink packet processing are performed. The specific process of the uplink packet processing is as follows.
[0129] S21: The acceleration client intercepts the udp packet of the game network request. Specifically, the raw data of the udp packet that needs to be accelerated. The udp packet can be obtained through the local proxy.
[0130] S22: The acceleration client adds a multi-packet header on the udp packet, including guid, seq, source IP / port and destination IP / port, etc.
[0131] S23: The acceleration client encapsulates a layer of s5 packet header on the obtained udp packet, specifically including the IP and port of the target S5 acceleration node, etc.
[0132] S24: The acceleration client encapsulates a layer of aggregation node packet header on the obtained udp packet, including the IP and port of the target aggregation node, etc.
[0133] S25: The acceleration client sends the encapsulated udp packet carrying the aggregation packet header to each target acceleration access point.
[0134] S26: Each target acceleration access point sends the udp packet to the target aggregation node via the target S5 acceleration node. That is, it is sent to the target aggregation node through each target acceleration link.
[0135] S27: The target aggregation node removes the duplicate udp data packet according to the seq, and forwards it to the game server.
[0136] S28: At the same time, the target aggregation node saves the information of each connection with the conn structure.
[0137] Further, the specific process of the downlink packet processing is as follows.
[0138] S29: The aggregation node receives the downlink packet sent by the game server.
[0139] S30: The aggregation node groups the packet according to the game server IP, port, and seq information saved in the conn structure.
[0140] S31: The aggregation node sends the grouped packet to multiple target s5 acceleration nodes according to the acceleration node address corresponding to each connection.
[0141] S32: The target s5 acceleration node receives the downlink packet.
[0142] S33: The target s5 acceleration node groups the downlink packet and encapsulates the s5 packet header.
[0143] S34: Each target s5 acceleration node sends the grouped downlink packet to the game client through the corresponding target acceleration access point.
[0144] S35: The game client unpacks each received downlink packet and removes the s5 packet header.
[0145] S36: The game client further unpacks, removes the aggregation node packet header, and performs deduplication processing on the downlink packet data.
[0146] S37: The deduplicated data is sent to the game client. Specifically, the deduplicated data can be sent to a local proxy, which forwards the deduplicated data to the game client.
[0147] The following describes a data transmission method according to an embodiment of the present application, which is applied to a terminal. Please refer to Figure 8 , Figure 8 is a flowchart of a data transmission method according to an embodiment of the present application, as shown in Figure 8 , the method can include the following steps.
[0148] S501: Obtain a network request sent by a target application program, wherein the network request carries a destination IP of a service to be accessed.
[0149] S503: Send a link information query request carrying the destination IP to an acceleration service.
[0150] S505: Receive acceleration link information corresponding to the destination IP sent by the acceleration service, wherein the acceleration link information is determined by the acceleration service based on a preset correspondence relationship among the destination IP, acceleration access points, acceleration nodes, and aggregation nodes, and includes node information of a target aggregation node corresponding to the destination IP, at least two target acceleration access points, and at least two target acceleration nodes, the target acceleration access points and the target acceleration nodes corresponding one by one.
[0151] S507: Redirection processing is performed on the network request according to the node information of the at least two target acceleration nodes and the target aggregation node, to obtain a respective redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request.
[0152] S509: The respective redirection requests are respectively sent to the corresponding target acceleration access points, wherein the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation node via the corresponding target acceleration node, and is used to instruct the target aggregation node to send the received request data packet to the to-be-accessed service end.
[0153] In some embodiments, before S501, the method further includes the following steps.
[0154] S601: Obtain running configuration information of the target application program, wherein the running configuration information includes program process identification information of the target application program.
[0155] S603: Information registration is performed on the running configuration information.
[0156] S501 includes: in response to the start of the target application program, intercepting a network request sent by a corresponding program process based on the program process identification information.
[0157] In some embodiments, S507 includes the following steps.
[0158] S5071: Obtain a request data packet of the network request.
[0159] S5072: Respectively perform header encapsulation processing on the request data packet based on the node information of each target acceleration node, to obtain an initial encapsulation data packet carrying an acceleration node header corresponding to each target acceleration access point.
[0160] S5073: Respectively perform encapsulation processing on each initial encapsulation data packet based on the node information of the target aggregation node, to obtain a target encapsulation data packet carrying an aggregation node header corresponding to each initial encapsulation data packet.
[0161] S5074: According to each target encapsulation data packet, respectively generate a redirection request corresponding to each target acceleration access point.
[0162] In some embodiments, the method further includes the following steps.
[0163] S511: Receive at least two response data packets sent by the to-be-accessed service end in response to the respective redirection requests via the target aggregation node, the target acceleration nodes and the target acceleration access points.
[0164] S513: Based on the node information of the target acceleration node and the target aggregation node, each response data packet is unpacked to obtain a corresponding unpacked data packet of each response data packet.
[0165] S515: The data deduplication processing is performed on each unpacked data packet to obtain a target data packet corresponding to the network request.
[0166] The following introduces a data transmission method of the application, which is applied to an acceleration server. Please refer to Figure 9 , Figure 9 is a flowchart of a data transmission method provided by an embodiment of the application, as shown in Figure 8 , the method can include the following steps.
[0167] S701: receiving a destination IP sent by a terminal, wherein the destination IP is carried by a network request sent by a target application program in the terminal to a to-be-accessed server.
[0168] S703: determining acceleration link information corresponding to the destination IP based on a preset correspondence relationship between the destination IP, an acceleration access point, an acceleration node, and an aggregation node.
[0169] S705: sending the acceleration link information corresponding to the destination IP to the terminal, wherein the acceleration link information includes node information of at least two target acceleration nodes, a target aggregation node, and at least two target acceleration access points, and the target acceleration access point corresponds to the target acceleration node one by one.
[0170] wherein the node information of the at least two target acceleration nodes and the target aggregation node and an instruction for indicating the terminal to perform redirection processing on the network request to obtain a redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request.
[0171] In some embodiments, S703 includes the following steps.
[0172] S7031: determining a plurality of candidate acceleration access points and at least one candidate aggregation node corresponding to the destination IP based on a preset correspondence relationship between the destination IP, an acceleration access point, and an aggregation node.
[0173] S7032: determining a candidate acceleration node corresponding to each candidate aggregation node based on a preset correspondence relationship between the aggregation node and the acceleration node.
[0174] S7033: obtaining link quality data of a plurality of candidate communication links including the candidate acceleration access point, the candidate acceleration node, and the candidate aggregation node.
[0175] S7034: screening the plurality of candidate communication links according to the link quality data to obtain at least two target acceleration links, wherein the at least two target acceleration links correspond to a same candidate aggregation node.
[0176] S7035: generating, according to the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node in the at least two target acceleration links, the acceleration link information corresponding to the destination IP, and determining the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node in the at least two target acceleration links as the target acceleration access point, the target acceleration node and the target aggregation node corresponding to the destination IP.
[0177] In some embodiments, S7033 includes the following steps.
[0178] S70331: generating, based on the target IP, a link quality test request corresponding to each of the plurality of candidate communication links respectively.
[0179] S70332: sending, by each candidate acceleration access point, the link quality test request to the to-be-accessed service end via the corresponding communication link respectively.
[0180] S70333: receiving test response information sent by the to-be-accessed service end in response to the link quality test request via each communication link respectively.
[0181] S70334: generating, according to the test response information, the link quality data of each communication link.
[0182] In some embodiments, before S7033, the method further includes the following steps.
[0183] S801: obtaining the access point position of the candidate acceleration access point and the acceleration node position of the candidate acceleration node.
[0184] S803: performing link matching on the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node according to the access point position, the acceleration node position and a preset correspondence relationship between the aggregation node and the acceleration node to obtain the plurality of candidate communication links.
[0185] The embodiments of the present application also provide a data transmission device 10 applied to a terminal, as shown in the figure. Figure 10 As shown in the figure, Figure 10 The figure shows the structure of a data transmission device provided by the embodiments of the present application. The device can include the following modules.
[0186] The network request obtaining module 11 is configured to obtain the network request sent by the target application program, wherein the network request carries the destination IP of the to-be-accessed service end.
[0187] The destination IP sending module 12 is configured to send a link information query request carrying a destination IP to the acceleration service end.
[0188] The acceleration link information receiving module 13 is configured to receive the acceleration link information corresponding to the destination IP sent by the acceleration service end, wherein the acceleration link information is determined by the acceleration service end based on a preset correspondence relationship among the destination IP, the acceleration access point, the acceleration node and the aggregation node, and includes node information of a target aggregation node corresponding to the destination IP, at least two target acceleration access points and at least two target acceleration nodes, and the target acceleration access point and the target acceleration node are in one-to-one correspondence.
[0189] The redirection processing module 14 is configured to perform redirection processing on the network request according to the node information of the at least two target acceleration nodes and the target aggregation node, to obtain a respective redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request.
[0190] The redirection request sending module 15 is configured to send each redirection request to the corresponding target acceleration access point, wherein the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation node via the corresponding target acceleration node, and to instruct the target aggregation node to send the received request data packet to the to-be-accessed service end.
[0191] In some embodiments, the apparatus can further include the following modules.
[0192] The running configuration information obtaining module is configured to obtain running configuration information of the target application program before obtaining the network request sent by the target application program, wherein the running configuration information includes program process identification information of the target application program.
[0193] The information registration module is configured to perform information registration on the running configuration information.
[0194] The network request obtaining module 11 is specifically configured to intercept a network request sent by a corresponding program process based on the program process identification information in response to the start of the target application program.
[0195] In some embodiments, the redirection processing module 14 can include the following units.
[0196] The request data packet obtaining unit is configured to obtain a request data packet of the network request.
[0197] The first encapsulation unit is configured to perform header encapsulation processing on the request data packet based on the node information of each target acceleration node, to obtain an initial encapsulation data packet carrying an acceleration node header corresponding to each target acceleration access point.
[0198] The second encapsulation unit is used to encapsulate each initial encapsulation data packet based on the node information of the target aggregation node, so as to obtain the target encapsulation data packet carrying the aggregation node header corresponding to each initial encapsulation data packet.
[0199] Redirect Request Generation Unit: Used to generate redirect requests corresponding to each target acceleration access point based on the data packets encapsulated for each target.
[0200] In some embodiments, the apparatus may further include the following modules.
[0201] Response data packet receiving module: Used to receive at least two response data packets sent by the server to be accessed in response to each redirection request via the target aggregation node, each target acceleration node and each target acceleration access point.
[0202] Unpacking module: Based on the node information of the target acceleration node and the target aggregation node, it unpacks each response data packet to obtain the corresponding unpacked data packet for each response data packet.
[0203] Deduplication module: Used to perform deduplication on each desealable data packet to obtain the target data packet corresponding to the network request.
[0204] This application also provides a data transmission device 20, which is used to accelerate a server, such as... Figure 11 As shown, Figure 11 The diagram shows a structural schematic of a data transmission device provided in an embodiment of this application. The device may include the following modules.
[0205] Destination IP receiving module 21: Used to receive the destination IP sent by the terminal, wherein the destination IP is carried by the network request sent by the target application in the terminal for the server to be accessed.
[0206] Accelerated Link Information Determination Module 22: Used to determine the accelerated link information corresponding to the destination IP based on the preset correspondence between the destination IP, accelerated access point, accelerated node and aggregation node.
[0207] Accelerated link information sending module 23: used to send the accelerated link information corresponding to the destination IP to the terminal. The accelerated link information includes the target aggregation node corresponding to the destination IP, at least two target accelerated access points, and node information of at least two target accelerated nodes. The target accelerated access points and target accelerated nodes correspond one-to-one.
[0208] Among them, there are node information of at least two target acceleration nodes and target aggregation nodes, and information used to instruct the terminal to perform redirection processing on network requests in order to obtain the corresponding redirection requests for each target acceleration access point, wherein the redirection requests carry request data packets of network requests.
[0209] In some embodiments, the acceleration link information determination module 22 can include the following units.
[0210] A first node determination unit is configured to determine a plurality of candidate acceleration access points and at least one candidate aggregation node corresponding to the destination IP based on a preset correspondence relationship between the destination IP, the acceleration access points and the aggregation nodes.
[0211] A second node determination unit is configured to determine a candidate acceleration node corresponding to each of the candidate aggregation nodes based on a preset correspondence relationship between the aggregation nodes and the acceleration nodes.
[0212] A link quality acquisition unit is configured to acquire link quality data of a plurality of candidate communication links including the candidate acceleration access points, the candidate acceleration nodes and the candidate aggregation nodes.
[0213] A communication link screening unit is configured to screen the plurality of candidate communication links based on the link quality data to obtain at least two target acceleration links, wherein the at least two target acceleration links correspond to the same candidate aggregation node.
[0214] An acceleration link information generation unit is configured to generate the acceleration link information corresponding to the destination IP based on the candidate acceleration access points, the candidate acceleration nodes and the candidate aggregation nodes in the at least two target acceleration links, and determine the candidate acceleration access points, the candidate acceleration nodes and the candidate aggregation nodes in the at least two target acceleration links as the target acceleration access points, the target acceleration nodes and the target aggregation node corresponding to the destination IP.
[0215] In some embodiments, the link quality acquisition unit can include the following sub-units.
[0216] A test request generation sub-unit is configured to generate a link quality test request corresponding to each of the plurality of candidate communication links based on the target IP.
[0217] A test request sending sub-unit is configured to send the link quality test request via the corresponding communication link to the to-be-accessed server through each of the candidate acceleration access points.
[0218] A test response information receiving sub-unit is configured to receive test response information sent by the to-be-accessed server via each of the communication links in response to the link quality test request.
[0219] A link quality data generation sub-unit is configured to generate the link quality data of each of the communication links based on the test response information.
[0220] In some embodiments, the device can further include the following modules.
[0221] The node position obtaining module is configured to obtain the access point position of the candidate acceleration access point and the acceleration node position of the candidate acceleration node before obtaining the link quality data of the plurality of candidate communication links including the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node.
[0222] The link matching module is configured to perform link matching on the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node according to the access point position, the acceleration node position and the preset correspondence relationship between the aggregation node and the acceleration node, to obtain the plurality of candidate communication links.
[0223] It should be noted that the device embodiment and the method embodiment are based on the same implementation.
[0224] The data transmission device provided in the embodiment of the present application can be a terminal or a server, and the data transmission device comprises a processor and a memory, the memory stores at least one instruction or at least one program, the at least one instruction or the at least one program is loaded and executed by the processor to implement the data transmission method provided in the above method embodiment.
[0225] The memory can be used to store software programs and modules, and the processor can execute various function applications and data transmission by running the software programs and modules stored in the memory. The memory can mainly include a program storage area and a data storage area, wherein the program storage area can store an operating system, application programs required by functions, etc.; the data storage area can store data created according to the use of the device, etc. In addition, the memory can include a high-speed random access memory, and can also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device or other volatile solid-state memory device. Accordingly, the memory can also include a memory controller to provide access of the processor to the memory.
[0226] The method embodiment provided in the embodiment of the present application can be executed in a mobile terminal, a computer terminal, a server or similar computing device and other electronic devices. Figure 12 is a hardware structure block diagram of an electronic device provided by the data transmission method in the embodiment of the present application. As shown in Figure 12As shown, the electronic device 900 can vary greatly in configuration and performance, and can include one or more Central Processing Units (CPU) 910 (processor 910 can include, but is not limited to, a microprocessor, a programmable logic device, a microcontroller, or the like), a memory 930 for storing data, one or more storage media 920 (e.g., one or more mass storage devices) for storing applications 923 or data 922. The memory 930 and the storage media 920 can be of the volatile or persistent storage type. The programs stored in the storage media 920 can include one or more modules, each of which can include a series of instructions for operating on the electronic device. Further, the CPU 910 can be configured to communicate with the storage media 920 to execute a series of instructions on the electronic device 900 stored in the storage media 920. The electronic device 900 can also include one or more power supplies 960, one or more wired or wireless network interfaces 950, one or more input / output interfaces 940, and / or one or more operating systems 921, such as Windows Server TM , Mac OS X TM , Unix TM , Linux™, FreeBSD™, and the like.
[0227] The input / output interface 940 can be configured to receive or transmit data via a network. Examples of the network can include a wireless network provided by a communication provider of the electronic device 900. In one example, the input / output interface 940 includes a network interface controller (NIC) that can be connected to other network devices through a base station to communicate with the Internet. In one example, the input / output interface 940 can be a radio frequency (RF) module configured to communicate with the Internet through a wireless manner.
[0228] Those of ordinary skill in the art will understand, Figure 12 that the structure shown is merely illustrative and does not limit the structure of the electronic device described above. For example, the electronic device 900 can include more or fewer components than those shown in Figure 12 or have a different configuration than that shown in Figure 12 .
[0229] The embodiment of the present application further provides a computer readable storage medium, which can be arranged in an electronic device to store at least one instruction or at least one program for implementing a data transmission method in the method embodiment, and the at least one instruction or the at least one program is loaded and executed by the processor to implement the data transmission method provided in the above method embodiment.
[0230] Optionally, in the embodiment, the storage medium can be located in at least one of a plurality of network servers of a computer network. Optionally, in the embodiment, the storage medium can include but is not limited to a U disk, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and various media capable of storing program codes.
[0231] According to an aspect of the present application, a computer program product or computer program is provided, which includes computer instructions stored in a computer readable storage medium. A processor of a computer device reads the computer instructions from the computer readable storage medium, and the processor executes the computer instructions, so that the computer device executes the method provided in the various optional implementation manners.
[0232] According to the data transmission method, device, equipment, server, terminal, storage medium and program product provided in the embodiments of the present application, the network request sent by the target application program is acquired, wherein the network request carries a destination IP of a service end to be accessed; a link information query request carrying the destination IP is sent to an acceleration service end; the acceleration link information corresponding to the destination IP sent by the acceleration service end is received, wherein the acceleration link information is determined by the acceleration service end based on a preset correspondence relationship among the destination IP, an acceleration access point, an acceleration node and a convergence node, and includes node information of a target convergence node corresponding to the destination IP, at least two target acceleration access points and at least two target acceleration nodes, and the target acceleration access point corresponds to the target acceleration node in one-to-one correspondence; the network request is redirected according to the node information of the at least two target acceleration nodes and the target convergence node, to obtain a redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request; and then, each redirection request is sent to the corresponding target acceleration access point, wherein the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target convergence node via the corresponding target acceleration node, and to instruct the target convergence node to send the received request data packet to the service end to be accessed. Based on the above scheme, the data acceleration link is dynamically selected according to the destination IP to be accessed, the target application program flow is forwarded to the service end to be accessed through an optimal path, and feedback data is acquired, so that adaptive dynamic allocation of data transmission is realized, transmission delay is reduced, and global data transmission efficiency is significantly improved. Moreover, data transmission is performed based on the multiple acceleration access points and the multiple acceleration links corresponding thereto, so that the packet loss rate is effectively reduced and the data transmission quality is improved.
[0233] It should be noted that the above-mentioned embodiments of the present application are only for description, and do not represent the advantages and disadvantages of the embodiments. The above-mentioned embodiments of the present application are described. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multi-task processing and parallel processing are possible or can be advantageous.
[0234] Each embodiment in the present application is described in a progressive manner, and the same or similar parts between each embodiment can be referred to each other. Each embodiment focuses on the difference from other embodiments. In particular, for the device, equipment and storage medium embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the part of the method embodiment.
[0235] Those skilled in the art can understand that all or part of the steps of the above-mentioned embodiments can be completed by hardware, or a program instructing relevant hardware to complete, and the program can be stored in a computer readable storage medium. The storage medium mentioned above can be a read-only memory, a magnetic disk or an optical disk, etc.
[0236] The above is only the preferred embodiment of the present application, and is not used to limit the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A data transmission method applied to a terminal, characterized in that, The method comprises: obtaining a network request sent by a target application, wherein the network request carries a destination IP of a service server to be accessed; sending a link information query request carrying the destination IP to an acceleration service server; receiving acceleration link information corresponding to the destination IP sent by the acceleration service server, wherein the acceleration link information is determined by the acceleration service server based on a preset correspondence relationship among the destination IP, acceleration access points, acceleration nodes and aggregation nodes, and comprises node information of a target aggregation node corresponding to the destination IP, at least two target acceleration access points and at least two target acceleration nodes, the target acceleration access points correspond to the target acceleration nodes one by one, the target aggregation node, the at least two target acceleration access points and the at least two target acceleration nodes form at least two target acceleration links, the target acceleration access points in different target acceleration links are different from each other and the target acceleration nodes are different from each other, and each target acceleration link corresponds to the same target aggregation node; performing redirection processing on the network request according to the node information of the at least two target acceleration nodes and the target aggregation node, to obtain a redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request; sending each redirection request to the corresponding target acceleration access point, wherein the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation node via the corresponding target acceleration node, and to instruct the target aggregation node to send the received request data packet to the service server to be accessed.
2. The method of claim 1, wherein, Before the obtaining of the network request sent by the target application, the method further comprises: obtaining running configuration information of the target application, wherein the running configuration information comprises program process identification information of the target application; performing information registration on the running configuration information; the obtaining of the network request sent by the target application comprises: in response to the start of the target application, intercepting a network request sent by a corresponding program process based on the program process identification information.
3. The method of claim 1, wherein, The redirection processing on the network request according to the node information of the at least two target acceleration nodes and the target aggregation node to obtain a redirection request corresponding to each target acceleration access point comprises: obtaining a request data packet of the network request; performing header encapsulation processing on the request data packet based on the node information of each target acceleration node, to obtain an initial encapsulation data packet carrying a header of an acceleration node corresponding to each target acceleration access point; performing encapsulation processing on each initial encapsulation data packet based on the node information of the target aggregation node, to obtain a target encapsulation data packet carrying a header of an aggregation node corresponding to each initial encapsulation data packet; generating a redirection request corresponding to each target acceleration access point based on each target encapsulation data packet.
4. The method of claim 1, wherein, The method further comprises: receiving at least two response data packets sent by the to-be-accessed server in response to the redirection requests via the target aggregation node, the target acceleration nodes and the target acceleration access points respectively; unpacking each response data packet based on the node information of the target acceleration nodes and the target aggregation node to obtain a corresponding unpacked data packet of each response data packet; performing data deduplication processing on each unpacked data packet to obtain a target data packet corresponding to the network request. 5.A data transmission method applied to an acceleration server, and the method comprises the steps of: The method comprises: receiving a destination IP sent by a terminal, wherein the destination IP is carried by a network request sent by a target application program in the terminal to a to-be-accessed server; determining acceleration link information corresponding to the destination IP based on a preset correspondence relationship among the destination IP, acceleration access points, acceleration nodes and aggregation nodes; sending the acceleration link information corresponding to the destination IP to the terminal, wherein the acceleration link information comprises node information of a target aggregation node, at least two target acceleration access points and at least two target acceleration nodes corresponding to the destination IP, the target acceleration access points correspond to the target acceleration nodes one by one, the target aggregation node, the at least two target acceleration access points and the at least two target acceleration nodes form at least two target acceleration links, the target acceleration access points in different target acceleration links are different from each other and the target acceleration nodes in different target acceleration links are different from each other, and each target acceleration link corresponds to the same target aggregation node. The redirection request is used to instruct the corresponding target acceleration access point to send a request data packet to the target aggregation node via the corresponding target acceleration node, and to instruct the target aggregation node to send a received request data packet to the to-be-accessed server.
6. The method of claim 5, wherein, The determination of the acceleration link information corresponding to the destination IP based on the preset correspondence relationship among the destination IP, acceleration access points, acceleration nodes and aggregation nodes comprises: determining a plurality of candidate acceleration access points and at least one candidate aggregation node corresponding to the destination IP based on a preset correspondence relationship among the destination IP, acceleration access points and aggregation nodes; determining candidate acceleration nodes corresponding to each candidate aggregation node based on a preset correspondence relationship among aggregation nodes and acceleration nodes; obtaining link quality data of a plurality of candidate communication links comprising the candidate acceleration access points, candidate acceleration nodes and candidate aggregation nodes; screening the plurality of candidate communication links according to the link quality data to obtain at least two target acceleration links, wherein the at least two target acceleration links correspond to the same candidate aggregation node; generating the acceleration link information corresponding to the destination IP according to the candidate acceleration access points, candidate acceleration nodes and candidate aggregation nodes in the at least two target acceleration links, and determining the candidate acceleration access points, candidate acceleration nodes and candidate aggregation nodes in the at least two target acceleration links as the target acceleration access points, target acceleration nodes and target aggregation node corresponding to the destination IP.
7. The method of claim 6, wherein, The obtaining of the link quality data of the plurality of candidate communication links comprising the candidate acceleration access points, candidate acceleration nodes and candidate aggregation nodes comprises: generate a link quality test request corresponding to each of the plurality of candidate communication links based on the destination IP; send the link quality test request to the to-be-accessed server via the corresponding communication link through each candidate acceleration access point; receive test response information sent by the to-be-accessed server via each communication link in response to the link quality test request; generate link quality data of the plurality of candidate communication links according to the test response information.
8. The method of claim 6, wherein, Before the link quality data of the plurality of candidate communication links including the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node is acquired, the method further comprises: acquire the access point position of the candidate acceleration access point and the acceleration node position of the candidate acceleration node; perform link matching on the candidate acceleration access point, the candidate acceleration node and the candidate aggregation node according to the access point position, the acceleration node position and a preset correspondence relationship between the aggregation node and the acceleration node, to obtain the plurality of candidate communication links.
9. A data transmission apparatus applied to a terminal, characterized in that, The device comprises: a network request acquisition module configured to acquire a network request sent by a target application program, wherein the network request carries a destination IP of a to-be-accessed server; a destination IP sending module configured to send a link information query request carrying the destination IP to an acceleration service server; an acceleration link information receiving module configured to receive acceleration link information corresponding to the destination IP sent by the acceleration service server, wherein the acceleration link information is determined by the acceleration service server based on a preset correspondence relationship among the destination IP, an acceleration access point, an acceleration node and an aggregation node, and includes node information of a target aggregation node corresponding to the destination IP, at least two target acceleration access points and at least two target acceleration nodes, the target acceleration access points correspond to the target acceleration nodes one by one, the target aggregation node, the at least two target acceleration access points and the at least two target acceleration nodes form at least two target acceleration links, the target acceleration access points in different target acceleration links are different from each other and the target acceleration nodes are different from each other, and each target acceleration link corresponds to the same target aggregation node; a redirection processing module configured to perform redirection processing on the network request according to the node information of the at least two target acceleration nodes and the target aggregation node, to obtain a redirection request corresponding to each target acceleration access point, wherein the redirection request carries a request data packet of the network request; a redirection request sending module configured to send each redirection request to the corresponding target acceleration access point, wherein the redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation node via the corresponding target acceleration node, and to instruct the target aggregation node to send the received request data packet to the to-be-accessed server.
10. The apparatus of claim 9, wherein, Before the network request sent by the target application program is acquired, the device further comprises: Obtaining running configuration information of the target application, wherein the running configuration information comprises program process identification information of the target application; Registering the running configuration information; The obtaining of the network request sent by the target application comprises: In response to the starting of the target application, intercepting the network request sent by the corresponding program process based on the program process identification information.
11. The apparatus of claim 9, wherein, The redirection processing of the network request according to the node information of the at least two target acceleration nodes and the target aggregation node comprises: Obtaining a request data packet of the network request; Based on the node information of each target acceleration node, respectively performing header encapsulation processing on the request data packet to obtain an initial encapsulation data packet carrying an acceleration node header corresponding to each target acceleration access point; Based on the node information of the target aggregation node, respectively performing encapsulation processing on each initial encapsulation data packet to obtain a target encapsulation data packet carrying an aggregation node header corresponding to each initial encapsulation data packet; According to each target encapsulation data packet, respectively generating a redirection request corresponding to each target acceleration access point.
12. The apparatus of claim 9, wherein, The apparatus further comprises: Receiving at least two response data packets sent by the target aggregation node, each target acceleration node and each target acceleration access point in response to the redirection request respectively; Based on the node information of the target acceleration node and the target aggregation node, respectively performing unpacking processing on each response data packet to obtain a unpacked data packet corresponding to each response data packet; Performing data deduplication processing on each unpacked data packet to obtain a target data packet corresponding to the network request.
13. A data transmission apparatus applied to an acceleration server, comprising: The apparatus comprises: A destination IP receiving module configured to receive a destination IP sent by a terminal, wherein the destination IP is carried by a network request sent by a target application in the terminal to a service server to be accessed; An acceleration link information determining module configured to determine acceleration link information corresponding to the destination IP based on a preset correspondence relationship among the destination IP, an acceleration access point, an acceleration node and an aggregation node; An acceleration link information sending module configured to send the acceleration link information corresponding to the destination IP to the terminal, wherein the acceleration link information comprises node information of a target aggregation node, at least two target acceleration access points and at least two target acceleration nodes corresponding to the destination IP, the target acceleration access points correspond one by one to the target acceleration nodes; the target aggregation node, the at least two target acceleration access points and the at least two target acceleration nodes form at least two target acceleration links, the target acceleration access points in different target acceleration links are different from each other and the target acceleration nodes are different from each other; each target acceleration link corresponds to the same target aggregation node. The redirection request is used to instruct the corresponding target acceleration access point to send the request data packet to the target aggregation node via the corresponding target acceleration node, and to instruct the target aggregation node to send the received request data packet to the service server to be accessed.
14. The apparatus of claim 13, wherein, The preset correspondence relationship among the destination IP, the acceleration access point, the acceleration node, and the aggregation node is used to determine the acceleration link information corresponding to the destination IP, and the acceleration link information includes: The preset correspondence relationship among the destination IP, the acceleration access point, and the aggregation node is used to determine a plurality of candidate acceleration access points and at least one candidate aggregation node corresponding to the destination IP; The preset correspondence relationship among the aggregation node and the acceleration node is used to determine the candidate acceleration node corresponding to each candidate aggregation node; Link quality data of a plurality of candidate communication links including the candidate acceleration access point, the candidate acceleration node, and the candidate aggregation node is obtained; The plurality of candidate communication links are screened according to the link quality data, and at least two target acceleration links are obtained, wherein the at least two target acceleration links correspond to the same candidate aggregation node; The acceleration link information corresponding to the destination IP is generated according to the candidate acceleration access point, the candidate acceleration node, and the candidate aggregation node in the at least two target acceleration links, and the candidate acceleration access point, the candidate acceleration node, and the candidate aggregation node in the at least two target acceleration links are determined as the target acceleration access point, the target acceleration node, and the target aggregation node corresponding to the destination IP.
15. The apparatus of claim 14, wherein, The link quality data of a plurality of candidate communication links including the candidate acceleration access point, the candidate acceleration node, and the candidate aggregation node is obtained, and includes: The link quality test request corresponding to each of the plurality of candidate communication links is generated based on the destination IP; The link quality test request is sent to the to-be-accessed server through the corresponding communication link by each candidate acceleration access point; Test response information sent by the to-be-accessed server through each communication link in response to the link quality test request is received; The link quality data of the plurality of candidate communication links is generated according to the test response information.
16. The apparatus of claim 14, wherein, Before the link quality data of a plurality of candidate communication links including the candidate acceleration access point, the candidate acceleration node, and the candidate aggregation node is obtained, the apparatus further includes: The access point position of the candidate acceleration access point and the acceleration node position of the candidate acceleration node are obtained; The candidate acceleration access point, the candidate acceleration node, and the candidate aggregation node are matched in link according to the access point position, the acceleration node position, and the preset correspondence relationship among the aggregation node and the acceleration node, and the plurality of candidate communication links are obtained.
17. A computer-readable storage medium, characterized in that, The storage medium stores at least one instruction or at least one program, and the at least one instruction or the at least one program is loaded and executed by the processor to implement the data transmission method in any one of claims 1-8.
18. A computer device, comprising: The device includes a processor and a memory, and the memory stores at least one instruction or at least one program, and the at least one instruction or the at least one program is loaded and executed by the processor to implement the data transmission method in any one of claims 1-8.
19. A computer program product, characterised in that, The computer program product includes computer instructions, and the computer instructions are executed by the processor to implement the data transmission method in any one of claims 1-8.
Citation Information
Patent Citations
Routing method of acceleration network and acceleration network
CN111683013A
Data forwarding method and device based on multistage nodes
CN113259393A