A heterogeneous fusion network and its path consistency verification method and storage medium

By constructing the detection packet in the SDN heterogeneous fusion network and updating the tag value using the switch feature matrix to generate the expected path set and actual path information, the problem of path consistency verification in a multi-protocol environment is solved, and efficient path consistency verification and adaptability enhancement are achieved.

CN115918037BActive Publication Date: 2025-08-05PEKING UNIV SHENZHEN GRADUATE SCHOOL +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180043494.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-22
Publication Date
2025-08-05
Estimated Expiration
2041-12-22

AI Technical Summary

Technical Problem

In SDN heterogeneous fusion network, the existing path consistency detection scheme cannot effectively solve the inconsistency problem between the actual path and the expected path of packet forwarding in a multi-protocol environment.

Method used

By constructing a detection packet and forwarding it at the data level, the switch's feature matrix is used to update the tag value, generate the expected path set and actual path information, and use the tag and active detection mechanism for path consistency verification.

Benefits of technology

It improves the efficiency and adaptability of path consistency verification, and can accurately verify the consistency between the actual forwarding path of data packets and the expected path in a multi-protocol environment, adapting to the migration of new network protocols.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115918037B_ABST
    Figure CN115918037B_ABST
Patent Text Reader

Abstract

The present application relates to a heterogeneous fusion network and a path consistency verification method and storage medium thereof, wherein the heterogeneous fusion network includes a data layer and a control layer, the control layer constructs a detection packet according to a preset communication protocol and sends a detection packet combining multiple information to the data layer; the data layer forwards the detection packet according to the actual path forwarded by each switch and reports the actual forwarding information to the control layer; the control layer generates multiple expected path information according to forwarding rule information, and uses the multiple expected path information to form expected path set information corresponding to the detection packet; the control layer generates actual path information corresponding to the detection packet according to the actual forwarding information; the control layer determines whether the expected path set information contains expected path information consistent with the actual path information, and if so, verifies the path consistency of the expected path and the actual path forwarded by the detection packet.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network management technology, and in particular to a heterogeneous converged network and a path consistency verification method and storage medium thereof. Background Art

[0002] Software-defined networking (SDN) divides the network into a data plane and a control plane. Switches in the data plane forward packets, while controllers in the control plane direct the switches' forwarding behavior. Inconsistencies can occur between the data and control planes, necessitating consistency verification of packet forwarding paths in both the control and data planes.

[0003] For a data packet, the controller generates an expected path for it. After the packet is forwarded by the switch on the data plane, an actual path is generated. Path consistency verification is performed by comparing the actual and expected paths. Path consistency verification verifies whether the control plane and data plane are consistent by checking whether the expected and actual forwarding paths of the packet are consistent. However, in SDN networks that support multiple protocols (i.e., heterogeneous SDN converged networks), the path consistency issue changes, and path verification becomes more complex.

[0004] In a heterogeneous SDN network, the data plane may consist of multiple types of switches, each of which may support different protocols (e.g., switches supporting IP, ICN, and Hybrid-ICN). Verifying the consistency of the actual and expected paths for packet forwarding in this heterogeneous SDN scenario becomes complex and challenging. However, existing path consistency verification solutions are not tailored to the application of heterogeneous SDN networks. Therefore, it is necessary to develop a solution to address path consistency in multi-protocol SDN scenarios. Summary of the Invention

[0005] Technical issues

[0006] The main technical problem solved by this application is: how to implement path consistency verification in SDN heterogeneous converged networks.

[0007] Technical Solution

[0008] To solve the above technical problems, the present application proposes a heterogeneous fusion network and a path consistency verification method and storage medium thereof.

[0009] According to the first aspect, an embodiment provides a heterogeneous fusion network, which includes: a data layer, including multiple switches connected in a topological manner, each switch capable of forwarding data according to at least one communication protocol; a control layer, connected to the switches in the data layer, and used to control the data forwarding path of the switches; wherein the control layer constructs a detection packet combining multiple information according to a preset communication protocol, and sends the detection packet to the data layer; the detection packet includes packet header information and forwarding rule information of several switches expected to perform forwarding; the data layer forwards the detection packet according to the actual forwarding path of each switch, and reports the actual forwarding information to the control layer; the control layer generates multiple expected path information according to the forwarding rule information, and uses the multiple expected path information to form expected path set information corresponding to the detection packet; the control layer generates actual path information corresponding to the detection packet according to the actual forwarding information; the control layer determines whether the expected path set information contains expected path information consistent with the actual path information, and if so, verifies the path consistency of the expected path and the actual path forwarded by the detection packet.

[0010] The data layer forwards the detection packet according to the actual path forwarded by each switch, and reports the actual forwarding information to the control layer, including: the data layer receives the decentralized detection packet, forwards the detection packet between the switches and forms an actual forwarding path; the switch that forwards the detection packet for the first time on the actual path is the ingress switch, the switch that forwards the detection packet for the last time on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches; the data layer uses the ingress switch on the actual path to insert the initial label value into the detection packet, and reports the initial label value to the control layer; the data layer uses the intermediate switch and the egress switch on the actual path to update the initial label value of the detection packet; the data layer forms corresponding actual forwarding information based on the label value updated by any switch among the intermediate switches and the egress switches on the actual path, and the packet header information of the detection packet, and reports it to the control layer.

[0011] The data layer uses the intermediate switches and egress switches on the actual path to update the initial label value of the detection packet, including: for the intermediate switches on the actual path, the intermediate switches perform matrix multiplication operations on their own characteristic matrices and the initial label value inserted in the detection packet to obtain a first label value; for the egress switches on the actual path, the egress switches perform matrix multiplication operations on their own characteristic matrices and the first label value to obtain a second label value; in the matrix multiplication operation, the characteristic matrices involved in the operation are modulo calculated to prevent matrix multiplication overflow; the first label value and the second label value are both updated label values.

[0012] The control plane generates multiple expected path information based on the forwarding rule information, and uses the multiple expected path information to form the expected path set information corresponding to the detection packet, including: the control plane constructs multiple expected paths based on the forwarding rule information; each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path; the control plane obtains the characteristic matrix of all switches constituting each expected path, and obtains the initial label value reported by the ingress switch on the actual path; the control plane uses the characteristic matrix of one or more switches on each expected path to update and calculate the initial label value to obtain the label value corresponding to each expected path; the control plane generates an expected path information based on the header information of the detection packet and the label value corresponding to each expected path; the control plane counts the expected path information corresponding to each expected path to form the expected path set information corresponding to the detection packet.

[0013] The control layer further stores the expected path set information in a preset path table, and uses a Bloom filter in the path table to map and store the label values corresponding to each expected path.

[0014] The control layer generates actual path information corresponding to the detection packet based on the actual forwarding information, including: the control layer obtains the label values reported by the intermediate switches and the export switches on the actual path of the detection packet, and obtains the header information of the detection packet; the control layer determines the actual path for forwarding the detection packet between the switches in the data layer based on the obtained label value, and generates corresponding actual path information based on the obtained label value and the header information of the detection packet.

[0015] The control layer determines whether the expected path set information contains expected path information that is consistent with the actual path information, including: the control layer obtains the packet header information and label value in the expected path set information, and obtains the packet header information and label value in the actual path information; the control layer compares the packet header information in the actual path information with the packet header information in the expected path set information, and performs path consistency verification when the packet header information matches; the control layer determines whether the expected path set information contains the same label value as the actual path information, and if so, passes the path consistency verification.

[0016] According to the second aspect, an embodiment provides a heterogeneous fusion network, including a data plane and a control plane, wherein the data plane includes multiple switches connected in a topological manner, the controller is deployed in the control plane and the controller is connected to each switch, and the controller includes: a path detection generation module, which is used to construct a detection packet according to a preset communication protocol and send the detection packet to the data plane; an expected path set generation module, which is used to generate corresponding expected path set information according to multiple expected paths forwarded by the detection packet between several switches in the data plane; a path consistency verification module, which is used to detect the actual path forwarded by the detection packet between each switch in the data plane and generate corresponding actual path information; and, which is used to determine whether the expected path set information contains expected path information consistent with the actual path information, and if so, verify the path consistency of the expected path and the actual path forwarded by the detection packet.

[0017] The path detection generation module constructs a detection packet according to a preset communication protocol and sends the detection packet to the data layer, including: the path detection generation module configures packet header information and forwarding rules of several switches expected to be executed according to the preset communication protocol, and uses the packet header information and the forwarding rule information to construct a detection packet combining multiple information; the path detection generation module sends the detection packet to the data layer, and the detection packet is forwarded between the switches in the data layer and forms an actual forwarding path; the switch that forwards the detection packet for the first time on the actual path is the ingress switch, the switch that forwards the detection packet for the last time on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches; the ingress switch on the actual path is used to insert an initial label value in the detection packet and report it to the control layer, and the intermediate switches and egress switches on the actual path are used to update the initial label of the detection packet, and report the updated label value and the packet header information of the detection packet to the control layer.

[0018] The expected path set generation module generates corresponding expected path set information based on multiple expected paths forwarded by the detection packet between several switches in the data layer, including: the expected path set generation module constructs multiple expected paths based on the forwarding rule information; each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path; the expected path set generation module obtains the characteristic matrix of all switches on each expected path, and obtains the initial label value reported by the ingress switch on the actual path; the expected path set generation module uses the characteristic matrix of one or more switches on each expected path to update and calculate the initial label value to obtain the label value corresponding to each expected path; the expected path set generation module generates an expected path information based on the packet header information of the detection packet and the label value corresponding to each expected path; the expected path set generation module counts the expected path information corresponding to each expected path to form the expected path set information corresponding to the detection packet.

[0019] The path consistency verification module detects the actual path along which the detection packet is forwarded between the switches in the data plane and generates corresponding actual path information, including: the path consistency verification module obtains the label values reported by the intermediate switches and the egress switches on the actual path of the detection packet, as well as the header information of the detection packet; the path consistency verification module determines the actual path along which the detection packet is forwarded between the switches in the data plane based on the obtained label values, and generates corresponding actual path information based on the obtained label values and the header information of the detection packet.

[0020] The path consistency verification module determines whether the expected path set information contains expected path information that is consistent with the actual path information. If so, path consistency verification is performed on the expected path and the actual path forwarded by the detection packet, including: the path consistency verification module obtains the packet header information and label value in the expected path set information, and obtains the packet header information and label value in the actual path information; the path consistency verification module compares the packet header information in the actual path information with the packet header information in the expected path set information, and performs path consistency verification when the packet header information matches; the path consistency verification module determines whether the expected path set information contains the same label value as the actual path information, and if so, passes the path consistency verification.

[0021] According to the third aspect, an embodiment provides a heterogeneous fusion network, including a data plane and a control plane, wherein the data plane includes multiple switches connected in a topological manner, the control plane is connected to the switches in the data plane and is used to control the data forwarding path of each switch, the data plane can receive the detection packet delegated by the control plane, and forward the detection packet between the switches to form an actual forwarding path; the switch that forwards the detection packet for the first time on the actual path is the ingress switch, the switch that forwards the detection packet for the last time on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches; the data plane uses the ingress switch on the actual path to insert an initial label value in the detection packet and reports the initial label value to the control plane; the data plane uses the intermediate switch and the egress switch on the actual path to update the initial label value of the detection packet; the data plane forms corresponding actual forwarding information based on the label value updated by any switch among the intermediate switch and the egress switch on the actual path and the packet header information of the detection packet and reports it to the control plane.

[0022] The data layer uses the intermediate switches and egress switches on the actual path to update the initial label value of the detection packet, including: for the intermediate switches on the actual path, the intermediate switches perform matrix multiplication operations on their own characteristic matrices and the initial label value inserted in the detection packet to obtain a first label value; for the egress switches on the actual path, the egress switches perform matrix multiplication operations on their own characteristic matrices and the first label value to obtain a second label value; in the matrix multiplication operation, the characteristic matrices involved in the operation are modulo calculated to prevent matrix multiplication overflow; the first label value and the second label value are both updated label values.

[0023] According to the fourth aspect, an embodiment provides a path consistency verification method for a heterogeneous converged network, wherein the heterogeneous converged network includes a data layer and a control layer, the data layer includes multiple switches topologically connected, and the control layer is used to control the data forwarding path of each switch, and the path consistency verification method includes: constructing a detection packet according to a preset communication protocol, and sending the detection packet to the data layer; generating corresponding expected path set information based on multiple expected paths forwarded by the detection packet between several switches in the data layer; detecting the actual path forwarded by the detection packet between each switch in the data layer and generating corresponding actual path information; judging whether the expected path set information contains expected path information consistent with the actual path information, and if so, verifying the path consistency of the expected path and the actual path forwarded by the detection packet.

[0024] The method comprises constructing a detection packet according to a preset communication protocol, sending the detection packet to the data layer, and generating corresponding expected path set information according to multiple expected paths forwarded by the detection packet between several switches in the data layer, including: configuring packet header information and forwarding rules of several switches expected to be executed according to the preset communication protocol, and constructing a detection packet combining multiple information using the packet header information and the forwarding rule information; sending the detection packet to the data layer, and forwarding the detection packet between the switches in the data layer to form an actual forwarding path; the switch that forwards the detection packet for the first time on the actual path is the ingress switch, the switch that forwards the detection packet for the last time on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches; the ingress switch on the actual path is used to insert the initial label value in the detection packet and report it to the control layer, The intermediate switches and the egress switches on the actual path are used to update the initial label of the detection packet and report the updated label value and the header information of the detection packet to the control layer; multiple expected paths are constructed according to the forwarding rule information; each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path; the characteristic matrix of all switches on each expected path is obtained, and the initial label value reported by the ingress switch on the actual path is obtained; the initial label value is updated and calculated using the characteristic matrix of one or more switches on each expected path to obtain the label value corresponding to each expected path; an expected path information is generated according to the header information of the detection packet and the label value corresponding to each expected path; the expected path information corresponding to each expected path is counted to form the expected path set information corresponding to the detection packet.

[0025] The generating of the actual path information corresponding to the detection packet based on the actual forwarding information includes: obtaining the label values reported by the intermediate switches and the egress switches on the actual path of the detection packet, as well as the header information of the detection packet; determining the actual path for forwarding the detection packet between the switches in the data layer based on the obtained label values, and generating the corresponding actual path information based on the obtained label values and the header information of the detection packet.

[0026] The determining whether the expected path set information includes expected path information that is consistent with the actual path information includes: obtaining packet header information and label values in the expected path set information, and obtaining packet header information and label values in the actual path information; comparing the packet header information in the actual path information with the packet header information in the expected path set information, and performing path consistency verification if the packet header information matches; and determining whether the expected path set information contains the same label value as the actual path information, and if so, passing the path consistency verification.

[0027] According to the fifth aspect, an embodiment provides a computer-readable storage medium, on which a program is stored. The program can be executed by a processor to implement the path consistency verification method described in the fourth aspect.

[0028] Beneficial effects

[0029] The beneficial effects of this application are:

[0030] According to the above embodiment, a heterogeneous fusion network and its path consistency verification method and storage medium are provided, wherein the heterogeneous fusion network includes a data layer and a control layer, the control layer constructs a detection packet according to a preset communication protocol and sends the detection packet to the data layer; the data layer forwards the detection packet according to the actual path forwarded by each switch and reports the actual forwarding information to the control layer; the control layer generates multiple expected path information according to the forwarding rule information, and uses the multiple expected path information to form the expected path set information corresponding to the detection packet; the control layer generates the actual path information corresponding to the detection packet according to the actual forwarding information; the control layer determines whether the expected path set information contains expected path information consistent with the actual path information, and if so, verifies the path consistency of the expected path and the actual path forwarded by the detection packet. First, the technical solution proposes a generalized path consistency verification solution based on labels and active detection, which is used to verify the consistency between the expected path on the control plane and the actual forwarding path of the data packet on the data plane in the heterogeneous converged network; second, the technical solution uses an active detection mechanism to send a detection packet to a specific switch forwarding path. After receiving the detection packet, the switch will insert label information into the packet header. By mining the compressed path information in the label information, the control plane can verify whether the actual path passed by the data packet is consistent with the expected path; third, the technical solution essentially models the generalized path consistency problem into a surjective model between the expected path set and the actual path set that can make the path consistency verification pass. The actual forwarding path of the packet does not need to be strictly equal to the expected path of the controller. As long as the actual forwarding path of the data packet is consistent with the expected path of the controller in terms of protocol semantics, it can pass the path consistency verification, thereby improving the verification efficiency; Fourthly, the label update process in the technical solution is implemented by the multi-protocol switch on the data plane, which can be applied to a variety of protocol scenarios. If the generalized path consistency verification scheme needs to be adapted to new network protocols in the future, the label update module of the multi-protocol switch and the path consistency verification module of the controller do not need to be changed. Only the path detection module and the expected path set generation module of the controller need to be incrementally modified, thereby improving the migration adaptability of the path consistency verification scheme in heterogeneous converged networks. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] Figure 1This is a structural diagram of a heterogeneous fusion network in one embodiment of the present application;

[0032] Figure 2 This is a structural diagram of a controller in one embodiment of the present application;

[0033] Figure 3 This is a flow chart of a path consistency verification method in one embodiment of the present application;

[0034] Figure 4 Flowchart for constructing a detection packet;

[0035] Figure 5 A flowchart for generating expected path set information;

[0036] Figure 6 A flowchart for generating actual path information;

[0037] Figure 7 Flowchart for path consistency verification;

[0038] Figure 8 This is a structural diagram of a network control device in an embodiment of the present application. DETAILED DESCRIPTION

[0039] The present application is further described in detail below by means of specific embodiments in conjunction with the accompanying drawings. Similar elements in different embodiments are numbered with associated similar elements. In the following embodiments, many detailed descriptions are provided to enable the present application to be better understood. However, those skilled in the art will readily appreciate that some of the features may be omitted in different circumstances, or may be replaced by other elements, materials, or methods. In some cases, some operations related to the present application are not shown or described in the specification. This is to avoid the core portion of the present application being overwhelmed by excessive descriptions. For those skilled in the art, it is not necessary to describe these related operations in detail. They can fully understand the related operations based on the description in the specification and the general technical knowledge in the art.

[0040] In addition, the features, operations, or characteristics described in the specification may be combined in any appropriate manner to form various embodiments. Furthermore, the steps or actions in the method description may be reordered or adjusted in a manner readily apparent to those skilled in the art. Therefore, the various sequences in the specification and drawings are provided solely for the purpose of clearly describing a particular embodiment and are not intended to be mandatory, unless otherwise specified.

[0041] The serial numbers assigned to components herein, such as "first," "second," etc., are used solely to distinguish the objects being described and do not convey any sequential or technical meaning. References to "connection" and "coupling" herein, unless otherwise specified, include both direct and indirect connections (couplings).

[0042] If the path consistency verification problem of software-defined networking (SDN) is divided into strict path consistency and generalized path consistency, it can be considered that the path consistency verification problem in a heterogeneous fusion network that supports multiple protocols belongs to the generalized path consistency problem. Then, the technical solution of this application proposes a generalized path consistency verification solution based on labels and active detection mechanism for the generalized path consistency verification problem.

[0043] Example 1

[0044] Please refer to Figure 1 In this embodiment, a heterogeneous fusion network is disclosed, which mainly includes a data layer 1 and a control layer 2, which are described below respectively.

[0045] The data layer 1 includes multiple switches connected in a topological manner, such as switches 11, 12, 13, 14, 15, and 16. Switch 11 is communicated with switches 12 and 13 respectively, switch 12 is communicated with switches 13 and 14 respectively, and switch 13 is communicated with switches 14, 15, and 16 respectively; and each switch can forward data according to at least one communication protocol, that is, each switch has a multi-protocol data forwarding function, and can also be called a multi-protocol switch; the communication protocols here include but are not limited to TCP / IP protocol, NetBEUI protocol, and IPX / SPX protocol.

[0046] The control plane 2 is connected to the switches in the data plane 1 and is used to control the data forwarding paths of each switch. For example, the control plane 2 may include at least one controller 21, which is communicatively connected to switches 11, 12, 13, 14, 15, and 16 respectively. Controller 21 can send control information to each switch and receive reporting information fed back by each switch, thereby controlling the data forwarding paths of each switch.

[0047] It should be noted that the purpose of each switch in the data layer 1 is to provide network access between different hosts, such as Figure 1 In the hosts 31, 32, 33, and 34, host 31 is connected to the switch 11 for communication, host 32 is connected to the switch 14 for communication, host 33 is connected to the switch 15 for communication, and host 34 is connected to the switch 16 for communication. Each host relies on each switch to achieve network interconnection and intercommunication.

[0048] In this embodiment, the process of the control plane 2 controlling the data forwarding path of each switch in the data plane 1 can be described as follows:

[0049] (1) In the first processing step, the control layer 2 constructs a multi-information detection packet according to a preset communication protocol and sends the detection packet to the data layer. The communication protocol used to construct the detection packet can be the TCP / IP protocol, and the detection packet should include packet header information and forwarding rule information of several switches that are expected to perform forwarding. The packet header information may include its own identification mark, the address of the ingress switch, the protocol type, and other information. The forwarding rule information can be considered as packet body information and may include the addresses of several switches that are expected to perform forwarding (such as the addresses of switches 11, 12, 13, and 14, respectively). It can be understood that the role of the detection packet is to detect the data forwarding path of each switch in the data layer 1.

[0050] (2) In the second processing phase, after the control layer 2 sends the detection packet to the data layer 1, the data layer 1 will respond by forwarding the detection packet according to the actual forwarding path of each switch and reporting the actual forwarding information to the control layer. It can be understood that although the detection packet contains the forwarding rule information of several switches that are expected to perform forwarding, there may be a situation where a switch fails to forward data during the actual data forwarding process, which may cause the actual forwarding path to be inconsistent with the expected path. Therefore, it is necessary for each switch actually involved in the forwarding to record the actual forwarding path of the detection packet to generate the actual forwarding information.

[0051] (3) In the third processing step, the control layer 2 generates multiple expected path information according to the forwarding rule information, and uses the multiple expected path information to form the expected path set information corresponding to the detection packet. Figure 1 If the controller 21 expects to build a network path between the host 31 and the host 32 through the switches 11, 12, 13, and 14, the expected path information that can be generated includes switches 11-12-13-14, switches 11-13-14, and switches 11-12-14. These expected path information can constitute the expected path set information corresponding to the detection packet. For example, the expected path set information is recorded as Q.

[0052] (4) In the fourth processing step, the control layer 2 generates the actual path information corresponding to the detection packet based on the actual forwarding information. Figure 1 After the controller 21 sends the detection packet to the inlet switch 11, the detection packet begins to be forwarded within the data layer 1. If the switch 11-13-14 records the actual forwarding path of the detection packet, then the actual path information corresponding to the detection packet can be generated. For example, the actual path information can be recorded as s.

[0053] (5) In the fifth processing step, control plane 2 determines whether the expected path set information contains expected path information that is consistent with the actual path information. If so, path consistency verification is performed on the expected path and the actual path forwarded by the probe packet. It can be understood that control plane 2 determines whether the expected path set information Q contains the actual path information s. Only when the actual path information is contained, the path consistency verification is passed.

[0054] In this embodiment, for the second processing link above, the process of forwarding the detection packet at the data layer 1 according to the actual forwarding path of each switch includes:

[0055] 1) Data layer 1 receives the decentralized detection packet, forwards it between the switches, and forms an actual forwarding path. To facilitate understanding of the actual forwarding process, the switch that first forwards the detection packet on the actual path is called the ingress switch, the switch that last forwards the detection packet on the actual path is called the egress switch, and the remaining switches on the actual path are called intermediate switches. For example Figure 1 , the controller 21 sends the detection packet to the switch 11 of the data layer 1, and the switches 11, 12, 13, and 14 of the data layer 1 forward the detection packet. Then, the switch 11 is the ingress switch, the switch 14 is the egress switch, and the switches 12 and 13 are both intermediate switches.

[0056] 2) Data plane 1 uses the ingress switch on the actual path to insert the initial label value into the detection packet and reports the initial label value to the control plane.

[0057] In one embodiment, the initial tag value may be composed of a two-dimensional random vector (v1, v2) and a 32-bit modulus p, where the two-dimensional random vector may include two 32-bit integers. The initial tag value is used for subsequent tag update calculations.

[0058] 3) The data layer 1 uses the intermediate switches and the egress switch on the actual path to update the initial label value of the detection packet. The label update algorithm may be specifically executed by the label update module 111 in the switch.

[0059] In a specific embodiment, the controller 21 may assign a matrix address to each switch and send it to the corresponding switch, so that each switch may have a unique 2*2 feature matrix (denoted by M i Each time the detection packet passes through a switch (denoted by S i Indicates), the switch S i The label value in the detection packet will be compared with the switch S i The characteristic matrix M iMatrix multiplication is performed to obtain a new label value to replace the original label value.

[0060] For example, the update process of the label value refers to the following formula

[0061]

[0062] Among them, p is the modulus of the label value, det represents the matrix determinant, (v 2i+1 ,v 2i+2 )、(v 2i-1 ,v 2i ) denotes a two-dimensional random vector, the subscript i denotes the serial number of the switch, and % denotes a modulo operation.

[0063] In a specific embodiment, the label value update process of the label update module 111 in the intermediate switch and the egress switch is as follows: a) For the intermediate switch on the actual path, the intermediate switch performs a matrix multiplication operation on its own characteristic matrix and the initial label value inserted in the detection packet to obtain a first label value; b) For the egress switch on the actual path, the egress switch performs a matrix multiplication operation on its own characteristic matrix and the first label value to obtain a second label value; c) In the matrix multiplication operation, the characteristic matrix involved in the operation is subjected to a modulus calculation (such as M i %p) to prevent matrix multiplication overflow, and the first label value and the second label value are both updated label values, and both need to form actual forwarding information together with the packet header information.

[0064] It's important to note that because matrix multiplication is irreversible, the final result reflects the order in which the probe packet actually passed through each switch. Furthermore, to prevent overflow, a modulo operation is added to the matrix multiplication. The result of this modulo operation is used as a new two-dimensional vector to update the label. This prevents matrix multiplication overflow. The value of the modulus p is related to the determinant of the switch's characteristic matrix, and the value of the modulus is continuously increased through the cumulative multiplication of the modulus and the determinant. It's important to note that because updating the modulus is also a multiplication operation, there's a risk of modulo overflow. To avoid this risk, the size of the switch's determinant must be kept within a reasonable range. The determinant size can be set as needed.

[0065] 4) Data plane 1 forms corresponding actual forwarding information based on the label value updated by any of the intermediate switches or the egress switch on the actual path and the header information of the probe packet, and reports it to control plane 2. It will be appreciated that since both the intermediate switches and the egress switch can update the label value to obtain an updated label value, in order to allow controller 21 to understand the forwarding status of the probe packet, the intermediate switches and the egress switch can form the actual forwarding information based on the updated label value and the header information of the probe packet, and report it to controller 21.

[0066] In this embodiment, for the third processing link above, the control plane 2 generates multiple expected path information according to the forwarding rule information, and uses the multiple expected path information to form the expected path set information corresponding to the detection packet, including:

[0067] 1) The control layer 2 constructs multiple expected paths based on the forwarding rule information. Each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path. For example Figure 1 If a network path is to be built between host 31 and host 32, there are three expected paths, namely switch 11-12-13-14, switch 11-13-14, and switch 11-12-14, among which switch 11 is the entry switch on the expected path.

[0068] 2) Control plane 2 obtains the characteristic matrix of all switches on each expected path, and obtains the initial label value reported by the ingress switch on the actual path. Figure 1 For the three expected paths (switch 11-12-13-14, switch 11-13-14, and switch 11-12-14), the controller 21 can obtain the characteristic matrices of switches 11, 12, 13, and 14, and obtain the initial label value of switch 11.

[0069] 3) The control layer 2 uses the characteristic matrix of one or more switches on each expected path to update the initial label value and obtain the label value corresponding to each expected path. Figure 1 Since controller 21 obtains the characteristic matrices of switches 11, 12, 13, and 14, as well as the initial label value of switch 11, the initial label value can be multiplied by the characteristic matrix of switch 11 to obtain a new label value, which is then multiplied by the characteristic matrix of switch 12. The new label value is then multiplied by the characteristic matrix of switch 13, and the new label value is then multiplied by the characteristic matrix of switch 14. The final label value is the label value of the expected path (switch 11-12-13-14). Similarly, the label values of the expected path (switch 11-13-14) and the expected path (switch 11-12-14) can be obtained.

[0070] 4) The control layer 2 generates an expected path information according to the header information of the detection packet and the label value corresponding to each expected path.

[0071] 5) The control layer 2 counts the expected path information corresponding to each expected path, and thus can form the expected path set information corresponding to the detection packet.

[0072] Furthermore, to ensure the validity of the storage of the expected path set information, the controller 21 in the control plane 2 may store the expected path set information in a preset path table and use a Bloom filter to map and store the label values corresponding to each expected path in the path table. It should be noted that the expected path set information stores the label values corresponding to each expected path, i.e., a 1*2 vector corresponding to any expected path. To reduce the storage space required for the expected path set information, the label values corresponding to multiple expected paths may be mapped to a fixed-length Bloom filter to save storage space. It is understood that a Bloom filter is typically used to quickly determine whether an element exists in a set. It consists of several independent hash functions and a binary vector. Furthermore, a Bloom filter determines whether an element exists in a set through multiple hash mappings. The hash functions map the element to several numerical values corresponding to the Bloom filter subscripts. If the values corresponding to these Bloom filter subscripts are all 1, the element belongs to the set. Of course, if the values corresponding to these Bloom filter subscripts are not all 1, the element does not belong to the set.

[0073] In the fourth processing link above, the control plane 2 generates actual path information corresponding to the detection packet according to the actual forwarding information, including:

[0074] 1) The control layer 2 obtains the label values reported by the intermediate switches and the egress switches on the actual path of the detection packet, as well as the packet header information of the detection packet. Figure 1 In the case where the actual forwarding path is switch 11 - 13 - 14 , switches 13 and 14 will upload updated label values and header information of the detection packet respectively, and controller 21 receives the label value and header information.

[0075] 2) Control plane 2 determines the actual path along which the probe packet is forwarded between switches in the data plane based on the acquired label value, and generates corresponding actual path information based on the acquired label value and the probe packet's header information. Controller 21 receives the label value and header information. Since the label value is the result of matrix multiplication of the switch's characteristic matrix, an inverse matrix operation can be performed to obtain the switch's characteristic matrix, thereby determining which switch is involved in the actual forwarding of the probe packet. Furthermore, the corresponding actual path information can be generated using the label value and header information reported by the egress switch.

[0076] In this embodiment, for the fifth processing step above, the control layer 2 determines whether the expected path set information includes expected path information that is consistent with the actual path information, including:

[0077] 1) The control layer 2 obtains the packet header information and label value in the expected path set information, and obtains the packet header information and label value in the actual path information. Figure 1 Since the expected path set information includes multiple expected path information, and each expected path information includes the header information of the detection packet and the corresponding label value, and the actual path information also includes the header information of the detection packet and the corresponding label value, the path consistency of the expected path information and the actual path information can be verified based on the header information and the label value.

[0078] 2) Control Plane 2 compares the packet header information in the actual path information with the packet header information in the expected path set information. If the packet header information matches, path consistency verification is performed. It is understood that consistency verification is only meaningful for the expected and actual paths of the same probe packet. The probe packet header information is unique, so a matching judgment is performed on the packet header information. Only if the packet header information matches can path consistency verification be confirmed for the actual and expected path information of the same probe packet.

[0079] 3) Control plane 2 determines whether the expected path set information contains the same label value as the actual path information. If so, path consistency verification has been passed. It can be understood that since the expected path set information includes multiple pieces of expected path information, each piece of expected path information includes a corresponding label value, the expected path set information includes multiple label values, each with a different value. As long as one of the label values is the same as the label value in the actual path information, it indicates that the expected switch forwarding order for the same probe packet is consistent with the actual switch forwarding order, and no switch forwarding errors have occurred, thus passing path consistency verification.

[0080] In this embodiment, the technical solution constructs a probe packet based on forwarding rules and then sends the proactively generated probe packet to the data plane. The actual forwarding path of the probe packet is then tested to determine whether it matches the expected path, thereby determining whether the data plane and control plane are consistent. If the actual forwarding behavior of the probe packet does not match the expected path, it indicates an inconsistency between the data plane and the control plane, and the faulty switch requires maintenance.

[0081] In this embodiment, the technical solution is to implement path consistency detection for lower-layer data forwarding through the active detection mechanism of the upper-layer controller. When a data packet (or detection packet) enters the network, if the ingress switch does not know how to forward the data packet, the ingress switch will send a Packet_In message to the controller. After receiving the Packet_In message, the controller will calculate the routing path for the data packet and send the corresponding flow table rules to the corresponding switch. The controller then uses the active detection mechanism to generate a detection packet on the corresponding path to perform path detection, thereby determining whether the flow table rules have been correctly issued and whether they have been correctly installed and executed by the switch.

[0082] In this embodiment, the actual forwarding path information of the probe packet is compressed and recorded using the label value. When the probe packet generated by the controller enters the data layer, the ingress switch executes the label insertion algorithm to insert the initial label value into the probe packet. As the probe packet is forwarded in the data layer, the label value is updated by the switch using the label update algorithm; when the probe packet reaches the end point of the path, the egress switch removes the label value and reports it to the controller for path consistency verification. It should be noted that the storage, transmission, and calculation overhead of the label value should not be too large. The limited space should be used to carry sufficient actual path information to provide assistance for generalized path consistency verification.

[0083] It's important to note that the data plane of a traditional SDN network is a single-protocol architecture. This means that switches on the data plane only support forwarding IPv4 protocol packets. The routing functionality of network forwarding devices is moved up to the control plane, with the controller responsible for end-to-end packet routing calculations. However, the forwarding functionality of network forwarding devices is retained on the switches on the data plane, and switches lack caching, making path consistency verification a simple problem. In traditional technical solutions, if a controller needs to perform path consistency verification on path ABCD, and the controller's expected path is ABCD, the path consistency verification will only pass if the actual forwarding path of the IPv4 packet is strictly equal to ABCD. Therefore, the path consistency verification problem in traditional SDN networks is a strict path consistency problem, meaning that the actual path of the packet must strictly equal the controller's expected path for path consistency verification to pass. In a strict path consistency problem, there is only one expected path for the packet, and only one actual path that can pass path consistency verification—a one-to-one relationship. For intuitive description, the traditional strict path consistency problem can be modeled as a bijection model between the expected path set X and the actual path set Y that can pass the path consistency verification. Bijection is a concept in mathematical sets. If a mapping f is a mapping from set X to set Y, if for any element y in set Y, there exists a unique element x in set X such that y = f(x), then the mapping f is considered to be a bijection between sets X and Y.

[0084] Compared to traditional path consistency verification approaches, this embodiment offers technical improvements. In this embodiment, for a multi-protocol heterogeneous converged network (MPSDN), the multi-protocol switch at the data plane can simultaneously support the forwarding of IPv4, IPv6, and NDN protocol packets. Furthermore, the routing function of the network forwarding device is moved up to the control plane, where the controller is responsible for end-to-end routing calculation of the packets. The forwarding function of the network forwarding device is retained on the multi-protocol switch at the data plane. Because the data plane in MPSDN can support the forwarding of NDN protocol packets, the multi-protocol switch at the data plane also has a cache function. As can be understood, the path consistency verification problem becomes more complex in this scenario. The path consistency problem in a multi-protocol heterogeneous converged network falls under the generalized path consistency concept, meaning that the actual forwarding path of a packet (or probe packet) does not need to strictly equal the controller's expected path for path consistency verification to pass. As long as the actual forwarding path of a packet is consistent with the controller's expected path based on protocol semantics, the path consistency verification is considered to have passed. In the generalized path consistency problem, there is only one expected path for a packet, but there may be multiple actual paths that can pass path consistency verification, creating a one-to-many relationship. In this embodiment, the generalized path consistency problem is modeled as a surjective model between an expected path set X and an actual path set Y that can pass path consistency verification. Surjective is a concept in mathematical sets. If a mapping f is a mapping from set X to set Y, if any element y in set Y has at least one corresponding element x in set X, such that y = f(x), then the mapping f is considered to be a surjective between sets X and Y. Therefore, the generalized path consistency verification problem can be solved based on the mapping concept of this surjective model. In this embodiment, based on the detection principle of the probe packet, the data traffic generated by the host (such as host 31) can also be forwarded and detected. For example, when a data packet representing real traffic enters a heterogeneous converged network, the edge switch of the heterogeneous converged network (such as the ingress switch) will insert label information into the packet header to mark it. When the marked data packet is forwarded to the switch at the edge of the network (such as the egress switch), the packet header information and label information will be reported to the upper-layer controller. The controller will obtain the actual forwarding path of the data packet based on the label information and then determine whether there is a rule inconsistency by comparing the actual path information of the data packet with the expected path.

[0085] In this embodiment, the controller can implement path consistency detection at the path granularity level. When a data packet generated by a host enters the network, if the ingress switch does not know how to forward the packet, it sends a message to the controller. Upon receiving the message, the controller calculates a routing path for the packet and then distributes the corresponding forwarding rules to the corresponding switches. The controller can use an active probing mechanism to generate probe packets along the corresponding paths to perform path probing, thereby determining whether the forwarding rules have been correctly distributed and correctly installed and executed by the switches.

[0086] Example 2

[0087] Please refer to Figure 1 and Figure 2 This embodiment discloses a heterogeneous converged network, including a data plane 1 and a control plane 2. Data plane 1 includes multiple topologically connected switches, such as switches 11, 12, 13, 14, 15, and 16. Control plane 2 includes a controller 21, which is connected to each switch. Next, the path consistency verification process for the heterogeneous converged network will be described in detail from the perspective of controller 21.

[0088] It should be noted that the controller 21 can be an independent control device or a functional component distributed in the cloud or on a local logic operation circuit. For example, the controller 21 can be given relevant functions through software design or programming. Of course, the functions implemented by the controller 21 can also be reflected through the operation of software, as long as the software can be executed on a processor.

[0089] The controller 21 includes a path detection generation module 211 , an expected path set generation module 212 , and a path consistency verification module 213 , which are described below respectively.

[0090] The path detection generation module 211 is used to construct a detection packet containing multiple information according to a preset communication protocol and send the constructed detection packet to the ingress switch in the data layer 1. The detection packet is used to detect the data forwarding path of each switch in the data layer 1.

[0091] The expected path set generation module 212 is used to generate corresponding expected path set information according to multiple expected paths along which the detection packet is forwarded between a number of switches in the data layer 1 .

[0092] The function of the path consistency verification module 213 is to detect the actual path forwarded by the detection packet between each switch in the data layer 1 and generate corresponding actual path information; and the path consistency verification module 213 determines whether the expected path set information contains expected path information consistent with the actual path information. If so, the path consistency of the expected path and the actual path forwarded by the detection packet is verified.

[0093] It should be noted that the communication protocols used to construct the detection packet include, but are not limited to, TCP / IP, NetBEUI, IPX / SPX, NDN orchestration control protocol, and blockchain on-chain / off-chain collaboration protocols. For example, the communication protocol used to construct the detection packet can be TCP / IP, and the detection packet should include packet header information and forwarding rule information for several switches that are expected to perform forwarding. The packet header information may include information such as its own identification tag, the address of the ingress switch, and the protocol type. The forwarding rule information can be considered as packet body information and may include the addresses of several switches that are expected to perform forwarding.

[0094] In one embodiment, the path detection generation module 211 configures the packet header information and the forwarding rules of several switches to be executed according to a preset communication protocol, and constructs a detection packet using the packet header information and forwarding rule information. Then, the path detection generation module 211 sends the detection packet to the ingress switch in the data layer 1. Next, the detection packet can be forwarded between the switches in the data layer 1 and form an actual forwarding path. To facilitate understanding of the actual forwarding process, the switch that first forwards the detection packet on the actual path is the ingress switch, the switch that last forwards the detection packet on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches. The ingress switch on the actual path is used to insert the initial label value into the detection packet and report it to the control layer. The intermediate switches and egress switches on the actual path are used to update the initial label of the detection packet and report the updated label value and the packet header information of the detection packet to the controller 21 in the control layer 2.

[0095] In one embodiment, in order to generate expected path set information, the expected path set generation module 212 constructs multiple expected paths based on the forwarding rule information, each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path; then, the expected path set generation module 212 obtains the characteristic matrix of all switches on each expected path, and obtains the initial label value reported by the ingress switch on the actual path; next, the expected path set generation module 212 uses the characteristic matrix of one or more switches on each expected path to update the initial label value and obtain the label value corresponding to each expected path; then, the expected path set generation module 212 generates an expected path information based on the header information of the detection packet and the label value corresponding to each expected path; thus, the expected path set generation module 212 counts the expected path information corresponding to each expected path, thus forming the expected path set information corresponding to the detection packet. For example Figure 1, if a network path is to be built between host 31 and host 32, there are three expected paths, namely switch 11-12-13-14, switch 11-13-14, and switch 11-12-14. For these three expected paths, controller 21 can obtain the characteristic matrices of switches 11, 12, 13, and 14, as well as the initial label value of switch 11. Since controller 21 obtains the characteristic matrices of switches 11, 12, 13, and 14, as well as the initial label value of switch 11, the initial label value can be multiplied by the characteristic matrix of switch 11 to obtain a new label value, which is then multiplied by the characteristic matrix of switch 12. The matrix is multiplied to obtain a new label value, which is then multiplied by the characteristic matrix of switch 13. The new label value is then multiplied by the characteristic matrix of switch 14. The final label value is the label value of the expected path (switch 11-12-13-14); then, by the same token, the expected path (switch 11-13-14) and the label value of the expected path (switch 11-12-14) can be obtained; at this time, the controller 21 generates an expected path information based on the packet header information of the detection packet and the label value corresponding to each expected path, and then counts the expected path information corresponding to each expected path to obtain the expected path set information.

[0096] In one embodiment, in order to generate actual path information, the path consistency verification module 213 obtains the label values reported by the intermediate switches and the egress switch on the actual path of the detection packet, as well as the packet header information of the detection packet; then, the path consistency verification module 213 determines the actual path forwarded by the detection packet between the switches in the data layer based on the obtained label values, and generates the corresponding actual path information based on the obtained label values and the packet header information of the detection packet. For example Figure 1 In the case where the actual forwarding path is switch 11-13-14, switches 13 and 14 will upload the updated label value and the header information of the detection packet respectively, and the label value and header information will be received by controller 21. Since the label value is the result of the switch's characteristic matrix calculated through matrix multiplication, the switch's characteristic matrix can be obtained through inverse matrix operation, thereby understanding which switch is involved in the actual forwarding of the detection packet. In addition, the label value and header information reported by the egress switch can be used to generate the corresponding actual path information.

[0097] In one embodiment, in order to implement path consistency verification between the expected path and the actual path, the path consistency verification module 213 obtains the header information and label value in the expected path set information, and obtains the header information and label value in the actual path information; then, the path consistency verification module 213 compares the header information in the actual path information with the header information in the expected path set information, and performs path consistency verification if the header information matches; next, the path consistency verification module 213 determines whether there is a label value in the expected path set information that is the same as the actual path information, and if so, the path consistency verification is passed. For example Figure 1 Since the expected path set information includes multiple expected path information, and each expected path information includes the header information of the detection packet and the corresponding label value, and the actual path information also includes the header information of the detection packet and the corresponding label value, the path consistency verification module 213 can perform path consistency verification on the expected path information and the actual path information based on the header information and the label value.

[0098] Example 3:

[0099] Please refer to Figure 1 and Figure 2 This embodiment discloses a heterogeneous converged network, including a data plane 1 and a control plane 2. The data plane 1 includes multiple switches connected in a topological manner, such as switches 11, 12, 13, 14, 15, and 16. The control plane 2 is deployed with a controller 21 connected to each switch. Controller 21 in control plane 2 is used to control the data forwarding path of each switch in data plane 1. Next, the data forwarding process of the probe packet is described from the perspective of the data plane 1.

[0100] Since the controller 21 in the control layer 2 can construct a multi-information combined detection packet according to the preset communication protocol and send the detection packet to the data layer 1, the data layer 1 can receive the detection packet sent by the control layer 2 and forward the detection packet between the switches to form an actual forwarding path. It should be noted that the switch that forwards the detection packet for the first time on the actual path is the ingress switch, the switch that forwards the detection packet last on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches. For example Figure 1 , the controller 21 sends the detection packet to the switch 11 of the data layer 1, and the switches 11, 12, 13, and 14 of the data layer 1 forward the detection packet. Then, the switch 11 is the ingress switch, the switch 14 is the egress switch, and the switches 12 and 13 are both intermediate switches.

[0101] At data plane 1, the ingress switch on the actual path inserts an initial label value into the probe packet and reports the initial label value to the control plane. For example, the initial label value can consist of a two-dimensional random vector (v1, v2) containing two 32-bit integers and a 32-bit modulus p. The initial label value is used in subsequent label update calculations.

[0102] In the data layer 1, the data layer 1 uses the intermediate switches and the egress switches on the actual path to update the initial label value of the detection packet. For example, the controller 21 can assign a matrix address to each switch and send it to the corresponding switch, so that each switch can have a unique 2*2 feature matrix (denoted by M i Each time the detection packet passes through a switch (denoted by S i Indicates), the switch S i The label value in the detection packet will be compared with the switch S i The characteristic matrix M i The matrix multiplication operation is performed to obtain a new label value to replace the original label value. For example, the label value update process refers to the following formula p=p*det(M i )、(v 2i+1 ,v 2i+2 )=(v 2i-1 ,v 2i )*M i %p, where p is the modulus of the label value, det represents the matrix determinant, (v 2i+1 ,v 2i+2 )、(v 2i-1 ,v 2i ) denotes a two-dimensional random vector, the subscript i denotes the serial number of the switch, and % denotes a modulo operation.

[0103] In the data layer 1, the data layer 1 forms the corresponding actual forwarding information based on the label value updated by any switch among the intermediate switches and the egress switches on the actual path and the header information of the detection packet and reports it to the controller 21 in the control layer 2.

[0104] In a specific embodiment, the tag value update process is as follows:

[0105] a) For an intermediate switch on the actual path, the intermediate switch performs a matrix multiplication operation on its own feature matrix and the initial label value inserted into the detection packet to obtain a first label value.

[0106] b) For the egress switch on the actual path, the egress switch performs a matrix multiplication operation on its own feature matrix and the first label value to obtain a second label value.

[0107] c) In matrix multiplication, the modulus calculation is performed on the characteristic matrix involved in the operation (such as M i %p) to prevent matrix multiplication overflow, and the first label value and the second label value are both updated label values, and both need to form actual forwarding information together with the packet header information.

[0108] It's important to note that because matrix multiplication is irreversible, the final result reflects the order in which the probe packet actually passed through each switch. Furthermore, to prevent overflow, a modulo operation is added to the matrix multiplication. The result of this modulo operation is used as a new two-dimensional vector to update the label. This prevents matrix multiplication overflow. The value of the modulus p is related to the determinant of the switch's characteristic matrix, and the value of the modulus is continuously increased through the cumulative multiplication of the modulus and the determinant. It's important to note that because updating the modulus is also a multiplication operation, there's a risk of modulo overflow. To avoid this risk, the size of the switch's determinant must be kept within a reasonable range. The determinant size can be set as needed.

[0109] Example 4:

[0110] Based on the heterogeneous converged networks disclosed in the above first, second, and third embodiments, this embodiment discloses a path consistency verification method for a heterogeneous converged network.

[0111] refer to Figure 1 For the heterogeneous converged network here, it includes a data layer 1 and a control layer 2. The data layer 1 includes multiple switches connected in a topological manner, such as switches 11, 12, 13, 14, 15, and 16. A controller 21 is deployed in the control layer 2 and is connected to each switch. The controller 21 in the control layer 2 is used to control the data forwarding path of each switch in the data layer 1.

[0112] In this embodiment, see Figure 3 ,The path consistency verification method includes steps 410-440, which are described below.

[0113] In step 410, the controller 21 constructs a detection packet combining multiple information according to a preset communication protocol, and sends the detection packet to the data layer.

[0114] In step 420 , the controller 21 generates corresponding expected path set information according to multiple expected paths along which the detection packet is forwarded between a plurality of switches in the data layer.

[0115] In step 430 , the controller 21 detects the actual path along which the detection packet is forwarded between the switches in the data layer and generates corresponding actual path information.

[0116] In step 440 , the controller 21 determines whether the expected path set information includes expected path information that is consistent with the actual path information. If so, the controller 21 verifies the consistency of the expected path and the actual path forwarded by the detection packet.

[0117] In this embodiment, the above step 410 mainly involves the process of constructing the detection packet, so please refer to Figure 4 , the step 410 may specifically include steps 411-413, which are described as follows.

[0118] In step 411, controller 21 configures packet header information and forwarding rule information for several switches to be forwarded based on a preset communication protocol. The communication protocol used to construct the probe packet can be TCP / IP, NetBEUI, or IPX / SPX. The probe packet header information can include information such as its own identification tag, the ingress switch address, and the protocol type. The probe packet forwarding rule information can be considered as packet body information and may include the addresses of the switches to be forwarded, such as switches 11, 12, 13, and 14.

[0119] In step 412, the controller 21 constructs a multi-information combined detection packet using the packet header information and the forwarding rule information.

[0120] In step 413, controller 21 sends the probe packet to data plane 1. The probe packet is forwarded between the switches in data plane 1, forming an actual forwarding path. It should be noted that, in the data plane, the switch that first forwards the probe packet on the actual path is the ingress switch, the switch that last forwards the probe packet on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches. Furthermore, the ingress switch on the actual path is responsible for inserting the initial label value into the probe packet and reporting it to control plane 2. The intermediate switches and egress switches on the actual path are responsible for updating the initial label of the probe packet and reporting the updated label value and the probe packet header information to control plane 2.

[0121] In this embodiment, the above step 420 mainly involves the process of generating the expected path set information, so please refer to Figure 5 , the step 420 may specifically include steps 421-425, which are described as follows.

[0122] In step 421, the controller 21 constructs multiple expected paths according to the forwarding rule information, and each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path. Figure 1If a network path is to be built between host 31 and host 32, there are three expected paths, namely switch 11-12-13-14, switch 11-13-14, and switch 11-12-14, among which switch 11 is the entry switch on the expected path.

[0123] In step 422, the controller 21 obtains the characteristic matrix of all switches on each expected path, and obtains the initial label value reported by the ingress switch on the actual path. Figure 1 For the three expected paths (switch 11-12-13-14, switch 11-13-14, and switch 11-12-14), the controller 21 can obtain the characteristic matrices of switches 11, 12, 13, and 14, and obtain the initial label value of switch 11.

[0124] In step 423, the controller 21 updates the initial label value using the characteristic matrix of one or more switches on each desired path to obtain the label value corresponding to each desired path. Figure 1 Since controller 21 obtains the characteristic matrices of switches 11, 12, 13, and 14, as well as the initial label value of switch 11, the initial label value can be multiplied by the characteristic matrix of switch 11 to obtain a new label value, which is then multiplied by the characteristic matrix of switch 12. The new label value is then multiplied by the characteristic matrix of switch 13, and the new label value is then multiplied by the characteristic matrix of switch 14. The final label value is the label value of the expected path (switch 11-12-13-14). Similarly, the label values of the expected path (switch 11-13-14) and the expected path (switch 11-12-14) can be obtained.

[0125] In step 424 , the controller 21 generates a piece of expected path information according to the header information of the detection packet and the label value corresponding to each expected path.

[0126] In step 425 , the controller 21 collects statistics of expected path information corresponding to each expected path, thereby forming expected path set information corresponding to the detection packet.

[0127] In this embodiment, the above step 430 mainly involves the process of generating actual path information, so please refer to Figure 6 , the step 430 may specifically include steps 431-433, which are described as follows.

[0128] Step 431, the controller 21 obtains the label values reported by the intermediate switches and the egress switches on the actual path of the detection packet, as well as the packet header information of the detection packet. Figure 1In the case where the actual forwarding path is switch 11 - 13 - 14 , switches 13 and 14 will upload updated label values and header information of the detection packet respectively, and controller 21 receives the label value and header information.

[0129] In step 432 , the controller 21 determines the actual path for forwarding the detection packet between the switches in the data layer according to the obtained label value.

[0130] Step 433: The controller 21 generates the corresponding actual path information according to the acquired label value and the header information of the detection packet. Figure 1 , the controller 21 receives the label value and packet header information. Since the label value is the result of the switch's characteristic matrix calculated through matrix multiplication, the switch's characteristic matrix can be obtained through inverse matrix operation, thereby understanding which switch is involved in the actual forwarding of the detection packet; and the label value and packet header information reported by the egress switch can be used to generate the corresponding actual path information.

[0131] In this embodiment, the above step 440 mainly involves the process of path consistency verification, so please refer to Figure 7 , the step 440 may specifically include steps 441-443, which are described as follows.

[0132] Step 441: The controller 21 obtains the packet header information and label value in the expected path set information, and obtains the packet header information and label value in the actual path information. Figure 1 Since the expected path set information includes multiple expected path information, and each expected path information includes the header information of the detection packet and the corresponding label value, and the actual path information also includes the header information of the detection packet and the corresponding label value, the path consistency of the expected path information and the actual path information can be verified based on the header information and the label value.

[0133] In step 442 , the controller 21 compares the packet header information in the actual path information with the packet header information in the expected path set information, and performs path consistency verification if the packet header information matches.

[0134] In step 443 , the controller 21 determines whether the expected path set information contains the same label value as the actual path information. If so, the path consistency verification is successful.

[0135] It should be noted that consistency verification is only meaningful when performed on the expected and actual paths of the same probe packet. The probe packet's header information is unique, so a matching check is performed on the header information. Only when the header information matches can the actual and expected path information for the same probe packet be determined to be consistent. Furthermore, since the expected path set information includes multiple pieces of expected path information, each piece of expected path information includes a corresponding label value, the expected path set information includes multiple, distinct label values. As long as one of these label values matches the label value in the actual path information, this indicates that the expected and actual switch forwarding order for the same probe packet is consistent, and no switch forwarding errors have occurred, thus passing path consistency verification.

[0136] Example 5

[0137] Based on the path consistency verification method disclosed in the fourth embodiment, this embodiment discloses a network control device. The network control device 5 includes a memory 51 and a processor 52 .

[0138] In this embodiment, the memory 51 and the processor 52 are the main components of the network control device 5. Of course, the network control device 5 may also include some functional modules connected to the processor 52. For details, please refer to the above embodiment 1 and will not be described in detail here.

[0139] The memory 51 can be used as a computer-readable storage medium, and is used here to store a program, which can be a program code corresponding to the path consistency verification method in the fourth embodiment.

[0140] The processor 52 is connected to the memory 51 and is used to execute the program stored in the memory 51 to implement the path consistency verification method disclosed in the above embodiment 4. It should be noted that the functions implemented by the processor 52 can refer to the controller 21 in the embodiment 1 and will not be described in detail here.

[0141] Those skilled in the art will appreciate that all or part of the functions of the various methods in the above embodiments can be implemented by hardware or by computer program. When all or part of the functions in the above embodiments are implemented by computer program, the program can be stored in a computer-readable storage medium, and the storage medium can include: read-only memory, random access memory, disk, optical disk, hard disk, etc., and the program is executed by a computer to implement the above functions. For example, the program is stored in the memory of the device, and when the program in the memory is executed by the processor, all or part of the above functions can be implemented. In addition, when all or part of the functions in the above embodiments are implemented by computer program, the program can also be stored in a storage medium such as a server, another computer, disk, optical disk, flash disk or mobile hard disk, and saved in the memory of the local device by downloading or copying, or the system of the local device is updated. When the program in the memory is executed by the processor, all or part of the functions in the above embodiments can be implemented.

[0142] The above specific examples are used to illustrate the present application, which is only used to help understand the technical solution of the present application and is not intended to limit the present application. For those skilled in the art, based on the ideas of the present application, several simple deductions, modifications or substitutions can be made.

Claims

1. A heterogeneous fusion network, characterized in that: include: The data layer includes multiple switches connected in a topological manner, each of which is capable of forwarding data according to at least one communication protocol; The control plane is connected to the switch in the data plane and is used to control the data forwarding path of the switch; wherein, The control layer constructs a multi-information combined detection packet according to a preset communication protocol and sends the detection packet to the data layer; the detection packet includes packet header information and forwarding rule information of several switches expected to perform forwarding; The data plane receives the decentralized detection packet and forwards it between the switches to form an actual forwarding path. The switch that first forwards the detection packet on the actual path is the ingress switch, the switch that last forwards the detection packet on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches. The data plane inserts an initial label value into the detection packet using an ingress switch on the actual path, and reports the initial label value to the control plane, where the initial label value consists of a two-dimensional random vector and a modulus. The data plane updates the initial label value of the detection packet using the intermediate switches and the egress switch on the actual path; The data plane forms corresponding actual forwarding information based on the label value updated by any switch among the intermediate switches and the egress switch on the actual path and the header information of the detection packet and reports it to the control plane; The control plane constructs multiple expected paths according to the forwarding rule information; each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path; The control plane obtains a characteristic matrix of all switches on each expected path, and obtains an initial label value reported by an ingress switch on the actual path; The control plane updates and calculates the initial label value using the characteristic matrix of one or more switches on each expected path to obtain a label value corresponding to each expected path; The control layer generates a piece of expected path information according to the header information of the detection packet and the label value corresponding to each expected path; The control layer counts expected path information corresponding to each expected path to form expected path set information corresponding to the detection packet; The control plane obtains the label values reported by the intermediate switches and the egress switch on the actual path of the detection packet, and obtains the header information of the detection packet; The control plane determines the actual path for forwarding the detection packet between the switches in the data plane according to the obtained label value, and generates corresponding actual path information according to the obtained label value and the header information of the detection packet; The control layer determines whether the expected path set information includes expected path information that is consistent with the actual path information, and if so, verifies the path consistency of the expected path and the actual path forwarded by the detection packet; The data layer updates the initial label value of the detection packet using the intermediate switches and the egress switch on the actual path, including: For an intermediate switch on the actual path, the intermediate switch performs a matrix multiplication operation on its own characteristic matrix and the initial label value inserted in the detection packet to obtain a first label value; For the egress switch on the actual path, the egress switch performs a matrix multiplication operation on its own characteristic matrix and the first label value to obtain a second label value; In the matrix multiplication operation, a modulo calculation is performed on the characteristic matrix involved in the operation to prevent matrix multiplication overflow; the first label value and the second label value are both updated label values; The expected path set information includes multiple pieces of expected path information, and each piece of expected path information includes the header information of the detection packet and the corresponding label value, and the actual path information also includes the header information of the detection packet and the corresponding label value; The control layer determines whether the expected path set information includes expected path information that is consistent with the actual path information, including: The control plane obtains the packet header information and label value in the expected path set information, and obtains the packet header information and label value in the actual path information; The control plane compares the packet header information in the actual path information with the packet header information in the expected path set information, and performs path consistency verification if the packet header information matches; The control layer determines whether the expected path set information has the same label value as the actual path information, and if so, the path consistency verification is passed.

2. The heterogeneous fusion network according to claim 1, wherein: The control layer further stores the expected path set information in a preset path table, and uses a Bloom filter in the path table to map and store the label values corresponding to each expected path.

3. A heterogeneous converged network comprising a data plane and a control plane, wherein the data plane comprises a plurality of switches connected in a topological manner, and a controller is deployed in the control plane and connected to each switch, characterized in that: The controller includes: A path detection generation module, configured to construct a detection packet according to a preset communication protocol and send the detection packet to the data layer; An expected path set generating module, configured to generate corresponding expected path set information according to a plurality of expected paths forwarded by the detection packet between a plurality of switches in the data layer; a path consistency verification module, configured to detect the actual path forwarded by the probe packet between the switches at the data layer and generate corresponding actual path information; and to determine whether the expected path set information contains expected path information consistent with the actual path information, and if so, to verify the path consistency of the expected path and the actual path forwarded by the probe packet; The path detection generation module constructs a detection packet according to a preset communication protocol and sends the detection packet to the data layer, including: The path detection generation module configures packet header information and forwarding rule information of several switches to be executed according to a preset communication protocol, and constructs a detection packet combining multiple information using the packet header information and the forwarding rule information; The path detection generation module sends the detection packet to the data layer, and the detection packet is forwarded between the switches in the data layer to form an actual forwarding path; the switch that forwards the detection packet for the first time on the actual path is the ingress switch, the switch that forwards the detection packet last on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches; the ingress switch on the actual path is used to insert the initial label value into the detection packet and report it to the control layer, and the intermediate switches and egress switches on the actual path are used to update the initial label of the detection packet and report the updated label value and the packet header information of the detection packet to the control layer; the initial label value is composed of a two-dimensional random vector and a modulus; The expected path set generation module generates corresponding expected path set information according to multiple expected paths forwarded by the detection packet between multiple switches in the data layer, including: The expected path set generation module constructs multiple expected paths according to the forwarding rule information; each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path; The expected path set generation module obtains the characteristic matrix of all switches on each expected path and obtains the initial label value reported by the ingress switch on the actual path; The expected path set generation module updates and calculates the initial label value using the characteristic matrix of one or more switches on each expected path to obtain a label value corresponding to each expected path; The expected path set generation module generates an expected path information according to the header information of the detection packet and the label value corresponding to each expected path; The expected path set generation module counts expected path information corresponding to each expected path to form expected path set information corresponding to the detection packet; The path consistency verification module detects the actual path forwarded by the detection packet between the switches in the data layer and generates corresponding actual path information, including: The path consistency verification module obtains the label values reported by the intermediate switches and the egress switch of the detection packet on the actual path, as well as the header information of the detection packet; The path consistency verification module determines the actual path of the detection packet forwarded between the switches in the data layer according to the obtained label value, and generates corresponding actual path information according to the obtained label value and the header information of the detection packet; The expected path set information includes multiple pieces of expected path information, and each piece of expected path information includes the header information of the detection packet and the corresponding label value, and the actual path information also includes the header information of the detection packet and the corresponding label value; The path consistency verification module determines whether the expected path set information includes expected path information that is consistent with the actual path information, and if so, verifies the path consistency of the expected path and the actual path forwarded by the detection packet, including: The path consistency verification module obtains the packet header information and label value in the expected path set information, and obtains the packet header information and label value in the actual path information; The path consistency verification module compares the packet header information in the actual path information with the packet header information in the expected path set information, and performs path consistency verification when the packet header information matches; The path consistency verification module determines whether the expected path set information has the same label value as the actual path information, and if so, the path consistency verification is passed.

4. A heterogeneous converged network comprising a data plane and a control plane, wherein the data plane comprises a plurality of switches connected in a topological manner, and the control plane is connected to the switches in the data plane and is used to control the data forwarding path of each switch, characterized in that: The data plane is capable of receiving the detection packets delegated by the control plane and forwarding the detection packets between the switches to form an actual forwarding path; the switch that first forwards the detection packet on the actual path is the ingress switch, the switch that last forwards the detection packet on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches; The data plane inserts an initial label value into the detection packet using an ingress switch on the actual path, and reports the initial label value to the control plane, where the initial label value consists of a two-dimensional random vector and a modulus. The data plane updates the initial label value of the detection packet using the intermediate switches and the egress switch on the actual path; The data plane forms corresponding actual forwarding information based on the label value updated by any switch among the intermediate switches and the egress switch on the actual path and the header information of the detection packet and reports it to the control plane; The data layer updates the initial label value of the detection packet using the intermediate switches and the egress switch on the actual path, including: For an intermediate switch on the actual path, the intermediate switch performs a matrix multiplication operation on its own characteristic matrix and the initial label value inserted in the detection packet to obtain a first label value; For the egress switch on the actual path, the egress switch performs a matrix multiplication operation on its own characteristic matrix and the first label value to obtain a second label value; In the matrix multiplication operation, a modulo calculation is performed on the characteristic matrix involved in the operation to prevent matrix multiplication overflow; the first label value and the second label value are both updated label values; in, A controller is deployed in the control plane and is connected to each switch. The controller in the control plane is used to control the data forwarding path of each switch in the data plane. The controller includes a path detection generation module, which is used to construct a detection packet according to a preset communication protocol and send the detection packet to the data layer, including: The path detection generation module configures packet header information and forwarding rule information of several switches to be executed according to a preset communication protocol, and constructs a detection packet combining multiple information using the packet header information and the forwarding rule information; The path detection generation module sends the detection packet to the data layer; The controller further includes an expected path set generation module, which is configured to generate corresponding expected path set information according to multiple expected paths forwarded by the detection packet between multiple switches in the data plane, including: The expected path set generation module constructs multiple expected paths according to the forwarding rule information; each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path; The expected path set generation module obtains the characteristic matrix of all switches on each expected path and obtains the initial label value reported by the ingress switch on the actual path; The expected path set generation module updates and calculates the initial label value using the characteristic matrix of one or more switches on each expected path to obtain a label value corresponding to each expected path; The expected path set generation module generates an expected path information according to the header information of the detection packet and the label value corresponding to each expected path; The expected path set generation module counts expected path information corresponding to each expected path to form expected path set information corresponding to the detection packet; The controller further includes a path consistency verification module configured to detect an actual path along which a probe packet is forwarded between switches at the data layer and generate corresponding actual path information; and to determine whether the expected path set information includes expected path information that is consistent with the actual path information, and if so, to verify the path consistency of the expected path and the actual path along which the probe packet is forwarded. The path consistency verification module detects the actual path forwarded by the detection packet between the switches in the data layer and generates corresponding actual path information, including: The path consistency verification module obtains the label values reported by the intermediate switches and the egress switch of the detection packet on the actual path, as well as the header information of the detection packet; The path consistency verification module determines the actual path of the detection packet forwarded between the switches in the data layer according to the obtained label value, and generates corresponding actual path information according to the obtained label value and the header information of the detection packet; The expected path set information includes multiple expected path information, and each expected path information includes the header information of the detection packet and the corresponding label value, and the actual path information also includes the header information of the detection packet and the corresponding label value; The path consistency verification module determines whether the expected path set information includes expected path information that is consistent with the actual path information, and if so, verifies the path consistency of the expected path and the actual path forwarded by the detection packet, including: The path consistency verification module obtains the packet header information and label value in the expected path set information, and obtains the packet header information and label value in the actual path information; The path consistency verification module compares the packet header information in the actual path information with the packet header information in the expected path set information, and performs path consistency verification when the packet header information matches; The path consistency verification module determines whether the expected path set information has the same label value as the actual path information, and if so, the path consistency verification is passed.

5. A method for verifying path consistency in a heterogeneous converged network, wherein the heterogeneous converged network includes a data layer and a control layer, wherein the data layer includes a plurality of switches connected in a topological manner, and the control layer is used to control the data forwarding path of each switch, characterized in that: The path consistency verification method includes: Configure packet header information and forwarding rule information of several switches to be executed according to a preset communication protocol, and construct a multi-information combined detection packet using the packet header information and the forwarding rule information; The detection packet is sent down to the data layer, and the detection packet is forwarded between the switches in the data layer to form an actual forwarding path; the switch that forwards the detection packet for the first time on the actual path is the ingress switch, the switch that forwards the detection packet last on the actual path is the egress switch, and the remaining switches on the actual path are intermediate switches; the ingress switch on the actual path is used to insert an initial label value into the detection packet and report it to the control layer, and the intermediate switches and egress switches on the actual path are used to update the initial label of the detection packet and report the updated label value and the packet header information of the detection packet to the control layer; the initial label value consists of a two-dimensional random vector and a modulus; Constructing multiple expected paths according to the forwarding rule information; each expected path has one or more switches, and the ingress switch on the expected path is the ingress switch on the actual path; Obtain the feature matrix of all switches on each expected path, as well as the initial label value reported by the ingress switch on the actual path; Using the characteristic matrix of one or more switches on each expected path, the initial label value is updated and calculated to obtain a label value corresponding to each expected path; generating a piece of expected path information according to the header information of the detection packet and the label value corresponding to each expected path; Counting expected path information corresponding to each expected path to form expected path set information corresponding to the detection packet; Obtaining label values reported by the intermediate switches and the egress switch on the actual path of the detection packet, as well as the header information of the detection packet; Determine an actual path for forwarding the detection packet between the switches in the data layer according to the obtained label value, and generate corresponding actual path information according to the obtained label value and the header information of the detection packet; Determine whether the expected path set information includes expected path information that is consistent with the actual path information, and if so, verify the path consistency of the expected path and the actual path forwarded by the detection packet; in, The expected path set information includes multiple expected path information, and each expected path information includes the header information of the detection packet and the corresponding label value, and the actual path information also includes the header information of the detection packet and the corresponding label value; The determining whether the expected path set information includes expected path information that is consistent with the actual path information includes: Obtaining the packet header information and label value in the expected path set information, and obtaining the packet header information and label value in the actual path information; Comparing the packet header information in the actual path information with the packet header information in the expected path set information, and performing path consistency verification if the packet header information matches; It is determined whether the expected path set information contains the same label value as the actual path information, and if so, the path consistency verification is passed.

6. A computer-readable storage medium, characterized in that The medium stores a program, which can be executed by a processor to implement the path consistency verification method according to claim 5.

Citation Information

Patent Citations

  • Network control method, data forwarding method and software defined network

    CN111464340A

  • Segmented verification method for SDN network policy consistency based on FPGA

    CN113595793A