SDN network maintenance method, device, electronic device and readable medium
By determining the link path and fault path in the SDN network, setting preset constraints, and judging and maintaining node equipment, the problem of poor maintenance reliability of node equipment in traditional network upgrades is solved, and accurate protection and maintenance of fault paths is achieved. .
Patent Information
- Application Number
- CN202111521670.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-13
- Publication Date
- 2025-01-03
- Estimated Expiration
- 2041-12-13
AI Technical Summary
During the upgrade process from traditional network to SDN network, the maintenance reliability of network node equipment is poor, resulting in low maintenance efficiency.
By determining the link path and fault path between node devices in the SDN network, setting preset constraints, determining whether the node device meets these conditions, and maintaining it based on the judgment results, building a node device candidate table, and selecting the largest weighted one Node equipment is maintained.
It improves the protection capability of designated fault paths, ensures the maintenance process of node equipment in a timely and accurate manner, and improves the reliability of network node equipment.
Smart Images

Figure CN114244689B_ABST
Abstract
Description
Background Art
[0002] At present, Software Defined Network (SDN) is a new computer network paradigm with the characteristics and advantages of separation of forwarding and control, open interfaces, centralized control, and open network programmability. It can solve the problems of increasing difficulty in network management and new function deployment caused by the rapid expansion of network scale and the continuous enrichment of various services in traditional IP networks. SDN networks are more applicable than traditional networks, and therefore have been recognized by many manufacturers and scholars.
[0003] In related technologies, the transition from traditional networks to SDN networks has become one of the inevitable trends in network development.
[0004] However, due to the limitations of multiple factors such as technology, economy and network stability, the upgrade from traditional networks to SDN networks cannot be completed in one go. How to maintain network nodes has become one of the key issues in network upgrades.
[0005] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present disclosure, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention
[0006] The purpose of the present disclosure is to provide a maintenance method, device, electronic device and readable medium for an SDN network, which are used to overcome the problem of poor reliability of the maintenance process of network node devices caused by the limitations and defects of related technologies at least to a certain extent.
[0007] According to a first aspect of an embodiment of the present disclosure, a maintenance method for an SDN network is provided, comprising: determining a link path between any two node devices in the SDN network; determining a preset constraint condition for the node device to protect a specified fault path; determining a specified node device among the node devices; judging whether the specified node device satisfies the preset constraint condition; and maintaining the specified node device according to the judgment result of the preset constraint condition.
[0008] In an exemplary embodiment of the present disclosure, determining whether a designated node device satisfies the preset constraint condition includes: determining whether the designated node device is on the designated fault path; if it is determined that the designated node device is not on the designated fault path, determining that the designated node device satisfies a first preset constraint condition; if it is determined that the designated node device is on the designated fault path, determining that the designated node device does not satisfy the first preset constraint condition.
[0009] In an exemplary embodiment of the present disclosure, determining whether the designated node device satisfies the preset constraint condition also includes: determining the source node device and the target node device in the designated fault path; determining the first link path between the source node device and the designated node device; determining the second link path between the target node device and the designated node device; determining whether the first link path is on the designated fault path, and determining whether the second link path is on the designated fault path; if it is determined that the first link path is not on the designated fault path, and the second link path is not on the designated fault path, then determining that the designated node device satisfies the second preset constraint condition; if it is determined that the first link path is on the designated fault path, or the second link path is on the designated fault path, then determining that the designated node device does not satisfy the second preset constraint condition.
[0010] In an exemplary embodiment of the present disclosure, maintaining the designated node device according to the judgment result of the preset constraint condition includes: writing a first identifier into a corresponding table position of the designated node device that meets the preset constraint condition; writing a second identifier into a corresponding table position of the designated node device that does not meet the preset constraint condition; constructing a node device candidate list according to the first identifier and the second identifier of all the designated fault paths; and maintaining the designated node device according to the node device candidate list.
[0011] In an exemplary embodiment of the present disclosure, maintaining the designated node device according to the node device candidate list includes: determining a weight of any designated node device according to the node device candidate list; and maintaining the designated node device according to the weight of the designated node device.
[0012] In an exemplary embodiment of the present disclosure, determining the weight of any of the designated node devices based on the node device candidate list includes: determining the first identifier and the second identifier corresponding to any of the designated node devices in the node device candidate list; and determining the weight of any of the designated node devices based on the first identifier and the second identifier.
[0013] In an exemplary embodiment of the present disclosure, maintaining the designated node device according to the weight of the designated node device includes: determining the designated node device with the largest weight in the node device candidate list; adding the designated node device with the largest weight to a maintenance list; deleting the path corresponding to the first identifier of the designated node device with the largest weight in the node device candidate list; looping to determine the designated node device with the largest weight in the node device candidate list until the node device candidate list is empty; and maintaining the designated node device according to the maintenance list.
[0014] According to a second aspect of an embodiment of the present disclosure, a maintenance device for an SDN network is provided, comprising: a determination module, configured to determine a link path between any two node devices in the SDN network; the determination module, configured to determine a preset constraint condition for the node device to protect a specified fault path; the determination module, configured to determine a specified node device among the node devices; a judgment module, configured to judge whether the specified node device satisfies the preset constraint condition; and a maintenance module, configured to maintain the specified node device according to the judgment result of the preset constraint condition.
[0015] According to a third aspect of the present disclosure, there is provided an electronic device, comprising: a memory; and a processor coupled to the memory, wherein the processor is configured to execute any one of the methods described above based on instructions stored in the memory.
[0016] According to a fourth aspect of the present disclosure, a computer-readable storage medium is provided, on which a program is stored, and when the program is executed by a processor, the method for maintaining an SDN network as described in any one of the above items is implemented.
[0017] The disclosed embodiments, by determining preset constraint conditions for node devices to protect designated fault paths, and performing maintenance on designated node devices based on the judgment results of the preset constraint conditions, can timely and accurately determine node devices that can perform protection for designated fault paths, thereby improving the reliability of maintenance of node devices.
[0018] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the specification are used to explain the principles of the present disclosure. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.
[0020] Figure 1 is a schematic diagram of an SDN network architecture in an exemplary embodiment of the present disclosure;
[0021] Figure 2 is a flow chart of another SDN network maintenance method in an exemplary embodiment of the present disclosure;
[0022] Figure 3 is a flow chart of another SDN network maintenance method in an exemplary embodiment of the present disclosure;
[0023] Figure 4 is a flow chart of another SDN network maintenance method in an exemplary embodiment of the present disclosure;
[0024] Figure 5 is a flow chart of another SDN network maintenance method in an exemplary embodiment of the present disclosure;
[0025] Figure 6 is a flow chart of another SDN network maintenance method in an exemplary embodiment of the present disclosure;
[0026] Figure 7 is a flow chart of another SDN network maintenance method in an exemplary embodiment of the present disclosure;
[0027] Figure 8 is a flow chart of another SDN network maintenance method in an exemplary embodiment of the present disclosure;
[0028] Fig. 9 is a flow chart of another SDN network maintenance method in an exemplary embodiment of the present disclosure;
[0029] Fig.10 It is a schematic diagram of an architecture of a maintenance solution for an SDN network in an exemplary embodiment of the present disclosure;
[0030] Fig.11 It is a schematic diagram of the architecture of another SDN network maintenance solution in an exemplary embodiment of the present disclosure;
[0031] Fig.12 is a block diagram of a maintenance device for an SDN network in an exemplary embodiment of the present disclosure;
[0032] Fig.13 is a block diagram of an electronic device in an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION
[0033] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as being limited to the examples set forth herein; on the contrary, these embodiments are provided so that the present disclosure will be more comprehensive and complete, and the concepts of the example embodiments are fully conveyed to those skilled in the art. The described features, structures, or characteristics may be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present disclosure. However, those skilled in the art will appreciate that the technical solutions of the present disclosure may be practiced while omitting one or more of the specific details, or other methods, components, devices, steps, etc. may be adopted. In other cases, known technical solutions are not shown or described in detail to avoid obscuring various aspects of the present disclosure.
[0034] In addition, the accompanying drawings are only schematic diagrams of the present disclosure, and the same reference numerals in the drawings represent the same or similar parts, so their repeated description will be omitted. Some of the block diagrams shown in the accompanying drawings are functional entities, which do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.
[0035] Figure 1 A schematic diagram showing an exemplary system architecture to which a positioning method or a positioning device according to an embodiment of the present invention can be applied is shown.
[0036] like Figure 1 As shown, the system architecture 100 may include one or more of terminal devices 101, 102, 103, a network 104, and a server 105. The network 104 is used to provide a medium for communication links between the terminal devices 101, 102, 103 and the server 105. The network 104 may include various connection types, such as wired, wireless communication links, or optical fiber cables, etc.
[0037] It should be understood that Figure 1 The number of terminal devices, networks and servers in the embodiment is only for illustration. According to the implementation requirements, there may be any number of terminal devices, networks and servers. For example, the server 105 may be a server cluster composed of multiple servers.
[0038] Users can use terminal devices 101, 102, 103 to interact with server 105 through network 104 to receive or send messages, etc. Terminal devices 101, 102, 103 can be various electronic devices with display screens, including but not limited to smart phones, tablet computers, portable computers, desktop computers, etc.
[0039] The server 105 may be a server that provides various services. For example, a user may use the terminal device 103 (or the terminal device 101 or 102) to obtain the positioning time period and the time threshold for each satellite search to determine the position from the server 105, and perform positioning according to the positioning time period and the time threshold for each satellite search to determine the position, calculate the number of unfinished positioning, the number of unfinished positioning includes the number of unfinished positioning within the range of the time threshold for each satellite search to determine the position, and switch the working state of the satellite positioning module according to the number of unfinished positioning, so as to avoid missing positioning information and improve positioning accuracy.
[0040] In some embodiments, the positioning method provided in the embodiments of the present invention is generally performed by the terminal 105, and accordingly, the positioning device is generally arranged in the terminal device 103 (or the terminal device 101 or 102). In other embodiments, some servers may have functions similar to those of the terminal device to perform the present disclosure. Therefore, the positioning method provided in the embodiments of the present invention is not limited to being performed in the terminal device.
[0041] The exemplary embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.
[0042] Figure 2 is a flow chart of a maintenance method of an SDN network in an exemplary embodiment of the present disclosure.
[0043] refer to Figure 2 , the maintenance methods of SDN network can include:
[0044] Step S202: determine a link path between any two node devices in the SDN network.
[0045] Step S204: determining preset constraint conditions for the node device to protect the specified fault path.
[0046] Step S206: determine a designated node device among the node devices.
[0047] Step S208: determine whether the designated node device meets the preset constraint condition.
[0048] Step S210: maintaining the designated node device according to the judgment result of the preset constraint condition.
[0049] The disclosed embodiments, by determining preset constraint conditions for node devices to protect designated fault paths, and performing maintenance on designated node devices based on the judgment results of the preset constraint conditions, can timely and accurately determine node devices that can perform protection for designated fault paths, thereby improving the reliability of maintenance of node devices.
[0050] In an exemplary embodiment of the present disclosure, the node device is a router or a switch.
[0051] Next, each step of the SDN network maintenance method is described in detail.
[0052] In an exemplary embodiment of the present disclosure, Figure 3 As shown, judging whether the designated node device meets the preset constraint condition includes:
[0053] Step S302: determine whether the designated node device is on the designated fault path.
[0054] Step S304: If it is determined that the designated node device is not on the designated fault path, it is determined that the designated node device meets a first preset constraint condition.
[0055] Step S306: If it is determined that the designated node device is on the designated fault path, it is determined that the designated node device does not satisfy the first preset constraint condition.
[0056] In an exemplary embodiment of the present disclosure, Figure 4 As shown, judging whether the designated node device satisfies the preset constraint condition further includes:
[0057] Step S402: determine the source node device and the target node device in the specified fault path.
[0058] Step S404: determine a first link path between the source node device and the designated node device.
[0059] Step S406: determine a second link path between the target node device and the designated node device.
[0060] Step S408: determining whether the first link path is on the designated fault path, and determining whether the second link path is on the designated fault path.
[0061] Step S410: If it is determined that the first link path is not on the designated fault path, and the second link path is not on the designated fault path, it is determined that the designated node device meets a second preset constraint condition.
[0062] Step S412: If it is determined that the first link path is on the designated fault path, or the second link path is on the designated fault path, it is determined that the designated node device does not satisfy a second preset constraint condition.
[0063] In an exemplary embodiment of the present disclosure, Figure 5 As shown, maintaining the designated node device according to the judgment result of the preset constraint condition includes:
[0064] Step S502: Write the corresponding table position of the designated node device that meets the preset constraint condition into the first identifier.
[0065] Step S504: Write the corresponding table position of the designated node device that does not meet the preset constraint condition into the second identifier.
[0066] Step S506: construct a node device candidate table according to the first identifiers and the second identifiers of all the designated fault paths.
[0067] Step S508: Maintain the designated node device according to the node device candidate list.
[0068] In an exemplary embodiment of the present disclosure, the first identifier is "1".
[0069] In an exemplary embodiment of the present disclosure, the second identifier is "0".
[0070] In an exemplary embodiment of the present disclosure, Figure 6 As shown, maintaining the designated node device according to the node device candidate list includes:
[0071] Step S602: determining the weight of any designated node device according to the node device candidate list.
[0072] Step S604: Maintain the designated node device according to the weight of the designated node device.
[0073] In an exemplary embodiment of the present disclosure, Figure 7 As shown, determining the weight of any of the designated node devices according to the node device candidate list includes:
[0074] Step S702: Determine the first identifier and the second identifier corresponding to any of the designated node devices in the node device candidate list.
[0075] Step S704: determine the weight of any of the designated node devices according to the first identifier and the second identifier.
[0076] In an exemplary embodiment of the present disclosure, Figure 8 As shown, maintaining the designated node device according to the weight of the designated node device includes:
[0077] Step S802: Determine a designated node device with the largest weight in the node device candidate list.
[0078] Step S804: Add the designated node device with the largest weight to the maintenance list.
[0079] Step S806: In the node device candidate list, delete the path corresponding to the first identifier of the designated node device with the largest weight.
[0080] Step S808 , cyclically determine the designated node device with the largest weight in the node device candidate list until the node device candidate list is empty.
[0081] Step S810: Maintain the designated node device according to the maintenance list.
[0082] In an exemplary embodiment of the present disclosure, Fig. 9 As shown, the maintenance solution of the SDN network can be implemented by following the steps below:
[0083] Step S902: Acquire the network topology structure.
[0084] Step S904, constructing a network model.
[0085] Step S906: any fault path p in the network model.
[0086] Step S908: candidate node k in the network.
[0087] Step S910, determine whether the candidate node k can protect the fault path p, if so, execute step S914, if not, execute step S912.
[0088] Step S912: Mark "0" at the position of the corresponding row of the faulty path p and the corresponding column of the node k in the candidate table.
[0089] Step S914: Mark “1” at the position of the corresponding row of the faulty path p and the corresponding column of the node k in the candidate table.
[0090] Step S916, determine whether all nodes have been traversed, if so, execute step S918, if not, execute step S908.
[0091] Step S918, determine whether all paths have been traversed, if so, execute step S920, if not, execute step S906.
[0092] Step S920, completing the candidate table construction.
[0093] Step S922: Calculate the column weights in the candidate table.
[0094] Step S924: Select the switch node corresponding to the column with the largest weight.
[0095] Step S926, determine whether all paths are protected, if so, execute step S930, if not, execute step S928.
[0096] Step S928, updating the candidate list.
[0097] Step S930, the upgrade is completed.
[0098] Combination Fig.10 and Fig.11 As shown, the maintenance process of the SDN network of the embodiment of the present disclosure is specifically described, which specifically includes the following processes:
[0099] 1. Build a network model:
[0100] The network model used in this disclosure is an undirected graph G = (V, E), where V represents the number of nodes and E represents the number of bidirectional links. The nodes in the network include IP routers and SDN switches. The communication link between node i and node j is bidirectional, represented by (i, j). In a normal network state, the path from source node i to destination node j is the shortest path, represented by P i,j .
[0101] In an exemplary embodiment of the present disclosure, Fig.10 As shown, the topology structure 1000 of the undirected graph G=(V,E) includes 10 node devices, which are represented as "1", "2", "3", "4", "5", "6", "7", "8", "9" and "10" respectively.
[0102] 2. Define switch k to protect path P i,j Conditions:
[0103] When the path P in the network i,j When a path failure occurs, if the traffic can be rerouted from source node i to destination node j through switch k, bypassing the failed link, then switch k is said to protect path P. i,j In a hybrid IP / SDN network, a specific SDN switch k is defined to protect path P i,j The conditions for the failure are as follows:
[0104] (1) The specified switch k is not in path P i,j superior.
[0105] (2) The shortest path P from source node i to designated switch k i,k and the shortest path P from the designated switch k to the destination node j k,j None of them pass through P i,j on the link.
[0106] 3. SDN upgrade candidate method based on greedy algorithm:
[0107] The greedy-based SDN upgrade candidate method includes two stages: (1) candidate table construction; (2) column selection. These two stages are briefly introduced below.
[0108] 3.1 Candidate table construction:
[0109] The candidate table to be constructed contains information about which switches in the network can protect the path failure when a path fails. As shown in Table 1, "1" means that the switch corresponding to the column where "1" is located can protect the path failure corresponding to the row where "1" is located; similarly, "0" means that the switch corresponding to the column where "0" is located cannot protect the path failure corresponding to the row where "0" is located.
[0110] The specific construction method of the candidate table is as follows: for a specified path P in the network i,j , check whether a specified SDN candidate switch node k satisfies the requirement that switch k can protect path P i,j If the condition is met, it means that the switch can protect the specified path P i,j , then path P in the candidate list i,j The corresponding row of the switch node k is marked with "1"; otherwise, path P in the candidate table i,j The corresponding row of and the corresponding column of switch node k are marked with “0”.
[0111] On the protection path P i,j Under the condition of traversing all nodes in the topology, each candidate SDN switch is judged in turn whether it protects P i,j If the path fails, set "1" or "0" in the corresponding position of the candidate table according to the judgment result. At this point, the construction of a row in the candidate table is completed.
[0112] In an exemplary embodiment of the present disclosure, all paths in the network are traversed, and the above operations are performed to complete the construction of a complete candidate table, as shown in Table 1 below.
[0113] 3.2 Column Selection:
[0114] After the candidate table is built, it is necessary to decide which switches to prioritize for upgrade, which is called column selection.
[0115] Table 1
[0116]
[0117] The weight of each column in the candidate table is calculated as shown in Table 2. The weight of a column is the sum of all elements in the column. The larger the weight, the more fault paths the SDN switch can protect. Then, the column with the largest weight is selected, and the corresponding rows of the column are removed from the candidate table (if there are multiple columns with the same weight, they are randomly selected). After that, the weights of the remaining columns are calculated again, the column with the largest value is selected, and the corresponding rows are deleted. This process is repeated until all rows are deleted from the candidate table, that is, until all fault paths can be protected by at least one SDN switch.
[0118] Table 2
[0119]
[0120] The present disclosure runs in the network management center. At each step of network upgrade, the network is accessed through the northbound interface, and the SDN controller obtains the topology of the entire network, and performs network modeling, candidate table construction, and switch selection steps in sequence.
[0121] In an exemplary embodiment of the present disclosure, Fig.11 As shown, assuming that the overhead of the network links is the same and normalized to the number of hops, the node device "2" is taken as the target node 1102 for protection, and a candidate table is constructed, as shown in Table 3.
[0122] It can be seen from the table that for path P 1,2 For example, if SDN switches are placed at candidate nodes 7, 8, 9, and 10, when path P 1,2 If SDN switches are placed at the remaining nodes, the path P 1,2 The failure of the path cannot be protected. The same is true for the other paths.
[0123] Table 3
[0124]
[0125] In the above example, the calculated column weight table is shown in Table 4:
[0126] Table 4
[0127]
[0128] Switch 7 is randomly selected from the three columns with the largest column weights, 7, 8, and 9, for upgrading. Then the corresponding rows of the column are removed from the candidate table. The updated candidate table and column weight table are shown in Table 4:
[0129] Table 5
[0130]
[0131] Table 6
[0132]
[0133] The second round of selection is performed according to the updated column weight table. Switch 4 is randomly selected from the three columns 4, 5 and 6 with the largest column weights for upgrade, and then the corresponding rows of the column are removed from the candidate table. At this point, all rows are deleted from the candidate table as shown in Table 6, and the upgrade is completed.
[0134] The embodiment of the present disclosure defines that switch k can protect path P i,j The conditions are such that when a path failure occurs in the network, the traffic can be rerouted from the source node to the destination node, bypassing the failed link.
[0135] In addition, the embodiment of the present disclosure defines a switch candidate method based on a greedy algorithm, which selects the switch with the largest weight, that is, the switch that can protect the largest number of paths, for upgrading in turn until all paths can be protected.
[0136] Corresponding to the above method embodiments, the present disclosure also provides a maintenance device for an SDN network, which can be used to execute the above method embodiments.
[0137] Fig.12 It is a block diagram of a maintenance device for an SDN network in an exemplary embodiment of the present disclosure.
[0138] refer to Fig.12 , the SDN network maintenance device 1200 may include:
[0139] The determination module 1202 is configured to determine a link path between any two node devices in the SDN network.
[0140] The determination module 1202 is configured to determine a preset constraint condition for the node device to protect a specified fault path.
[0141] The determining module 1202 is configured to determine a designated node device among the node devices.
[0142] The judgment module 1204 is configured to judge whether the specified node device meets the preset constraint condition.
[0143] The maintenance module 1206 is configured to perform maintenance on the designated node device according to the judgment result of the preset constraint condition.
[0144] In an exemplary embodiment of the present disclosure, the judgment module 1204 is also used to: judge whether the designated node device is on the designated fault path; if it is determined that the designated node device is not on the designated fault path, determine that the designated node device satisfies the first preset constraint condition; if it is determined that the designated node device is on the designated fault path, determine that the designated node device does not satisfy the first preset constraint condition.
[0145] In an exemplary embodiment of the present disclosure, the judgment module 1204 is also used to: determine the source node device and the target node device in the designated fault path; determine the first link path between the source node device and the designated node device; determine the second link path between the target node device and the designated node device; judge whether the first link path is on the designated fault path, and judge whether the second link path is on the designated fault path; if it is determined that the first link path is not on the designated fault path, and the second link path is not on the designated fault path, then judge that the designated node device meets the second preset constraint condition; if it is determined that the first link path is on the designated fault path, or the second link path is on the designated fault path, then judge that the designated node device does not meet the second preset constraint condition.
[0146] In an exemplary embodiment of the present disclosure, the maintenance module 1206 is also used to: write the first identifier into the corresponding table position of the specified node device that meets the preset constraint condition; write the second identifier into the corresponding table position of the specified node device that does not meet the preset constraint condition; construct a node device candidate table based on the first identifier and the second identifier of all the specified fault paths; and maintain the specified node device according to the node device candidate list.
[0147] In an exemplary embodiment of the present disclosure, the maintenance module 1206 is further used to: determine the weight of any of the designated node devices according to the node device candidate list; and maintain the designated node device according to the weight of the designated node device.
[0148] In an exemplary embodiment of the present disclosure, the maintenance module 1206 is further used to: determine the first identifier and the second identifier corresponding to any of the designated node devices in the node device candidate list; and determine the weight of any of the designated node devices based on the first identifier and the second identifier.
[0149] In an exemplary embodiment of the present disclosure, the maintenance module 1206 is also used to: determine the designated node device with the largest weight in the node device candidate list; add the designated node device with the largest weight to the maintenance list; delete the path corresponding to the first identifier of the designated node device with the largest weight in the node device candidate list; loop to determine the designated node device with the largest weight in the node device candidate list until the node device candidate list is empty; and maintain the designated node device according to the maintenance list.
[0150] Since the functions of the SDN network maintenance device 1200 have been described in detail in the corresponding method embodiments, the present disclosure will not elaborate on them here.
[0151] In summary, through the embodiments of the present disclosure, the switch upgrade protection is extended from the link perspective in the network to the path perspective, and the network upgrade is performed for the purpose of protecting end-to-end network service failures. In addition, the embodiments of the present disclosure also provide a switch candidate method based on a greedy algorithm, that is, the switch selection is performed for the purpose of ensuring that the end-to-end network service can be protected to the maximum extent when the path fails. The present disclosure defines the conditions under which a specified switch can protect a path failure, so that when a path failure occurs in the network, the traffic can be rerouted from the source node, bypassing the faulty link, and rerouted to the destination node. According to the above-mentioned conditions for protecting the path failure, it is determined in turn whether each switch protects the corresponding path failure, and a candidate table is constructed accordingly. Then, based on the greedy algorithm, the column with the largest weight is selected, and the corresponding rows of the column will be removed from the candidate table (if there are multiple columns with the same weight, they are randomly selected). After that, the weights of the remaining columns are calculated again, the column with the largest value is selected, and the corresponding rows are deleted, and this process is repeated until all rows are deleted from the candidate table. At this point, the switch upgrade candidate is completed.
[0152] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into multiple modules or units to be embodied.
[0153] In an exemplary embodiment of the present disclosure, an electronic device capable of implementing the above method is also provided.
[0154] It will be appreciated by those skilled in the art that various aspects of the present invention may be implemented as a system, method or program product. Therefore, various aspects of the present invention may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to herein as a "circuit", "module" or "system".
[0155] Refer to the following Fig.13 An electronic device 1300 according to this embodiment of the present invention is described. Fig.13 The electronic device 1300 shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.
[0156] like Fig.13As shown, the electronic device 1300 is in the form of a general computing device. The components of the electronic device 1300 may include but are not limited to: at least one processing unit 1310, at least one storage unit 1320, and a bus 1330 connecting different system components (including the storage unit 1320 and the processing unit 1310).
[0157] The storage unit stores program codes, which can be executed by the processing unit 1310, so that the processing unit 1310 performs the steps according to various exemplary embodiments of the present invention described in the above “Exemplary Method” section of this specification. For example, the processing unit 1310 can perform the method shown in the embodiment of the present disclosure.
[0158] The storage unit 1320 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 13201 and / or a cache storage unit 13202 , and may further include a read-only storage unit (ROM) 13203 .
[0159] The storage unit 1320 may also include a program / utility 13204 having a set (at least one) of program modules 13205, such program modules 13205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.
[0160] Bus 1330 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
[0161] The electronic device 1300 may also communicate with one or more external devices 1340 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 1300, and / or communicate with any device that enables the electronic device 1300 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed via an input / output (I / O) interface 1350. Furthermore, the electronic device 1300 may also communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) via a network adapter 1360. As shown, the network adapter 1360 communicates with other modules of the electronic device 1300 via a bus 1330. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 1300, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0162] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the implementation of the present disclosure.
[0163] In an exemplary embodiment of the present disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the above method of the present specification is stored. In some possible implementations, various aspects of the present invention can also be implemented in the form of a program product, which includes a program code, and when the program product is run on a terminal device, the program code is used to enable the terminal device to execute the steps according to various exemplary embodiments of the present invention described in the above "Exemplary Method" section of the present specification.
[0164] The program product for implementing the above method according to an embodiment of the present invention can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto, and in this document, a readable storage medium can be any tangible medium containing or storing a program, which can be used by or in combination with an instruction execution system, an apparatus or a device.
[0165] The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0166] Computer readable signal media may include data signals propagated in baseband or as part of a carrier wave, in which readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Readable signal media may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0167] The program code embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
[0168] Program code for performing the operations of the present invention may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., through the Internet using an Internet service provider).
[0169] In addition, the above-mentioned figures are only schematic illustrations of the processes included in the method according to an exemplary embodiment of the present invention, and are not intended to be limiting. It is easy to understand that the processes shown in the above-mentioned figures do not indicate or limit the time sequence of these processes. In addition, it is also easy to understand that these processes can be performed synchronously or asynchronously, for example, in multiple modules.
[0170] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The specification and examples are to be considered exemplary only, and the true scope and concept of the present disclosure are indicated by the claims.
Claims
1. A maintenance method for an SDN network, characterized in that: include: Determine a link path between any two node devices in the SDN network; Determining preset constraint conditions for the node device to protect the specified fault path; Determine a designated node device among the node devices; Determining whether the specified node device meets the preset constraint condition includes: Determining whether the designated node device is on the designated fault path; If it is determined that the designated node device is not on the designated fault path, determining that the designated node device satisfies a first preset constraint condition; If it is determined that the designated node device is on the designated fault path, determining that the designated node device does not satisfy the first preset constraint condition; Maintaining the designated node device according to the judgment result of the preset constraint condition includes: Writing the corresponding table position of the designated node device that meets the preset constraint condition into the first identifier; Writing a corresponding table position of a designated node device that does not meet the preset constraint condition into a second identifier; Building a node device candidate list according to the first identifiers and the second identifiers of all the designated fault paths; Determine the first identifier and the second identifier corresponding to any of the designated node devices in the node device candidate list; Determine a weight of any of the designated node devices according to the first identifier and the second identifier; Determine the designated node device with the largest weight in the node device candidate list; Add the designated node device with the largest weight to the maintenance list; In the node device candidate list, delete the path corresponding to the first identifier of the designated node device with the largest weight; Circularly determine the designated node device with the largest weight in the node device candidate list until the node device candidate list is empty; Maintain the designated node device according to the maintenance list.
2. The SDN network maintenance method according to claim 1, characterized in that: Determining whether the specified node device meets the preset constraint condition also includes: Determine the source node device and the target node device in the specified fault path; Determine a first link path between the source node device and the designated node device; Determine a second link path between the target node device and the designated node device; determining whether the first link path is on the designated fault path, and determining whether the second link path is on the designated fault path; If it is determined that the first link path is not on the designated fault path, and the second link path is not on the designated fault path, then it is determined that the designated node device meets a second preset constraint condition; If it is determined that the first link path is on the designated fault path, or the second link path is on the designated fault path, then it is determined that the designated node device does not satisfy a second preset constraint condition.
3. A maintenance device for an SDN network, characterized in that: include: A determination module, configured to determine a link path between any two node devices in the SDN network; The determination module is configured to determine a preset constraint condition for the node device to protect a specified fault path; The determining module is configured to determine a designated node device among the node devices; The judging module is configured to judge whether the specified node device satisfies the preset constraint condition, including: Determining whether the designated node device is on the designated fault path; If it is determined that the designated node device is not on the designated fault path, determining that the designated node device satisfies a first preset constraint condition; If it is determined that the designated node device is on the designated fault path, determining that the designated node device does not satisfy the first preset constraint condition; A maintenance module, configured to maintain the designated node device according to the judgment result of the preset constraint condition, including: Writing the corresponding table position of the designated node device that meets the preset constraint condition into the first identifier; Writing a corresponding table position of a designated node device that does not meet the preset constraint condition into a second identifier; Building a node device candidate list according to the first identifiers and the second identifiers of all the designated fault paths; Determine the first identifier and the second identifier corresponding to any of the designated node devices in the node device candidate list; Determine a weight of any of the designated node devices according to the first identifier and the second identifier; Determine the designated node device with the largest weight in the node device candidate list; Add the designated node device with the largest weight to the maintenance list; In the node device candidate list, delete the path corresponding to the first identifier of the designated node device with the largest weight; Circularly determine the designated node device with the largest weight in the node device candidate list until the node device candidate list is empty; Maintain the designated node device according to the maintenance list.
4. An electronic device, characterized in that: include: Memory; as well as A processor coupled to the memory, wherein the processor is configured to execute the SDN network maintenance method according to claim 1 or 2 based on instructions stored in the memory.
5. A computer-readable storage medium having a program stored thereon, wherein when the program is executed by a processor, the SDN network maintenance method according to claim 1 or 2 is implemented.
