Network monitoring method and device, equipment and storage medium
By generating a detection path covering the network link and collecting information from intermediate nodes to monitor the link status, the problem of traditional methods in high-performance networks cannot be located, and efficient network monitoring and fault location are achieved.
Patent Information
- Application Number
- CN202410110873.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-25
- Publication Date
- 2025-07-25
AI Technical Summary
The existing high-performance network monitoring methods cannot effectively detect and locate network performance problems, especially in high-performance computing clusters. Traditional methods cannot solve the problem of untimely parameter synchronization.
By obtaining network topology information, generating detection paths covering all or part of the links in the network, sending detection messages to collect node information of intermediate nodes, monitoring the network status of the link, and using in-band telemetry technology to collect load information, message forwarding status, etc., to achieve fine monitoring of the link.
It can quickly locate the specific location of network failures, achieve full-link coverage, improve network monitoring efficiency and accuracy, and reduce network overhead.
Smart Images

Figure CN120378325A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of network monitoring, and particularly to a network monitoring method, apparatus, device, and storage medium. Background Art
[0002] With the development of a series of large language models such as ChatGPT, the demand for high-performance computing clusters has surged. The number of parameters of the above-mentioned large language models is often in the billions.
[0003] When training large language models, at least dozens or even hundreds of servers are required to participate in the operation. Therefore, high-performance computing clusters have emerged as the times require. A high-performance computing cluster consists of multiple networked high-performance servers and has a centralized scheduler to manage parallel computing tasks. These servers are called nodes. A high-performance computing cluster can support the parallel training of large language models, that is, multiple copies of large language models can be trained simultaneously within the cluster, thereby accelerating the training speed of large language models. To support parameter synchronization between nodes, the nodes need to communicate through a high-performance network. Traditional detection methods can only detect the connectivity information in the high-performance network. If performance problems occur in the high-performance network, such as a high load on a certain section of the high-performance network resulting in untimely parameter synchronization, traditional detection methods cannot solve this problem.
[0004] Therefore, how to design a monitoring method for high-performance networks to detect network problems in high-performance networks is an urgent problem to be solved currently. Summary of the Invention
[0005] This application provides a network monitoring method, apparatus, device, and storage medium. The technical solutions are as follows:
[0006] According to one aspect of this application, a network monitoring method is provided. The method is executed by a controller and includes:
[0007] Obtain the topology information of a network, where the network includes at least two end nodes and at least one intermediate node, and different nodes are connected by links, and the link is a network connection in the network that only passes through two nodes;
[0008] Based on the topology information of the network, generate at least one detection path covering all or part of the links in the network. Each detection path passes through at least one of the intermediate nodes, and the start node and end node of the detection path are the end nodes;
[0009] For the at least one detection path, control the start node of the detection path to send a first detection message to the end node of the detection path, where the first detection message is used to collect node information of the intermediate nodes passed by, and the node information of the intermediate nodes is used to indicate the network status of the links connected to the intermediate nodes;
[0010] Obtain the node information from the intermediate nodes and / or end nodes passed by the first detection message;
[0011] Based on the node information, monitor the network status of at least one link passed by the detection path in the network.
[0012] According to one aspect of the present application, a network monitoring method is provided, where the node information is stored in the internal memory of the controller or the external memory or database of the controller, and the node information is compressed node information.
[0013] According to one aspect of the present application, a network monitoring device is provided, and the device includes:
[0014] A first acquisition module, configured to acquire topology information of a network, where the network includes at least two end nodes and at least one intermediate node, and different nodes are connected by links, and the link is a network connection in the network that only passes through two nodes;
[0015] A generation module, configured to generate at least one detection path covering all or part of the links in the network based on the topology information of the network, each detection path passes through at least one of the intermediate nodes, and the start node and end node of the detection path are the end nodes;
[0016] A control module, configured to, for the at least one detection path, control the start node of the detection path to send a first detection message to the end node of the detection path, where the first detection message is used to collect node information of the intermediate nodes passed by, and the node information of the intermediate nodes is used to indicate the network status of the links connected to the intermediate nodes;
[0017] A second acquisition module, configured to obtain the node information from the intermediate nodes and / or end nodes passed by the first detection message;
[0018] A monitoring module, configured to monitor the network status of at least one link passed by the detection path in the network based on the node information.
[0019] According to one aspect of the present application, a computer device is provided. The computer device includes a processor and a memory, and at least one program is stored in the memory. The processor is configured to execute the at least one program in the memory to implement the above-mentioned network monitoring method.
[0020] According to one aspect of the present application, a computer-readable storage medium is provided. Executable instructions are stored in the computer-readable storage medium, and the executable instructions are loaded and executed by a processor to implement the above-mentioned network monitoring method.
[0021] According to one aspect of the present application, a computer program product is provided. The computer program product includes computer instructions, the computer instructions are stored in a computer-readable storage medium, and a processor reads and executes the computer instructions from the computer-readable storage medium to implement the above-mentioned network monitoring method.
[0022] The beneficial effects brought by the technical solution provided by the present application at least include:
[0023] By generating at least one probing path covering all or part of the links, and sending probing packets according to the probing path, and collecting node information of intermediate nodes passed by the probing path to implement the probing of the network status of the links passed by the probing path; the node information can indicate the specific network status of the links connected to the nodes, such as load information, packet forwarding situation, etc. These information can enable the controller to monitor network performance problems, and set the monitoring target as the link. Compared with the method with the path as the monitoring target, it can quickly locate the specific location where the fault occurs when the network fails. In the generation stage of the probing path, if it is selected to generate a probing path covering all links, it can also achieve full-link coverage of the network. If it is selected to generate a probing path covering all links that need to be probed, it can also achieve full coverage of all links that need to be probed in the network. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings required for the description of the embodiments. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained according to these drawings.
[0025] Figure 1 Shows an architecture diagram of a communication network provided by an exemplary embodiment of the present application;
[0026] Figure 2 Shows an architecture diagram of a data center network provided by an exemplary embodiment of the present application;
[0027] Figure 3Shows a flowchart of a network monitoring method provided by an exemplary embodiment of the present application;
[0028] Figure 4 Shows a schematic diagram of a network monitoring method provided by an exemplary embodiment of the present application;
[0029] Figure 5 Shows a schematic diagram of a network monitoring method provided by an exemplary embodiment of the present application;
[0030] Figure 6 Shows a schematic diagram of a network monitoring method provided by an exemplary embodiment of the present application;
[0031] Figure 7 Shows a schematic diagram of a network monitoring method provided by an exemplary embodiment of the present application;
[0032] Figure 8 Shows a schematic diagram of a network monitoring method provided by an exemplary embodiment of the present application;
[0033] Figure 9 Shows a schematic diagram of a network monitoring method provided by an exemplary embodiment of the present application;
[0034] Figure 10 Shows a block diagram of the structure of a network monitoring device provided by an exemplary embodiment of the present application;
[0035] Figure 11 Shows a schematic diagram of the structure of a computer device provided by an exemplary embodiment of the present application. Detailed implementation manners
[0036] To make the objectives, technical solutions, and advantages of the present application clearer, the following will further describe the embodiments of the present application in detail with reference to the accompanying drawings.
[0037] Here, the exemplary embodiments will be described in detail, and the examples are shown in the accompanying drawings. When the following description refers to the accompanying drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. On the contrary, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the appended claims.
[0038] The terms used in this disclosure are only for the purpose of describing specific embodiments and are not intended to limit the disclosure. The singular forms "a", "the", and "said" used in this disclosure and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term "and / or" as used herein refers to and includes any or all possible combinations of one or more of the associated listed items.
[0039] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in this application are all information and data that have been authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with the relevant laws, regulations, and standards of relevant countries and regions. For example, the information such as setup operations involved in this application are obtained under full authorization.
[0040] It should be understood that although the terms first, second, etc. may be used in this disclosure to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from each other. For example, without departing from the scope of this disclosure, the first parameter may also be referred to as the second parameter, and similarly, the second parameter may also be referred to as the first parameter. Depending on the context, the word "if" as used herein may be interpreted as "when" or "while" or "in response to determining".
[0041] First, introduce the relevant nouns involved in this application:
[0042] INT (In-band Network Telemetry): A new type of network monitoring technology that realizes comprehensive monitoring and analysis of data streams by adding special Metadata (meta-data) to network data packets. These Metadata can provide rich network performance information such as network congestion, latency, packet loss, etc., and can also be used to identify network attacks and abnormal behaviors. Compared with traditional network monitoring technologies, INT can provide more refined data, helping network administrators better understand the network status and quickly locate and solve problems. The core of INT technology is to embed Metadata in data packets, which can be captured and recorded when the data packets pass through network devices and then sent to the data center for processing and analysis.
[0043] Load balancing: A network control technology that distributes network traffic to multiple servers or network devices to improve the performance and reliability of the network. The load balancer is the core device for implementing the load balancing function, which can automatically or manually distribute network traffic to different servers or network devices to balance the load and improve the performance and reliability of the network.
[0044] Figure 1 It is an architecture diagram of a communication network provided by an embodiment of this application. As Figure 1As shown, the communication network includes at least one server 110, at least one layer of switches 120, and a controller 130. Any server 110, switch 120, and controller 130 are connected by wired or wireless means for communication.
[0045] Each server 110 can simultaneously serve as both a sender and a receiver. That is, for any server 110, this server 110 can be the sender of the message (i.e., the starting node of the path) or the receiver of the message (i.e., the ending node of the path).
[0046] The server 110 can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms. The terminal can be a smartphone, tablet computer, laptop, desktop computer, smart speaker, smart watch, etc., but is not limited thereto. The terminal and the server can be directly or indirectly connected by wired or wireless communication methods, and this application does not limit this here.
[0047] The controller 130 is used to control the collection, storage, and transmission of messages, and based on the received node information, the network conditions of each link in the network.
[0048] Optionally, the communication network further includes a database 140. The database 140 is used to store at least one detection path generated by the controller; the database 140 is also used to store the node information obtained during the network process.
[0049] In addition, the network method provided by the embodiments of this application can also be applied to a data center network. A simple description of the data center network is given here. Figure 2 is an architecture diagram of a data center network provided by the embodiments of this application. As Figure 2 shown, each server 110 accesses the network through an access switch 121. The access switch 121 is interconnected with the aggregation switch 122 in the same cluster. The aggregation switch 122 of each cluster is connected to the core switch 123 to achieve interconnection and interoperability between clusters and ensure the diversity and redundancy of end-to-end paths. Each server 110 can also be the sender of the message or the receiver of the message. The data center also includes a controller 130 and a database 140. The controller 130, server 110, switch 120, and database 140 are connected by wireless or wired networks.
[0050] Figure 3The flowchart of the network method provided by an exemplary embodiment of the present application is shown. This method is executed by a controller, and the controller is the controller as shown in Figure 1 or Figure 2 The controller shown. The method includes:
[0051] Step 210: Obtain the topology information of the network. The network includes at least two end nodes and at least one intermediate node. Different nodes are connected by links, and a link is a network connection in the network that only passes through two nodes.
[0052] In some embodiments, the node that cannot forward packets in the network is an end node, and the node that can forward packets in the network is an intermediate node; or, the node that provides network services in the network is an end node, and the node that provides network connections in the network is an intermediate node.
[0053] In some embodiments, the end node is a physical server existing in the real world; or, the end node is a virtual server, and multiple virtual servers share the CPU, memory, disk, etc. of a physical server, or a virtual server is composed of multiple physical servers. That is, a physical server is an end node in the network, or, a physical server includes at least one end node in the network, or, multiple physical servers are an end node in the network.
[0054] In some embodiments, the intermediate node is used to assist the end nodes in the network to communicate. The intermediate node is a switch or a router.
[0055] A link is a network connection that only passes through two nodes. A path is a network connection that passes through at least two nodes, that is, a path includes at least one link. Among them, the link and the path have directions, that is, the link and the path include a start node and an end node, and the link and the path are used to indicate the network connection from the start node to the end node.
[0056] As Figure 4 shown, the network includes 4 end nodes and 5 intermediate nodes. The 4 end nodes are respectively server 10 to server 13, and the 5 intermediate nodes are respectively switch 20 to switch 24. Each edge 30 to edge 39 between the nodes is actually two one-way edges. Here, the graph is simplified and merged into one undirected edge, indicating that both ends of the edge can be used as the input end and the output end of the packet. Among them, each edge 30 to edge 39 can be called a link. A path can be represented by the links it passes through, or by its start node, end node and the links it passes through, or by the links it passes through and the intermediate nodes. For example Figure 4There is a path "Edge 36 - Edge 32 - Edge 34 - Edge 39" in it. This path can also be expressed as "Node 10 - Edge 36 - Edge 32 - Edge 34 - Edge 39 - Node 13", and can also be expressed as "Edge 36 - Node 23 - Edge 32 - Node 21 - Edge 34 - Node 24 - Edge 39", and can further be expressed as "Node 10 - Edge 36 - Node 23 - Edge 32 - Node 21 - Edge 34 - Node 24 - Edge 39 - Node 13".
[0057] Step 220: Based on the topological information of the network, generate at least one probing path covering all or part of the links in the overlay network. Each probing path passes through at least one intermediate node, and the starting node and the ending node of the probing path are end nodes.
[0058] In some embodiments, based on the obtained topological information, a probing path is obtained. The probing path is a path used to probe the network condition between the starting node and the ending node of the probing path. The starting node and the ending node of the probing path are both end nodes, and the probing path passes through at least one intermediate node.
[0059] In some embodiments, the links in the network can be divided into links that need to be probed and links that do not need to be probed. Exemplarily, the links that do not need to be probed include at least one of the following: links where the starting node and / or the ending node fails; links where the starting node and / or the ending node is not enabled; links without associated probing tasks, etc. Whether a link needs to be probed can be indicated by establishing a probing task, and the probing task is pre-set in the controller; or, the probing task is set manually. The probing path only includes the links that need to be probed; or, the probing path includes all the links that need to be probed and some links that do not need to be probed.
[0060] In some embodiments, after generating at least one probing path, save the probing information of the probing path to the internal memory of the controller, or the external memory of the controller, or the database. The probing information is used to indicate the starting node information of the probing path, the ending node information of the probing path, and the intermediate node information passed by the probing path. The probing information includes at least one of the starting node IP of the probing path, the starting node port of the probing path, the ending node IP of the probing path, the ending node port of the probing path, the protocol number of the probing path, the IP of at least one intermediate node, the incoming port number of at least one intermediate node, and the outgoing port number of at least one intermediate node.
[0061] Step 230: According to at least one probing path, control the starting node of the probing path to send a first probing message to the ending node of the probing path. The first probing message is used to collect the node information of the intermediate nodes passed by, and the node information of the intermediate nodes is used to indicate the network condition of the links connected to the intermediate nodes.
[0062] According to at least one detection path generated above, control the start node of each detection path to send a first detection message to the end node of the detection path, that is, according to the detection information of at least one detection path generated above, control the start node of each detection path to send a first detection message to the end node of the detection path.
[0063] The first detection message is used to collect node information of the intermediate nodes passed by. The node information of the intermediate nodes is used to indicate the network status of the link connected to the intermediate node, that is, the node information is used to indicate at least one of the link information, load information, and node usage information of the link connected to the intermediate node. The node information includes device identifier, ingress port number, forwarding delay, queue occupancy, ingress timestamp, egress port number, transmission counter of the queue, packet loss counter of the queue, egress port link utilization rate, MMU (Memory Management Unit, cache management unit) status, etc. The forwarding delay is used to indicate the time interval from when the message enters the ingress port to when it exits the egress port. The start moment of this time interval can be when the first bit of the message enters the ingress port, or when the last bit of the message enters the ingress port. The end moment of this time interval can be when the first bit of the message exits the egress port, or when the last bit of the message exits the egress port. The transmission counter of the queue is used to indicate the number of data packets successfully transmitted by the queue associated with this intermediate node within a certain period of time. The packet loss counter of the queue is used to indicate the number of data packets discarded by the queue associated with this intermediate node within a certain period of time. The egress port link utilization rate is used to indicate the degree to which the link connected to the egress port is utilized within a certain period of time. The MMU status is used to indicate the usage of the memory management unit in the intermediate node. The intermediate node queue is a data structure inside the intermediate node used to process and optimize the sending of data packets. When the intermediate node forwards a data packet, it will put the data packet into the queue and determine the sending order of the data packets according to a certain scheduling algorithm. The queue occupancy is used to indicate the number of messages stored in the queue of this intermediate node.
[0064] Optionally, the first detection message is an in-band telemetry message. An in-band telemetry message is a message that uses in-band telemetry technology, such as an INT message, a NetFlow (Network Flow) message, an sFlow (Sampled Flow) message, an IPFIX (IP Flow Information Export) message, etc.
[0065] Step 240: Obtain node information from the intermediate nodes and / or end nodes passed by the first detection message.
[0066] In some embodiments, each time the first detection message passes through an intermediate node, the intermediate node inserts node information into the first detection message. When the first detection message reaches the last intermediate node or the termination node, the last intermediate node or the termination node uploads the node information in the first detection message to the controller; or, each time the first detection message passes through an intermediate node, the intermediate node directly uploads the collected node information to the controller and continues to forward the first detection message to the next node. Optionally, the first detection message has a message header, and the message header is used to indicate the type of node information to be collected during the transmission process. When inserting the node information into the first detection message, the node information is inserted after the node header, and / or, when there is node information in the first detection message, the node information is inserted after the last node information. The type of node information includes at least one of device identifier, ingress port number, forwarding delay, queue occupancy, ingress timestamp, egress port number, transmission counter of the queue, packet loss counter of the queue, egress port link utilization, MMU status. Optionally, a bitmap method is used to represent the selection of the type of node information. For example, there are 8 types of node information set in the protocol, which are device identifier, ingress port number, forwarding delay, queue occupancy, ingress timestamp, egress port number, transmission counter of the queue, and packet loss counter of the queue in sequence. The corresponding bit in the bitmap being 1 indicates that the node information of this type needs to be collected, and the corresponding bit being 0 indicates that the node information of this type does not need to be collected. For example, the data corresponding to the type of node information in the first detection message is 11110100, indicating that the first detection message is used to instruct the intermediate node to collect device identifier, ingress port number, forwarding delay, queue occupancy, and egress port number.
[0067] The method for the controller to obtain node information is as Figures 5 to 7 shown, taking the first detection message using an INT message as an example for illustration. The INT message includes an INT header, and the INT header is used to indicate the type of node information to be collected during the transmission process. Each time the INT message passes through an intermediate node, the intermediate node collects node information according to the type of node information indicated by the INT header and inserts the node information into the first detection message. When the INT message reaches the last intermediate node 24 or the termination node 12, the last intermediate node 24 or the termination node 12 uploads the node information in the INT message to the controller; or, each time the INT message passes through an intermediate node, the intermediate node collects node information according to the type of node information indicated by the INT header and directly uploads the collected node information to the controller.
[0068] Optionally, the first detection message is used to collect node information of all or part of the intermediate nodes passed through. The intermediate nodes to be collected include at least one of the nodes with network status detection capabilities and the nodes marked as needing to be collected. The above intermediate nodes are the intermediate nodes to be collected.
[0069] Step 250: Based on the node information, detect the network status of at least one link through which the detection path in the network passes.
[0070] In some embodiments, the controller analyzes the network status of each link based on the received node information.
[0071] In summary, the method provided by the embodiments of the present application realizes the detection of the network status of the links passed through by the detection path by generating at least one detection path covering all or part of the links, sending detection messages according to the detection path, and collecting node information of the intermediate nodes passed through by the detection path; this node information can indicate the specific network status of the links connected to the nodes, such as load information, packet forwarding situation, etc. These information can enable the controller to perform on the network performance issues, and set the target to the link. Compared with the method with the path as the target, it can quickly locate the specific location where the fault occurs when the network fails. In the generation stage of the detection path, if it is selected to generate a detection path covering all links, full-link coverage of the network can also be achieved. If it is selected to generate a detection path covering all links that need to be detected, full coverage of all links that need to be detected in the network can also be achieved.
[0072] When the controller generates at least one detection path based on the topology information of the network, the following steps can be adopted to implement. Based on Figure 3 In an alternative embodiment, step 220 can be implemented as steps 221 to 223.
[0073] Step 221: Based on the topology information of the network, select at least one group of start nodes and end nodes.
[0074] In some embodiments, both the at least one group of start nodes and end nodes are end nodes. Based on the topology information of the network, select at least one group of start nodes and end nodes. That is, based on the topology information of the network, select at least one group of end nodes as the start nodes and end nodes of the detection path. For example, randomly select any two end nodes from the network as a group of start nodes and end nodes; or, based on the topology information of the network, randomly obtain a group of connected end nodes from the network as the start nodes and end nodes.
[0075] In some embodiments, any group of end nodes is randomly selected as a group of start nodes and end nodes, and connectivity detection is performed for this group of start nodes and end nodes; after the detection paths of this group are obtained, any group of end nodes is randomly selected again as a group of start nodes and end nodes, and connectivity detection continues until at least one detection path covering all or part of the links in the above overlay network is generated. Or, multiple groups of start nodes and end nodes are randomly selected, and connectivity detection is performed for these start nodes and end nodes. After the detection paths of this group are obtained, multiple groups of start nodes and end nodes are randomly selected again, and connectivity detection continues until at least one detection path covering all or part of the links in the above overlay network is generated. Or, at least one group of start nodes and end nodes is randomly selected, and connectivity detection is performed for at least one group of start nodes and end nodes to generate at least one detection path covering all or part of the links in the above overlay network.
[0076] Step 222: For at least one group of start nodes and end nodes, control the start node to perform connectivity detection using a second detection message, where the destination address of the second detection message is the end node corresponding to the start node, and the connectivity detection is used to detect the connectivity information between the start node and the end node.
[0077] In some embodiments, the second detection message uses the same protocol as the first detection message, or the second detection message uses a different protocol from the first detection message. Exemplarily, the second detection message is an INT message; or the second detection message is a message supporting Traceroute; or the second detection message is a message supporting sFlow. The second detection message is used to collect the connectivity information between the start node and the end node, and the connectivity information includes at least one of the device identifier of the intermediate node, the ingress port of the intermediate node, and the egress port of the intermediate node, where the intermediate node is the intermediate node passed by the path connecting the start node and the end node.
[0078] Step 223: Based on the node information fed back by the intermediate nodes and / or end nodes passed by the second detection message, at least one detection path between the start node and the end node is detected.
[0079] In some embodiments, the detection information of at least one detected detection path is saved to the internal memory of the controller, or the external memory of the controller, or the database. The detection information is used to indicate the start node information of the detection path, the end node information of the detection path, and the intermediate node information passed by the detection path. The detection information includes at least one of the start node IP of the detection path, the start node port of the detection path, the end node IP of the detection path, the end node port of the detection path, the protocol number of the detection path, the IP of at least one intermediate node, the ingress port number of at least one intermediate node, and the egress port number of at least one intermediate node.
[0080] In summary, for the method provided in the embodiments of the present application, when generating at least one detection path, the second detection message can use the same or different protocols as the first detection message. Since the first detection message is responsible for collecting network conditions, the first detection message requires more resources. The second detection message only needs to be responsible for detecting connectivity information, and the network overhead in this regard can be reduced by reducing the node information to be collected or selecting a protocol that consumes fewer resources. Since there are actually many paths shared between different source nodes and destination nodes in the network, by randomly selecting any one or more groups of source nodes and destination nodes and directly performing connectivity detection, and repeating the above random selection process until at least one group of source nodes and destination nodes corresponding to at least one detection path covering all or part of the links in the above network is selected, this process can avoid performing the above connectivity detection on all nodes in an ideal situation and can detect the detection path covering all links more quickly.
[0081] Optionally, different ports of two end nodes are connected through different paths; or, due to the network being configured with a load balancing policy, different detection information may correspond to different detection paths; or, based on the network configuration information of the end nodes and intermediate nodes, different ports of two end nodes are connected through different paths.
[0082] Step 222 can be implemented as step 2221 and step 2222.
[0083] Step 2221: Obtain any one group of source nodes and destination nodes from at least one group of source nodes and destination nodes.
[0084] In some embodiments, select one group of source nodes and destination nodes from at least one group of source nodes and destination nodes in sequence; or, randomly select one group of source nodes and destination nodes from at least one group of source nodes and destination nodes.
[0085] Step 2222: For any one group of source nodes and destination nodes, control the source node to send a second detection message through the first port, the destination address of the second detection message is the destination node and the destination port is at least one port of the destination node; and / or, for any one group of source nodes and destination nodes, control the source node to send a second detection message through at least one port, the destination address of the second detection message is the destination node and the destination port is the second port of the destination node.
[0086] Optionally, for any one group of source nodes and destination nodes, control the source node to send a second detection message through the first port, the destination address of the second detection message is the destination node and the destination port is at least one port of the destination node. The first port is any port of the source node.
[0087] Optionally, for any set of a start node and an end node, control the start node to send a second probe message through at least one port, where the destination address of the second probe message is the end node and the destination port is a second port of the end node. The second port is any port of the end node.
[0088] Optionally, for any set of a start node and an end node, control the start node to send a second probe message through at least one port, where the destination address of the second probe message is the end node and the destination port is at least one port of the end node.
[0089] Exemplarily, as Figure 4 shown, select the start node as node 10 and the end node as node 13. When sending a second probe message from port 3341 of the start node 10 to port 3342 of the end node 13, the probe path is "edge 36 - edge 32 - edge 34 - edge 39"; when sending a second probe message from port 3342 of the start node 10 to port 3342 of the end node 13, the probe path is still "edge 36 - edge 32 - edge 34 - edge 39"; when sending a second probe message from port 3341 of the start node 10 to port 3341 of the end node 13, the probe path is "edge 36 - edge 35 - edge 33 - edge 39"; when sending a second probe message from port 3343 of the start node 10 to port 3344 of the end node 13, the probe path is "edge 36 - edge 32 - edge 30 - edge 31 - edge 33 - edge 39".
[0090] In summary, the method provided by the embodiments of the present application shows a method for generating at least one probe path. By changing the port number of the message sending end and / or the port number of the receiving end to generate the probe path, this method can continue to probe the path between the same set of start node and end node when all or part of the end nodes in the network have been traversed but a probe path covering the entire link has not been generated yet, so as to ensure full-link coverage; on the other hand, in the initial generation stage of the probe path, directly generating more probe paths by changing the port number can concentrate the probe tasks of sending the first probe message through the probe path more on certain end nodes in the network, that is, more concentrated on certain servers, which is beneficial to the function division of different servers in the network, enabling the controller to focus more on these servers, reducing the parallelism of the controller for sending probe messages and generating probe paths, and thus generating a full-coverage probe path more quickly.
[0091] In some embodiments, on the premise of ensuring that each link belongs to no less than a first quantity of probe paths, control the start node of the probe path to send a first probe message to the end node of the probe path according to some probe paths in the at least one probe path.
[0092] Exemplarily, at least one detection path generated for the network as shown in Figure 4 includes: "Edge 36 - Edge 32 - Edge 34 - Edge 39", "Edge 36 - Edge 32 - Edge 34 - Edge 38", "Edge 36 - Edge 35 - Edge 33 - Edge 38", "Edge 36 - Edge 35 - Edge 33 - Edge 39", "Edge 37 - Edge 32 - Edge 30 - Edge 31 - Edge 33 - Edge 38". The number of detection paths each link belongs to is as follows: Link 36 has 4 paths, Link 37 has 1 path, Link 38 has 3 paths, Link 39 has 2 paths, Link 32 has 3 paths, Link 33 has 3 paths, Link 34 has 2 paths, Link 35 has 2 paths, Link 30 has 1 path, and Link 31 has 1 path. If the first quantity is 1, then there are redundant detection paths for all links except Link 30, Link 31, and Link 37. Select some detection paths from at least one detection path, such as "Edge 36 - Edge 32 - Edge 34 - Edge 39", "Edge 36 - Edge 35 - Edge 33 - Edge 38", "Edge 37 - Edge 32 - Edge 30 - Edge 31 - Edge 33 - Edge 38", and only use the above three detection links to send the first detection message, that is, control the start node 10 to send the first detection message to the end node 13, and the path corresponding to this message is "Edge 36 - Edge 32 - Edge 34 - Edge 39"; control the start node 10 to send the first detection message to the end node 12, and the path corresponding to this message is "Edge 36 - Edge 35 - Edge 33 - Edge 38"; control the start node 11 to send the first detection message to the end node 13, and the path corresponding to this message is "Edge 37 - Edge 32 - Edge 30 - Edge 31 - Edge 33 - Edge 38". Selecting some detection paths from at least one detection path can also be "Edge 36 - Edge 32 - Edge 34 - Edge 38", "Edge 36 - Edge 35 - Edge 33 - Edge 39", "Edge 37 - Edge 32 - Edge 30 - Edge 31 - Edge 33 - Edge 38". The selection method of some detection paths can be based on the generation time of the detection path, the usage situation of the start node of the detection path, the usage situation of the end node of the detection path, etc. For example, preferentially use the most recently generated detection path, or, the start node has sufficient resources, that is, the start node that is less used, or, the end node has sufficient resources, that is, the end node that is less used.
[0093] In some embodiments, some detection paths are stored in the memory built into the controller, or the memory external to the controller, or the database. Some detection paths can be called the currently enabled detection paths, and at least one detection path includes the currently enabled detection paths and the unenabled detection paths.
[0094] In summary, for the method provided by the embodiments of the present application, on the one hand, it can minimize the load pressure on the links in the network caused by the sending of probe messages while ensuring that each link to be detected is covered by a certain number of probe paths; on the other hand, when the first quantity is set to a number greater than 1, that is, each link to be detected is covered by redundant probe paths, it can ensure that the links in the network are still within the detection range in the case of failures of some probe paths, thus ensuring the stability of the network.
[0095] Optionally, the end condition for randomly selecting one or more sets of start nodes and end nodes may also be that the ratio of the detected links covered by the currently detected probe paths to the number of links to be detected reaches a detection threshold. That is, the scenarios corresponding to at least one set of start nodes and end nodes selected in step 221 include: randomly selecting any set of end nodes as a set of start nodes and end nodes, and performing connectivity detection for this set of start nodes and end nodes; after detecting the probe paths of this set, randomly selecting any set of end nodes as a set of start nodes and end nodes again and continuing with the connectivity detection until the ratio of the detected links covered by the currently detected probe paths to the number of links to be detected reaches the detection threshold. Or, randomly select multiple sets of start nodes and end nodes, perform connectivity detection for these start nodes and end nodes, and after detecting the probe paths of this set, randomly select multiple sets of start nodes and end nodes again and continue with the connectivity detection until the ratio of the detected links covered by the currently detected probe paths to the number of links to be detected reaches the detection threshold. The remaining undetected links can be used to generate probe paths covering the undetected links in the following steps.
[0096] In some scenarios, at least one probe path generated by the above method does not cover each link to be detected in the network; or, due to changes in the set of links to be detected, the currently enabled probe paths do not cover each link to be detected. Probe paths covering the remaining undetected links can be generated through the following steps.
[0097] In some embodiments, the database stores the currently enabled probe paths and the unenabled probe paths. Query all or part of the associated probe paths for the supplementary detection links from the database, where the associated probe path is a path including the supplementary detection link, and the supplementary detection link is a link that needs to be detected but has not been detected. Enable at least one associated probe path according to the current detection task. In the case where the number of associated probe paths queried is insufficient or no associated probe paths are queried, probe paths covering the supplementary detection links can be generated through the following steps.
[0098] In an alternative embodiment based on Figure 3 the method further includes:
[0099] Step 310: Obtain each undetected link according to at least one detection path and the topology information of the network.
[0100] In some embodiments, based on the generated detection paths and the topology information of the network, obtain all undetected and to-be-detected links in the network. Obtain the set of all links covered by each detection path in the generated detection path set and the set of all links to be detected in the network, and obtain the difference set of the set of all links to be detected in the network relative to the set of all links covered by each detection path in the generated detection path set. All links in this difference set are undetected links; or, obtain the set of all links covered by each detection path in the currently enabled detection path set and the set of all links to be detected in the network, and take the difference set of the set of all links to be detected in the network relative to the set of all links covered by each detection path in the currently enabled detection path set. All links in this difference set are undetected links.
[0101] Exemplarily, the relationship between the set of all links to be detected in the network and the set of all links covered by each detection path in the generated detection path set, or, the set of all links to be detected in the network and the set of all links covered by each detection path in the currently enabled detection path set is as follows. The set of all links to be detected in the network is greater than or less than or equal to the set of all links covered by each detection path in the generated detection path set; or, the set of all links to be detected in the network is greater than or less than or equal to the set of all links covered by each detection path in the currently enabled detection path set. The set of all links to be detected in the network may include all or part of the set of all links covered by each detection path in the generated detection path set; or, the set of all links to be detected in the network may include all or part of the set of all links covered by each detection path in the currently enabled detection path set; or, the set of all links covered by each detection path in the generated detection path set may include all or part of the set of all links to be detected in the network; or, the set of all links covered by each detection path in the currently enabled detection path set may include all or part of the set of all links to be detected in the network.
[0102] For example, Figure 8 in part (1) of, set 60 is the set of all links to be detected, and set 61 is the set of all links covered by each detection path in the generated detection path set, or, the set of all links covered by each detection path in the currently enabled detection path set; then Figure 8 the slanted area corresponding to set 60 in part (1) of is the difference set expressed above, and this difference set is the set of undetected links. Figure 8In part (2), set 62 is the set of all links to be detected, and set 63 is the set of all links covered by each detection path in the generated detection path set, or the set of all links covered by each detection path in the currently enabled detection path set; then Figure 8 In part (2), the slanted area corresponding to set 62 is the difference set expressed above, and this difference set is the set of undetected links. Figure 8 In part (3), set 64 is the set of all links to be detected, and set 65 is the set of all links covered by each detection path in the generated detection path set, or the set of all links covered by each detection path in the currently enabled detection path set; then Figure 8 In part (3), the slanted area corresponding to set 64 is the difference set expressed above, and this difference set is the set of undetected links.
[0103] Step 320: Obtain a supplementary detection link for the i-th detection among each undetected link. The starting node of the supplementary detection link is the first starting node, the terminating node of the supplementary detection link is the first terminating node, and i is a positive integer.
[0104] Obtain an undetected link from all undetected links as the supplementary detection link for the i-th detection.
[0105] Step 330: Obtain the forwarding index of the first terminating node; and control the first starting node to detect the supplementary detection link based on the forwarding index of the first terminating node.
[0106] In some embodiments, obtain the forwarding index of the first terminating node. The forwarding index is used to indicate the index information of the terminating node when the first starting node performs packet forwarding. The terminating node is the next hop of the first starting node, and the forwarding index can be understood as the index information of the next hop corresponding to the first starting node.
[0107] Each intermediate node in the network will maintain all or part of the forwarding indexes of the terminating nodes connected to this intermediate node. The intermediate node maintains the forwarding index in at least one of forms such as a table, a linked list, an array, etc. For example, the intermediate node maintains a forwarding table to maintain the forwarding indexes of all terminating nodes corresponding to this intermediate node.
[0108] In the case where the link corresponding to the intermediate node and this terminating node is an undetected link, the forwarding index corresponding to the terminating node is a null value or a fixed value. For example, the forwarding index of the terminating node corresponding to the undetected link is "-1". The above process of detecting the path or link is the process of obtaining the forwarding index of the terminating node corresponding to the link. The intermediate node can obtain the forwarding indexes of all or part of the terminating nodes connected to it through broadcasting or other means.
[0109] In some embodiments, after obtaining the forwarding index of the first termination node, any one of the at least one detected probing path passing through the first starting node is selected from the detected probing paths, and based on this probing path, a supplementary probing path passing through the supplementary probing link is generated. As Figure 9 shown, Figure 9 Part (1) of Figure 9 is a partial topology diagram of the network. Nodes 40 to 47 in the figure are all intermediate nodes. Figure 9 Part (2) of Figure 9 is the topology diagram covered by the at least one currently generated probing path. The solid lines in the figure are the detected links, and the dashed lines are the undetected links. At this time, the supplementary probing link is 57, the first starting node is 43, and the first termination node is 46.
[0110] Before step 330 is executed, the forwarding table saved by the first starting node 43 is shown in Table 1. The forwarding table includes a node identifier and a forwarding index. The node identifier is used to uniquely indicate the termination node connected to the first starting node. The representation forms of the node identifier include at least one of the node IP, the device identifier of the node, and the MAC (Medium / Media Access Control) address of the node.
[0111] Table 1
[0112] Node identifier Forwarding index Node 45 0 Node 46 -1 Node 47 2
[0113] In some embodiments, after obtaining the forwarding index of the first termination node, for example, the forwarding index of the first termination node is 1, the first starting node sends a probing message to the first termination node based on the forwarding index of the first termination node to probe the supplementary probing link, and at the same time generates a probing path passing through the supplementary probing link. For example, the first starting node sends a probing message to the first termination node. Since this is the first communication between the first starting node and the first termination node, the first termination node will send a feedback message to the first starting node. The feedback message is used to indicate that the first termination node has received the probing message. After receiving the feedback message, the first starting node will update the forwarding table and update the forwarding index of the first termination node. The updated forwarding table is shown in Table 2. On the premise of updating the forwarding table, when generating a probing path, it is possible to control the generation of a probing path passing through the supplementary probing link; or, query the probing path passing through the first starting node, and based on this probing path and the forwarding index of the first termination node, generate a probing path passing through the supplementary probing link. As Figure 9 shown in part (2) of Figure 9 , the supplementary probing link is link 57. The probing paths passing through the first starting node 43 include "edge 52 - edge 56" and "edge 52 - edge 58". Based on this probing path and the forwarding index of the first termination node, a probing path "edge 52 - edge 57" passing through the supplementary probing link is generated.
[0114] Table 2
[0115] Node identifier Forwarding index Node 45 0 Node 46 1 Node 47 2
[0116] Step 340: Continuously obtain the supplementary detection link for the (i + 1)-th detection until all undetected links are detected.
[0117] In some embodiments, continue to obtain a link from all undetected links as the detection link for the (i + 1)-th query.
[0118] In summary, the method provided by the embodiments of the present application performs supplementary detection on all links in the network that need to be detected but have not been detected, ensuring that the generated detection paths can cover all links in the network that need to be detected, achieving full link coverage and avoiding monitoring blind spots. At the same time, only detection paths are generated for undetected links, rather than continuously repeating the above method of obtaining at least one detection path to achieve full coverage, which can effectively save resources and will not cause excessive pressure on the network.
[0119] In some embodiments, the method for obtaining the forwarding index of the first termination node includes any one of the following three methods.
[0120] Method 1: Theoretical calculation.
[0121] Method 2: Simulation test.
[0122] Method 3: Model prediction.
[0123] The following will introduce the above three methods in sequence, but the introduction order does not limit the advantages and disadvantages of these three methods.
[0124] Method 1: Theoretical calculation.
[0125] In some embodiments, "obtaining the forwarding index of the first termination node" in step 330 can be implemented as steps 331 to 334.
[0126] In some embodiments, steps 331 to 334 can be executed by the first starting node. The first starting node only needs to have simple computing capabilities to execute the following steps, which can ensure the detection of supplementary detection links while reducing the overhead of the controller.
[0127] Step 331: Query the equivalent termination node connected to the first starting node from the detected links. The category or level of the equivalent termination node is the same as that of the first termination node.
[0128] Among them, the link formed by the first starting node and the equivalent termination node can be called the equivalent link of the supplementary detection link. The equivalent link is a link with the same starting node and the same category or level of the termination node.
[0129] Step 332: When there are at least two equivalent termination nodes in the supplementary detection link, obtain the forwarding indexes of the at least two equivalent termination nodes.
[0130] Since the above equivalent termination nodes are obtained by querying the detected link, the forwarding indexes of the above equivalent termination nodes are stored in the first starting node.
[0131] Step 333: Based on the node identifiers of the at least two equivalent termination nodes and the forwarding indexes of the at least two equivalent termination nodes, obtain the mapping relationship between the node identifier and the forwarding index.
[0132] In some embodiments, there is a mapping relationship between the node identifier and the forwarding index in the forwarding table of the starting node for termination nodes of the same category or level. Therefore, based on the node identifiers of the at least two equivalent termination nodes and the forwarding indexes of the at least two equivalent termination nodes, calculate the mapping relationship between the node identifier and the forwarding index.
[0133] Among them, the sequence of node identifiers stored in the forwarding table can be expressed as {a i}; the sequence of forwarding indexes stored in the forwarding table can be expressed as {b i}, {b i} is an arithmetic progression, i is used to indicate the sorting of the node in the forwarding table, i is a positive integer, and i conforms to the arithmetic progression. The sequence of node identifiers {a i} is all known, and the sequence of forwarding indexes {b i} is partially known.
[0134] First, obtain the sequence of node identifiers {a i} corresponding to the at least two equivalent termination nodes from the sequence of node identifiers {a n ,..., a m}, and obtain its corresponding sequence of forwarding indexes {b n ,..., b m}, both n and m are positive integers, and n is less than m. Based on the arithmetic progression formed by the sorting {n,..., m} of the node identifiers and forwarding indexes corresponding to the at least two equivalent termination nodes, calculate the common difference d of the sequence of forwarding indexes {b n ,..., b m} corresponding to the at least two equivalent termination nodes. The calculation formula is as follows.
[0135]
[0136] In the formula, both p and k are positive integers, and n < p < m, n < k < m. b p and b k are the known forwarding indexes among the forwarding indexes corresponding to the at least two equivalent termination nodes.
[0137] As shown in Table 1, the node identifier is the number of the node. It is known that the categories or levels of Node 45, Node 46, and Node 47 are the same. Node 45 and Node 47 are equivalent termination nodes corresponding to Node 46. "The sorting of Node 47 - the sorting of Node 45 = 2", "The forwarding index of Node 47 - the forwarding index of Node 45 = 2". According to the formula, the forwarding index of Node 46 can be calculated as 1.
[0138] Step 334: Calculate the forwarding index of the first termination node based on the mapping relationship and the node identifier of the first termination node.
[0139] In some embodiments, the above steps may be executed by the first starting node.
[0140] In summary, the method provided by the embodiments of the present application finds the mapping relationship between the node identifier and the forwarding index through calculation, so as to detect the undetected link. It is applicable to the scenario where there are multiple equivalent termination nodes in the undetected link. This method is simple and easy to implement. The controller only needs to perform simple calculations to obtain the forwarding index of the first termination node, thereby realizing the detection of the supplementary detection link and reducing the consumption of the controller.
[0141] Method 2: Simulation test.
[0142] In some embodiments, "obtaining the forwarding index of the first termination node" in Step 330 may be implemented as Steps 335 to 337.
[0143] In some embodiments, there is a first device connected to the controller. The controller may send the topology information of the network and / or the node identifier of the first termination node to the first device, and the first device executes the following Steps 335 to 337 and then sends the forwarding index of the first termination node to the controller.
[0144] Step 335: Based on the topology information of the network, construct a simulation network corresponding to the network in the simulation environment.
[0145] In some embodiments, the network structure of the simulation network is exactly the same as that of the network; or, the simulation network is built based on a partial network structure of the network. For example, the entire network structure of the network is as Figure 2 shown. The simulation network is a network with the same structure as Figure 2 ; or, the simulation network is a network with the same structure as Figure 4 , where Figure 4 Servers 10 to 13 and switches 21 to 24 in Figure 2 belong to a certain cluster of Figure 4 The switch 20 in Figure 2 is a core layer switch in
[0146] Step 336: Generate at least one simulated detection path in the simulated network; detect at least two links of the simulated network based on the at least one simulated detection path.
[0147] Execute the above-mentioned step 220 on the simulated network to generate at least one simulated detection path of the simulated network. Or, use other detection methods in the simulated network to generate at least one simulated detection path. For example, for any two end nodes, obtain the simulated detection path between the two end nodes by the method of mutual Ping between the two end nodes; utilize the ability of the intermediate node to sense the local topology, and let the intermediate node send packets to detect the local topology information, and generate at least one simulated detection path based on the detected local topology information. The at least one simulated detection path can detect at least two links in the simulated network, that is, send detection packets based on the at least one simulated detection path, so that the intermediate node obtains the corresponding forwarding index.
[0148] Step 337: When there is a simulated detection link in the detected links of the simulated network that is the same as the supplementary detection link, obtain the forwarding index of the first termination node based on the forwarding index of the termination node of the simulated detection link.
[0149] Optionally, at least one simulated detection path of the simulated network is different from at least one detected detection path of the network. Based on at least one simulated detection path of the simulated network, obtain the forwarding index of the first termination node according to the above method two; or, when there is a simulated detection link in the detected links of the simulated network that is the same as the supplementary detection link, obtain the forwarding index of the first termination node based on the forwarding index of the termination node of the simulated detection link.
[0150] Exemplarily, at least one simulated detection path of the simulated network is as Figure 9 shown in part (3). In Figure 9 part (3), the forwarding table saved by node 43 is shown in Table 3. Link 57 is the simulated detection link that is the same as the supplementary detection link, and the forwarding table saved by node 43 is shown in Table 3. Based on the forwarding index of the termination node of the reverse detection link 57, obtain the forwarding index of the first termination node, which is also 1.
[0151] Table 3
[0152] Node Node index Node 45 -1 Node 46 1 Node 47 2
[0153] In summary, the method provided by the embodiments of the present application detects undetected links by constructing a simulation network. This method is simple and easy to implement. Moreover, the simulation method does not require the simulation network to be built in the monitored network, and does not additionally occupy the computing resources in the monitored network. This method is applicable to scenarios where the network structure is relatively simple and can be quickly detected in the simulation network. In addition, the simulation method can also be implemented together with the generation method in the real scenario, which can accelerate the speed of full-link detection.
[0154] Method 3: Model prediction.
[0155] In some embodiments, "obtaining the forwarding index of the first termination node" in step 330 can be implemented as step 338 and step 339.
[0156] In some embodiments, there is a first device connected to the controller. The controller can send the topology information of the network and / or the node identifier of the first termination node to the first device. After the first device executes the following steps 338 and 339, it sends the forwarding index of the first termination node to the controller.
[0157] Step 338: Obtain an index prediction model. The index prediction model is trained based on the correspondence between the node identifiers and forwarding indexes of each node in the replica network, and the replica network is a network with the same network structure as the network.
[0158] In some embodiments, the replica network is a network with the same network structure as the network. The network structure is used to indicate the connection form of the nodes in the network. For example, for the same network structure, it is deployed and used in different regions respectively. The network is deployed in region A, the replica network 1 is deployed in region B, and the replica network 2 is deployed in region C. The replica network 1 and the replica network 2 have both undergone the above process of generating the detection path. In the case of the same network structure, due to factors such as the network policies configured in the replica network (such as whether to use load balancing, whether to perform traffic control, etc.) and the network configurations in the replica network (such as IP division, whether to enable a certain intermediate node or end node, etc.), the forwarding tables saved by each node in the replica network may not be exactly the same as those saved by each node in the network, but there is a similarity between their forwarding tables. Therefore, the similarity between the forwarding tables can be learned through machine learning, that is, the similarity of the correspondence between the node identifier and the forwarding index can also be learned.
[0159] Based on the node identifiers and forwarding indexes of each known node in the replica network, train an index prediction model to learn the correspondence between the node identifiers and forwarding indexes of each node. Use the node identifier as the input value of the index prediction model, and use the forwarding index as the prediction object of the index prediction model; during model training, first query the network structure corresponding to the node identifier in the replica network (such as the number of links associated with the node identifier, path length, etc.), and the node information corresponding to the node identifier in the replica network (such as traffic volume, traffic direction, etc.). Use the information queried above, the node identifier, and the forwarding index corresponding to the node identifier as training samples, and adopt machine learning methods to train the index prediction model. During the model training process, evaluate the training degree of the model through a loss function. When the loss function converges, end the training of the index prediction model.
[0160] Step 339: Use the node identifier of the first termination node as the input, and predict the forwarding index of the first termination node through the index prediction model.
[0161] Input the node identifier of the first termination node, and use the index prediction model to make a prediction to obtain the forwarding index of the first termination node; or, input the node identifier of the first termination node, and use the index prediction model to make a prediction to obtain the top K forwarding indexes with the highest prediction accuracy, and use the forwarding index with the highest prediction accuracy as the forwarding index of the first termination node.
[0162] Optionally, based on the node identifier of the first termination node, query the network structure and / or node information corresponding to the first termination node, and use at least one of the node identifier, network structure, and node information as the input to predict the forwarding index of the first termination node through the index prediction model.
[0163] In summary, the method provided in the embodiments of the present application shows a method for detecting unprobed links. The forwarding index of the first termination node obtained by this method has higher reliability. And in some special scenarios, for example, directly generating the forwarding indexes of each node for a newly put into use network. When the newly put into use network has multiple replica networks and the index prediction model is trained for these replica networks, it is highly reliable for the index prediction model to directly generate the forwarding indexes of each node of this network. This newly put into use network can be detected based on the forwarding indexes generated by the index prediction model.
[0164] In some embodiments, node information is obtained from the third probe message, where the third probe message is a message sent by an intermediate node to an end node. The third probe message is generated based on a service message, where the service message is a message that passes through an intermediate node and has an end node as the termination node, and the service message is used to transmit service information. Optionally, the third probe message is obtained by the intermediate node transforming the service message; or, the third probe message is obtained by the intermediate node transforming a duplicate message, where the duplicate message is obtained by the intermediate node replicating the service message.
[0165] Optionally, the controller saves the obtained node information to a memory inside the controller, or a memory outside the controller, or a database, or, the controller compresses the node information and then saves it to the controller or the database. The compression algorithm used is any one of static window compression, threshold filtering, and Huffman coding algorithm. When compressing, mainly the data with low change frequency is compressed, such as device identifiers, ingress / egress port numbers, etc. Among them, the above-mentioned node information includes at least one of the node information collected based on the first probe message, the node information collected based on the second probe message, and the node information collected based on the third probe message.
[0166] Exemplarily, taking the third probe message as an INT message, the method for transforming a service message or a duplicate message of the service message into an INT message includes: inserting an INT header into the service message or the duplicate message of the service message.
[0167] In some embodiments, a sampler is a device for extracting samples from a message stream. Through the sampler, an intermediate node can obtain information such as messages, bytes, or a byte stream within a certain time period. The intermediate node is a node configured with a sampler, and the third probe message is generated when the service message passing through the intermediate node meets the sampling conditions. Optionally, the sampling conditions include at least one of the message type of the service message meeting the sampling type, the time when the service message arrives at the intermediate node meeting the sampling time, and the port corresponding to the service message being the sampling port. For example, if the sampling type is a TCP message, then the intermediate node samples the TCP messages passing through the node; the sampling time is once every 10 ms; the sampling port is ingress port 1 of the intermediate node, etc.
[0168] In summary, in addition to detecting the network through the detection path, the method provided by the embodiment of the present application also samples the service packets normally used in the network based on the intermediate nodes to obtain the third detection packets. Since the third detection packets can be generated by converting the service packets in the network, that is, the intermediate nodes can detect the paths starting from the intermediate nodes in real time, thereby realizing the real-time monitoring of the network. By changing the sampling conditions, it is even possible to achieve a measurement interval of milliseconds or even hundreds of microseconds for the link quality, thereby improving the accuracy of the link load information. Since full-link coverage and high-frequency detection may lead to an increase in data volume, when saving node information in the database or controller, compression will be performed first so that the node information can be reasonably saved.
[0169] Next, a specific description will be given with the end node being the server and the intermediate node being the switch. This solution includes the following aspects.
[0170] 1. Full-link detection
[0171] Step 1, the controller randomly selects at least one group of source hosts and target hosts, and instructs the source hosts and target hosts to use INT packets for detection.
[0172] The detection method is that the source host sends an INT packet to the target host. The INT packet is used to collect the switch information passed through during the packet transmission process. The switch information includes: device identifier, input port number, forwarding delay, queue occupancy, input timestamp, output port number, transmission counter of the queue, packet loss counter of the queue, output port link utilization rate, switch MMU status, etc. The transmission counter of the queue is used to indicate the number of data packets successfully transmitted by the queue associated with the switch within a certain period of time. The packet loss counter of the queue is used to indicate the number of data packets discarded by the queue associated with the switch within a certain period of time. The output port link utilization rate is used to indicate the degree to which the link connected to the output port is utilized within a certain period of time. The switch MMU status is used to indicate the usage of the memory management unit in the switch. The switch queue is a data structure used inside the switch to process and optimize the packet sending. When the switch forwards a data packet, it will put the data packet into the queue and determine the sending order of the data packets according to a certain scheduling algorithm.
[0173] Exemplarily, such as Figure 4As shown in the figure, the source host 10 and the destination host 12 are selected. An INT message is sent from the first port of the source host 10 to the second port of the destination host 12. The INT message includes an INT header, which is used to indicate the type of switch information to be collected during the transmission process. The INT message first reaches the first switch 23 through the link 36. After receiving the INT message, the first switch 23 collects the first switch information according to the switch information type indicated by the INT header, encapsulates the first switch information as metadata 1, and inserts the metadata 1 after the INT header. Then, the first switch 23 forwards the INT message to the second switch 22; after receiving the INT message, the second switch 22 collects the second switch information according to the switch information type indicated by the INT header, encapsulates the second switch information as metadata 2, and inserts the metadata 2 after the INT header. Then, the second switch 22 forwards the INT message to the third switch 24; after receiving the INT message, the third switch 24 collects the third switch information according to the switch information type indicated by the INT header, encapsulates the third switch information as metadata 3, and inserts the metadata 3 after the INT header. Then, the third switch 24 forwards the INT message to the destination host 12. Optionally, the destination host 12 receives and parses the metadata in the INT message to obtain the detection path between the source host 10 and the destination host 12; or, after receiving the INT message, the destination host 12 reports the INT message or the metadata in the INT message to the controller, and the controller parses the metadata to obtain the detection path between the source host 10 and the destination host 12. Combining Figure 4 , the detection path between the above-mentioned source host 10 and destination host 12 can be represented as "edge 36 - edge 35 - edge 33 - edge 38"; or, the detection path can also add the source host and destination host identifiers and be represented as "node 10 - edge 36 - edge 35 - edge 33 - edge 38 - node 12"; or, the detection path can also add the source host, destination host, and the identifiers of the switches passed through and be represented as "node 10 - edge 36 - node 23 - edge 35 - node 22 - edge 33 - node 24 - edge 38 - node 12".
[0174] In some embodiments, after receiving the INT message, the switch collects the switch information according to the switch information type indicated by the INT message header, encapsulates the switch information as metadata, and then packetizes and uploads the metadata to the controller.
[0175] In some embodiments, the probing path between the source host 10 and the destination host 12 is saved in a database; or, the identifier corresponding to the source host 10, the identifier corresponding to the destination host 12, and the probing path between the source host 10 and the destination host 12 are saved in a database; or, the probing five-tuple and the probing path corresponding to the probing five-tuple are saved in a database, and the form of the probing five-tuple is <source host IP, source port, destination host IP, destination port, protocol number>.
[0176] In some embodiments, the controller instructs the source host and the destination host to perform probing using different port numbers, and obtains at least one probing path between the source host 10 and the destination host 12, and these probing paths are equivalent paths to each other. For example, the probing paths between the source host 10 and the destination host 12 include at least one of "edge 36 - edge 35 - edge 33 - edge 38", "edge 36 - edge 32 - edge 34 - edge 38", "edge 36 - edge 32 - edge 30 - edge 31 - edge 33 - edge 38".
[0177] In some embodiments, at least one probing path between the source host 10 and the destination host 12 is saved in a database.
[0178] In some embodiments, other source hosts and destination hosts are randomly selected, and the probing path between the source host and the destination host is detected.
[0179] In some embodiments, the controller obtains a network topology graph. The controller selects at least one group of source hosts and destination hosts according to the network topology graph, and probes the probing path between the source host and the destination host. The network topology graph includes all information from the network architecture design, to construction and expansion, and finally to online operation. Exemplarily, it can be known from the network topology graph that there is a connection between the source host 10 and the destination host 12, but the probing path saved in the database does not include the probing path between the source host 10 and the destination host 12, then the source host 10 and the destination host 12 are used as the source host and the destination host for probing.
[0180] Step 2, obtain the link information of all unprobed links, and the link information includes the two end nodes of the link.
[0181] According to the network topology graph and the explored topology structure, obtain the link information of all unprobed links in the network topology graph.
[0182] In some embodiments, obtain a target detection link, where the target detection link is any one of the undetected links; query for an equivalent link of the target detection link, where the equivalent link is a link with one end the same as one end of the target detection link and the other end of the same category / hierarchy as the other end of the target detection link. Calculate the offset value between the equivalent link and the target detection link, and based on the equivalent link and the offset value, detect the target detection link, and save the detection result of the target detection link to the database, which can be understood as saving the target detection path with a detection result of being connectable to the database. The storage form of the target detection path in the database is the same as the storage form of the detection path obtained in step 1.
[0183] Through at least one of step 1 and step 2, it is possible to completely obtain the detection paths passing through all the links in the network topology diagram. When performing network monitoring, only need to generate detection packets according to the detection paths to collect the network information of the detection paths, thereby achieving the purpose of network monitoring.
[0184] Step 3, on the premise of ensuring that each link has no less than a first number of detection flows, eliminate redundant detection flows.
[0185] In the case where any one of the following conditions is satisfied for the detection flow, eliminate the detection flow, that is, delete the detection link corresponding to the detection flow in the database.
[0186] · The source IP or the target IP is not in the available IP pool, and the available IP pool is used to indicate the IPs that need to be detected;
[0187] · The detection path corresponding to the detection flow is not in the link information table, and the link information table is a data table in the database for storing detection paths;
[0188] · The number of detection flows passing through all the detection links in the detection path is more than 3.
[0189] In some embodiments, the first number is greater than 1, that is, the first number of detection flows are redundant detection flows. In the case where the number of detection flows passing through the link is less than the first number, continuously generate detection flows until the number of detection flows passing through the link reaches the first number.
[0190] 2. Sampling of packets along the path
[0191] In addition to generating detection packets through the above detection flows to collect network information, during the real-time network monitoring process, it is possible to sample the packets passing through the switch by configuring a sampler in the switch to obtain the dynamic information in the network.
[0192] The switch or network card samples the packets passing through the port, clones the sampled packets to obtain copy packets, and the switch CPU will convert the copy packets into INT packets, that is, insert an INT header into the copy packets and change the protocol number of the copy packets to the INT protocol. The copy packets converted into INT packets continue to be forwarded along the original path. When the copy packets converted into INT packets pass through other switches during the forwarding process, the other switches will insert switch information into the copy packets converted into INT packets, thereby achieving the purpose of dynamically collecting network information.
[0193] 3. Data Compression
[0194] When the network information is transmitted or stored, data compression can be performed first. The collected network information, switch information, etc. are compressed according to the actual scenario to save the transmission space and storage space.
[0195] In summary, the method provided by the embodiment of the present application realizes the detection of the network status of the link passed by the detection path by generating at least one detection path covering all or part of the links, and sending detection packets according to the detection path, and collecting the node information of the intermediate nodes passed by the detection path; the node information can indicate the specific network status of the link connected to the node, such as load information, packet forwarding situation, etc. These information can enable the controller to monitor network performance problems, and set the monitoring target to the link. Compared with the method with the path as the monitoring target, the specific location where the fault occurs can be quickly located when the network fails. In the generation stage of the detection path, if a detection path covering all links is selected, full-link coverage of the network can also be achieved. If a detection path covering all the links to be detected is selected, full coverage of all the links to be detected in the network can also be achieved.
[0196] Please refer to Figure 10 , which shows the structural block diagram of a network monitoring device provided by an exemplary embodiment of the present application. The device has the function of implementing the above-mentioned network monitoring method example. The function can be implemented by hardware or by hardware executing corresponding software. The device can be the controller introduced above or can be set in the controller. As Figure 10 shown, the device may include: a first acquisition module 410, a generation module 420, a control module 430, a second acquisition module 440, and a monitoring module 450.
[0197] The first acquisition module 410 is used to acquire the topology information of the network. The network includes at least two end nodes and at least one intermediate node, and different nodes are connected by links. The link is a network connection in the network that only passes through two nodes;
[0198] A generation module 420, configured to generate at least one probing path covering all or part of the links in the network based on the topology information of the network. Each probing path passes through at least one of the intermediate nodes, and the starting node and the ending node of the probing path are the end nodes.
[0199] A control module 430, configured to, for the at least one probing path, control the starting node of the probing path to send a first probing message to the ending node of the probing path. The first probing message is used to collect the node information of the intermediate nodes passed through, and the node information of the intermediate nodes is used to indicate the network status of the links connected to the intermediate nodes.
[0200] A second acquisition module 440, configured to acquire the node information from the intermediate nodes and / or the ending node passed through by the first probing message.
[0201] A monitoring module 450, configured to monitor the network status of at least one link passed through by the probing path in the network based on the node information.
[0202] In some embodiments, the generation module 420 includes a selection sub-module, a first control sub-module, and a first probing sub-module.
[0203] The selection sub-module is configured to select at least one set of starting nodes and ending nodes based on the topology information of the network.
[0204] The first control sub-module is configured to, for the at least one set of starting nodes and ending nodes, control the starting node to perform connectivity detection using a second probing message. The destination address of the second probing message is the ending node corresponding to the starting node, and the connectivity detection is used to detect the connectivity information between the starting node and the ending node.
[0205] The first probing sub-module is configured to detect at least one probing path between the starting node and the ending node based on the node information fed back by the intermediate nodes and / or the ending node passed through by the second probing message.
[0206] In some embodiments, the first control sub-module includes a first acquisition unit, a first control unit, and a second control unit.
[0207] The first acquisition unit is configured to acquire any set of starting nodes and ending nodes from the at least one set of starting nodes and ending nodes.
[0208] The first control unit is configured to, for the any set of starting nodes and ending nodes, control the starting node to send the second probing message through a first port. The destination address of the second probing message is the ending node and the destination port is at least one port of the ending node.
[0209] A second control unit, configured to, for any set of a starting node and an ending node, control the starting node to send the second probe message through at least one port, where a destination address of the second probe message is the ending node and a destination port is a second port of the ending node.
[0210] In some embodiments, the apparatus further includes a third obtaining module, a fourth obtaining module, a detecting module, and a fifth obtaining module.
[0211] The third obtaining module is configured to obtain each undetected link according to the at least one detection path and topology information of the network;
[0212] The fourth obtaining module is configured to obtain a supplementary detection link for an i-th detection among the undetected links, where a starting node of the supplementary detection link is a first starting node, an ending node of the supplementary detection link is a first ending node, and i is a positive integer;
[0213] The detecting module is configured to obtain a forwarding index of the first ending node; and detect the supplementary detection link based on the forwarding index of the first ending node;
[0214] The fifth obtaining module is configured to continue to obtain a supplementary detection link for an (i + 1)-th detection until all the undetected links are detected.
[0215] In some embodiments, the detecting module includes a query sub-module, a first obtaining sub-module, a second obtaining sub-module, and a calculation sub-module.
[0216] The query sub-module is configured to query, from the detected links, an equivalent ending node connected to the first starting node, where a category or level of the equivalent ending node is the same as that of the first ending node;
[0217] The first obtaining sub-module is configured to obtain forwarding indexes of the at least two equivalent ending nodes when there are at least two equivalent ending nodes in the supplementary detection link;
[0218] The second obtaining sub-module is configured to obtain a mapping relationship between the node identifiers and the forwarding indexes based on the node identifiers of the at least two equivalent ending nodes and the forwarding indexes of the at least two equivalent ending nodes;
[0219] The calculation sub-module is configured to calculate a forwarding index of the first ending node based on the mapping relationship and the node identifier of the first ending node.
[0220] In some embodiments, the detecting module includes a construction sub-module, a generation sub-module, and a third obtaining sub-module.
[0221] A construction sub-module, configured to construct a simulation network corresponding to the network in a simulation environment based on the topological information of the network;
[0222] A generation sub-module, configured to generate at least one simulation detection path in the simulation network; and detect at least two links of the simulation network based on the at least one simulation detection path;
[0223] A third acquisition sub-module, configured to, when there is a simulation detection link in the detected links of the simulation network that is the same as the supplementary detection link, obtain the forwarding index of the first termination node based on the forwarding index of the termination node of the simulation detection link.
[0224] In some embodiments, the detection module includes a fourth acquisition sub-module and a prediction sub-module.
[0225] A fourth acquisition sub-module, configured to obtain an index prediction model, where the index prediction model is trained based on the correspondence between the node identifiers and forwarding indexes of each node in a replica network, and the replica network is a network with the same network structure as the network;
[0226] A prediction sub-module, configured to use the node identifier of the first termination node as an input, and predict the forwarding index of the first termination node through the index prediction model.
[0227] In some embodiments, the control module includes a second control sub-module.
[0228] A second control sub-module, configured to, on the premise of ensuring that each link belongs to at least a first number of detection paths, control the start node of the detection path to send a first detection message to the termination node of the detection path according to some detection paths in the at least one detection path.
[0229] In some embodiments, the apparatus includes a seventh acquisition module.
[0230] A seventh acquisition module, configured to obtain node information from a third detection message, where the third detection message is a message sent by an intermediate node to an end node.
[0231] In an alternative embodiment, the third detection message is obtained by the intermediate node transforming a service message, where the service message is a message that passes through the intermediate node and has the end node as the termination node, and the service message is used to transmit service information; or, the third detection message is obtained by the intermediate node transforming a replica message, where the replica message is a message that the intermediate node copies from the service message, the service message is a message that passes through the intermediate node and has the end node as the termination node, and the service message is used to transmit service information.
[0232] In an alternative embodiment, the intermediate node is a node configured with a sampler, and the third probe message is generated when the service message passing through the intermediate node meets the sampling condition.
[0233] In an alternative embodiment, the node information is stored in the internal memory of the controller, or the external memory of the controller, or a database, and the node information is compressed node information.
[0234] In summary, the device provided by the embodiments of the present application realizes the detection of the network status of the links passed by the detection path by generating at least one detection path covering all or part of the links, and sending probe messages according to the detection path, and collecting the node information of the intermediate nodes passed by the detection path; the node information can indicate the specific network status of the links connected to the nodes, such as load information, message forwarding situation, etc. These information can enable the controller to monitor network performance problems, and set the monitoring target as the link. Compared with the method of taking the path as the monitoring target, the specific location where the fault occurs can be quickly located when the network fails. In the stage of generating the detection path, if it is selected to generate a detection path covering all the links, full-link coverage of the network can also be realized. If it is selected to generate a detection path covering all the links that need to be detected, full coverage of all the links that need to be detected in the network can also be realized.
[0235] It should be noted that when the device provided in the above embodiments realizes its functions, only the division of the above function modules is used for illustration. In actual applications, the above functions can be allocated to different function modules according to needs, that is, the internal structure of the device is divided into different function modules to complete all or part of the functions described above. In addition, the device provided in the above embodiments and the method embodiments belong to the same concept, and the specific implementation process is detailed in the method embodiments, which will not be repeated here.
[0236] Figure 11 The block diagram of a computer device provided by an exemplary embodiment of the present application is shown.
[0237] The computer device includes a Central Processing Unit (CPU) 501, a system memory 504 including a Random Access Memory (RAM) 502 and a Read-Only Memory (ROM) 503, and a system bus 505 connecting the system memory 504 and the central processing unit 501. The computer device 500 also includes a basic Input / Output system (I / O system) 506 for facilitating information transfer between various components within the computer device, and a mass storage device 507 for storing an operating system 513, application programs 514, and other program modules 515.
[0238] The basic Input / Output system 506 includes a display 508 for displaying information and input devices 509 such as a mouse, keyboard, etc. for user input. The display 508 and the input devices 509 are both connected to the central processing unit 501 through an input / output controller 510 connected to the system bus 505. The basic Input / Output system 506 may also include an input / output controller 510 for receiving and processing inputs from multiple other devices such as a keyboard, mouse, or electronic stylus. Similarly, the input / output controller 510 also provides output to a display screen, printer, or other types of output devices.
[0239] The mass storage device 507 is connected to the central processing unit 501 through a mass storage controller (not shown) connected to the system bus 505. The mass storage device 507 and its associated computer-readable storage medium provide non-volatile storage for the computer device 500. That is, the mass storage device 507 may include a computer-readable storage medium (not shown) such as a hard disk or a Compact Disc Read-Only Memory (CD-ROM) drive.
[0240] Without loss of generality, the computer-readable storage medium may include a computer storage medium and a communication medium. The computer storage medium includes volatile and non-volatile, removable and non-removable media implemented by any method or technology for storing information such as computer-readable storage instructions, data structures, program modules, or other data. The computer storage medium includes RAM, ROM, erasable programmable read-only registers (EPROM), electrically-erasable programmable read-only memory (EEPROM), flash memory or other solid-state storage technologies, CD-ROM, digital versatile disc (DVD) or other optical storage, magnetic tape cartridges, magnetic tapes, disk storage or other magnetic storage devices. Of course, those skilled in the art will know that the computer storage medium is not limited to the above several types. The above-mentioned system memory 504 and mass storage device 507 can be collectively referred to as memory.
[0241] The memory stores one or more programs, and the one or more programs are configured to be executed by one or more central processing units 501. The one or more programs contain instructions for implementing the above method embodiments. The central processing unit 501 executes the one or more programs to implement the methods provided by the above respective method embodiments.
[0242] According to various embodiments of the present application, the computer device 500 can also run by connecting to a remote computer device on the network through a network such as the Internet. That is, the computer device 500 can be connected to the network 512 through the network interface unit 511 connected to the system bus 505. Or rather, the network interface unit 511 can also be used to connect to other types of networks or remote computer device systems (not shown).
[0243] The memory further includes one or more programs. The one or more programs are stored in the memory, and the one or more programs contain steps for performing the methods executed by the controller or server in the method embodiments provided by the present application.
[0244] In an exemplary embodiment, a non-temporary computer-readable storage medium is also provided, on which a computer program is stored. When the computer program is executed by a processor, it is used to implement the above network monitoring method.
[0245] In an exemplary embodiment, a computer program product is also provided. When the computer program product is executed by a processor, it is used to implement the above network monitoring method.
[0246] It should be understood that the "plurality" mentioned herein refers to two or more. "And / or" describes the association relationship of associated objects and indicates that there can be three relationships. For example, A and / or B can represent three situations: A exists alone, A and B exist simultaneously, and B exists alone. The character " / " generally represents an "or" relationship between the associated objects before and after. In addition, the step numbers described herein only exemplarily show a possible execution sequence between steps. In some other embodiments, the above steps may not be executed in the numbered order. For example, two steps with different numbers can be executed simultaneously, or two steps with different numbers can be executed in the reverse order of the illustration. The embodiments of the present application do not make any limitations in this regard.
[0247] The above are only optional embodiments of the present application and are not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included within the protection scope of the present application.
Claims
1. A network monitoring method, characterized in that, The method is executed by a controller, and the method includes: Obtaining topological information of a network, where the network includes at least two end nodes and at least one intermediate node, and different nodes are connected by links, and the link is a network connection in the network that only passes through two nodes; Based on the topological information of the network, generating at least one probing path covering all or part of the links in the network, each of the probing paths passing through at least one of the intermediate nodes, and the start node and the end node of the probing path being the end nodes; For the at least one probing path, controlling the start node of the probing path to send a first probing message to the end node of the probing path, where the first probing message is used to collect node information of the intermediate nodes passed through, and the node information of the intermediate nodes is used to indicate the network status of the links connected to the intermediate nodes; Obtaining the node information from the intermediate nodes and / or the end node passed through by the first probing message; Based on the node information, monitoring the network status of at least one link passed through by the probing path in the network.
2. The method according to claim 1, wherein The generating at least one probing path covering all or part of the links in the network based on the topological information of the network includes: Based on the topological information of the network, selecting at least one set of start nodes and end nodes; For the at least one set of start nodes and end nodes, controlling the start node to perform connectivity probing using a second probing message, where the destination address of the second probing message is the end node corresponding to the start node, and the connectivity probing is used to probe the connectivity information between the start node and the end node; Based on the node information fed back by the intermediate nodes and / or the end node passed through by the second probing message, probing to obtain at least one probing path between the start node and the end node.
3. The method according to claim 2, characterized in that, The controlling the start node to perform connectivity probing using a second probing message, where the destination address of the second probing message is the end node corresponding to the start node, for the at least one set of start nodes and end nodes includes: Obtaining any set of start nodes and end nodes in the at least one set of start nodes and end nodes; For the any set of start nodes and end nodes, controlling the start node to send the second probing message through a first port, where the destination address of the second probing message is the end node and the destination port is at least one port of the end node; and / or, for the any set of start nodes and end nodes, controlling the start node to send the second probing message through at least one port, where the destination address of the second probing message is the end node and the destination port is the second port of the end node.
4. The method according to any one of claims 1 to 3, characterized in that The at least one probing path does not cover each link to be probed in the network; The method further includes: Obtaining each unprobed link according to the at least one probing path and the topological information of the network; Obtain a supplementary probing link for the i-th probing among the undetected links. The starting node of the supplementary probing link is the first starting node, and the terminating node of the supplementary probing link is the first terminating node, where i is a positive integer; Obtain the forwarding index of the first terminating node; and control the first starting node to probe the supplementary probing link based on the forwarding index of the first terminating node; Continue to obtain the supplementary probing link for the (i + 1)-th probing until all the undetected links are probed.
5. The method according to claim 4, characterized in that The obtaining of the forwarding index of the first terminating node includes: Query, from the detected links, an equivalent terminating node connected to the first starting node, where the category or level of the equivalent terminating node is the same as that of the first terminating node; In the case where there are at least two such equivalent terminating nodes, obtain the forwarding indices of the at least two equivalent terminating nodes; Based on the node identifiers of the at least two equivalent terminating nodes and the forwarding indices of the at least two equivalent terminating nodes, obtain the mapping relationship between the node identifiers and the forwarding indices; Based on the mapping relationship and the node identifier of the first terminating node, calculate the forwarding index of the first terminating node.
6. The method according to claim 4, characterized in that, The obtaining of the forwarding index of the first terminating node includes: Based on the topology information of the network, construct a simulation network corresponding to the network in a simulation environment; Generate at least one simulation probing path in the simulation network; probe at least two links of the simulation network based on the at least one simulation probing path; In the case where there is a simulation probing link in the detected links of the simulation network that is the same as the supplementary probing link, obtain the forwarding index of the first terminating node based on the forwarding index of the terminating node of the simulation probing link.
7. The method according to claim 4, wherein The obtaining of the forwarding index of the first terminating node includes: Obtain an index prediction model, which is trained based on the correspondence between the node identifiers and the forwarding indices of each node in a replica network, where the replica network has the same network structure as the network; Use the node identifier of the first terminating node as input and predict the forwarding index of the first terminating node through the index prediction model.
8. The method according to any one of claims 1 to 7, characterized in that, The controlling the starting node of the probing path to send a first probing message to the terminating node of the probing path according to the at least one probing path includes: On the premise of ensuring that each link belongs to no less than a first quantity of probing paths, control the starting node of the probing path to send a first probing message to the terminating node of the probing path according to some of the probing paths in the at least one probing path.
9. The method according to any one of claims 1 to 8, characterized in that, The method further includes: Obtain node information from a third probing message, where the third probing message is a message sent by an intermediate node to an end node.
10. The method according to claim 9, wherein The third probing message is obtained by the intermediate node transforming a service message, where the service message is a message that passes through the intermediate node and has the end node as the terminating node, and the service message is used to transmit service information; or, The third detection message is obtained by the intermediate node transforming the duplicate message, the duplicate message is obtained by the intermediate node duplicating the service message, the service message is a message that passes through the intermediate node and has the end node as the termination node, and the service message is used to transmit service information.
11. The method according to claim 10, wherein The intermediate node is a node configured with a sampler, and the third detection message is generated when the service message passing through the intermediate node meets the sampling condition.
12. A network monitoring device, characterized in that, The device includes: A first acquisition module, configured to acquire topology information of a network, the network includes at least two end nodes and at least one intermediate node, different nodes are connected by links, and the link is a network connection in the network that only passes through two nodes; A generation module, configured to generate at least one detection path covering all or part of the links in the network based on the topology information of the network, each detection path passes through at least one of the intermediate nodes, and the start node and the end node of the detection path are the end nodes; A control module, configured to, for the at least one detection path, control the start node of the detection path to send a first detection message to the end node of the detection path, the first detection message is used to collect node information of the intermediate nodes passed by, and the node information of the intermediate nodes is used to indicate the network status of the links connected to the intermediate nodes; A second acquisition module, configured to acquire the node information from the intermediate nodes and / or the end node passed by the first detection message; A monitoring module, configured to monitor the network status of at least one link passed by the detection path in the network based on the node information.
13. A computer device, characterized in that, The computer device includes: a processor and a memory, and at least one segment of program is stored in the memory; the processor is configured to execute the at least one segment of program in the memory to implement the network monitoring method as described in any one of claims 1 to 11 above.
14. A computer-readable storage medium, characterized in that, An executable instruction is stored in the computer-readable storage medium, and the executable instruction is loaded and executed by a processor to implement the network monitoring method as described in any one of claims 1 to 11 above.
15. A computer program product, characterized in that, The computer program product includes computer instructions, the computer instructions are stored in a computer-readable storage medium, and the processor reads and executes the computer instructions from the computer-readable storage medium to implement the network monitoring method as described in any one of claims 1 to 11 above.