Path combination selection for multipath sessions
Patent Information
- Application Number
- CN202510928627.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2025-04-29
- Filing Date
- 2025-07-07
- Publication Date
- 2026-10-30
Smart Images

Figure CN123020455A_ABST
Abstract
Description
Background Technology
[0001] Computing environments such as data centers, cloud environments, or other types of computing environments can provide services to client devices. Client devices can access these computing environments over a network. Attached Figure Description
[0002] Some implementations of this disclosure are described with reference to the following figures.
[0003] Figure 1 It is a block diagram based on some examples of the layout of client devices, intermediate network devices, and computing environments.
[0004] Figure 2 This is a flowchart of a path combination selection process based on some examples of this disclosure.
[0005] Figure 3 It is a block diagram of a storage medium with machine-readable instructions based on some examples of storage.
[0006] Figure 4 It is a block diagram of a system based on some examples.
[0007] Figure 5 It is a flowchart based on some examples.
[0008] In all the accompanying drawings, the same reference numerals designate similar but not necessarily identical elements. The drawings are not necessarily drawn to scale, and the dimensions of some parts may be exaggerated to more clearly illustrate the examples shown. Furthermore, the drawings provide examples and / or implementations consistent with the specification; however, the specification is not limited to the examples and / or implementations provided in the drawings. Detailed Implementation
[0009] Client devices can communicate with a computing environment through network devices in a network deployment. Examples of network devices include switches, wireless access points, gateways, concentrators, or other network devices. A network device can have multiple network paths to the computing environment. In some examples, the network device can implement the Multipath Transmission Control Protocol (MPTCP), which is described in Request for Comments (RFC) 8684, published in March 2020, entitled "TCP Extensions for Multipath Operation with Multiple Addresses." MPTCP allows client devices to establish TCP connections with the computing environment (where the TCP connection passes through a network device implementing MPTCP) to utilize multiple network paths between the network device and the computing environment. These multiple network paths are called "uplink paths," and bidirectional communication between the client device and the computing environment can occur through these network paths.
[0010] The MPTCP scheduler in a network device can establish a multipath connection (MPTCP session) containing multiple sub-streams located on corresponding uplink paths. Throughput can be improved by concurrently transmitting data from the MPTCP session on the uplink path. The MPTCP scheduler can dynamically add or remove sub-streams within the multipath connection. Furthermore, the MPTCP scheduler can implement redundancy by transmitting duplicate packets on multiple uplink paths. The MPTCP scheduler can also reduce the latency of the MPTCP session by selecting the uplink path with the lower latency for packet transmission.
[0011] The performance of an MPTCP session may be affected if there are significant performance differences in the uplink paths, or if some uplink paths fail or become overloaded. For example, after establishing an MPTCP session using multiple uplink paths, the performance of a given uplink path may suddenly degrade. Although the MPTCP scheduler can handle this sudden performance degradation by routing data away from that given uplink path, the scheduler's response time may be slow, potentially impacting the overall performance of the MPTCP session.
[0012] According to some implementations of this disclosure, metrics of multiple network paths (e.g., uplink paths) connected to a computing environment can be collected to determine the performance of corresponding path combinations of the multiple network paths. Each path combination includes a distinct subset of the network paths among the multiple network paths. Based on the determined performance, a path combination for a multipath session between a client device and the computing environment is selected from these path combinations. The selected path combination can be based on a strategy targeting an entity associated with the multipath session, where the entity can be a user of the client device, a user group to which the user is a part, an application running on the client device, a provider of the computing environment, or any other entity. The strategy can include preferences for reducing costs in terms of monetary or resource usage costs, improving performance (e.g., reducing latency, increasing throughput, reducing error rates, etc.), or any other preference.
[0013] In some examples, machine learning models can use these metrics to generate performance metrics for corresponding path combinations. For instance, a machine learning model can use these metrics as input to indicate the performance of a given path combination based on its ranking. Using these metrics, the machine learning model can predict whether the performance of a path combination (e.g., cost performance or operational performance) has degraded or is likely to degrade. This prediction allows for a faster response to changes in the condition of multiple network paths. For example, if a prediction determines that the path combination currently selected for a multipath session may no longer satisfy a given policy, a different path combination that will satisfy the given policy can be selected. The ability to select path combinations that are more likely to satisfy the policy associated with a multipath session improves the computing capabilities of client devices or related technologies of network communications.
[0014] In addition to increasing the likelihood that the selected path combination satisfies the policies associated with multipath sessions, techniques or mechanisms according to some examples of this disclosure can also address the slow start characteristic of TCP sessions (including MPTCP sessions). In TCP sessions, the slow start characteristic is provided for congestion control to avoid sending more data than the network can transmit. According to some examples of this disclosure, using the path combination selected for an MPTCP session can improve the slow start performance of the MPTCP session by allowing the congestion window to grow more quickly and allowing the transmission rate to increase more quickly.
[0015] Figure 1 This is a block diagram illustrating an example arrangement of client device 102, intermediate network device 104, and computing environment 106. Computing environment 106 can be a data center, cloud environment, or other type of computing environment. In another example, multiple client devices can be connected to computing environment 106 via intermediate network device 104. Furthermore, multiple intermediate network devices can exist between the client devices and computing environment 106.
[0016] An "intermediate" network device is a network device that forwards data between other devices, such as client device 102 and devices in computing environment 106. Examples of intermediate network devices can include a branch gateway or any other type of gateway, router, switch, or other type of network device, or some combination thereof. A branch gateway is an edge router that can be coupled to the computing environment via a network path. A branch gateway may be part of a software-defined wide area network (SD-WAN) used to manage the network paths(s) that will be used for data communication between client devices and computing environment 106.
[0017] According to some examples of this disclosure, intermediate network device 104 includes a multipath connection engine 108 that can establish multipath sessions for traffic between client device 102 (or another client device) and computing environment 106. Examples of traffic include TCP streams, where the exchange of data packets between client device 102 and computing environment 106 occurs via a TCP connection established according to the TCP protocol. If TCP is used, the multipath session is an MPTCP session, where data packets from the TCP stream are transmitted via substreams on the corresponding network paths of the MPTCP session.
[0018] In other examples, multipath sessions can be based on different protocols, including any of the following: Multipath Fast User Datagram Protocol (UDP) Internet Connection (QUIC) protocol; Flow Control Transport Protocol with Concurrent Multipath Delivery (SCTP with CMT); Multipath Datagram Congestion Control Protocol (MP-DCCP); or other protocols, whether standardized, open source, or proprietary.
[0019] although Figure 1 An example is shown where a multipath connection engine 108 is part of an intermediate network device 104, but in different examples, a client device (such as client device 102) may include a multipath connection engine to establish a multipath session (e.g., an MPTCP session) between the client device and the computing environment 106. Techniques or mechanisms according to some examples of this disclosure may be used in conjunction with a multipath connection engine in a client device.
[0020] In some examples, the multipath connection engine 108 can establish multipath sessions for specific types of data flows. For instance, it can establish multipath sessions for data flows from specific types of applications (e.g., application types considered more important or critical than other application types). In such examples, the multipath connection engine 108 will not establish multipath sessions for less important application types. In another example, if the multipath connection engine 108 determines that the current performance of a data flow is affected (e.g., a specified threshold is not met), the multipath connection engine 108 may decide to establish a multipath session for that data flow. In other examples, the multipath connection engine 108 may decide to establish a multipath session for a data flow based on historical trends, routing rules, etc. More generally, the multipath connection engine 108 can selectively establish multipath sessions for selected data flows, but not for other data flows.
[0021] Intermediate network device 104 includes multiple network interfaces 110-1, 110-2, ..., 110-N (where N ≥ 3). A “network interface” may include transceivers for transmitting and receiving signals, and one or more protocol layers that govern how data is transmitted using appropriate communication protocols. For example, network interface 110-1 may support communication according to the Multiprotocol Label Switching (MPLS) protocol, which forwards data based on tags rather than network addresses. Tags identify network paths rather than endpoints. Network interface 110-2 may support communication over cellular networks such as fourth-generation (4G), fifth-generation (5G), or ultra-mobile communication networks. Network interface 110-N may support communication over wired networks according to the Ethernet protocol. While specific examples of different types of communication technologies have been listed above, it should be noted that in other examples, network interfaces 110-1 through 110-N may support additional or alternative communication technologies.
[0022] Network interfaces 110-1, 110-2, ..., 110-N are connected to computing environment 106 via corresponding network paths (described as uplink paths 112-1, 112-2, ..., 112-N). A multipath session established with computing environment 106 for traffic can include path combinations consisting of two or more uplink paths 112-1 to 112-N. For example, a first path combination may include a first subset of uplink paths 112-1 to 112-N, a second path combination may include a different subset of uplink paths 112-1 to 112-N, and so on. More generally, if there are N uplink paths, the path combination can include 2 to N-1 uplink paths.
[0023] The multipath connection engine 108 can be implemented using one or more hardware processing circuits, which may include any or a combination of a microprocessor, the core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or other hardware processing circuits. Alternatively, the multipath connection engine 108 can be implemented using one or more hardware processing circuits and a combination of machine-readable instructions (software and / or firmware) executable on the one or more hardware processing circuits.
[0024] According to some examples of this disclosure, the multipath connection engine 108 includes a path combination selector 114. The path combination selector 114 may be implemented using a portion of the hardware processing circuitry of the multipath connection engine 108, or using machine-readable instructions executed by the hardware processing circuitry of the multipath connection engine 108.
[0025] For each multipath session, path combiner 114 can select a suitable path combination that includes a subset of uplink paths 112-1 to 112-N. Path combiner 114 can obtain metrics (e.g., cost metrics, operational performance metrics, etc.) from a metric collector 116 located within (or outside) intermediate network device 104. Metric collector 116 can be implemented using one or more hardware processing circuits, or using a combination of one or more hardware processing circuits and machine-readable instructions.
[0026] Cost metrics may include any one or a combination of the following: a metric representing the monetary cost associated with utilizing the uplink path, or a metric representing the cost in terms of resource utilization (such as the utilization of processing, storage, and / or communication resources).
[0027] Operational performance metrics indicate the operational status of the uplink path. Examples of operational performance metrics may include any one or a combination of the following: uplink path latency (delay in data communication), uplink path throughput (e.g., bits transmitted per time interval), uplink path error rate, TCP congestion window (used to limit the amount of data that can be transmitted within a time interval), bandwidth availability (how much bandwidth is available on the uplink path), uplink path jitter, round-trip time (RTT) of data on the uplink path, delay distribution (representing the range of delays experienced by data packets), packet reordering metric (indicating the degree of reordering of out-of-order data packets received at the receiver), or any other operational performance metric.
[0028] Operational performance metrics can be acquired as part of a health check initiated by metric collector 116. Health checks can be performed on a repetitive basis (e.g., once per health check interval) or in response to other events (e.g., error indication, fault indication, overload indication, etc.).
[0029] Based on metrics from metric collector 116, path combination selector 114 determines the performance (e.g., cost performance, operational performance, etc.) of corresponding path combinations (which include different subsets of uplink paths 112-1 to 112-N). Based on a policy, path combination selector 114 can select the path combination for the multipath session of client device 102 from multiple path combinations. For example, if the policy includes a preference for reducing costs, then path combination selector 114 can select a lower-cost path combination. As another example, if the policy includes a preference for improving operational performance, then path combination selector 114 can select a path combination with higher operational performance. It should be noted that the policy can include preferences based on multiple factors, such as a combination including lower cost and improved operational performance.
[0030] In some examples of this disclosure, metrics from metric collector 116 may be fed into machine learning model 118, which may be part of or separate from path combination selector 114. Machine learning model 118 uses these metrics to generate performance data for corresponding path combinations. This performance data may include predicted performance data that provides expected performance for the corresponding path combinations over future time intervals based on these metrics. For example, given the current values of metrics from metric collector 116, machine learning model 118 may predict performance degradation (e.g., in terms of cost and / or operational performance) for a given path combination over future time intervals, even if the given path combination is not currently experiencing performance degradation.
[0031] In some examples, machine learning model 118 can indicate the performance of a given path combination by ranking it using a metric as input. For example, machine learning model 118 can output a ranking indicator for the given path combination. The ranking indicator can include a numerical value (or other type of value) specifying the relative ranking of the given path combination. More generally, machine learning model 118 can output a performance indicator representing the performance of the given path combination. The performance indicator can include a value representing the corresponding performance of the path combination (e.g., cost and / or operational performance). Alternatively, the performance indicator can include a ranking indicator specifying the ranking of a given path combination relative to another path combination.
[0032] The metric collector 116 can receive metrics from various sources, including hardware and / or software sensors, that measure the characteristics of each uplink path from 112-1 to 112-N. Other sources may include websites, data repositories, etc.
[0033] Because the metric collector 116 continuously provides metrics to the machine learning model 118, the machine learning model 118 can dynamically indicate different performances of corresponding path combinations as the metric values change. Furthermore, the machine learning model 118 can be continuously trained so that it can improve its predictions of the performance of corresponding path combinations.
[0034] Examples of machine learning models 118 may include any one or a combination of the following: multi-label decision tree (ML-DT) models, autoregressive integral moving average (ARIMA) models, long short-term memory (LSTM) models, Prophet models, or other types of machine learning models.
[0035] In some examples, the metric collector 116 can collect metrics in individual test sessions (e.g., individual test TCP sessions) on the corresponding uplink path. For example, the metric collector 116 can establish the first individual test TCP session on uplink path 112-1 to obtain metrics for uplink path 112-1, establish an individual test TCP session on uplink path 112-2 to obtain metrics for uplink path 112-2, and so on.
[0036] Metrics collected separately for each uplink path can be aggregated to determine the performance of the path combination. For example, if a first path combination includes uplink paths 112-1 and 112-N, then metrics collected for uplink paths 112-1 and 112-N separately can be aggregated (e.g., summed, averaged, etc.) to determine the performance of the first path combination. As another example, if a second path combination includes uplink paths 112-2 and 112-N, then metrics collected for uplink paths 112-2 and 112-N separately can be aggregated to determine the performance of the second path combination.
[0037] In other examples, metric collector 116 may establish multipath test sessions (e.g., MPTCP test sessions) on corresponding subsets of uplink paths to collect metrics within the multipath test sessions. For example, metric collector 116 may establish a first MPTCP test session utilizing a first path combination including uplink paths 112-1 and 112-2. The metric collector may collect metrics for the first path combination in the first MPTCP test session. Metric collector 116 may establish a second MPTCP test session utilizing a second path combination including uplink paths 112-1 and 112-N. The metric collector may collect metrics for the second path combination in the second MPTCP test session.
[0038] Example types of test communications that can be performed in a test session (individual test session or multipath test session) include performing a data download from computing environment 106 to client device 102. Examples of data downloads include downloading one or more files from computing environment 106 via File Transfer Protocol (FTP). Other types of data downloads can be performed in other examples. Another example type of test communication that can be performed may include performing bidirectional data communication between client device 102 and computing environment 106, such as in an audio exchange session, video conferencing session, chat session, etc. Another example type of test communication may include unidirectional streaming of audio and / or video data. More generally, test communication includes transmitting test data packets between the client device and the computing environment.
[0039] The computing environment 106 includes various services 120 and resources 122 that are accessible to client devices (including client device 102). Examples of resources 122 may include processing resources (e.g., server computers, hardware processors, graphics processing units (GPUs), etc.), memory or storage resources, communication resources, or other types of resources. Examples of services 120 may include services provided by applications, services provided by containers or virtual machines (VMs), etc.
[0040] In some examples, computing environment 106 may include a Virtual Private Network Concentrator (VPNC) 124. Uplink paths 112-1 to 112-N may be connected to one or more of VPNCs 124. A VPNC is a network device that manages multiple VPN connections from client devices to computing environment 106. A VPN includes a secure connection between client devices and computing environment 106. Although VPN and VPNC are used in some examples, it should be noted that in other examples, other types of connections may be established between client devices and computing environment 106. In these other examples, VPNC 124 may be omitted.
[0041] The following discussion also references Figure 1 and Figure 2 . Figure 2 This is a flowchart of a path combination selection process 200 performed by a multipath connection engine 108, according to some examples of this disclosure. The path combination selection is for a specific data stream (e.g., a TCP stream) between a client device 102 (or another client device) and a computing environment 106.
[0042] The path combiner 114 in the multipath connection engine 108 determines (at 202) the available uplink paths (e.g., 112-1 to 112-N) to the computing environment 106. The determination of available uplink paths may include configuration information for accessing intermediate network devices 104 to identify which uplink paths are available for data transmission by the client device 102.
[0043] Suppose there are M path combinations, which comprise corresponding subsets of N available uplink paths, where M ≥ 3. For example, if there are 3 available uplink paths 112-1, 112-2, and 112-3, then the M = 3 path combinations include the path combinations {112-1, 112-2}, {112-1, 112-3}, and {112-1, 112-3}. If there are four available uplink paths 112-1, 112-2, 112-3, and 112-4, and assuming each path combination includes three uplink paths, then M = 4 path combinations include the path combinations {112-1, 112-2, 112-3}, {112-1, 112-2, 112-4}, {112-1, 112-3, 112-4}, and {112-2, 112-3, 112-4}. Note that in the latter example, if a path combination could also include only two uplink paths, then there are more than four path combinations.
[0044] In some examples, the multipath connection engine 108 establishes a multipath test session (at 204) for M path combinations. More specifically, the multipath connection engine 108 establishes a first multipath test session for a first path combination, a second multipath test session for a second path combination, and so on.
[0045] For example, the multipath connection engine 108 can create Internet Protocol (IP) table rules (or more generally, traffic path forwarding rules) that select the uplink path from the path combinations for each multipath test session (e.g., an MPTCP test session) for metric collection. IP table rules include entries that specify the route (uplink path) used for test data packets transmitted in the multipath test session. Test data packets are data packets with a specified source IP address (e.g., a health check source IP address with a specific value) indicating that the data packet is used to test the multipath test session. Test data packets also include a specified destination IP address (e.g., a health check destination IP address with a specific value) identifying the target in the computing environment 106 used to test the multipath test session. The IP table rules indicate that data packets from the health check source IP address to the health check destination IP address will use one of the routes specified in the IP table rules. Different IP table rules are created for different multipath test sessions.
[0046] Path combination selector 114 triggers (at 206) metric collector 116 to collect metrics for the M path combinations. For example, path combination selector 114 may send a request to metric collector 116 to begin collecting metrics for the M path combinations.
[0047] The path combination selector 114 receives the collected metrics from the metric collector 116 (at 208) and inputs the collected metrics for the M path combinations (at 210) into the machine learning model 118. Based on the collected metrics, the machine learning model 118 generates and outputs (at 212) performance indicators for the corresponding path combinations.
[0048] Path combiner 114 retrieves (at 214) a policy for the data flow. Based on a performance indicator, path combiner 114 selects (at 216) a path combination from M path combinations according to the policy. The selected path combination is used by intermediate network device 104 for data transmission of the data flow.
[0049] although Figure 2 This refers to an example in which a multi-path test session is established for M path combinations for the purpose of collecting metrics. However, in other examples, the metric collector 116 can collect metrics in individual test sessions on the corresponding uplink paths and input the metrics collected in the individual test sessions into the machine learning model 118 to generate performance indicators for the corresponding path combinations.
[0050] In other examples, individual instances of machine learning model 118 can be applied to metrics collected for individual test sessions. The outputs of the selected individual instances of machine learning model 118 can then be combined for each path combination to provide a performance indicator that can be used for path combination selection. For example, if a given path combination includes uplink paths 112-1 and 112-2, a first individual instance of machine learning model 118 can be applied to metrics collected for a first individual test session on uplink path 112-1, and a second individual instance of machine learning model 118 can be applied to metrics collected for a second individual test session on uplink path 112-2. The outputs of the first and second individual instances of machine learning model 118 can then be mathematically combined (e.g., summed, averaged, etc.) to produce a performance indicator for the given path combination.
[0051] In an alternative example, the path combination selection process 200 can be performed by a multipath connection engine (similar to 108) in a client device (such as client device 102).
[0052] Figure 3 This is a block diagram of a non-transient machine-readable or computer-readable storage medium 300 that stores machine-readable instructions, which, when executed, cause the system to perform various tasks according to some examples of this disclosure. For example, the system could be... Figure 1 The intermediate network device 104 or client device 102.
[0053] The machine-readable instructions include network path metric receiving instruction 302, used to receive metrics of multiple network paths connected to the computing environment. A network path can be... Figure 1 The uplink paths are 112-1 to 112-N. If the system is an intermediate network device 104, the network path is located between the intermediate network device 104 and the computing environment. If the system is a client device 102, the network path is located between the client device 102 and the computing environment.
[0054] The machine-readable instructions include path combination performance determination instructions 304, used to determine the performance of corresponding path combinations of multiple network paths based on metrics. These path combinations include: a first path combination comprising a first subset of the network paths among the multiple network paths; and a second path combination comprising a distinct second subset of the network paths among the multiple network paths. Path combinations may also include one or more other subsets of network paths.
[0055] Machine-readable instructions include path combination selection instructions 306 for selecting a path combination from these path combinations for a multipath session between the client device and the computing environment based on determined performance. In some examples, this selection may be based on a policy targeting an entity associated with the multipath session, where the entity may be a user of the client device, a user group to which the user is part, an application running on the client device, a provider of the computing environment, or any other entity.
[0056] In some examples, the system can establish multiple multipath test sessions (e.g., MPTCP test sessions) between the client device and the computing environment. These multiple multipath test sessions use different subsets of network paths from multiple network paths. The system can receive metrics across these multiple multipath test sessions.
[0057] In some examples, within a given multipath test session across multiple multipath test sessions, the system can initiate data downloads from the computing environment (e.g., FTP file transfers, data streaming, or other types of data downloads) to test the corresponding subset of network paths used by the given multipath test session. The system can then record metrics for the corresponding subset of network paths in response to the data downloads within the given multipath test session.
[0058] In some examples, within a given multipath test session across multiple multipath test sessions, the system can initiate bidirectional data communication between the client device and the computing environment to test a corresponding subset of network paths used by the given multipath test session. The system can then record metrics for the corresponding subset of network paths in response to the bidirectional data communication within the given multipath test session.
[0059] In some examples, the system can establish individual test sessions between the client device and the computing environment using corresponding individual network paths from multiple network paths. The system can then receive metrics within these individual test sessions.
[0060] In some examples, the system can rank path combinations based on their performance. The system can then select the appropriate path combination from these combinations for a multipath session based on that ranking.
[0061] In some examples, the system can use machine learning models based on metrics to determine the performance of corresponding path combinations.
[0062] In some examples, the system can apply a machine learning model to a metric for a first subset of network paths to determine the performance of the first path combination.
[0063] In some examples, the system can apply individual instances of the machine learning model to the metric of each corresponding network path in a first subset of network paths to determine the individual performance of the network paths in the first subset. The system can then combine the individual performances of the network paths in the first subset to determine the performance of the first path combination.
[0064] In some examples, metrics for multiple network paths are received within a first time interval. The system may receive further metrics for these network paths within a second time interval following the first time interval, and determine updated performance for at least some of these path combinations based on these further metrics. The system may update the selection of path combinations for multipath sessions from these path combinations based on the updated performance.
[0065] Figure 4 This is a block diagram of system 400 based on some examples of this disclosure. Examples of system 400 may be... Figure 1 The intermediate network device 104 or client device 102.
[0066] System 400 includes hardware processor 402 (or multiple hardware processors). The hardware processor may include a microprocessor, the core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or other hardware processing circuitry.
[0067] The system includes a storage medium 404 for storing machine-readable instructions that are executable on a hardware processor 402 to perform various tasks. Machine-readable instructions executable on the hardware processor can refer to instructions executable on a single hardware processor or instructions executable on multiple hardware processors.
[0068] The machine-readable instructions in storage medium 404 include path combination identification instructions 406 for identifying multiple path combinations of multiple network paths connected to the computing environment. The multiple path combinations include: a first path combination that includes a first subset of the network paths among the multiple network paths; and a second path combination that includes a different second subset of the network paths among the multiple network paths.
[0069] The machine-readable instructions in storage medium 404 include path combination metric acquisition instructions 408, used to acquire metrics for multiple path combinations. These metrics can be acquired in a multi-path test session or an individual test session.
[0070] The machine-readable instructions in storage medium 404 include path combination performance determination instructions 410, used to determine the performance of a particular path combination among a plurality of path combinations based on these metrics. These performance metrics can be determined, for example, using a machine learning model.
[0071] The machine-readable instructions in storage medium 404 include path combination selection instructions 412 for selecting a path combination from a plurality of path combinations for a multipath session between a client device and a computing environment based on determined performance.
[0072] Figure 5 This is a flowchart of process 500 based on some examples of this disclosure. For example, process 500 may be executed by a multipath connection engine 108.
[0073] Process 500 includes identifying (at 502) multiple path combinations of multiple network paths connected to the computing environment, wherein the multiple path combinations include: a first path combination that includes a first subset of the network paths among the multiple network paths; and a second path combination that includes a different second subset of the network paths among the multiple network paths.
[0074] Procedure 500 includes acquiring (at 504) metrics for multiple path combinations in test sessions across multiple network paths. The test sessions can be multi-path test sessions on candidate path combinations or individual test sessions on individual network paths.
[0075] Process 500 includes performance indicators for the corresponding path combinations among multiple path combinations generated by a machine learning model (at 506). Performance indicators can be ranking indicators, cost indicators, or operational performance indicators.
[0076] Process 500 includes selecting (at 508) a path combination from multiple path combinations based on a performance indicator for a multipath session between the client device and the computing environment.
[0077] Examples of client devices may include any one or a combination of the following: desktop computers, laptop computers, tablet computers, smartphones, server computers, storage systems, communication nodes, home appliances, vehicles, gaming devices, Internet of Things (IoT) devices, or other types of electronic devices.
[0078] Figure 2 and Figure 5 It is a flowchart that includes tasks performed in the described order. In other examples, any process tasks may be performed in a different order, some tasks may be omitted, and additional tasks may be added.
[0079] Storage media (e.g., Figure 3 300 or Figure 4The 404 clause can include any one or a combination of the following: semiconductor memory devices, such as dynamic or static random access memory (DRAM or SRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory; magnetic disks, such as fixed disks, floppy disks, and removable disks; other magnetic media, including magnetic tape; optical media, such as compact discs (CDs) or digital video discs (DVDs); or other types of storage devices. It should be noted that the instructions discussed above can be provided on a single computer-readable or machine-readable storage medium, or alternatively, on multiple computer-readable or machine-readable storage media distributed across a large system that may have multiple nodes. One or more such computer-readable or machine-readable storage media are considered part of an article (or article of manufacture). An article or article of manufacture can refer to any single or multiple manufactured components. One or more storage media can be located in a machine that executes the machine-readable instructions, or can be located at a remote site from which machine-readable instructions can be downloaded via a network for execution.
[0080] In this disclosure, unless the context clearly indicates otherwise, the use of the terms “a,” “an,” or “the” is also intended to include the plural form. Furthermore, the terms “includes,” “comprises,” or “have,” when used in this disclosure, specify the presence of the stated element but do not preclude the presence or addition of other elements.
[0081] In the foregoing description, numerous details have been set forth to provide an understanding of the subject matter disclosed herein. However, implementations may be practiced without some of these details. Other implementations may include modifications and variations of the details discussed above. The appended claims are intended to cover such modifications and variations.
Claims
1. A non-transient machine-readable storage medium, the non-transient machine-readable storage medium comprising instructions that, when executed, cause the system to: Receives metrics from multiple network paths connected to the computing environment; The performance of corresponding path combinations of the plurality of network paths is determined based on the metric, the path combinations including a first path combination and a second path combination, the first path combination including a first subset of the network paths in the plurality of network paths, and the second path combination including a different second subset of the network paths in the plurality of network paths; and Based on the determined performance, a path combination is selected from the path combinations for a multipath session between the client device and the computing environment.
2. The non-transient machine-readable storage medium of claim 1, wherein the instructions, when executed, cause the system to: Multiple multipath test sessions are established between the client device and the computing environment. These multiple multipath test sessions use different subsets of network paths from the multiple network paths, including a first subset and a second subset. The metrics are received in the multiple multipath test sessions.
3. The non-transient machine-readable storage medium of claim 2, wherein the instructions, when executed, cause the system to: In a given multipath test session among the plurality of multipath test sessions, a data download from the computing environment is initiated to test a corresponding subset of the network paths used by the given multipath test session; and In response to the data download in the given multipath test session, the metric is recorded for a corresponding subset of the network paths.
4. The non-transient machine-readable storage medium of claim 2, wherein the instructions, when executed, cause the system to: In a given multipath test session among the plurality of multipath test sessions, bidirectional data communication is initiated between the client device and the computing environment to test a corresponding subset of the network paths used by the given multipath test session; and In response to the bidirectional data communication in the given multipath test session, the metrics for a corresponding subset of the network paths are recorded.
5. The non-transient machine-readable storage medium of claim 2, wherein the plurality of multipath test sessions includes a multipath transmission control protocol (MPTCP) test session.
6. The non-transient machine-readable storage medium of claim 1, wherein the instructions, when executed, cause the system to: Establish individual test sessions between the client device and the computing environment using the corresponding individual network paths from the plurality of network paths; and The metric is received in the individual test session.
7. The non-transient machine-readable storage medium of claim 1, wherein the plurality of network paths are located between an intermediate network device and the computing environment, the intermediate network device connecting the client device to the computing environment.
8. The non-transient machine-readable storage medium of claim 1, wherein the plurality of network paths are located between the client device and the computing environment.
9. The non-transient machine-readable storage medium of claim 1, wherein the instructions, when executed, cause the system to: Based on a policy for the entity associated with the multipath session, the path combination for the multipath session is selected from the path combinations.
10. The non-transient machine-readable storage medium of claim 1, wherein the instructions, when executed, cause the system to: The corresponding path combinations are ranked based on their performance as determined; and Based on the ranking, select one of the path combinations for the multipath session from the path combinations.
11. The non-transient machine-readable storage medium of claim 1, wherein the instructions, when executed, cause the system to: Based on the metric, a machine learning model is used to determine the performance of the corresponding path combination.
12. The non-transient machine-readable storage medium of claim 11, wherein the instructions, when executed, cause the system to: The machine learning model is applied to the metric for the first subset of network paths to determine the performance of the first path combination.
13. The non-transient machine-readable storage medium of claim 11, wherein the instructions, when executed, cause the system to: Individual instances of the machine learning model are individually applied to the metric for each corresponding network path in the first subset of network paths to determine the individual performance of the network paths in the first subset of network paths; and The individual performance of the network paths in the first subset of combined network paths is used to determine the performance of the first path combination.
14. The non-transient machine-readable storage medium of claim 1, wherein the metric of the plurality of network paths is received within a first time interval, and wherein the instruction, when executed, causes the system to: Further metrics of the plurality of network paths are received during a second time interval following the first time interval; The updated performance of at least some of the path combinations is determined based on the further metrics. as well as The selection of a path combination for the multipath session is updated from the path combinations based on the updated performance.
15. The non-transient machine-readable storage medium of claim 1, wherein the metric includes one or more of a cost metric or an operational performance metric.
16. A system comprising: Hardware processor; as well as A non-transient storage medium for storing instructions that can be executed on the hardware processor to: Multiple path combinations that identify multiple network paths connected to a computing environment, the multiple path combinations including a first path combination and a second path combination, the first path combination including a first subset of network paths among the multiple network paths, and the second path combination including a different second subset of network paths among the multiple network paths; Obtain the metric for the combination of the multiple paths; The performance of the corresponding path combination among the plurality of path combinations is determined based on the metric. Based on the determined performance, a path combination is selected from the plurality of path combinations for a multipath session between the client device and the computing environment.
17. The system of claim 16, wherein the instructions are executable on the hardware processor to: The metric is input into the machine learning model; and The performance of the corresponding path combination is determined based on the output of the machine learning model.
18. The system of claim 16, wherein the instructions are executable on the hardware processor to: Multiple multipath test sessions are established between the client device and the computing environment for the multipath combination. These multiple multipath test sessions use different subsets of network paths from the multiple network paths, including a first subset and a second subset. The metric is obtained in the multiple multipath test sessions.
19. A method comprising: Multiple path combinations of multiple network paths connected to a computing environment by a system identifier including a hardware processor, the multiple path combinations including a first path combination and a second path combination, the first path combination including a first subset of network paths among the multiple network paths, and the second path combination including a different second subset of network paths among the multiple network paths; The system acquires metrics for the multi-path combination during test sessions traversing the multiple network paths; The machine learning model in the system generates performance indicators for the corresponding path combinations in the multi-path combinations; as well as The system selects a path combination from the plurality of path combinations based on the performance indicator for a multipath session between the client device and the computing environment.
20. The method of claim 19, wherein the performance indicator comprises one or more of the following: a ranking indicator specifying the relative ranking of the plurality of path combinations, a cost indicator specifying the cost of the plurality of path combinations, or an operational performance indicator of the plurality of path combinations.
