Network performance monitoring using active measurement protocols and relay mechanisms

By establishing test sessions between network devices and exchanging messages using a relay mechanism, the problem of TWAMP's inability to calculate aggregation performance indicators in multi-hop networks is solved, enabling efficient selection of the optimal path for service flow routing and saving resources.

CN116319422BActive Publication Date: 2026-03-27JUNIPER NETWORKS INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-09-11
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

Existing TWAMP-based measurement protocols cannot effectively calculate aggregation performance indicators in multi-hop networks, resulting in network devices being unable to efficiently select the optimal path for service flow routing.

Method used

By establishing test sessions between network devices and periodically exchanging request and response messages using a relay mechanism, network performance indicator values ​​are determined. The relay mechanism is then used to coordinate network performance measurements and identify the next hop for the optimal path.

Benefits of technology

It enables efficient monitoring of network performance in multi-hop networks, saves resources, accurately selects the optimal path for service flow routing, and improves the resource utilization efficiency of network devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116319422B_ABST
    Figure CN116319422B_ABST
Patent Text Reader

Abstract

The first device can periodically provide a message request for measuring network performance to neighboring devices in a network with the first device throughout a test session. The neighboring devices, upon receiving the request message, will determine a network performance indicator (NPI) value using a relay mechanism. The first device can periodically receive a response message including the NPI value from the neighboring devices and throughout the test session. The first device can determine an additional NPI value that measures network performance between the first device and the neighboring devices. The first device can determine an overall NPI value based on the NPI value and the additional NPI value. The first device can identify a preferred next hop to one of the neighboring devices based on the overall NPI value, where the preferred next hop is part of a preferred path through the network.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the application for patent with application number 201910859442.4, titled "Network performance monitoring using active measurement protocol and relay mechanism", filed on September 11, 2019. BACKGROUND

[0002] A measurement protocol can be used to measure network performance of a group of network devices. For example, Two-Way Active Measurement Protocol (TWAMP) can define standards for measuring network performance between any two network devices that support TWAMP. As such, the group of network devices can use a test session to send probe packets between the network devices to measure network performance. SUMMARY

[0003] According to some possible implementation, a method can include initiating, by a network device, a connection with one or more neighboring network devices, wherein the network device and the one or more neighboring network devices are part of a group of network devices that are in a network and configured with a protocol for measuring network performance, and wherein initiating the connection causes the network device and the one or more neighboring network devices to exchange a relay mechanism to be used for measuring the network performance. The method can include causing a test session to be established and used for measuring the network performance. The method can include providing, to the one or more neighboring network devices and periodically throughout the test session, a request message associated with requesting a first set of network performance indicator values that measure bidirectional network performance of one or more paths between the one or more neighboring network devices and a particular network device that is an endpoint in the network. The one or more neighboring network devices can use the relay mechanism to determine the first set of network performance indicator values upon receiving the request message. The relay mechanism can allow the one or more neighboring network devices and other upstream network devices to exchange additional request messages and corresponding response messages for determining the first set of network performance indicator values. The method can include receiving, from the one or more neighboring network devices and periodically throughout the test session, a response message that includes the first set of network performance indicator values. The method can include determining a second set of network performance indicator values that measure the network performance between the network device and the one or more neighboring network devices. The method can include determining an overall network performance indicator value based on the first set of network performance indicator values and the second set of network performance indicator values. The method can include identifying a preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value. The preferred next hop can be part of a preferred path to the particular network device that is an endpoint in the network. The preferred next hop can be used for traffic flow routed through the network.

[0004] According to some possible implementation, a network device can include one or more memories, and one or more processors to receive, from another network device, a request to establish a connection with the other network device. The network device and the other network device can be part of a set of network devices that are part of a network and configured with a protocol to measure network performance. The one or more processors can provide a response to the request to the other network device to cause the connection to be established. The other network device can use the connection to interact with the network device to establish a test session and exchange a relay mechanism to be used to measure network performance. The one or more processors can periodically receive, from the other network device and throughout the test session, a request message requesting a first network performance indicator value that measures network performance of a path between the network device and a particular network device used as an endpoint in the network. The one or more processors can periodically and throughout the test session, provide one or more additional request messages to one or more neighboring network devices using the relay mechanism to cause the one or more neighboring network devices to provide one or more additional response messages including a set of network performance indicator values that measure network performance between the one or more neighboring network devices and the particular network device used as an endpoint in the network. The one or more processors can periodically determine, throughout the test session, the first network performance indicator value based on the set of network performance indicator values already provided by the one or more neighboring network devices. The one or more processors can periodically provide, to the other network device and throughout the test session, a response message including the first network performance indicator value to cause the other network device to use the first network performance indicator value as part of determining an overall network performance indicator value and identify a preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value. The preferred next hop can be part of a preferred path to the particular network device used as an endpoint in the network. The preferred next hop can be used for traffic flow routed through the network.

[0005] According to some possible implementation, a non-transitory computer- readable medium can store instructions comprising one or more instructions that, when executed by one or more processors of a network device, cause the one or more processors to periodically provide, to one or more neighboring network devices and throughout a test session, a request message associated with requesting a first set of network performance indicator values that measure bidirectional network performance between the one or more neighboring network devices and a particular network device used as an endpoint in a network. The network device and the one or more neighboring network devices can be included in a set of network devices that are part of the network and configured with a protocol that includes a relay mechanism for measuring network performance. The request message can include a final destination address. The one or more neighboring network devices, upon receiving the request message, can use the relay mechanism and the final destination address to determine the first set of network performance indicator values. The relay mechanism can allow the one or more neighboring network devices and other upstream network devices to exchange additional request messages and corresponding response messages for determining the first set of network performance indicator values. The one or more instructions can cause the one or more processors to periodically receive, from the one or more neighboring network devices and throughout the test session, response messages that include the first set of network performance indicator values. The one or more instructions can cause the one or more processors to determine a second set of network performance indicator values that measure network performance between the network device and the one or more neighboring network devices. The one or more instructions can cause the one or more processors to determine an overall network performance indicator value based on the first set of network performance indicator values and the second set of network performance indicator values. The one or more instructions can cause the one or more processors to identify a preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value. The preferred next hop can be part of a preferred path to the particular network device used as an endpoint in the network. The preferred next hop can be used for traffic flows routed through the network. BRIEF DESCRIPTION OF DRAWINGS

[0006] Figures 1A-1E is a diagram of example implementations described herein.

[0007] Figure 2 is a diagram of an example environment in which systems and / or methods described herein can be implemented.

[0008] Figure 3 is a diagram of example components of one or more devices of Figure 2

[0009] Figures 4-6 is a flow diagram of an example process for monitoring network performance of a set of network devices using an active measurement protocol and a relay mechanism. DETAILED DESCRIPTION

[0010] ​The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings can identify the same or similar elements.

[0011] Measurement protocols such as TWAMP can be used to measure network performance of a set of network devices (e.g., a set of routers, a set of data center servers, etc.) that are part of a network, such as a mesh network that includes multiple hops between two endpoints. This allows the set of network devices to establish test sessions for sending probe packets between the network devices to measure network performance (e.g., by measuring the round-trip time (RTT) of packets propagating between the network devices).

[0012] In some cases, when a service is provided over a network (e.g., via a set of network devices), a service level agreement (SLA) between a network service provider and a customer can specify that certain network performance indicators are monitored and / or satisfied. For example, the SLA can indicate that the set of network devices need to perform or adhere to a threshold performance level to comply with the terms of the SLA.

[0013] However, if the network includes multiple paths (e.g., as can be found in a mesh network), the measurement protocol can be an ineffective solution for monitoring network performance. This is because existing TWAMP-based measurements are limited to computing performance indicators (i.e., SLA parameters) for single hops, but do not provide a means for computing aggregate performance indicators in the case of multi-hop networks (e.g., mesh networks).

[0014] As an example, if the set of network devices are configured with TWAMP, and a first network device has a first connection to a second network device and a second connection to a third network device, the first network device can determine the lowest available RTT value as between the first connection and the second connection, and can select the lowest available RTT value regardless of whether the connection associated with the lowest available RTT value is part of the most efficient path to an endpoint in the network (e.g., an edge network device). As a specific example, if the first connection has an RTT value of 5 milliseconds (ms) and the second connection has an RTT value of 10 ms, the first network device will select the first connection to use as the next hop for packets propagating through the network. However, if a first complete path to an endpoint in the network that uses the first connection has a total RTT of 50 ms, and a second complete path to the endpoint in the network that uses the second connection has a total RTT of 40 ms, the second connection (e.g., including the 10 ms RTT value) should be the next hop for the first network device (rather than the first connection, with the 5 ms RTT value).

[0015] Some implementations described herein provide a network device to monitor network performance of a set of network devices that are part of a network by using a protocol that includes a relay mechanism. For example, a network device can establish a test session that allows messages to be routed through the network to measure network performance. In this case, the network device can provide a request message to one or more neighboring network devices (e.g., network devices that are a next hop destination), which can cause the one or more neighboring network devices to provide a response message to the network device that includes a first set of network performance indicator values (e.g., RTT values) that measure network performance between the one or more neighboring network devices and the edge network device. The first set of network performance indicator values can be determined by one or more upstream network devices. Methods of using a relay mechanism to intelligently route network performance indicator values downstream of the network device are further described herein (e.g., see Figures 1A-1E ).

[0016] Additionally, the network device can determine a second set of network performance indicator values that measure network performance between the network device and the one or more neighboring network devices. This can allow the network device to determine an overall network performance indicator value (e.g., a total RTT value for a particular path to the edge network device) based on the first set of network performance indicator values and the second set of network performance indicator values. In this case, the network device can identify a preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value (e.g., a next hop associated with an RTT value of a preferred path, where the preferred path is a path with a lowest total RTT). This allows the preferred next hop to be used for traffic flows routed through the network.

[0017] In this way, the network device efficiently and effectively monitors network performance of the set of network devices (e.g., relative to a network device that uses a protocol without a relay mechanism). Moreover, the network device conserves resources (e.g., processing resources, network resources, memory resources, etc.) by identifying network performance indicator values that can be used to identify a next hop associated with an optimal path. Using the example provided above, the network device would identify the second connection (e.g., with an RTT value of 10 ms) as optimal, despite the first connection having a lower next hop RTT value (e.g., with an RTT value of 5 ms). This conserves resources by allowing traffic flows through the network to obtain a more efficient overall path to the edge network device.

[0018] Figures 1A-1Eis a diagram of an example implementation 100 described herein. The example implementation can include, for example, a set of network devices (shown as network device A, network device B, network device C, network device D, network device E, and network device F) as part of a network, a set of connections (shown as links 1 (LI), L2, L3, L4, L5, L6, L7, and L8) between the network devices, a first endpoint of traffic (shown as traffic endpoint A with an Internet Protocol (IP) address of 10.0.0.0 / 8) that flows through the network, and a second endpoint of traffic (shown as traffic endpoint B with an IP address of 20.0.0.0 / 8) that flows through the network.

[0019] As used herein, a set of network devices can refer to routers, switches, hubs, data center servers, and the like. As used herein, a network can refer to a mesh network and / or any other type of network that involves a plurality of next-hop paths between network devices as part of the network.

[0020] As shown by reference number 102, the set of network devices can be configured with a protocol for measuring network performance. For example, the set of network devices can be configured with a Two-Way Active Measurement Protocol (TWAMP), a One-Way Active Measurement Protocol (OAMP), and / or a similar type of protocol. Figure 1A

[0021] In some implementations, the protocol that configures the set of network devices can include a control session phase and a test session phase. The control session phase can be used to manage (e.g., initiate, start, end, etc.) the test session, and the test session phase can be used to measure network performance. In some implementations, the test session phase of the protocol can be used to measure network performance by using a ping function (e.g., via an echo command) to send and receive request messages and response messages that can be used to measure network performance.

[0022] In some implementations, to perform the test session phase, the set of network devices can be configured with two modes that can allow the set of network devices to use the ping function. For example, the set of network devices can be configured with a first mode (e.g., a client mode) for sending request messages as part of the ping function and a second mode (e.g., a server mode) for receiving request messages and providing response messages. In this case, the set of network devices can be configured with separate IP address information for the first mode and the second mode. As shown by the example, the IP address information can include a first IP address (172.16.1.1) for the first mode and a second IP address (172.16.1.2) for the second mode.

[0023] ​In some implementations, the group of network devices can be configured with a protocol that includes a relay mechanism (e.g., TWAMP). The relay mechanism (sometimes called a relay mode) can be a rule or set of rules that is enabled when a test session is established and causes the group of network devices to automatically perform test session tasks (e.g., sending request messages, providing response messages, etc.). As an example, the relay mechanism may include: a first rule instructing the edge network device (e.g., network device A) that coordinates the establishment of the test session to periodically provide request messages to one or more neighboring network devices (e.g., the network device serving as the next-hop destination); a second rule instructing the network device to provide request messages to one or more neighboring network devices based on the request messages received from downstream network devices (e.g., as part of a ping function); a third rule instructing when the edge network device ends the test session; a fourth rule instructing the determination of a network performance indicator value after receiving a request message; a fifth rule instructing the provision of a network performance indicator value in a response message, which will be provided downstream to the network device that provided the corresponding request message; a sixth rule instructing the edge network device to determine the overall network performance indicator value for the path based on the received message request; and / or the like.

[0024] In this way, the group of network devices is configured with protocols for measuring network performance.

[0025] like Figure 1B As shown, and by reference numeral 104, a first network device (network device A) can initiate a connection with one or more adjacent network devices (shown as network device B, network device C, and network device F). For example, the first network device can initiate a connection with one or more adjacent network devices to allow the first network device and one or more adjacent network devices to share IP address information (which may be needed when providing request and / or response messages during a test session).

[0026] In some implementations, a first network device may use a request acceptance procedure to initiate a connection with one or more neighboring network devices. For example, the first network device may provide a connection request message to one or more neighboring network devices to initiate a connection. The connection request message may include the first IP address of the first network device (e.g., 172.16.1.1) for a first mode (e.g., client mode).

[0027] Additionally, one or more of the neighboring network devices can provide an accept message to the first network device to cause the connection to be established. The accept message can include a second IP address of the one or more neighboring network devices for the second mode (e.g., server mode); a next hop identifier, such as a port identifier, associated with the particular neighboring network device; and / or the like. As shown in the example, the second network device (network device B) can provide a second IP address (172.16.2.1) for the second mode (e.g., server mode) and a next hop identifier (1.0.0.2) associated with the second network device as part of the accept message. The third network device (network device F) can provide a second IP address (172.16.3.1) for the second mode and a next hop identifier (2.0.0.2) associated with the third network device as part of the accept message. The fourth network device (network device C) can provide a second IP address (172.16.6.1) for the second mode and a next hop identifier (3.0.0.2) associated with the fourth network device as part of the accept message.

[0028] As shown by reference number 106, the first network device can generate a first data structure. For example, the first network device can generate a first data structure (e.g., a routing table, a forwarding table, etc.) to store IP address information and next hop identifiers in a manner that associates the IP address information and the next hop identifiers. As shown in the example, the first data structure can associate the second IP address (172.16.2.1) of the second network device with the next hop identifier (1.0.0.2) of the second network device. Additionally, the first data structure can associate the second IP address (172.16.3.1) of the third network device with the next hop identifier (2.0.0.2) of the third network device. Additionally, the first data structure can associate the second IP address (172.16.6.1) of the fourth network device with the next hop identifier (3.0.0.2) of the fourth network device.

[0029] While the above implementation shows the first network device initiating the connection and generating the first data structure, it should be understood that this is shown merely by way of illustration. In practice, all (or some) of the set of network devices can initiate connections with neighboring network devices and can generate first data structures. As an example, the second network device (network device B) can initiate connections with the third network device (network device F) and the fifth network device (network device D) and can generate a first data structure in a manner similar to that shown in connection with the first network device.

[0030] In this manner, the set of network devices is able to initiate connections with one or more neighboring devices, which can be used to establish a test session for measuring network performance, as described below.

[0031] As Figure 1C indicated and by reference number 108, the first network device can establish a test session. For example and as indicated by reference number 108-1, the first network device can provide a test session establishment request to one or more neighboring network devices. In this case, the first network device can identify IP addresses and / or next hop identifiers of the one or more neighboring network devices (e.g., by reference to the first data structure) and can provide the test session establishment request to ports of the one or more neighboring network devices (e.g., a port associated with next hop identifier 1.0.0.2, a port associated with next hop identifier 2.0.0.2, a port associated with next hop identifier 3.0.0.2).

[0032] As indicated by reference number 108-2, receiving the test session establishment request can cause the one or more neighboring network devices to generate and provide a test session establishment response to the first network device indicating that the test session establishment request has been accepted and that a test session has been established. In this case, receipt of the test session establishment response can cause the first network device to enable a relay mechanism that has been configured in conjunction with Figure 1A the test session establishment request. For example, the first network device can enable the relay mechanism such that the first network device will periodically check whether a rule or set of rules that are part of the relay mechanism are satisfied.

[0033] As an example, a first rule can be enabled that indicates that the first network device will periodically provide a request message to the one or more neighboring network devices (e.g., this can cause the first network device to begin sending request messages to measure network performance, as described in conjunction with Figure 1D FIG. 5, for example). As another example, a second rule can be enabled that indicates that a network device will provide a request message to one or more neighboring network devices based on receiving a request message from a downstream network device (e.g., this can cause an upstream network device such as network device B to send request messages to network device D and network device F based on receiving a request message from network device A, as described in conjunction with Figure 1D and 1E FIG. 5, for example).

[0034] As shown by reference number 110, the first network device can generate a second data structure. For example, the first network device can generate the second data structure to store the first IP address of the first network device (e.g., associated with the client mode), the second IP address of the one or more neighboring network devices (associated with the server mode), and the next hop identifier associated with the one or more neighboring network devices. In this case, the second data structure can be used to associate the first IP address of the first network device, the second IP address of the one or more neighboring network devices, and the next hop identifier associated with the one or more neighboring network devices such that the second data structure can be referenced when measuring network performance using the test session. In some implementations, the first data structure and the second data structure can be a single data structure (e.g., having fields sufficient to represent all values stored by the first data structure and the second data structure), as described herein.

[0035] While the above implementation shows the first network device interacting with the one or more neighboring network devices to establish the test session (thereby enabling the relay mechanism) and generating the second data structure, it should be understood that all (or certain) network devices can have the relay mechanism enabled. For example, another network device can receive an indication from a downstream network device that a test session has been enabled and can generate the first data structure (such that each network device has the first data structure).

[0036] In some implementations, the test session can be established to measure a particular type of network performance indicator. For example, as described above in connection with Figure 1D and 1E , the test session can be used to determine a round-trip time (RTT) between network devices. In some implementations, the test session can be established to measure other types of network performance indicators, such as a latency value, a hop count value, a bandwidth value, a path reliability value, a packet loss value, a throughput value, and / or the like. In some implementations, multiple test sessions can be created to measure multiple types of network performance indicators.

[0037] In this way, the first network device establishes the test session and the set of network devices enable the relay mechanism that can be used to measure network performance.

[0038] As shown by reference number 110, the first network device can generate a second data structure. For example, the first network device can generate the second data structure to store the first IP address of the first network device (e.g., associated with the client mode), the second IP address of the one or more neighboring network devices (associated with the server mode), and the next hop identifier associated with the one or more neighboring network devices. In this case, the second data structure can be used to associate the first IP address of the first network device, the second IP address of the one or more neighboring network devices, and the next hop identifier associated with the one or more neighboring network devices such that the second data structure can be referenced when measuring network performance using the test session. In some implementations, the first data structure and the second data structure can be a single data structure (e.g., having fields sufficient to represent all values stored by the first data structure and the second data structure), as described herein. Figure 1D

[0039] ​As used herein, a request message can refer to a packet (e.g., a test packet, probe packet, etc.) provided as part of a test used to measure network performance (e.g., as part of a ping function or similar function). In some implementations, the request message (e.g., the header of the request message) may include a sequence number value, a timestamp (e.g., indicating the time when the request message was provided to a neighboring network device), a destination IP address associated with the second service endpoint (displayed as service endpoint B, destination IP address 20.0.0.0 / 8), and / or the like. By including the destination IP address in the request message and in the response message, the first network device is able to identify the response message received as part of a test session.

[0040] As shown by reference numeral 114 in the attached figure, one or more adjacent network devices can provide a response message (RSM) to the first network device. For example, a second network device (network device B) can process the request message upon receiving it to identify the destination IP address associated with the test session. In this case, the second network device can perform a data structure lookup to determine whether the destination IP address is stored in association with a first set of network performance indicator values ​​(in...). Figure 1D (The remaining RTT is shown in the image). Because the request message is the first request message in the test session, the second network device will not have previously determined the first set of network performance indicators, which may cause the data structure lookup to return a zero value (displayed as a zero value in the remaining hops entry in the third data structure). The first set of network performance indicator values ​​used herein may refer to network performance indicator values ​​that will be used to measure the network performance of the second hop in the path up to the last hop in the path (e.g., the network performance between network device B and network device F). Additionally, the second network device may generate a request message to include the destination IP address and the result of the data structure lookup (value zero), and may provide the request message to the first network device.

[0041] As shown by reference numeral 116 in the attached figure, the second network device can provide request messages (RQMs) to one or more additional adjacent network devices (e.g., a fifth network device, shown as network device D, and a third network device, shown as network device F). For example, the second network device can provide the request message based on a second rule of the relay mechanism, which instructs the provision of the request message based on receiving the request message from a downstream network device (e.g., the first network device). In this case, the second network device can include the destination IP address in the request message, as described above.

[0042] As shown by reference number 118, one or more additional neighboring network devices can provide a response message (RSM) to the second network device. In this case, the one or more additional neighboring network devices can perform a data structure lookup to determine whether a network performance indicator value (e.g., representing the third to last hop in a path through the network) is stored in association with the destination IP address. Because the request message is the first request message received by the one or more additional neighboring network devices during the test session, the data structure lookup can return a zero value. Although not shown, a similar procedure can be used between the fifth network device (network device D) and the third network device (network device F) (e.g., via link 8 (L8)).

[0043] As shown by reference number 120, the second network device can determine a network performance indicator (NPI) value and can update the third data structure. For example, the second network device can determine a network performance indicator value as part of the first set of network performance indicator values based on receiving the request message from the one or more additional neighboring network devices.

[0044] As an example, the second network device can determine an RTT value using timestamps associated with the request message and the response message. For example, the second network device can process the request message to identify a first time at which the request message was sent to the additional neighboring network device, and can identify a second time at which the response message was received from the additional neighboring network device. In this way, the second network device can be able to determine an RTT value using the first time and the second time. A similar procedure can be performed by the fifth network device (network device D) (however, the third network device, network device F, will not determine a network performance indicator value because it is not connected to any other upstream network device).

[0045] It should be appreciated that the procedure shown with respect to reference numbers 114-120 is described in detail by way of example. In practice, the same procedure can be used until a request message and a response message have been provided to all neighboring upstream network devices (e.g., a similar procedure would be used between network device A and network device F, network device A and network device C, network device C and network device E, and network device E and network device F).

[0046] As shown by reference number 122, the first network device can determine one or more next-hop network performance indicator values, can determine an overall network performance indicator value, and can update a third data structure. In some implementations, the first network device can determine a next-hop network performance indicator value. For example, the first network device can determine a next-hop network performance indicator value in a manner similar to that described above. As an example, the first network device can use the timestamps associated with the request message and the response message to determine a next-hop RTT value. As shown by the example, the first network device can determine a first RTT value of 10 ms that represents the RTT between network device A and network device B, a second RTT value of 50 ms that represents the RTT between network device A and network device F, and a third RTT value of 10 ms that represents the RTT between network device A and network device C.

[0047] In some implementations, the first network device can determine an overall network performance indicator value. For example, the first network device can determine an overall network performance indicator value by processing the next-hop network performance indicator values and a first set of network performance indicator values (e.g., values that represent performance associated with the second to last hop). Continuing the example described above, the first network device can add the next-hop RTT values (e.g., 10 ms) and the network performance indicator values included in the response message (e.g., zero) to determine a total RTT value (10 ms).

[0048] In some implementations, the first network device can update the third data structure. For example, the first network device can update the third data structure to include the next-hop network performance indicator values, the first set of network performance indicator values that represent values associated with the second to last hop, and the overall network performance indicator value.

[0049] The process shown in Figure 1D may be repeated when the first network device periodically provides request messages to one or more upstream network devices, which will allow the set of network devices to continue to determine network performance indicator values, update data structure values, and identify overall network performance indicator values that can be used to identify preferred paths through the network, as shown in Figure 1E .

[0050] In this manner, the first network device determines an overall network performance indicator value by using a relay mechanism to coordinate a series of request messages and response messages that are provided upstream to another network device that is part of the network.

[0051] As Figure 1EAs shown by reference number 124, the first network device can provide another request message (RQM) to the second network device in the manner described elsewhere herein. As shown by reference number 126, the second network device can perform a data structure lookup to identify network performance indicator values (e.g., for a first set of network performance indicator values representing values associated with the second through nth hops). In this case, the second network device can perform a data structure lookup to identify network performance indicator values that have been determined based on previous ping commands (e.g., based on the request and response messages depicted in FIG. 1). Figure 1D

[0052] In some implementations, the network performance indicator value representing the second through nth hops can be the best available network performance indicator value among multiple paths through the network. In the example shown, assume that the fifth link (L5) between the second network device and the third network device (network device F) has an RTT value of 20 ms. Further assume that the fourth link between the second network device and the fifth network device (network device D) has an RTT value of 5 ms. Further assume that the eighth link between the fifth network device and the third network device has an RTT value of 30 ms. In this example, the network performance indicator value stored as the remaining hop RTT value would be the RTT value of 20 ms (e.g., because this path is shorter than the path using the fourth link and the eighth link).

[0053] As shown by reference number 128, the second network device can provide another response message (RSM) to the first network device in the manner described elsewhere herein. The response message can include the destination IP address and the particular network performance indicator value associated with the first set of network performance indicator values (e.g., 20 ms).

[0054] As shown by reference number 130, the second network device can provide additional request messages (RQMs) to additional neighboring network devices (e.g., network device D and network device F). As shown by reference number 132, the additional neighboring network devices can provide additional response messages (RSMs) to the second network device.

[0055] ​As shown by reference number 134, the second network device can determine one or more network performance indicator values and can update the third data structure in the manner described elsewhere herein. In some implementations, the first set of network devices can not have access to several rounds of pings that have been performed as part of a test session. For example, if the second network device performs a data structure (as shown by reference number 126) once, the fifth network device (network device D) has not provided a response message that includes a network performance indicator value, the second network device can identify a different network performance indicator value to use as part of the response message back to the first network device. Continuing the previous example, assume that the 30 ms RTT value between network device D and network device F has not been provided to network device B. In this example, network device B will update the third data structure with the 5 ms RTT value. Thus, network device B will not be able to update the third data structure to include the 30 ms RTT value until a subsequent iteration of the ping function.

[0056] As shown by reference number 136, the first network device can determine next hop NPI values, determine a total NPI value, and update the third data structure in the manner described elsewhere herein. In some implementations, the first network device can only determine next hop performance indicator values on the first iteration of the ping function. As shown by the example, the first network device can determine that the first link (LI) has a total RTT value of 30 ms, the second link (L2) has a total RTT value of 50 ms, and the third link (L3) has a total RTT value of 50 ms.

[0057] As shown by reference number 138, the first network device can identify a preferred next hop that is part of a preferred path through the network. For example, the first network device can identify the next hop associated with the best available total network performance indicator value as the preferred next hop. In the example shown, the first network device can identify the port associated with the second network device (shown as 1.0.0.2) as the next hop. It should be noted that, without the use of the relay mechanism, the network device would use an analysis purely based on the next hop RTT values determined by the first network device to identify the port associated with the fourth network device (network device C).

[0058] In this manner, the set of network devices efficiently and effectively monitors network performance (e.g., relative to a set of network devices using a protocol without a relay mechanism). Moreover, the set of network devices conserves resources (e.g., processing resources, network resources, memory resources, etc.) by identifying network performance indicator values that can be used to identify a next hop associated with an optimal path.

[0059] As described above, Figures 1A-1E are provided by way of example only. Other examples are possible and can be used in addition or instead. are provided by way of example only. Other examples are possible and can be used in addition or instead.Figures 1A-1E The descriptions differ. For example, there might be differences between... Figures 1A-1E The devices and / or networks shown are compared to additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks with different arrangements. Furthermore, Figures 1A-1E The two or more devices shown can be implemented in a single device, or Figures 1A-1E The single device shown can be implemented as multiple distributed devices. Additionally or alternatively, a group of devices (e.g., one or more devices) of example implementation 100 can perform one or more functions described as being performed by another group of devices of example implementation 100.

[0060] Figure 2 This is a diagram of example environment 200, in which the systems and / or methods described in this article can be implemented. (See diagram for example.) Figure 2 As shown, environment 200 may include one or more peer devices 210, a group of network devices 220 (shown as network devices 220-1 to network devices 220-N) and network 230. The devices in environment 200 may be interconnected via wired connection, wireless connection or a combination of wired and wireless connection.

[0061] Peer device 210 includes one or more devices capable of receiving and / or providing network services and / or information associated with network services. For example, peer device 210 may include service transfer devices such as routers, gateways, switches, firewalls, hubs, bridges, reverse proxies, servers (e.g., proxy servers, servers running virtual machines, etc.), security devices, intrusion detection devices, load balancers, or similar types of devices. Additionally or alternatively, peer device 210 may include endpoint devices that serve as a source or destination of network services. For example, peer device 210 may include computers or similar types of devices. Peer device 210 may receive network services from other peer devices 210 via network 230 and / or may provide network services to other peer devices 210 (e.g., by routing packets using network device 220 as an intermediary). In some implementations, a first peer device 210 may be associated with a service source (e.g., a device that creates the service, an access network between the device that creates the service and network 230, etc.). In some implementations, a second peer device 210 may be associated with a service destination (e.g., a device that receives the service).

[0062] Network device 220 includes one or more devices capable of receiving, processing, storing, routing, and / or providing services (e.g., packets, packet copies, other information or metadata, and / or the like) in the manner described herein. For example, network device 220 may include routers such as label switching routers (LSRs), label edge routers (LERs), ingress routers, egress routers, provider routers (e.g., provider edge routers, provider core routers, etc.), virtual routers, and / or the like. Additionally or alternatively, network device 220 may include gateways, switches, firewalls, hubs, bridges, reverse proxies, servers (e.g., proxy servers, cloud servers, data center servers, etc.), load balancers, and / or similar devices. In some implementations, network device 220 may be a physical device implemented within an enclosure such as a chassis. In some implementations, network device 220 may be a virtual device implemented by one or more computer devices in a cloud computing environment or data center. In some implementations, a group of network devices 220 may be a group of data center nodes used to route service flows through network 230.

[0063] In some implementations, network device 220 may be configured with a protocol (e.g., a Two-Way Access Measurement Protocol (TWAMP) including a relay mechanism). In some implementations, network device 220 may be part of a group of network devices 220 configured with a protocol and using a relay mechanism to measure network performance in a manner described elsewhere herein. In some implementations, a first network device 220 may be a first endpoint in a group of network devices 220, and a second network device 220 may be a second endpoint in that group. In this case, the first network device 220 may establish a test session that allows the group of network devices to send a series of request and response messages so that the first network device 220 can determine an overall network performance indicator value.

[0064] Network 230 includes one or more wired and / or wireless networks. For example, network 230 may include packet-switched networks, cellular networks (e.g., fifth-generation (5G) networks, fourth-generation (4G) networks such as Long Term Evolution (LTE) networks, third-generation (3G) networks, Code Division Multiple Access (CDMA) networks, Public Land Mobile Networks (PLMN), Local Area Networks (LAN), Wide Area Networks (WAN), Metropolitan Area Networks (MAN), telephone networks (e.g., Public Switched Telephone Network (PSTN)), private networks, ad hoc networks, intranets, the Internet, fiber-optic-based networks, cloud computing networks, etc., and / or combinations of these or other types of networks.

[0065] supply Figure 2 The number and arrangement of devices and networks shown are for illustrative purposes only. In practice, there may be differences. Figure 2The devices and / or networks illustrated in FIG. 1 can have fewer than or more than the number of devices and / or networks shown in FIG. 1. For example, each of the devices 210 and / or the network devices 220 can represent a group of devices and / or networks. Further, Figure 2 Two or more devices illustrated in FIG. 1 can be implemented in a single device, or Figure 2 A single device illustrated in FIG. 1 can be implemented as multiple, distributed devices. Additionally, or alternatively, a group of devices (e.g., one or more devices) of the environment 200 can perform one or more functions described as being performed by another group of devices of the environment 200.

[0066] Figure 3 FIG. 3 is a diagram of example components of a device 300. The device 300 can correspond to the peer device 210 and / or the network device 220. In some implementations, the peer device 210 and / or the network device 220 can include one or more devices 300 and / or one or more components of the device 300. As Figure 3 indicated, the device 300 can include one or more input components 305-1 through 305-B (B > 1) (hereinafter referred to collectively as the input components 305, and individually as the input component 305), a switch component 310, one or more output components 315-1 through 315-C (C > 1) (hereinafter referred to collectively as the output components 315, and individually as the output component 315), and a controller 320.

[0067] The input components 305 can be attachment points for physical links and can be entry points for input traffic, such as packets. The input components 305 can process input traffic, such as by performing data link layer encapsulation or decapsulation. In some implementations, the input components 305 can transmit and / or receive packets. In some implementations, the input components 305 can include input line cards that include one or more packet processing components (e.g., in the form of integrated circuits), such as one or more interface cards (IFCs), packet forwarding components, line card controller components, input ports, processors, memories, and / or input queues. In some implementations, the device 300 can include one or more input components 305.

[0068] The switch component 310 can interconnect the input components 305 with the output components 315. In some implementations, the switch component 310 can be implemented via one or more crossbars, via buses, and / or with shared memory. The shared memory can act as a temporary buffer to store packets from the input components 305 before the packets are finally scheduled for delivery to the output components 315. In some implementations, the switch component 310 can enable the input components 305, the output components 315, and / or the controller 320 to communicate.

[0069] The output component 315 can store packets and can schedule packets for transmission on an output physical link. The output component 315 can support data link layer encapsulation or decapsulation, and / or various higher level protocols. In some implementations, the output component 315 can transmit packets and / or receive packets. In some implementations, the output component 315 can include an output line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memories, and / or output queues. In some implementations, the device 300 can include one or more output components 315. In some implementations, the input component 305 and the output component 315 can be implemented by the same set of components (e.g., and the input / output component can be a combination of the input component 305 and the output component 315).

[0070] The controller 320 includes a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another type of processor or processing component. The processor is implemented in hardware, firmware, or a combination of software and hardware. In some implementations, the controller 320 can include one or more processors that can be programmed to perform functions.

[0071] In some implementations, the controller 320 can include random access memory (RAM), read only memory (ROM), and / or other types of dynamic or static storage device (e.g., flash memory, magnetic computer storage media, optical computer storage media, and the like) that store information and / or instructions for use by the controller 320.

[0072] In some implementations, the controller 320 can communicate with other devices, networks, and / or systems connected to the device 300 to exchange information about a network topology. The controller 320 can create a routing table based on the network topology information, create a forwarding table based on the routing table, and forward the forwarding table to the input component 305 and / or the output component 315. The input component 305 and / or the output component 315 can use the forwarding table to perform route lookups for incoming and / or outgoing packets. In some cases, the controller 320 can create a session table based on information determined when initializing a link fault detection (e.g., BFD) session, and can forward the session table to the input component 305 and / or the output component 315.

[0073] The controller 320 can perform one or more processes described herein. The controller 320 can perform these processes in response to executing software instructions stored by a non-transitory computer-readable medium. The computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.

[0074] Software instructions can be read into the memory and / or storage components associated with the controller 320 from another computer-readable medium or from another device via a communication interface. When executed, the software instructions stored in the memory and / or storage components associated with the controller 320 can cause the controller 320 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry can be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

[0075] The number and arrangement of components shown in Figure 3 are provided as examples. In practice, the device 300 can include additional components, fewer components, different components, or differently arranged components than those depicted in Figure 3 The additional components, fewer components, different components, or differently arranged components can perform one or more of the functions described as being performed by a group of components. Instead of or in addition to performing the functions described herein, a group of components (e.g., one or more components) of the device 300 can perform functions different than the functions described herein.

[0076] Figure 4 is a flow diagram of an example process 400 for monitoring network performance of a group of network devices using an active measurement protocol and a relay mechanism. In some implementations, the process 400 can be performed by a network device (e.g., the network device 220). In some implementations, one or more process blocks of the process 400 can be performed by a network device (e.g., the network device 220). Figure 4 In some implementations, one or more process blocks of the process 400 can be performed by another device or a group of devices separate from or including the network device, such as a peer device (e.g., the peer device 210). Figure 4 In some implementations, one or more process blocks of the process 400 can be performed by another device or a group of devices separate from or including the network device, such as a peer device (e.g., the peer device 210).

[0077] As shown in Figure 4 the process 400 can include initiating a connection with one or more neighboring network devices, where the network device and the one or more neighboring network devices are part of a group of network devices that are in a network and are configured with a protocol for measuring network performance, and where initiating the connection causes the network device and the one or more neighboring network devices to exchange a relay mechanism to be used for measuring the network performance (block 410). For example, the network device (e.g., using the input component 305, the exchange component 310, the output component 315, the controller 320, and / or the like) can initiate the connection with the one or more neighboring network devices, as described above in connection with the device 300 and / or the like. Figures 1A-1EThe described. In some implementations, the network device and the one or more neighboring network devices can be part of a group of network devices that are in the network and configured with a protocol for measuring network performance. In some implementations, initiating the connection can cause the network device and the one or more neighboring network devices to exchange a relay mechanism to be used to measure the network performance.

[0078] As Figure 4 further illustrated in Figures 1A-1E , the process 400 can include causing a test session to be established and used to measure the network performance (block 420). For example, the network device (e.g., using the exchange component 310, the output component 315, the controller 320, and / or the like) can cause a test session to be established and used to measure the network performance, as described above in connection with

[0079] As Figure 4 further illustrated in Figures 1A-1E , the process 400 can include periodically providing, to the one or more neighboring network devices and throughout the test session, a request message associated with requesting a first set of network performance indicator values that measure bidirectional network performance of one or more paths between the one or more neighboring network devices and the particular network device as an endpoint in the network, where the one or more neighboring network devices are to determine the first set of network performance indicator values using the relay mechanism upon receiving the request message, and where the relay mechanism allows the one or more neighboring network devices and other downstream network devices to exchange additional request messages and corresponding response messages for determining the first set of network performance indicator values (block 430). For example, the network device (e.g., using the exchange component 310, the output component 315, the controller 320, and / or the like) can periodically provide, to the one or more neighboring network devices and throughout the test session, a request message associated with requesting a first set of network performance indicator values that measure network performance of one or more paths between the one or more neighboring network devices and the particular network device as an endpoint in the network, as described above in connection with

[0080] As Figure 4 further illustrated in Figures 1A-1E , the process 400 can include periodically receiving, from the one or more neighboring network devices and throughout the test session, a response message that includes the first set of network performance indicator values (block 440). For example, the network device (e.g., using the input component 305, the exchange component 310, the controller 320, and / or the like) can periodically receive, from the one or more neighboring network devices and throughout the test session, a response message that includes the first set of network performance indicator values, as described above in connection with

[0081] As Figure 4 further illustrated in the example of FIG. 4, process 400 can include determining a second set of network performance indicator values, the second set of network performance indicator values measuring network performance between the network device and one or more neighboring network devices (block 450). For example, the network device (e.g., using switching component 310, controller 320, and / or the like) can determine a second set of network performance indicator values, the second set of network performance indicator values measuring network performance between the network device and one or more neighboring network devices, as described above in connection with Figures 1A-1E .

[0082] As Figure 4 further illustrated in the example of FIG. 4, process 400 can include determining a second set of network performance indicator values, the second set of network performance indicator values measuring network performance between the network device and one or more neighboring network devices (block 450). For example, the network device (e.g., using switching component 310, controller 320, and / or the like) can determine a second set of network performance indicator values, the second set of network performance indicator values measuring network performance between the network device and one or more neighboring network devices, as described above in connection with Figures 1A-1E .

[0083] As Figure 4 further illustrated in the example of FIG. 4, process 400 can include determining a second set of network performance indicator values, the second set of network performance indicator values measuring network performance between the network device and one or more neighboring network devices (block 450). For example, the network device (e.g., using switching component 310, controller 320, and / or the like) can determine a second set of network performance indicator values, the second set of network performance indicator values measuring network performance between the network device and one or more neighboring network devices, as described above in connection with Figures 1A-1E . In some implementations, the preferred next hop can be part of a preferred path to a particular network device that is an end point in the network, and the preferred next hop can be used for traffic flows routed through the network.

[0084] Process 400 can include additional implementations, such as any single implementation of or combination of any implementations of one or more other processes described below and / or elsewhere described herein.

[0085] In some implementations, the protocol can be a Two-Way Active Measurement Protocol (TWAMP). In some implementations, when providing the request message, the network device can provide the request message to the one or more neighboring network devices to cause the one or more neighboring network devices to determine the first set of performance indicator values using a relay mechanism and a final destination address.

[0086] In some implementations, the first set of network performance indicator values and the second set of network performance indicator values can be determined using a first set of timestamps indicating when the request messages were sent by one of the set of network devices and a second set of timestamps indicating when the response messages were received by another one of the set of network devices.

[0087] In some implementations, the network device can periodically populate the data structure with values for measuring network performance throughout the test session, where the values for measuring network performance are associated with a destination address of a destination associated with the test session, a first Internet Protocol (IP) address associated with a first mode of a protocol used by the network device during the test session, and one or more IP addresses associated with a second mode of a protocol used by one or more neighboring network devices during the test session.

[0088] In some implementations, the network device can periodically update the first set of network performance indicator values stored using the data structure that associates the first set of network performance indicator values with a destination address of a destination associated with the test session, a first Internet Protocol (IP) address associated with a first mode of a protocol used by the network device during the test session, and one or more IP addresses associated with a second mode of a protocol used by one or more neighboring network devices during the test session throughout the test session, and can update the overall network performance indicator value based on updating the first set of network performance indicator values.

[0089] In some implementations, when receiving the first set of network performance indicator values, the network device can receive the first network performance indicator value from a first neighboring network device of the one or more neighboring network devices. Additionally, when determining the second set of network performance indicator values, the network device can identify a first time at which the first instance of the request message was sent to the first neighboring network device and a second time at which the first instance of the response message was received from the first neighboring network device, and can determine the first network performance indicator value of the second set of network performance indicator values based on the first time and the second time. Additionally, when determining the overall network performance indicator value, the network device can determine the overall network performance indicator value traversing a first path of the network device, the first neighboring network device, and a particular network device functioning as an endpoint in the network by adding the first network performance indicator value of the first set of network performance indicator values and the first network performance indicator value of the second set of network performance indicator values.

[0090] Although Figure 4 Example blocks of the process 400 are shown, but in some implementations, the process 400 can include additional blocks not shown in FIG. 4, can omit blocks shown in FIG. 4, or can include additional blocks before, after, or in between blocks shown in FIG. 4. Figure 4The depicted blocks can be added to, removed from, modified, or rearranged in different ways. Additionally or alternatively, two or more of the blocks of process 400 can be performed in parallel.

[0091] Figure 5 is a flow diagram of an example process 500 for monitoring network performance of a group of network devices using an active measurement protocol and a relay mechanism. In some implementations, Figure 5 One or more of the process blocks of process 500 can be performed by a network device, such as network device 220. In some implementations, Figure 5 One or more of the process blocks of process 500 can be performed by another device or group of devices separate from or including the network device, such as a peer device, such as peer device 210.

[0092] As Figure 5 shown, process 500 can include receiving, from another network device, a request to establish a connection with the other network device, where the network device and the other network device are part of a group of network devices that are part of a network and are configured with a protocol for measuring network performance (block 510). For example, the network device (e.g., using input component 305, exchange component 310, controller 320, and / or the like) can receive, from another network device, a request to establish a connection with the other network device, as described above in connection with Figures 1A-1E In some implementations, the network device and the other network device can be part of a group of network devices that are part of a network and are configured with a protocol for measuring network performance.

[0093] As Figure 5 further shown in process 500, the network device can provide, to the other network device, a response to the request for the connection to be established, where the other network device uses the connection to interact with the network device to establish a test session and exchange a relay mechanism to be used to measure network performance (block 520). For example, the network device (e.g., using exchange component 310, output component 315, controller 320, and / or the like) can provide, to the other network device, a response to the request for the connection to be established, as described above in connection with Figures 1A-1E In some implementations, the other network device can use the connection to interact with the network device to establish a test session and exchange a relay mechanism to be used to measure network performance.

[0094] As Figure 5As further shown, process 500 may include receiving request messages from another network device and periodically throughout the test session, the request messages requesting a first network performance indicator value, which measures the network performance of the path between the network device and a specific network device used as an endpoint in the network (box 530). For example, a network device (e.g., using input component 305, switching component 310, controller 320, and / or the like) may receive request messages from another network device and periodically throughout the test session, which measure the network performance of the path between the network device and a specific network device used as an endpoint in the network, as described above in conjunction with... Figures 1A-1E As stated above.

[0095] like Figure 5 As further shown, process 500 may include periodically providing one or more additional request messages to one or more neighboring network devices throughout the test session, using a relay mechanism, to cause the one or more neighboring network devices to provide one or more additional response messages, which include a set of network performance indicator values ​​that measure the network performance between the one or more neighboring network devices and a specific network device used as an endpoint in the network (box 540). For example, network devices (e.g., using switching component 310, output component 315, controller 320, and / or the like) may synchronously provide one or more additional request messages to one or more neighboring network devices throughout the test session, using a relay mechanism, to cause the one or more neighboring network devices to provide one or more additional response messages, which include a set of network performance indicator values ​​that measure the network performance between the one or more neighboring network devices and a specific network device used as an endpoint in the network, as described above in conjunction with... Figures 1A-1E As stated above.

[0096] like Figure 5 As further shown, process 500 may include periodically determining a first network performance indicator value based on a set of network performance indicator values ​​already provided by one or more neighboring network devices throughout the test session (box 550). For example, a network device (e.g., using switching component 310, controller 320, and / or the like) may periodically determine the first network performance indicator value based on a set of network performance indicator values ​​already provided by one or more neighboring network devices throughout the test session, as described above in conjunction with... Figures 1A-1E As stated above.

[0097] like Figure 5As further shown, process 500 can include providing, to another network device and periodically throughout the test session, a response message including the first network performance indicator value to cause the another network device to use the first network performance indicator value as part of determining an overall network performance indicator value and to identify a preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value, where the preferred next hop is part of a preferred path to a particular network device that is an endpoint in the network, and where the preferred next hop is for traffic flows routed through the network (block 560). For example, a network device (e.g., using the switching component 310, the output component 315, the controller 320, and / or the like) can provide, to another network device and periodically throughout the test session, a response message including the first network performance indicator value to cause the another network device to use the first network performance indicator value as part of determining an overall network performance indicator value and to identify a preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value, as described above in connection with the description of the network performance indicator component 330 and / or the like. Figures 1A-1E In some implementations, the preferred next hop can be part of a preferred path to a particular network device that is an endpoint in the network, and the preferred next hop can be for traffic flows routed through the network.

[0098] Process 500 can include additional implementations, such as any single implementation of or combination of any implementations of one or more other processes described below and / or elsewhere described herein.

[0099] In some implementations, the protocol can be a Two-Way Active Measurement Protocol (TWAMP). In some implementations, the set of network devices can be part of a network that includes multiple paths to a particular network device that serves as an endpoint. In some implementations, the request message and the one or more additional request messages can include a final destination address, and when providing the one or more additional request messages, the network device can provide the one or more additional request messages to the one or more neighboring network devices to cause the one or more neighboring network devices to use a relay mechanism and the final destination address to determine the one or more performance indicator values.

[0100] In some implementations, the set of network performance indicator values can be a first set of network performance indicator values. Additionally, when determining the first network performance indicator value, the network device can identify a first time at which the one or more additional request messages were sent to the one or more neighboring network devices, can identify a second time at which the one or more additional response messages were received from the one or more neighboring network devices, can determine a second set of network performance indicator values based on the first time and the second time, and can determine the first network performance indicator value based on the one or more network performance indicator values and the second set of network performance indicator values.

[0101] In some implementations, the set of network performance indicator values can be a first set of network performance indicator values, where a plurality of paths through the set of network devices exist between the network device and a particular network device that serves as an endpoint. Additionally, when determining the first network performance indicator value, the network device can determine a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, can determine a third set of network performance indicator values that are based on the first set of network performance indicator values and the second set of network performance indicator values, and can use a particular network performance indicator value of the third set of network performance indicator values as the first network performance indicator value that is associated with the best available level of network performance.

[0102] In some implementations, the network device can periodically populate the data structure with values for measuring network performance throughout the test session, where the values for measuring network performance are associated with: a destination address of a destination associated with the test session, a first Internet Protocol (IP) address associated with a first mode of a protocol used by the network device during the test session, and one or more IP addresses associated with a second mode of a protocol used by one or more neighboring network devices during the test session.

[0103] Although Figure 5 Example blocks of the process 500 are shown, but in some implementations, the process 500 can include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in FIG. 6. Additionally or alternatively, two or more of the blocks of the process 500 can be performed in parallel. Figure 5

[0104] Figure 6 is a flow diagram of an example process 600 for monitoring network performance of a set of network devices using a proactive measurement protocol and a relay mechanism. In some implementations, Figure 6 One or more of the process blocks of the process 600 can be performed by a network device, such as the network device 220. In some implementations, Figure 6 One or more of the process blocks of the process 600 can be performed by another device or set of devices separate from or including the network device, such as a peer device (e.g., the peer device 210).

[0105] As Figure 6 ​As shown, process 600 can include periodically providing, to one or more neighboring network devices and throughout a test session, a request message associated with requesting a first set of network performance indicator values that measure bidirectional network performance between the one or more neighboring network devices and a particular network device that serves as an endpoint in a network, where the network device and the one or more neighboring network devices are included in a set of network devices that are part of the network and are configured with a protocol that includes a relay mechanism for measuring network performance, where the request message includes a final destination address, where the one or more neighboring network devices, upon receiving the request message, are to use the relay mechanism and the final destination address to determine the first set of network performance indicator values, and where the relay mechanism allows the one or more neighboring network devices and other downstream network devices to exchange additional request messages and corresponding response messages for determining the first set of network performance indicator values (block 610). For example, a network device (e.g., using exchange component 310, output component 315, controller 320, and / or the like) can periodically provide, to one or more neighboring network devices and throughout a test session, a request message associated with requesting a first set of network performance indicator values that measure network performance between the one or more neighboring network devices and a particular network device that serves as an endpoint in a network, as described above in connection with Figures 1A-1E In some implementations, the network device and the one or more neighboring network devices can be included in a set of network devices that are part of the network and are configured with a protocol that includes a relay mechanism for measuring network performance. In some implementations, the request message can include a final destination address. In some implementations, the one or more neighboring network devices, upon receiving the request message, can use the relay mechanism and the final destination address to determine the first set of network performance indicator values.

[0106] As further shown in Figure 6 Process 600 can include periodically receiving, from the one or more neighboring network devices and throughout the test session, a response message that includes the first set of network performance indicator values (block 620). For example, a network device (e.g., using input component 305, exchange component 310, controller 320, and / or the like) can periodically receive, from the one or more neighboring network devices and throughout the test session, a response message that includes the first set of network performance indicator values, as described above in connection with Figures 1A-1E .

[0107] As further shown in Figure 6As further shown in process 600 can include determining a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices (block 630). For example, the network device (e.g., using the switching component 310, the controller 320, and / or the like) can determine the second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, as described above in connection with Figures 1A-1E As further shown in process 600 can include determining a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices (block 630). For example, the network device (e.g., using the switching component 310, the controller 320, and / or the like) can determine the second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, as described above in connection with

[0108] As further shown in process 600 can include determining a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices (block 630). For example, the network device (e.g., using the switching component 310, the controller 320, and / or the like) can determine the second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, as described above in connection with Figure 6 As further shown in process 600 can include determining a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices (block 630). For example, the network device (e.g., using the switching component 310, the controller 320, and / or the like) can determine the second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, as described above in connection with Figures 1A-1E As further shown in process 600 can include determining a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices (block 630). For example, the network device (e.g., using the switching component 310, the controller 320, and / or the like) can determine the second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, as described above in connection with

[0109] As further shown in process 600 can include determining a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices (block 630). For example, the network device (e.g., using the switching component 310, the controller 320, and / or the like) can determine the second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, as described above in connection with Figure 6 As further shown in process 600 can include determining a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices (block 630). For example, the network device (e.g., using the switching component 310, the controller 320, and / or the like) can determine the second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, as described above in connection with Figures 1A-1E As further shown in process 600 can include determining a second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices (block 630). For example, the network device (e.g., using the switching component 310, the controller 320, and / or the like) can determine the second set of network performance indicator values that measure network performance between the network device and one or more neighboring network devices, as described above in connection with

[0110] Process 600 can include implementation of additional processes, such as any single implementation or combination of implementations of one or more other processes described below and / or described elsewhere herein.

[0111] In some implementations, the network device can initiate a connection with the one or more neighboring network devices prior to providing the request message to the one or more neighboring network devices, where initiating the connection causes the network device and the one or more neighboring network devices to exchange a relay mechanism, and can communicate with the one or more neighboring network devices to cause the test session to be established.

[0112] In some implementations, the protocol can be a Two-Way Active Measurement Protocol (TWAMP). In some implementations, the set of network devices can be part of a mesh network that includes multiple possible paths to a particular network device that serves as an endpoint in the network.

[0113] In some implementations, the network device can periodically populate a data structure with values used to measure network performance throughout a test session, where the data structure associates the values used to measure network performance with a final destination address of a destination associated with the test session, a first Internet (IP) address associated with a first mode of a protocol used by the network device during the test session, and one or more IP addresses associated with a second mode of the protocol used by one or more neighboring network devices during the test session.

[0114] In some implementations, the network device can update a first set of network performance indicator values stored using a data structure based on periodically receiving response messages throughout a test session, the data structure associating the first set of network performance indicator values with a final destination address of a destination associated with the test session, a first Internet Protocol (IP) address associated with a first mode of a protocol used by the network device during the test session, and one or more IP addresses associated with a second mode of the protocol used by one or more neighboring network devices during the test session, and can update an overall network performance indicator value based on updating the first set of network performance indicator values.

[0115] Although Figure 6 Example blocks of the process 600 are shown, but in some implementations, the process 600 can include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in FIG. 6. Additionally or alternatively, two or more of the blocks of the process 600 can be performed in parallel. Figure 6 Additional or different blocks can be performed in place of, or in addition to, the blocks depicted in FIG. 6. Additionally or alternatively, two or more of the blocks of the process 600 can be performed in parallel.

[0116] In some embodiments, a method includes initiating, by a network device, a connection with one or more neighboring network devices, wherein the network device and the one or more neighboring network devices are included in a set of network devices that are part of a network and are configured with a protocol for measuring network performance, and wherein initiating the connection causes the network device and the one or more neighboring network devices to exchange a relay mechanism to be used to measure the network performance; causing, by the network device, a test session to be established and used to measure the network performance; providing, by the network device to the one or more neighboring network devices and throughout the test session, a request message associated with requesting a first set of network performance indicator values that measure bidirectional network performance for one or more paths between the one or more neighboring network devices and a particular network device that is an endpoint in the network, wherein the one or more neighboring network devices, upon receiving the request message, are to use the relay mechanism to determine the first set of network performance indicator values, and wherein the relay mechanism allows the one or more neighboring network devices and other upstream network devices to exchange additional request messages and corresponding response messages used to determine the first set of network performance indicator values; receiving, by the network device from the one or more neighboring network devices and throughout the test session, response messages that include the first set of network performance indicator values; determining, by the network device, a second set of network performance indicator values that measure the network performance between the network device and the one or more neighboring network devices; determining, by the network device, an overall network performance indicator value based on the first set of network performance indicator values and the second set of network performance indicator values; and identifying, by the network device, a preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value, wherein the preferred next hop is part of a preferred path to the particular network device that is the endpoint in the network, and wherein the preferred next hop is to be used for traffic flows to be routed through the network.

[0117] In some embodiments, wherein the protocol is a Two-Way Active Measurement Protocol (TWAMP).

[0118] In some embodiments, wherein the request message includes a final destination address; and wherein providing the request message includes providing the request message to the one or more neighboring network devices to cause the one or more neighboring network devices to use the relay mechanism and the final destination address to determine the first set of performance indicator values.

[0119] In some embodiments, wherein the first set of network performance indicator values and the second set of network performance indicator values are determined using a first set of time stamps and a second set of time stamps, the first set of time stamps indicating times at which the request messages are sent by one of the set of network devices, the second set of time stamps indicating times at which the response messages are received by another of the set of network devices.

[0120] In some embodiments, the method further comprises: populating a data structure with values for measuring the network performance periodically throughout the test session, wherein the values for measuring the network performance are associated with: a destination address of a destination associated with the test session, a first internet protocol (IP) address, the first internet protocol (IP) address being associated with a first mode of the protocol used by the network device during the test session, and one or more IP addresses, the one or more IP addresses being associated with a second mode of the protocol used by the one or more neighboring network devices during the test session.

[0121] In some embodiments, the method further comprises: updating the first set of network performance indicator values periodically throughout the test session, the first set of network performance indicator values being stored using a data structure, the data structure associating the first set of network performance indicator values with: a destination address of a destination associated with the test session, a first internet protocol (IP) address, the first internet protocol (IP) address being associated with a first mode of the protocol used by the network device during the test session, and one or more IP addresses, the one or more IP addresses being associated with a second mode of the protocol used by the one or more neighboring network devices during the test session; and updating the overall network performance indicator value based on updating the first set of network performance indicator values.

[0122] In some embodiments, wherein receiving the first set of network performance indicator values comprises receiving a first network performance indicator value from a first neighboring network device of the one or more neighboring network devices; wherein determining the second set of network performance indicator values comprises: identifying a first time at which the first instance of the request message was sent to the first neighboring network device and a second time at which the first instance of the response message was received from the first neighboring network device, and determining a first network performance indicator value of the second set of network performance indicator values based on the first time and the second time; and wherein determining the overall network performance indicator value comprises: determining an overall network performance indicator value for a first path by adding the first network performance indicator value of the first set of network performance indicator values and the first network performance indicator value of the second set of network performance indicator values, the first path traversing the network device, the first neighboring network device, and the particular network device used as the endpoint in the network.

[0123] In some embodiments, a network device comprising: one or more memories; and one or more processors to: receive, from another network device, a request to establish a connection with the other network device, wherein the network device and the other network device are included in a group of network devices that are part of a network and are configured with a protocol to measure network performance; provide, to the other network device, a response to the request to cause the connection to be established, wherein the other network device uses the connection to interact with the network device to establish a test session and exchange a relay mechanism to be used to measure the network performance; periodically receive, from the other network device and throughout the test session, a request message requesting a first network performance indicator value that measures the network performance of a path between the network device and a particular network device used as an endpoint in the network; periodically and throughout the test session, provide, to one or more neighboring network devices, one or more additional request messages using the relay mechanism to cause the one or more neighboring network devices to provide one or more additional response messages including a set of network performance indicator values that measure the network performance of the one or more neighboring network devices and the particular network device used as the endpoint in the network; periodically determine, throughout the test session, the first network performance indicator value based on the set of network performance indicator values already provided by the one or more neighboring network devices; and periodically provide, to the other network device and throughout the test session, a response message including the first network performance indicator value to cause the other network device to use the first network performance indicator value as part of determining an overall network performance indicator value and to identify a preferred next hop of one of the one or more neighboring network devices based on the overall network performance indicator value, wherein the preferred next hop is part of a preferred path to the particular network device used as the endpoint in the network, and wherein the preferred next hop is to be used for traffic flows to be routed through the network.

[0124] In some embodiments, wherein the protocol is a Two-Way Active Measurement Protocol (TWAMP).

[0125] In some embodiments, wherein the group of network devices is part of a network that includes multiple paths to the particular network device used as the endpoint.

[0126] In some embodiments, wherein the request message and the one or more additional request messages comprise a final destination address; and wherein when providing the one or more additional request messages, the one or more processors are to: provide the one or more additional request messages to the one or more neighboring network devices to cause the one or more neighboring network devices to determine the one or more performance indicator values using the relay mechanism and the final destination address.

[0127] In some embodiments, wherein the set of network performance indicator values is a first set of network performance indicator values; and wherein the one or more processors, when determining the first network performance indicator value, are to: identify a first time at which the one or more additional request messages were sent to the one or more neighboring network devices, identify a second time at which the one or more additional response messages were received from the one or more neighboring network devices, determine a second set of network performance indicator values based on the first time and the second time, and determine the first network performance indicator value based on the one or more network performance indicator values and the second set of network performance indicator values.

[0128] In some embodiments, wherein the set of network performance indicator values is a first set of network performance indicator values; wherein a plurality of paths through the set of network devices exist between the network device and the particular network device used as the endpoint; and wherein the one or more processors, when determining the first network performance indicator value, are to: determine a second set of network performance indicator values that measure the network performance between the network device and the one or more neighboring network devices, determine a third set of network performance indicator values based on the first set of network performance indicator values and the second set of network performance indicator values, and use a particular network performance indicator value of the third set of network performance indicator values that is associated with a best available level of network performance as the first network performance indicator value.

[0129] In some embodiments, wherein the one or more processors are further to: periodically populate a data structure with values to measure the network performance throughout the test session, wherein the values to measure the network performance are associated with: a destination address of a destination associated with the test session, a first internet protocol (IP) address, the first internet protocol (IP) address is associated with a first mode of the protocol used by the network device during the test session, and one or more IP addresses, the one or more IP addresses are associated with a second mode of the protocol used by the one or more neighboring network devices during the test session.

[0130] In some embodiments, a non-transitory computer-readable medium storing one or more instructions, the one or more instructions comprising: one or more instructions that, when executed by one or more processors of a network device, cause the one or more processors to: periodically provide, to one or more neighboring network devices and throughout a test session, a request message associated with requesting a first set of network performance indicator values that measure a bidirectional network performance between the one or more neighboring network devices and a particular network device used as an endpoint in a network, wherein the network device and the one or more neighboring network devices are included in a set of network devices that are part of the network and are configured with a protocol that includes a relay mechanism for measuring the network performance, wherein the request message can include a final destination address, wherein the one or more neighboring network devices, upon receiving the request message, can use the relay mechanism and the final destination address to determine the first set of network performance indicator values, and wherein the relay mechanism allows the one or more neighboring network devices and other upstream network devices to exchange additional request messages and corresponding response messages that are used to determine the first set of network performance indicator values; periodically receive, from the one or more neighboring network devices and throughout the test session, response messages that include the first set of network performance indicator values; determine a second set of network performance indicator values that measure the network performance between the network device and the one or more neighboring network devices; determine an overall network performance indicator value based on the first set of network performance indicator values and the second set of network performance indicator values; and identify a preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value, wherein the preferred next hop is part of a preferred path to the particular network device that is the endpoint in the network, and wherein the preferred next hop is to be used for traffic flows that are routed through the network.

[0131] In some embodiments, wherein the one or more instructions, when executed by the one or more processors, further cause the one or more processors to: prior to providing the request message to the one or more neighboring network devices, initiate a connection with the one or more neighboring network devices, wherein initiating the connection causes the network device and the one or more neighboring network devices to exchange the relay mechanism; and communicate with the one or more neighboring network devices to cause the test session to be established.

[0132] In some embodiments, wherein the protocol is a Two-Way Active Measurement Protocol (TWAMP).

[0133] In some embodiments, wherein the set of network devices is part of a mesh network, the mesh network includes a plurality of possible paths to the particular network device used as the endpoint in the network.

[0134] In some embodiments, wherein the one or more instructions, when executed by the one or more processors, further cause the one or more processors to: periodically populate a data structure with values for measuring the network performance throughout the test session, wherein the data structure associates the values for measuring the network performance with: the final destination address of a destination associated with the test session, a first internet protocol (IP) address, the first internet protocol (IP) address being associated with a first mode of the protocol used by the network device during the test session, and one or more IP addresses, the one or more IP addresses being associated with a second mode of the protocol used by the one or more neighboring network devices during the test session.

[0135] In some embodiments, wherein the one or more instructions, when executed by the one or more processors, further cause the one or more processors to: update the first set of network performance indicator values based on periodically receiving the response messages throughout the test session, the first set of network performance indicator values being stored using a data structure that associates the first set of network performance indicator values with: the final destination address of a destination associated with the test session, a first internet protocol (IP) address, the first internet protocol (IP) address being associated with a first mode of the protocol used by the network device during the test session, and one or more IP addresses, the one or more IP addresses being associated with a second mode of the protocol used by the one or more neighboring network devices during the test session; and update the overall network performance indicator value based on updating the first set of network performance indicator values.

[0136] As used herein, the term request message and / or the term response message can refer to or include a packet. A packet can refer to a communication structure used to convey information, such as a test packet, a probe packet, an Internet Control Message Protocol (ICMP) packet, a User Datagram Protocol (UDP) packet, a Transmission Control Protocol (TCP) packet, a Type of Service (ToS) packet configured with a Differentiated Services Code Point (DSCP), a Hypertext Transfer Protocol (HTTP) packet, a Protocol Data Unit (PDU), a network packet, a datagram, a segment, a message, a block, an element, a frame, a subframe, a time slot, a symbol, a portion of any of the above, and / or other type of formatted or unformatted data unit capable of being sent via a network.

[0137] The foregoing presentation is provided for illustrative purposes and is not intended to exhaust or limit implementation to the precise form disclosed. Modifications and variations are possible in light of the above disclosure, or can be obtained from the practice of the implementations.

[0138] As used herein, the term component is intended to be broadly interpreted to include hardware, firmware, and / or combinations of hardware and software.

[0139] Some implementations are described herein in connection with a threshold. As used herein, satisfying a threshold can refer to a value being greater than the threshold, more than the threshold, higher than the threshold, greater than or equal to the threshold, less than the threshold, fewer than the threshold, lower than the threshold, less than or equal to the threshold, equal to the threshold, etc.

[0140] It will be apparent to those skilled in the art that the systems and / or methods described herein can be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and / or methods were described herein without reference to specific software code — it being understood that software and hardware can be designed to implement the systems and / or methods based on the description herein.

[0141] While specific combinations of features are recited in the claims and / or described in the specification, these combinations are not intended to limit the disclosure of possible implementations. Indeed, many combinations of the features can be made without departing from the scope of the disclosure. While each of the following dependent claims lists a single dependent claim directly from a single claim, the disclosure of possible implementations includes combinations of each dependent claim with every other claim in the set of claims.

[0142] No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and can be used interchangeably with “one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, a combination of related and unrelated items, etc.), and can be used interchangeably with “one or more.” Where only one item is intended, the term “one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having,” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.

Claims

1. A method for network performance monitoring, comprising: A connection is initiated by a network device to one or more adjacent network devices. The network device and the one or more adjacent network devices are included in a group of network devices, which are part of a network and are configured with protocols for measuring network performance; The protocol mentioned is the Two-Way Activity Measurement Protocol (TWAMP). The protocol mentioned above includes a relay mechanism; and The relay mechanism enables the group of network devices to automatically execute test session tasks; This allows a test session to be established and used to measure the network performance, and Providing information to the one or more adjacent network devices includes: The system periodically provides request messages associated with a first set of network performance indicator values, which measure bidirectional network performance for one or more paths between the one or more neighboring network devices and a specific network device that is an endpoint in the network, to the one or more adjacent network devices throughout the test session. Upon receiving the request message, one or more adjacent network devices will use the relay mechanism to determine the first set of network performance indicator values, and The relay mechanism allows the one or more adjacent network devices and other upstream network devices to exchange additional request messages and corresponding response messages used to determine the values ​​of the first set of network performance indicators; The network device receives information including the first set of network performance indicator values ​​from the one or more neighboring network devices. The network device determines a second set of network performance indicator values ​​to measure the network performance between the network device and one or more adjacent network devices; The network device determines the overall network performance indicator value based on the first set of network performance indicator values ​​and the second set of network performance indicator values; and The network device identifies the preferred next hop to one of the one or more neighboring network devices based on the overall network performance indicator value. The preferred next hop is part of the preferred path to the particular network device.

2. The method according to claim 1, further comprising: The data structure is populated with values ​​used to measure the network performance. The values ​​used to measure the network performance are associated with the following: The destination address of the destination associated with the test session. A first Internet Protocol (IP) address, the first Internet Protocol (IP) address being associated with a first mode of the protocol used by the network device during the test session, and One or more IP addresses, which are associated with a second mode of the protocol used by the one or more adjacent network devices during the test session.

3. The method according to claim 1, further comprising: Update the first set of network performance indicator values, which are stored using a data structure that associates the first set of network performance indicator values ​​with the following: The destination address of the destination associated with the test session. A first Internet Protocol (IP) address, the first Internet Protocol (IP) address being associated with a first mode of the protocol used by the network device during the test session, and One or more IP addresses, said one or more IP addresses being associated with a second mode of the protocol used by said one or more adjacent network devices during the test session; as well as The overall network performance indicator value is updated based on the updated first set of network performance indicator values.

4. The method according to claim 1, wherein the first set of network performance indicator values ​​and the second set of network performance indicator values ​​are determined using a first timestamp set and a second timestamp set, the first timestamp set indicating the time when a request message is sent by one of the network devices in the group of network devices, and the second timestamp set indicating the time when a response message is received by another network device in the group of network devices.

5. The method of claim 1, wherein the preferred next hop is used for the service flow routed through the network.

6. A network device, comprising: One or more memory units; as well as One or more processors, for: Receive a request message from another network device requesting a first network performance indicator value, the first network performance indicator value measuring the network performance of the path between the network device and a specific network device used as an endpoint in the network. The network device and the other network device are included in a group of network devices, which are part of a network and are configured with protocols for measuring network performance; One or more additional request messages are provided to one or more neighboring network devices, causing the one or more neighboring network devices to provide one or more additional response messages, the additional response messages including a set of network performance indicator values ​​that measure the network performance between the one or more neighboring network devices and the specific network device used as the endpoint in the network; The first network performance indicator value is determined based on the set of network performance indicator values ​​already provided by the one or more adjacent network devices; as well as The other network device is provided with a response message including the first network performance indicator value, such that the other network device uses the first network performance indicator value as part of determining an overall network performance indicator value, and identifies the preferred next hop of one or more adjacent network devices based on the overall network performance indicator value; The request message and the one or more additional request messages include the final destination address, and When providing the one or more additional request messages, the processors will use them to: The one or more additional request messages are provided to the one or more neighboring network devices so that the one or more neighboring network devices use a relay mechanism and the final destination address to determine the one or more performance indicator values.

7. The network device of claim 6, wherein the preferred next hop is part of a preferred path to the particular network device that is the endpoint in the network, and The preferred next hop will be used for the service flow that is routed through the network.

8. The network device according to claim 6, wherein the relay mechanism enables the group of network devices to automatically perform test session tasks.

9. The network device of claim 6, wherein the group of network devices is part of a network, the network including multiple paths to the particular network device used as the endpoint.

10. The network device of claim 6, wherein the set of network performance indicator values ​​is a first set of network performance indicator values; and When determining the first network performance indicator value, the one or more processors will use the following methods: The first time that the one or more additional request messages are sent to the one or more adjacent network devices. The second time at which the one or more additional response messages are received from the one or more adjacent network devices. The second set of network performance indicator values ​​is determined based on the first time and the second time. The first network performance indicator value is determined based on the one or more network performance indicator values ​​and the second set of network performance indicator values.

11. The network device of claim 6, wherein the set of network performance indicator values ​​is a first set of network performance indicator values; Multiple paths through the group of network devices exist between the network devices and the specific network device used as the endpoint; and When determining the first network performance indicator value, the one or more processors will use the following methods: A second set of network performance indicator values ​​is determined, which measures the network performance between the network device and the one or more adjacent network devices. Determine a third set of network performance indicator values ​​based on the first set of network performance indicator values ​​and the second set of network performance indicator values, and The first network performance indicator value is a specific network performance indicator value associated with the third set of network performance indicator values ​​that is best available network performance level.

12. The network device of claim 6, wherein the one or more processors are further configured to: The data structure is populated with values ​​used to measure the network performance. The values ​​used to measure the network performance are associated with the following: The destination address of the destination associated with the test session. A first Internet Protocol (IP) address, the first Internet Protocol (IP) address being associated with a first mode of the protocol used by the network device during the test session, and One or more IP addresses, which are associated with a second mode of the protocol used by the one or more adjacent network devices during the test session.

13. A non-transitory computer-readable medium storing one or more instructions, said one or more instructions comprising: One or more instructions, when executed by one or more processors of the network device, cause the one or more processors to: Information associated with a first set of network performance indicator values ​​is received from one or more neighboring network devices. These first set of network performance indicator values ​​measures the bidirectional network performance between the one or more neighboring network devices and a specific network device used as an endpoint in the network. The network device and the one or more adjacent network devices are included in a group of network devices, which are part of the network and are configured with protocols for measuring network performance. Determine a second set of network performance indicator values, which measures the network performance between the network device and the one or more adjacent network devices; The overall network performance indicator value is determined based on the first set of network performance indicator values ​​and the second set of network performance indicator values; as well as The preferred next hop to one of the one or more neighboring network devices is identified based on the overall network performance indicator value. The preferred next hop is part of a preferred path to the specific network device that is the endpoint in the network; The one or more instructions, when executed by the one or more processors, further cause the one or more processors to: Before providing the information to the one or more neighboring network devices, initiate a connection with the one or more neighboring network devices. The connection is initiated such that the network device and the one or more adjacent network devices exchange relay mechanisms; and Communicating with one or more adjacent network devices to establish a test session; The one or more instructions, when executed by the one or more processors, further cause the one or more processors to: The data structure is populated with values ​​used to measure the network performance. The data structure described therein associates the values ​​used to measure the network performance with the following: The final destination address associated with the test session. A first Internet Protocol (IP) address, the first Internet Protocol (IP) address being associated with a first mode of the protocol used by the network device during the test session, and One or more IP addresses, which are associated with a second mode of the protocol used by the one or more adjacent network devices during the test session.

14. The non-transitory computer-readable medium of claim 13, wherein the protocol is the Two-Way Activity Measurement Protocol (TWAMP), and The protocol mentioned above includes a relay mechanism. The relay mechanism allows the one or more adjacent network devices and other upstream network devices to exchange additional request messages and corresponding response messages used to determine the values ​​of the first set of network performance indicators.

15. The non-transitory computer-readable medium of claim 13, wherein the set of network devices is part of a mesh network, the mesh network including multiple possible paths to the particular network device used as an endpoint in the network.

16. A method for network performance monitoring, comprising: A connection is initiated by a network device to one or more adjacent network devices. The network device and the one or more adjacent network devices are included in a group of network devices, which are part of a network and configured with protocols for measuring network performance. The protocol mentioned is the Two-Way Activity Measurement Protocol (TWAMP). The network device is the first endpoint in the network. The connection is initiated so that the network device and the one or more neighboring network devices exchange relay mechanisms for measuring network performance. The protocol includes the relay mechanism, and the relay mechanism enables the group of network devices to perform one or more test session tasks based on a set of rules associated with the relay mechanism during a test session; The network device enables the establishment of the test session, which is then used to measure the network performance. The network device causes the one or more neighboring network devices to use the relay mechanism to determine a first set of round-trip time (RTT) values ​​along one or more first paths between the one or more neighboring network devices and a specific network device in the group of network devices. The specific network device mentioned therein is a second endpoint in the network; The network device receives information including the first set of RTT values ​​from one or more neighboring network devices. This includes the information of the first set of RTT values ​​received based on the one or more neighboring network devices performing the one or more test session tasks during the test session; The network device determines a second set of RTT values ​​along one or more second paths between the network device and one or more adjacent network devices; The network device determines the overall RTT value based on the first set of RTT values ​​and the second set of RTT values; as well as The network device identifies the preferred next hop to one of the one or more neighboring network devices based on the overall RTT value. The preferred next hop is part of the preferred path to the particular network device.

17. The method of claim 16, further comprising: The system periodically provides request messages associated with requesting the first set of RTT values ​​to the one or more adjacent network devices throughout the test session. Upon receiving the request message, one or more of the adjacent network devices will use the relay mechanism to determine the first set of RTT values, and The relay mechanism allows the one or more neighboring network devices and other upstream network devices to exchange additional request messages and corresponding response messages for determining the first set of RTT values.

18. The method of claim 17, further comprising: The data structure is populated with values ​​used to measure the network performance. The values ​​used to measure the network performance are associated with the following: The destination address of the destination associated with the test session. A first Internet Protocol (IP) address, the first IP address being associated with a first mode of the protocol used by the network device during the test session, and One or more IP addresses, which are associated with a second mode of the protocol used by the one or more adjacent network devices during the test session.

19. The method of claim 17, further comprising: Update the first set of RTT values, which are stored using a data structure that associates the first set of RTT values ​​with the following: The destination address of the destination associated with the test session. A first Internet Protocol (IP) address, the first IP address being associated with a first mode of the protocol used by the network device during the test session, and One or more IP addresses, said one or more IP addresses being associated with a second mode of the protocol used by said one or more adjacent network devices during the test session; as well as The overall RTT value is updated based on the updated first set of RTT values.

20. The method of claim 16, wherein the first set of RTT values ​​and the second set of RTT values ​​are determined using a first timestamp set and a second timestamp set, the first timestamp set indicating the time when a request message is sent by one of the network devices in the group of network devices, and the second timestamp set indicating the time when a response message is received by another network device in the group of network devices.

21. The method of claim 16, wherein the preferred next hop is used for traffic flows routed through the network.

22. A network device, comprising: One or more memory units; as well as One or more processors, for: Receive a request message from another network device requesting a first round-trip time (RTT) value, the first RTT value being for the path between the network device and a specific network device. The network device, the other network device, and the specific network device are included in a group of network devices that are part of a network and configured with protocols for measuring network performance. The protocol mentioned is the Two-Way Activity Measurement Protocol (TWAMP). The protocol includes a relay mechanism that enables the group of network devices to perform one or more test session tasks during a test session based on a set of rules associated with the relay mechanism. The other network device is the first endpoint in the network, and The specific network device mentioned therein is a second endpoint in the network; This allows the test session to be established and used to measure the network performance; One or more additional request messages are provided to one or more neighboring network devices included in the group of network devices, such that the one or more neighboring network devices provide one or more additional response messages including a set of RTT values ​​between the one or more neighboring network devices and the particular network device; The first RTT value is determined based on the set of RTT values ​​already provided by the one or more adjacent network devices. The set of RTT values ​​is provided by the one or more neighboring network devices based on the one or more test session tasks performed by the one or more neighboring network devices during the test session; as well as The other network device is provided with a response message including the first RTT value, such that the other network device uses the first RTT value as part of determining an overall RTT value and identifies a preferred next hop to one of the one or more adjacent network devices based on the overall RTT value.

23. The network device of claim 22, wherein the preferred next hop is part of a preferred path to the particular network device, and The preferred next hop will be used for the service flow routed through the network.

24. The network device of claim 22, wherein the network includes multiple paths to the particular network device.

25. The network device of claim 22, wherein the request message and the one or more additional request messages include a final destination address, and When providing the one or more additional request messages, the processors will use them to: The one or more additional request messages are provided to the one or more neighboring network devices so that the one or more neighboring network devices use the relay mechanism and the final destination address to determine the set of RTT values.

26. The network device of claim 22, wherein the set of RTT values ​​is a first set of RTT values; and When determining the first RTT value, the one or more processors will use the following methods: The first time when the one or more additional request messages are sent to the one or more adjacent network devices. A second time at which the one or more additional response messages are received from the one or more adjacent network devices. The second set of RTT values ​​is determined based on the first time and the second time. The first RTT value is determined based on the first set of RTT values ​​and the second set of RTT values.

27. The network device of claim 22, wherein the set of RTT values ​​is a first set of RTT values; There are multiple paths through the group of network devices between the other network device and the specific network device; and When determining the first RTT value, the one or more processors will use the following methods: Determine a second set of RTT values ​​between the network device and the one or more adjacent network devices. Determine a third set of RTT values ​​based on the first set of RTT values ​​and the RTT values, and The first RTT value is a specific RTT value associated with the third set of RTT values, which is related to the best available network performance level.

28. The network device of claim 22, wherein the one or more processors are further configured to: The data structure is populated with values ​​used to measure the network performance. The values ​​used to measure the network performance are associated with the following: The destination address of the destination associated with the test session. A first Internet Protocol (IP) address, the first IP address being associated with a first mode of the protocol used by the network device during the test session, and One or more IP addresses, which are associated with a second mode of the protocol used by the one or more adjacent network devices during the test session.

29. A non-transitory computer-readable medium storing one or more instructions, said one or more instructions comprising: One or more instructions, when executed by one or more processors of the network device, cause the one or more processors to: This enables one or more neighboring network devices to use a relay mechanism to determine the first set of round-trip time (RTT) values ​​between the one or more neighboring network devices and a specific network device. The network device, the one or more adjacent network devices, and the specific network device are included in a group of network devices, which are part of a network and are configured with protocols for measuring network performance. The network device is the first endpoint in the network. The specific network device mentioned therein is the second endpoint in the network. The protocol mentioned is the Two-Way Activity Measurement Protocol (TWAMP), and The protocol includes the relay mechanism, and the relay mechanism enables the group of network devices to perform one or more test session tasks based on a set of rules associated with the relay mechanism during a test session; Receive information associated with the first set of RTT values ​​from one or more neighboring network devices. The information associated with the first set of RTT values ​​is received based on the one or more neighboring network devices performing the one or more test session tasks during the test session; Determine a second set of RTT values ​​between the network device and the one or more adjacent network devices; The overall RTT value is determined based on the first set of RTT values ​​and the second set of RTT values; as well as The preferred next hop to one of the one or more neighboring network devices is identified based on the overall RTT value. The preferred next hop is part of the preferred path to the particular network device.

30. The non-transitory computer-readable medium of claim 29, wherein the one or more instructions, when executed by the one or more processors, further cause the one or more processors to: Before providing the information to the one or more neighboring network devices, initiate a connection with the one or more neighboring network devices. The connection is initiated such that the network device and the one or more adjacent network devices exchange the relay mechanism; and Communicate with one or more adjacent network devices to establish the test session.

31. The non-transitory computer-readable medium of claim 30, wherein the one or more instructions, when executed by the one or more processors, further cause the one or more processors to: The data structure is populated with values ​​used to measure the network performance. The data structure described therein associates the values ​​used to measure the network performance with the following: The final destination address associated with the test session. A first Internet Protocol (IP) address, the first IP address being associated with a first mode of the protocol used by the network device during the test session, and One or more IP addresses, which are associated with a second mode of the protocol used by the one or more adjacent network devices during the test session.

32. The non-transitory computer-readable medium of claim 29, wherein the relay mechanism allows the one or more adjacent network devices and other upstream network devices in the group of network devices to exchange additional request messages and corresponding response messages for determining the first set of RTT values.

33. The non-transitory computer-readable medium of claim 29, wherein the group of network devices is part of a mesh network, the mesh network including multiple possible paths to the particular network device.

34. The non-transitory computer-readable medium of claim 29, wherein the one or more instructions, when executed by the one or more processors, further cause the one or more processors to: This allows the test session to be established and used to measure the network performance, and The system periodically provides request messages associated with requesting the first set of RTT values ​​to the one or more adjacent network devices throughout the test session.

35. The non-transitory computer-readable medium of claim 34, wherein the relay mechanism allows the one or more adjacent network devices and other upstream network devices to exchange additional request messages and corresponding response messages for determining the first set of RTT values.

Citation Information

Patent Citations

  • A routing method based on a hierarchical IP network coordinate system

    CN102291312A

  • A network performance detection method and a network device

    CN107579869A