WO2022242243A1 - 通信方法、设备及系统 - Google Patents
通信方法、设备及系统 Download PDFInfo
- Publication number
- WO2022242243A1 WO2022242243A1 PCT/CN2022/075558 CN2022075558W WO2022242243A1 WO 2022242243 A1 WO2022242243 A1 WO 2022242243A1 CN 2022075558 W CN2022075558 W CN 2022075558W WO 2022242243 A1 WO2022242243 A1 WO 2022242243A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- link
- segment identification
- target
- identification list
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 273
- 238000000034 method Methods 0.000 title claims abstract description 189
- 230000000875 corresponding effect Effects 0.000 claims description 124
- 230000008569 process Effects 0.000 claims description 96
- 230000015654 memory Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 19
- 230000002596 correlated effect Effects 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 13
- 238000013461 design Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- YHXISWVBGDMDLQ-UHFFFAOYSA-N moclobemide Chemical compound C1=CC(Cl)=CC=C1C(=O)NCCN1CCOCC1 YHXISWVBGDMDLQ-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/127—Avoiding congestion; Recovering from congestion by using congestion prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
Definitions
- the present application relates to the technical field of communication, and in particular to a communication method, device and system.
- the communication system includes a plurality of nodes, and there are links between these nodes. After receiving the message of the flow in the communication system, the source node of the flow can forward the message to the destination node of the flow along the message forwarding path passing through at least one link. Forward packets of this flow.
- the source node will use the Shortest Path First (SPF) algorithm to determine the path from the source node to the sink node according to the sink node to which the flow message needs to be forwarded. Afterwards, the source node can forward the flow message to the sink node along the path.
- SPPF Shortest Path First
- the source node can forward the flow message to the sink node along the path. Due to the deployment of a large number of best-effort BE services (Best Effort Service) in the network, if forwarded according to the path obtained by the SPF algorithm, packets of multiple flows may be forwarded using links between certain nodes, causing these links A performance bottleneck occurs, which eventually leads to link traffic congestion and affects packet forwarding efficiency.
- SPF Shortest Path First
- the present application provides a communication method, device and system.
- the communication method can indicate the message forwarding path of the target flow by sending a target segment identification list to the source node of the target flow in the communication network, thereby reducing network link congestion,
- the technical solution is as follows:
- a communication method is provided, the method is executed by a controller, the controller communicates with a plurality of nodes, and the plurality of nodes belong to the same communication network, and the method includes: the controller determines the set of nodes After that, firstly, the target flow is determined among the flows carried on the links between the multiple nodes, and the target segment identification list of the target flow is obtained. Then, the controller sends the target segment identification list to the source node to instruct the source node to forward the packet of the target flow according to the target segment identification list.
- the node set determined by the controller includes nodes supporting segment routing (Segment Routing, SR) among the plurality of nodes; the source node of the target flow in the communication network belongs to the node set;
- the target segment identifier list includes: the segment identifier of the sink node of the target flow in the communication network, and the segment identifier of at least one intermediate node; the intermediate node belongs to the node set and is located at the source node and the path between the sink node.
- the communication method provided by the present application can indicate the message forwarding path of the target flow by sending the target segment identification list to the source node of the target flow in the communication network, thereby reducing network link congestion and improving message forwarding efficiency. Moreover, the method can be applied to the case where all nodes in the communication system support SR, the case where some nodes in the communication system support SR, and the case where the message forwarding path of the flow is a path calculated by the nodes themselves.
- the controller can specify the message forwarding path of the target flow through the target segment identification list.
- the path indicated by the target segment identification list of the target flow may be the same as or different from the current packet forwarding path of the target flow.
- the controller can realize the target segment identification list by sending the target segment identification list to the source node of the target flow in the communication network.
- the packet forwarding path of the flow is adjusted.
- the packet transmission efficiency of the path indicated by the target segment identification list of the target flow may be higher than the packet transmission efficiency of the current packet forwarding path of the target flow.
- SLA Service Level Agreement
- the packet transmission efficiency of the path indicated by the target segment identification list of the target flow may be smaller than the packet transmission efficiency of the current packet forwarding path of the target flow.
- the target flow is a flow with a lower priority
- the current packet forwarding path of the target flow is the same as the packet forwarding path of a higher priority flow
- the Realize the protection of the packet forwarding path of the higher-priority flow so as to prevent the target flow from affecting the packet forwarding of the higher-priority flow.
- the present application can realize the controller to confirm the current packet forwarding path of the target flow.
- the method further includes: before the controller determines a target flow among the flows carried on the links between the multiple nodes, determining a set of links to be adjusted in the links among the multiple nodes, The links in the set of links to be adjusted meet the adjustment condition; when the controller determines the target flow among the flows carried on the links between the multiple nodes, the links in the set of links to be adjusted may The target stream is determined from the streams carried on the host. In this way, the controller can first determine the set of links to be adjusted, and then determine the target flow according to the set of links to be adjusted.
- the above-mentioned adjustment condition may be any condition, for example, the adjustment condition includes: the congestion rate of the link is greater than the first congestion threshold; the link is faulty; The congestion probability of is greater than the first congestion probability threshold, x ⁇ 2.
- the first congestion threshold and the first congestion probability threshold may be equal or unequal.
- the congestion rate of a link is greater than the first congestion threshold, the link is more likely to be congested, the packet transmission efficiency of the flow carried on this link is low, and the packet forwarding path of the flow carried on this link Adjustment is required.
- a link fails, the packets of the flow carried by this link cannot be effectively transmitted, and the packet forwarding path of this flow needs to be adjusted.
- the congestion rate of the link is greater than the first congestion threshold, and the congestion probability at x future moments is greater than the first congestion probability threshold, the link is prone to congestion at present and in the future, and the traffic carried on the link The current and future transmission efficiency is low, and the packet forwarding path of the flow carried on this link needs to be adjusted.
- the above adjustment conditions can be configured on the nodes or on the controller.
- the node determines whether at least one link connected to the node satisfies the adjustment condition according to link state information, such as link congestion rate, link connectivity status, and the adjustment condition.
- link state information such as link congestion rate, link connectivity status, and the adjustment condition.
- the node may send link information to the controller, where the link information is used to indicate that the at least one link meets the adjustment condition.
- the controller will receive the link information sent by at least one node among the multiple nodes, and then can determine the link that satisfies the adjustment condition according to the received link information.
- link information is used to indicate whether the link satisfies the adjustment condition
- the link information may include the conclusion of whether the link satisfies the adjustment condition, or may be parameters related to the conclusion.
- the controller can determine the link that satisfies the adjustment condition according to the conclusion.
- the link information includes a parameter related to the conclusion
- the controller can obtain the conclusion according to the parameter, and then determine the link that satisfies the adjustment condition.
- the node can report the performance data or status information of the node and/or the link connecting the node to the controller.
- the controller can count and obtain the link status information of each node, such as link congestion rate and link connectivity status.
- the controller can determine the link status information that meets the adjustment conditions based on the above adjustment conditions and the link status information of each node. link.
- the link state information of the node may be: state information of at least some links connected to the node.
- adjustment conditions are configured on both the node and the controller.
- the node may judge the configured adjustment conditions, and send link information to the controller according to the judgment result.
- the controller can judge the configured adjustment condition according to the received link information, so as to obtain the link satisfying the adjustment condition.
- the adjustment condition configured on the node and the adjustment condition configured on the controller may be the same or different, which is not limited in this application.
- the link information sent by each node is also used to indicate: the traffic of each link in the at least one link at multiple historical moments; , when determining the set of links to be adjusted, it is possible to first predict the traffic of each link at multiple future moments according to the traffic of each link at the multiple historical moments; According to the traffic of each link at multiple future moments, determine the link to be adjusted, and the congestion probability of the link to be adjusted at least x said future moments is greater than the first congestion probability threshold; finally, according to the to-be-adjusted Links determine the set of links to be adjusted.
- the link belongs to the set of links to be adjusted.
- the controller can adjust the packet forwarding path of the target flow carried on the link. In this way, it is avoided to adjust the packet forwarding path of the target flow carried on these links in the case that some links are easy to be congested at present, but not easy to be congested in the future. Adjustments cause large network oscillations.
- At least one target flow is carried on the links in the set of links to be adjusted; for at least part of the target flows in the at least one target flow, the path indicated by the target segment identification list of the target flow is the same as The current packet forwarding paths of the target flows are different. In this way, through the method provided by the embodiment of the present application, it is possible to adjust the packet forwarding paths of at least part of the target flows, so as to reduce the degree of network congestion.
- the controller obtaining the target segment identification list of the target flow includes: the controller first counts the flows carried on the links between the multiple nodes, and obtains the target flow of each target flow in the at least one target flow.
- An initial segment identification list, the initial segment identification list of each target flow is used to indicate the current packet forwarding path of each target flow; after that, the controller repeatedly executes the update process, and stops at least one of the condition sets When the condition is satisfied, stop repeating the updating process, and use the updated initial segment identification list of each target flow as the target segment identification list of each target flow.
- the above update process includes: randomly selecting a first target stream in the at least one target stream; determining whether a first candidate segment identification list exists in the first target stream; when there is the first candidate segment identification list, according to the updating the initial segment identification list of the first target flow with the first candidate segment identification list; and updating the paths between the plurality of nodes according to the path indicated by the updated initial segment identification list of the first target flow A flow carried on a link; wherein, the first candidate segment identification list is used to indicate the path from the source node to the sink node of the first target flow; the congestion probability corresponding to the first candidate segment identification list is less than the The congestion probability corresponding to the initial segment identification list; the congestion probability corresponding to one segment identification list is: when the first target flow is carried on the path indicated by the one segment identification list, the links in the link set to be adjusted The average value of the congestion probability of the path; the stop condition set includes: the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second congestion probability threshold.
- the congestion probability corresponding to the first candidate segment identifier list is smaller than the congestion probability corresponding to the above-mentioned initial segment identifier list.
- the average value of the congestion probability of the links in the link set to be adjusted can be reduced. Therefore, if the packet forwarding path of the first target flow is adjusted to the path indicated by the first candidate segment identification list, then the congestion probability of the links in the link set to be adjusted can be reduced, thereby alleviating the congestion of the link set to be adjusted. Congestion and failure conditions in the middle link.
- the stop condition set includes: the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second congestion probability threshold.
- the set of stopping conditions may further include: the duration of repeatedly executing the update process reaches a duration threshold. In other words, if the time for which the controller repeatedly executes the update process reaches a duration threshold, the controller stops repeatedly executing the update process. In this way, it is avoided that the controller repeatedly executes the update process for too long, and the efficiency of path adjustment is ensured.
- the congestion probability of the link is less than or equal to the second congestion probability threshold.
- the congestion probabilities of other links will not be greater than or equal to the second congestion probability threshold, therefore, the congestion probabilities of other links smaller. It can be seen that in the process of adjusting the packet forwarding path of the first target flow, the congestion probability of other links will not be higher, thus avoiding the congestion of other links caused by adjusting the packet forwarding path of the first target flow case of high probability.
- the first candidate segment identification list is the candidate with the smallest congestion probability in the plurality of candidate segment identification lists A list of segment identifiers.
- the controller may randomly select a link in the set of links to be adjusted according to the link selection probability, and randomly select the first target flow from the target flows carried on this link according to the flow selection probability.
- the link selection probability is positively correlated with the congestion rate of the link
- the stream selection probability is positively correlated with the flow rate of the stream. In this way, the controller selects a link with a higher congestion rate in the set of links to be adjusted as the first link, and selects a flow with higher traffic as the first target flow.
- the filtered first target flow will be used as the preferentially adjusted packet forwarding path among at least one target flow In this way, when the link selection probability is positively correlated with the link congestion rate, and the flow selection probability is positively correlated with the flow traffic, it is possible to give priority to the link with higher traffic and higher congestion rate. Adjust the packet forwarding path for the target flow.
- the controller may combine the congestion parameter Q to determine whether the congestion probability corresponding to the first candidate segment identification list is smaller than the congestion probability corresponding to the initial segment identification list.
- the congestion parameter Q max((L-Y), 0) of the link
- L represents the congestion probability of the link
- Y represents the second congestion probability threshold
- the second congestion probability threshold is less than or equal to the above-mentioned first congestion probability threshold.
- the controller may determine that the congestion probability corresponding to the first candidate segment identification list is less than the congestion probability corresponding to the initial segment identification list when the sum of the congestion parameters corresponding to the first candidate segment identification list is less than the sum of the congestion parameters corresponding to the initial segment identification list;
- the sum of the congestion parameters corresponding to a segment identification list is: the sum of the congestion parameters Q of the links in the link set to be adjusted when the first target flow is carried on the path indicated by the segment identification list.
- the controller may combine the congestion parameter Q to determine whether the congestion probability of other links is less than or equal to the second congestion probability threshold. For example, the controller may determine that the congestion probability of the other link is less than or equal to the second congestion probability threshold when the congestion parameter of the other link is zero.
- the controller may determine whether the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second congestion probability threshold in combination with the above congestion parameter Q. For example, when the sum of the congestion parameters corresponding to the updated initial segment identification list of the first target flow is zero, the controller may determine that the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second Congestion probability threshold.
- the updating process further includes: when the first candidate segment identification list does not exist, and the initial segment identification list of the first target stream is not identified in the update process performed m consecutive times,
- the controller updates the initial segment identification list of the first target stream according to the second candidate segment identification list, m ⁇ 2, and the second candidate segment identification list is a set candidate segment identification list.
- the purpose of the controller repeatedly executing the update process is to find a better segment identifier list (such as the above-mentioned first candidate segment identifier list) than the initial segment identifier list of the first target stream. If there is no first candidate segment identification list that satisfies the gain condition, and the initial segment identification list of the first target stream has not been updated in the m consecutive update processes, it means that it is temporarily impossible to find an initial segment identification list that is better than the current initial segment A segment identification list with a better identification list indicates that the initial segment identification list of the current first target flow is a local optimal solution.
- the controller may directly update the initial segment identification list of the first target stream according to the second candidate segment identification list, so as to adjust the current initial segment identification list and jump out of the local optimal solution, so as to use the updated initial segment identification list id-list Find a better list of segment ids.
- the number of segment identifiers in the initial segment identifier list of the first target stream updated according to the second candidate segment identifier list is reduced. That is, the number of segment identifiers in the initial segment identifier list of the first target stream after updating according to the second candidate segment identifier list is smaller than the segment identifiers in the initial segment identifier list of the first target stream before updating according to the second candidate segment identifier list quantity. In this way, the number of segment identifiers in the updated initial segment identifier list of the first target stream is small, which facilitates the controller to find a better segment identifier list of the first target stream in a subsequent update process.
- the updating process further includes: after updating the initial segment identification list of the first target stream according to the second candidate segment identification list, the first If the initial segment identifier list of a target stream satisfies the rollback condition, the controller updates the initial segment identifier list of the first target stream to the optimal segment identifier list.
- the fallback condition includes: the congestion probability corresponding to the initial segment identifier list of the first target flow after the nth execution of the update process is greater than the congestion probability corresponding to the optimal segment identifier list probability
- the optimal segment identification list is: the corresponding initial segment identification list of the first target flow with the smallest congestion probability.
- the controller may update the initial segment identification list of the first target stream to the optimal segment identification list.
- each node in the communication system may send node information to the controller, and the node information sent by each node is used to indicate whether the node supports SR.
- the controller may determine the node set according to the node information sent by all nodes.
- a communication method is provided, the method is executed by a first node among a plurality of nodes, the plurality of nodes are communicatively connected to a controller, and the plurality of nodes belong to the same communication network, the method includes: After receiving the target segment identification list of the target flow sent by the controller, the first node forwards the packet of the target flow according to the target segment identification list of the target flow.
- the target segment identification list includes: the segment identification of the sink node of the target flow and the segment identification of at least one intermediate node, the first node is the source node of the target flow; the first node and the The intermediate nodes all belong to a node set, and the node set includes: a node supporting SR among the multiple nodes, and the intermediate node is located on a path between the source node and the sink node of the target flow.
- the path indicated by the target segment identification list is different from the current packet forwarding path of the target flow.
- the current packet forwarding path of the target flow can be adjusted through the communication method provided by this application.
- the above adjustment conditions can be configured on the nodes or on the controller.
- the first node can judge whether the link it is connected to meets the adjustment condition, and when at least one link connected to the node meets the adjustment condition, the node can send the Link information, where the link information is used to indicate that the at least one link satisfies the adjustment condition.
- the first node may determine whether at least one link connected to the node satisfies the adjustment condition according to link state information, such as link congestion rate, link connectivity state, and adjustment condition.
- link state information such as link congestion rate, link connectivity state, and adjustment condition.
- the first node may send link information to the controller, where the link information is used to indicate that the at least one link meets the adjustment condition.
- the controller will receive the link information sent by at least one node among the multiple nodes, and then can determine the link that satisfies the adjustment condition according to the received link information.
- link information is used to indicate whether the link satisfies the adjustment condition
- the link information may include the conclusion of whether the link satisfies the adjustment condition, or may be parameters related to the conclusion.
- the controller can determine the link that satisfies the adjustment condition according to the conclusion.
- the link information includes a parameter related to the conclusion
- the controller can obtain the conclusion according to the parameter, and then determine the link that satisfies the adjustment condition.
- the first node may report the performance data or status information of the node and/or the link connecting the node to the controller.
- the controller can count and obtain the link status information of each node, such as link congestion rate and link connectivity status. After that, the controller can determine the link status information that meets the adjustment conditions based on the above adjustment conditions and the link status information of each node. link.
- adjustment conditions are configured on both the node and the controller.
- the node may judge the configured adjustment conditions, and send link information to the controller according to the judgment result.
- the controller can judge the configured adjustment condition according to the received link information, so as to obtain the link satisfying the adjustment condition.
- the adjustment condition configured on the node and the adjustment condition configured on the controller may be the same or different, which is not limited in this application.
- the above-mentioned adjustment condition may be any condition, for example, the adjustment condition includes: the congestion rate of the link is greater than the first congestion threshold; the link is faulty; The congestion probability of is greater than the first congestion probability threshold, x ⁇ 2.
- the first congestion threshold and the first congestion probability threshold may be equal or unequal.
- the congestion rate of a link is greater than the first congestion threshold, the link is more likely to be congested, the packet transmission efficiency of the flow carried on this link is low, and the packet forwarding path of the flow carried on this link Adjustment is required.
- a link fails, the packets of the flow carried by this link cannot be effectively transmitted, and the packet forwarding path of this flow needs to be adjusted.
- the congestion rate of the link is greater than the first congestion threshold, and the congestion probability at x future moments is greater than the first congestion probability threshold, the link is prone to congestion at present and in the future, and the traffic carried on the link The current and future transmission efficiency is low, and the packet forwarding path of the flow carried on this link needs to be adjusted.
- the link information is also used to indicate: the traffic of each link in the at least one link at multiple historical moments.
- the method before receiving the target segment identification list of the target flow sent by the controller, the method further includes: the first node sends node information to the controller, and the node information is used to indicate that the first Whether the node supports SR.
- the first node sends node information to the controller, and the node information is used to indicate that the first Whether the node supports SR.
- Each node in the communication system can send node information to the controller, and the node information sent by each node is used to indicate whether the node supports SR.
- a communication device is provided, the communication device is a controller, and the controller is communicatively connected to a plurality of nodes, and the plurality of nodes belong to the same communication network, and the communication device includes: a first determination module , a second determination module, an acquisition module and a sending module.
- the first determining module is used to determine a set of nodes, and the set of nodes includes nodes supporting SR among the plurality of nodes;
- a target flow the source node of the target flow in the communication network belongs to the node set;
- the obtaining module is used to obtain a target segment identification list of the target flow; wherein, the target segment identification list includes: the target a segment identifier of a sink node of the flow in the communication network, and a segment identifier of at least one intermediate node; the intermediate node belongs to the set of nodes and is located on a path between the source node and the sink node;
- the sending module is configured to send the target segment identification list to the source node, so as to instruct the source node to forward the packet of the target flow according to the target segment identification list.
- the communication device further includes: a third determining module, configured to determine a set of links to be adjusted among the links among the plurality of nodes, and the links in the set of links to be adjusted meet the adjustment condition ;
- the second determining module is configured to determine the target flow among the flows carried on the links in the set of links to be adjusted. In this way, the controller can first determine the set of links to be adjusted, and then determine the target flow according to the set of links to be adjusted.
- the above-mentioned adjustment condition may be any condition, for example, the adjustment condition includes: the congestion rate of the link is greater than the first congestion threshold; the link is faulty; The congestion probability of is greater than the first congestion probability threshold, x ⁇ 2.
- the first congestion threshold and the first congestion probability threshold may be equal or unequal.
- the above adjustment conditions can be configured on the nodes or on the controller.
- the node determines whether at least one link connected to the node satisfies the adjustment condition according to link state information, such as link congestion rate, link connectivity status, and the adjustment condition.
- link state information such as link congestion rate, link connectivity status, and the adjustment condition.
- the node may send link information to the controller, where the link information is used to indicate that the at least one link meets the adjustment condition.
- the communication device further includes: a receiving module, configured to receive link information sent by at least one node among the plurality of nodes, and the link information sent by each node of the at least one node is used to indicate the At least one link connected to each node satisfies the adjustment condition; the third determination module is configured to determine the set of links to be adjusted according to the received link information. It can be seen that the communication device belonging to the controller will receive the link information sent by at least one of the multiple nodes, and then can determine the link that satisfies the adjustment condition according to the received link information.
- the node may report the performance data or status information of the node and/or the link connecting the node to the controller.
- the third determining module can be used to: collect statistics and obtain link state information of each node, such as link congestion rate and link connectivity state, and then determine based on the above adjustment conditions and the link state information of each node Links that meet the adjustment conditions.
- the link state information of the node may be: state information of at least some links connected to the node.
- adjustment conditions are configured on both the node and the controller.
- the node may judge the configured adjustment conditions, and send link information to the controller according to the judgment result.
- the third determining module in the communication device may judge the configured adjustment condition according to the received link information, so as to obtain the link satisfying the adjustment condition.
- the adjustment condition configured on the node and the adjustment condition configured on the controller may be the same or different, which is not limited in this application.
- the link information sent by each node is also used to indicate: the traffic of each link in the at least one link at multiple historical moments; the third determining module is configured to: according to the The traffic of each link at the multiple historical moments, predicting the traffic of each link at multiple future moments; according to the traffic of each link at multiple future moments, determining the link to be adjusted, Congestion probabilities of the links to be adjusted at least x times in the future are greater than a first congestion probability threshold; and the set of links to be adjusted is determined according to the links to be adjusted.
- At least one target flow is carried on the links in the set of links to be adjusted; for at least part of the target flows in the at least one target flow, the path indicated by the target segment identification list of the target flow is consistent with the The current packet forwarding path of the target flow is different.
- the acquiring module is configured to: first count the flows carried on the links between the multiple nodes, and acquire an initial segment identification list of each target flow in the at least one target flow, and the initial segment identifier list of each target flow
- the segment identification list is used to indicate the current packet forwarding path of each target flow; after that, the update process is repeatedly executed, and when at least one condition in the stop condition set is met, the repeat execution of the update process is stopped, and all
- the updated initial segment identification list of each target flow is used as the target segment identification list of each target flow.
- the above update process includes: randomly selecting a first target stream in the at least one target stream; determining whether a first candidate segment identification list exists in the first target stream; when there is the first candidate segment identification list, according to the updating the initial segment identification list of the first target flow with the first candidate segment identification list; and updating the paths between the plurality of nodes according to the path indicated by the updated initial segment identification list of the first target flow A flow carried on a link; wherein, the first candidate segment identification list is used to indicate the path from the source node to the sink node of the first target flow; the congestion probability corresponding to the first candidate segment identification list is less than the The congestion probability corresponding to the initial segment identification list; the congestion probability corresponding to one segment identification list is: when the first target flow is carried on the path indicated by the one segment identification list, the links in the link set to be adjusted The average value of the congestion probability of the path; the stop condition set includes: the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second congestion probability threshold.
- the set of stopping conditions further includes: the duration of repeatedly executing the update process reaches a duration threshold.
- the congestion probability of the link is less than or equal to the second congestion probability threshold.
- the first candidate segment identification list is the candidate with the smallest congestion probability in the plurality of candidate segment identification lists A list of segment identifiers.
- the controller may randomly select a link in the set of links to be adjusted according to the link selection probability, and randomly select the first target flow from the target flows carried on this link according to the flow selection probability.
- the acquisition module is configured to: randomly select the first link in the set of links to be adjusted according to the link selection probability, the link selection probability is positively correlated with the congestion rate of the link; probability, randomly select the first target flow from the target flows carried on the first link, and the flow selection probability is positively correlated with the flow rate of the flow.
- the communication device further includes: a fourth determining module, and/or, a fifth determining module, and/or, a sixth determining module.
- the fourth determining module is configured to determine that the congestion probability corresponding to the first candidate segment identification list is less than the sum of the congestion parameters corresponding to the initial segment identification list when the sum of the congestion parameters corresponding to the first candidate segment identification list is less than The congestion probability corresponding to the initial segment identification list;
- the fifth determination module is configured to determine the updated first target flow when the sum of the congestion parameters corresponding to the updated initial segment identification list of the first target flow is zero.
- the congestion probability corresponding to the initial segment identification list of the target flow is less than or equal to the second congestion probability threshold;
- the sixth determination module is used to determine the congestion probability of the other link when the congestion parameter of the other link is zero less than or equal to the second congestion probability threshold;
- the updating process further includes: when the first candidate segment identification list does not exist, and the initial segment identification list of the first target stream is not identified in the update process performed m consecutive times, When updating, the initial segment identification list of the first target stream is updated according to the second candidate segment identification list, m ⁇ 2, and the second candidate segment identification list is a set candidate segment identification list.
- the number of segment identifiers in the initial segment identifier list of the first target stream updated according to the second candidate segment identifier list is reduced.
- the updating process further includes: after updating the initial segment identification list of the first target stream according to the second candidate segment identification list, the first If the initial segment identifier list of a target stream satisfies the fallback condition, then update the initial segment identifier list of the first target stream to the optimal segment identifier list; where n ⁇ 2, the fallback condition includes: the first After performing the update process n times, the congestion probability corresponding to the initial segment identification list of the first target flow is greater than the congestion probability corresponding to the optimal segment identification list, and the optimal segment identification list is: the corresponding congestion probability is the smallest A list of initial segment identifiers for the first target stream.
- each node in the communication system may send node information to the controller, and the node information sent by each node is used to indicate whether the node supports SR.
- the first determining module is configured to: receive node information sent by each node in the plurality of nodes, where the node information sent by each node is used to indicate whether each node supports SR; according to the The node information sent by the multiple nodes is used to determine the node set.
- a communication device is provided, the communication device is a first node among a plurality of nodes, the plurality of nodes are communicatively connected to a controller, the plurality of nodes belong to the same communication network, and the communication device Including: receiving module and forwarding module.
- the receiving module is configured to receive the target segment identification list of the target flow sent by the controller, wherein the target segment identification list includes: the segment identification of the sink node of the target flow and the segment identification of at least one intermediate node,
- the first node is a source node of the target stream; both the first node and the intermediate node belong to a node set, and the node set includes: a node supporting SR among the multiple nodes, and the intermediate node on the path between the source node and the sink node of the target flow.
- the forwarding module is configured to forward the packets of the target flow according to the target segment identification list of the target flow.
- the above adjustment conditions can be configured on the nodes or on the controller.
- the first node can judge whether the link it is connected to meets the adjustment condition, and when at least one link connected to the node meets the adjustment condition, the node can send the Link information, where the link information is used to indicate that the at least one link satisfies the adjustment condition.
- the communication device further includes: a judging module and a first sending module, the judging module is used for judging whether the link to which it is connected satisfies the adjustment condition.
- a first sending module configured to send link information to the controller when at least one link connected to the first node meets the adjustment condition, and the link information is used to indicate that the at least one link meets the adjustment condition The above adjustment conditions.
- the first node may determine whether at least one link connected to the node satisfies the adjustment condition according to link state information, such as link congestion rate, link connectivity state, and adjustment condition.
- link state information such as link congestion rate, link connectivity state, and adjustment condition.
- the first node may send link information to the controller, where the link information is used to indicate that the at least one link meets the adjustment condition.
- the controller will receive the link information sent by at least one node among the multiple nodes, and then can determine the link that satisfies the adjustment condition according to the received link information.
- the communication device further includes: a third sending module, configured to report the performance data or status information of the node and/or the link connecting the node to the controller.
- the controller can count and obtain the link status information of each node, such as link congestion rate and link connectivity status. After that, the controller can determine the link status information that meets the adjustment conditions based on the above adjustment conditions and the link status information of each node. link.
- adjustment conditions are configured on both the node and the controller.
- the communication device may judge the configured adjustment conditions, and send link information to the controller according to the judgment result.
- the communication device further includes: a judging module, configured to judge whether the link to which it is connected satisfies the adjustment condition.
- the controller can judge the configured adjustment condition according to the received link information, so as to obtain the link satisfying the adjustment condition.
- the adjustment condition configured on the node and the adjustment condition configured on the controller may be the same or different, which is not limited in this application.
- the above-mentioned adjustment condition may be any condition, for example, the adjustment condition includes: the congestion rate of the link is greater than the first congestion threshold; the link is faulty; The congestion probability of is greater than the first congestion probability threshold, x ⁇ 2.
- the first congestion threshold and the first congestion probability threshold may be equal or unequal.
- the link information is also used to indicate: the traffic of each link in the at least one link at multiple historical moments.
- the path indicated by the target segment identification list is different from the current packet forwarding path of the target flow.
- each node in the communication system may send node information to the controller, and the node information sent by each node is used to indicate whether the node supports SR.
- the communication device further includes: a second sending module, configured to send node information to the controller, where the node information is used to indicate whether the first node supports SR.
- a communication device in a fifth aspect, includes: a processor and a memory, and a program is stored in the memory; the processor is used to call the program stored in the memory, so that the communication device Execute the communication method described in any design in the first aspect.
- a communication device in a sixth aspect, includes: a processor and a memory, and a program is stored in the memory; the processor is used to call the program stored in the memory, so that the communication device Execute the communication method described in any design in the second aspect.
- a communication system includes: a controller and a plurality of nodes, the controller is communicatively connected to the plurality of nodes, and the plurality of nodes belong to the same communication network; the controller includes the third aspect The communication device described in any design, the node includes the communication device described in any design in the fourth aspect; or, the controller includes the communication device described in any design in the fifth aspect, and the node includes Any design of the communication device in the sixth aspect.
- a computer storage medium is provided, and a computer program is stored in the computer storage medium; when the computer program runs on a computer, the computer executes the communication method described in any design of the first aspect; or , when the computer program runs on the computer, the computer executes the communication method described in any design of the second aspect.
- a computer program product containing instructions.
- the communication device executes the communication method described in any design of the first aspect; or, when the computer program product runs on the communication device When running on the communication device, the communication device is made to execute the communication method according to any design of the second aspect.
- FIG. 1 is a schematic structural diagram of a communication system provided by an embodiment of the present application.
- FIG. 2 is a schematic structural diagram of a communication device provided in an embodiment of the present application.
- FIG. 3 is a schematic diagram of a message forwarding path provided by an embodiment of the present application.
- FIG. 4 is a schematic diagram of another message forwarding path provided by the embodiment of the present application.
- FIG. 5 is a flowchart of a communication method provided by an embodiment of the present application.
- FIG. 6 is a schematic diagram of a message forwarding process provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram of another message forwarding path provided by the embodiment of the present application.
- FIG. 8 is a flow chart of a method for obtaining a list of target segment identifiers provided by an embodiment of the present application.
- FIG. 9 is a schematic diagram of an update process provided by an embodiment of the present application.
- FIG. 10 is a schematic diagram of another update process provided by the embodiment of the present application.
- FIG. 11 is a block diagram of a communication device provided by an embodiment of the present application.
- FIG. 12 is a block diagram of another communication device provided by an embodiment of the present application.
- FIG. 13 is a schematic diagram of functional modules of a controller and a node provided in an embodiment of the present application.
- Fig. 1 is a schematic structural diagram of a communication system provided by the embodiment of the present application.
- the communication system includes: a controller and a plurality of nodes (such as nodes A, B, C, D, E in Fig. 1 , F, G, H, I, J, K and L).
- the controller is communicatively connected to the plurality of nodes. These nodes belong to the same communication network, and there are some links between the nodes, and these nodes can be connected by communication through these links.
- the communication system includes twelve nodes as an example, and the number of nodes in the communication system may also be other numbers, such as 100, 1000, and so on.
- a node may be called a forwarding node, and the node has the function of forwarding packets, and the node may be a router, a gateway, or the like.
- the communication device may include: a processor; the processor is configured to be coupled with a memory, and after reading an instruction in the memory, execute the method performed by the communication device as described in the embodiment of the present application according to the instruction.
- the memory coupled to the processor may be independent of the processor or the communication device, or within the processor or the network device.
- the storage can be a physically independent unit, or it can be a storage space on a cloud server or a network hard disk.
- FIG. 2 is a schematic structural diagram of a communication device provided by an embodiment of the present application.
- the communication device 200 includes: a processor 202 and a memory 201, wherein the memory 201 is used to store a program, and the processor 202 is used to call the program stored in the memory 201, so that the communication device executes a corresponding method or function.
- the communication device 200 may further include at least one communication interface 203 and at least one communication bus 204 .
- the memory 201 , the processor 202 and the communication interface 203 are communicatively connected through a communication bus 204 .
- the communication interface 203 is used for communicating with other devices under the control of the processor 202 , and the processor 202 can call the program stored in the memory 201 through the communication bus 204 .
- a message forwarding path of at least one type of flow may be deployed in the communication system.
- the flow can be any kind of service flow, for example, best effort (Best Effort, BE) service flow, voice and video flow, key service flow, interactive service flow, etc.
- BE best effort
- Each flow has a source node and a sink node in the communication network where multiple nodes are located.
- the message forwarding path of this flow is the path from the source node to the sink node.
- the message of this flow will be forwarded by the message Node forwarding on the forwarding path.
- the packet forwarding path of the flow may be the path of the SR tunnel
- the controller will generate the policy of the SR tunnel for the flow, and send the policy of the SR tunnel to the source node of the SR tunnel among the multiple nodes (that is, the source node of the flow), so that the source node can forward the packet of the flow along the path of the SR tunnel according to the policy of the SR tunnel.
- the message forwarding path of the flow may be a path calculated by the node itself.
- the node After receiving the message of the flow, the node will, according to the sink node of the flow, based on the internal gateway protocol (Interior Gateway Protocol, IGP) Open Shortest Path First (Open Shortest Path First, OSPF) protocol or Intermediate System-to-Intermediate System (Intermediate System-to-Intermediate System, IS-IS) routing protocol to calculate the packet forwarding path, and report the flow
- IGP Interior Gateway Protocol
- OSPF Open Shortest Path First
- IS-IS Intermediate System-to-Intermediate System
- SLA Service Level Agreement
- the packet forwarding path of flow 1 is node C ⁇ node G ⁇ node I ⁇ node J; the packet forwarding path of flow 2 is node G ⁇ node I ⁇ node J ⁇ node L.
- the two message forwarding paths in Figure 3 both pass through the link between nodes I and J. This link needs to forward the messages of these two flows, and this link is prone to congestion or failure. .
- the link between nodes I and J can reduce the number of packets that need to be forwarded. Thereby reducing the probability of the link congestion and failure.
- the packet forwarding path of the above-mentioned flow 2 may be adjusted as node G ⁇ node C ⁇ node A ⁇ node D ⁇ node L.
- the controller can generate a new SR tunnel policy for the flow, and send the new SR tunnel policy to the source node of the SR tunnel, so that the source node
- the node deletes the old SR tunnel policy of the flow, and forwards the packets of the flow along the path of the new SR tunnel according to the new SR tunnel policy. In this way, the packet forwarding path of the flow can be adjusted.
- this situation requires the nodes in the entire communication system to support SR.
- some nodes often support SR, while other nodes do not support SR. When some nodes do not support SR, this method of adjusting message forwarding paths is not applicable.
- the embodiment of the present application provides a communication method.
- the communication method can indicate the message forwarding path of the target flow by sending the target segment identification list to the source node of the target flow in the communication network, reduce network link congestion, and improve packet forwarding path. Document forwarding efficiency.
- the method can be applied to the case where all nodes in the communication system support SR, the case where some nodes in the communication system support SR, and the case where the message forwarding path of the flow is a path calculated by the nodes themselves.
- the communication method can adjust the message forwarding paths of at least part of the target flows.
- FIG. 5 is a flowchart of a communication method provided in an embodiment of the present application, and the communication method may be used in a communication system provided in an embodiment of the present application (the communication system shown in FIG. 1 ).
- the communication method includes:
- the controller determines a node set, where the node set includes nodes supporting SR in the communication system.
- the controller needs to determine whether each node in the communication system supports SR, and then obtain a node set including nodes supporting SR, so as to adjust message forwarding paths based on the node set.
- the above-mentioned SR-capable nodes support one or more SR protocols, such as Segment Routing Multi Protocol Label Switching (SR MPLS) based on Multi-Protocol Label Switching or Segment Routing (Segment Routing Internet Protocol) based on version 6 Internet protocol. Protocol version 6, SRv6) etc.
- the set of nodes includes every node in the communication system.
- the node set includes the part of nodes that support SR.
- nodes A, F, G, H, and K all support SR, and nodes B, C, D, E, I, and J do not support SR, then the nodes determined by the controller The set includes nodes A, F, G, H and K.
- controller determines the node set
- three ways are taken as examples to explain.
- each node in the communication system may send node information to the controller, and the node information sent by each node is used to indicate whether the node supports SR.
- the controller may determine the node set according to the node information sent by all nodes.
- the nodes supporting SR in the communication system may send the above node information to the controller, and the nodes not supporting SR may not send the above node information to the controller.
- the controller may determine the above-mentioned node set according to the nodes that have sent the node information.
- the above node set may be pre-configured on the controller, and the controller may directly acquire the node set.
- the controller can synchronize the information of the nodes supporting SR in the communication system from the third-party system.
- the third-party system is the network management system of the communication system. Node information.
- the controller determines a target flow among the flows carried on links between multiple nodes, and the source node of the target flow in the communication network belongs to the node set.
- Links between multiple nodes in the communication system carry at least one flow, and packets forwarded on each link are packets of the flow carried on the link.
- the controller may filter out the target flow to be adjusted from the flows carried on the links between multiple nodes according to the node set determined in S101.
- the source node of the target flow in the communication network where multiple nodes are located in the communication system belongs to the node set, in other words, the source node of the target flow in the communication network supports SR.
- the target flow is the flow whose packet forwarding path needs to be adjusted.
- the target flow can be a flow with low forwarding efficiency.
- the link between them is faulty (congested), etc.
- the embodiment of the present application does not limit the manner in which the controller screens the target stream, and one of the manners will be used as an example to explain below.
- the controller may first determine whether the links between multiple nodes meet the adjustment conditions, and obtain a set of links to be adjusted according to the determined links that meet the adjustment conditions, and then, in the set of links to be adjusted, link Determine the target stream among the streams hosted on the . Wherein, the links in the link set to be adjusted meet the adjustment condition. It can be seen that the controller first screens out the set of links to be adjusted, and then screens out the target stream to be adjusted from the flows carried on the links in the set of links to be adjusted (flows to be adjusted). Wherein, the flow to be adjusted is the flow that needs to be adjusted in the above packet forwarding path.
- the source node of the flow in the communication network may support SR, SR may also not be supported.
- the target flow is the flow to be adjusted carried by the link in the link set to be adjusted, and the source node of the target flow in the communication network supports SR.
- the adjustment conditions include: 1) the congestion rate of the link meets the preset condition A, for example, the congestion rate of the link is greater than the first congestion threshold; 2) the link is faulty; 3) the congestion rate of the link meets Preset condition B, and the congestion probability in x future moments or within the predicted time period satisfies preset condition C, x ⁇ 2, for example, the congestion rate of the link is greater than the first congestion threshold, and the link is in 10 future moments
- the congestion probability of is greater than the first congestion probability threshold.
- the first congestion threshold and the first congestion probability threshold may be equal or unequal.
- the congestion rate of the link when the congestion rate of the link is greater than the first congestion threshold, the link is more likely to be congested, the transmission efficiency of the packets of the flow carried on this link is low, and the flow carried on this link The packet forwarding path of the flow needs to be adjusted.
- the packets of the flow carried on the link cannot be effectively transmitted, and the packet forwarding path of the flow needs to be adjusted.
- the congestion rate of the link is greater than the first congestion threshold, and the congestion probability at x future moments is greater than the first congestion probability threshold, the link is more likely to be congested currently and in the future, and the link The current and future transmission efficiency of the flow carried on the link is low, and the packet forwarding path of the flow carried on the link needs to be adjusted.
- the above adjustment conditions can be configured on the nodes or on the controller.
- the node determines whether at least one link connected to the node satisfies the adjustment condition according to link state information, such as link congestion rate, link connectivity status, and the adjustment condition.
- link state information such as link congestion rate, link connectivity status, and the adjustment condition.
- the node may send link information to the controller, where the link information is used to indicate that the at least one link meets the adjustment condition.
- the controller will receive the link information sent by at least one node among the multiple nodes, and then can determine the link that satisfies the adjustment condition according to the received link information.
- link information is used to indicate whether the link satisfies the adjustment condition
- the link information may include the conclusion of whether the link satisfies the adjustment condition, or may be parameters related to the conclusion.
- the controller can determine the link that satisfies the adjustment condition according to the conclusion.
- the link information includes a parameter related to the conclusion
- the controller can obtain the conclusion according to the parameter, and then determine the link that satisfies the adjustment condition.
- the adjustment condition can be configured by the staff on the node, or it can be sent by the controller to the controller after the staff configures it on the controller. Nodes are not limited in this embodiment of the present application.
- the node will report the performance data or status information of the node and/or the link connected to the node to the controller, and the controller will collect statistics and obtain the link status information of each node, such as the link congestion rate , the link connectivity state, based on the above adjustment conditions and the link state information of each node, determine the link that satisfies the adjustment conditions.
- the link state information of the node may be: state information of at least some links connected to the node.
- adjustment conditions can be configured on both the node and the controller.
- the node can judge the configured adjustment conditions, and send link information to the controller according to the judgment result.
- the controller can judge the configured adjustment condition according to the received link information, so as to obtain the link satisfying the adjustment condition.
- the adjustment condition configured on the node and the adjustment condition configured on the controller may be the same or different, which is not limited in this application.
- the controller first filters out the link set to be adjusted, and then filters the target flow from the flows carried on the links in the link set to be adjusted as an example.
- the controller may also select at least one flow that the source node supports SR from among the flows carried on the links between multiple nodes, and then randomly select one flow from the at least one flow as the target flow.
- the controller acquires a target segment identification list of the target flow.
- the target segment identifier list includes: the segment identifier of the sink node of the target flow in the communication network, and the segment identifier of at least one intermediate node; the intermediate node belongs to the node set and is located on the path between the source node and the sink node.
- the controller After the controller determines the target flow of the packet forwarding path to be adjusted, it can acquire the target segment identification list of the target flow.
- the segment identifier list (segment identifier list, SID list) is used to indicate the data transmission path.
- the target segment identification list is used to indicate a path.
- the controller can adjust the packet forwarding path of the target flow based on the target segment identification list.
- the path indicated by the target segment identification list of the target flow is different from the current packet forwarding path of the target flow, so as to adjust the current packet forwarding path of the target flow.
- the path indicated by the target segment identification list of the target flow may also be the same as the current packet forwarding path of the target flow, which is not limited in this embodiment of the present application.
- the target segment identification list includes the segment identification of the destination node of the target flow in the communication network, and the segment identification of at least one intermediate node. Moreover, the at least one intermediate node supports SR, and the source node of the target flow in the communication network also supports SR. In this way, it can be ensured that the source node and the at least one intermediate node have The ability of the path to forward packets.
- the controller sends the target segment identification list of the target flow to the first node, where the first node is a source node of the target flow in the communication network.
- the target segment identification list can indicate a new message forwarding path of the target flow.
- the controller can send the target segment identification list to the source node of the target flow in the communication network to instruct the source node according to the The target segment identification list forwards the packets of the target flow.
- the first node forwards the packet of the target flow according to the target segment identification list of the target flow.
- the first node can directly forward the packet of the target flow according to the list of target segment identifiers.
- the first node may encapsulate the target segment identification list of the target flow in the message, and send the encapsulated message to the first segment identification in the target segment identification list the indicated node.
- the node indicated by each segment identifier in the target segment identifier list receives the message, it will forward the message to the node indicated by the next segment identifier until the message is sent to the target stream in the communication network. sink node.
- the controller will send the target segment identifier list to node G.
- node G After node G receives the message of the target flow, it will encapsulate the list of target segment identifiers in the message, and send the encapsulated message to node A, and node A will The message is sent to node L.
- the one node can calculate the path to the other node (such as based on IGP or SPF and so on to calculate the path), and forward the message to the other node along the path.
- node G can calculate the path to node A (node G ⁇ node C ⁇ node A), and forward the message to node A along the path .
- node A can calculate the path to node L (node A ⁇ node D ⁇ node L), and forward the message to node L along the path.
- the message encapsulated by node G is shown in Figure 6, the message includes: source address (source address, SA), destination address (destination address, DA), and should still be accessed before reaching the node indicated by the destination address
- the number of intermediate nodes (segment left, SL), the segment identifier index (Last Segment, LS) of the node indicated by DA, the list of target segment identifiers and the load (including the content of the encapsulated message).
- Node G supports SR. Node G can look up the routing table according to the DA in the encapsulated message and learn that DA is A's next-hop route is C, and then forward the message to node C.
- node C After receiving the message, node C finds that the node indicated by DA is not node C, looks up the routing table and finds that DA is a direct route to A, and at this time, node C sends a message to node A through the outbound interface. Node A supports SR. After receiving the message, it finds that the node indicated by DA is node A itself. At this time, node A can read the target segment identification list in the message package, and according to the target segment in the message In the identification list, modify DA to the address of the node L indicated by the next identification, and decrement 1 from SL to update the message.
- node A can search the routing table according to the DA in the updated message and know that the next hop route of DA is L is D, and then send the updated message to node D.
- node D finds that the node indicated by DA is not node D.
- node D looks up the routing table and knows that DA is a direct route to L, and can send a message to node L through the outbound interface.
- node L receives the message, it finds that the node indicated by the DA is node L itself, and there is no next segment identifier in the target segment identifier list.
- node L can analyze the message to obtain Get the payload in the message.
- the path calculated by the node may be the shortest path, for example, the shortest path of Equal Cost Multi-path (ECMP), which is not limited in this embodiment of the present application.
- ECMP Equal Cost Multi-path
- the target stream For example, still take stream 2 in FIG. 3 as the target stream as an example.
- the path indicated by the target segment identifier list of the target flow is node G ⁇ node A ⁇ node L
- when node A forwards the message of the target flow to node L if the ECMP from node A to node L is calculated
- the shortest path includes: path 1 (node A ⁇ node D ⁇ node L), path 2 (node A ⁇ node E ⁇ node L), and path 3 (node A ⁇ node F ⁇ node L), then node A can pass Paths 1, 2, and 3 forward packets of the target flow to node L.
- the source node of the target flow in the communication network can forward the message of the target flow according to the target segment identification list of the target flow, and the path indicated by the target segment identification list is the same as the current packet forwarding of the target flow
- the paths are not the same, therefore, the adjustment of the packet forwarding path of the target flow can be realized.
- the intermediate nodes on the path indicated by the target segment identification list do not need to maintain the information of the path, but directly forward the message according to the received source node encapsulated message, which reduces the load of the intermediate node.
- the control Each device can determine the target flow among the flows carried on the links between multiple nodes, and adjust the message forwarding path of the target flow by sending the target segment identification list to the source node of the target flow in the communication network .
- the target flow of the adjusted packet forwarding path may be any type of service flow, as long as the service flow has the characteristics of the above-mentioned target flow. In this way, it is avoided that the packet forwarding path is adjusted for some types of service flows, but the packet forwarding path cannot be adjusted for other types of service flows.
- adjusting the packet forwarding path of the target flow can also relieve congestion and failure of the at least one link, and improve packet forwarding efficiency in the communication system.
- the node may judge whether the link connected to the node satisfies the adjustment condition, so as to trigger the adjustment of the packet forwarding path of the flow. In this way, the automatic adjustment of the packet forwarding path of the flow is realized, and the packet forwarding path of the flow is adjusted in a timely manner, so as to avoid link congestion and failure as much as possible, and avoid manual triggering of controller adjustment by the staff The packet forwarding path of the flow.
- the controller After the controller adjusts the packet forwarding path of the target flow, it can present the adjusted packet forwarding path of the target flow to the staff.
- the communication system provided by the embodiment of the present application further includes: a management device, the management device is connected to the controller, the controller can send the adjusted message forwarding path to the management device, and the management device can display the message to the staff forwarding path.
- the staff can configure information on the management device that needs to be configured on the controller (such as the above-mentioned adjustment conditions, etc.), and then the management device sends the information to the controller.
- the link information sent to the controller It may also be used to indicate the traffic of each link in the at least one link at multiple historical moments.
- the controller determines the set of links to be adjusted according to the received link information, it can first determine the link indicated by the received link information; after that, the controller can , predict the traffic of the link at multiple future times, and determine whether the link is a link to be adjusted according to the traffic of each link at multiple future times, and then obtain the chain to be adjusted including the link to be adjusted road collection. Wherein, the congestion probability of the link to be adjusted in at least x future moments is greater than the first congestion probability threshold.
- the links in the set of links to be adjusted not only meet the adjustment condition (the congestion rate of the link is greater than the first congestion threshold), but also meet the congestion of the link at least x future moments in multiple future moments The condition that the probability is greater than the first congestion probability threshold.
- the links in the set of links to be adjusted have a higher probability of congestion at present and in the future.
- the adjustment condition in S102 above includes that the congestion rate of the link is greater than the first congestion threshold, and when the congestion probability of x future moments is greater than the first congestion probability threshold, each node is connected to at least When a link satisfies the adjustment condition, the link information sent to the controller may also be used to indicate the traffic of each link in the at least one link at multiple historical moments.
- the controller may first obtain the set of links to be adjusted according to the links indicated by the received link information. Afterwards, the controller can predict the traffic of the link at multiple future moments based on the traffic of each link in the link set to be adjusted at multiple historical moments, and predict the traffic of the link at multiple future moments based on the traffic of each link at multiple future moments. , check whether the link is a link to be adjusted; if a link is not a link to be adjusted, remove the link to be adjusted from the set of links to be adjusted.
- the node needs to determine the current congestion rate of the link and predict the congestion probability of the link at a future moment, so as to determine whether the link meets the adjustment condition.
- the controller needs to predict the congestion probability of the links in the future to check whether the links in the set of links to be adjusted meet the adjustment conditions. In this way, the node and the controller respectively predict whether the link is likely to be congested in the future, thereby improving the accuracy of the predicted result.
- the adjustment condition in S102 above includes that the congestion rate of the link is greater than the first congestion threshold, and when the congestion probability of x future moments is greater than the first congestion probability threshold, each node is connected to at least When a link satisfies the adjustment condition, the link information sent to the controller may not be used to indicate the traffic of each link in the at least one link at multiple historical moments. In this way, the controller does not need to perform traffic prediction based on the traffic at these historical moments, and also reduces the amount of data to be transmitted between the node and the controller, saves bandwidth, and is more time-sensitive.
- At least one of the node and the controller can predict the future congestion probability of the link, and when the link is more likely to be congested at present and in the future, the link belongs to the set of links to be adjusted. , the controller can adjust the packet forwarding path of the target flow carried on the link. In this way, it is avoided to adjust the packet forwarding path of the target flow carried on these links in the case that some links are easy to be congested at present, but not easy to be congested in the future. Adjustments cause large network oscillations.
- the device can input the traffic of the link at multiple historical moments into the traffic forecasting model, so as to obtain the output of the link at multiple future moments from the traffic forecasting model traffic.
- the traffic prediction model is used to output the traffic of the link at multiple future moments according to the traffic of the input link at multiple historical moments.
- the initial model can be trained to obtain the traffic forecasting model.
- the algorithm used in the initial model may be any forecasting algorithm, an improvement of any forecasting algorithm, or a combination of multiple forecasting algorithms. These predictive algorithms can be statistical methods or machine learning methods.
- the statistical method may be: differential integrated moving average autoregressive model (autoregressive integrated moving average, ARIMA), exponentially weighted moving average model (exponentially weighted moving average, EWMA), etc.
- Machine learning methods can be: recurrent neural network (recurrent neural network, RNN), long short-term memory (long short-term memory, LSTM), gradient boosting decision tree (gradient boosting decision tree, GBDT), extreme gradient boosting model (Extreme Gradient Boosting, XGBoost), etc.
- the above S103 includes:
- the controller counts the flows carried on the links between multiple nodes.
- the controller may acquire topology information of the communication network, so as to execute S103 according to the topology information of the communication network.
- the topology information includes information of each link in the communication network, such as nodes at both ends of the link, capacity of the link, time delay of the link, affinity attribute of the link, and the like.
- the topology information can also include the flow information carried on the communication network, such as the source node of the flow, the destination node, the bandwidth required by the flow, the current packet forwarding path of the flow, and the routing conditions required by the flow (such as delay, hop count, etc.) , affinity attributes, passed nodes, non-passed nodes, etc.).
- the topology information of the communication network can be obtained by the controller itself, or configured by the staff on the controller, or configured by the staff on other devices and obtained by the controller from the other devices.
- the embodiment of the application does not limit this.
- the controller may collect statistics on flows carried on links between multiple nodes in the communication system according to the topology information of the above-mentioned communication network, so as to subsequently determine the target segment identification list based on the statistical results.
- the controller obtains an initial segment identifier list of each target flow in at least one target flow carried on a link in the link set to be adjusted, and the initial segment identifier list of each target flow is used to indicate the current segment identifier list of each target flow. Packet forwarding path.
- the controller may obtain an initial segment identifier list of each target flow carried on the link in the link set to be adjusted according to the topology information of the communication network.
- the initial segment identification list of the target flow includes the segment identification of the destination node of the target flow in the communication network, and the segment identification of the intermediate node supporting SR in the current packet forwarding path of the target flow.
- the initial segment identifier list of the target flow only includes the segment identifier of the destination node of the target flow in the communication network.
- the current packet forwarding path of flow 2 is: node G ⁇ node I ⁇ node J ⁇ node L. Since nodes I and J do not support SR, therefore, flow 2’s
- the initial segment ID list contains only node L's segment IDs.
- the initial segment identification list of the target stream can be used as the basis of the target segment identification, and the initial segment identification list of the target stream can be adjusted and updated subsequently to obtain the target segment identification list of the target stream.
- the controller can repeat the update process based on these information to obtain the target flow A list of target segment IDs.
- the update process refers to the update process of the initial segment identification list of the target stream.
- the update process includes:
- the controller randomly selects a first target stream from at least one target stream.
- the controller may randomly select the first target stream each time the update process is executed.
- the first target streams selected in the updating processes performed multiple times may be the same or different.
- the controller may select the first target stream in any one of various manners, two of which will be described below as examples.
- the controller may randomly select the first target flow from the at least one target flow.
- the controller may first randomly select the first link from the set of links to be adjusted, and then randomly select the first target flow from the target flows carried on the first link.
- the controller may randomly select a link in the set of links to be adjusted according to the link selection probability, and randomly select the first target flow from the target flows carried on this link according to the flow selection probability.
- the link selection probability is positively correlated with the congestion rate of the link
- the stream selection probability is positively correlated with the flow rate of the stream. In this way, the controller selects a link with a higher congestion rate in the set of links to be adjusted as the first link, and selects a flow with higher traffic as the first target flow.
- the filtered first target flow will be used as the preferentially adjusted packet forwarding path among at least one target flow In this way, when the link selection probability is positively correlated with the link congestion rate, and the flow selection probability is positively correlated with the flow traffic, it is possible to give priority to the link with higher traffic and higher congestion rate. Adjust the packet forwarding path for the target flow.
- the link selection probability stream selection probability Among them, u(e) represents the congestion rate of link e, E represents the set of links to be adjusted, l(d,e) represents the traffic of flow d carried on link e, and D(e) represents the traffic carried by link e For all flows of , ⁇ and ⁇ are constant.
- the congestion rate in this embodiment of the present application may be any parameter related to congestion, for example, the congestion rate of a link may be the utilization rate of a link.
- the controller determines whether a first candidate segment identifier list exists in the first target stream. When there is a first candidate segment identifier list, execute S10333.
- the controller may perform multiple adjustments to the initial segment identifier list of the first target stream to obtain a plurality of candidate segment identifier lists corresponding to the initial segment identifier list of the first target stream.
- These candidate segment identification lists are all used to indicate the path from the source node to the sink node of the first target flow.
- These candidate segment identification lists all include the segment identification of the sink node of the first target flow.
- the candidate segment identification list includes the segment identification of at least one intermediate node, these intermediate nodes all support SR, and the source node and the sink node of the first target flow Nodes are reachable through these intermediate node paths.
- the plurality of candidate segment identification lists are all obtained by the controller adjusting the initial segment identification list of the first target stream according to the segment identifications of the nodes in the node set, and the multiple candidate segment identification lists are different from each other.
- the various adjustments may include at least one of the following: insert segment identifiers into the initial segment identifier list of the first target stream, replace at least part of the segment identifiers in the initial segment identifier list of the first target stream, Some segment identifiers in the initial segment identifier list are deleted, and the initial segment identifier list of the first target stream is reset to the initial segment identifier list of the first target stream acquired in S1032.
- the current packet forwarding path of the first target flow is node G ⁇ node I ⁇ node J ⁇ node L.
- the node set in FIG. 3 includes nodes A, F, G, H and K, that is, nodes A, F, G, H and K all support SR.
- the initial segment identification list of the first target flow includes: the segment identification of node L.
- the plurality of candidate segment identification lists obtained by the controller through various adjustments to the initial segment identification may include: candidate segment identification list 1 (segment identification of node A, segment identification of node L), candidate segment identification list 2 (node A's Segment identifier, node F's segment identifier, node L's segment identifier), candidate segment identifier list 3 (node K's segment identifier, node L's segment identifier).
- candidate segment identification list 1 segment identification of node A, segment identification of node L
- candidate segment identification list 2 node A's Segment identifier, node F's segment identifier, node L's segment identifier
- candidate segment identifier list 3 node K's segment identifier, node L's segment identifier
- the controller After the controller obtains multiple candidate segment identification lists corresponding to the initial segment identification list of the first target stream, it can detect whether each candidate segment identification list satisfies the gain condition, and when there is a candidate segment identification list that meets the gain condition, according to The list of candidate segment identifiers satisfying the gain condition determines the first list of candidate segment identifiers.
- the controller may determine that there is no first candidate segment identification list of the first target stream, and at this time , the update process ends.
- the above gain condition includes: the congestion probability corresponding to the candidate segment identification list of the first target flow is smaller than the congestion probability corresponding to the initial segment identification list of the first target flow.
- the congestion probability corresponding to a segment identifier list of the first target flow is: when the first target flow is carried on the path indicated by the segment identifier list, the congestion probability of the links in the link set to be adjusted is average value.
- the average value can be any kind of average value, such as arithmetic average value, square average value, weighted average value, harmonic average value and the like.
- the first candidate segment identifier list of the first target flow satisfies the gain condition, therefore, the congestion probability corresponding to the first candidate segment identifier list is smaller than the congestion probability corresponding to the above-mentioned initial segment identifier list.
- the average value of the congestion probability of the links in the link set to be adjusted can be reduced. Therefore, if the packet forwarding path of the first target flow is adjusted to the path indicated by the first candidate segment identification list, then the congestion probability of the links in the link set to be adjusted can be reduced, thereby alleviating the congestion of the link set to be adjusted. Congestion and failure conditions in the middle link.
- the controller can calculate the congestion probability of the links in the current link set to be adjusted according to the flows carried on the links between the current multiple nodes obtained in S1031.
- the average value is used to obtain the congestion probability corresponding to the initial segment identifier list of the first target flow.
- the controller can calculate the load of the link according to the flow carried by each link in the link set to be adjusted, and then divide the load of the link by the capacity of the link to obtain the link the congestion probability. Afterwards, according to the congestion probability of each link in the link set to be adjusted, the average value of the congestion probabilities of the links in the link set to be adjusted is calculated to obtain the congestion probability corresponding to the initial segment identification list of the first target flow.
- the controller may also calculate and adjust the flows carried on the links between the current multiple nodes obtained in S1031, so that the first target flow is carried on the path indicated by each candidate segment identification list
- the average value of the congestion probabilities of the links in the link set to be adjusted is obtained to obtain the congestion probability corresponding to each candidate segment identification list of the first target flow.
- the controller can calculate the load of the link according to the flow carried by each link in the link set to be adjusted, and then the link The load of the link is divided by the capacity of the link to obtain the congestion probability of the link.
- the average value of the congestion probabilities of the links in the link set to be adjusted is calculated to obtain the congestion probability corresponding to each candidate segment identification list of the first target flow.
- the controller After the controller obtains the congestion probability corresponding to the initial segment identifier list of the first target flow and the congestion probability corresponding to each candidate segment identifier list of the first target flow, it can correspond to each candidate segment identifier list of the first target flow
- the congestion probability is compared with the congestion probability corresponding to the initial segment identification list to determine whether there is a candidate segment identification list whose corresponding congestion probability is smaller than the congestion probability corresponding to the initial segment identification list in the plurality of candidate segment identification lists.
- the multiple candidate segment identification lists of the first target flow include the above Candidate segment identification lists 1, 2 and 3, and candidate segment identification list 1 corresponds to a congestion probability of 40%, candidate segment identification list 2 corresponds to a congestion probability of 50%, and candidate segment identification list 1 corresponds to a congestion probability of 60%. Then the controller may determine that the candidate segment identifier list 1 is the first candidate segment identifier list of the initial segment identifier list.
- the controller may combine the congestion parameter Q to determine whether the congestion probability corresponding to the first candidate segment identification list is smaller than the congestion probability corresponding to the initial segment identification list.
- the congestion parameter Q max((L-Y), 0) of the link
- L represents the congestion probability of the link
- Y represents the second congestion probability threshold
- the second congestion probability threshold is less than or equal to the above-mentioned first congestion probability threshold.
- the controller may determine that the congestion probability corresponding to the first candidate segment identification list is less than the congestion probability corresponding to the initial segment identification list when the sum of the congestion parameters corresponding to the first candidate segment identification list is less than the sum of the congestion parameters corresponding to the initial segment identification list;
- the sum of the congestion parameters corresponding to a segment identification list is: the sum of the congestion parameters Q of the links in the link set to be adjusted when the first target flow is carried on the path indicated by the segment identification list.
- the above gain condition further includes: when the first target flow is carried on the path indicated by the candidate segment identification list, the congestion probabilities of other links are all less than or equal to the second congestion probability threshold.
- other links are links outside the set of links to be adjusted among the links between multiple nodes.
- the first candidate segment identification list of the first target flow satisfies the gain condition. Therefore, when the packet forwarding path of the first target flow is adjusted to the path indicated by the first candidate segment identification list, the congestion probabilities of other links will not is greater than or equal to the second congestion probability threshold, therefore, the congestion probability of other links is relatively small. It can be seen that in the process of adjusting the packet forwarding path of the first target flow, the congestion probability of other links will not be higher, thus avoiding the congestion of other links caused by adjusting the packet forwarding path of the first target flow case of high probability.
- the controller may determine the corresponding candidate segment identification list with the smallest congestion probability among the plurality of candidate segment identification lists as the first candidate segment identification list.
- the controller may combine the congestion parameter Q to determine whether the congestion probability of other links is less than or equal to the second congestion probability threshold. For example, the controller may determine that the congestion probability of the other link is less than or equal to the second congestion probability threshold when the congestion parameter of the other link is zero.
- the foregoing gain conditions may also include other conditions, which are not limited in this embodiment of the present application.
- the above gain conditions also include: the number of segment identifiers in the candidate segment identifier list is less than or equal to the number threshold, the delay of the path indicated by the candidate segment identifier list is less than or equal to the delay threshold, the path indicated by the candidate segment identifier list The path indicated by the candidate segment identification list does not pass through the nodes set in the communication network, and the path indicated by the candidate segment identification list has a set affinity attribute, etc. through the nodes set in the communication network.
- the above-mentioned candidate segment identification list of the first target flow may not be limited to whether it is used to indicate the path from the source node to the sink node of the first target flow.
- the candidate segment identification list includes at least one segment identification of an intermediate node
- the first The source node and sink node of a target flow are not limited to whether they are reachable through these intermediate node paths.
- the above gain conditions may also include: the candidate segment identifier list is used to indicate the path from the source node to the sink node of the first target flow, and the candidate segment identifier lists all include the segment identifier of the sink node of the first target flow, and in the candidate When the segment identifier list includes at least one segment identifier of an intermediate node, the source node and the sink node of the first target flow are reachable through these intermediate node paths.
- the gain condition may be configured by the staff on the controller, or configured by the staff on other devices and obtained by the controller from the other devices, which is not limited in this embodiment of the present application.
- the controller updates the initial segment identifier list of the first target stream according to the first candidate segment identifier list.
- the controller may update the initial segment identifier list of the first target stream to the first candidate segment identifier list.
- the initial segment identifier list of the first target stream is stored in a storage location of the controller, and the controller may update the initial segment identifier list stored in the storage location to the first candidate segment identifier list in S10333.
- the controller updates the flows carried on the links between the multiple nodes according to the path indicated by the updated initial segment identification list of the first target flow.
- the controller may update the information carried on the links between the multiple nodes obtained in S1031 according to the path indicated by the updated initial segment identification list of the first target flow.
- flow (such as updating the link carried by the first target flow), so as to be used in the next update process.
- the controller can judge the conditions in the stop condition set, and stop the repeat execution of the update process when at least one condition in the stop condition set is satisfied.
- the stop condition set includes: the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second congestion probability threshold.
- this condition indicates that when the packet forwarding path of the first target flow is adjusted to the path indicated by the updated initial segment identification list of the first target flow, the links of each link in the link set to be adjusted
- the congestion probabilities are all low, and there is no need to continue to repeat the above update process at this time.
- the controller may determine whether the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second congestion probability threshold in combination with the above congestion parameter Q. For example, when the sum of the congestion parameters corresponding to the updated initial segment identification list of the first target flow is zero, the controller may determine that the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second Congestion probability threshold.
- the set of stopping conditions may further include: the duration of repeatedly executing the update process reaches a duration threshold. In other words, if the time for which the controller repeatedly executes the update process reaches a duration threshold, the controller stops repeatedly executing the update process. In this way, it is avoided that the controller repeatedly executes the update process for too long, and the efficiency of path adjustment is ensured.
- the controller uses the updated initial segment identification list of each target flow as the target segment identification list of the target flow.
- the controller may use the updated initial segment identification list of each target flow as: the target segment identification list of this target flow, so as to obtain the target segment identification list of each target flow.
- the links in the set of links to be adjusted carry at least one target flow, and for at least part of the target flows in the at least one target flow, the path indicated by the target segment identifier list of the target flow is the same as the path indicated by the target flow.
- the current packet forwarding path of the target flow is different.
- the above update process may also include:
- the controller updates the first candidate segment identifier list according to the second candidate segment identifier list.
- the initial segment identifier list of a target stream, m ⁇ 2, and the second candidate segment identifier list is a set candidate segment identifier list.
- the purpose of the controller repeatedly executing the update process is to find a better segment identification list (such as the above-mentioned first candidate segment identification list) than the initial segment identification list of the first target stream. If there is no first candidate segment identification list that satisfies the gain condition, and the initial segment identification list of the first target stream has not been updated in the m consecutive update processes, it means that it is temporarily impossible to find an initial segment identification list that is better than the current initial segment A segment identification list with a better identification list indicates that the initial segment identification list of the current first target flow is a local optimal solution.
- the controller may directly update the initial segment identification list of the first target stream according to the second candidate segment identification list, so as to adjust the current initial segment identification list and jump out of the local optimal solution, so as to use the updated initial segment identification list id-list Find a better list of segment ids.
- the second candidate segment identification list is a set candidate segment identification list.
- the controller may set the second candidate segment identification list in any one of various ways. For example, the controller may pre-store the second candidate segment identifier list; or, the controller may pre-store an object adjustment method for the initial segment identifier list of the first target flow, and the first object may be adjusted according to the object adjustment method.
- the second list of candidate segment identifiers can be obtained by adjusting the initial segment identifier list of the stream.
- the number of segment identifiers in the initial segment identifier list of the first target stream after updating according to the second candidate segment identifier list is smaller than the segments in the initial segment identifier list of the first target stream before updating according to the second candidate segment identifier list
- the number of identities that is, the number of segment identifiers in the initial segment identifier list of the first target stream updated according to the second candidate segment identifier list decreases. In this way, the number of segment identifiers in the updated initial segment identifier list of the first target stream is small, which facilitates the controller to find a better segment identifier list of the first target stream in a subsequent update process.
- the controller may detect the first Whether the target flow's initial segment ID list satisfies the fallback condition. If the rollback condition is met, the controller may update the initial segment identification list of the first target stream to the optimal segment identification list.
- the controller executes the update process to update the initial segment identification list of the first target stream. Moreover, the controller may or may not update the initial segment identification list of the first target stream after each execution of the updating process. After each update process is performed, the initial segment identification list of the first target stream may be the same as or different from the initial segment identification list of the first target stream before the update process is performed. After the controller executes the updating process for the nth time after executing S10335, the controller may obtain the initial segment identifier list of the current first target stream, and detect whether the initial segment identifier list satisfies the rollback condition.
- the fallback condition includes: the congestion probability corresponding to the initial segment identification list of the first target flow after the update process is performed for the nth time is greater than the congestion probability corresponding to the optimal segment identification list.
- the optimal segment identifier list is: the corresponding initial segment identifier list of the first target flow with the smallest congestion probability. It should be noted that, when the controller repeatedly executes the update process, the initial segment identification list of the first target stream is continuously updated, so that the initial segment identification list of the first target stream is constantly changed. Among the initial segment identification lists of the first target flow, the congestion probability corresponding to the optimal segment identification list is the smallest.
- the controller may update the initial segment identification list of the first target stream to the optimal segment identification list.
- the update process includes S10335 and S10336 as an example.
- the update process may not include S10336, or the update process may not include S10335 and S10336. This is not limited.
- the first congestion threshold and the first congestion probability threshold may be used as the congestion threshold, and the second congestion probability threshold may be used as the tuning threshold.
- the congestion rate or congestion probability of the link when the congestion rate or congestion probability of the link is greater than the congestion threshold, the link is more likely to be congested. At this time, the packet forwarding path of the flow carried on the link needs to be adjusted to reduce the congestion probability of the link. Ensure the packet forwarding efficiency on the link. For example, when the congestion rate of the link is greater than the first congestion threshold, the adjustment of the packet forwarding path of the flow carried on the link may be triggered; or, when the congestion rate of the link is greater than the first congestion threshold, and the link When the future congestion probability is greater than the first congestion probability threshold, adjustment of the packet forwarding path of the flow carried on the link may be triggered.
- the congestion probability of the link is less than or equal to the tuning threshold, the link is less likely to be congested, and the packet forwarding efficiency on the link is higher. Therefore, after the controller adjusts the message forwarding path of the target flow carried by the links in the link set to be adjusted (links that are more likely to be congested), the average value of the congestion probability of the links in the link set to be adjusted decreases. (eg, reduced to a state less than or equal to the second congestion probability threshold). In addition, the congestion probability of the above other link whose congestion rate is relatively low may also be less than or equal to the second congestion probability threshold. It can be seen that after the controller adjusts the message forwarding path of the target flow carried by the links in the link set to be adjusted, the congestion probability of each link among multiple nodes can be roughly less than or equal to the tuning threshold.
- the packet forwarding paths of flow 1 and flow 2 both pass through the link between node I and node J.
- the congestion rate of this link is greater than the congestion threshold, and the future congestion probability of this link is also greater than congestion threshold.
- the controller may adjust the packet forwarding path of flow 2 carried on this link, so that the congestion probability of each link between multiple nodes may be substantially less than or equal to the tuning threshold.
- the packet forwarding path of flow 2 is adjusted to the packet forwarding path of flow 2 shown in FIG. 4 .
- the above-mentioned congestion threshold and the above-mentioned tuning threshold may be pre-stored on the controller, and the controller may directly acquire the congestion threshold and the tuning threshold.
- the controller pre-stores the congestion threshold and the ratio corresponding to the tuning threshold, and the controller may directly obtain the congestion threshold and multiply the congestion threshold by the ratio corresponding to the tuning threshold to obtain the tuning threshold.
- the communication method provided by the present application is described in detail above in conjunction with FIG. 1 to FIG. 10. It can be understood that, in order to realize the functions described in the above-mentioned methods, the device needs to include hardware and/or software modules corresponding to each function .
- the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software drives hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different ways to implement the described functions in combination with the embodiments for each specific application, but such implementation should not be regarded as exceeding the scope of the present application.
- each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module.
- the above integrated modules may be implemented in the form of hardware.
- Fig. 11 is a block diagram of a communication device provided by an embodiment of the present application, for example, the communication device may belong to the controllers in the foregoing embodiments.
- the controller is communicatively connected to a plurality of nodes, and the plurality of nodes belong to the same communication network. As shown in FIG. Module 1104.
- the first determining module 1101 is used to determine a node set, and the node set includes nodes supporting SR among the plurality of nodes; for operations performed by the first determining module 1101, reference may be made to content related to the controller in S101 above.
- the second determination module 1102 is configured to determine a target flow among the flows carried on the links between the multiple nodes, and the source node of the target flow in the communication network belongs to the node set; the second determination module 1102 For the operations to be performed, reference may be made to the content related to the controller in S102 above.
- the obtaining module 1103 is configured to obtain a target segment identification list of the target flow; wherein, the target segment identification list includes: a segment identification of a sink node of the target flow in the communication network, and a segment of at least one intermediate node identification; the intermediate node belongs to the node set, and is located on the path between the source node and the sink node; the operations performed by the acquisition module 1103 can refer to the content related to the controller in S103 above.
- the sending module 1104 is configured to send the target segment identification list to the source node, so as to instruct the source node to forward the packet of the target flow according to the target segment identification list.
- the sending module 1104 For operations performed by the sending module 1104, reference may be made to content related to the controller in S104 above.
- the communication device further includes: a third determining module (not shown in FIG. 11 ), configured to determine a set of links to be adjusted among the links between the multiple nodes, and the links to be adjusted The links in the set satisfy the adjustment condition; the second determination module is configured to determine the target flow among the flows carried on the links in the set of links to be adjusted.
- the controller can first determine the set of links to be adjusted, and then determine the target flow according to the set of links to be adjusted.
- the above-mentioned adjustment condition may be any condition, for example, the adjustment condition includes: the congestion rate of the link is greater than the first congestion threshold; the link is faulty; The congestion probability of is greater than the first congestion probability threshold, x ⁇ 2.
- the first congestion threshold and the first congestion probability threshold may be equal or unequal.
- the above adjustment conditions can be configured on the nodes or on the controller.
- the node determines whether at least one link connected to the node satisfies the adjustment condition according to link state information, such as link congestion rate, link connectivity status, and the adjustment condition.
- link state information such as link congestion rate, link connectivity status, and the adjustment condition.
- the node may send link information to the controller, where the link information is used to indicate that the at least one link meets the adjustment condition.
- the communication device further includes: a receiving module (not shown in FIG.
- the communication device belonging to the controller will receive the link information sent by at least one of the multiple nodes, and then can determine the link that satisfies the adjustment condition according to the received link information.
- the node may report the performance data or status information of the node and/or the link connecting the node to the controller.
- the third determining module can be used to: collect statistics and obtain link state information of each node, such as link congestion rate and link connectivity state, and then determine based on the above adjustment conditions and the link state information of each node Links that meet the adjustment conditions.
- the link state information of the node may be: state information of at least some links connected to the node.
- adjustment conditions are configured on both the node and the controller.
- the node may judge the configured adjustment conditions, and send link information to the controller according to the judgment result.
- the third determination module may judge the configured adjustment condition according to the received link information, so as to obtain the link satisfying the adjustment condition. It should be noted that the adjustment condition configured on the node and the adjustment condition configured on the controller may be the same or different, which is not limited in this application.
- the link information sent by each node is also used to indicate: the traffic of each link in the at least one link at multiple historical moments; the third determining module is configured to: according to the The traffic of each link at the multiple historical moments, predicting the traffic of each link at multiple future moments; according to the traffic of each link at multiple future moments, determining the link to be adjusted, Congestion probabilities of the links to be adjusted at least x times in the future are greater than a first congestion probability threshold; and the set of links to be adjusted is determined according to the links to be adjusted.
- the links in the set of links to be adjusted carry at least one target flow; for at least part of the target flows in the at least one target flow, the path indicated by the target segment identification list of the target flow is consistent with the target flow.
- the current packet forwarding path of the target flow is different.
- the obtaining module 1103 is configured to: firstly count the flows carried on the links between the multiple nodes, and obtain an initial segment identification list of each target flow in the at least one target flow, and each target flow
- the initial segment identification list is used to indicate the current packet forwarding path of each target flow; after that, the update process is repeatedly executed, and when at least one condition in the stop condition set is met, the repeat execution of the update process is stopped, and the The updated initial segment identification list of each target flow is used as the target segment identification list of each target flow.
- the above update process includes: randomly selecting a first target stream in the at least one target stream; determining whether a first candidate segment identification list exists in the first target stream; when there is the first candidate segment identification list, according to the updating the initial segment identification list of the first target flow with the first candidate segment identification list; and updating the paths between the plurality of nodes according to the path indicated by the updated initial segment identification list of the first target flow A flow carried on a link; wherein, the first candidate segment identification list is used to indicate the path from the source node to the sink node of the first target flow; the congestion probability corresponding to the first candidate segment identification list is less than the The congestion probability corresponding to the initial segment identification list; the congestion probability corresponding to one segment identification list is: when the first target flow is carried on the path indicated by the one segment identification list, the links in the link set to be adjusted The average value of the congestion probability of the path; the stop condition set includes: the congestion probability corresponding to the updated initial segment identification list of the first target flow is less than or equal to the second congestion probability threshold.
- the set of stopping conditions further includes: the duration of repeatedly executing the update process reaches a duration threshold.
- the congestion probability of the link is less than or equal to the second congestion probability threshold.
- the first candidate segment identification list is the candidate with the smallest congestion probability in the plurality of candidate segment identification lists A list of segment identifiers.
- the controller may randomly select a link in the set of links to be adjusted according to the link selection probability, and randomly select the first target flow from the target flows carried on this link according to the flow selection probability.
- the obtaining module 1103 is configured to: randomly select the first link in the set of links to be adjusted according to the link selection probability, the link selection probability is positively correlated with the congestion rate of the link; A selection probability is to randomly select the first target flow from the target flows carried on the first link, and the flow selection probability is positively correlated with the traffic volume of the flow.
- the communication device further includes: a fourth determining module (not shown in FIG. 11 ), and/or, a fifth determining module (not shown in FIG. 11 ), and/or, a sixth determining module (not shown in Figure 11).
- the fourth determining module is configured to determine that the congestion probability corresponding to the first candidate segment identification list is less than the sum of the congestion parameters corresponding to the initial segment identification list when the sum of the congestion parameters corresponding to the first candidate segment identification list is less than The congestion probability corresponding to the initial segment identification list;
- the fifth determination module is configured to determine the updated first target flow when the sum of the congestion parameters corresponding to the updated initial segment identification list of the first target flow is zero.
- the congestion probability corresponding to the initial segment identification list of the target flow is less than or equal to the second congestion probability threshold;
- the sixth determination module is used to determine the congestion probability of the other link when the congestion parameter of the other link is zero less than or equal to the second congestion probability threshold;
- the updating process further includes: when the first candidate segment identification list does not exist, and the initial segment identification list of the first target stream is not identified in the update process performed m consecutive times, When updating, the initial segment identification list of the first target stream is updated according to the second candidate segment identification list, m ⁇ 2, and the second candidate segment identification list is a set candidate segment identification list.
- the number of segment identifiers in the initial segment identifier list of the first target stream updated according to the second candidate segment identifier list is reduced.
- the updating process further includes: after updating the initial segment identification list of the first target stream according to the second candidate segment identification list, the first If the initial segment identifier list of a target stream satisfies the fallback condition, then update the initial segment identifier list of the first target stream to the optimal segment identifier list; where n ⁇ 2, the fallback condition includes: the first After performing the update process n times, the congestion probability corresponding to the initial segment identification list of the first target flow is greater than the congestion probability corresponding to the optimal segment identification list, and the optimal segment identification list is: the corresponding congestion probability is the smallest A list of initial segment identifiers for the first target stream.
- each node in the communication system may send node information to the controller, and the node information sent by each node is used to indicate whether the node supports SR.
- the first determination module 1101 is configured to: receive node information sent by each node in the plurality of nodes, where the node information sent by each node is used to indicate whether each node supports SR; according to The node information sent by the multiple nodes determines the node set.
- Fig. 12 is a block diagram of another communication device provided by an embodiment of the present application.
- the communication device may belong to the first node among the multiple nodes in the foregoing embodiments.
- the multiple nodes are communicatively connected to the controller, and the multiple nodes belong to the same communication network.
- the communication device includes: a receiving module 1201 and a forwarding module 1202 .
- the receiving module 1201 is configured to receive the target segment identification list of the target flow sent by the controller, wherein the target segment identification list includes: the segment identification of the sink node of the target flow and the segment identification of at least one intermediate node, the The first node is the source node of the target stream; both the first node and the intermediate node belong to a node set, and the node set includes: among the multiple nodes, a node that supports SR, and the intermediate node is located at On the path between the source node and the sink node of the target flow; for the operations performed by the receiving module 1201, reference may be made to the content related to the first node in S104 above.
- the forwarding module 1202 is configured to forward the packet of the target flow according to the target segment identification list of the target flow. For the operations performed by the forwarding module 1202, reference may be made to the content related to the first node in S105 above.
- the above adjustment conditions can be configured on the nodes or on the controller.
- the first node can judge whether the link it is connected to meets the adjustment condition, and when at least one link connected to the node meets the adjustment condition, the node can send the Link information, where the link information is used to indicate that the at least one link satisfies the adjustment condition.
- the communication device further includes: a first sending module (not shown in FIG. 12 ), configured to send link information to the controller when at least one link connected to the first node satisfies the adjustment condition , the link information is used to indicate that the at least one link satisfies the adjustment condition.
- the first node may determine whether at least one link connected to the node satisfies the adjustment condition according to link state information, such as link congestion rate, link connectivity state, and adjustment condition.
- link state information such as link congestion rate, link connectivity state, and adjustment condition.
- the first node may send link information to the controller, where the link information is used to indicate that the at least one link meets the adjustment condition.
- the controller will receive the link information sent by at least one node among the multiple nodes, and then can determine the link that satisfies the adjustment condition according to the received link information.
- the communication device further includes: a third sending module (not shown in FIG. 12 ), configured to report the performance data or status information of the node and/or the node connection link to the controller device.
- a third sending module (not shown in FIG. 12 ), configured to report the performance data or status information of the node and/or the node connection link to the controller device.
- the controller can count and obtain the link status information of each node, such as link congestion rate and link connectivity status. After that, the controller can determine the link status information that meets the adjustment conditions based on the above adjustment conditions and the link status information of each node. link.
- adjustment conditions are configured on both the node and the controller.
- the first node may judge the configured adjustment conditions, and send link information to the controller according to the judgment result.
- the communication device further includes: a judging module, configured to judge whether the link to which it is connected satisfies the adjustment condition.
- the controller can judge the configured adjustment condition according to the received link information, so as to obtain the link satisfying the adjustment condition.
- the adjustment condition configured on the node and the adjustment condition configured on the controller may be the same or different, which is not limited in this application.
- the above-mentioned adjustment condition may be any condition, for example, the adjustment condition includes: the congestion rate of the link is greater than the first congestion threshold; the link is faulty; The congestion probability of is greater than the first congestion probability threshold, x ⁇ 2.
- the first congestion threshold and the first congestion probability threshold may be equal or unequal.
- the link information is also used to indicate: the traffic of each link in the at least one link at multiple historical moments.
- the path indicated by the target segment identification list is different from the current packet forwarding path of the target flow.
- each node in the communication system may send node information to the controller, and the node information sent by each node is used to indicate whether the node supports SR.
- the communication device further includes: a second sending module (not shown in FIG. 12 ), configured to send node information to the controller, where the node information is used to indicate whether the first node supports SR.
- the controller in the communication system may include an acquisition module, a prediction module, an optimization module, and a routing module, and the nodes may include a monitoring module and a forwarding module.
- the monitoring module in the node can be used to detect whether the connected link meets the adjustment condition, and when the connected link meets the adjustment condition, report the link information to the acquisition module in the controller (used to indicate that the link is at multiple historical moments traffic).
- the acquisition module in the controller can be used to acquire data such as the above-mentioned node set, topology information of the communication network, and traffic of links at multiple historical moments.
- the prediction module in the controller is used to predict the traffic of the link at multiple future moments according to the traffic of the link at multiple historical moments, and decide whether the link belongs to the link to be adjusted according to the traffic of these future moments.
- the routing module in the controller is used to calculate the paths between nodes.
- the optimization module in the controller is used to obtain the target segment identification list of the target flow carried on the link to be adjusted according to the path between nodes, the topology information of the communication network and the node set.
- the optimization module in the controller is also used to send the target segment identification list of the target flow to the source node of the target flow.
- the forwarding module in the source node is used to forward the message of the target flow according to the received target segment identification list.
- the communication device belonging to the controller or the first node provided in the present application may include a processing module, a storage module and a communication module.
- the processing module may be used to control and manage actions of the communication device, for example, may be used to support the communication device to perform the actions performed by the controller or the first node in S101 to S105 above.
- the storage module can be used to support the communication device to execute stored program codes and data, etc.
- the communication module can be used for communication between the communication device and other devices.
- the processing module may be a processor or a controller. It can implement or execute the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
- the processor can also be a combination of computing functions, such as a combination of one or more microprocessors, a combination of digital signal processing (digital signal processing, DSP) and a microprocessor, and the like.
- the storage module may be a memory.
- the communication module can be a device that interacts with other devices, such as a radio frequency circuit, a Bluetooth chip, or a Wi-Fi chip.
- the processing module is a processor
- the storage module is a memory
- the communication module is a communication interface
- the communication device involved in this embodiment may be a communication device with the structure shown in FIG. 2 .
- the above-mentioned modules and the like included in the communication device may be computer programs stored in a memory and invoked by a processor to implement corresponding execution functions of each module.
- An embodiment of the present application also provides a communication system, which includes the above-mentioned controller and multiple nodes.
- the controller is communicatively connected to the multiple nodes, and the multiple nodes belong to the same communication network; the controller includes any communication device belonging to the controller provided in the embodiment of the present application (as shown in FIG. 11 communication device), the node includes any communication device belonging to the first node provided in the embodiment of the present application (the communication device shown in FIG. 12 ).
- An embodiment of the present application provides a computer storage medium, and a computer program is stored in the storage medium; when the computer program runs on a computer, the computer executes any one of the data transmission methods provided by the embodiments of the present application.
- the embodiment of the present application also provides a computer program product containing instructions.
- the computer program product runs on the communication device, the communication device executes any one of the data transmission methods provided in the embodiment of the present application by the first node or the second Two-node execution method.
- all or part of them may be implemented by software, hardware, firmware or any combination thereof.
- software it may be implemented in whole or in part in the form of a computer program product comprising one or more computer instructions.
- the computer program instructions When the computer program instructions are loaded and executed on the computer, the processes or functions according to the embodiments of the present application will be generated in whole or in part.
- the computer may be a general purpose computer, a computer network, or other programmable devices.
- the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server or data
- the center transmits to another website site, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.).
- the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server, a data center, etc. integrated with one or more available media.
- the available medium may be a magnetic medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium, or a semiconductor medium (for example, a solid-state hard disk).
- first and second etc. are used for descriptive purposes only, and should not be construed as indicating or implying relative importance.
- at least one means one or more, and “plurality” means two or more, unless otherwise clearly defined.
- the term “and/or” is just an association relationship describing associated objects, which means that there can be three relationships, for example, A and/or B can mean: A exists alone, A and B exist at the same time, and B exists alone. three conditions.
- the disclosed systems and devices may be implemented in other configurations.
- the device embodiments described above are only illustrative.
- the division of modules is only a logical function division. In actual implementation, there may be other division methods.
- multiple modules can be combined or integrated into another A system, or some feature, can be ignored, or not implemented.
- the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or modules may be in electrical or other forms.
- a unit described as a separate component may or may not be physically separated, and a component described as a unit may or may not be a physical unit, and may be located in one place or distributed to multiple devices. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种通信方法、设备及系统,属于通信技术领域。所述方法包括:控制器在确定包括支持分段路由的节点的节点集合后,可以向源节点发送目标段标识列表,以指示源节点根据目标段标识列表转发目标流的报文。目标流在通信网络中的源节点属于节点集合。本申请提供的通信方法能够通过向目标流的源节点发送目标段标识列表,以指示目标流的报文转发路径,减少网络链路拥塞,提高报文转发效率。
Description
本申请要求于2021年05月21日提交的申请号为202110559103.1、发明名称为“通信方法、设备及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及通信技术领域,特别涉及一种通信方法、设备及系统。
通信系统包括多个节点,这些节点之间具有链路,通信系统中流的源节点在接收到该流的报文后,可以沿经过至少一个链路的报文转发路径向该条流的宿节点转发该条流的报文。
通常,源节点在接收到流的报文后,会根据流的报文需要转发至的宿节点,采用最短路径优先(Shortest Path First,SPF)算法,确定源节点到宿节点的路径。之后,源节点便可以沿该路径将该条流报文转发至宿节点。由于网络中部署了大量尽力而为BE业务(Best Effort Service),如果按照SPF算法得到的路径转发,可能出现多条流的报文都使用某些节点间的链路进行转发,导致这些链路出现性能瓶颈,最终导致链路流量拥塞,影响报文转发效率。
发明内容
本申请提供了一种通信方法、设备及系统,该通信方法能够通过向目标流在通信网络中的源节点发送目标段标识列表,以指示目标流的报文转发路径,减少网络链路拥塞,提高报文转发效率,所述技术方案如下:
第一方面,提供了一种通信方法,该方法由控制器执行,所述控制器与多个节点通信连接,所述多个节点属于同一通信网络,所述方法包括:控制器在确定节点集合后,首先在所述多个节点间的链路上承载的流中确定目标流,并获取所述目标流的目标段标识列表。然后,控制器向所述源节点发送所述目标段标识列表,以指示所述源节点根据所述目标段标识列表转发所述目标流的报文。其中,控制器确定出的所述节点集合包括所述多个节点中支持分段路由(Segment Routing,SR)的节点;所述目标流在所述通信网络中的源节点属于所述节点集合;所述目标段标识列表包括:所述目标流在所述通信网络中的宿节点的段标识,以及至少一个中间节点的段标识;所述中间节点属于所述节点集合,且位于所述源节点和所述宿节点之间的路径上。
本申请提供的通信方法能够通过向目标流在通信网络中的源节点发送目标段标识列表,以指示目标流的报文转发路径,减少网络链路拥塞,报文转发效率。并且,该方法可以适用于通信系统中所有节点均支持SR的情况,通信系统中部分节点均支持SR情况,以及流的报文转发路径是节点自行计算得到的路径的情况。
在本申请中,控制器能够通过目标段标识列表指定目标流的报文转发路径。其中,所述目标流的目标段标识列表所指示的路径与所述目标流当前的报文转发路径可以相同也可以不同。
当目标流的目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同时,控 制器通过向目标流在通信网络中的源节点发送目标段标识列表,就能够实现对目标流的报文转发路径进行调整。
可选地,目标流的目标段标识列表所指示的路径的报文传输效率可以高于目标流当前的报文转发路径的报文传输效率。比如,目标流当前的报文转发路径所经过的某个节点出现性能问题,或者某两个节点间的链路发生拥塞或者故障,进而导致目标流中报文的时延、丢包率等服务级别协议(Service Level Agreement,SLA)指标劣化,导致网络性能下降。那么,通过对目标流的报文转发路径进行调整便能够提升目标流的转发效率,提升网络性能。
可选地,目标流的目标段标识列表所指示的路径的报文传输效率可以小于目标流当前的报文转发路径的报文传输效率。比如,目标流属于优先级较低的流,且目标流当前的报文转发路径与优先级较高的流的报文转发路径相同,那么通过对目标流的报文转发路径进行调整,便能实现对该优先级较高的流的报文转发路径的保护,以防止目标流对该优先级较高的流的报文转发造成影响。
当目标流的目标段标识列表所指示的路径与目标流当前的报文转发路径相同时,本申请能够实现控制器对目标流当前的报文转发路径进行确认。
可选地,所述方法还包括:控制器在所述多个节点间的链路上承载的流中确定目标流之前,在所述多个节点间的链路中确定待调整链路集合,所述待调整链路集合中的链路满足调整条件;控制器在所述多个节点间的链路上承载的流中确定目标流时,可以在所述待调整链路集合中的链路上承载的流中确定所述目标流。在这种方式下,控制器可以首先确定出待调整链路集合,之后再根据待调整链路集合确定目标流。
上述调整条件可以是任一种条件,比如,调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或者,链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。第一拥塞阈值和第一拥塞概率阈值可以相等,也可以不相等。
当链路的拥塞率大于第一拥塞阈值时,链路较容易发生拥塞,该条链路上承载的流的报文的传输效率较低,该条链路上承载的流的报文转发路径需要调整。当链路故障时,该条链路上承载的流的报文无法有效传输,该条流的报文转发路径需要调整。当链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值时,该条链路当前和未来均较容易发生拥塞,该条链路上承载的流在当前和未来的传输效率均较低,该条链路上承载的流的报文转发路径需要调整。
上述调整条件可以被配置在节点上或控制器上。
如果调整条件被配置在节点上,节点根据链路状态信息,例如链路拥塞率,链路连通状态,以及调整条件确定节点连接的至少一条链路是否满足调整条件。在节点连接的至少一条链路满足调整条件时,该节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,控制器会接收多个节点中至少一个节点发送的链路信息,进而可以根据接收到的链路信息,确定满足调整条件的链路。
需要说明的是,上述“链路信息”用于指示链路是否满足调整条件,链路信息可以包含链路是否满足调整条件的结论,也可以是与该结论相关的参数。在链路信息包含该结论时,控制器可以根据该结论确定满足调整条件的链路。在链路信息包含与该结论相关的参数时,控制器可以根据该参数得到该结论,进而确定满足调整条件的链路。
如果调整条件被配置在控制器上,节点可以将该节点和/或节点连接链路的性能数据或状 态信息上报给控制器。此时,控制器可以统计并获得各节点的链路状态信息,例如链路拥塞率,链路连通状态,之后,控制器可以基于上述调整条件和各节点的链路状态信息确定满足调整条件的链路。其中,节点的链路状态信息可以是:节点连接的至少部分链路的状态信息。
可选地,节点和控制器上均配置有调整条件,此时,节点可以对配置的该调整条件进行判断,并根据判断结果向控制器发送链路信息。控制器可以根据接收到的链路信息对配置的调整条件进行判断,从而得到满足调整条件的链路。需要说明的是,节点上配置的调整条件和控制器上配置的调整条件可以相同也可以不同,本申请对此不作限定。
可选地,所述每个节点发送的链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量;控制器在根据接收到的所述链路信息,确定所述待调整链路集合时,可以首先根据所述每条链路在所述多个历史时刻的流量,预测所述每条链路在多个未来时刻的流量;之后,再根据所述每条链路在多个未来时刻的流量,确定待调整链路,所述待调整链路在至少x个所述未来时刻的拥塞概率大于第一拥塞概率阈值;最后,根据所述待调整链路确定所述待调整链路集合。
可见,在链路在当前和未来均较容易拥塞时,该链路属于待调整链路集合,此时,控制器可以对该链路上承载的目标流的报文转发路径进行调整。这样一来,就避免了在有些链路当前较容易拥塞,但未来不容易拥塞的情况下,对这些链路上承载的目标流的报文转发路径进行调整,避免了对报文转发路径频繁调整造成较大的网络振荡。
示例地,所述待调整链路集合中的链路上承载有至少一条目标流;对于所述至少一条目标流中的至少部分目标流,所述目标流的目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。这样一来,通过本申请实施例提供的方法便可以实现对该至少部分目标流的报文转发路径进行调整,以减轻网络拥塞的程度。
控制器获取目标流的目标段标识列表的方式可以有多种,以下将以其中一种方式为例进行说明。示例地,控制器获取所述目标流的目标段标识列表,包括:控制器首先统计所述多个节点间的链路上承载的流,以及获取所述至少一条目标流中每条目标流的初始段标识列表,所述每条目标流的初始段标识列表用于指示所述每条目标流当前的报文转发路径;之后,控制器重复执行更新过程,并在停止条件集合中的至少一个条件满足时,停止重复执行所述更新过程,并将所述每条目标流的更新后的初始段标识列表作为所述每条目标流的目标段标识列表。
上述更新过程包括:在所述至少一条目标流中随机选择第一目标流;确定所述第一目标流是否存在第一候选段标识列表;当存在所述第一候选段标识列表时,根据所述第一候选段标识列表更新所述第一目标流的初始段标识列表;以及,根据更新后的所述第一目标流的初始段标识列表所指示的路径,更新所述多个节点间的链路上承载的流;其中,所述第一候选段标识列表用于指示所述第一目标流的源节点到宿节点的路径;所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;一个段标识列表对应的拥塞概率为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞概率的平均值;所述停止条件集合包括:更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值。
第一候选段标识列表对应的拥塞概率小于上述初始段标识列表对应的拥塞概率。当第一目标流承载在第一候选段标识列表所指示的路径上时,待调整链路集合中链路的拥塞概率的 平均值能够降低。所以,如果将第一目标流的报文转发路径调整为第一候选段标识列表所指示的路径,那么待调整链路集合中链路的拥塞概率能够得到降低,从而能够缓解待调整链路集合中链路的拥塞和故障情况。
停止条件集合包括:更新后的第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值。在这一条件满足时,表明在将第一目标流的报文转发路径调整为更新后的第一目标流的初始段标识列表所指示的路径时,待调整链路集合中各条链路的拥塞概率均较低,此时无需继续重复执行上述更新过程。
进一步地,停止条件集合还可以包括:重复执行更新过程的时长达到时长阈值。换句话说,如果控制器重复执行更新过程的时间达到时长阈值,则控制器会停止重复执行更新过程。这样一来,就避免了控制器重复执行更新过程的时间过长,保证了路径调整的效率。
可选地,在所述第一目标流承载在所述第一候选段标识列表所指示的路径上时,所述多个节点间的链路中位于所述待调整链路集合之外的其他链路的拥塞概率小于或等于所述第二拥塞概率阈值。当将第一目标流的报文转发路径调整为第一候选段标识列表所指示的路径时,其他链路的拥塞概率不会大于或等于第二拥塞概率阈值,因此,其他链路的拥塞概率较小。可见,在调整第一目标流的报文转发路径的过程中,并不会使得其他链路的拥塞概率较高,因此,避免了调整第一目标流的报文转发路径导致其他链路的拥塞概率较高的情况。
可选地,当存在对应所述第一目标流的初始段标识列表的多个候选段标识列表时,所述第一候选段标识列表为所述多个候选段标识列表中拥塞概率最小的候选段标识列表。
可选地,控制器可以根据链路选择概率在待调整链路集合中随机选择一条链路,以及根据流选择概率在这条链路上承载的目标流中随机筛选第一目标流。其中,链路选择概率与链路的拥塞率正相关,流选择概率与流的流量正相关。这样一来,便使得控制器选择待调整链路集合中拥塞率较高的链路作为第一链路,以及选择流量较高的流作为第一目标流。
由于拥塞率较高的链路较容易拥塞和故障,且流量较高的流较容易引起链路拥塞和故障,筛选出的第一目标流会作为至少一条目标流中优先被调整报文转发路径的流,这样一来,在链路选择概率与链路的拥塞率正相关,流选择概率与流的流量正相关时,能够实现优先对流量较高且被承载的链路的拥塞率较高的目标流进行报文转发路径的调整。
可选地,控制器可以结合拥塞参数Q,来确定第一候选段标识列表对应的拥塞概率是否小于初始段标识列表对应的拥塞概率。其中,对于多个节点间的任一链路,该链路的拥塞参数Q=max((L-Y),0),L表示该链路的拥塞概率,Y表示第二拥塞概率阈值,第二拥塞概率阈值小于或等于上述第一拥塞概率阈值。控制器可以在第一候选段标识列表对应的拥塞参数之和小于初始段标识列表对应的拥塞参数之和时,确定第一候选段标识列表对应的拥塞概率小于初始段标识列表对应的拥塞概率;其中,一个段标识列表对应的拥塞参数之和为:在第一目标流承载在这个段标识列表所指示的路径上时,待调整链路集合中链路的拥塞参数Q之和。
可选地,控制器可以结合拥塞参数Q,来确定其他链路的拥塞概率是否小于或等于第二拥塞概率阈值。比如,控制器可以在其他链路的拥塞参数为零时,确定该其他链路的拥塞概率小于或等于第二拥塞概率阈值。
可选地,控制器可以结合上述拥塞参数Q来确定更新后的第一目标流的初始段标识列表对应的拥塞概率是否小于或等于第二拥塞概率阈值。比如,控制器可以在更新后的第一目标 流的初始段标识列表对应的拥塞参数之和为零时,确定更新后的第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值。
可选地,所述更新过程还包括:当不存在所述第一候选段标识列表,且在连续m次执行过的所述更新过程中均未对所述第一目标流的初始段标识列表进行更新时,控制器根据第二候选段标识列表更新所述第一目标流的初始段标识列表,m≥2,所述第二候选段标识列表为设定的候选段标识列表。
需要说明的是,控制器重复执行更新过程的目的是为了找到比第一目标流的初始段标识列表更好的段标识列表(如上述第一候选段标识列表)。如果不存在满足增益条件的第一候选段标识列表,且在连续m次执行过的更新过程中均未对第一目标流的初始段标识列表进行更新,则表明目前暂时无法找到比当前初始段标识列表更好的段标识列表,表明当前第一目标流的初始段标识列表为局部最优解。此时,控制器可以直接根据第二候选段标识列表更新第一目标流的初始段标识列表,以对当前的初始段标识列表进行调整,跳出局部最优解,以便于根据更新后的初始段标识列表找到更好的段标识列表。
可选地,根据所述第二候选段标识列表更新后的所述第一目标流的初始段标识列表中段标识的数量减小。也即,在根据第二候选段标识列表更新后的第一目标流的初始段标识列表中段标识的数量,小于根据第二候选段标识列表更新前的第一目标流的初始段标识列表中段标识的数量。这样一来,更新后的第一目标流的初始段标识列表中段标识的数量较少,从而能够便于控制器在后续更新过程中找到更好的第一目标流的段标识列表。
可选地,所述更新过程还包括:在根据所述第二候选段标识列表对所述第一目标流的初始段标识列表进行更新后,第n次执行所述更新过程后的所述第一目标流的初始段标识列表满足回退条件,则控制器将所述第一目标流的初始段标识列表更新为最优段标识列表。其中,n≥2,所述回退条件包括:所述第n次执行所述更新过程后所述第一目标流的初始段标识列表对应的拥塞概率大于所述最优段标识列表对应的拥塞概率,所述最优段标识列表为:对应的拥塞概率最小的所述第一目标流的初始段标识列表。
在根据所述第二候选段标识列表对所述第一目标流的初始段标识列表进行更新后,如果第n次执行更新过程后的第一目标流的初始段标识列表仍然差于最优段标识列表,则表明基于第二候选段标识列表更新的后的第一目标流的初始段标识列表无法找到更好的第一目标流的段标识列表。此时,控制器可以将第一目标流的初始段标识列表更新为最优段标识列表。
控制器确定节点集合的方式多种多样。比如,通信系统中的每个节点均可以向控制器发送节点信息,每个节点发送的节点信息用于指示该节点是否支持SR。此时,控制器可以根据所有节点发送的节点信息,确定节点集合。
第二方面,提供了一种通信方法,该方法由多个节点中的第一节点执行,所述多个节点与控制器通信连接,所述多个节点属于同一通信网络,所述方法包括:第一节点在接收所述控制器发送的目标流的目标段标识列表之后,根据所述目标流的目标段标识列表,转发所述目标流的报文。其中,所述目标段标识列表包括:所述目标流的宿节点的段标识以及至少一个中间节点的段标识,所述第一节点为所述目标流的源节点;所述第一节点和所述中间节点均属于节点集合,所述节点集合包括:所述多个节点中支持SR的节点,所述中间节点位于所述目标流的源节点和宿节点之间的路径上。
可选地,所述目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。此 时,通过本申请提供的通信方法便可以实现对目标流当前的报文转发路径进行调整。
可选地,目标流当前的报文转发路径所经过的至少部分链路满足调整条件。
上述调整条件可以被配置在节点上或控制器上。
可选地,如果调整条件被配置在节点上,第一节点可以对其连接的链路是否满足调整条件进行判断,在节点连接的至少一条链路满足调整条件时,该节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。
示例地,第一节点可以根据链路状态信息,例如链路拥塞率,链路连通状态,以及调整条件确定节点连接的至少一条链路是否满足调整条件。在第一节点连接的至少一条链路满足调整条件时,该第一节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,控制器会接收多个节点中至少一个节点发送的链路信息,进而可以根据接收到的链路信息,确定满足调整条件的链路。
需要说明的是,上述“链路信息”用于指示链路是否满足调整条件,链路信息可以包含链路是否满足调整条件的结论,也可以是与该结论相关的参数。在链路信息包含该结论时,控制器可以根据该结论确定满足调整条件的链路。在链路信息包含与该结论相关的参数时,控制器可以根据该参数得到该结论,进而确定满足调整条件的链路。
如果调整条件被配置在控制器上,那么第一节点可以将该节点和/或该节点连接链路的性能数据或状态信息上报给控制器。此时,控制器可以统计并获得各节点的链路状态信息,例如链路拥塞率,链路连通状态,之后,控制器可以基于上述调整条件和各节点的链路状态信息确定满足调整条件的链路。
可选地,节点和控制器上均配置有调整条件,此时,节点可以对配置的该调整条件进行判断,并根据判断结果向控制器发送链路信息。控制器可以根据接收到的链路信息对配置的调整条件进行判断,从而得到满足调整条件的链路。需要说明的是,节点上配置的调整条件和控制器上配置的调整条件可以相同也可以不同,本申请对此不作限定。
上述调整条件可以是任一种条件,比如,调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或者,链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。第一拥塞阈值和第一拥塞概率阈值可以相等,也可以不相等。
当链路的拥塞率大于第一拥塞阈值时,链路较容易发生拥塞,该条链路上承载的流的报文的传输效率较低,该条链路上承载的流的报文转发路径需要调整。当链路故障时,该条链路上承载的流的报文无法有效传输,该条流的报文转发路径需要调整。当链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值时,该条链路当前和未来均较容易发生拥塞,该条链路上承载的流在当前和未来的传输效率均较低,该条链路上承载的流的报文转发路径需要调整。
可选地,所述链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量。
可选地,在接收所述控制器发送的目标流的目标段标识列表之前,所述方法还包括:第一节点向所述控制器发送节点信息,所述节点信息用于指示所述第一节点是否支持SR。通信系统中的每个节点均可以向控制器发送节点信息,每个节点发送的节点信息用于指示该节点是否支持SR。
第三方面,提供了一种通信设备,所述通信设备为控制器,所述控制器与多个节点通信 连接,所述多个节点属于同一通信网络,所述通信设备包括:第一确定模块、第二确定模块、获取模块和发送模块。其中,第一确定模块用于确定节点集合,所述节点集合包括所述多个节点中支持SR的节点;第二确定模块用于在所述多个节点间的链路上承载的流中确定目标流,所述目标流在所述通信网络中的源节点属于所述节点集合;获取模块用于获取所述目标流的目标段标识列表;其中,所述目标段标识列表包括:所述目标流在所述通信网络中的宿节点的段标识,以及至少一个中间节点的段标识;所述中间节点属于所述节点集合,且位于所述源节点和所述宿节点之间的路径上;发送模块用于向所述源节点发送所述目标段标识列表,以指示所述源节点根据所述目标段标识列表转发所述目标流的报文。
可选地,所述通信设备还包括:第三确定模块,用于在所述多个节点间的链路中确定待调整链路集合,所述待调整链路集合中的链路满足调整条件;所述第二确定模块用于在所述待调整链路集合中的链路上承载的流中确定所述目标流。在这种方式下,控制器可以首先确定出待调整链路集合,之后再根据待调整链路集合确定目标流。
上述调整条件可以是任一种条件,比如,调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或者,链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。第一拥塞阈值和第一拥塞概率阈值可以相等,也可以不相等。
上述调整条件可以被配置在节点上或控制器上。
如果调整条件被配置在节点上,节点根据链路状态信息,例如链路拥塞率,链路连通状态,以及调整条件确定节点连接的至少一条链路是否满足调整条件。在节点连接的至少一条链路满足调整条件时,该节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,所述通信设备还包括:接收模块,用于接收所述多个节点中至少一个节点发送的链路信息,所述至少一个节点中每个节点发送的链路信息用于指示所述每个节点连接的至少一条链路满足所述调整条件;所述第三确定模块用于根据接收到的所述链路信息,确定所述待调整链路集合。可以看出,属于控制器的通信设备会接收多个节点中至少一个节点发送的链路信息,进而可以根据接收到的链路信息,确定满足调整条件的链路。
如果调整条件被配置在控制器上,节点可以将该节点和/或节点连接链路的性能数据或状态信息上报给控制器。此时,所述第三确定模块可以用于:统计并获得各节点的链路状态信息,例如链路拥塞率,链路连通状态,之后,基于上述调整条件和各节点的链路状态信息确定满足调整条件的链路。其中,节点的链路状态信息可以是:节点连接的至少部分链路的状态信息。
可选地,节点和控制器上均配置有调整条件,此时,节点可以对配置的该调整条件进行判断,并根据判断结果向控制器发送链路信息。所述通信设备中的第三确定模块可以根据接收到的链路信息对配置的调整条件进行判断,从而得到满足调整条件的链路。需要说明的是,节点上配置的调整条件和控制器上配置的调整条件可以相同也可以不同,本申请对此不作限定。
可选地,所述每个节点发送的链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量;所述第三确定模块用于:根据所述每条链路在所述多个历史时刻的流量,预测所述每条链路在多个未来时刻的流量;根据所述每条链路在多个未来时刻的流量,确定待调整链路,所述待调整链路在至少x个所述未来时刻的拥塞概率大于第一拥塞概率阈值;根据所述待调整链路确定所述待调整链路集合。
示例地,所述待调整链路集合中的链路上承载有至少一条目标流;对于至少一条目标流中的至少部分目标流,所述目标流的目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。
控制器获取目标流的目标段标识列表的方式可以有多种,以下将以其中一种方式为例进行说明。所述获取模块用于:首先统计所述多个节点间的链路上承载的流,以及获取所述至少一条目标流中每条目标流的初始段标识列表,所述每条目标流的初始段标识列表用于指示所述每条目标流当前的报文转发路径;之后,重复执行更新过程,并在停止条件集合中的至少一个条件满足时,停止重复执行所述更新过程,并将所述每条目标流的更新后的初始段标识列表作为所述每条目标流的目标段标识列表。
上述更新过程包括:在所述至少一条目标流中随机选择第一目标流;确定所述第一目标流是否存在第一候选段标识列表;当存在所述第一候选段标识列表时,根据所述第一候选段标识列表更新所述第一目标流的初始段标识列表;以及,根据更新后的所述第一目标流的初始段标识列表所指示的路径,更新所述多个节点间的链路上承载的流;其中,所述第一候选段标识列表用于指示所述第一目标流的源节点到宿节点的路径;所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;一个段标识列表对应的拥塞概率为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞概率的平均值;所述停止条件集合包括:更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值。
可选地,所述停止条件集合还包括:重复执行所述更新过程的时长达到时长阈值。
可选地,在所述第一目标流承载在所述第一候选段标识列表所指示的路径上时,所述多个节点间的链路中位于所述待调整链路集合之外的其他链路的拥塞概率小于或等于所述第二拥塞概率阈值。
可选地,当存在对应所述第一目标流的初始段标识列表的多个候选段标识列表时,所述第一候选段标识列表为所述多个候选段标识列表中拥塞概率最小的候选段标识列表。
可选地,控制器可以根据链路选择概率在待调整链路集合中随机选择一条链路,以及根据流选择概率在这条链路上承载的目标流中随机筛选第一目标流。此时,所述获取模块用于:根据链路选择概率,在所述待调整链路集合中随机选择第一链路,所述链路选择概率与链路的拥塞率正相关;根据流选择概率,在所述第一链路上承载的目标流中随机筛选第一目标流,所述流选择概率与流的流量正相关。
可选地,所述通信设备还包括:第四确定模块,和/或,第五确定模块,和/或,第六确定模块。第四确定模块用于在所述第一候选段标识列表对应的拥塞参数之和小于所述初始段标识列表对应的拥塞参数之和时,确定所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;第五确定模块用于在更新后的所述第一目标流的初始段标识列表对应的拥塞参数之和为零时,确定更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值;第六确定模块用于在所述其他链路的所述拥塞参数为零时,确定所述其他链路的拥塞概率小于或等于所述第二拥塞概率阈值;
其中,一个段标识列表对应的拥塞参数之和为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞参数之和;对于所述多个节点间的任一链路,所述链路的拥塞参数Q=max((L-Y),0),L表示所述链路的拥塞概率, Y表示所述第二拥塞概率阈值。
可选地,所述更新过程还包括:当不存在所述第一候选段标识列表,且在连续m次执行过的所述更新过程中均未对所述第一目标流的初始段标识列表进行更新时,根据第二候选段标识列表更新所述第一目标流的初始段标识列表,m≥2,所述第二候选段标识列表为设定的候选段标识列表。
可选地,根据所述第二候选段标识列表更新后的所述第一目标流的初始段标识列表中段标识的数量减小。
可选地,所述更新过程还包括:在根据所述第二候选段标识列表对所述第一目标流的初始段标识列表进行更新后,第n次执行所述更新过程后的所述第一目标流的初始段标识列表满足回退条件,则将所述第一目标流的初始段标识列表更新为最优段标识列表;其中,n≥2,所述回退条件包括:所述第n次执行所述更新过程后所述第一目标流的初始段标识列表对应的拥塞概率大于所述最优段标识列表对应的拥塞概率,所述最优段标识列表为:对应的拥塞概率最小的所述第一目标流的初始段标识列表。
控制器确定节点集合的方式多种多样。比如,通信系统中的每个节点均可以向控制器发送节点信息,每个节点发送的节点信息用于指示该节点是否支持SR。此时,所述第一确定模块用于:接收所述多个节点中每个节点发送的节点信息,所述每个节点发送的节点信息用于指示所述每个节点是否支持SR;根据所述多个节点发送的所述节点信息,确定所述节点集合。
第四方面,提供了一种通信设备,所述通信设备为多个节点中的第一节点,所述多个节点与控制器通信连接,所述多个节点属于同一通信网络,所述通信设备包括:接收模块和转发模块。其中,接收模块用于接收所述控制器发送的目标流的目标段标识列表,其中,所述目标段标识列表包括:所述目标流的宿节点的段标识以及至少一个中间节点的段标识,所述第一节点为所述目标流的源节点;所述第一节点和所述中间节点均属于节点集合,所述节点集合包括:所述多个节点中支持SR的节点,所述中间节点位于所述目标流的源节点和宿节点之间的路径上。转发模块用于根据所述目标流的目标段标识列表,转发所述目标流的报文。
可选地,目标流当前的报文转发路径所经过的至少部分链路满足调整条件。
上述调整条件可以被配置在节点上或控制器上。
可选地,如果调整条件被配置在节点上,第一节点可以对其连接的链路是否满足调整条件进行判断,在节点连接的至少一条链路满足调整条件时,该节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,所述通信设备还包括:判断模块和第一发送模块,判断模块用于对其连接的链路是否满足调整条件进行判断。第一发送模块,用于在所述第一节点连接的至少一条链路满足调整条件时,向所述控制器发送链路信息,所述链路信息用于指示所述至少一条链路满足所述调整条件。
示例地,第一节点可以根据链路状态信息,例如链路拥塞率,链路连通状态,以及调整条件确定节点连接的至少一条链路是否满足调整条件。在第一节点连接的至少一条链路满足调整条件时,该第一节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,控制器会接收多个节点中至少一个节点发送的链路信息,进而可以根据接收到的链路信息,确定满足调整条件的链路。
如果调整条件被配置在控制器上,那么通信设备还包括:第三发送模块,用于将该节点和/或该节点连接链路的性能数据或状态信息上报给控制器。此时,控制器可以统计并获得各 节点的链路状态信息,例如链路拥塞率,链路连通状态,之后,控制器可以基于上述调整条件和各节点的链路状态信息确定满足调整条件的链路。
可选地,节点和控制器上均配置有调整条件,此时,通信设备可以对配置的该调整条件进行判断,并根据判断结果向控制器发送链路信息。相应地,所述通信设备还包括:判断模块,判断模块用于对其连接的链路是否满足调整条件进行判断。控制器可以根据接收到的链路信息对配置的调整条件进行判断,从而得到满足调整条件的链路。需要说明的是,节点上配置的调整条件和控制器上配置的调整条件可以相同也可以不同,本申请对此不作限定。
上述调整条件可以是任一种条件,比如,调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或者,链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。第一拥塞阈值和第一拥塞概率阈值可以相等,也可以不相等。
可选地,所述链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量。
可选地,目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。
可选地,通信系统中的每个节点均可以向控制器发送节点信息,每个节点发送的节点信息用于指示该节点是否支持SR。相应地,所述通信设备还包括:第二发送模块,用于向所述控制器发送节点信息,所述节点信息用于指示所述第一节点是否支持SR。
第五方面,提供了一种通信设备,所述通信设备包括:处理器和存储器,所述存储器中存储有程序;所述处理器用于调用所述存储器中存储的程序,以使得所述通信设备执行如第一方面中任一设计所述的通信方法。
第六方面,提供了一种通信设备,所述通信设备包括:处理器和存储器,所述存储器中存储有程序;所述处理器用于调用所述存储器中存储的程序,以使得所述通信设备执行如第二方面中任一设计所述的通信方法。
第七方面,一种通信系统,包括:控制器和多个节点,所述控制器与所述多个节点通信连接,所述多个节点属于同一通信网络;所述控制器包括第三方面中任一设计所述的通信设备,所述节点包括第四方面中任一设计所述的通信设备;或者,所述控制器包括第五方面中任一设计所述的通信设备,所述节点包括第六方面中任一设计所述的通信设备。
第八方面,体了一种计算机存储介质,所述计算机存储介质内存储有计算机程序;所述计算机程序在计算机上运行时,使得计算机执行第一方面中任一设计所述的通信方法;或者,所述计算机程序在计算机上运行时,使得计算机执行第二方面中任一设计所述的通信方法。
第九方面,提供了一种包含指令的计算机程序产品,当计算机程序产品在通信设备上运行时,使得通信设备执行如第一方面任一设计所述的通信方法;或者,当计算机程序产品在通信设备上运行时,使得通信设备执行如第二方面任一设计所述的通信方法。
第二方面至第九方面中任一种设计方式所带来的技术效果可参见第一方面中相应设计方式所带来的技术效果,此处不再赘述。
图1为本申请实施例提供的一种通信系统的结构示意图;
图2为本申请实施例提供的一种通信设备的结构示意图;
图3为本申请实施例提供的一种报文转发路径的示意图;
图4为本申请实施例提供的另一种报文转发路径的示意图;
图5为本申请实施例提供的一种通信方法的流程图;
图6为本申请实施例提供的一种报文转发过程示意图;
图7为本申请实施例提供的另一种报文转发路径的示意图;
图8为本申请实施例提供的一种获取目标段标识列表的方法流程图;
图9为本申请实施例提供的一种更新过程的示意图;
图10为本申请实施例提供的另一种更新过程的示意图;
图11为本申请实施例提供的一种通信设备的框图;
图12为本申请实施例提供的另一种通信设备的框图;
图13为本申请实施例提供的一种控制器和节点的功能模块示意图。
为使本申请的原理和技术方案更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为本申请实施例提供的一种通信系统的结构示意图,如图1所示,该通信系统包括:控制器和多个节点(如图1中的节点A、B、C、D、E、F、G、H、I、J、K和L)。控制器与多个节点均通信连接。这些节点属于同一通信网络,节点之间存在一些链路,这些节点之间可以通过这些链路通信连接。
图1中以通信系统包括十二个节点为例,通信系统中节点的个数也可以是其他个数,如100、1000等。节点可以称为转发节点,节点具有转发报文的功能,节点可以是路由器、网关等。
通信系统中的控制器和节点均为通信设备。示例地,通信设备可以包括:处理器;处理器用于与存储器耦合,并读取存储器中的指令之后,根据指令执行如本申请实施例描述的由通信设备执行的方法。
在该通信设备中,处理器的个数可以为多个,与处理器耦合的存储器可以独立于处理器之外或独立于通信设备之外,也可以在处理器或网络设备之内。存储器可以是物理上独立的单元,也可以是云服务器上的存储空间或网络硬盘等。可选地,存储器可以为一个或多个。当存储器的个数为多个时,可以位于相同的或不同的位置,并且可以独立或配合使用。示例性地,当存储器位于通信设备内部时,请参考图2,图2为本申请实施例提供的一种通信设备的结构示意图。该通信设备200包括:处理器202和存储器201,其中,存储器201用于存储程序,处理器202用于调用存储器201中存储的程序,以使得该通信设备执行相应的方法或功能。可选地,如图2所示,该通信设备200还可以包括至少一个通信接口203和至少一个通信总线204。存储器201、处理器202以及通信接口203通过通信总线204通信连接。其中,通信接口203用于在处理器202的控制下与其他设备通信,处理器202可以通过通信总线204调用存储器201中存储的程序。
通信系统中可以部署有至少一种流(也称业务流)的报文转发路径。流可以是任一种业务流,比如,尽力而为(Best Effort,BE)业务流、语音视频流、关键业务流、交互类业务流等。每条流在多个节点所在的通信网络中具有源节点和宿节点,这条流的报文转发路径是从该源节点到该宿节点的路径,这条流的报文会被该报文转发路径上的节点转发。
示例地,流的报文转发路径可以是SR隧道的路径,控制器会为流生成SR隧道的策略,并将SR隧道的策略发给多个节点中该SR隧道的源节点(也即该条流的源节点),以使该源节点可以根据SR隧道的策略将该条流的报文沿着该SR隧道的路径转发。
又示例地,流的报文转发路径可以是节点自行计算得到的路径,节点在接收到流的报文后,会根据该条流的宿节点基于内部网关协议(Interior Gateway Protocol,IGP)中的开放式最短路径优先(Open Shortest Path First,OSPF)协议或中间系统到中间系统(Intermediate System-to-Intermediate System,IS-IS)路由协议等方式计算报文转发路径,并将该条流的报文沿该报文转发路径转发。
但是,在通信系统中部署的多条报文转发路径均经过某两个节点间的链路时,该条链路上转发的报文较多,可能会导致该条链路发生拥塞或者故障,进而导致流中报文的时延、丢包率等服务级别协议(Service Level Agreement,SLA)指标会劣化,导致网络性能下降。因此,需要对通信系统中部署的报文转发路径进行调整,以减少经过该条链路的报文转发路径,降低该条链路发生拥塞或故障的概率,优化流中报文的时延、丢包率等SLA指标,提升网络性能。
比如,以图1所示的通信系统为例,如图3所示,假设通信系统中部署有两条流的报文转发路径,分别为流1和流2的报文转发路径。其中,流1的报文转发路径为节点C→节点G→节点I→节点J;流2的报文转发路径为节点G→节点I→节点J→节点L。可以看出,图3中的两条报文转发路径均经过节点I和J之间的链路,这条链路需要转发这两条流的报文,该条链路较容易发生拥塞或者故障。
如果将这两条流的报文转发路径中一些报文转发路径调整为不经过节点I和J之间的链路,就能够使得节点I和J之间的链路需要转发的报文减少,从而减小该条链路拥塞和故障的概率。比如,如图4所示,可以将上述流2的报文转发路径调整为节点G→节点C→节点A→节点D→节点L。
目前,在流的报文转发路径是SR隧道的路径时,控制器可以为流生成新的SR隧道的策略,并将新的SR隧道的策略发给该SR隧道的源节点,以使该源节点将该条流的旧的SR隧道的策略删除,以及根据该新的SR隧道的策略将该条流的报文沿新的SR隧道的路径转发。这样一来,便能够实现对流的报文转发路径进行调整。但是,这种情况就要求整个通信系统中的节点均支持SR。而通信系统中往往是一些节点支持SR,而另一些节点不支持SR,在某些节点不支持SR的情况下,这种调整报文转发路径的方法并不适用。如果将通信系统中不支持SR的节点均更换升级为支持SR的节点,则更换升级的难度较高,且开销巨大。另外,在流的报文转发路径是节点自行计算得到的路径时,目前还无法对报文转发路径进行调整。
本申请实施例提供了一种通信方法,该通信方法能够通过向目标流在通信网络中的源节点发送目标段标识列表,以指示目标流的报文转发路径,减少网络链路拥塞,提高报文转发效率。并且,该方法可以适用于通信系统中所有节点均支持SR的情况,通信系统中部分节点均支持SR情况,以及流的报文转发路径是节点自行计算得到的路径的情况。另外,该通信方法可以对至少部分目标流的报文转发路径进行调整。
示例地,图5为本申请实施例提供的一种通信方法的流程图,该通信方法可以用于本申请实施例提供的通信系统(如图1所示的通信系统)。如图5所示,该通信方法包括:
S101、控制器确定节点集合,节点集合包括通信系统中支持SR的节点。
在S101中,控制器需要确定通信系统中的每个节点是否支持SR,进而得到包括支持SR的节点的节点集合,以便于后续基于该节点集合进行报文转发路径的调整。上述支持SR的节点支持一种或多种SR协议,例如基于多协议标签交换的分段路由(Segment Routing Multi Protocol Label Switching,SR MPLS)或基于第六版互联网协议的分段路由(Segment Routing Internet Protocol version 6,SRv6)等。
在通信系统中的每个节点均支持SR时,节点集合包括通信系统中的每个节点。在通信系统中的一部分节点支持SR,且另一部分节点不支持SR时,节点集合包括支持SR的这一部分节点。
示例地,假设图3所示的场景中,节点A、F、G、H和K均支持SR,节点B、C、D、E、I和J均不支持SR,那么控制器确定出的节点集合包括节点A、F、G、H和K。
控制器确定节点集合的方式多种多样,以下以其中的三种方式为例进行讲解。
在第一种方式中,通信系统中的每个节点均可以向控制器发送节点信息,每个节点发送的节点信息用于指示该节点是否支持SR。此时,控制器可以根据所有节点发送的节点信息,确定节点集合。
在第二种方式中,通信系统中支持SR的节点可以向控制器发送上述节点信息,不支持SR的节点可以不向控制器发送上述节点信息。此时,控制器可以根据发送了节点信息的节点确定上述节点集合。
在第三种方式中,控制器上可以预先配置有上述节点集合,控制器可以直接获取该节点集合。
在第四种方式中,控制器可以从第三方系统中同步通信系统中支持SR的节点的信息,例如第三方系统是通信系统的网络管理系统,上述网络管理系统中保存通信系统中支持SR的节点信息。
S102、控制器在多个节点间的链路上承载的流中确定目标流,目标流在通信网络中的源节点属于节点集合。
通信系统的多个节点间的链路上承载有至少一条流,每条链路上转发的报文为该条链路上承载的流的报文。在S102中,控制器可以根据S101中确定出的节点集合,在多个节点间的链路上承载的流中筛选出待调整的目标流。目标流在通信系统中多个节点所在的通信网络中的源节点属于该节点集合,换句话说,目标流在该通信网络中的源节点支持SR。目标流为报文转发路径需要调整的流,目标流可以是转发效率较低的流,比如,目标流当前的报文转发路径上某一节点出现故障(或者拥塞),或者某两个节点之间的链路出现故障(拥塞)等。
本申请实施例不对控制器筛选目标流的方式进行限定,以下将以其中一种方式为例进行讲解。
示例地,控制器可以首先确定多个节点间的链路是否满足调整条件,并根据确定出的满足调整条件的链路得到待调整链路集合,之后,再在待调整链路集合中链路上承载的流中确定目标流。其中,待调整链路集合中的链路满足调整条件。可以看出,控制器是先筛选出待调整链路集合,再在待调整链路集合中链路上承载的流(待调整的流)中筛选出需要调整的目标流。其中,待调整的流为上述报文转发路径需要调整的流,对于待调整链路集合中链路上承载的每条待调整的流,该条流在通信网络中的源节点可能支持SR,也可能不支持SR。目标流是待调整链路集合中链路上承载的待调整的流,并且,目标流在通信网络中的源节点 支持SR。
在一些实施例中,调整条件包括:1)链路的拥塞率满足预设条件A,例如,链路的拥塞率大于第一拥塞阈值;2)链路故障;3)链路的拥塞率满足预设条件B,且在x个未来时刻或预测时间段内的拥塞概率满足预设条件C,x≥2,例如,链路的拥塞率大于第一拥塞阈值,且链路在10个未来时刻的拥塞概率大于第一拥塞概率阈值。第一拥塞阈值和第一拥塞概率阈值可以相等,也可以不相等。
在一些实施例中,当链路的拥塞率大于第一拥塞阈值时,链路较容易发生拥塞,该条链路上承载的流的报文的传输效率较低,该条链路上承载的流的报文转发路径需要调整。
在一些实施例中,当链路故障时,该条链路上承载的流的报文无法有效传输,该条流的报文转发路径需要调整。
在一些实施例中,当链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值时,该条链路当前和未来均较容易发生拥塞,该条链路上承载的流在当前和未来的传输效率均较低,该条链路上承载的流的报文转发路径需要调整。
上述调整条件可以被配置在节点上或控制器上。
如果调整条件被配置在节点上,节点根据链路状态信息,例如链路拥塞率,链路连通状态,以及调整条件确定节点连接的至少一条链路是否满足调整条件。在节点连接的至少一条链路满足调整条件时,该节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,控制器会接收多个节点中至少一个节点发送的链路信息,进而可以根据接收到的链路信息,确定满足调整条件的链路。
需要说明的是,上述“链路信息”用于指示链路是否满足调整条件,链路信息可以包含链路是否满足调整条件的结论,也可以是与该结论相关的参数。在链路信息包含该结论时,控制器可以根据该结论确定满足调整条件的链路。在链路信息包含与该结论相关的参数时,控制器可以根据该参数得到该结论,进而确定满足调整条件的链路。
节点在判断连接的链路是否满足调整条件之前,首先需要获取该调整条件,该调整条件可以是工作人员在节点上配置的,也可以是工作人员在控制器上配置后,由控制器发送给节点的,本申请实施例对此不作限定。
如果调整条件被配置在控制器上,节点将该节点和/或节点连接链路的性能数据或状态信息上报给控制器,控制器统计并获得各节点的链路状态信息,例如链路拥塞率,链路连通状态,基于上述调整条件和各节点的链路状态信息确定满足调整条件的链路。其中,节点的链路状态信息可以是:节点连接的至少部分链路的状态信息。
可选地,节点和控制器上均可以配置有调整条件,此时,节点可以对配置的该调整条件进行判断,并根据判断结果向控制器发送链路信息。控制器可以根据接收到的链路信息对配置的调整条件进行判断,从而得到满足调整条件的链路。需要说明的是,节点上配置的调整条件和控制器上配置的调整条件可以相同也可以不同,本申请对此不作限定。
以上内容中以控制器先筛选出待调整链路集合,再在待调整链路集合中链路上承载的流中筛选目标流为例。当然,控制器也可以在多个节点间的链路上承载的流中挑选出源节点支持SR的至少一条流,之后,再在该至少一条流中随机选择一条流作为目标流。
S103、控制器获取目标流的目标段标识列表。其中,目标段标识列表包括:目标流在通信网络中的宿节点的段标识,以及至少一个中间节点的段标识;中间节点属于节点集合,且 位于源节点和宿节点之间的路径上。
控制器在确定出待调整报文转发路径的目标流之后,可以获取该目标流的目标段标识列表。段标识列表(segment identifier list,SID list)用于指示数据传输路径。该目标段标识列表用于指示一条路径。控制器可以基于该目标段标识列表对目标流的报文转发路径进行调整。
可选地,目标流的目标段标识列表所指示的路径与该目标流当前的报文转发路径不同,以实现对目标流当前的报文转发路径进行调整。可选地,目标流的目标段标识列表所指示的路径也可以与目标流当前的报文转发路径相同,本申请实施例对此不作限定。在控制器确定出至少一条目标流时,对于该至少一条目标流中的至少部分目标流,该目标流的目标段标识列表所指示的路径与该目标流当前的报文转发路径不同。
目标段标识列表包含目标流在通信网络中的宿节点的段标识,以及至少一个中间节点的段标识。并且,该至少一个中间节点均支持SR,目标流在通信网络中的源节点也支持SR,这样一来,便可以确保该源节点和该至少一个中间节点便具有按照该目标段标识列表所指示的路径转发报文的能力。
S104、控制器向第一节点发送目标流的目标段标识列表,第一节点为目标流在通信网络中的源节点。
目标段标识列表能够指示目标流的新的报文转发路径,控制器在得到目标段标识列表之后,可以向目标流在通信网络中的源节点发送该目标段标识列表,以指示该源节点根据目标段标识列表转发目标流的报文。
S105、第一节点根据目标流的目标段标识列表,转发目标流的报文。
无论第一节点在S105之前采用何种方式转发目标流的报文,第一节点在接收到目标段标识列表之后,便可以直接根据该目标段标识列表转发目标流的报文。
示例地,第一节点在转发目标流的报文时,可以将目标流的目标段标识列表封装在该报文中,并将封装后的报文发送给目标段标识列表中第一个段标识所指示的节点。目标段标识列表中每个段标识所指示的节点在接收到该报文后,均会将该报文转发给下一段标识所指示的节点,直至该报文发送至目标流在通信网络中的宿节点。
例如,如图4所示,假设目标流的目标段标识列表所指示的路径为节点G→节点A→节点L,则控制器会将该目标段标识列表发送给节点G。节点G在接收到目标流的报文后,会将该目标段标识列表封装在该报文中,并将封装得到的报文发送给节点A,节点A在接收到该报文后会将该报文发送给节点L。
可选地,如果两个节点并不是直连,且这两个节点中的一个节点需要向另一个节点转发报文,则该一个节点可以计算到达该另一个节点的路径(如基于IGP或SPF等方式计算路径),并沿该路径向该另一个节点转发报文。
例如,请继续参考图4,假设节点G要向节点A转发报文,则节点G可以计算到达节点A的路径(节点G→节点C→节点A),并沿该路径向节点A转发报文。假设节点A要向节点L转发报文,则节点A可以计算到达节点L的路径(节点A→节点D→节点L),并沿该路径向节点L转发报文。
示例地,节点G封装后的报文如图6所示,该报文包括:源地址(source address,SA)、目的地址(destination address,DA)、到达目的地址所指示的节点前仍然应当访问的中间节点数(segment left,SL)、DA所指示的节点的段标识的索引(Last Segment,LS)、目标段标识 列表和负载(包含被封装的报文的内容)。节点G支持SR,节点G可以根据封装后的报文中的DA,查找路由表得知DA为A的下一跳路由为C,然后向节点C转发报文。节点C在接收到该报文后,发现DA所指示的节点并不是节点C,查找路由表得知DA为A的一条直连路由,此时,节点C通过出接口向节点A发送报文。节点A支持SR,在接收到该报文后,发现DA所指示的节点正是节点A自己,此时,节点A可以读取报文封装中的目标段标识列表,根据报文中的目标段标识列表,将DA修改为下一段标识所指示的节点L的地址,并将SL减1,以更新该报文。之后,节点A便可以根据更新后的报文中的DA,查找路由表得知DA为L的下一跳路由为D,然后向节点D发送更新后的报文。节点D在接收到该报文后,发现DA所指示的节点并不是节点D,此时,节点D查找路由表得知DA为L的一条直连路由,可以通过出接口向节点L发送报文。节点L接收到报文后,发现该DA所指示的节点正是节点L自己,并且,目标段标识列表中也不存在下一个段标识,此时,节点L可以对该报文进行解析,以得到该报文中的负载。
进一步地,节点计算得到的路径可以是最短路径,比如,等价路由(Equal Cost Multi-path,ECMP)最短路径,本申请实施例对此不作限定。
例如,仍然以图3中的流2为目标流为例。请参考图7,假设目标流的目标段标识列表所指示的路径为节点G→节点A→节点L,节点A在向节点L转发目标流的报文时,如果计算节点A到节点L的ECMP最短路径包括:路径1(节点A→节点D→节点L),路径2(节点A→节点E→节点L),以及路径3(节点A→节点F→节点L),那么,节点A可以通过路径1、2和3向节点L转发目标流的报文。
由于本申请实施例中,目标流在通信网络中的源节点可以根据目标流的目标段标识列表,转发目标流的报文,且目标段标识列表所指示的路径与目标流当前的报文转发路径并不相同,因此,能够实现对目标流的报文转发路径的调整。并且,目标段标识列表所指示的路径上的中间节点无需维护该路径的信息,而是直接根据接收到的源节点封装后的报文转发报文即可,减轻了中间节点的负载。
可以看出,在通信系统中的每个节点均支持SR的情况下,通信系统中的部分节点支持SR的情况下,以及流的报文转发路径是节点自行计算得到的路径的情况下,控制器均能够在多个节点间的链路上承载的流中确定出目标流,以及通过向目标流在通信网络中的源节点发送目标段标识列表的方式对目标流的报文转发路径进行调整。
并且,被调整报文转发路径的目标流可以是任一种类型的业务流,只要该业务流具有上述目标流的特征即可。这样一来,就避免了对一些类型的业务流调整报文转发路径,而对另一些类型的业务流不能调整报文转发路径的情况发生。
在目标流所承载的至少一条链路满足调整条件时,对目标流的报文转发路径进行调整还能够缓解该至少一条链路的拥塞和故障,提升报文在通信系统中的转发效率。
另外,本申请实施例中节点(或控制器)可以对节点连接的链路是否满足调整条件进行判断,以触发对流的报文转发路径的调整。这样一来,就实现了对流的报文转发路径的自动调整,以及时地调整流的报文转发路径,尽量避免链路拥塞和故障的情况发生,并且,避免了工作人员手动触发控制器调整流的报文转发路径。
控制器在对目标流的报文转发路径进行调整后,可以将目标流调整后的报文转发路径呈现给工作人员。比如,本申请实施例提供的通信系统还包括:管理设备,该管理设备与控制 器连接,控制器可以将调整后的报文转发路径发送给管理设备,管理设备可以向工作人员展示该报文转发路径。
在通信系统包括管理设备时,工作人员可以在管理设备上配置需要在控制器上配置的信息(如上述调整条件等),之后由管理设备将这些信息发送给控制器。
可选地,在上述S102中的调整条件包括链路的拥塞率大于第一拥塞阈值的情况下,每个节点在连接的至少一条链路满足该调整条件时,向控制器发送的链路信息还可以用于指示该至少一条链路中每条链路在多个历史时刻的流量。
控制器在根据接收到的链路信息确定待调整链路集合时,可以首先确定接收到的链路信息所指示的链路;之后,控制器可以根据该条链路在多个历史时刻的流量,预测该条链路在多个未来时刻的流量,以及根据每条链路在多个未来时刻的流量确定该条链路是否为待调整链路,进而得到包含待调整链路的待调整链路集合。其中,待调整链路在至少x个未来时刻的拥塞概率大于第一拥塞概率阈值。
在这种情况下,待调整链路集合中的链路不仅满足该调整条件(链路的拥塞率大于第一拥塞阈值),还满足链路在多个未来时刻中至少x个未来时刻的拥塞概率大于第一拥塞概率阈值这一条件。换句话说,待调整链路集合中的链路在当前和未来存在较大的拥塞概率。
又可选地,在上述S102中的调整条件包括链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值的情况下,每个节点在连接的至少一条链路满足该调整条件时,向控制器发送的链路信息还可以用于指示该至少一条链路中每条链路在多个历史时刻的流量。
控制器在根据接收到的链路信息确定待调整链路集合时,可以首先根据接收到的链路信息所指示的链路得到待调整链路集合。之后,控制器可以根据待调整链路集合中每条链路在多个历史时刻的流量,预测该条链路在多个未来时刻的流量,以及根据每条链路在多个未来时刻的流量,核对该条链路是否为待调整链路;在某一链路不是待调整链路时,将该待调整链路从待调整链路集合中移出。
在这种情况下,节点需要对链路在当前的拥塞率进行确定,以及对链路在未来时刻的拥塞概率进行预测,以确定该条链路是否满足调整条件。控制器需要对链路在未来时刻的拥塞概率进行预测,以核对待调整链路集合中的链路是否满足调整条件。这样一来,通过节点和控制器分别对链路在未来是否容易拥塞进行预测,实现了对预测的结果的准确度的提升。
又可选地,在上述S102中的调整条件包括链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值的情况下,每个节点在连接的至少一条链路满足该调整条件时,向控制器发送的链路信息也可以不用于指示该至少一条链路中每条链路在多个历史时刻的流量。这样一来,控制器可以无需根据这些历史时刻的流量进行流量预测,并且,还减少了节点和控制器之间所需传输的数据的量,节省了带宽,且时效性更强。
本申请实施例中,节点和控制器中的至少一个能够预测链路在未来的拥塞概率,并且,在链路在当前和未来均较容易拥塞时,该链路属于待调整链路集合,此时,控制器可以对该链路上承载的目标流的报文转发路径进行调整。这样一来,就避免了在有些链路当前较容易拥塞,但未来不容易拥塞的情况下,对这些链路上承载的目标流的报文转发路径进行调整,避免了对报文转发路径频繁调整造成较大的网络振荡。
进一步地,对于控制器和节点中需要预测流量的设备,该设备可以将链路在多个历史时刻的流量输入流量预测模型,以得到该流量预测模型输出的该条链路在多个未来时刻的流量。其中,流量预测模型用于根据输入的链路在多个历史时刻的流量,输出该条链路在多个未来时刻的流量。在使用该流量预测模型之前,可以对初始模型进行训练,以得到该流量预测模型。该初始模型所采用的算法可以是任一种预测算法,任一种预测算法的改进,或者多种预测算法的组合等。这些预测算法可以是统计方法或机器学习方法。其中,统计方法可以是:差分整合移动平均自回归模型(autoregressive integrated moving average,ARIMA),指数加权移动平均模型(exponentially weighted moving average,EWMA)等。机器学习方法可以是:循环神经网络(recurrent neural network,RNN),长短期记忆(long short-term memory,LSTM),梯度决策提升树(gradient boosting decision tree,GBDT),极端梯度提升模型(Extreme Gradient Boosting,XGBoost)等。
上述S103中控制器获取目标流的目标段标识列表的方式可以有多种,以下将以其中一种方式为例进行说明。
如图8所示,上述S103包括:
S1031、控制器统计多个节点间的链路上承载的流。
控制器在执行S103之前,可以获取通信网络的拓扑信息,以便于根据该通信网络的拓扑信息执行S103。示例地,该拓扑信息包含通信网络中各条链路的信息,如链路两端的节点、链路的容量、链路的时延、链路的亲和属性(affinity attribute)等。该拓扑信息还可以包含通信网络上承载的流的信息,如流的源节点、宿节点、流所需的带宽、流当前的报文转发路径、流要求的路由条件(如时延、跳数、亲和属性、经过的节点、不经过的节点等)。
通信网络的拓扑信息可以是控制器自行统计得到的,或者是由工作人员在控制器上配置的,或者是工作人员在其他设备上配置的,且由控制器从该其他设备上获取的,本申请实施例对此不作限定。
控制器在S1031中可以根据上述通信网络的拓扑信息,统计通信系统中多个节点间的链路上承载的流,以便于后续基于这一统计结果确定目标段标识列表。
S1032、控制器获取待调整链路集合中的链路上承载的至少一条目标流中每条目标流的初始段标识列表,每条目标流的初始段标识列表用于指示每条目标流当前的报文转发路径。
控制器在S1032中可以根据上述通信网络的拓扑信息,获取待调整链路集合中链路上承载的每条目标流的初始段标识列表。目标流的初始段标识列表包括目标流在通信网络中的宿节点的段标识,以及目标流当前的报文转发路径中支持SR的中间节点的段标识。
需要说明的是,如果目标流当前的报文转发路径中的每个中间节点均不支持SR,那么该目标流的初始段标识列表仅包括目标流在通信网络中的宿节点的段标识。
例如,以图3中流2为目标流为例,流2当前的报文转发路径为:节点G→节点I→节点J→节点L,由于节点I和J均不支持SR,因此,流2的初始段标识列表仅包含节点L的段标识。
目标流的初始段标识列表可以作为目标段标识的基础,后续可以对该目标流的初始段标识列表进行调整更新,以得到目标流的目标段标识列表。
S1033、控制器重复执行更新过程。
在统计得到多个节点间的链路上承载的流,以及上述至少一条目标流中每条目标流的初始段标识列表之后,控制器便可以基于这些信息重复执行更新过程,以得到目标流的目标段标识列表。其中,该更新过程是指对目标流的初始段标识列表的更新过程。
如图9所示,该更新过程包括:
S10331、控制器在至少一条目标流中随机选择第一目标流。
在每次执行更新过程时,控制器均可以随机选择第一目标流。多次执行的更新过程中所选择的第一目标流可以相同也可以不同。
控制器可以采用多种方式中的任一种方式选择第一目标流,以下将以其中的两种方式为例进行说明。
在第一种方式中,控制器在确定该至少一条目标流之后,可以随机在该至少一条目标流中选择第一目标流。
在第二种方式中,控制器可以首先在待调整链路集合中随机选择第一链路,之后,再在该第一链路上承载的目标流中随机筛选第一目标流。
可选地,控制器可以根据链路选择概率在待调整链路集合中随机选择一条链路,以及根据流选择概率在这条链路上承载的目标流中随机筛选第一目标流。其中,链路选择概率与链路的拥塞率正相关,流选择概率与流的流量正相关。这样一来,便使得控制器选择待调整链路集合中拥塞率较高的链路作为第一链路,以及选择流量较高的流作为第一目标流。
由于拥塞率较高的链路较容易拥塞和故障,且流量较高的流较容易引起链路拥塞和故障,筛选出的第一目标流会作为至少一条目标流中优先被调整报文转发路径的流,这样一来,在链路选择概率与链路的拥塞率正相关,流选择概率与流的流量正相关时,能够实现优先对流量较高且被承载的链路的拥塞率较高的目标流进行报文转发路径的调整。
本申请实施例中的拥塞率可以是与拥塞有关的任一参数,比如,链路的拥塞率可以为链路的利用率。示例地,假设链路的容量(也称带宽)为x1,链路当前的负载为x2,那么链路的拥塞率=链路的利用率=x2/x1。
S10332、控制器确定第一目标流是否存在第一候选段标识列表。当存在第一候选段标识列表时,执行S10333。
在选择第一目标流之后,控制器可以对第一目标流的初始段标识列表进行多种调整,得到对应第一目标流的初始段标识列表的多个候选段标识列表。这些候选段标识列表均用于指示第一目标流的源节点到宿节点的路径。这些候选段标识列表均包括第一目标流的宿节点的段标识,在候选段标识列表包括至少一个中间节点的段标识时,这些中间节点均支持SR,且第一目标流的源节点和宿节点通过这些中间节点路径可达。
多个候选段标识列表均是控制器根据节点集合中节点的段标识,对第一目标流的初始段标识列表进行调整得到的,且该多个候选段标识列表互不相同。多种调整可以包括以下至少一种:在第一目标流的初始段标识列表中插入段标识,对第一目标流的初始段标识列表中的至少部分段标识进行替换,对第一目标流的初始段标识列表中的部分段标识进行删除,以及 将第一目标流的初始段标识列表重置为S1032中获取到的该第一目标流的初始段标识列表。
示例地,如图3所示,假设第一目标流为图3中的流2,第一目标流当前的报文转发路径是节点G→节点I→节点J→节点L。图3中的节点集合包括节点A、F、G、H和K,也即节点A、F、G、H和K均支持SR。第一目标流的初始段标识列表包括:节点L的段标识。控制器对该初始段标识进行多种调整得到的多个候选段标识列表可以包括:候选段标识列表1(节点A的段标识、节点L的段标识),候选段标识列表2(节点A的段标识、节点F的段标识、节点L的段标识)、候选段标识列表3(节点K的段标识、节点L的段标识)。另外,由于节点G和节点L无法通过节点H可达,因此,控制器得到的候选段标识列表中并不包含节点H的段标识。
控制器在得到对应第一目标流的初始段标识列表的多个候选段标识列表之后,可以检测每个候选段标识列表是否满足增益条件,并在存在满足增益条件的候选段标识列表时,根据满足增益条件的候选段标识列表确定第一候选段标识列表。
需要说明的是,在对应第一目标流的初始段标识列表的多个候选段标识列表均不满足增益条件时,控制器可以确定不存在第一目标流的第一候选段标识列表,此时,该更新过程结束。
示例地,上述增益条件包括:第一目标流的候选段标识列表对应的拥塞概率,小于第一目标流的初始段标识列表对应的拥塞概率。需要说明的是,第一目标流的一个段标识列表对应的拥塞概率为:在第一目标流承载在这个段标识列表所指示的路径上时,待调整链路集合中链路的拥塞概率的平均值。该平均值可以是任一种平均值,如算数平均值、平方平均值、加权平均值、调和平均值等。
第一目标流的第一候选段标识列表满足增益条件,因此,第一候选段标识列表对应的拥塞概率小于上述初始段标识列表对应的拥塞概率。当第一目标流承载在第一候选段标识列表所指示的路径上时,待调整链路集合中链路的拥塞概率的平均值能够降低。所以,如果将第一目标流的报文转发路径调整为第一候选段标识列表所指示的路径,那么待调整链路集合中链路的拥塞概率能够得到降低,从而能够缓解待调整链路集合中链路的拥塞和故障情况。
在判断候选段列表是否满足增益条件时,一方面,控制器可以根据S1031中统计得到的当前多个节点间的链路上承载的流,计算当前待调整链路集合中链路的拥塞概率的平均值,得到第一目标流的初始段标识列表对应的拥塞概率。比如,控制器可以根据待调整链路集合中每条链路上承载的流计算该条链路的负载,进而将该条链路的负载除以该条链路的容量从而得到该条链路的拥塞概率。之后,再根据待调整链路集合中各个链路的拥塞概率,计算待调整链路集合中链路的拥塞概率的平均值,得到第一目标流的初始段标识列表对应的拥塞概率。
另一方面,控制器还可以计算在对S1031中统计得到的当前多个节点间的链路上承载的流进行调整,以使第一目标流承载在每个候选段标识列表所指示的路径上时,待调整链路集合中链路的拥塞概率的平均值,得到第一目标流的每个候选段标识列表对应的拥塞概率。比如,控制器可以在对多个节点间的链路上承载的流进行调整后,根据待调整链路集合中每条链路上承载的流计算该条链路的负载,进而将该条链路的负载除以该条链路的容量从而得到该条链路的拥塞概率。之后,再根据待调整链路集合中各个链路的拥塞概率,计算待调整链路集合中链路的拥塞概率的平均值,得到第一目标流的每个候选段标识列表对应的拥塞概率。
控制器在得到第一目标流的初始段标识列表对应的拥塞概率,以及第一目标流的每个候选段标识列表对应的拥塞概率之后,可以将第一目标流的每个候选段标识列表对应的拥塞概率与初始段标识列表对应的拥塞概率进行比较,以确定多个候选段标识列表中是否存在对应的拥塞概率小于初始段标识列表对应的拥塞概率的候选段标识列表。
示例地,仍然以图3中的流2为第一目标流为例,假设第一目标流的初始段标识列表对应的拥塞概率为50%,第一目标流的多个候选段标识列表包括上述候选段标识列表1、2和3,且候选段标识列表1对应的拥塞概率为40%,候选段标识列表2对应的拥塞概率为50%,候选段标识列表1对应的拥塞概率为60%。那么控制器可以确定候选段标识列表1为初始段标识列表的第一候选段标识列表。
可选地,控制器可以结合拥塞参数Q,来确定第一候选段标识列表对应的拥塞概率是否小于初始段标识列表对应的拥塞概率。其中,对于多个节点间的任一链路,该链路的拥塞参数Q=max((L-Y),0),L表示该链路的拥塞概率,Y表示第二拥塞概率阈值,第二拥塞概率阈值小于或等于上述第一拥塞概率阈值。控制器可以在第一候选段标识列表对应的拥塞参数之和小于初始段标识列表对应的拥塞参数之和时,确定第一候选段标识列表对应的拥塞概率小于初始段标识列表对应的拥塞概率;其中,一个段标识列表对应的拥塞参数之和为:在第一目标流承载在这个段标识列表所指示的路径上时,待调整链路集合中链路的拥塞参数Q之和。
上述链路的拥塞参数Q还可以有其他实现方式,比如,链路的拥塞参数Q=max((链路的负载-链路的容量*Y),0),Y表示第二拥塞概率阈值。
可选地,上述增益条件还包括:在第一目标流承载在候选段标识列表所指示的路径上时,其他链路的拥塞概率均小于或等于第二拥塞概率阈值。其中,其他链路为多个节点间的链路中位于待调整链路集合之外的链路。
第一目标流的第一候选段标识列表满足增益条件,因此,当将第一目标流的报文转发路径调整为第一候选段标识列表所指示的路径时,其他链路的拥塞概率不会大于或等于第二拥塞概率阈值,因此,其他链路的拥塞概率较小。可见,在调整第一目标流的报文转发路径的过程中,并不会使得其他链路的拥塞概率较高,因此,避免了调整第一目标流的报文转发路径导致其他链路的拥塞概率较高的情况。
可选地,当存在满足增益条件的多个候选段标识列表时,控制器可以确定该多个候选段标识列表中对应的拥塞概率最小的候选段标识列表为第一候选段标识列表。
可选地,控制器可以结合拥塞参数Q,来确定其他链路的拥塞概率是否小于或等于第二拥塞概率阈值。比如,控制器可以在其他链路的拥塞参数为零时,确定该其他链路的拥塞概率小于或等于第二拥塞概率阈值。
进一步地,上述增益条件还可以包括其他条件,本申请实施例对此不作限定。
比如,上述增益条件还包括:候选段标识列表中段标识的个数小于或等于个数阈值,候选段标识列表所指示的路径的时延小于或等于时延阈值,候选段标识列表所指示的路径经过通信网络中设定的节点,候选段标识列表所指示的路径不经过通信网络中设定的节点,候选段标识列表所指示的路径具有设定的亲和属性等。
又比如,第一目标流的上述候选段标识列表也可以不限于是否用于指示第一目标流的源节点到宿节点的路径,在候选段标识列表包括至少一个中间节点的段标识时,第一目标流的 源节点和宿节点不限于是否通过这些中间节点路径可达。此时,上述增益条件还可以包括:候选段标识列表用于指示第一目标流的源节点到宿节点的路径,候选段标识列表均包括第一目标流的宿节点的段标识,且在候选段标识列表包括至少一个中间节点的段标识时,第一目标流的源节点和宿节点通过这些中间节点路径可达。
增益条件可以是工作人员在控制器上配置的,或者是工作人员在其他设备上配置的,且由控制器从该其他设备上获取的,本申请实施例对此不作限定。
S10333、控制器根据第一候选段标识列表更新第一目标流的初始段标识列表。
当存在第一候选段标识列表时,控制器可以将第一目标流的初始段标识列表更新为该第一候选段标识列表。
比如,控制器的某一存储位置上存储有第一目标流的初始段标识列表,控制器在S10333中可以将该存储位置上存储的初始段标识列表更新为第一候选段标识列表。
S10334、控制器根据更新后的第一目标流的初始段标识列表所指示的路径,更新多个节点间的链路上承载的流。
控制器在更新第一目标流的初始段标识列表之后,可以根据更新后的第一目标流的初始段标识列表所指示的路径,更新S1031中统计得到的多个节点间的链路上承载的流(如更新第一目标流所承载的链路),以便下次执行更新过程中使用。
S1034、在停止条件集合中的至少一个条件满足时,控制器停止重复执行更新过程。
控制器在重复执行更新过程的过程中,可以对停止条件集合中的条件进行判断,并在停止条件集合中的至少一个条件满足时,停止重复执行更新过程。
可选地,停止条件集合包括:更新后的第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值。在这一条件满足时,表明在将第一目标流的报文转发路径调整为更新后的第一目标流的初始段标识列表所指示的路径时,待调整链路集合中各条链路的拥塞概率均较低,此时无需继续重复执行上述更新过程。
可选地,控制器可以结合上述拥塞参数Q来确定更新后的第一目标流的初始段标识列表对应的拥塞概率是否小于或等于第二拥塞概率阈值。比如,控制器可以在更新后的第一目标流的初始段标识列表对应的拥塞参数之和为零时,确定更新后的第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值。
进一步地,停止条件集合还可以包括:重复执行更新过程的时长达到时长阈值。换句话说,如果控制器重复执行更新过程的时间达到时长阈值,则控制器会停止重复执行更新过程。这样一来,就避免了控制器重复执行更新过程的时间过长,保证了路径调整的效率。
S1035、控制器将每条目标流的更新后的初始段标识列表作为该条目标流的目标段标识列表。
在停止重复执行更新过程后,控制器可以将每条目标流的更新后的初始段标识列表作为:该条目标流的目标段标识列表,从而得到每条目标流的目标段标识列表。
根据以上更新过程可知,待调整链路集合中的链路上承载有至少一条目标流,对于该至少一条目标流中的至少部分目标流,该目标流的目标段标识列表所指示的路径与该目标流当前的报文转发路径不同。
可选地,请参考图10,在图9的基础上,上述更新过程还可以包括:
S10335、当不存在第一候选段标识列表,且在连续m次执行过的更新过程中均未对第一目标流的初始段标识列表进行更新时,控制器根据第二候选段标识列表更新第一目标流的初始段标识列表,m≥2,第二候选段标识列表为设定的候选段标识列表。
控制器重复执行更新过程的目的是为了找到比第一目标流的初始段标识列表更好的段标识列表(如上述第一候选段标识列表)。如果不存在满足增益条件的第一候选段标识列表,且在连续m次执行过的更新过程中均未对第一目标流的初始段标识列表进行更新,则表明目前暂时无法找到比当前初始段标识列表更好的段标识列表,表明当前第一目标流的初始段标识列表为局部最优解。此时,控制器可以直接根据第二候选段标识列表更新第一目标流的初始段标识列表,以对当前的初始段标识列表进行调整,跳出局部最优解,以便于根据更新后的初始段标识列表找到更好的段标识列表。
第二候选段标识列表是设定的候选段标识列表。控制器可以通过多种方式中的任一种方式设定该第二候选段标识列表。比如,控制器上可以预先存储有该第二候选段标识列表;或者,控制器上可以预先存储有对第一目标流的初始段标识列表的目标调整方式,按照目标调整方式对该第一目标流的初始段标识列表进行调整,便可以得到该第二候选段标识列表。
可选地,在根据第二候选段标识列表更新后的第一目标流的初始段标识列表中段标识的数量,小于根据第二候选段标识列表更新前的第一目标流的初始段标识列表中段标识的数量。也即,在根据第二候选段标识列表更新后的第一目标流的初始段标识列表中段标识的数量减小。这样一来,更新后的第一目标流的初始段标识列表中段标识的数量较少,从而能够便于控制器在后续更新过程中找到更好的第一目标流的段标识列表。
S10336、在根据第二候选段标识列表对第一目标流的初始段标识列表进行更新后,若第n次执行更新过程后的第一目标流的初始段标识列表满足回退条件,则控制器将第一目标流的初始段标识列表更新为最优段标识列表,n≥2。
控制器在某一次执行更新过程时,执行S10335以根据第二候选段标识列表对第一目标流的初始段标识列表进行更新后,可以检测执行S10335之后的第n次执行更新过程后的第一目标流的初始段标识列表是否满足回退条件。如果满足回退条件,则控制器可以将第一目标流的初始段标识列表更新为最优段标识列表。
需要说明的是,控制器执行更新过程是为了对第一目标流的初始段标识列表进行更新。并且,控制器在每次执行更新过程后,可能对第一目标流的初始段标识列表进行更新,也可能不对第一目标流的初始段标识列表进行更新。在每执行一次更新过程后,第一目标流的初始段标识列表与执行该次更新过程之前的第一目标流的初始段标识列表可能相同,也可能不同。控制器在执行S10335之后的第n次执行更新过程后,可以获取当前的第一目标流的初始段标识列表,并检测该初始段标识列表是否满足回退条件。
回退条件包括:上述第n次执行更新过程后第一目标流的初始段标识列表对应的拥塞概率大于最优段标识列表对应的拥塞概率。
最优段标识列表为:对应的拥塞概率最小的第一目标流的初始段标识列表。需要说明的是,在控制器重复执行更新过程的过程中,会对第一目标流的初始段标识列表进行不断更新,使得第一目标流的初始段标识列表不断的改变。在第一目标流的这些初始段标识列表中,最优段标识列表对应的拥塞概率最小。
在S10335之后,如果第n次执行更新过程后的第一目标流的初始段标识列表仍然差于最 优段标识列表,则表明基于S10335中更新的后的第一目标流的初始段标识列表无法找到更好的第一目标流的段标识列表。此时,控制器可以将第一目标流的初始段标识列表更新为最优段标识列表。
需要说明的是,图10所示的实施例中以更新过程包括S10335和S10336为例,当然,该更新过程可以不包括S10336,或者,该更新过程可以不包括S10335和S10336,本申请实施例对此不作限定。
根据以上记载的本申请实施例的方案可知,第一拥塞阈值和第一拥塞概率阈值可以作为拥塞门限,第二拥塞概率阈值可以作为调优门限。
一方面,当链路的拥塞率或拥塞概率大于拥塞门限时,链路较容易拥塞,此时需要对链路上承载的流的报文转发路径进行调整,以减小链路的拥塞概率,保证链路上报文的转发效率。比如,在链路的拥塞率大于第一拥塞阈值时,可以触发对该链路上承载的流的报文转发路径的调整;或者,在链路的拥塞率大于第一拥塞阈值,且链路在未来的拥塞概率大于第一拥塞概率阈值时,可以触发对该链路上承载的流的报文转发路径的调整。
另一方面,当链路的拥塞概率小于或等于调优门限时,链路较不容易拥塞,且链路上报文的转发效率较高。因此,控制器在对待调整链路集合中链路(较容易拥塞的链路)上承载的目标流的报文转发路径进行调整后,待调整链路集合中链路的拥塞概率的平均值降低(如降低至小于或等于第二拥塞概率阈值的状态)。并且,原本拥塞率较低的上述其他链路的拥塞概率也可以小于或等于第二拥塞概率阈值。可见,控制器在对待调整链路集合中链路上承载的目标流的报文转发路径进行调整后,多个节点间的各条链路的拥塞概率大致可以小于或等于调优门限。
例如,图3中流1和流2的报文转发路径均经过节点I和节点J之间的链路,这条链路的拥塞率大于拥塞门限,且这条链路在未来的拥塞概率也大于拥塞门限。此时,控制器可以对这条链路上承载的流2的报文转发路径进行调整,以使多个节点之间的各个链路的拥塞概率大致可以小于或等于调优门限。比如,将流2的报文转发路径调整为图4所示的流2的报文转发路径。
可选地,控制器上可以预先存储有上述拥塞门限和上述调优门限,控制器可以直接获取拥塞门限和调优门限。或者,控制器上预先存储有拥塞门限,以及调优门限对应的比例,控制器可以直接获取该拥塞门限,以及将该拥塞门限乘以调优门限对应的比例,得到该调优门限。
上文中结合图1至图10,详细描述了本申请所提供的通信方法,可以理解的是,设备为了实现上述各方法所描述的功能,其需包含执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各方法的执行过程,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方式来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法实施例对相应的设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。
当采用功能模块划分方式时,下面将结合图11和图12描述本申请所提供的通信设备。
图11为本申请实施例提供的一种通信设备的框图,该通信设备例如可以属于前述各实施例中的控制器。所述控制器与多个节点通信连接,所述多个节点属于同一通信网络,如图11所示,所述通信设备包括:第一确定模块1101、第二确定模块1102、获取模块1103和发送模块1104。
第一确定模块1101用于确定节点集合,所述节点集合包括所述多个节点中支持SR的节点;第一确定模块1101用于执行的操作可以参考上述S101中与控制器相关的内容。
第二确定模块1102用于在所述多个节点间的链路上承载的流中确定目标流,所述目标流在所述通信网络中的源节点属于所述节点集合;第二确定模块1102用于执行的操作可以参考上述S102中与控制器相关的内容。
获取模块1103用于获取所述目标流的目标段标识列表;其中,所述目标段标识列表包括:所述目标流在所述通信网络中的宿节点的段标识,以及至少一个中间节点的段标识;所述中间节点属于所述节点集合,且位于所述源节点和所述宿节点之间的路径上;获取模块1103用于执行的操作可以参考上述S103中与控制器相关的内容。
发送模块1104用于向所述源节点发送所述目标段标识列表,以指示所述源节点根据所述目标段标识列表转发所述目标流的报文。发送模块1104用于执行的操作可以参考上述S104中与控制器相关的内容。
可选地,所述通信设备还包括:第三确定模块(图11中未示出),用于在所述多个节点间的链路中确定待调整链路集合,所述待调整链路集合中的链路满足调整条件;所述第二确定模块用于在所述待调整链路集合中的链路上承载的流中确定所述目标流。在这种方式下,控制器可以首先确定出待调整链路集合,之后再根据待调整链路集合确定目标流。第三确定模块用于执行的操作可以参考上述S102中与控制器相关的内容。
上述调整条件可以是任一种条件,比如,调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或者,链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。第一拥塞阈值和第一拥塞概率阈值可以相等,也可以不相等。
上述调整条件可以被配置在节点上或控制器上。
如果调整条件被配置在节点上,节点根据链路状态信息,例如链路拥塞率,链路连通状态,以及调整条件确定节点连接的至少一条链路是否满足调整条件。在节点连接的至少一条链路满足调整条件时,该节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,所述通信设备还包括:接收模块(图11中未示出),用于接收所述多个节点中至少一个节点发送的链路信息,所述至少一个节点中每个节点发送的链路信息用于指示所述每个节点连接的至少一条链路满足所述调整条件;所述第三确定模块用于根据接收到的所述链路信息,确定所述待调整链路集合。可以看出,属于控制器的通信设备会接收多个节点中至少一个节点发送的链路信息,进而可以根据接收到的链路信息,确定满足调整条件的链路。
如果调整条件被配置在控制器上,节点可以将该节点和/或节点连接链路的性能数据或状态信息上报给控制器。此时,所述第三确定模块可以用于:统计并获得各节点的链路状态信息,例如链路拥塞率,链路连通状态,之后,基于上述调整条件和各节点的链路状态信息确定满足调整条件的链路。其中,节点的链路状态信息可以是:节点连接的至少部分链路的状 态信息。
可选地,节点和控制器上均配置有调整条件,此时,节点可以对配置的该调整条件进行判断,并根据判断结果向控制器发送链路信息。所述第三确定模块可以根据接收到的链路信息对配置的调整条件进行判断,从而得到满足调整条件的链路。需要说明的是,节点上配置的调整条件和控制器上配置的调整条件可以相同也可以不同,本申请对此不作限定。
可选地,所述每个节点发送的链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量;所述第三确定模块用于:根据所述每条链路在所述多个历史时刻的流量,预测所述每条链路在多个未来时刻的流量;根据所述每条链路在多个未来时刻的流量,确定待调整链路,所述待调整链路在至少x个所述未来时刻的拥塞概率大于第一拥塞概率阈值;根据所述待调整链路确定所述待调整链路集合。
示例地,所述待调整链路集合中的链路上承载有至少一条目标流;对于该至少一条目标流中的至少部分目标流,所述目标流的目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。
控制器获取目标流的目标段标识列表的方式可以有多种,以下将以其中一种方式为例进行说明。所述获取模块1103用于:首先统计所述多个节点间的链路上承载的流,以及获取所述至少一条目标流中每条目标流的初始段标识列表,所述每条目标流的初始段标识列表用于指示所述每条目标流当前的报文转发路径;之后,重复执行更新过程,并在停止条件集合中的至少一个条件满足时,停止重复执行所述更新过程,并将所述每条目标流的更新后的初始段标识列表作为所述每条目标流的目标段标识列表。
上述更新过程包括:在所述至少一条目标流中随机选择第一目标流;确定所述第一目标流是否存在第一候选段标识列表;当存在所述第一候选段标识列表时,根据所述第一候选段标识列表更新所述第一目标流的初始段标识列表;以及,根据更新后的所述第一目标流的初始段标识列表所指示的路径,更新所述多个节点间的链路上承载的流;其中,所述第一候选段标识列表用于指示所述第一目标流的源节点到宿节点的路径;所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;一个段标识列表对应的拥塞概率为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞概率的平均值;所述停止条件集合包括:更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值。
获取模块1103用于执行的操作可以参考上述图8所示的更新过程。
可选地,所述停止条件集合还包括:重复执行所述更新过程的时长达到时长阈值。
可选地,在所述第一目标流承载在所述第一候选段标识列表所指示的路径上时,所述多个节点间的链路中位于所述待调整链路集合之外的其他链路的拥塞概率小于或等于所述第二拥塞概率阈值。
可选地,当存在对应所述第一目标流的初始段标识列表的多个候选段标识列表时,所述第一候选段标识列表为所述多个候选段标识列表中拥塞概率最小的候选段标识列表。
可选地,控制器可以根据链路选择概率在待调整链路集合中随机选择一条链路,以及根据流选择概率在这条链路上承载的目标流中随机筛选第一目标流。此时,所述获取模块1103用于:根据链路选择概率,在所述待调整链路集合中随机选择第一链路,所述链路选择概率与链路的拥塞率正相关;根据流选择概率,在所述第一链路上承载的目标流中随机筛选第一 目标流,所述流选择概率与流的流量正相关。
可选地,所述通信设备还包括:第四确定模块(图11中未示出),和/或,第五确定模块(图11中未示出),和/或,第六确定模块(图11中未示出)。第四确定模块用于在所述第一候选段标识列表对应的拥塞参数之和小于所述初始段标识列表对应的拥塞参数之和时,确定所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;第五确定模块用于在更新后的所述第一目标流的初始段标识列表对应的拥塞参数之和为零时,确定更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值;第六确定模块用于在所述其他链路的所述拥塞参数为零时,确定所述其他链路的拥塞概率小于或等于所述第二拥塞概率阈值;
其中,一个段标识列表对应的拥塞参数之和为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞参数之和;对于所述多个节点间的任一链路,所述链路的拥塞参数Q=max((L-Y),0),L表示所述链路的拥塞概率,Y表示所述第二拥塞概率阈值。
可选地,所述更新过程还包括:当不存在所述第一候选段标识列表,且在连续m次执行过的所述更新过程中均未对所述第一目标流的初始段标识列表进行更新时,根据第二候选段标识列表更新所述第一目标流的初始段标识列表,m≥2,所述第二候选段标识列表为设定的候选段标识列表。
可选地,根据所述第二候选段标识列表更新后的所述第一目标流的初始段标识列表中段标识的数量减小。
可选地,所述更新过程还包括:在根据所述第二候选段标识列表对所述第一目标流的初始段标识列表进行更新后,第n次执行所述更新过程后的所述第一目标流的初始段标识列表满足回退条件,则将所述第一目标流的初始段标识列表更新为最优段标识列表;其中,n≥2,所述回退条件包括:所述第n次执行所述更新过程后所述第一目标流的初始段标识列表对应的拥塞概率大于所述最优段标识列表对应的拥塞概率,所述最优段标识列表为:对应的拥塞概率最小的所述第一目标流的初始段标识列表。
控制器确定节点集合的方式多种多样。比如,通信系统中的每个节点均可以向控制器发送节点信息,每个节点发送的节点信息用于指示该节点是否支持SR。此时,所述第一确定模块1101用于:接收所述多个节点中每个节点发送的节点信息,所述每个节点发送的节点信息用于指示所述每个节点是否支持SR;根据所述多个节点发送的所述节点信息,确定所述节点集合。
图12为本申请实施例提供的另一种通信设备的框图,该通信设备例如可以属于前述各实施例中多个节点中的第一节点。所述多个节点与控制器通信连接,所述多个节点属于同一通信网络,如图12所示,所述通信设备包括:接收模块1201和转发模块1202。
接收模块1201用于接收所述控制器发送的目标流的目标段标识列表,其中,所述目标段标识列表包括:所述目标流的宿节点的段标识以及至少一个中间节点的段标识,所述第一节点为所述目标流的源节点;所述第一节点和所述中间节点均属于节点集合,所述节点集合包括:所述多个节点中支持SR的节点,所述中间节点位于所述目标流的源节点和宿节点之间的路径上;接收模块1201用于执行的操作可以参考上述S104中与第一节点相关的内容。
转发模块1202用于根据所述目标流的目标段标识列表,转发所述目标流的报文。转发模 块1202用于执行的操作可以参考上述S105中与第一节点相关的内容。
可选地,目标流当前的报文转发路径所经过的至少部分链路满足调整条件。
上述调整条件可以被配置在节点上或控制器上。
可选地,如果调整条件被配置在节点上,第一节点可以对其连接的链路是否满足调整条件进行判断,在节点连接的至少一条链路满足调整条件时,该节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,所述通信设备还包括:第一发送模块(图12未示出),用于在所述第一节点连接的至少一条链路满足调整条件时,向所述控制器发送链路信息,所述链路信息用于指示所述至少一条链路满足所述调整条件。
示例地,第一节点可以根据链路状态信息,例如链路拥塞率,链路连通状态,以及调整条件确定节点连接的至少一条链路是否满足调整条件。在第一节点连接的至少一条链路满足调整条件时,该第一节点可以向控制器发送链路信息,链路信息用于指示该至少一条链路满足调整条件。相应地,控制器会接收多个节点中至少一个节点发送的链路信息,进而可以根据接收到的链路信息,确定满足调整条件的链路。
如果调整条件被配置在控制器上,那么通信设备还包括:第三发送模块(图12未示出),用于将该节点和/或该节点连接链路的性能数据或状态信息上报给控制器。此时,控制器可以统计并获得各节点的链路状态信息,例如链路拥塞率,链路连通状态,之后,控制器可以基于上述调整条件和各节点的链路状态信息确定满足调整条件的链路。
可选地,节点和控制器上均配置有调整条件,此时,第一节点可以对配置的该调整条件进行判断,并根据判断结果向控制器发送链路信息。相应地,所述通信设备还包括:判断模块,判断模块用于对其连接的链路是否满足调整条件进行判断。控制器可以根据接收到的链路信息对配置的调整条件进行判断,从而得到满足调整条件的链路。需要说明的是,节点上配置的调整条件和控制器上配置的调整条件可以相同也可以不同,本申请对此不作限定。
上述调整条件可以是任一种条件,比如,调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或者,链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。第一拥塞阈值和第一拥塞概率阈值可以相等,也可以不相等。
可选地,所述链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量。
可选地,所述目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。
可选地,通信系统中的每个节点均可以向控制器发送节点信息,每个节点发送的节点信息用于指示该节点是否支持SR。相应地,所述通信设备还包括:第二发送模块(图12中未示出),用于向所述控制器发送节点信息,所述节点信息用于指示所述第一节点是否支持SR。
需要说明的是,本实施例中对模块的划分是示意性的,作为一种逻辑功能可能的划分方式,实际实现时可以有另外的划分方式。
比如,如图13所示,通信系统中的控制器可以包括获取模块、预测模块、优化模块和路由模块,节点可以包括监控模块和转发模块。
节点中的监控模块可以用于检测连接的链路是否满足调整条件,在连接的链路满足调整条件时,向控制器中的获取模块上报链路信息(用于指示链路在多个历史时刻的流量)。
控制器中的获取模块可以用于获取上述节点集合,通信网络的拓扑信息以及链路在多个历史时刻的流量等数据。控制器中的预测模块用于根据链路在多个历史时刻的流量,预测链 路在多个未来时刻的流量,以及根据这些未来时刻的流量,决策该链路是否属于待调整链路。控制器中的路由模块用于计算节点之间的路径。控制器中的优化模块用于根据节点之间的路径、通信网络的拓扑信息以及节点集合,获取待调整链路上承载的目标流的目标段标识列表。
控制器中的优化模块还用于将目标流的目标段标识列表发送给目标流的源节点。该源节点中的转发模块用于根据接收到的目标段标识列表转发目标流的报文。
在采用集成的单元的情况下,本申请所提供的属于控制器或第一节点的通信设备可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对通信设备的动作进行控制管理,例如,可以用于支持通信设备执行上述S101至S105中由控制器或第一节点执行的动作。存储模块可以用于支持通信设备执行存储程序代码和数据等。通信模块,可以用于通信设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器,通信模块为通信接口时,本实施例所涉及的通信设备可以为具有图2所示结构的通信设备。在一种实现方式中,本通信设备中包括的上述各个模块等可以为存储器中存储的计算机程序,并由处理器调用以实现各个模块相应的执行功能。
本申请实施例还提供了一种通信系统,该通信系统包括上述控制器和多个节点。所述控制器与所述多个节点通信连接,所述多个节点属于同一通信网络;所述控制器包括本申请实施例提供的任一种属于控制器的通信设备(如图11所示的通信设备),所述节点包括本申请实施例提供的任一种属于第一节点的通信设备(如图12所示的通信设备)。
本申请实施例提供了一种计算机存储介质,所述存储介质内存储有计算机程序;所述计算机程序在计算机上运行时,使得计算机执行本申请实施例提供的任一种数据传输方法中由第一节点或第二节点执行的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在通信设备上运行时,使得通信设备执行本申请实施例提供的任一种数据传输方法中由第一节点或第二节点执行的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成 的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
在本申请中,术语“第一”和“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”指一个或多个,“多个”指两个或两个以上,除非另有明确的限定。术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例提供的方法实施例和设备实施例等不同类型的实施例均可以相互参考,本申请实施例对此不做限定。本申请实施例提供的方法实施例操作的先后顺序能够进行适当调整,操作也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
在本申请提供的相应实施例中,应该理解到,所揭露的系统和设备等可以通过其它的构成方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元描述的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个设备上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的可选实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (49)
- 一种通信方法,其特征在于,所述方法由控制器执行,所述控制器与多个节点通信连接,所述多个节点属于同一通信网络,所述方法包括:确定节点集合,所述节点集合包括所述多个节点中支持分段路由SR的节点;在所述多个节点间的链路上承载的流中确定目标流,所述目标流在所述通信网络中的源节点属于所述节点集合;获取所述目标流的目标段标识列表;其中,所述目标段标识列表包括:所述目标流在所述通信网络中的宿节点的段标识,以及至少一个中间节点的段标识;所述中间节点属于所述节点集合,且位于所述源节点和所述宿节点之间的路径上;向所述源节点发送所述目标段标识列表,以指示所述源节点根据所述目标段标识列表转发所述目标流的报文。
- 根据权利要求1所述的方法,其特征在于,在所述多个节点间的链路上承载的流中确定目标流之前,所述方法还包括:在所述多个节点间的链路中确定待调整链路集合,所述待调整链路集合中的链路满足调整条件;在所述多个节点间的链路上承载的流中确定目标流,包括:在所述待调整链路集合中的链路上承载的流中确定所述目标流。
- 根据权利要求2所述的方法,其特征在于,所述调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。
- 根据权利要求2或3所述的方法,其特征在于,所述方法还包括:接收所述多个节点中至少一个节点发送的链路信息,所述至少一个节点中每个节点发送的链路信息用于指示所述每个节点连接的至少一条链路满足所述调整条件;在所述多个节点间的链路中确定待调整链路集合,包括:根据接收到的所述链路信息,确定所述待调整链路集合。
- 根据权利要求4所述的方法,其特征在于,所述每个节点发送的链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量;所述根据接收到的所述链路信息,确定所述待调整链路集合,包括:根据所述每条链路在所述多个历史时刻的流量,预测所述每条链路在多个未来时刻的流量;根据所述每条链路在多个未来时刻的流量,确定待调整链路,所述待调整链路在至少x个所述未来时刻的拥塞概率大于第一拥塞概率阈值;根据所述待调整链路确定所述待调整链路集合。
- 根据权利要求2至5任一所述的方法,其特征在于,所述待调整链路集合中的链路上承载有至少一条目标流;对于所述至少一条目标流中的至少部分目标流,所述目标流的目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。
- 根据权利要求6所述的方法,其特征在于,所述获取所述目标流的目标段标识列表,包括:统计所述多个节点间的链路上承载的流;获取所述至少一条目标流中每条目标流的初始段标识列表,所述每条目标流的初始段标识列表用于指示所述每条目标流当前的报文转发路径;重复执行更新过程,所述更新过程包括:在所述至少一条目标流中随机选择第一目标流;确定所述第一目标流是否存在第一候选段标识列表;当存在所述第一候选段标识列表时,根据所述第一候选段标识列表更新所述第一目标流的初始段标识列表;以及,根据更新后的所述第一目标流的初始段标识列表所指示的路径,更新所述多个节点间的链路上承载的流;其中,所述第一候选段标识列表用于指示所述第一目标流的源节点到宿节点的路径;所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;一个段标识列表对应的拥塞概率为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞概率的平均值;在停止条件集合中的至少一个条件满足时,停止重复执行所述更新过程;所述停止条件集合包括:更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值;将所述每条目标流的更新后的初始段标识列表作为所述每条目标流的目标段标识列表。
- 根据权利要求7所述的方法,其特征在于,所述停止条件集合还包括:重复执行所述更新过程的时长达到时长阈值。
- 根据权利要求7或8所述的方法,其特征在于,在所述第一目标流承载在所述第一候选段标识列表所指示的路径上时,所述多个节点间的链路中位于所述待调整链路集合之外的其他链路的拥塞概率小于或等于所述第二拥塞概率阈值。
- 根据权利要求7至9任一所述的方法,其特征在于,当存在对应所述第一目标流的初始段标识列表的多个候选段标识列表时,所述第一候选段标识列表为所述多个候选段标识列表中拥塞概率最小的候选段标识列表。
- 根据权利要求7至10任一所述的方法,其特征在于,在所述至少一条目标流中随机选择第一目标流,包括:根据链路选择概率,在所述待调整链路集合中随机选择第一链路,所述链路选择概率与 链路的拥塞率正相关;根据流选择概率,在所述第一链路上承载的目标流中随机筛选第一目标流,所述流选择概率与流的流量正相关。
- 根据权利要求9至11任一所述的方法,其特征在于,所述方法还包括:在所述第一候选段标识列表对应的拥塞参数之和小于所述初始段标识列表对应的拥塞参数之和时,确定所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;和/或,在更新后的所述第一目标流的初始段标识列表对应的拥塞参数之和为零时,确定更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值;和/或,在所述其他链路的所述拥塞参数为零时,确定所述其他链路的拥塞概率小于或等于所述第二拥塞概率阈值;其中,一个段标识列表对应的拥塞参数之和为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞参数之和;对于所述多个节点间的任一链路,所述链路的拥塞参数Q=max((L-Y),0),L表示所述链路的拥塞概率,Y表示所述第二拥塞概率阈值。
- 根据权利要求7至12任一所述的方法,其特征在于,所述更新过程还包括:当不存在所述第一候选段标识列表,且在连续m次执行过的所述更新过程中均未对所述第一目标流的初始段标识列表进行更新时,根据第二候选段标识列表更新所述第一目标流的初始段标识列表,m≥2,所述第二候选段标识列表为设定的候选段标识列表。
- 根据权利要求13所述的方法,其特征在于,根据所述第二候选段标识列表更新后的所述第一目标流的初始段标识列表中段标识的数量减小。
- 根据权利要求13或14所述的方法,其特征在于,所述更新过程还包括:在根据所述第二候选段标识列表对所述第一目标流的初始段标识列表进行更新后,第n次执行所述更新过程后的所述第一目标流的初始段标识列表满足回退条件,则将所述第一目标流的初始段标识列表更新为最优段标识列表;其中,n≥2,所述回退条件包括:所述第n次执行所述更新过程后所述第一目标流的初始段标识列表对应的拥塞概率大于所述最优段标识列表对应的拥塞概率,所述最优段标识列表为:对应的拥塞概率最小的所述第一目标流的初始段标识列表。
- 根据权利要求1至15任一所述的方法,其特征在于,所述确定节点集合,包括:接收所述多个节点中每个节点发送的节点信息,所述每个节点发送的节点信息用于指示所述每个节点是否支持SR;根据所述多个节点发送的所述节点信息,确定所述节点集合。
- 一种通信方法,其特征在于,所述方法由多个节点中的第一节点执行,所述多个节点 与控制器通信连接,所述多个节点属于同一通信网络,所述方法包括:接收所述控制器发送的目标流的目标段标识列表,其中,所述目标段标识列表包括:所述目标流的宿节点的段标识以及至少一个中间节点的段标识,所述第一节点为所述目标流的源节点;所述第一节点和所述中间节点均属于节点集合,所述节点集合包括:所述多个节点中支持分段路由SR的节点,所述中间节点位于所述目标流的源节点和宿节点之间的路径上;根据所述目标流的目标段标识列表,转发所述目标流的报文。
- 根据权利要求17所述的方法,其特征在于,在所述接收所述控制器发送的目标流的目标段标识列表之前,所述方法还包括:在所述第一节点连接的至少一条链路满足调整条件时,向所述控制器发送链路信息,所述链路信息用于指示所述至少一条链路满足所述调整条件。
- 根据权利要求18所述的方法,其特征在于,所述调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。
- 根据权利要求18或19所述的方法,其特征在于,所述链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量。
- 根据权利要求17至19任一所述的方法,其特征在于,所述目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。
- 根据权利要求17至21任一所述的方法,其特征在于,在接收所述控制器发送的目标流的目标段标识列表之前,所述方法还包括:向所述控制器发送节点信息,所述节点信息用于指示所述第一节点是否支持SR。
- 一种通信设备,其特征在于,所述通信设备为控制器,所述控制器与多个节点通信连接,所述多个节点属于同一通信网络,所述通信设备包括:第一确定模块,用于确定节点集合,所述节点集合包括所述多个节点中支持分段路由SR的节点;第二确定模块,用于在所述多个节点间的链路上承载的流中确定目标流,所述目标流在所述通信网络中的源节点属于所述节点集合;获取模块,用于获取所述目标流的目标段标识列表;其中,所述目标段标识列表包括:所述目标流在所述通信网络中的宿节点的段标识,以及至少一个中间节点的段标识;所述中间节点属于所述节点集合,且位于所述源节点和所述宿节点之间的路径上;发送模块,用于向所述源节点发送所述目标段标识列表,以指示所述源节点根据所述目标段标识列表转发所述目标流的报文。
- 根据权利要求23所述的通信设备,其特征在于,所述通信设备还包括:第三确定模块,用于在所述多个节点间的链路中确定待调整链路集合,所述待调整链路集合中的链路满足调整条件;所述第二确定模块用于在所述待调整链路集合中的链路上承载的流中确定所述目标流。
- 根据权利要求24所述的通信设备,其特征在于,所述调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值,x≥2。
- 根据权利要求24或25所述的通信设备,其特征在于,所述通信设备还包括:接收模块,用于接收所述多个节点中至少一个节点发送的链路信息,所述至少一个节点中每个节点发送的链路信息用于指示所述每个节点连接的至少一条链路满足所述调整条件;所述第三确定模块用于根据接收到的所述链路信息,确定所述待调整链路集合。
- 根据权利要求26所述的通信设备,其特征在于,所述每个节点发送的链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量;所述第三确定模块用于:根据所述每条链路在所述多个历史时刻的流量,预测所述每条链路在多个未来时刻的流量;根据所述每条链路在多个未来时刻的流量,确定待调整链路,所述待调整链路在至少x个所述未来时刻的拥塞概率大于第一拥塞概率阈值;根据所述待调整链路确定所述待调整链路集合。
- 根据权利要求24至27任一所述的通信设备,其特征在于,所述待调整链路集合中的链路上承载有至少一条目标流;对于所述至少一条目标流中的至少部分目标流,所述目标流的目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。
- 根据权利要求28所述的通信设备,其特征在于,所述获取模块用于:统计所述多个节点间的链路上承载的流;获取所述至少一条目标流中每条目标流的初始段标识列表,所述每条目标流的初始段标识列表用于指示所述每条目标流当前的报文转发路径;重复执行更新过程,所述更新过程包括:在所述至少一条目标流中随机选择第一目标流;确定所述第一目标流是否存在第一候选段标识列表;当存在所述第一候选段标识列表时,根据所述第一候选段标识列表更新所述第一目标流的初始段标识列表;以及,根据更新后的所述第一目标流的初始段标识列表所指示的路径,更新所述多个节点间的链路上承载的流;其 中,所述第一候选段标识列表用于指示所述第一目标流的源节点到宿节点的路径;所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;一个段标识列表对应的拥塞概率为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞概率的平均值;在停止条件集合中的至少一个条件满足时,停止重复执行所述更新过程;所述停止条件集合包括:更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值;将所述每条目标流的更新后的初始段标识列表作为所述每条目标流的目标段标识列表。
- 根据权利要求29所述的通信设备,其特征在于,所述停止条件集合还包括:重复执行所述更新过程的时长达到时长阈值。
- 根据权利要求29或30所述的通信设备,其特征在于,在所述第一目标流承载在所述第一候选段标识列表所指示的路径上时,所述多个节点间的链路中位于所述待调整链路集合之外的其他链路的拥塞概率小于或等于所述第二拥塞概率阈值。
- 根据权利要求29至31任一所述的通信设备,其特征在于,当存在对应所述第一目标流的初始段标识列表的多个候选段标识列表时,所述第一候选段标识列表为所述多个候选段标识列表中拥塞概率最小的候选段标识列表。
- 根据权利要求29至32任一所述的通信设备,其特征在于,所述获取模块用于:根据链路选择概率,在所述待调整链路集合中随机选择第一链路,所述链路选择概率与链路的拥塞率正相关;根据流选择概率,在所述第一链路上承载的目标流中随机筛选第一目标流,所述流选择概率与流的流量正相关。
- 根据权利要求31至33任一所述的通信设备,其特征在于,所述通信设备还包括:第四确定模块,用于在所述第一候选段标识列表对应的拥塞参数之和小于所述初始段标识列表对应的拥塞参数之和时,确定所述第一候选段标识列表对应的拥塞概率小于所述初始段标识列表对应的拥塞概率;和/或,第五确定模块,用于在更新后的所述第一目标流的初始段标识列表对应的拥塞参数之和为零时,确定更新后的所述第一目标流的初始段标识列表对应的拥塞概率小于或等于第二拥塞概率阈值;和/或,第六确定模块,用于在所述其他链路的所述拥塞参数为零时,确定所述其他链路的拥塞概率小于或等于所述第二拥塞概率阈值;其中,一个段标识列表对应的拥塞参数之和为:在所述第一目标流承载在所述一个段标识列表所指示的路径上时,所述待调整链路集合中链路的所述拥塞参数之和;对于所述多个节点间的任一链路,所述链路的拥塞参数Q=max((L-Y),0),L表示所述链路的拥塞概率,Y表示所述第二拥塞概率阈值。
- 根据权利要求29至34任一所述的通信设备,其特征在于,所述更新过程还包括:当不存在所述第一候选段标识列表,且在连续m次执行过的所述更新过程中均未对所述第一目标流的初始段标识列表进行更新时,根据第二候选段标识列表更新所述第一目标流的初始段标识列表,m≥2,所述第二候选段标识列表为设定的候选段标识列表。
- 根据权利要求35所述的通信设备,其特征在于,根据所述第二候选段标识列表更新后的所述第一目标流的初始段标识列表中段标识的数量减小。
- 根据权利要求35或36所述的通信设备,其特征在于,所述更新过程还包括:在根据所述第二候选段标识列表对所述第一目标流的初始段标识列表进行更新后,第n次执行所述更新过程后的所述第一目标流的初始段标识列表满足回退条件,则将所述第一目标流的初始段标识列表更新为最优段标识列表;其中,n≥2,所述回退条件包括:所述第n次执行所述更新过程后所述第一目标流的初始段标识列表对应的拥塞概率大于所述最优段标识列表对应的拥塞概率,所述最优段标识列表为:对应的拥塞概率最小的所述第一目标流的初始段标识列表。
- 根据权利要求23至37任一所述的通信设备,其特征在于,所述第一确定模块用于:接收所述多个节点中每个节点发送的节点信息,所述每个节点发送的节点信息用于指示所述每个节点是否支持SR;根据所述多个节点发送的所述节点信息,确定所述节点集合。
- 一种通信设备,其特征在于,所述通信设备为多个节点中的第一节点,所述多个节点与控制器通信连接,所述多个节点属于同一通信网络,所述通信设备包括:接收模块,用于接收所述控制器发送的目标流的目标段标识列表,其中,所述目标段标识列表包括:所述目标流的宿节点的段标识以及至少一个中间节点的段标识,所述第一节点为所述目标流的源节点;所述第一节点和所述中间节点均属于节点集合,所述节点集合包括:所述多个节点中支持分段路由SR的节点,所述中间节点位于所述目标流的源节点和宿节点之间的路径上;转发模块,用于根据所述目标流的目标段标识列表,转发所述目标流的报文。
- 根据权利要求39所述的通信设备,其特征在于,所述通信设备还包括:第一发送模块,用于在所述第一节点连接的至少一条链路满足调整条件时,向所述控制器发送链路信息,所述链路信息用于指示所述至少一条链路满足所述调整条件。
- 根据权利要求40所述的通信设备,其特征在于,所述调整条件包括:链路的拥塞率大于第一拥塞阈值;链路故障;或链路的拥塞率大于第一拥塞阈值,且在x个未来时刻的拥塞概率大于第一拥塞概率阈值, x≥2。
- 根据权利要求40或41所述的通信设备,其特征在于,所述链路信息还用于指示:所述至少一条链路中每条链路在多个历史时刻的流量。
- 根据权利要求39至42任一所述的通信设备,其特征在于,所述目标段标识列表所指示的路径与所述目标流当前的报文转发路径不同。
- 根据权利要求39至43任一所述的通信设备,其特征在于,所述通信设备还包括:第二发送模块,用于向所述控制器发送节点信息,所述节点信息用于指示所述第一节点是否支持SR。
- 一种通信设备,其特征在于,所述通信设备包括:处理器和存储器,所述存储器中存储有程序;所述处理器用于调用所述存储器中存储的程序,以使得所述通信设备执行如权利要求1至16任一项所述的通信方法。
- 一种通信设备,其特征在于,所述通信设备包括:处理器和存储器,所述存储器中存储有程序;所述处理器用于调用所述存储器中存储的程序,以使得所述通信设备执行如权利要求17至22任一项所述的通信方法。
- 一种通信系统,其特征在于,包括:控制器和多个节点,所述控制器与所述多个节点通信连接,所述多个节点属于同一通信网络;所述控制器包括权利要求23至38任一所述的通信设备,所述节点包括权利要求39至44任一所述的通信设备;或者,所述控制器包括权利要求45所述的通信设备,所述节点包括权利要求46所述的通信设备。
- 一种计算机存储介质,其特征在于,所述计算机存储介质内存储有计算机程序;所述计算机程序在计算机上运行时,使得计算机执行权利要求1至16任一所述的通信方法;或者,所述计算机程序在计算机上运行时,使得计算机执行权利要求17至22任一所述的通信方法。
- 一种计算机程序产品,其特征在于,当计算机程序产品在通信设备上运行时,使得通信设备执行如权利要求1至16任一所述的通信方法;或者,当计算机程序产品在通信设备上运行时,使得通信设备执行如权利要求17至22任一所述的通信方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22803573.9A EP4340320A4 (en) | 2021-05-21 | 2022-02-08 | COMMUNICATION METHOD, DEVICE AND SYSTEM |
US18/515,459 US20240089204A1 (en) | 2021-05-21 | 2023-11-21 | Communication Method, Device, and System |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110559103.1A CN115460150A (zh) | 2021-05-21 | 2021-05-21 | 通信方法、设备及系统 |
CN202110559103.1 | 2021-05-21 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/515,459 Continuation US20240089204A1 (en) | 2021-05-21 | 2023-11-21 | Communication Method, Device, and System |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022242243A1 true WO2022242243A1 (zh) | 2022-11-24 |
Family
ID=84141037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/075558 WO2022242243A1 (zh) | 2021-05-21 | 2022-02-08 | 通信方法、设备及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240089204A1 (zh) |
EP (1) | EP4340320A4 (zh) |
CN (1) | CN115460150A (zh) |
WO (1) | WO2022242243A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117201407B (zh) * | 2023-11-07 | 2024-01-05 | 湖南国科超算科技有限公司 | 一种应用感知的IPv6网络快速拥塞检测与避免方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083195A1 (en) * | 2000-12-22 | 2002-06-27 | Beshai Maged E. | Multi-channel sharing in a high-capacity network |
US20170331746A1 (en) * | 2014-10-24 | 2017-11-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Multicast traffic management in an overlay network |
US20190288940A1 (en) * | 2018-03-15 | 2019-09-19 | Cisco Technology, Inc. | Segment Routing Packet Policies and Functions Including an Engineered Reverse Reply Path Providing Efficiencies in Communicating Packets in a Network |
CN110505600A (zh) * | 2018-05-18 | 2019-11-26 | 华为技术有限公司 | 路由方法及装置 |
-
2021
- 2021-05-21 CN CN202110559103.1A patent/CN115460150A/zh active Pending
-
2022
- 2022-02-08 WO PCT/CN2022/075558 patent/WO2022242243A1/zh active Application Filing
- 2022-02-08 EP EP22803573.9A patent/EP4340320A4/en active Pending
-
2023
- 2023-11-21 US US18/515,459 patent/US20240089204A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083195A1 (en) * | 2000-12-22 | 2002-06-27 | Beshai Maged E. | Multi-channel sharing in a high-capacity network |
US20170331746A1 (en) * | 2014-10-24 | 2017-11-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Multicast traffic management in an overlay network |
US20190288940A1 (en) * | 2018-03-15 | 2019-09-19 | Cisco Technology, Inc. | Segment Routing Packet Policies and Functions Including an Engineered Reverse Reply Path Providing Efficiencies in Communicating Packets in a Network |
CN110505600A (zh) * | 2018-05-18 | 2019-11-26 | 华为技术有限公司 | 路由方法及装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4340320A4 |
Also Published As
Publication number | Publication date |
---|---|
US20240089204A1 (en) | 2024-03-14 |
EP4340320A1 (en) | 2024-03-20 |
CN115460150A (zh) | 2022-12-09 |
EP4340320A4 (en) | 2024-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111149333B (zh) | 具有条件命令的自运行数据包 | |
US10491525B2 (en) | Traffic engineering feeder for packet switched networks | |
US10587494B2 (en) | Network control method and apparatus | |
WO2021043181A1 (zh) | 一种数据传输方法及装置 | |
EP3047609B1 (en) | Systems and method for reconfiguration of routes | |
CN108418755B (zh) | 数据流传输方法和装置 | |
CN113923125B (zh) | 工业异构网络中多业务流融合通信的容限分析方法及装置 | |
CN108347376B (zh) | 一种调整转发路径的方法、装置及系统 | |
WO2021227947A1 (zh) | 网络控制方法及设备 | |
US10425326B2 (en) | Rerouting tunnel traffic in communication networks | |
US10826823B2 (en) | Centralized label-based software defined network | |
CN101841487A (zh) | 聚合链路服务流的配置方法及包交换装置 | |
CN108234314B (zh) | 业务调度方法和装置 | |
JP2013034164A (ja) | 中継装置、中継方法 | |
US10178017B2 (en) | Method and control node for handling data packets | |
CN108476175B (zh) | 使用对偶变量的传送sdn流量工程方法与系统 | |
Yan et al. | A survey of low-latency transmission strategies in software defined networking | |
WO2021244247A1 (zh) | 转发数据报文的方法、网络节点、系统及存储介质 | |
CN107332766B (zh) | 一种基于软件定义网络流调度下的提高网络吞吐量的方法 | |
CN114500354B (zh) | 一种交换机控制方法、装置、控制设备及存储介质 | |
CN113542064B (zh) | 网络路径确定方法、装置、电子设备、介质及程序产品 | |
US20240089204A1 (en) | Communication Method, Device, and System | |
JP2011166661A (ja) | 帯域制御システム、帯域制御装置、帯域制御方法および帯域制御プログラム | |
Ye et al. | PTP: Path-specified transport protocol for concurrent multipath transmission in named data networks | |
CN102480471A (zh) | 实现监控RRPP环中QoS处理的方法和网络节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22803573 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022803573 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2022803573 Country of ref document: EP Effective date: 20231213 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |