CN111464340A - Network control method, data forwarding method and software defined network - Google Patents

Network control method, data forwarding method and software defined network Download PDF

Info

Publication number
CN111464340A
CN111464340A CN202010196872.5A CN202010196872A CN111464340A CN 111464340 A CN111464340 A CN 111464340A CN 202010196872 A CN202010196872 A CN 202010196872A CN 111464340 A CN111464340 A CN 111464340A
Authority
CN
China
Prior art keywords
switch
data
path
switches
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010196872.5A
Other languages
Chinese (zh)
Other versions
CN111464340B (en
Inventor
雷凯
张梅梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN202010196872.5A priority Critical patent/CN111464340B/en
Publication of CN111464340A publication Critical patent/CN111464340A/en
Application granted granted Critical
Publication of CN111464340B publication Critical patent/CN111464340B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A network control method, a data forwarding method and a software defined network are provided, wherein the network control method comprises the following steps: the method comprises the steps of obtaining topology information of a data layer in a software defined network, configuring an ideal transmission path for any data flow on the data layer according to the topology information, allocating one or more expected paths in the ideal transmission path according to a preset dynamic sampling mechanism, obtaining an actual path of each sampled data packet passing through the data layer, carrying out path consistency verification on the actual path by using the expected paths, and positioning an error switch from the actual path when the path consistency verification is not passed. Because the control layer locates the switch with error from the actual path when the actual path of the data packet does not pass the path consistency verification, the dynamic sampling and data forwarding process of the data stream can avoid the fault situation of the single point switch, which is beneficial to improving the robustness of the path consistency verification scheme.

Description

Network control method, data forwarding method and software defined network
Technical Field
The invention relates to the technical field of network management, in particular to a network control method, a data forwarding method and a software defined network.
Background
Software Defined Networking (SDN) is a novel network innovation architecture and is also an implementation of network virtualization. The SDN separates a control plane and a data plane of a network device, thereby realizing flexible control of network traffic, making the network more intelligent as a pipeline, and providing a good platform for innovation of a core network and application. The SDN system comprises an SDN whole framework, a data plane, a control plane and an application plane from bottom to top, wherein the data plane is composed of network general hardware such as a switch, and SDN data channels formed by different rules are connected among network devices; the control plane comprises a SDN controller which is logically used as a center, grasps global network information and is responsible for controlling various forwarding rules; the application plane contains various SDN-based network applications, and users can program and deploy new applications without concern for underlying details. The SDN can open, standardize and program the vertical direction of the whole network, can effectively reduce equipment load, assists a network operator to better control infrastructure, reduces the whole operation cost, and becomes one of the most promising network technologies.
The software defined network simplifies network management by separating the control plane and the data plane, and improves the programmability of the network. Ideally, the packet forwarding behavior of the data plane should conform to the network policy of the control plane, but in an actual situation, due to an inconsistency between a rule set by the flow table of the data plane and the network policy of the control plane, an actual path through which the packet is forwarded may be different from a path expected by the control plane. Once the forwarding behavior of the data packet is not controlled, the network policy (such as traffic engineering, access control, etc.) will not work properly. In addition, such uncertain network behavior can further cause network performance degradation and even network error (such as loop forwarding, packet loss, etc.). Therefore, it is important to ensure that the actual path through which the data packet is forwarded in the SDN is consistent with the path expected by the controller.
Currently, path consistency verification mainly employs a probe-packet-based path detection scheme and a label-based path detection scheme. For a path detection scheme based on a probe packet, aiming at each flow table rule of a data plane, a probe packet is artificially constructed and injected into the data plane, whether the flow table rule of the data plane is correctly installed or not is judged by observing the forwarding behavior of the probe packet, and whether the actual path through which real data traffic generated by a user passes is the same as an expected path or not is further judged; in the design of the scheme, the probe packet needs to be ensured to trigger only a specific rule and not be influenced by other rules, so that the structural complexity of the probe packet is very high; this is because the number of rules in a commercial OpenFlow switch can reach thousands or even tens of thousands, while the number of rules in a software switch flow table is more; furthermore, there may be multiple rules in the flow table where matching fields partially overlap or even are identical. Therefore, it is a very complex and time-consuming task to design a probe packet that triggers only a specific rule, which results in that the probe packet-based path detection scheme cannot be applied to a network with frequent updates. For a path detection scheme based on a label, inserting a label into the position of a packet header of a real data packet generated by a user, recording and compressing actual path information passed by the data packet by using the label, and simultaneously recording expected path information on a control plane; by comparing the actual path information carried in the label with the expected path information of the control plane, the controller can judge whether the data packet is forwarded according to the expected path. In the design of the label-based path detection scheme, the composition of the label and the updating, storage and representation of the control plane expected path information are the problems of the type of path detection scheme which needs to be focused.
With the development of future networks, various network protocols and architectures are continuously proposed, in an SDN heterogeneous convergence network, a data plane may be formed by multiple types of switches, and different types of switches may support different protocols (for example, a switch supporting an IP protocol, a switch supporting an ICN protocol, and a switch supporting a Hybrid-ICN protocol); then the path consistency verification problem between the actual path and the expected path of packet forwarding becomes very complex and difficult to solve in the SDN heterogeneous convergence scenario. However, none of the existing path consistency detection schemes is applied to the SDN heterogeneous converged network, and it is necessary to provide a solution to the path consistency problem in the multi-protocol SDN scenario.
Disclosure of Invention
The invention mainly solves the technical problem of how to effectively verify the path consistency between an actual path and an expected path of data forwarding in an SDN heterogeneous convergence network, and avoids the occurrence of uncertain network behaviors. In order to solve the technical problem, the application discloses a network control method, a data forwarding method and a software defined network.
According to a first aspect, an embodiment provides a network control method for a software-defined network, the software-defined network including a control plane and a data plane, the control plane being configured to control data forwarding tasks in the network, the data plane being configured to execute the data forwarding tasks in the network; the network control method comprises the following steps: acquiring topology information of a data layer in the software defined network, wherein the topology information comprises a topology connection relation between all switches constructing the data layer; configuring an ideal transmission path for any data flow on the data plane according to the topology information, wherein the ideal transmission path is a data channel formed by sequentially connecting a plurality of switches; allocating one or more expected paths in the ideal transmission path according to a preset dynamic sampling mechanism; the dynamic sampling mechanism comprises a switch for randomly determining to sample the data flow and dynamic sampling time of the switch, wherein the data flow forms a plurality of data packets after being sampled; and acquiring an actual path of each data packet passing through the data layer, performing path consistency verification on the actual path by using the expected path, and positioning an error switch from the actual path when the path consistency verification is not passed.
The configuring an ideal transmission path for any data flow on the data plane according to the topology information includes: generating a flow vector corresponding to any data flow on the data layer, wherein the flow vector is used for identifying the uniqueness of the data flow; determining a plurality of switches from the topology information according to a preset routing decision mechanism, configuring a corresponding flow table rule for each switch, and configuring by using the flow table rule to form an ideal transmission path of the data flow to pass through the data layer; the routing decision mechanism comprises the step of transmitting data by adopting a shortest path, and the flow table rule comprises a matching action of forwarding the data to the next switch; and configuring different feature matrixes for each switch included in the ideal transmission path respectively, wherein the feature matrixes are used for identifying the uniqueness of the corresponding switch.
The allocating one or more expected paths from the ideal transmission path according to a preset dynamic sampling mechanism includes: randomly determining a switch from the switches included in the ideal transmission path by using the dynamic sampling mechanism, and using the switch as a switch for sampling the data stream; configuring dynamic sampling time suitable for the data size for the data stream by using the dynamic sampling mechanism, wherein the dynamic sampling time is any one of fixed sampling duration, linear incremental sampling duration and multiplicative incremental sampling duration; performing path distribution on the sampled switches and the switches distributed afterwards in the ideal transmission path to obtain one or more expected paths; the expected path is used for carrying out transmission path constraint on each data packet formed after the data stream is sampled; wherein the sampling switch is used for sampling the data flow into a plurality of data packets matched with the dynamic sampling time, and inserting an information tag in each data packet; the information label comprises sampling information formed according to the sampled switches, path information formed according to the switches through which the data packet sequentially passes, and reporting information formed by the switches which send out the data packet.
The randomly determining a switch from the switches included in the ideal transmission path by using the dynamic sampling mechanism, and using the switch as a switch for sampling the data stream includes: for each switch included in the ideal transmission path, randomly calculating the sampling probability of each switch by using a preset probability distribution method; selecting the switch corresponding to the maximum sampling probability as the switch for sampling the data stream; and if the sum of the sampling probabilities of all the switches is zero, not allocating the sampled switch to the data stream.
The performing path allocation on the sampled switch and each switch distributed afterwards in the ideal transmission path to obtain one or more expected paths includes: if all the switches included in the ideal transmission path are IP protocol type switches, distributing the sampled switches and all the switches distributed afterwards into one expected path; if a plurality of switches in each switch included in the ideal transmission path are IP protocol type switches and the rest of switches are ICN protocol type switches, the sampled switch and each switch distributed later, the sampled switch and any one ICN protocol type switch later and each switch before are respectively allocated as the expected path.
The obtaining an actual path of each data packet passing through the data plane, performing path consistency verification on the actual path by using the expected path, and locating a faulty switch from the actual path when the path consistency verification is not passed includes: for each data packet, acquiring an information tag inserted in the data packet, analyzing sampling information, path information and reporting information contained in the information tag, and obtaining an actual path of the data packet passing through the data layer according to an analysis result; calculating to obtain a first vector corresponding to the actual path by using the feature matrix corresponding to each switch in the actual path; calculating to obtain a second vector corresponding to each expected path by using the feature matrix corresponding to each switch in each expected path, and constructing a vector set by the second vectors corresponding to each expected path; judging whether the first vector belongs to the vector set, if so, confirming that the actual path passes path consistency verification, and if not, confirming that the actual path does not pass path consistency verification; and when the actual path does not pass the path consistency verification, performing inverse matrix multiplication according to the flow vector corresponding to the data flow where the data packet is located and each feature matrix participating in calculation of the first vector, selecting a feature matrix causing the operation result not to be an integer, and positioning the switch corresponding to the feature matrix as the wrong switch in the actual path.
According to a second aspect, an embodiment provides a data forwarding method for a software defined network, comprising: acquiring configuration information generated by a control plane of the software defined network according to the network control method in the first aspect; the configuration information includes a flow vector corresponding to any data flow on the data layer of the software defined network, a flow table rule corresponding to each switch and a feature matrix corresponding to each switch in the ideal transmission path, and the configuration information is determined as a sampled switch and the dynamic sampling time of the switch; judging whether the switch through which the data flow is going to pass is a sampled switch or not, if not, forwarding the data flow to the next switch according to the flow table rule corresponding to the switch; if the switch is a sampling switch, sampling the data flow into a plurality of data packets matched with the dynamic sampling time by using the sampling switch, inserting an information tag into each data packet, and forwarding each data packet to the next switch according to a flow table rule corresponding to the switch; the information label comprises sampling information formed according to the sampled switches, path information formed according to the switches through which the data packet sequentially passes, and reporting information formed by the switches which send out the data packet; and reporting the information tag in each data packet to a control layer of the software defined network, so that the control layer performs path consistency verification on the actual path of the data packet passing through the data layer according to the reported information tag.
When each data packet is forwarded to the next switch, performing matrix multiplication operation according to a flow vector corresponding to the data flow where the data packet is located and a feature matrix of the next switch, and updating path information in an information label in the data packet by using an operation result; when each data packet is forwarded to the last switch, the last switch is used as an outlet switch to send out the data packet, and the last switch is used for updating the reporting information in the information label in the data packet; and reporting the finally updated information tag in the data packet to a control layer of the software defined network.
According to a third aspect, an embodiment provides a software-defined network, including a control plane and a data plane, where the data plane includes a plurality of switches in a topologically connected relationship, where each switch is communicatively connected to the control plane; the control plane is configured to control a data forwarding task of any data flow on the data plane according to the network control method in the first aspect; the data plane is configured to perform a data forwarding task of the data flow according to the data forwarding method in the second aspect.
According to a fourth aspect, an embodiment provides a computer-readable storage medium, which includes a program executable by a processor to implement the network control method described in the first aspect above, or to implement the data forwarding method described in the second aspect above.
The beneficial effect of this application is:
according to the network control method, the data forwarding method and the software defined network of the embodiment, the software defined network comprises a control layer and a data layer, wherein the control layer is used for controlling a data forwarding task in the network, and the data layer is used for executing the data forwarding task in the network; the network control method comprises the following steps: the method comprises the steps of obtaining topology information of a data layer in a software defined network, configuring an ideal transmission path for any data flow on the data layer according to the topology information, allocating one or more expected paths in the ideal transmission path according to a preset dynamic sampling mechanism, obtaining an actual path of each sampled data packet passing through the data layer, carrying out path consistency verification on the actual path by using the expected paths, and positioning an error switch from the actual path when the path consistency verification is not passed. On the first hand, because the control layer of the software defined network configures an ideal transmission path for any data flow on the data layer according to the topology information, each data flow in the network can be transmitted under the constraint of the ideal transmission path, which is beneficial to reasonably configuring each switch in the data layer and achieving the optimal data forwarding effect; in the second aspect, one or more expected paths are allocated in an ideal transmission path according to a preset dynamic sampling mechanism, so that a reasonable expected path can still be found for a data stream under the conditions of dynamic sampling and forwarding of a multi-protocol type switch, and the method is favorably applied to a multi-protocol SDN heterogeneous convergence network; in the third aspect, as a dynamic sampling mechanism is adopted to randomly determine a sampled switch and dynamic sampling time suitable for the size of data volume, the sampled switch is not limited to the first switch in the path any more, which is beneficial to improving the sampling efficiency of data flow, and the sampled times of large flow and small flow are equal as much as possible, thereby ensuring the fairness of large flow and small flow sampling; in the fourth aspect, since the expected path is used to verify the path consistency of the actual path of each sampled data packet passing through the data layer, the control layer can know the forwarding state of each data packet in real time, which is beneficial to timely checking the forwarding error condition of the data packet; in the fifth aspect, a dynamic sampling mechanism is adopted, so that the verified times of each path are as equal as possible, and the verification efficiency and the coverage rate are ensured to be considered as much as possible in the path consistency verification; in the sixth aspect, because the control layer locates the switch with the error from the actual path when the actual path of the data packet does not pass the path consistency verification, the dynamic sampling and data forwarding process of the data stream can avoid the fault situation of the single-point switch, which is beneficial to improving the robustness of the path consistency verification scheme; in the seventh aspect, because the control layer generates a corresponding flow vector for any data flow and configures different feature matrices for each switch, the switches in the data layer can update the information labels in the data packets through the operation of matrix multiplication, thereby achieving the purposes of efficiently compressing path information and occupying less switch resources, and also enabling the control layer to locate the switch with an error in the data layer through the multiplication operation of an inverse matrix; in the eighth aspect, in the software defined network claimed in the present application, the functions of the control layer and the data layer are respectively and reasonably set, so that the problem of path consistency verification in a multi-protocol SDN scenario can be well solved, and the practical performance of the software defined network is improved.
Drawings
FIG. 1 is a schematic diagram of a software defined network according to the present application;
FIG. 2 is a schematic diagram of a controller in the control plane;
FIG. 3 is a schematic diagram of a switch in the data plane;
fig. 4 is a schematic diagram of a data forwarding process when a data flow passes through each switch of a data plane;
FIG. 5 is a flow chart of a network control method for a software defined network in the present application;
FIG. 6 is a flow chart of configuring an ideal transmission path;
FIG. 7 is a flow chart of assigning one or more desired paths among ideal transmission paths;
FIG. 8 is a flow chart for performing path consistency verification;
fig. 9 is a flowchart of a data forwarding method for a software-defined network according to the present application.
Detailed Description
The present invention will be described in further detail with reference to the following detailed description and accompanying drawings. Wherein like elements in different embodiments are numbered with like associated elements. In the following description, numerous details are set forth in order to provide a better understanding of the present application. However, those skilled in the art will readily recognize that some of the features may be omitted or replaced with other elements, materials, methods in different instances. In some instances, certain operations related to the present application have not been shown or described in detail in order to avoid obscuring the core of the present application from excessive description, and it is not necessary for those skilled in the art to describe these operations in detail, so that they may be fully understood from the description in the specification and the general knowledge in the art.
Furthermore, the features, operations, or characteristics described in the specification may be combined in any suitable manner to form various embodiments. Also, the various steps or actions in the method descriptions may be transposed or transposed in order, as will be apparent to one of ordinary skill in the art. Thus, the various sequences in the specification and drawings are for the purpose of describing certain embodiments only and are not intended to imply a required sequence unless otherwise indicated where such sequence must be followed.
The numbering of the components as such, e.g., "first", "second", etc., is used herein only to distinguish the objects as described, and does not have any sequential or technical meaning. The term "connected" and "coupled" when used in this application, unless otherwise indicated, includes both direct and indirect connections (couplings).
The first embodiment,
Referring to fig. 1, the present application discloses a software defined network, which includes a control plane and a data plane, wherein the control plane is mainly used for controlling a data forwarding task in the network, and the data plane is used for executing the data forwarding task in the network.
In this embodiment, a control plane of a Software Defined Network (SDN) may include a controller 1, where the controller 1 is in communication connection with a data plane, and controls a data forwarding task of any data flow on the data plane. The data plane of the software-defined network may be constructed by switches, that is, the data plane includes a plurality of switches (e.g., switch A, B, C, D, E, F, G) in a topological connection relationship, and each switch is in communication connection with the controller 1 of the control plane, and each switch of the data plane receives configuration information generated by the controller 1 of the control plane, and controls a data forwarding task of any data flow in the data plane according to the configuration information.
In practical applications, a software defined network (SND) includes not only a control plane and a data plane, but also an application plane, such that the data plane, the control plane, and the application plane form a network architecture from bottom to top (from south to north). The data layer is composed of network general hardware such as a switch, and the network devices are connected through SDN data channels formed by different rules; the control layer comprises a controller which is logically as a center, grasps the global network information and is responsible for controlling various forwarding rules; the application layer contains various SDN-based network applications, and users can program and deploy new applications without concern for underlying details. The SDN interface has openness, a controller is used as a logic center, a southbound interface is responsible for communicating with a data layer, a northbound interface is responsible for communicating with an application layer, and an east-west interface is responsible for communicating among multiple controllers. The most prevalent southbound interface CDPI employs the OpenFlow protocol. The most basic characteristic of OpenFlow is that forwarding rules are matched based on a Flow concept, each switch maintains a Flow Table (Flow Table), forwarding is performed according to the forwarding rules in the Flow Table, and establishment, maintenance and issuing of the Flow Table are completed by a controller. And aiming at the northbound interface, the application program calls various required network resources through the programming of the northbound interface, so that the rapid configuration and deployment of the network are realized. The east-west interface enables the controller to have expandability and provides technical support for load balancing and performance improvement.
It should be noted that, since the present application focuses on the communication relationship between the control layer and the data layer in the SDN, and does not focus on the function of the application layer, the structural introduction and the functional description of the application layer are not performed here, and a user may add the application layer to the software-defined network in this embodiment according to actual needs and deploy an application on the application layer.
In this embodiment, referring to fig. 2 and 3, the controller 1 in the control plane may include an initialization module 11, a topology management module 12, a routing decision module 13, a sampling control module 14, a path allocation module 15, a verification module 16, and an error location module 17, which are connected by a control bus. Any switch (denoted by reference numeral 2) in the data plane includes a configuration information acquisition module 21, a dynamic sampling module 22, a tag update module 23, a data forwarding module 24, and a tag reporting module 25, which are connected by a data bus.
In this embodiment, a control bus in the controller 1 is in communication connection with each module in the switch 2, and signal interaction between each module of the controller 1 and each module of the switch 2 is realized through the control bus; the data bus may transmit data streams or data packets, which are processed by the modules in the switch 2 during their passage through the data bus.
Next, the functions of the initialization module 11, the topology management module 12, the route decision module 13, the sampling control module 14, the path allocation module 15, the verification module 16 and the error location module 17 will be described separately with reference to fig. 2.
The initialization module 11 is configured to generate a flow vector corresponding to any data flow entering the data plane, and store the flow vector, where the flow vector is used to identify uniqueness of the data flow, for example, p ═ v0, v1 is used to identify the flow vector, and the parameters v0 and v1 represent two integer values; the initialization module 11 is further configured to configure different feature matrices for each switch in the data plane, and issue the feature matrices to the corresponding switches, where the feature matrices are used to identify the uniqueness of the corresponding switches, for example, 2 × 2 dimensional reversible matrices are used to identify the switch 2.
The topology management module 12 is configured to obtain topology information of a data plane in the software defined network, where the topology information includes a topology connection relationship between switches that construct the data plane.
The route decision module 13 is configured to determine a plurality of switches from the topology information acquired by the topology management module 12 according to a preset route decision mechanism, configure a corresponding flow table rule for each switch, and place the flow table rule below the corresponding switch. The routing decision mechanism comprises the step of transmitting data by adopting a shortest path, and the flow table rule comprises a matching action of forwarding the data to the next switch. In addition, the routing decision module 13 is further configured to configure, by using the flow table rule, an ideal transmission path forming that the data flow is to pass through the data plane, for example, for a data flow K used for U1 to reach a user U2, the ideal transmission path of the data flow K may be configured to be (a, B, C, D, E, F, G), and a flag A, B, C, D, E, F, G indicates a switch sequence through which the data sequentially passes.
The sampling control module 14 is configured to randomly determine a switch from the switches included in the ideal transmission path by using a preset dynamic sampling mechanism, and use the switch as a switch for sampling a data stream; the sampling control module 14 is further configured to configure a dynamic sampling time suitable for the data size for the data stream by using a dynamic sampling mechanism, where the dynamic sampling time is any one of a fixed sampling duration, a linear incremental sampling duration, and a multiplicative incremental sampling duration. The dynamic sampling mechanism comprises a switch for randomly determining to sample the data flow and the dynamic sampling time of the switch, and sending the selection information of the sampled switch and the time information of the dynamic sampling time to the switch in the data layer; the data stream, after being sampled, forms a plurality of data packets. Specifically, the sampling control module 14 randomly calculates the sampling probability of each switch included in the ideal transmission path by using a preset probability distribution method (such as normal uniform distribution), and selects the switch corresponding to the maximum sampling probability and uses the switch as the switch for sampling the data stream; if the sum of the sampling probabilities of the switches is zero, no sampled switch is assigned to the data flow.
It should be noted that the switch of the sampling determined by the sampling control module 14 is used to sample the data stream into a plurality of data packets matching the dynamic sampling time, and insert an information tag into each of the data packets. The information tag includes sampling information formed by the switch that samples, path information formed by the switches that the data packet sequentially passes through, and report information formed by the switch that sends the data packet.
The path allocating module 15 is configured to allocate one or more desired paths among the ideal transmission paths according to the dynamic sampling mechanism of the sampling control module 14. Specifically, if all the switches included in the ideal transmission path are IP protocol type switches, the path allocating module 15 allocates the sampled switch and the switches distributed thereafter as an expected path; if a plurality of switches in each switch included in the ideal transmission path are IP protocol type switches and the remaining switches are ICN protocol type switches, the path allocating module 15 allocates the sampled switch and each switch distributed thereafter, the sampled switch and any one switch in the ICN protocol type after and each switch before, as an expected path.
The verification module 16 is configured to obtain an actual path of each data packet through the data plane, and perform path consistency verification on the actual path by using the expected path. Specifically, for each data packet, the verification module 16 obtains an information tag inserted in the data packet, analyzes the sampling information, the path information and the report information included in the information tag, and obtains an actual path of the data packet through the data layer according to an analysis result; the verification module 16 calculates to obtain a first vector corresponding to the actual path by using the feature matrices corresponding to the switches in the actual path; the verification module 16 calculates a second vector corresponding to each expected path by using the feature matrix corresponding to each switch in each expected path, and constructs a vector set from the second vectors corresponding to each expected path; the verification module 16 determines whether the first vector belongs to the vector set, if so, it is determined that the actual path passes the path consistency verification, and if not, it is determined that the actual path does not pass the path consistency verification.
The error locating module 17 is configured to locate an error switch from the actual path of the data packet when the actual path fails the path consistency verification. Specifically, when it is determined that the actual path fails the path consistency verification, the error location module 17 performs inverse matrix multiplication according to the flow vector corresponding to the data flow where the data packet is located and each feature matrix involved in calculating the first vector, selects a feature matrix that causes the operation result not to be an integer, and locates the switch corresponding to the feature matrix as the wrong switch in the actual path.
Next, the functions of the configuration information obtaining module 21, the dynamic sampling module 22, the tag updating module 23, the data forwarding module 24, and the tag reporting module 25 will be described with reference to fig. 3.
The configuration information obtaining module 21 is configured to obtain configuration information generated by a control plane of the software defined network; the configuration information includes a flow vector corresponding to any data flow on a data plane of the software defined network, a flow table rule corresponding to each switch included in the ideal transmission path, and a feature matrix corresponding to each switch, and is determined as a sampled switch and a dynamic sampling time of the switch.
The dynamic sampling module 22 is configured to determine, according to the configuration information, whether a switch through which the data stream is to pass (i.e., a current switch) is a sampled switch, and if the switch is not the sampled switch, start the data forwarding module 24 to forward the data stream to a next switch according to a flow table rule corresponding to the switch; if the switch is a sampled switch, the sampled switch is used to sample the data stream into a plurality of data packets matched with the dynamic sampling time, and an information tag is inserted into each data packet, and the data forwarding module 24 is started to forward each data packet to the next switch according to the flow table rule corresponding to the switch. The information tag includes sampling information formed by the switch that samples, path information formed by the switches that the data packet sequentially passes through, and report information formed by the switch that sends the data packet.
The label updating module 23 is configured to, when receiving each data packet forwarded by the previous switch, perform matrix multiplication operation according to a flow vector corresponding to a data flow in which the data packet is located and a feature matrix of the switch, and update path information in an information label in the data packet by using an operation result. In addition, the label updating module 23 is further configured to, when the switch is the last switch in the forwarding process of each packet, use the switch as an egress switch to send out the packet, and update the reporting information in the information label in the packet by using the last switch.
The data forwarding module 24 is configured to forward the data packet after the tag information is updated by the tag updating module 23 to the next switch according to the flow table rule in the configuration information. In addition, the data forwarding module 24 is further configured to forward the data flow that is not sampled to the next switch according to the flow table rule in the configuration information.
The tag reporting module 25 is configured to report the information tag in each data packet to the control plane of the software defined network, so that the verification module 16 in the control plane performs path consistency verification on the actual path of the data packet passing through the data plane according to the reported information tag. Specifically, the tag reporting module 25 reports the finally updated information tag in the data packet to the verification module in the control plane of the software defined network.
In this embodiment, the controller 1 in the control plane can control the data forwarding task of any data flow in the data plane through a network control method, and the network control method here will be specifically described in embodiment two. The switch 2 in the data plane can perform the data forwarding task of the data flow through a data forwarding method, and the data forwarding method here will be specifically described in the third embodiment.
Example II,
Referring to fig. 5, on the basis of the above-mentioned software-defined network, the present embodiment discloses a network control method for a software-defined network, which mainly includes steps S110 to S140, which are described below.
It should be noted that the software defined network in this embodiment includes a control plane and a data plane. The control plane is used for controlling a data forwarding task in a network, and the controller 1 therein includes an initialization module 11, a topology management module 12, a route decision module 13, a sampling control module 14, a path allocation module 15, a verification module 16, and an error location module 17, and as for a specific structure of the controller 1, see fig. 2. The data plane is used to execute a data forwarding task in a network, and any switch 2 in the data plane includes a configuration information obtaining module 21, a dynamic sampling module 22, a tag updating module 23, a data forwarding module 24, and a tag reporting module 25, and as for a specific structure of the switch 2, see fig. 3.
In step S110, the topology management module 12 in the controller 1 obtains topology information of a data plane in the software-defined network, where the topology information includes a topology connection relationship between switches constructing the data plane, such as the topology information formed by the switch A, B, C, D, E, F, G in fig. 1.
In step S120, the route decision module 13 in the controller 1 configures an ideal transmission path for any data flow (for example, the data flow K illustrated in fig. 4) on the data plane according to the topology information, where the ideal transmission path is a data channel formed by sequentially connecting a plurality of switches.
For example, as shown in fig. 4, for a data stream K that is used by U1 and reaches user U2, the routing decision module 13 may configure the ideal transmission path of the data stream K to be (a, B, C, D, E, F, G), so as to restrict the data stream K from being transmitted in sequence by the switch A, B, C, D, E, F, G.
In step S130, the path allocating module 15 in the controller 1 allocates one or more desired paths in the ideal transmission path according to a preset dynamic sampling mechanism. The dynamic sampling mechanism herein includes randomly determining a switch that samples a data stream and a dynamic sampling time for the switch, where the data stream forms a plurality of data packets after being sampled.
In step S140, the verification module 16 in the controller 1 obtains an actual path of each data packet passing through the data plane from the data plane, performs path consistency verification on the actual path by using the expected path, and locates an error switch from the actual path when the path consistency verification fails.
In this embodiment, referring to fig. 6, the step S120 is mainly a technical means for configuring an ideal transmission path, and may include specific steps S121 to S124, which are respectively described as follows.
In step S121, for any data flow on the data plane (such as the data flow K in fig. 4), the initialization module 21 in the controller 1 generates a flow vector corresponding to the data flow, where the flow vector is used to identify the uniqueness of the data flow.
For example, for the data stream K in fig. 4, the stream vector corresponding to the data stream K is identified by p ═ (v0, v 1).
In step S122, the route decision module 13 in the controller 1 determines a plurality of switches from the topology information according to a preset route decision mechanism, and configures a corresponding flow table rule for each switch.
It should be noted that, the routing decision mechanism includes transmitting data by using the shortest path, and the flow table rule includes a matching action for forwarding the data to the next switch.
For example, in fig. 4, the routing decision module 13 selects a switch A, B, C, D, E, F, G from a plurality of switches included in the topology information, and configures a corresponding flow table rule for each switch, so that switch B can forward the data received from switch a to switch C according to the corresponding flow table rule.
It should be noted that the flow table rule is actually a matching action table, which means that if an accepted packet meets a certain condition, a corresponding action is executed, and the executed action includes forwarding to which interface, discarding the packet, and the like.
In step S123, the route decision module 13 in the controller 1 configures, by using the flow table rule, an ideal transmission path through which the data flow is to pass through the data plane.
For example, for data flow K in fig. 4, the ideal transmission path configured by the routing decision module 13 is (a, B, C, D, E, F, G), so as to restrict the data flow K from being transmitted in sequence according to the order of the switch A, B, C, D, E, F, G.
In step S124, the initialization module 11 in the controller 1 configures different feature matrices for each switch included in the ideal transmission path, where the feature matrices are used to identify the uniqueness of the corresponding switch.
For example, for the switches A, B, C, D, E, F, G in fig. 4, the initialization module 11 configures different 2 x 2 dimensional invertible feature matrices for the switches, respectively. Certainly, the initialization module 11 may pre-configure different feature matrices for all switches in the data plane, and after obtaining the ideal transmission path, call the feature matrix corresponding to each switch in the ideal transmission path.
In the present embodiment, referring to fig. 7, the above step S130 relates to a technical means of allocating one or more desired paths in the ideal transmission path, which may specifically include steps S131 to S133, which are respectively described as follows.
In step S131, the route decision module 13 in the controller 1 randomly determines a switch from the switches included in the ideal transmission path by using a dynamic sampling mechanism, and uses the switch as a switch for sampling the data stream.
In a specific embodiment, the route decision module 13 randomly calculates the sampling probability of each switch included in the ideal transmission path (a, B, C, D, E, F, G) by using a preset probability distribution method; then, selecting the switch corresponding to the maximum sampling probability and using the switch as a switch for sampling the data flow K; if the sum of the sampling probabilities of the switches is zero, no sampled switch is assigned to the data flow.
For example, the predetermined probability distribution method may adopt a uniform distribution in which the distribution satisfies a-0 and b-1. When it is not possible to distinguish how different the probability that the random variable X taking values within the interval [ a, b ] takes different values is, it can be assumed that X obeys a uniform distribution over [ a, b ].
Figure BDA0002417943000000131
The switch A, B, C, D, E, F, G can be randomly generated a random number according to the above formula, thereby generating a difference in probability value.
It should be noted that the sampling switch is a switch determined to be sampling in the data plane, and is used to sample the data flow into a plurality of data packets matching the dynamic sampling time, and insert an information tag into each data packet. The information tag includes sampling information formed by the switch that samples, path information formed by the switches that the data packet sequentially passes through, and report information formed by the switch that sends the data packet. For example, the sampling information refers to which switch performs the sampling operation, the path information refers to which switch a packet (e.g., packet k in fig. 4) passes through, and the reporting information refers to which switch performs the reporting operation of the information tag.
In step S132, the sampling control module 14 in the controller 1 configures a dynamic sampling time suitable for the data size for the data stream by using a dynamic sampling mechanism. The dynamic sampling time here is any one of a fixed sampling duration, a linear incremental sampling duration, and a multiplicative incremental sampling duration.
It should be noted that the fixed sampling time period may be 5s, that is, the sampling time slice is 5 s. The linearly increasing sampling duration has a linearly increasing law, for example, the initial sampling time interval is 1 second, and each time is increased by 2 seconds, so that the time intervals of dynamic sampling are 1,3,5,7,9, and the like. The multiplicative increasing sampling time duration has a multiplicative increasing rule, for example, the initial sampling interval is 1 second, and each time is multiplicatively increased by 2 seconds, so that the time interval of dynamic sampling is 1,2,4,8,16, etc.
It should be noted that, when the sampling control module 14 performs dynamic sampling, the sampling times of the size stream data amount and the subsequent path consistency verification times can be reasonably adjusted. For example, if the big stream is sampled 10 times, the path corresponding to the big stream is detected 10 times when the path consistency verification is performed; and the small flow is sampled 1 time, the path corresponding to the small flow is only detected 1 time when the path consistency is verified. Therefore, the method can ensure that the fairness and the high efficiency are achieved as much as possible when the path consistency verification is carried out on the large and small flow data quantity.
In step S133, the path allocating module 15 in the controller 1 allocates paths to the sampled switches and the switches distributed thereafter in the ideal transmission path, so as to obtain one or more expected paths. The desired path is used to constrain the transmission path for each data packet formed after the data stream is sampled.
In a specific embodiment, if each switch included in the ideal transmission path is an IP protocol type switch, the path allocating module 15 allocates the sampled switch and each switch distributed thereafter as an expected path; for example, if the switches involved in the ideal transmission paths (a, B, C, D, E, F, G) are all switches of the IP protocol type, and switch B is determined to be the sampled switch, the path allocating module 15 allocates a desired path, i.e., the desired path (B, C, D, E, F, G).
In one embodiment, if a plurality of switches in each switch included in the ideal transmission path are IP protocol type switches and the remaining switches are ICN protocol type switches, the switch to be sampled and the switches distributed thereafter, the switch to be sampled and the switch to be followed and any one ICN protocol type switch and the switches to be followed are respectively allocated as a desired path. For example, if the switches involved in the ideal transmission paths (a, B, C, D, E, F, G) have multiple protocol types, the switch D, F is an ICN protocol type switch (the ICN protocol type switch may buffer forwarded packets), the switch A, B, C, E, G is an IP protocol type switch (the IP protocol type switch may not buffer packets), the path allocating module 15 allocates three expected paths, which are the expected paths (B, C, D, E, F, G), the expected paths (B, C, D), and the expected paths (B, C, D, E, F).
It should be noted that the path allocation module 15 may store the expected paths for subsequent invocation, for example, using multiValueMap.
It should be noted that the IP Protocol type switch mentioned in the present application refers to a data exchange device that samples a TCP/IP (Transmission Control Protocol/Internet Protocol) Protocol architecture; an ICN protocol type switch is a data switching device that samples an ICN (Information centric networking) protocol architecture.
In this embodiment, referring to fig. 8, the step S140 mentioned above relates to the technical means of path consistency verification and locating the faulty switch, which may specifically include steps S141 to S148, which are respectively described as follows.
In step S141, the verification module 16 in the controller 1 obtains, for each data packet, an information tag inserted in the data packet, analyzes the sampling information, the path information, and the report information included in the information tag, and obtains an actual path of the data packet through the data layer according to an analysis result.
It should be noted that, referring to fig. 1 and fig. 4, after the controller 1 configures an ideal transmission path and a sampling switch for the data flow K on the data plane, the data flow K is sampled into a plurality of data packets K at the sampling switch, and then the data packets K continue to perform the forwarding operation of data along the desired path until being sent out by the last switch (i.e., the egress switch) on the desired path. However, due to the failure of data forwarding in individual switches, the data packet k may not be transmitted according to the expected path, and the actual transmission path of the data packet k is found.
For example, if the switches on the ideal transmission paths (a, B, C, D, E, F, G) are all switches of IP protocol type, each scheduling path of the same packet k is the same, that is, the actual path of each transmission of the same packet k is (a, B, C, D, E, F, G).
For example, if the ideal transmission path (a, B, C, D, E, F, G) contains switches of the IP protocol type and switches of the ICN protocol type. Since the ICN protocol type switch will buffer the forwarded data packet, each scheduling path for the same data packet k may be different. If switch D, F is an ICN protocol type switch and the remainder are IP protocol type switches, then for the same packet k, its actual path may be (a, B, C, D, E, F, G), (a, B, C, D, E, F), (a, B, C, D).
In step S142, the verification module 16 in the controller 1 calculates a first vector corresponding to the actual path by using the feature matrices corresponding to each switch in the actual path.
For example, assuming that the flow vector corresponding to the data flow K is p, the switches through which the data packet K after being sampled passes are B, C, D, E, F, G, and the feature matrices corresponding to the switches are b, c, d, e, f, and g, respectively, then the first vector R ═ p ×, b ×, c ×, d ×, e ×, f ×, g corresponding to the actual path of the data packet K through the data plane represents the multiplication of the matrices.
In step S143, the verification module 16 in the controller 1 calculates second vectors corresponding to each expected path by using the feature matrices corresponding to each switch in each expected path, and constructs a vector set from the second vectors corresponding to each expected path.
For example, in the case where switch D, F is an ICN protocol type and switch A, B, C, E, G is an IP protocol type switch, the expected paths of packet k are expected paths (B, C, D, E, F, G), expected paths (B, C, D), and expected paths (B, C, D, E, F), respectively. The second vector T1 ═ p × B × C × D × E × F × G corresponding to the desired path (B, C, D), the second vector T2 ═ p B × C × D corresponding to the desired path (B, C, D), and the second vector T3 ═ p × B × E × F corresponding to the desired path (B, C, D, E, F). Then, a set of vectors is formed by the second vectors corresponding to the desired paths, respectively { T1, T2, T3 }.
In step S144, the verification module 16 in the controller 1 determines whether the first vector belongs to the vector set, and if so, the process goes to step S145.
In step S145, the verification module 16 in the controller 1 confirms that the actual path of the packet k passes the path consistency verification.
In step S146, the verification module 16 in the controller 1 confirms that the actual path of the data packet k fails the path consistency verification.
In step S147, when it is determined that the actual path of the data packet k does not pass the path consistency verification, the verification module 16 in the controller 1 performs inverse matrix multiplication according to the flow vector corresponding to the data flow in which the data packet is located and each feature matrix involved in calculating the first vector, selects a feature matrix that causes the operation result not to be an integer, and positions the switch corresponding to the feature matrix as the switch with an error in the actual path.
For example, assume that packet k has a flow vector p for the data stream; the expected path of packet k is (B, C, D, E), and the corresponding second vector T ═ p × B × C × D × E; the actual path of packet k is (B, F, D, E), and the corresponding first vector R ═ p × B × F × D × E; the inverse matrices of the feature matrices a, b, c, d, e, and f are a1, b1, c1, d1, e1, and f1, respectively, and satisfy the multiplication law a1 ═ 1, b1 ═ 1.
Performing a first multiplication operation of an inverse matrix:
M=p*b*c*d*e*e1=p*b*c*d*1=p*b*c*d;
N=p*b*f*d*e*e1=p*b*f*d*1=p*b*f*d;
at this time, M! N, and M and N are integers, no faulty switch is located.
And performing a second multiplication operation of the inverse matrix:
M=p*b*c*d*d1=p*b*c*1=p*b*c;
N=p*b*f*d*d1=p*b*f*1=p*b*f;
at this time, M! N, and M and N are integers, no faulty switch is located.
And performing a third multiplication operation of the inverse matrix:
M=p*b*c*c1=p*b*1=p*b;
N=p*b*f*c1=p*b*f*c1=p*b*f*c1;
at this time, M! And (4) terminating the judgment and positioning the switch with the error as the switch B corresponding to the feature matrix B, wherein N is no longer an integer.
Those skilled in the art will appreciate that after the validation module 16 in the controller 1 locates the faulty switch, the faulty switch can be avoided while configuring the desired transmission path for other data streams.
Example III,
Referring to fig. 9, based on the software-defined network disclosed in the first embodiment and the network control method disclosed in the second embodiment, the third embodiment discloses a data forwarding method for the software-defined network, where the data forwarding method includes steps S210-S280, which are described below.
It should be noted that the software defined network in this embodiment includes a control plane and a data plane. The control plane is used for controlling a data forwarding task in a network, and the controller 1 therein includes an initialization module 11, a topology management module 12, a route decision module 13, a sampling control module 14, a path allocation module 15, a verification module 16, and an error location module 17, and as for a specific structure of the controller 1, see fig. 2. The data plane is used to execute a data forwarding task in a network, and any switch 2 in the data plane includes a configuration information obtaining module 21, a dynamic sampling module 22, a tag updating module 23, a data forwarding module 24, and a tag reporting module 25, and as for a specific structure of the switch 2, see fig. 3.
In step S210, the configuration information obtaining module 21 in the switch 2 obtains the configuration information generated by the control plane of the software-defined network according to the network control method in the second embodiment.
It should be noted that the configuration information herein includes a flow vector (for example, a flow vector p) corresponding to any data flow on the data plane of the software-defined network, a flow table rule corresponding to each switch included in the ideal transmission path, and a feature matrix (for example, feature matrices a, B, c, d, e, f, and g corresponding to each switch A, B, C, D, E, F, G), and a switch determined as a sample (for example, a switch B) and a dynamic sampling time of the switch.
In step S220, the dynamic sampling module 22 in the switch 2 determines whether the switch through which the data stream will pass (i.e., the current switch) is the sampled switch, if so, step S230 is performed, otherwise, step S270 is performed.
In step S230, if the dynamic sampling module 22 in the switch 2 determines that the current switch is a sampled switch, the sampled switch is used to sample the data stream into a plurality of data packets matching the dynamic sampling time, and an information tag is inserted into each data packet.
For example, in fig. 4, if switch B is a sampled switch, the dynamic sampling module in the switch may sample data flow K into a plurality of data packets K matching the dynamic sampling time, and insert an information tag into each data packet K.
It should be noted that the information tag here includes sampling information formed by the switches that have sampled, path information formed by the switches that have passed through the data packet in sequence, and report information formed by the switches that have sent the data packet.
In step S240, the dynamic sampling module 22 in the switch 2 generates trigger information, and the data forwarding module 24 is started to forward each data packet to the next switch according to the flow table rule corresponding to the switch 2.
Step S250, when each data packet is forwarded to the next switch, if the switch 2 is the next switch and receives the data packet forwarded from the previous switch, the tag updating module 23 in the switch 2 performs matrix multiplication operation according to the flow vector corresponding to the data flow where the data packet is located and the feature matrix of the switch 2, and updates the path information in the information tag in the data packet by using the operation result.
Note that, in fig. 4, it is assumed that the flow vector p of the data flow K is [7,8], and the feature matrix c of the switch 2 is [7, 4; 6,5], the modulus p is the absolute value of the characteristic matrix of the switch 2, i.e. p ═ 7 × 5-4 × 6| ═ 11. Then, the operation result may be obtained by matrix multiplication, the operation result being
(j*c)%p=[7*7+8*6,7*4+8*5]%11=[97,68]%11=[2,3];
The result of this operation can be used to update the path information in the tag information in packet k.
It should be noted that, referring to fig. 4, if a data packet K passes through a switch C and then passes through a switch D, a flow vector p of the data flow K performs a matrix multiplication operation with a feature matrix of the switch C, and then performs a matrix multiplication operation with a feature matrix of the switch D.
In step S260, when each data packet is forwarded to the last switch, if the switch 2 is the last switch, the tag updating module 23 in the switch 2 uses itself as the outgoing switch to send out the data packet (for example, send out the data packet k to the user U2 in fig. 4), and updates the reporting information in the information tag in the data packet by using the last switch.
It should be noted that, if the switch 2 is the last switch, the tag reporting module 25 in the switch 2 reports the information tag (i.e., the finally updated information tag) in each data packet to the control plane of the software defined network, so that the verification module 16 in the control plane performs path consistency verification on the actual path of the data packet through the data plane according to the reported information tag.
In step S270, if the dynamic sampling module 22 in the switch 2 determines that the current switch is not a sampled switch, the dynamic sampling module 22 generates a trigger message to start the data forwarding module 24 to forward the data stream to the next switch according to the flow table rule corresponding to the switch 2.
Step S280, after the switch 2 forwards the data stream to the next switch, the next switch acquires the configuration information generated by the control plane, and continuously determines whether the next switch is a sampling switch. This process may refer to step S210, and will not be described herein.
Those skilled in the art will appreciate that all or part of the functions of the various methods in the above embodiments may be implemented by hardware, or may be implemented by computer programs. When all or part of the functions of the above embodiments are implemented by a computer program, the program may be stored in a computer-readable storage medium, and the storage medium may include: a read only memory, a random access memory, a magnetic disk, an optical disk, a hard disk, etc., and the program is executed by a computer to realize the above functions. For example, the program may be stored in a memory of the device, and when the program in the memory is executed by the processor, all or part of the functions described above may be implemented. In addition, when all or part of the functions in the above embodiments are implemented by a computer program, the program may be stored in a storage medium such as a server, another computer, a magnetic disk, an optical disk, a flash disk, or a removable hard disk, and may be downloaded or copied to a memory of a local device, or may be version-updated in a system of the local device, and when the program in the memory is executed by a processor, all or part of the functions in the above embodiments may be implemented.
The present invention has been described in terms of specific examples, which are provided to aid understanding of the invention and are not intended to be limiting. For a person skilled in the art to which the invention pertains, several simple deductions, modifications or substitutions may be made according to the idea of the invention.

Claims (10)

1. A network control method for a software defined network, the software defined network comprising a control plane and a data plane, the control plane being used for controlling data forwarding tasks in the network, the data plane being used for executing data forwarding tasks in the network; the network control method is characterized by comprising the following steps:
acquiring topology information of a data layer in the software defined network, wherein the topology information comprises a topology connection relation between all switches constructing the data layer;
configuring an ideal transmission path for any data flow on the data plane according to the topology information, wherein the ideal transmission path is a data channel formed by sequentially connecting a plurality of switches;
allocating one or more expected paths in the ideal transmission path according to a preset dynamic sampling mechanism; the dynamic sampling mechanism comprises a switch for randomly determining to sample the data flow and dynamic sampling time of the switch, wherein the data flow forms a plurality of data packets after being sampled;
and acquiring an actual path of each data packet passing through the data layer, performing path consistency verification on the actual path by using the expected path, and positioning an error switch from the actual path when the path consistency verification is not passed.
2. The network control method of claim 1, wherein the configuring an ideal transmission path for any data flow on the data plane according to the topology information comprises:
generating a flow vector corresponding to any data flow on the data layer, wherein the flow vector is used for identifying the uniqueness of the data flow;
determining a plurality of switches from the topology information according to a preset routing decision mechanism, configuring a corresponding flow table rule for each switch, and configuring by using the flow table rule to form an ideal transmission path of the data flow to pass through the data layer; the routing decision mechanism comprises the step of transmitting data by adopting a shortest path, and the flow table rule comprises a matching action of forwarding the data to the next switch;
and configuring different feature matrixes for each switch included in the ideal transmission path respectively, wherein the feature matrixes are used for identifying the uniqueness of the corresponding switch.
3. The network control method according to claim 2, wherein said allocating one or more desired paths among said ideal transmission paths according to a preset dynamic sampling mechanism comprises:
randomly determining a switch from the switches included in the ideal transmission path by using the dynamic sampling mechanism, and using the switch as a switch for sampling the data stream;
configuring dynamic sampling time suitable for the data size for the data stream by using the dynamic sampling mechanism, wherein the dynamic sampling time is any one of fixed sampling duration, linear incremental sampling duration and multiplicative incremental sampling duration;
performing path distribution on the sampled switches and the switches distributed afterwards in the ideal transmission path to obtain one or more expected paths; the expected path is used for carrying out transmission path constraint on each data packet formed after the data stream is sampled;
wherein the sampling switch is used for sampling the data flow into a plurality of data packets matched with the dynamic sampling time, and inserting an information tag in each data packet; the information label comprises sampling information formed according to the sampled switches, path information formed according to the switches through which the data packet sequentially passes, and reporting information formed by the switches which send out the data packet.
4. The network control method according to claim 3, wherein said randomly determining a switch from among the switches included in the ideal transmission path using the dynamic sampling mechanism as a switch for sampling the data stream comprises:
for each switch included in the ideal transmission path, randomly calculating the sampling probability of each switch by using a preset probability distribution method;
selecting the switch corresponding to the maximum sampling probability as the switch for sampling the data stream; and if the sum of the sampling probabilities of all the switches is zero, not allocating the sampled switch to the data stream.
5. The network control method according to claim 3, wherein the performing path allocation on the sampled switch and the switches distributed thereafter in the ideal transmission path to obtain one or more desired paths comprises:
if all the switches included in the ideal transmission path are IP protocol type switches, distributing the sampled switches and all the switches distributed afterwards into one expected path;
if a plurality of switches in each switch included in the ideal transmission path are IP protocol type switches and the rest of switches are ICN protocol type switches, the sampled switch and each switch distributed later, the sampled switch and any one ICN protocol type switch later and each switch before are respectively allocated as the expected path.
6. The network control method of claim 5, wherein the obtaining an actual path of each of the packets through the data plane, performing path consistency verification on the actual path using the expected path, and locating a faulty switch from the actual path when the path consistency verification is not passed comprises:
for each data packet, acquiring an information tag inserted in the data packet, analyzing sampling information, path information and reporting information contained in the information tag, and obtaining an actual path of the data packet passing through the data layer according to an analysis result;
calculating to obtain a first vector corresponding to the actual path by using the feature matrix corresponding to each switch in the actual path;
calculating to obtain a second vector corresponding to each expected path by using the feature matrix corresponding to each switch in each expected path, and constructing a vector set by the second vectors corresponding to each expected path;
judging whether the first vector belongs to the vector set, if so, confirming that the actual path passes path consistency verification, and if not, confirming that the actual path does not pass path consistency verification;
and when the actual path does not pass the path consistency verification, performing inverse matrix multiplication according to the flow vector corresponding to the data flow where the data packet is located and each feature matrix participating in calculation of the first vector, selecting a feature matrix causing the operation result not to be an integer, and positioning the switch corresponding to the feature matrix as the wrong switch in the actual path.
7. A data forwarding method for a software defined network, comprising:
the network control method according to any one of claims 2-6, acquiring configuration information generated by a control plane of the software defined network; the configuration information includes a flow vector corresponding to any data flow on the data layer of the software defined network, a flow table rule corresponding to each switch and a feature matrix corresponding to each switch in the ideal transmission path, and the configuration information is determined as a sampled switch and the dynamic sampling time of the switch;
judging whether the switch through which the data flow is going to pass is a sampled switch or not, if not, forwarding the data flow to the next switch according to the flow table rule corresponding to the switch; if the switch is a sampling switch, sampling the data flow into a plurality of data packets matched with the dynamic sampling time by using the sampling switch, inserting an information tag into each data packet, and forwarding each data packet to the next switch according to a flow table rule corresponding to the switch; the information label comprises sampling information formed according to the sampled switches, path information formed according to the switches through which the data packet sequentially passes, and reporting information formed by the switches which send out the data packet;
and reporting the information tag in each data packet to a control layer of the software defined network, so that the control layer performs path consistency verification on the actual path of the data packet passing through the data layer according to the reported information tag.
8. The data forwarding method of claim 7 wherein,
when each data packet is forwarded to the next switch, performing matrix multiplication operation according to a flow vector corresponding to the data flow where the data packet is located and a feature matrix of the next switch, and updating path information in an information label in the data packet by using an operation result;
when each data packet is forwarded to the last switch, the last switch is used as an outlet switch to send out the data packet, and the last switch is used for updating the reporting information in the information label in the data packet;
and reporting the finally updated information tag in the data packet to a control layer of the software defined network.
9. A software defined network comprising a control plane and a data plane, characterized in that,
the data layer comprises a plurality of switches in topological connection relation, wherein each switch is in communication connection with the control layer;
the control plane is used for controlling the data forwarding task of any data flow on the data plane according to the network control method of any one of claims 1 to 6;
the data plane is used for executing the data forwarding tasks of the data flow according to the data forwarding method of any one of claims 7-8.
10. A computer-readable storage medium, characterized by comprising a program executable by a processor to implement the network control method of any one of claims 1-6 or to implement the data forwarding method of any one of claims 7-8.
CN202010196872.5A 2020-03-19 2020-03-19 Network control method, data forwarding method and software defined network Active CN111464340B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010196872.5A CN111464340B (en) 2020-03-19 2020-03-19 Network control method, data forwarding method and software defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010196872.5A CN111464340B (en) 2020-03-19 2020-03-19 Network control method, data forwarding method and software defined network

Publications (2)

Publication Number Publication Date
CN111464340A true CN111464340A (en) 2020-07-28
CN111464340B CN111464340B (en) 2022-10-18

Family

ID=71680844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010196872.5A Active CN111464340B (en) 2020-03-19 2020-03-19 Network control method, data forwarding method and software defined network

Country Status (1)

Country Link
CN (1) CN111464340B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595793A (en) * 2021-07-30 2021-11-02 桂林电子科技大学 SDN network policy consistency segmentation verification method based on FPGA
WO2023115373A1 (en) * 2021-12-22 2023-06-29 北京大学深圳研究生院 Heterogeneous convergence network and path consistency verification method therefor, and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647411B1 (en) * 2001-02-26 2010-01-12 Symantec Corporation System and method for controlling distribution of network communications
CN105933232A (en) * 2016-03-29 2016-09-07 东北大学 Multi-path transmission control terminal and method for supporting multi-service data transmission
CN108768769A (en) * 2018-05-17 2018-11-06 南方科技大学 The detection method of control plane and data surface consistency, detecting system and interchanger
CN109039959A (en) * 2018-07-27 2018-12-18 广东工业大学 A kind of the consistency judgment method and relevant apparatus of SDN network rule
CN110225008A (en) * 2019-05-27 2019-09-10 四川大学 SDN network state consistency verification method under a kind of cloud environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647411B1 (en) * 2001-02-26 2010-01-12 Symantec Corporation System and method for controlling distribution of network communications
CN105933232A (en) * 2016-03-29 2016-09-07 东北大学 Multi-path transmission control terminal and method for supporting multi-service data transmission
CN108768769A (en) * 2018-05-17 2018-11-06 南方科技大学 The detection method of control plane and data surface consistency, detecting system and interchanger
CN109039959A (en) * 2018-07-27 2018-12-18 广东工业大学 A kind of the consistency judgment method and relevant apparatus of SDN network rule
CN110225008A (en) * 2019-05-27 2019-09-10 四川大学 SDN network state consistency verification method under a kind of cloud environment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595793A (en) * 2021-07-30 2021-11-02 桂林电子科技大学 SDN network policy consistency segmentation verification method based on FPGA
CN113595793B (en) * 2021-07-30 2023-11-07 桂林电子科技大学 FPGA-based SDN network policy consistency segmentation verification method
WO2023115373A1 (en) * 2021-12-22 2023-06-29 北京大学深圳研究生院 Heterogeneous convergence network and path consistency verification method therefor, and storage medium

Also Published As

Publication number Publication date
CN111464340B (en) 2022-10-18

Similar Documents

Publication Publication Date Title
US9823988B2 (en) System and method of test iteration via property chaining
Fernandez Evaluating OpenFlow controller paradigms
Ferrari et al. A scheme for real-time channel establishment in wide-area networks
CN107710693B (en) Method for establishing relationship between multiple groups of label switching paths and virtual network
CN106063195B (en) Control equipment discovery in network with independent control equipment and forwarding device
Chung et al. NS by Example
AU2014414703B2 (en) Data forwarding method, device and system in software-defined networking
CN105723657B (en) Switch, controller, system and link quality detection method
CN102640463B (en) Dynamic route branching system and dynamic route branching method
US7142518B2 (en) Monitoring communications networks
CN111464340B (en) Network control method, data forwarding method and software defined network
CN110601983A (en) Method and system for forwarding routing without sensing source of protocol
US20220150159A1 (en) Control device, switch device and methods
CN112653575A (en) Network configuration method, controller and flow guiding system
CN113992590A (en) Link load balancing method based on software defined network
Zhou et al. SDN-LIRU: A lossless and seamless method for SDN inter-domain route updates
Oh et al. RT-SDN: adaptive routing and priority ordering for software-defined real-time networking
CN108881064B (en) Message information acquisition method and message information transmission method
CN114500354A (en) Switch control method, device, control equipment and storage medium
CN105308586A (en) Real time remote desktop
CN114938374B (en) Cross-protocol load balancing method and system
CN115865848A (en) Optical data packet switching method, device and storage medium
Kataria et al. Programmable Data Plane for New IP using eXpress Data Path (XDP) in Linux
Colombo et al. Seamless Multicast: an SDN-based architecture for continuous audiovisual transport
Wójcik et al. Loop resolution mechanism for flow-aware multi-topology adaptive routing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant