Link selection method and device, electronic equipment and storage medium

By obtaining link list and node information, combining distance and network quality parameters, selecting better links for applications such as video conferencing, the problem of improper link selection in the existing technology is solved, and the stability and performance of the network environment are improved.

CN119316340APending Publication Date: 2025-01-14XUNLEI NETWORKING TECHNOLOGIES LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411271848.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-11
Publication Date
2025-01-14

AI Technical Summary

Technical Problem

The prior art is difficult to select better links in complex network environments, resulting in network delay and packet loss problems, affecting the performance of high-quality applications such as video conferencing.

Method used

By obtaining the link list between the client and the server, determining the link level information based on the node information and the distance between the onboard node and the client, and selecting the target link based on the hierarchical information and network quality parameters, combined with priority Level and integral sorting to improve link selection accuracy.

Benefits of technology

Improve the accuracy of link selection in complex network environments, reduce delay and packet loss rates, and ensure the stability and performance of applications such as video conferencing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119316340A_ABST
    Figure CN119316340A_ABST
Patent Text Reader

Abstract

The invention provides a link selection method and apparatus, an electronic device and a storage medium. The method comprises the steps of obtaining a link list between a client and a server; filtering the links of the link list based on the node information of the nodes in the links in the link list to obtain primarily selected links; based on the distance between the getting-on node in the primary selection link and the client, determining hierarchical information of each primary selection link; according to the link selection method and device, the instantaneous state of the node is considered, the distance information of the link is combined, the accuracy of the selected link can be improved, and better link selection can be achieved in a complex network environment.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of network transmission technology, and in particular, relates to a link selection method, device, electronic device and storage medium. Background Art

[0002] With the rapid development of Internet technology, more and more applications have emerged to meet user needs. However, some applications have high requirements for network quality. For example, video conferencing applications will have a series of problems such as video mosaics and sound freezes once network congestion causes increased delays or packet loss. In order to improve network quality and reduce the impact of network problems such as delays and packet loss on applications, a link is usually selected from the network to transmit network data. At present, most node link scheduling systems use the delay, packet loss rate and other status information of the links between nodes to sort and select an optimal link to transmit network data packets. However, due to the complex network environment, it may not be possible to select a better link based on the instantaneous delay and packet loss rate. Summary of the invention

[0003] The embodiments of the present application provide a link selection method, device, electronic device and storage medium, which can select a better link based on node information and the distance between the on-board node and the client.

[0004] In a first aspect, an embodiment of the present application provides a link selection method, including:

[0005] Get the list of links between the client and the server;

[0006] Filtering the links in the link list based on the node information of the nodes in each link in the link list to obtain preliminary selected links;

[0007] Determining the level information of each preliminary selected link based on the distance between the boarding node in the preliminary selected link and the client;

[0008] A target link is selected from the preliminary selected links based on the hierarchical information.

[0009] In some embodiments, the selecting a target link from the preliminary selected links based on the hierarchical information includes:

[0010] Selecting the preliminary link corresponding to the hierarchical information with the highest priority as the target preliminary link, wherein the hierarchical information with a higher priority has a closer corresponding distance;

[0011] A target link is selected from the preliminary selected links based on the priority of the hierarchical information.

[0012] In some embodiments, the selecting a target link from the preliminary selected links based on the priority of the hierarchical information includes:

[0013] selecting a target preliminary link from the preliminary links based on the priority of the hierarchical information;

[0014] In the case where there are multiple target preliminary links, determining the integral of each target preliminary link based on the network quality parameter of each target preliminary link;

[0015] sorting each target preliminary link based on the score;

[0016] The target link is selected from the target preliminary links based on the ranking.

[0017] In some embodiments, determining the integral of each target preliminary link based on the network quality parameter of each target preliminary link includes:

[0018] Obtain the current number of online users at the boarding point of each target preliminary link, the first delay between the client and the boarding point of each target preliminary link, and the second delay between the boarding point of each target preliminary link and the server;

[0019] The score of each target preliminary link is calculated based on the current number of online users, the first delay, and the second delay.

[0020] In some embodiments, the calculating of the score of each target preliminary link based on the current number of online users, the first delay, and the second delay includes:

[0021] Calculate the product of the current number of online users and a first adjustment coefficient to obtain a first calculation result, wherein the first adjustment coefficient is an adjustment coefficient for controlling the selection of node links by the number of online users;

[0022] Calculate the product of the second delay and the second adjustment coefficient to obtain a second calculation result, wherein the second adjustment coefficient is an adjustment coefficient for controlling the proportion of packet loss rate;

[0023] The first delay is added to the first calculation result and the second calculation result to obtain the integral of each target preliminary selected link.

[0024] In some embodiments, the method further comprises:

[0025] The target link information is sent to the client, so that the client communicates with the server based on the target link information.

[0026] In some embodiments, the method further comprises:

[0027] Acquire current node information of each node of the link in the link list and current bandwidth information of each link;

[0028] Determine whether there is an update target link based on the current node information and the distance between the onboard node of the link and the client;

[0029] In the case where an update target link exists, the update target link is sent to the client, so that the client switches to the update target link to communicate with the server.

[0030] In some embodiments, the node information includes: CPU information, memory information, and the number of online users. The link list is filtered based on the node information of the nodes in each link in the link list and the bandwidth information of each link to obtain the preliminary selected links, including:

[0031] Determine whether the CPU information of the nodes in each link is greater than the CPU threshold, determine whether the memory information of the nodes in each link is greater than the memory threshold, and determine whether the number of online users of the nodes in each link is greater than the online user threshold;

[0032] Links whose CPU information is greater than the CPU threshold, whose memory information is greater than the memory threshold, or whose number of online users is greater than the online user threshold are filtered to obtain preliminary selected links.

[0033] In a second aspect, an embodiment of the present application provides a link selection device, including:

[0034] The acquisition module is used to obtain the link list between the client and the server;

[0035] A filtering module, used for filtering the links in the link list based on the node information of the nodes in each link in the link list to obtain a preliminary selected link;

[0036] A level information determination module, used to determine the level information of each preliminary selected link based on the distance between the boarding node in the preliminary selected link and the client;

[0037] A selection module is used to select a target link from the preliminary selected links based on the priority of the hierarchical information.

[0038] In a third aspect, an embodiment of the present application provides an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements any of the above-described methods when executing the computer program.

[0039] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any of the methods described above is implemented.

[0040] In a fifth aspect, an embodiment of the present application provides a computer program product, which, when executed on a terminal device, enables the electronic device to execute any of the methods described above.

[0041] Compared with the prior art, the embodiments of the present invention have the following beneficial effects:

[0042] The link selection method provided in the embodiment of the present application is different from the method of selecting a better link based on the instantaneous state of the link between nodes in the related art. Since the network environment in the related art is complex, the instantaneous state only reflects the network state at a specific moment and may be affected by short-term fluctuations. It cannot reflect the actual network state, resulting in improper link selection. The present application obtains a list of links between a client and a server that the client wants to access; filters the links in the link list based on the node information of the nodes in each link in the link list to obtain a preliminary link; determines the hierarchical information of each preliminary link based on the distance between the boarding node in the preliminary link and the client; and selects a target link from the preliminary link based on the hierarchical information. The present application not only considers the instantaneous state of the node but also combines the distance information of the link, which can improve the accuracy of the selected link and achieve better link selection in a complex network environment.

[0043] It can be understood that the beneficial effects of the second to fifth aspects mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.

[0045] Figure 1 A schematic diagram of a link selection method for implementing the present application;

[0046] Figure 2 A schematic diagram of a link between a client and a server provided in an embodiment of the present application;

[0047] Figure 3 A schematic diagram of a process for determining a target link provided in an embodiment of the present application;

[0048] Figure 4 A schematic diagram of an implementation flow of a link selection method provided in an embodiment of the present application;

[0049] Figure 5 A schematic diagram of the structure of a link selection device provided in an embodiment of the present application;

[0050] Figure 6 A schematic diagram of the structure of a link selection system provided in an embodiment of the present application;

[0051] Figure 7 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0052] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.

[0053] It should be understood that when used in the present specification and the appended claims, the term "comprising" indicates the presence of described features, wholes, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or combinations thereof.

[0054] It should also be understood that the term “and / or” used in the specification and appended claims refers to any and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0055] As used in the specification of this application and the appended claims, the term "if" can be interpreted as "when" or "uponce" or "in response to determining" or "in response to detecting" depending on the context. Similarly, the phrases "if it is determined" or "if it is detected" can be interpreted as meaning "uponce it is determined" or "in response to determining" or "uponce detected" or "in response to detecting" depending on the context.

[0056] In addition, in the description of the present application specification and the appended claims, the terms "first", "second", "third", etc. are only used to distinguish the descriptions and cannot be understood as indicating or implying relative importance.

[0057] References to "one embodiment" or "some embodiments" etc. described in the specification of this application mean that one or more embodiments of the present application include specific features, structures or characteristics described in conjunction with the embodiment. Therefore, the phrases "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. appearing in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways.

[0058] Based on the technical problems of related technologies, the embodiments of the present application provide a link selection method that can be applied to mobile phones, tablet computers, wearable devices, vehicle-mounted devices, augmented reality (AR) / virtual reality (VR) devices, laptops, ultra-mobile personal computers (UMPC), netbooks, personal digital assistants (PDA) and other electronic devices. The embodiments of the present application do not impose any restrictions on the specific types of electronic devices. The electronic device can obtain the node information of the nodes in the link between the client and the server, the bandwidth information of the link, and the link delay, packet loss rate and other status information, and can also obtain the distance between the boarding point and the client in the link. The electronic device can comprehensively select the target link through the node information of the node, the bandwidth information of the link, the delay of the link, the packet loss rate and other status information of the link, and the distance between the boarding point and the client in the link.

[0059] The present application embodiment provides a link selection method. Figure 1 A schematic diagram of the implementation flow of a link selection method provided for the implementation of this application is as follows: Figure 1 As shown, the link selection method includes:

[0060] Step S101, obtaining a list of links between a client and a server that the client wants to access.

[0061] In an embodiment of the present application, the client can send a request message to the electronic device, and the request message may include information such as the IP address of the server. After the electronic device obtains the request message from the client, it can parse the request message to obtain the server that the client wants to access.

[0062] In some embodiments, the electronic device can communicate with the client to query the server that the client needs to access.

[0063] In an embodiment of the present application, after obtaining the server that the client wants to access, a list of links between the client and the server that the client wants to access can be obtained. The link list may include: all links that can reach the server, and the nodes in the link list may include: multiple boarding nodes, multiple getting off nodes and / or multiple intermediate nodes. A link in the link list includes at least: any boarding node, any getting off node. Usually, a link in the link list is formed by any boarding node, any getting off node and any intermediate node. For example, there are 3 boarding nodes, 4 intermediate nodes, and 2 getting off nodes between the client and the server, then the nodes of a link in the link list may include: any one of the 3 boarding nodes, any one of the 4 intermediate nodes, and any one of the 2 getting off nodes.

[0064] In the link list, the node information of each link node may include: CPU information, memory information, and the number of online users. For example, a link passes through node 1, node 2, and node 3. Node 1 is a boarding node, node 2 is an intermediate node, and node 3 is an alighting node. The node information of node 1, node 2, and node 3 all include: CPU information, memory information, and the number of online users. The node information of these nodes can be stored in the link list. In some embodiments, the delay and packet loss rate between two nodes can also be determined.

[0065] Figure 2 A schematic diagram of a link between a client and a server provided in an embodiment of the present application, such as Figure 2 As shown, Figure 2 As shown, the client can communicate with the server through a link composed of any boarding node, any alighting node and an intermediate node. The number of intermediate nodes can be 0 or at least one. The boarding node can also be called a boarding point, the intermediate node can be called an intermediate point, and the alighting node can be called an alighting point.

[0066] Step S102: filtering the links in the link list based on the node information of the nodes in each link in the link list to obtain preliminary selected links.

[0067] In an embodiment of the present application, the electronic device can collect node information of nodes in each link.

[0068] In the embodiment of the present application, the electronic device can query the node information of the nodes in the link through the network protocol.

[0069] In some embodiments, bandwidth information of each link may also be obtained, and preliminary links may be obtained by filtering the links in the link list based on node information of nodes in each link in the link list and bandwidth information of each link.

[0070] In some embodiments, the node information of the nodes in each link and the bandwidth information of each link can be obtained through network monitoring software. The network monitoring software can analyze the node information of the links and nodes and the bandwidth information of each link in real time. The network monitoring software may include: Nagios, Zabbix, PRTG.

[0071] In the embodiment of the present application, the node information may include: real-time CPU information, memory information, and the number of online users. The bandwidth information refers to the amount of data that can be transmitted by a network connection within a certain period of time. It is an important indicator for evaluating network performance. Among them, the CPU information refers to the CPU performance occupancy rate of the server hosting the node, and the memory information refers to the running memory (RAM) occupancy rate.

[0072] In the embodiment of the present application, filtering conditions may be set, for example, the filtering conditions may include: minimum bandwidth requirements, node health status, etc. The filtering conditions may be used to filter out links that do not meet the conditions, thereby obtaining preliminary selected links.

[0073] Exemplarily, thresholds corresponding to the node information may be set respectively, and links may be filtered by comparing the size relationship between the node information and the corresponding performance thresholds. The preliminarily selected links are preliminarily selected links.

[0074] In some embodiments, the size relationship between the bandwidth information and the corresponding bandwidth threshold may be compared, and links with bandwidths smaller than the bandwidth threshold may be filtered.

[0075] In the embodiment of the present application, the preliminary selected links may be stored in a preliminary selected link list.

[0076] In the embodiment of the present application, by setting filtering conditions, it can be ensured that the primary selected link meets the transmission stability.

[0077] Step S103, determining the level information of each preliminary selected link based on the distance between the boarding node in the preliminary selected link and the client.

[0078] In the embodiment of the present application, the location of each boarding node can be obtained by using the geographic location service, and the location of the client can be obtained by using the geographic location service, and the distance between the boarding node in the primary link and the client can be determined by the location of each boarding node and the client. The boarding node can also be called a boarding point.

[0079] In an embodiment of the present application, the hierarchical information can be divided based on distance. For example, the hierarchical information can be divided into 100 km as one level, 100 km to 300 km as one level, 300 km to 500 km as one level, and above 500 as one level.

[0080] In some embodiments, the division of hierarchical information can be divided according to the region, for example, the same city is one level, different cities in the same province are one level, different provinces and within a preset distance are one level, and more than the preset distance is one level. Exemplarily, the links are divided into 4 levels according to the same city, different cities in the same province, different provinces and within 500km, and more than 500km. In addition, it can also be divided simply according to administrative divisions, for example, the same city is one level, the same province is one level, and the same region is one level, and multiple provinces can be divided into one region.

[0081] In the embodiment of the present application, the closer the distance corresponding to the hierarchical information is, the higher the selection priority is.

[0082] Step S104: selecting a target link from the preliminary selected links based on the priority of the hierarchical information.

[0083] In an embodiment of the present application, each level can be polled in order of priority. If the highest priority level information corresponds to a link, a target link can be selected from the link. If the highest priority level has no corresponding link, the next priority level is polled. In this way, the target link can be selected from the preliminary links based on the level information.

[0084] In an embodiment of the present application, after hierarchical information is selected based on priority, if there are multiple preliminary links in the hierarchical information, any one of the preliminary links can be selected as the target link. In some embodiments, the integral of each target preliminary link can also be calculated, and the target link can be selected from multiple target preliminary links through the integral.

[0085] Continuing with the above example, when the links are divided into four levels such as the same city, different cities in the same province, different provinces within 500km, and more than 500km, if the level corresponding to the same city has a preliminary link, the preliminary link corresponding to the same city can be determined as the target preliminary link. If there is no preliminary link corresponding to the same city, it can be determined whether there are corresponding preliminary links in different cities in the same province. If so, the preliminary links corresponding to different cities in the same province can be determined as the target preliminary links. In the embodiment of the present application, the earlier the level, the better the link selected from that level.

[0086] In the embodiment of the present application, the link finally selected is the target link.

[0087] The link selection method provided in the embodiment of the present application obtains a link list between a client and a server that the client wants to access; filters the links in the link list based on the node information of the nodes in each link in the link list and the bandwidth information of each link to obtain a preliminary link; determines the hierarchical information of each preliminary link based on the distance between the boarding node in the preliminary link and the client; selects a target link from the preliminary links based on the hierarchical information, and can select a better link through the node information, bandwidth information and the distance between the boarding node and the client.

[0088] In some embodiments, step S104 is performed by Figure 3 Steps S1 to S4 in are implemented as follows: Figure 3 As shown, including:

[0089] Step S1 : selecting a target preliminary link from the preliminary links based on the priority of the hierarchical information.

[0090] In an embodiment of the present application, each level can be polled in order of priority. If the highest priority level information corresponds to a link, a target link can be selected from the link. If the highest priority level has no corresponding link, the next priority level is polled. In this way, the target link can be selected from the preliminary links based on the level information.

[0091] Step S2: when there are multiple target preliminary links, determine the integral of each target preliminary link based on the network quality parameter of each target preliminary link.

[0092] In the embodiment of the present application, network quality parameters can be determined for evaluation, and the network quality parameters can include at least one of bandwidth, delay, packet loss rate, reliability, and the number of current online users at the boarding point. Each indicator is quantified so that it can be compared, and a standardized method can be used to convert each indicator into a unified scoring system. The weighted sum of each indicator is performed according to the defined weight to obtain the score of each link.

[0093] In some embodiments, the network quality parameters include: the current number of online users at the boarding point, the first delay between the client and the boarding point of each target preliminary link, and the second delay between the boarding point of each target preliminary link and the server.

[0094] In an embodiment of the present application, the current number of online users at the boarding point of each target preliminary link, the first delay between the client and the boarding point of each target preliminary link, and the second delay between the boarding point of each target preliminary link and the server can be obtained; the score of each target preliminary link is calculated based on the current number of online users, the first delay, and the second delay.

[0095] In an embodiment of the present application, the integral of each target preliminary link is calculated based on the current number of online users, the first delay and the second delay, including: calculating the product between the current number of online users and a first adjustment coefficient to obtain a first calculation result, wherein the first adjustment coefficient is an adjustment coefficient for controlling the selection of node links by the number of online users; calculating the product between the second delay and the second adjustment coefficient to obtain a second calculation result, wherein the second adjustment coefficient is an adjustment coefficient for controlling the proportion of packet loss rate; adding the first delay to the first calculation result and the second calculation result to obtain the integral of each target preliminary link.

[0096] The above method can be expressed by the calculation formula:

[0097] F(x)=U(x)+α*L(x)+λ*P(x);

[0098] Where x is the ID of the node, U(x) is the delay from the user client to the node, L(x) is the delay from the boarding point to the server, P(x) is the number of current online users, ɑ is the second adjustment coefficient, and the value between 85-95 is the best. λ is the first adjustment coefficient, which can be appropriately reduced as the number of people increases. Generally, a value between 0.05-0.15 is more appropriate.

[0099] In the embodiment of the present application, the integral of each link can be calculated by the above method.

[0100] Step S3, sorting the target preliminary links based on the scores.

[0101] In the embodiment of the present application, all target preliminary links are sorted according to the calculated scores, usually in descending order, and the link with a higher score has a higher priority.

[0102] In the embodiment of the present application, if there are multiple links with the same score, secondary sorting can be further performed based on other factors (such as versatility, stability, etc.).

[0103] Step S4: selecting the target link from each target preliminary link based on the ranking.

[0104] In the embodiment of the present application, the target preliminary link with the highest ranking can be selected as the target link.

[0105] The method provided in the embodiment of the present application determines the integral of each target preliminary link when there are multiple target preliminary links; sorts each target preliminary link based on the integral; and selects the target link from each target preliminary link based on the sort, so as to select the optimal link.

[0106] In some embodiments, after step S104, the method further includes:

[0107] The target link information is sent to the client, so that the client communicates with the server based on the target link information.

[0108] In the embodiment of the present application, after determining the target link, the electronic device can collect all relevant information of the target link, such as IP address, port number, configuration parameters, etc. Then format the target link information into a format that the client can understand, usually using JSON or XML and other formats. Then send the target link information to the client through a protocol, so that the client can obtain the target link. The communication protocol can be one of: HTTP, WebSocket, etc.

[0109] In the embodiment of the present application, after receiving the information of the target link, the client can parse the received data, extract the target link information (such as IP address, port, etc.), and use the parsed target link information to establish a connection with the server. For example, if the target link is TCP, the client can create a TCP connection. After the connection is established, the client can send and receive data to achieve communication with the server.

[0110] The method provided in the embodiment of the present application can send the optimal target link to the client by sending the target link to the client so that the client communicates with the server based on the target link, thereby allowing the client's data packets to be stably transmitted under low latency and low packet loss rate conditions.

[0111] In some embodiments, the method further comprises:

[0112] The current node information of each node of the link in the link list and the current bandwidth information of each link are obtained; based on the current node information and the distance between the onboard node of the link and the client, it is determined whether there is an update target link. If there is an update target link, the update target link is sent to the client so that the client switches to the update target link to communicate with the server.

[0113] In the embodiment of the present application, the updated target link can be considered as the currently optimal target link. The method for determining the updated target link can refer to the above method for determining the target link.

[0114] In the embodiment of the present application, after the target link is determined, it can be determined whether the current target link is the same as the previous target link, and whether there is an updated target link is determined by determining whether they are the same.

[0115] In the embodiment of the present application, if there is an update target link, it is sent to the client, and the client switches to the update target link for communication.

[0116] The method provided in the embodiment of the present application ensures that the client's data packets are stably transmitted with low latency and low packet loss rate by implementing various data indicators of the monitoring link and timely feeding back the optimal link to the client.

[0117] Based on the above embodiments, the present application further provides a link selection method. Figure 4 A schematic diagram of the implementation flow of a link selection method provided in an embodiment of the present application is shown in FIG. Figure 4 As shown, including:

[0118] Step S301, obtaining a link list.

[0119] In the embodiment of the present application, the zone and server information selected by the client can be used to determine which server to go to, and then a list of all links that can reach the destination server can be obtained.

[0120] Step S302, filtering links whose CPU, memory, and bandwidth have reached upper limits.

[0121] In the embodiment of the present application, the electronic device can obtain the node information and bandwidth information of the nodes of each link in the link list. The node information may include: CPU, memory, number of online users. If the CPU reaches 90% of the load limit, the link corresponding to the node is filtered to ensure the stability of the client data packet transmission on the current node, or if the memory reaches 90%, the link is no longer used. Or, if the bandwidth reaches the upper limit, the link is no longer used.

[0122] Step S303, stratification according to distance.

[0123] In the embodiment of the present application, the distance between the client and the boarding point of the link can be calculated to divide the link into multiple levels, and the links can be divided into 4 levels according to the same city, different cities in the same province, different provinces but within 500km, and more than 500km. Each level can have no nodes or multiple nodes, that is, each level can correspond to no links or multiple links. In the embodiment of the present application, the earlier the level, the better the node link selected from the level.

[0124] Step S304, calculating the integrals of the links in the same layer.

[0125] In the embodiment of the present application, if there are multiple links at the same level, the integral of each link can be calculated.

[0126] In the embodiment of the present application, the integral can be calculated by the following formula:

[0127] F(x)=U(x)+α*L(x)+λ*P(x);

[0128] Among them, x is the ID of the node, U(x) is the delay from the user client to the node, L(x) is the delay from the boarding point to the server, P(x) is the number of current online users, ɑ is an adjustment coefficient for controlling the proportion of packet loss rate, and the value between 85-95 is the best. λ is used to control the adjustment coefficient of the number of online users for node link selection. It can be adjusted down as the number of people increases. Generally, the value between 0.05-0.15 is more appropriate.

[0129] Step S305: sorting according to the scores to select the target link.

[0130] In the embodiment of the present application, after the ranking is determined, the optimal target link can be selected.

[0131] In the embodiment of the present application, the target link can be returned to the client, so that the client can communicate based on the target link.

[0132] In the embodiment of the present application, various data indicators from the client to each boarding point can be detected in real time, and timely feedback can be given to the client to switch to the optimal boarding point, ensuring that the client's data packets are stably transmitted under low latency and low packet loss rate conditions.

[0133] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0134] According to the aforementioned embodiments, the embodiments of the present application provide a link selection device, and the modules included in the device, as well as the units included in the modules, can be implemented by a processor in a computer device; of course, they can also be implemented by a specific logic circuit; in the implementation process, the processor can be a central processing unit (CPU, Central Processing Unit), a microprocessor (MPU, Microprocessor Unit), a digital signal processor (DSP, Digital Signal Processing) or a field programmable gate array (FPGA, Field Programmable Gate Array), etc.

[0135] The embodiment of the present application provides a link selection device, Figure 5 A schematic diagram of the structure of a link selection device provided in an embodiment of the present application is shown in FIG. Figure 5As shown, the link selection device 400 includes:

[0136] The acquisition module 401 is used to acquire a list of links between the client and the server;

[0137] A filtering module 402, configured to filter the links in the link list based on the node information of the nodes in each link in the link list to obtain a preliminary selected link;

[0138] A level information determination module 403, configured to determine the level information of each preliminary selected link based on the distance between the boarding node in the preliminary selected link and the client;

[0139] The selection module 404 is configured to select a target link from the preliminary selected links based on the priority of the hierarchical information.

[0140] In some embodiments, the selection module includes:

[0141] A first selection unit, configured to select a target preliminary selected link from the preliminary selected links based on the priority of the hierarchical information;

[0142] A first determining unit, configured to determine the integral of each target preliminary selected link based on a network quality parameter of each target preliminary selected link when there are multiple target preliminary selected links;

[0143] A sorting unit, used for sorting each target preliminary selected link based on the score;

[0144] A selection unit is configured to select the target link from each target preliminary link based on the ranking.

[0145] In some embodiments, the first determining unit is configured to:

[0146] Obtain the current number of online users at the boarding point of each target preliminary link, the first delay between the client and the boarding point of each target preliminary link, and the second delay between the boarding point of each target preliminary link and the server;

[0147] The score of each target preliminary link is calculated based on the current number of online users, the first delay, and the second delay.

[0148] In some embodiments, the calculating of the score of each target preliminary link based on the current number of online users, the first delay, and the second delay includes:

[0149] Calculate the product of the current number of online users and a first adjustment coefficient to obtain a first calculation result, wherein the first adjustment coefficient is an adjustment coefficient for controlling the selection of node links by the number of online users;

[0150] Calculate the product of the second delay and the second adjustment coefficient to obtain a second calculation result, wherein the second adjustment coefficient is an adjustment coefficient for controlling the proportion of packet loss rate;

[0151] The first delay is added to the first calculation result and the second calculation result to obtain the integral of each target preliminary selected link.

[0152] In some embodiments, the link determination device further includes:

[0153] The sending module is used to send the information of the target link to the client, so that the client communicates with the server based on the information of the target link.

[0154] In some embodiments, the link determination device further includes:

[0155] A current information acquisition unit, used to acquire current node information of each node of the link in the link list and current bandwidth information of each link;

[0156] An update determination module, used to determine whether there is an update target link based on the current node information, the distance between the on-board node of the link and the client;

[0157] The sending module is used to send the updated target link to the client when there is an updated target link, so that the client switches to the updated target link to communicate with the server.

[0158] In some embodiments, the node information includes: CPU information, memory information, number of online users, and the filtering module includes:

[0159] A judgment unit, used to determine whether the CPU information of the nodes in each link is greater than the CPU threshold, determine whether the memory information of the nodes in each link is greater than the memory threshold, and determine whether the number of online users of the nodes in each link is greater than the online user threshold;

[0160] The filtering unit is used to filter the links whose CPU information is greater than the CUP threshold, whose memory information is greater than the memory threshold, or whose number of online users is greater than the online user threshold, to obtain the preliminary selected links.

[0161] It should be noted that the information interaction, execution process, etc. between the above-mentioned devices / units are based on the same concept as the method embodiment of the present application. Their specific functions and technical effects can be found in the method embodiment part and will not be repeated here.

[0162] in addition, Figure 5The link selection device shown may be a software unit, a hardware unit, or a unit combining software and hardware, or may be integrated into the electronic device as an independent accessory, or may exist as an independent terminal device.

[0163] Based on the aforementioned link selection device, Figure 6 A schematic diagram of the structure of the link selection system provided in the embodiment of the present application is shown in FIG. Figure 6 As shown in the figure, the system mainly includes a client, a server, a network control layer, a network data layer and an adaptive scheduling system. The client is a client used by users to accelerate the local network environment. It obtains an optimal node link by requesting the network control layer, encrypts the local data packet, encapsulates the link information into the data packet, and sends it to the boarding point node. The data packet is stably transmitted from the client to the server through the node link, thereby providing acceleration services for the user's network environment. The server is the destination node that the user needs to access. At the same time, the request delay, packet loss rate and node link distance from the client to the boarding point need to be reported to the network control layer for the subsequent adaptive scheduling system to update the optimal link. The role of the network data layer is to manage the transmission of data packets between node links. The boarding point receives the data packet sent by the client, decrypts the data packet and analyzes the content of the data packet, and then obtains which transfer point or alighting point the data packet is going to, and finally transmits the data packet to complete the flow of data packets. The network data layer service will report the CPU information, memory information and bandwidth usage of each node, as well as the delay and packet loss rate of the node link to the network control layer. The main function of the network control layer is to collect the status information of nodes and node links, and count the number of online clients of the nodes. After obtaining this basic information, the adaptive node link scheduling system is called to obtain the optimal link that the client should take. The node link adaptive scheduling system mainly uses the node and node link status information collected by the network control layer to adaptively recommend the optimal link to the client. When the user connects to the node data plane to transmit data, the load of some nodes is too high, or the number of online clients of the node is too large, which will increase the delay of data transmission, increase the node throughput, and increase the packet loss rate of user data packets. In this case, it is necessary to recommend other more optimal links to the client to ensure that the data packets of the node link can be smoothly and stably transmitted to the target node server.

[0164] The embodiment of the present application provides a link selection system, a new network architecture model based on software-defined networks, separation of the network data layer and the network control layer, more efficient control of network nodes and link management, and higher scalability and maintainability. A node link adaptive scheduling system is designed to better maintain the status information of the node link, update the node link status in real time, and provide users with better network acceleration services in real time, which not only ensures a lower network delay, but also reduces the packet loss rate of network transmission, and balances the network congestion of the node, and better improves the stability of the user network transmission data packet.

[0165] The technicians in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.

[0166] Figure 7 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present application. Figure 7 As shown, the electronic device 3 of this embodiment may include: at least one processor 30 ( Figure 7 Only one processor 30 is shown in the figure), a memory 31, and a computer program 32 stored in the memory 31 and executable on at least one processor 30. When the processor 30 executes the computer program 32, the steps in any of the above-mentioned method embodiments are implemented, for example Figure 1 Steps S101 to S104 in the illustrated embodiment. Alternatively, when the processor 30 executes the computer program 32, the functions of each module / unit in the above-mentioned device embodiments are implemented, for example Figure 5 Functions of modules 401 to 404 are shown.

[0167] Exemplarily, the computer program 32 may be divided into one or more modules / units, one or more modules / units are stored in the memory 31, and are executed by the processor 30 to complete the present application. One or more modules / units may be a series of computer program 32 instruction segments capable of completing specific functions, and the instruction segments are used to describe the execution process of the computer program 32 in the electronic device 3.

[0168] The embodiment of the present application further provides a computer-readable storage medium, which stores a computer program 32. When the computer program 32 is executed by the processor 30, the steps in the above-mentioned method embodiments can be implemented.

[0169] An embodiment of the present application provides a computer program product. When the computer program product runs on an electronic device, the electronic device can implement the steps in the above-mentioned method embodiments when executing the computer program product.

[0170] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. According to this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program 32, and the computer program 32 can be stored in a computer-readable storage medium, and the computer program 32 can implement the steps of the above-mentioned various method embodiments when executed by the processor 30. Among them, the computer program 32 includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may at least include: any entity or device capable of carrying the computer program code to the terminal, a recording medium, a computer memory, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), an electric carrier signal, a telecommunication signal, and a software distribution medium. For example, a USB flash drive, a mobile hard disk, a magnetic disk or an optical disk. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electric carrier signals and telecommunication signals.

[0171] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0172] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0173] In the embodiments provided in the present application, it should be understood that the disclosed devices / network equipment and methods can be implemented in other ways. For example, the device / network equipment embodiments described above are merely schematic. For example, the division of the modules or units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0174] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0175] The embodiments described above are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.

Claims

1. A link selection method, characterized in that: include: Get the list of links between the client and the server; Filtering the links in the link list based on the node information of the nodes in each link in the link list to obtain preliminary selected links; Determining the level information of each preliminary selected link based on the distance between the boarding node in the preliminary selected link and the client; A target link is selected from the preliminary selected links based on the priority of the hierarchical information.

2. The method according to claim 1, characterized in that The selecting a target link from the preliminary selected links based on the priority of the hierarchical information comprises: selecting a target preliminary link from the preliminary links based on the priority of the hierarchical information; In the case where there are multiple target preliminary links, determining the integral of each target preliminary link based on the network quality parameter of each target preliminary link; sorting each target preliminary link based on the score; The target link is selected from the target preliminary links based on the ranking.

3. The method according to claim 2, characterized in that The step of determining the integral of each target preliminary selected link based on the network quality parameter of each target preliminary selected link includes: Obtain the current number of online users at the boarding point of each target preliminary link, the first delay between the client and the boarding point of each target preliminary link, and the second delay between the boarding point of each target preliminary link and the server; The score of each target preliminary link is calculated based on the current number of online users, the first delay, and the second delay.

4. The method according to claim 3, characterized in that The calculating the score of each target preliminary selected link based on the current number of online users, the first delay, and the second delay includes: Calculate the product of the current number of online users and a first adjustment coefficient to obtain a first calculation result, wherein the first adjustment coefficient is an adjustment coefficient for controlling the selection of node links by the number of online users; Calculate the product of the second delay and the second adjustment coefficient to obtain a second calculation result, wherein the second adjustment coefficient is an adjustment coefficient for controlling the proportion of packet loss rate; The first delay is added to the first calculation result and the second calculation result to obtain the integral of each target preliminary selected link.

5. The method according to any one of claims 1 to 4, characterized in that: The method further comprises: The target link information is sent to the client, so that the client communicates with the server based on the target link information.

6. The method according to claim 5, characterized in that The method further comprises: Obtaining current node information of each node in the link list; Determine whether there is an update target link based on the current node information and the distance between the onboard node of the link and the client; In the case where an update target link exists, the update target link is sent to the client, so that the client switches to the update target link to communicate with the server.

7. The method according to claim 1, characterized in that The node information includes: CPU information, memory information, and the number of online users. The links in the link list are filtered based on the node information of the nodes in each link in the link list to obtain the preliminary selected links, including: Determine whether the CPU information of the nodes in each link is greater than the CPU threshold, determine whether the memory information of the nodes in each link is greater than the memory threshold, and determine whether the number of online users of the nodes in each link is greater than the online user threshold; Links whose CPU information is greater than the CPU threshold, whose memory information is greater than the memory threshold, or whose number of online users is greater than the online user threshold are filtered to obtain preliminary selected links.

8. A link selection device, characterized in that: include: The acquisition module is used to obtain the link list between the client and the server; A filtering module, used for filtering the links in the link list based on the node information of the nodes in each link in the link list to obtain a preliminary selected link; A level information determination module, used to determine the level information of each preliminary selected link based on the distance between the boarding node in the preliminary selected link and the client; A selection module is used to select a target link from the preliminary selected links based on the hierarchical information.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the method according to any one of claims 1 to 7 is implemented.

10. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 7 is implemented.