Path selection method, apparatus, system, device and storage medium

By using data packets to carry path information in the computing power-aware network, the first router selects the uplink path and the second router selects the downlink path, which solves the problem of complex path selection and improves network performance.

CN115701179BActive Publication Date: 2026-04-21CHINA MOBILE COMM LTD RES INST +1
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHINA MOBILE COMM LTD RES INST
Filing Date
2021-07-14
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

In computing power-aware networks, path selection is complex, and existing technologies have failed to effectively consider the selection of uplink and downlink paths, which affects network performance.

Method used

The first router sends a data packet carrying uplink path information to the target server. After the target server returns the data packet, the first router selects an uplink path based on the uplink path information. At the same time, the second router carries downlink path information in the data packet, and the first router selects a downlink path based on the downlink path information.

Benefits of technology

It achieves simple and effective uplink path selection, takes into account the characteristics of uplink and downlink traffic, and improves network performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115701179B_ABST
    Figure CN115701179B_ABST
Patent Text Reader

Abstract

This invention discloses a path selection method, apparatus, system, device, and storage medium. The method includes: a first router sending data packets to a target server via multiple first paths; each data packet transmitted along a first path carrying uplink path information detected by each second router along that path; the target server receiving the data packets; and returning the data packets to the first router via the multiple first paths; the first router determining an uplink path from the multiple first paths based on the uplink path information returned by each first path.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of wireless technology, and in particular to a path selection method, apparatus, system, device, and storage medium. Background Technology

[0002] Currently, in computing power-aware networks, not only can the network perceive ubiquitous computing power and the network itself, but it can also select the path and destination node for computing power perception. In the service routing process, by bypassing the Domain Name System (DNS) resolution process and switching from IP (Internet Protocol)-based addressing to service-based addressing, the selection of the destination server and downlink path can be achieved. However, the path selection method in computing power-aware networks and service routing processes is relatively complex. Summary of the Invention

[0003] In view of this, embodiments of the present invention aim to provide a path selection method, apparatus, system, device, and storage medium.

[0004] The technical solution of this invention is implemented as follows:

[0005] At least one embodiment of the present invention provides a path selection method, the method comprising:

[0006] The first router sends data packets to the target server through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path;

[0007] The target server receives the data packet and returns it to the first router via the multiple first paths.

[0008] The first router determines the uplink path from the plurality of first paths based on the uplink path information returned by each first path.

[0009] Furthermore, according to at least one embodiment of the present invention, before the first router sends data packets to the target server via multiple first paths, the method further includes:

[0010] The first router sends a data packet to the controller; the data packet carries the IP address of the target server;

[0011] The controller receives the data packet; uses the IP address of the target server carried in the data packet to determine the multiple first paths; and sends the information of the multiple first paths in the data packet to the first router.

[0012] Furthermore, according to at least one embodiment of the present invention, the first router sends data packets to the controller, including:

[0013] The first router receives data packets sent by the terminal; the data packets carry the anycast address of the target server;

[0014] The first router parses the data packet to obtain the anycast address of the target server; maps the anycast address to an IP address, and sends the IP address in the data packet to the controller.

[0015] Furthermore, according to at least one embodiment of the present invention, when sending a data packet to a target server, the method further includes:

[0016] Each second router in the first path parses the data packets to obtain the service transmission requirements; the service transmission requirements include multiple parameters.

[0017] Each second router in each first path probes each parameter included in the service transmission requirement and obtains the probe results; the probe results are then carried in the data packet as uplink path information.

[0018] Furthermore, according to at least one embodiment of the present invention, the first router determines an uplink path from the plurality of first paths based on the uplink path information returned by each first path, including:

[0019] The first router calculates a first value based on the uplink path information returned by each first path, and obtains multiple first values; the first value represents the cost of the uplink path.

[0020] The first router determines a first weight; it multiplies the first weight with the first value corresponding to each path to obtain multiple first values; it sorts the multiple first paths according to the multiple first values ​​to obtain a sorting result; and it takes the first path corresponding to the first value in the sorting result that meets the preset condition as the uplink path.

[0021] Furthermore, according to at least one embodiment of the present invention, the method further includes:

[0022] The target server receives the data packet and returns it to the first router via the multiple first paths; the data packet transmitted in each first path carries downlink path information detected by each second router in the corresponding path;

[0023] The first router determines the downlink path from the plurality of first paths based on the downlink path information returned by each first path.

[0024] Furthermore, according to at least one embodiment of the present invention, when returning the data packet to the first router, the method further includes:

[0025] Each second router in the first path parses the data packets to obtain the service transmission requirements; the service transmission requirements include multiple parameters.

[0026] Each second router in each first path probes each parameter included in the service transmission requirement and obtains the probe results; the probe results are then carried in the data packet as downlink path information.

[0027] Furthermore, according to at least one embodiment of the present invention, the first router determines a downlink path from the plurality of first paths based on the downlink path information returned by each first path, including:

[0028] The first router calculates a second value based on the downlink path information returned by each first path, resulting in multiple second values; the second value represents the cost of the downlink path.

[0029] The first router determines a second weight; it multiplies the second weight with the first value corresponding to each path to obtain multiple second values; it sorts the multiple first paths according to the multiple second values ​​to obtain a sorting result; and it takes the first path corresponding to the second value in the sorting result that meets the preset condition as the downlink path.

[0030] Furthermore, according to at least one embodiment of the present invention, the method further includes:

[0031] The first router sends data packets to multiple first servers;

[0032] Each first server receives the data packet and returns it to the first router; the data packet carries the load information detected by the corresponding first server.

[0033] The first router determines the target server from the plurality of first servers based on the load information returned by each first server.

[0034] At least one embodiment of the present invention provides a path selection device, the device comprising:

[0035] The sending unit is used to send data packets to the target server through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path;

[0036] A receiving unit is configured to receive the data packets sent by the target server through the multiple first paths;

[0037] The processing unit is used to determine the uplink path from the plurality of first paths based on the uplink path information returned by each first path.

[0038] At least one embodiment of the present invention provides a path selection device, the device comprising:

[0039] A communication interface is used to send data packets to a target server via multiple first paths; each data packet transmitted in a first path carries uplink path information detected by each second router in the corresponding path; and to receive the data packets sent by the target server via the multiple first paths.

[0040] A processor is configured to determine an uplink path from the plurality of first paths based on the uplink path information returned by each first path.

[0041] At least one embodiment of the present invention provides a path selection system, the system comprising:

[0042] The first router is used to send data packets to the target server through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path;

[0043] The target server is used to receive the data packet and return the data packet to the first router through the multiple first paths;

[0044] The first router is further configured to determine an uplink path from the plurality of first paths based on the uplink path information returned by each first path.

[0045] At least one embodiment of the present invention provides a communication device, including a processor and a memory for storing a computer program capable of running on the processor.

[0046] When the processor runs the computer program, it executes any of the steps of the methods described above.

[0047] At least one embodiment of the present invention provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of any of the methods described above.

[0048] The path selection method, apparatus, system, device, and storage medium provided in this invention include: a first router sending data packets to a target server via multiple first paths; each data packet transmitted along a first path carrying uplink path information probed by a second router along that path; the target server receiving the data packets; and returning the data packets to the first router via the multiple first paths; the first router determining an uplink path from the multiple first paths based on the uplink path information returned by each first path. Using the technical solution provided in this invention, the first router sends data packets for uplink probing to the target server via multiple first paths, thereby obtaining uplink path information for each first path, and then uses this uplink path information to specify an uplink path from the multiple first paths, thus achieving a relatively simple uplink path selection method. Attached Figure Description

[0049] Figure 1 This is a schematic diagram of a computing power sensing network in related technologies;

[0050] Figure 2 This is a schematic diagram of the system architecture for applying the path selection method in an embodiment of the present invention;

[0051] Figure 3 This is a schematic diagram illustrating the implementation process of the path selection method according to an embodiment of the present invention;

[0052] Figure 4 This is a schematic diagram illustrating how the target server's anycast address is obtained from the Domain Name System (DNS) server according to an embodiment of the present invention.

[0053] Figure 5 This is a schematic diagram of the specific implementation process of the path selection method in this embodiment of the invention. Figure 1 ;

[0054] Figure 6 This is a schematic diagram of the specific implementation process of the path selection method in this embodiment of the invention. Figure 2 ;

[0055] Figure 7 This is a schematic diagram of the composition structure of the path selection device according to an embodiment of the present invention;

[0056] Figure 8 This is a schematic diagram of the composition structure of the communication device according to an embodiment of the present invention;

[0057] Figure 9 This is a schematic diagram of the composition structure of the path selection system according to an embodiment of the present invention. Detailed Implementation

[0058] Before introducing the technical solutions of the embodiments of the present invention, the relevant technologies will be explained first.

[0059] Figure 1 This is a schematic diagram of a computing power-aware network in related technologies, such as... Figure 1 As shown, in a computing power-aware network, the network can perceive ubiquitous computing power and the network itself, and can also select the path and destination node for computing power perception. However, the existing technical shortcomings are: the computing power-aware network only considers the case of symmetrical paths, and does not define how to explicitly specify uplink and downlink paths, nor does it consider the characteristics of uplink and downlink traffic in actual business.

[0060] In related technologies, the service routing process bypasses the DNS resolution process, switching from IP-based addressing to service-based addressing, allowing for the selection of the destination server and downlink path. However, a technical drawback is that the service routing process only considers the selection of the downlink path. For many emerging services, uplink traffic is also significant, and uplink speed can affect the overall service performance. Furthermore, uplink and downlink paths may differ; therefore, the uplink path also needs to be selected.

[0061] Based on this, in various embodiments of the present invention, a first router sends data packets to a target server through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path; the target server receives the data packets; and returns the data packets to the first router through the multiple first paths; the first router determines an uplink path from the multiple first paths based on the uplink path information returned by each first path.

[0062] Figure 2 This is a schematic diagram of the system architecture for applying the path selection method in an embodiment of the present invention, as shown below. Figure 2 As shown, the system includes:

[0063] The first router, i.e. Figure 2 The ingress router R1;

[0064] The second router, i.e. Figure 2 Routers R2 and R3 along the route;

[0065] Target server, i.e. Figure 2 Server1 in the middle.

[0066] It is understood that the ingress router R1 can send data packets for uplink and downlink probing to servers Server1 and Server2 respectively.

[0067] It should be noted that there can be multiple paths between the first router and the target server, and multiple second routers are set up in each path. By using the uplink path information detected by each second router on each path, it is possible to specify the uplink path from multiple paths.

[0068] Figure 3 This is a schematic diagram illustrating the implementation flow of the path selection method according to an embodiment of the present invention, as follows: Figure 3 As shown, the method includes steps 301 to 303:

[0069] Step 301: The first router sends data packets to the target server through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path.

[0070] It is understood that the data packet may specifically refer to a Border Gateway Protocol (BGP) message.

[0071] It is understood that the first router sends the data packet to the target server through various second routers on different paths. Each second router on each path can write the detected uplink path information into the data packet.

[0072] In other words, the data packets received by the target server carry uplink path information detected by each second router on each first path. Therefore, by transmitting the data packets through different paths between the first router and the target server, the first router can obtain uplink path information corresponding to different paths, and thus select a better-performing uplink path from multiple first paths using the uplink path information corresponding to different paths.

[0073] It is understood that the multiple first paths between the first router and the target server can be determined by the controller based on the IP address of the target server.

[0074] Specifically, the first router sends a data packet to the controller; the data packet carries the IP address of the target server. The controller receives the data packet, uses the IP address of the target server carried in the data packet to determine multiple first paths, and sends the information of the multiple first paths in the data packet to the first router.

[0075] It is understood that the IP address of the target server can be determined by the first router through mapping based on the anycast address of the target server.

[0076] Specifically, such as Figure 4As shown, multiple servers providing the same service can be deployed in a DNS server using their anycast addresses. The terminal can then send a service request to the DNS server. This service request carries the domain name information of the target server. The DNS server receives the service request, uses the domain name information to determine the anycast address of the target server, and sends the obtained anycast address in a data packet to the terminal. The terminal then sends the anycast address of the target server to the first router. The first router receives the data packet from the terminal, parses it to obtain the anycast address of the target server, maps the anycast address to the IP address of the target server, and sends the IP address in the data packet to the controller.

[0077] It is understood that the IP address of the target server can also be determined by the terminal through mapping based on the anycast address of the target server.

[0078] Specifically, the terminal can obtain the anycast address of the target server from the DNS server, map the anycast address of the target server to the IP address of the target server, and carry the IP address in the data packet and send it to the controller through the first router.

[0079] It is understood that the target server can be determined by the first router based on the load information detected by different servers.

[0080] Specifically, the first router sends data packets to multiple servers. Each server receives the data packet and sends it back to the first router, carrying the detected load information within the packet. The load information carried in the data packet returned by each server characterizes the load balancing performance of each server. Thus, the first router can determine the server with the best load balancing performance from among the multiple servers as the target server based on the load information carried in the data packets returned by each server.

[0081] Step 302: The target server receives the data packet; and returns the data packet to the first router through the multiple first paths.

[0082] It is understandable that each second router in each first path writes the detected uplink path information into the data packet. Taking a second router as an example, the process of writing the detected uplink path information into the data packet includes: the second router parses the data packet to obtain the service transmission requirements; the service transmission requirements include multiple parameters; the second router probes each parameter included in the service transmission requirements to obtain the probe results; and the probe results are carried in the data packet as uplink path information.

[0083] It is understood that the service transmission requirements include multiple parameters, specifically parameters such as low latency requirements and high bandwidth requirements.

[0084] It is understood that when probing the high bandwidth requirement parameters included in the service transmission requirements, the probe result can be the available bandwidth, and when probing the low latency requirement parameters included in the service transmission requirements, the probe result can be a timestamp.

[0085] Step 303: The first router determines the uplink path from the plurality of first paths based on the uplink path information returned by each first path.

[0086] Specifically, firstly, the first router calculates a first value based on the uplink path information returned by each first path, obtaining multiple first values; the first value represents the cost of the uplink path. Then, the first router determines a first weight; the first weight is multiplied by the first value corresponding to each path, obtaining multiple first values. Finally, the multiple first paths are sorted according to the multiple first values ​​to obtain a sorting result; the first path corresponding to the first value in the sorting result that meets a preset condition is taken as the uplink path.

[0087] It is understandable that the first weight can be determined by the first router in combination with the characteristics of the service, specifically by combining the characteristics of the uplink traffic corresponding to the service.

[0088] Understandably, business characteristics can influence the selection of upstream paths during the path selection process. For example, when the upstream traffic of a business is large, it indicates that the upstream path corresponding to that business has a greater impact.

[0089] For example, suppose there are three first paths between the first router and the target server, denoted as path 1, path 2 and path 3, and the first weight is denoted as weight1.

[0090] First, calculate the first value based on the uplink path information returned by path 1, denoted by uplink path cost1; calculate the first value based on the uplink path information returned by path 2, denoted by uplink path cost2; calculate the first value based on the uplink path information returned by path 3, denoted by uplink path cost3.

[0091] Then, the product of the uplink path cost1 and weight1 is used to obtain the first value, which is represented by cost1×weight1; the product of the uplink path cost2 and weight1 is used to obtain the first value, which is represented by cost2×weight1; the product of the uplink path cost3 and weight1 is used to obtain the first value, which is represented by cost3×weight1.

[0092] Finally, the multiple first paths are sorted according to the multiple first values. The sorting result is assumed to be: (cost1×weight1)>(cost2×weight1)>(cost3×weight1). Then, path 1 can be used as the uplink path. Here, weight1 is determined by combining the uplink traffic characteristics of the service, such as bandwidth and latency.

[0093] It should be noted that there are multiple ways to calculate the first value using the uplink path information returned by each first path, and no limitation is made here.

[0094] It is understandable that when there are multiple target servers, the first router can also determine the uplink path from the multiple first paths based on the uplink path information returned by each first path and the load information detected by each target server.

[0095] Specifically, firstly, the first router calculates a first value based on the uplink path information returned by each first path, obtaining multiple first values; the first value represents the cost of the uplink path; and calculates a third value based on the load information returned by each target server, obtaining multiple third values; the third values ​​represent the network cost. Then, the first router determines a first weight and a third weight; it multiplies the first weight with the first value corresponding to each path to obtain multiple first values, and multiplies the third weight with the third value corresponding to each target server to obtain multiple third values. Finally, the multiple first paths are sorted according to the multiple first values ​​and multiple third values ​​to obtain a sorting result; the first path corresponding to the first value that meets a preset condition in the sorting result is taken as the uplink path.

[0096] It is understood that the first weight can be determined by the first router in combination with the characteristics of the uplink traffic corresponding to the service, and the third weight can be determined by the first router in combination with the network's computing power requirements.

[0097] For example, suppose there are three target servers: server1, server2, and server3. The first weight is represented by weight1, and the third weight is represented by weight3. The first path between the first router and server1 is represented by path1, path2, and path3; the first path between the first router and server2 is represented by path4 and path5; and the first path between the first router and server3 is represented by path6 and path7.

[0098] First, for server1, the calculated first values, represented by uplink path cost1, uplink path cost2, and uplink path cost3, are obtained from the uplink path information returned by each first path between server1 and server2. For server2, the calculated first values, represented by uplink path cost4 and uplink path cost5, are obtained from the uplink path information returned by each first path between server2 and server3. For server3, the calculated first values, represented by uplink path cost6 and uplink path cost7, are obtained from the uplink path information returned by each first path between server3 and server3.

[0099] The second step is to calculate the third value, denoted as network cost1, based on the load information returned by server1 for server1. Similarly, to calculate the third value, denoted as network cost2, based on the load information returned by server2 for server2. And to calculate the third value, denoted as network cost3, based on the load information returned by server3 for server3.

[0100] The third step involves multiplying the upstream path cost1 and weight1 to obtain the first value, represented as upstream path cost1 × weight1; multiplying the upstream path cost2 and weight1 to obtain the first value, represented as upstream path cost2 × weight1; multiplying the upstream path cost3 and weight1 to obtain the first value, represented as upstream path cost3 × weight1; multiplying the upstream path cost4 and weight1 to obtain the first value, represented as upstream path cost4 × weight1; multiplying the upstream path cost5 and weight1 to obtain the first value, represented as upstream path cost5 × weight1; multiplying the upstream path cost6 and weight1 to obtain the first value, represented as upstream path cost6 × weight1; and multiplying the upstream path cost7 and weight1 to obtain the first value, represented as upstream path cost7 × weight1.

[0101] Fourth step: Integrate network cost1 and weight3 to obtain the third value, represented by network cost1 × weight3; Integrate network cost2 and weight3 to obtain the third value, represented by network cost2 × weight3; Integrate network cost3 and weight3 to obtain the third value, represented by network cost3 × weight3.

[0102] Step 5: Summate the upstream path cost1×weight1 with the network cost1×weight3, and represent it as upstream path cost1×weight1 + network cost1×weight3. Summate the upstream path cost2×weight1 with the network cost1×weight3, and represent it as upstream path cost2×weight1 + network cost1×weight3. Summate the upstream path cost3×weight1 with the network cost1×weight3, and represent it as upstream path cost3×weight1 + network cost1×weight3. Summate the upstream path cost4×weight1 with the network cost2×weight3, and represent it as upstream path cost4×weight1 + network cost2×weight3. Summate the upstream path cost5×weight1 with the network cost2×weight3, and represent it as upstream path cost5×weight1 + network cost2×weight3. Summate the upstream path cost6×weight1 with the network cost3×weight3, and represent it as upstream path cost6×weight1 + network cost3×weight3. Summing the uplink path cost7×weight1 with the network cost3×weight3, we can express it as uplink path cost7×weight1 + network cost3×weight3.

[0103] It is understandable that business requirements can be mapped to network requirements and computing power requirements; wherein, the network requirements may include bandwidth and latency; and the computing power requirements may include service information, CPU and GPU requirements, etc.

[0104] Based on this, we can define the weight weight1 corresponding to the uplink path cost according to the characteristics of uplink traffic demand, and define the weight weight3 corresponding to the network cost according to network demand.

[0105] Where weight1 + weight3 = 1.

[0106] Finally, the multiple first paths are sorted according to the multiple first values ​​and multiple third values, and the sorting result is assumed to be:

[0107] (Upstream path cost1×weight1 + network cost1×weight3) > (Upstream path cost2×weight1 + network cost1×weight3) > (Upstream path cost3×weight1 + network cost1×weight3) > (Upstream path cost4×weight1 + network cost2×weight3) > (Upstream path cost5×weight1 + network cost2×weight3) > (Upstream path cost6×weight1 + network cost3×weight3)) > (Upstream path cost7×weight1 + network cost3×weight3)

[0108] Then the path corresponding to the highest sorted result, path 1, can be taken as the upstream path.

[0109] It should be noted that, in this embodiment of the invention, specifying the uplink path from multiple first paths has the following advantages:

[0110] (1) By sending data packets for uplink probing to the target server, uplink path information of multiple optional first paths is obtained, and then the uplink path information of multiple first paths is used to specify the uplink path, thereby realizing the specification of the uplink path of the service.

[0111] (2) For different services, the different characteristics of their uplink and downlink traffic will lead to different requirements for uplink and downlink paths during the path selection process. Therefore, when the first router selects an uplink path from multiple first paths, it not only considers the uplink path information, but also the characteristics of the uplink traffic corresponding to the service and the network's computing power requirements.

[0112] The implementation process of the path selection method will be described in detail below with reference to specific embodiments.

[0113] Example 1

[0114] Figure 5 This is a schematic diagram illustrating the specific implementation flow of the path selection method according to an embodiment of the present invention, as follows: Figure 5 As shown, the method includes steps 501 to 509:

[0115] Step 501: The terminal obtains the anycast address of the target server; and sends the anycast address of the target server in a data packet to the first router.

[0116] It is understandable that the anycast addresses of multiple servers for the same service can be deployed in the DNS server, so that the terminal can obtain the anycast address of the target server from the DNS server.

[0117] It is understandable that the first router may specifically refer to the ingress gateway.

[0118] Step 502: The first router receives the data packet sent by the terminal; parses the data packet to obtain the anycast address of the target server; and maps the anycast address of the target server to the IP address of the target server.

[0119] It is understood that the terminal can also send a service request to the first router; the service request is used to request the first router to complete the mapping of the target server's anycast address to an IP address.

[0120] Step 503: The first router sends the IP address of the target server in the data packet to the controller.

[0121] Step 504: The controller uses the IP address of the target server carried in the data packet to determine the multiple first paths; and sends the information of the multiple first paths in the data packet to the first router.

[0122] For example, as shown in Table 1, if the IP address of the target server is 172.255.208.255, then the multiple first paths between the first router and the target server are path 1, path 2 and path 4.

[0123] IP address of the target server The first path between the first router and the target server 172.255.255.255 Path 1, Path 2, Path 3 172.255.208.255 Path 1, Path 2, Path 4 172.255.208.210 Path 1, Path 2, Path 5

[0124] Table 1

[0125] Understandably, the controller can use the BGP-LS protocol to collect network link information to determine multiple primary paths between the first router and the target server.

[0126] Step 505: The first router uses the multiple first paths to send data packets to each second router in each first path.

[0127] Step 506: Each second router in each first path parses the data packet to obtain the service transmission requirement; the service transmission requirement includes multiple parameters; each parameter included in the service transmission requirement is probed to obtain the probe result; the probe result is carried as uplink path information in the data packet and sent to the target server.

[0128] Understandably, in the uplink direction, each second router in each first path fills the detected uplink path information into the data packet and sends it to the target server.

[0129] Step 507: The target server receives the data packet and sends the data packet to each of the second routers in each first path.

[0130] It is understood that the target server may also carry the detected load information in the data packet and send it to each of the second routers in each first path.

[0131] Step 508: Each second router in each first path parses the data packet to obtain the service transmission requirement; the service transmission requirement includes multiple parameters; each parameter included in the service transmission requirement is probed to obtain the probe result; the probe result is carried as downlink path information in the data packet and sent to the first router.

[0132] Understandably, in the downlink direction, each second router in each first path fills the detected downlink path information into a data packet and sends it to the first router.

[0133] Step 509: The first router specifies the uplink path and downlink path from the plurality of first paths based on the uplink path information and downlink path information returned by each first path.

[0134] It is understandable that the first router uses the uplink path information returned by each first path and the first weight corresponding to each first path to determine the decision strategy for the uplink path.

[0135] Specifically, firstly, the first router calculates a first value based on the uplink path information returned by each first path, obtaining multiple first values; the first value represents the cost of the uplink path. Then, the first router determines a first weight; the first weight is multiplied by the first value corresponding to each path, obtaining multiple first values. Finally, the multiple first paths are sorted according to the multiple first values ​​to obtain a sorting result; the first path corresponding to the first value in the sorting result that meets a preset condition is taken as the uplink path.

[0136] For example, suppose there are three first paths between the first router and the target server, denoted as path 1, path 2, and path 3, and the first weight is denoted as weight1. First, the first router calculates a first value based on the uplink path information returned by path 1, denoted as uplink path cost1; it calculates a first value based on the uplink path information returned by path 2, denoted as uplink path cost2; and it calculates a first value based on the uplink path information returned by path 3, denoted as uplink path cost3. Then, it multiplies uplink path cost1 and weight1 to obtain a first value, denoted as cost1×weight1; it multiplies uplink path cost2 and weight1 to obtain a first value, denoted as cost2×weight1; and it multiplies uplink path cost3 and weight1 to obtain a first value, denoted as cost3×weight1. Finally, the multiple first paths are sorted according to the multiple first values. Assuming the sorting result is (cost1×weight1)>(cost2×weight1)>(cost3×weight1), then path 1 can be considered the uplink path.

[0137] It is understandable that the first router uses the downlink path information returned by each first path and the second weight corresponding to each first path to determine the decision strategy for the downlink path.

[0138] Specifically, firstly, the first router calculates a second value based on the downlink path information returned by each first path, obtaining multiple second values; the second value represents the cost of the downlink path; the first router determines a second weight; the second weight is multiplied by the first value corresponding to each path to obtain multiple second values; the multiple first paths are sorted according to the multiple second values ​​to obtain a sorting result; the first path corresponding to the second value that meets the preset conditions in the sorting result is taken as the downlink path.

[0139] For example, suppose there are three first paths between the first router and the target server, denoted as path 1, path 2, and path 3, and the second weight is denoted as weight2. First, the first router calculates a first value based on the uplink path information returned by path 1, denoted as uplink path cost1; calculates a first value based on the uplink path information returned by path 2, denoted as uplink path cost2; and calculates a first value based on the uplink path information returned by path 3, denoted as uplink path cost3. Then, the product of uplink path cost1 and weight2 is calculated to obtain a first value, denoted as cost1×weight2; the product of uplink path cost2 and weight2 is calculated to obtain a first value, denoted as cost2×weight2; and the product of uplink path cost3 and weight1 is calculated to obtain a first value, denoted as cost3×weight2. Finally, the multiple first paths are sorted according to the multiple first values. Assuming the sorting result is: (cost3×weight2)>(cost2×weight2)>(cost1×weight2), then path 3 can be used as the downlink path.

[0140] It is understandable that when there are multiple target servers, the first router can also determine the uplink and downlink paths from the multiple first paths based on the uplink and downlink path information returned by each first path, and the load information probed by each target server. Specifically, this includes:

[0141] First, the first router calculates a first value based on the uplink path information returned by each first path, resulting in multiple first values; the first value represents the cost of the uplink path. Then, based on the downlink path information returned by each first path, it calculates a second value, resulting in multiple second values; the second value represents the cost of the downlink path. Finally, based on the load information returned by each target server, it calculates a third value, resulting in multiple third values; the third values ​​represent the cost of the network.

[0142] Then, the first router determines a first weight, a second weight, and a third weight; it multiplies the first weight with the first value corresponding to each path to obtain multiple first values; it multiplies the second weight with the first value corresponding to each path to obtain multiple second values; and it multiplies the third weight with the third value corresponding to each target server to obtain multiple third values.

[0143] Finally, the multiple first paths are sorted according to the multiple first values, multiple second values, and multiple third values ​​to obtain a sorting result; the first path corresponding to the first value that meets the preset conditions in the sorting result is taken as the uplink path and the downlink path.

[0144] For example, suppose there are three target servers: server1, server2, and server3. The first weight is represented by weight1, the second weight by weight2, and the third weight by weight3. The first path between the first router and server1 is represented by path1, path2, and path3; the first path between the first router and server2 is represented by path4 and path5; and the first path between the first router and server3 is represented by path6 and path7.

[0145] First, for server1, the calculated first values, represented by uplink path cost1, uplink path cost2, and uplink path cost3, are obtained from the uplink path information returned by each first path between server1 and server2. For server2, the calculated first values, represented by uplink path cost4 and uplink path cost5, are obtained from the uplink path information returned by each first path between server2 and server3. For server3, the calculated first values, represented by uplink path cost6 and uplink path cost7, are obtained from the uplink path information returned by each first path between server3 and server3.

[0146] The second step involves calculating multiple second values ​​for server1 using the downlink path information returned by each first path between server1 and server2, denoted as downlink path cost1, downlink path cost2, and downlink path cost3. For server2, the same calculations are performed using downlink path information returned by each first path between server2 and server3, denoted as downlink path cost4 and downlink path cost5. Finally, for server3, the same calculations are performed using downlink path information returned by each first path between server3 and server3, denoted as downlink path cost6 and downlink path cost7.

[0147] The third step is to calculate the third value, denoted as network cost1, based on the load information returned by server1 for server1. Similarly, to calculate the third value, denoted as network cost2, based on the load information returned by server2 for server2. And to calculate the third value, denoted as network cost3, based on the load information returned by server3 for server3.

[0148] Fourth step: Multiply the upstream path cost1 and weight1 to obtain the first value, represented by upstream path cost1 × weight1; multiply the upstream path cost2 and weight1 to obtain the first value, represented by upstream path cost2 × weight1; multiply the upstream path cost3 and weight1 to obtain the first value, represented by upstream path cost3 × weight1; multiply the upstream path cost4 and weight1 to obtain the first value, represented by upstream path cost4 × weight1; multiply the upstream path cost5 and weight1 to obtain the first value, represented by upstream path cost5 × weight1; multiply the upstream path cost6 and weight1 to obtain the first value, represented by upstream path cost6 × weight1; multiply the upstream path cost7 and weight1 to obtain the first value, represented by upstream path cost7 × weight1.

[0149] Step 5: Multiply the downlink path cost1 and weight2 to obtain the second value, represented as downlink path cost1 × weight2. Multiply the downlink path cost2 and weight2 to obtain the second value, represented as downlink path cost2 × weight2. Multiply the downlink path cost3 and weight2 to obtain the second value, represented as downlink path cost3 × weight2. Multiply the downlink path cost4 and weight2 to obtain the second value, represented as downlink path cost4 × weight2; multiply the downlink path cost5 and weight2 to obtain the second value, represented as downlink path cost5 × weight2; multiply the downlink path cost6 and weight2 to obtain the second value, represented as downlink path cost6 × weight2; multiply the downlink path cost7 and weight2 to obtain the second value, represented as downlink path cost7 × weight2.

[0150] Step 6: Integrate network cost1 and weight3 to obtain the third value, which is represented by network cost1 × weight3; Integrate network cost2 and weight3 to obtain the third value, which is represented by network cost2 × weight3; Integrate network cost3 and weight3 to obtain the third value, which is represented by network cost3 × weight3.

[0151] Step 7: Summate the uplink path cost1×weight1, downlink path cost1×weight2, and network cost1×weight3, representing the sum as uplink path cost1×weight1 + downlink path cost1×weight2 + network cost1×weight3. Summate the uplink path cost2×weight1, downlink path cost2×weight2, and network cost1×weight3, representing the sum as uplink path cost2×weight1 + downlink path cost2×weight2 + network cost1×weight3. Summate the uplink path cost3×weight1, downlink path cost3×weight2, and network cost1×weight3, representing the sum as uplink path cost3×weight1 + downlink path cost3×weight2 + network cost1×weight3. Summate the uplink path cost4×weight1, downlink path cost4×weight2, and network cost2×weight3, representing the sum as uplink path cost4×weight1 + downlink path cost4×weight2 + network cost2×weight3. Sum the uplink path cost 5 × weight 1, downlink path cost 5 × weight 2, and network cost 2 × weight 3, and express the sum as uplink path cost 5 × weight 1 + downlink path cost 5 × weight 2 + network cost 2 × weight 3. Sum the uplink path cost 6 × weight 1, downlink path cost 6 × weight 2, and network cost 3 × weight 3, and express the sum as uplink path cost 6 × weight 1 + downlink path cost 6 × weight 2 + network cost 3 × weight 3. Sum the uplink path cost 7 × weight 1, downlink path cost 7 × weight 2, and network cost 3 × weight 3, and express the sum as uplink path cost 7 × weight 1 + downlink path cost 7 × weight 2 + network cost 3 × weight 3.

[0152] It is understandable that business requirements can be mapped to network requirements and computing power requirements; wherein, the network requirements may include bandwidth and latency; and the computing power requirements may include service information, CPU and GPU requirements, etc.

[0153] Furthermore, based on the relevant information provided by the business, the network requirements can be further refined into uplink traffic requirements and downlink traffic requirements.

[0154] Based on this, we can define the weight1 corresponding to the uplink path cost according to the characteristics of uplink traffic demand, the weight2 corresponding to the downlink path cost according to the characteristics of downlink traffic demand, and the weight3 corresponding to the network cost according to the computing power demand.

[0155] Among them, weight1+weight2+weight3=1.

[0156] Finally, the multiple first paths are sorted according to the multiple first values, multiple second values, and multiple third values. The sorting result is assumed to be:

[0157] (Uplink path cost1×weight1 + Downlink path cost1×weight2 + Network cost1×weight3) > (Uplink path cost2×weight1 + Downlink path cost2×weight2 + Network cost1×weight3) > (Uplink path cost3×weight1 + Downlink path cost3×weight2 + Network cost1×weight3) > (Uplink path cost4×weight1 + Downlink path cost4×weight2 + Network cost2×weight3) > (Uplink path cost5×weight1 + Downlink path cost5×weight2 + Network cost2×weight3) > (Uplink path cost6×weight1 + Downlink path cost6×weight2 + Network cost3×weight3) > (Uplink path cost7×weight1 + Downlink path cost7×weight2 + Network cost3×weight3)

[0158] Then the path 1 corresponding to the highest sorted result can be used as both the uplink and downlink paths.

[0159] It should be noted that, in this embodiment of the invention, the first router specifies the uplink and downlink paths from multiple first paths, which has the following advantages:

[0160] (1) By sending data packets for uplink and downlink probing to the target server, the uplink and downlink path information of multiple first paths can be obtained. Then, the uplink and downlink path information of multiple first paths can be used to specify the uplink and downlink paths, thereby enabling the specification of the uplink and downlink paths of the service.

[0161] (2) For different services, the different characteristics of their uplink and downlink traffic will lead to different requirements for uplink and downlink paths during the path selection process. Therefore, when the first router selects uplink and downlink paths from multiple first paths, it not only considers uplink and downlink path information, but also the characteristics of uplink and downlink traffic and computing power requirements corresponding to the service.

[0162] Example 2

[0163] Figure 6 This is a schematic diagram illustrating the specific implementation flow of the path selection method according to an embodiment of the present invention, as follows: Figure 6 As shown, the method includes steps 601 to 609:

[0164] Step 601: The terminal obtains the anycast address of the target server; and sends the anycast address of the target server in a data packet to the first router.

[0165] It is understandable that the anycast addresses of multiple servers for the same service can be deployed in the DNS server, so that the terminal can obtain the anycast address of the target server from the DNS server.

[0166] Step 602: The first router receives the data packet sent by the terminal; parses the data packet to obtain the anycast address of the target server; and maps the anycast address of the target server to the IP address of the target server.

[0167] It is understood that the terminal can also send a service request to the first router; the service request is used to request the first router to complete the mapping of the target server's anycast address to an IP address.

[0168] Step 603: The first router sends the IP address of the target server in the data packet to the controller.

[0169] Step 604: The controller uses the IP address of the target server carried in the data packet to determine the multiple first paths; and sends the information of the multiple first paths in the data packet to the first router.

[0170] For example, as shown in Table 1, if the IP address of the target server is 172.255.208.255, then the multiple first paths between the first router and the target server are path 1, path 2 and path 4.

[0171] Understandably, the controller can use the BGP-LS protocol to collect network link information to determine multiple primary paths between the first router and the target server.

[0172] Step 605: The first router uses the multiple first paths to send data packets to each second router in each first path.

[0173] Step 606: Each second router in each first path parses the data packet to obtain the service transmission requirement; the service transmission requirement includes multiple parameters; each parameter included in the service transmission requirement is probed to obtain the probe result; the probe result is carried as uplink path information in the data packet and sent to the target server.

[0174] Understandably, in the uplink direction, each second router in each first path fills the detected uplink path information into the data packet and sends it to the target server.

[0175] Step 607: The target server receives the data packet and sends the data packet to each of the second routers in each first path.

[0176] Step 608: Each second router in each first path parses the data packet to obtain the service transmission requirement; the service transmission requirement includes multiple parameters; each parameter included in the service transmission requirement is probed to obtain the probe result; the probe result is carried as downlink path information in the data packet and sent to the controller.

[0177] Understandably, in the downlink direction, each second router in each first path fills the detected downlink path information into a data packet and sends it to the first router.

[0178] Step 609: The controller determines the uplink path and downlink path from the plurality of first paths based on the uplink path information and downlink path information returned by each first path.

[0179] It is understood that the controller uses the uplink path information returned by each first path and the first weight corresponding to each first path to determine the decision strategy for the uplink path.

[0180] Specifically, firstly, the controller calculates a first value based on the uplink path information returned by each first path, obtaining multiple first values; the first value represents the cost of the uplink path. Then, the first router determines a first weight; the first weight is multiplied by the first value corresponding to each path, obtaining multiple first values. Finally, the multiple first paths are sorted according to the multiple first values ​​to obtain a sorting result; the first path corresponding to the first value in the sorting result that meets a preset condition is taken as the uplink path.

[0181] For example, suppose there are three first paths between the first router and the target server, denoted as path 1, path 2, and path 3, and the first weight is denoted as weight1. First, the controller calculates a first value based on the uplink path information returned by path 1, denoted as uplink path cost1; calculates a first value based on the uplink path information returned by path 2, denoted as uplink path cost2; and calculates a first value based on the uplink path information returned by path 3, denoted as uplink path cost3. Then, the product of uplink path cost1 and weight1 is calculated to obtain a first value, denoted as cost1×weight1; the product of uplink path cost2 and weight1 is calculated to obtain a first value, denoted as cost2×weight1; and the product of uplink path cost3 and weight1 is calculated to obtain a first value, denoted as cost3×weight1. Finally, the multiple first paths are sorted according to the multiple first values. Assuming the sorting result is: (cost1×weight1)>(cost2×weight1)>(cost3×weight1), then path 1 can be considered the uplink path.

[0182] It is understood that the controller uses the downlink path information returned by each first path and the second weight corresponding to each first path to determine the decision strategy for the downlink path.

[0183] Specifically, firstly, the controller calculates a second value based on the downlink path information returned by each first path, obtaining multiple second values; the second value represents the cost of the downlink path; the first router determines a second weight; the second weight is multiplied by the first value corresponding to each path to obtain multiple second values; the multiple first paths are sorted according to the multiple second values ​​to obtain a sorting result; the first path corresponding to the second value that meets the preset conditions in the sorting result is taken as the downlink path.

[0184] For example, suppose there are three first paths between the first router and the target server, denoted as path 1, path 2, and path 3, and the second weight is denoted as weight2. First, the controller calculates a first value based on the uplink path information returned by path 1, denoted as uplink path cost1; calculates a first value based on the uplink path information returned by path 2, denoted as uplink path cost2; and calculates a first value based on the uplink path information returned by path 3, denoted as uplink path cost3. Then, the product of uplink path cost1 and weight2 is calculated to obtain a first value, denoted as cost1×weight2; the product of uplink path cost2 and weight2 is calculated to obtain a first value, denoted as cost2×weight2; and the product of uplink path cost3 and weight1 is calculated to obtain a first value, denoted as cost3×weight2. Finally, the multiple first paths are sorted according to the multiple first values. Assuming the sorting result is: (cost3×weight2)>(cost2×weight2)>(cost1×weight2), then path 3 can be used as the downlink path.

[0185] It should be noted that, in this embodiment of the invention, the controller specifies the uplink and downlink paths from multiple first paths, which has the following advantages:

[0186] (1) By sending data packets for uplink and downlink probing to the target server, the uplink and downlink path information of multiple first paths can be obtained. Then, the uplink and downlink path information of multiple first paths can be used to specify the uplink and downlink paths, thereby enabling the specification of the uplink and downlink paths of the service.

[0187] (2) For different services, the different characteristics of their uplink and downlink traffic will lead to different requirements for uplink and downlink paths during the path selection process. Therefore, when the first router selects uplink and downlink paths from multiple first paths, it not only considers uplink and downlink path information, but also the characteristics of the uplink traffic and service requirements corresponding to the service.

[0188] To implement the path selection method of this invention, this invention also provides a path selection device, which is installed on the first router. Figure 7 This is a schematic diagram of the composition of the path selection device according to an embodiment of the present invention; as shown below. Figure 7 As shown, the device includes:

[0189] The sending unit 71 is used to send data packets to the target server through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path;

[0190] Receiving unit 72 is used to receive the data packets sent by the target server through the multiple first paths;

[0191] Processing unit 73 is used to determine an uplink path from the plurality of first paths based on the uplink path information returned by each first path.

[0192] In one embodiment, the sending unit 71 is further configured to: send the data packet to the controller before sending the data packet to the target server via multiple first paths; the data packet carries the IP address of the target server;

[0193] Accordingly, the receiving unit 72 is further configured to: receive data packets sent by the controller; the data packets carry information about multiple first paths; the multiple first paths are determined by the controller based on the IP address of the target server.

[0194] In one embodiment, the receiving unit 72 is further configured to: receive a data packet sent by a terminal; the data packet carries the anycast address of the target server;

[0195] Accordingly, the processing unit 73 is further configured to: parse the data packet to obtain the anycast address of the target server; and map the anycast address to an IP address;

[0196] Accordingly, the sending unit 71 is further configured to: carry the IP address in the data packet and send it to the controller.

[0197] In one embodiment, when a data packet is sent to a target server, each second router in each first path parses the data packet to obtain a service transmission requirement; the service transmission requirement includes multiple parameters; each second router in each first path probes each parameter included in the service transmission requirement to obtain a probe result; and the probe result is carried in the data packet as uplink path information.

[0198] In one embodiment, the processing unit 73 is specifically used for:

[0199] Based on the uplink path information returned by each first path, a first value is calculated to obtain multiple first values; the first value represents the cost of the uplink path; a first weight is determined; the first weight and the first value corresponding to each path are multiplied to obtain multiple first values; the multiple first paths are sorted according to the multiple first values ​​to obtain a sorting result; the first path corresponding to the first value that meets the preset conditions in the sorting result is taken as the uplink path.

[0200] In one embodiment, the target server receives the data packet and returns the data packet to the first router through the multiple first paths; the data packet transmitted in each first path carries downlink path information detected by each second router in the corresponding path.

[0201] The processing unit 73 is further configured to: determine a downlink path from the plurality of first paths based on the downlink path information returned by each first path.

[0202] In one embodiment, each second router in each first path parses the data packet to obtain the service transmission requirement; the service transmission requirement includes multiple parameters; each second router in each first path probes each parameter included in the service transmission requirement to obtain a probe result; and the probe result is carried in the data packet as downlink path information.

[0203] In one embodiment, the processing unit 73 is specifically used for:

[0204] The first router calculates a second value based on the downlink path information returned by each first path, resulting in multiple second values; the second value represents the cost of the downlink path.

[0205] The first router determines a second weight; it multiplies the second weight with the first value corresponding to each path to obtain multiple second values; it sorts the multiple first paths according to the multiple second values ​​to obtain a sorting result; and it takes the first path corresponding to the second value in the sorting result that meets the preset condition as the downlink path.

[0206] In one embodiment, the sending unit 71 is further configured to send data packets to a plurality of first servers.

[0207] Accordingly, the receiving unit 72 is further configured to: receive data packets sent by each of the first servers respectively; the data packets carry load information detected by the corresponding first server;

[0208] Accordingly, the processing unit 73 is further configured to: determine the target server from the plurality of first servers based on the load information returned by each first server.

[0209] In practical applications, the sending unit 71 and the receiving unit 72 can be implemented by the communication interface in the path selection device. The processing unit 73 can be implemented by the processor in the path selection device.

[0210] It should be noted that the path selection device provided in the above embodiments is only illustrated by the division of the above program modules. In actual applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device can be divided into different program modules to complete all or part of the processing described above. In addition, the path selection device and the path selection method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0211] This invention also provides a communication device, which can be the first router, such as... Figure 8 As shown, it includes:

[0212] Communication interface 81 enables information exchange with other devices;

[0213] The processor 82, connected to the communication interface 81, is used to execute the methods provided by one or more technical solutions on the first router side when running a computer program. The computer program is stored in the memory 83.

[0214] It should be noted that the specific processing procedures of the processor 82 and the communication interface 81 are detailed in the method embodiment and will not be repeated here.

[0215] Of course, in practical applications, the various components in communication device 80 are coupled together through bus system 84. It can be understood that bus system 84 is used to realize communication between these components. In addition to a data bus, bus system 84 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 8 The general labeled all buses as Bus System 84.

[0216] The memory 83 in this embodiment is used to store various types of data to support the operation of the communication device 80. Examples of such data include any computer program used to operate on the communication device 80.

[0217] The methods disclosed in the embodiments of this application can be applied to the processor 82, or implemented by the processor 82. The processor 82 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in the processor 82 or by instructions in the form of software. The processor 82 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The processor 82 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly reflected as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, which is located in the memory 83. The processor 82 reads the information in the memory 83 and combines its hardware to complete the steps of the aforementioned method.

[0218] In an exemplary embodiment, the communication device 80 may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.

[0219] It is understood that the memory (memory 83) in the embodiments of this application can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or magnetic tape storage. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memories described in the embodiments of this application are intended to include, but are not limited to, these and any other suitable types of memories.

[0220] In an exemplary embodiment, the present invention also provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium, such as a memory 81 storing a computer program, which can be executed by the processor 82 of the communication device 80 to complete the steps described in the aforementioned control server-side method. The computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM.

[0221] It should be noted that terms such as "first" and "second" are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0222] Furthermore, the technical solutions described in the embodiments of the present invention can be combined arbitrarily without conflict.

[0223] The above description is merely a preferred embodiment of the present invention and is not intended to limit the scope of protection of the present invention.

[0224] Figure 9 This is a schematic diagram of the composition structure of the path selection system according to an embodiment of the present invention, as shown below. Figure 9 As shown, the system includes:

[0225] The first router 91 is used to send data packets to the target server 92 through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path;

[0226] The target server 92 is used to receive the data packet and return the data packet to the first router 91 through the multiple first paths;

[0227] The first router 91 is further configured to determine an uplink path from the plurality of first paths based on the uplink path information returned by each first path.

[0228] It should be noted that the implementation process of the first router 91 and the target server 92 has been described above and will not be repeated here.

Claims

1. A path selection method, characterized in that, The method includes: The first router sends data packets to the target server through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path, wherein the uplink path information is the detection result obtained by each second router from the parameters included in the service transmission requirements of the data packets; The target server receives the data packet and returns it to the first router via the multiple first paths. The first router determines the uplink path from the plurality of first paths based on the uplink path information returned by each first path.

2. The method according to claim 1, characterized in that, Before the first router sends the data packet to the target server via multiple first paths, the method further includes: The first router sends a data packet to the controller; the data packet carries the network interconnection protocol IP address of the target server; The controller receives the data packet; uses the IP address of the target server carried in the data packet to determine the multiple first paths; and sends the information of the multiple first paths in the data packet to the first router.

3. The method according to claim 2, characterized in that, The first router sends data packets to the controller, including: The first router receives data packets sent by the terminal; the data packets carry the anycast address of the target server; The first router parses the data packet to obtain the anycast address of the target server; maps the anycast address to an IP address, and sends the IP address in the data packet to the controller.

4. The method according to claim 1, characterized in that, When sending data packets to the target server, the method further includes: Each second router in the first path parses the data packets to obtain the service transmission requirements; the service transmission requirements include multiple parameters. Each second router in each first path probes each parameter included in the service transmission requirement and obtains the probe results; the probe results are then carried in the data packet as uplink path information.

5. The method according to claim 1 or 4, characterized in that, The first router determines an uplink path from the plurality of first paths based on the uplink path information returned by each first path, including: The first router calculates a first value based on the uplink path information returned by each first path, and obtains multiple first values; the first value represents the cost of the uplink path. The first router determines a first weight; it multiplies the first weight with a first value corresponding to each path to obtain multiple first values; it sorts the multiple first paths according to the multiple first values ​​to obtain a sorting result; The first path corresponding to the first value in the sorting results that meets the preset conditions is taken as the uplink path.

6. The method according to claim 1, characterized in that, The method further includes: The target server receives the data packet and returns it to the first router via the multiple first paths; the data packet transmitted in each first path carries downlink path information detected by each second router in the corresponding path; The first router determines the downlink path from the plurality of first paths based on the downlink path information returned by each first path.

7. The method according to claim 6, characterized in that, When returning the data packet to the first router, the method further includes: Each second router in the first path parses the data packets to obtain the service transmission requirements; the service transmission requirements include multiple parameters. Each second router in each first path probes each parameter included in the service transmission requirement and obtains the probe results; the probe results are then carried in the data packet as downlink path information.

8. The method according to claim 6 or 7, characterized in that, The first router determines a downlink path from the plurality of first paths based on the downlink path information returned by each first path, including: The first router calculates a second value based on the downlink path information returned by each first path, resulting in multiple second values; the second value represents the cost of the downlink path. The first router determines a second weight; it multiplies the second weight with a first value corresponding to each path to obtain multiple second values; and it sorts the multiple first paths according to the multiple second values ​​to obtain a sorting result. The first path corresponding to the second value in the sorting results that meets the preset conditions is taken as the downlink path.

9. The method according to claim 1, characterized in that, The method further includes: The first router sends data packets to multiple first servers; Each first server receives the data packet and returns it to the first router; the data packet carries the load information detected by the corresponding first server. The first router determines the target server from the plurality of first servers based on the load information returned by each first server.

10. A path selection device, characterized in that, The device includes: The sending unit is used to send data packets to the target server through multiple first paths; the data packets transmitted in each first path carry uplink path information detected by each second router in the corresponding path, wherein the uplink path information is the detection result obtained by each second router from the parameters included in the service transmission requirements of the data packets; A receiving unit is configured to receive the data packets sent by the target server through the multiple first paths; The processing unit is used to determine the uplink path from the plurality of first paths based on the uplink path information returned by each first path.

11. A path selection device, characterized in that, The device includes: A communication interface is used to send data packets to a target server through multiple first paths; each data packet transmitted in the first path carries uplink path information detected by each second router in the corresponding path; and to receive the data packets sent by the target server through the multiple first paths, wherein the uplink path information is the detection result obtained by each second router from the parameters included in the service transmission requirements of the data packets. A processor is configured to determine an uplink path from the plurality of first paths based on the uplink path information returned by each first path.

12. A path selection system, characterized in that, The system includes: A first router is used to send data packets to a target server through multiple first paths; each data packet transmitted in a first path carries uplink path information detected by each second router in the corresponding path, wherein the uplink path information is the detection result obtained by each second router from the parameters included in the service transmission requirements of the data packet; The target server is used to receive the data packet and return the data packet to the first router through the multiple first paths; The first router is further configured to determine an uplink path from the plurality of first paths based on the uplink path information returned by each first path.

13. A communication device, characterized in that, This includes a processor and memory for storing computer programs that can run on the processor. When the processor is used to run the computer program, it performs the steps of the method according to any one of claims 1 to 9.

14. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Data transmission method, node and gateway

    CN101388831A