WO2016078070A1 - 路由数据包的方法、节点和通信系统 - Google Patents

路由数据包的方法、节点和通信系统 Download PDF

Info

Publication number
WO2016078070A1
WO2016078070A1 PCT/CN2014/091846 CN2014091846W WO2016078070A1 WO 2016078070 A1 WO2016078070 A1 WO 2016078070A1 CN 2014091846 W CN2014091846 W CN 2014091846W WO 2016078070 A1 WO2016078070 A1 WO 2016078070A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
information
cluster
data packet
routing path
Prior art date
Application number
PCT/CN2014/091846
Other languages
English (en)
French (fr)
Inventor
黄勤业
李扬
宋昆鹏
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2014/091846 priority Critical patent/WO2016078070A1/zh
Priority to CN201480037572.5A priority patent/CN105814850B/zh
Publication of WO2016078070A1 publication Critical patent/WO2016078070A1/zh

Links

Images

Definitions

  • NoC Network-on-Chip
  • the route adaptation mechanism usually includes two parts: the first part calculates a plurality of optional routing paths between the source node and the destination node, and the second part selects one route from the multiple optional routing paths according to the network status information and the specific selection policy. path.
  • the routing policy in the prior art generally adopts a local area selection policy or a Neighbors on Path (NoP) policy. Specifically, taking the node (0, 0) shown in FIG. 1 as the source node and the node (3, 3) as the destination node as an example, the source node (0, 0) has two optional routing paths: the eastward direction Path and path to the south.
  • NoP Neighbors on Path
  • the source node (0, 0) In the local selection strategy, the source node (0, 0) only considers the state of the neighboring nodes when selecting the path, that is, only considers the state of the node (0, 1) and the node (1, 0). Since the node only considers the state of the possible next hop node when routing, congestion cannot be avoided at other nodes than the next hop node. In the NoP policy, the source node (0, 0) ignores the state of its neighbors (0, 1) and (1, 0) when selecting a path, and only considers the second hop node on the possible routing path. State, the state of nodes (0, 2) and (2, 0). The NoP strategy can avoid a deadlock at the corner in some scenarios, but since the NoP still only considers the state of some nodes and cannot balance the state of the whole network, the performance in the global scope is poor.
  • the invention provides a method, a node and a communication system for routing data packets, which can avoid the occurrence of congestion.
  • the congestion information of the at least one forwarding node cluster included in each optional routing path of the multiple optional routing paths may be from the multiple Determining the target routing path in the routing path, including: determining congestion status of each optional routing path according to congestion information of at least one forwarding node cluster included in each of the plurality of optional routing paths; An optional routing path with the least congestion among the plurality of optional routing paths is determined as the target routing path.
  • the congestion information of the at least one forwarding node cluster included in each optional routing path of the multiple optional routing paths may be obtained from the multiple Determining the target routing path in the routing path, including: congesting information according to at least one node cluster included in each optional routing path of the plurality of optional routing paths, and forwarding node clusters included in each optional routing path Number, the target routing path is determined from the plurality of optional routing paths.
  • the first node is another node that is different from the source node that is included in the source node cluster; in determining the destination section of the data packet Before the destination node cluster to which the point belongs, the method further includes: receiving a path determination request sent by the source node, where the path determination request is used to request the first node to determine a routing path of the data packet; and determining the destination node of the data packet
  • the destination node cluster includes: determining, according to the path determination request, a destination node cluster to which the destination node belongs; after determining the target routing path from the plurality of optional routing paths, the method further includes: to the source node The sending path determines a response, the path determining information carrying the target routing path in the response, so that the source node sends the data packet according to the information of the target routing path.
  • the congestion information of the at least one forwarding node cluster included in each optional routing path of the multiple optional routing paths is from the multiple Before determining the target routing path in the optional routing path, the method further includes: receiving congestion information of the at least one forwarding node cluster sent by the second node, where the at least one forwarding node cluster includes the second node.
  • the receiving, by the second node, the congestion information of the at least one forwarding node cluster includes: receiving, by the second node, the forwarding node to which the second node belongs Cluster congestion information.
  • the source node cluster is composed of the first node and at least one third node other than the first node;
  • the congestion information of the at least one forwarding node cluster included in each optional routing path in the routing path, before determining the target routing path from the multiple optional routing paths, the method further includes: receiving the at least one third node Congestion information of each third node sent by each third node; determining congestion information of the source node cluster according to congestion information of each third node in the at least one third node.
  • the first node is the source node
  • the method further includes: sending the data packet according to the target routing path of the data packet.
  • the sending the data packet includes: determining congestion information of multiple neighboring nodes of the source node; and according to congestion information of the multiple neighboring nodes Determining a next hop node of the data packet from the plurality of neighboring nodes; transmitting the data packet to the next hop node.
  • a method for routing a data packet including: a source node of the data packet sending a path determination request to the control node, where the path determination request is used to request the control node to determine a routing path of the data packet, where The source node and the control node belong to the source node cluster; the receiving control node determines, according to the path, the information of the routing path that is requested to be sent, where the information of the routing path includes information of at least one node cluster; according to the information of the routing path, Send the packet.
  • the information of the routing path includes identification information of each node cluster in the at least one node cluster and order information of the at least one node cluster.
  • the sending the data packet includes: determining congestion information of multiple neighboring nodes of the source node; and according to congestion information of the multiple neighboring nodes, Determining a next hop node of the data packet from the plurality of neighboring nodes; transmitting the data packet to the next hop node.
  • the information of the routing path includes the identifier information of each node cluster in the at least one node cluster and the order information of the at least one node cluster; Information, determining the next hop node of the data packet, including: determining the a node cluster to which the second node belongs; determining a next hop node cluster of the data packet according to the node cluster to which the second node belongs and information of the routing path; determining the data packet according to the next hop node cluster of the data packet Next hop node.
  • the information of the multiple neighboring nodes includes information about each neighboring node of the multiple neighboring nodes; Determining the next hop node of the data packet with the congestion information of the multiple neighboring nodes, including: determining, according to congestion information of each neighboring node of the multiple neighboring nodes, from the multiple neighboring nodes At least one neighboring node in a non-congested state; if the number of the at least one neighboring node is multiple, the neighboring node that is closest to the cluster of the next hopping node among the at least one neighboring node is determined as the next One hop node.
  • the third determining unit is specifically configured to: congest the at least one forwarding node cluster included in each optional routing path of the multiple optional routing paths Information, determining a congestion status of each of the optional routing paths; determining an optional routing path that minimizes congestion in the plurality of optional routing paths as the target routing path.
  • the congestion information includes a maximum cache occupancy BFM, and a congestion state of each optional routing path is represented by a BFM corresponding to each optional routing path;
  • the third determining unit is specifically configured to: use the first optional routing path
  • Corresponding BFM is determined as a sum of BFMs of at least one forwarding node cluster included in the first optional routing path, where the multiple optional routing paths include the first optional routing path, and the at least one forwarding node cluster
  • the BFM of each of the forwarding node clusters is determined by the BFM of at least one of the nodes included in each of the forwarding node clusters.
  • the first receiving unit is further configured to receive congestion information of the at least one forwarding node cluster sent by the second node, where the at least one forwarding node cluster includes the The second node.
  • the information of the routing path includes the identifier information of each node cluster in the at least one node cluster and the order information of the at least one node cluster.
  • the receiving unit is further configured to: before the sending unit sends the congestion information of the node to the control node, receive an information reporting indication sent by the control node, where The information reporting indication is used to indicate that the node sends the congestion information of the source node to the control node; the sending unit is further configured to send the congestion information of the node to the control node according to the information reporting indication received by the receiving unit.
  • the information of the routing path includes the identifier information of each node cluster in the at least one node cluster and the order information of the at least one node cluster;
  • the determining unit includes: a first determining subunit, configured to determine a node cluster to which the second node belongs, and a second determining subunit, configured to determine, according to the first determining subunit, a node cluster to which the second node belongs and information of the routing path, Determining a next hop node cluster of the data packet; a third determining subunit, configured to determine a next hop node of the data packet according to the next hop node cluster of the data packet determined by the second determining subunit.
  • the information of the multiple neighboring nodes includes information about each of the multiple neighboring nodes; the third determining sub-unit is specifically used And determining, according to the congestion information of each of the plurality of neighboring nodes, the at least one neighboring node that is in a non-congested state from the plurality of neighboring nodes; and the number of the at least one neighboring node For a plurality of, the neighboring node that is closest to the cluster of the next hop node among the at least one neighboring node is determined as the next hop node.
  • the method, node, and communication system for routing data packets provided by the embodiments of the present invention determine a data packet by dividing multiple nodes in the network into different node clusters and according to congestion information of multiple node clusters.
  • the routing path can balance the load of each node cluster in the network to avoid congestion.
  • FIG. 2 is a schematic diagram of an example of a system architecture of an embodiment of the present invention.
  • FIG. 6 is a schematic flowchart of a method for routing a data packet according to another embodiment of the present invention.
  • FIG. 8 is another schematic block diagram of a node according to an embodiment of the present invention.
  • Figure 10 is a schematic block diagram of a node in accordance with another embodiment of the present invention.
  • Figure 14 is a schematic block diagram of a node in accordance with another embodiment of the present invention.
  • Figure 15 is a schematic block diagram of a communication system in accordance with another embodiment of the present invention.
  • the technical solution of the embodiments of the present invention may be applied to an interconnection communication system of an on-chip network, such as an on-chip network composed of a processor unit and a memory unit, but may also be applied to other networks.
  • This embodiment of the present invention does not limit this.
  • a node may be in one-to-one correspondence with a router. Therefore, the description of a node in the embodiment of the present invention is equally applicable to a router.
  • each of the L node clusters may include one control node.
  • the control node in a node cluster may be a node at a specific location among the multiple nodes included in the node cluster, for example, the control node is a node in the node cluster at the center of all nodes; or
  • the control node is a node in the cluster of nodes having a specific function or including a specific device, for example, the control node is a node including a wireless transceiver among all the nodes included in the node cluster, and the like, This is not limited.
  • a node cluster includes a control node and a plurality of other nodes other than the control node
  • the control node may have a first transmission chain with at least one other node of the plurality of other nodes. a path, wherein the first transmission link is used to transmit congestion information of the node.
  • the control node may acquire congestion information of each of the other nodes, and according to the plurality of other The congestion information of each other node in the node determines the congestion information of the node cluster to which the control node belongs.
  • the first transmission link may be a wired link or a wireless link, which is not limited in this embodiment of the present invention.
  • a control node may receive congestion information of a node sent by each of the at least one neighboring node of the control node on its corresponding first transmission link, where the control node
  • the congestion information of the node sent by one neighboring node may include congestion information of the neighboring node itself or further include congestion information of other nodes, wherein the other node is not adjacent to the control node.
  • the control node acquires all the nodes in the node cluster except the control node by receiving the congestion information of the node sent by the neighboring node of the at least one neighboring node on the corresponding first transmission link. Congestion information.
  • any two adjacent nodes in a node cluster can directly transmit state information of the node or directly transmit data, wherein the link for transmitting the state information of the node can be used for the transmission.
  • the links of data are the same link or different links, and data cannot be directly transmitted between two adjacent nodes.
  • the control node and the node not adjacent to the control node can directly transmit state-related information, such as state information of the node, but cannot directly transmit data, but the embodiment of the present invention is not limited thereto.
  • the control node may determine the congestion information of the node cluster to which the control node belongs according to the congestion information of each of the other nodes in multiple manners.
  • the congestion information of the node includes a maximum buffer occupancy (Mixmum Buffer Occupay, BFM) of the node
  • the congestion information of the node cluster may also include the BFM of the node cluster
  • the control node may The sum of the BFMs of all the nodes included in the cluster is the BFM of the node cluster, that is, the BFM of the node cluster is the sum of the BFMs of all the nodes in the control node and the plurality of other nodes.
  • control node may also first determine whether a BFM of each node included in the node cluster meets a preset condition, and a node that meets the preset condition among all nodes included in the node cluster
  • the sum of the BFMs is the BFM of the cluster of nodes.
  • the preset condition may include: the BFM value of the node itself is greater than a certain threshold, and the difference between the BFM value of the node and the BFM value of the at least one other node except the node in the node cluster is greater than a certain threshold, but the embodiment of the present invention There is no limit to this.
  • the first control node of the L control nodes may receive congestion information of the node cluster sent by each of the at least one other control node through the second transmission link with the first control node, where And the node cluster to which the at least one other control node belongs is adjacent to the first node cluster to which the first node belongs.
  • the congestion information of the node cluster sent by the second control node may include congestion information of the second node cluster to which the second control node belongs, or further include congestion information of the third node cluster different from the second node cluster.
  • the congestion information of the third node cluster may be from the third control node, where the node cluster to which the third control node belongs may be adjacent to the second node cluster, and the node cluster to which the third control node belongs
  • the first node cluster may not be adjacent to each other, which is not limited by the embodiment of the present invention.
  • the first control node may send congestion information of the node cluster received by the first control node to the control node in the other node cluster adjacent to the first node cluster, for example, the first control node may go to the second
  • the control node sends the congestion information of the node cluster sent by the fourth control node received by the first control node, and sends the congestion information of the node cluster sent by the second control node received by the first control node to the fourth control node.
  • the node cluster to which the fourth control node belongs is adjacent to the first node cluster.
  • the first control node may aggregate the congestion information of the node cluster received by the first control node with the congestion information of the first node cluster, and control the other node clusters adjacent to the first node cluster.
  • the node sends congestion information of the aggregated node cluster. In this way, the first control node can acquire congestion information of (L-1) other node clusters other than the first node cluster.
  • the first one of the L control nodes may receive each of the (L-1) other control nodes sent on the second transmission link with the first control node
  • the congestion information of the other node clusters to which the other control nodes belong and the first control node may send the congestion information of the first node cluster to the (L-1) other control nodes, but the embodiment of the present invention does not limit this. .
  • the control node may periodically send the congestion information of the node cluster to which the control node belongs, where the period value may be preset; or the control node may also trigger the transmission of the control node to which the control node belongs.
  • the congestion information of the node cluster for example, when the first control node receives the request for requesting the congestion information of the first node cluster to which the first control node belongs, the first control node sends the request to the second control node.
  • Congestion information of the first node cluster or, when receiving the token sent by the third control node, the first control node sends the congestion information of the first node cluster, and after transmitting the congestion information of the first node cluster,
  • the token is sent to the second control node, so that the second control node sends the congestion information of the second node cluster to which the second control node belongs according to the token, but the embodiment of the present invention does not limit this.
  • the control node when a control node receives congestion information of other node clusters, the control node may store congestion information of the other node clusters, and before receiving the congestion information of the other node clusters again.
  • the congestion information of the stored other node clusters is always used.
  • the control node when the control node receives the congestion information of the other node clusters again, the stored congestion information of the other node clusters may be updated, but the embodiment of the present invention is not limited thereto.
  • node (1, 1) has a wireless transceiver.
  • the coarse-grain routing path of the data packet may be first determined according to congestion information of each node cluster in the multiple node cluster, where the coarse-grained routing path
  • the path may represent at least one node cluster that passes through the source node to the destination node in sequence, and is based on the node cluster; then the fine granularity of the data packet may be further determined on the basis of the coarse-grained routing path.
  • a routing path, where the fine-grained routing path may include a next hop node of the data packet, with the node as a basic unit. In this way, the load of each node in each node cluster can be balanced while balancing the load of each node cluster, thereby balancing the load of all nodes in the network and avoiding the occurrence of congestion.
  • FIG. 3 schematically illustrates a method 200 of routing data packets in a network in accordance with an embodiment of the present invention.
  • the network to which the method is applicable includes a plurality of node clusters, each of the clusters of each node cluster including at least A node, such as the method 200, is suitable for the on-chip network 100, but embodiments of the invention are not limited thereto.
  • the method 200 can be performed by a first node. As shown in FIG. 3, the method 200 includes:
  • the first node may also be a node other than the source node in the source node cluster, for example, the first node is a control node of the source node cluster, where The control node is different from the source node, which is not limited by the embodiment of the present invention.
  • the congestion information of the node cluster is used to indicate the congestion state of the node cluster, wherein the congestion state of the node cluster can reflect the overall situation of the congestion state of all the nodes included in the node cluster.
  • the congestion information of the node cluster may be determined according to congestion information of some or all nodes included in the node cluster.
  • the congestion information includes BFM.
  • the BFM of the node cluster may be equal to the sum of BFMs of some or all nodes in the node cluster, or a mathematical average of BFMs of some or all nodes in the node cluster. Or other function value of the BFM of some or all of the nodes in the cluster.
  • the target routing path may include at least one forwarding node cluster that passes through the source node cluster to the destination node cluster, wherein the target routing path may include only the destination node cluster or only the source node. a cluster and the destination node cluster, wherein the source node cluster may be adjacent to the destination node cluster; or the target routing path includes only at least one other node cluster other than the source node cluster and the destination node cluster, or The target node cluster is further included in the embodiment of the present invention.
  • the minimum granularity of the target routing path is a node cluster.
  • the target routing path is a coarse-grained routing path of the data packet.
  • the target routing path represents at least one forwarding node cluster that passes through the source node cluster to the destination node cluster in sequence.
  • the target routing path starts from the source node cluster, and ends with the destination node cluster, and may sequentially pass through zero, one or more forwarding node clusters.
  • the basic jump unit of the data packet is a node cluster.
  • the first node may determine the target routing path according to the congestion information of each of the plurality of forwarding node clusters.
  • the S230, the destination routing path is determined from the multiple optional routing paths according to the congestion information of the at least one forwarding node cluster included in each of the plurality of optional routing paths, including:
  • the BFM of one node cluster may be equal to the sum or mathematical average of the BFMs of some or all of the nodes in the node cluster, but the embodiment of the present invention is not limited thereto.
  • the first node may use one of the multiple optional routing paths as the target routing path according to the congestion status of each optional routing path. Specifically, the first node may determine the target routing path by using multiple selection criteria. Optionally, when determining the target routing path, the first node may consider only the congestion status of each optional routing path. For example, the first node may be the least congested among the multiple optional routing paths (ie, congestion). The least circulated optional routing path is determined as the target routing path.
  • the congestion state of the optional routing path may correspond to the first weight value
  • the number of node clusters included in the optional routing path may correspond to the second weight value.
  • the total weight value of an optional routing path may be determined according to the first weight value, the congestion status of the optional routing path, the second weight value, and the number of node clusters included in the optional routing path.
  • the total weight value may also have other functional forms, which are not limited by the embodiment of the present invention.
  • the first node may not be the source node, for example, the first node is a control node of the source node cluster, the control node is different from the source node, and optionally, the control node may be connected to the source node. Nodes are adjacent or not adjacent.
  • the first node may receive the request sent by the source node, determine the target node cluster and the target routing path according to the request, and send the target routing path to the source node.
  • the method 200 further includes:
  • S210 determining a destination node cluster to which the destination node of the data packet belongs, includes:
  • the destination node cluster to which the destination node belongs is determined.
  • the method 200 further includes: sending a path determination response to the source node, the path determining information carrying the target routing path in the response, so that the source node sends the data packet according to the information of the target routing path. .
  • the first node may determine the target node cluster according to the path determination request.
  • the path determination request may carry information of the destination node, for example, an IP address or a device identifier of the destination node, and the like.
  • the first node may determine the target node cluster according to the information of the destination node.
  • the first node may acquire a correspondence between the node and the node cluster, and determine the destination node cluster according to the information of the destination node and the obtained correspondence between the node and the node cluster, wherein the corresponding node
  • the relationship may be pre-stored by the first node or obtained from other network devices, which is not limited by the embodiment of the present invention.
  • the first node may also send a request for carrying information of the destination node to another network device, where the other network device determines the target node cluster according to the information of the destination node, and The first node sends the information of the destination node cluster. At this time, the first node may determine the target node cluster according to the information of the destination node cluster sent by the other network device.
  • embodiments of the invention are not limited thereto.
  • the source node may determine the target node cluster, and carry information of the destination node cluster, for example, the number of the destination node cluster, in the path determination request.
  • the first node may determine the target node cluster according to the information of the destination node cluster.
  • the source node can determine the destination node cluster in a variety of ways.
  • the source node may pre-store or have a correspondence between a node and a node cluster, or the source node may acquire a correspondence between the node and the node cluster from other nodes, and according to the correspondence between the node and the node cluster, and the purpose.
  • the information of the node determines the cluster of the destination node, but the embodiment of the present invention is not limited thereto.
  • the information of the target routing path may include identification information of each forwarding node cluster in the at least one forwarding node cluster included in the target routing path, or may further include information indicating an order of the at least one forwarding node cluster, The data packet passes through the at least one forwarding node cluster in this order, but the embodiment of the present invention is not limited thereto.
  • the first node may determine congestion information of multiple forwarding node clusters included in the multiple optional routing paths in multiple manners.
  • the first node may pre-store congestion information of each of the plurality of forwarding node clusters, or the first node may also be sent to other nodes (for example, the plurality of forwarding node clusters)
  • the control node of the at least one forwarding node cluster sends a request message and receives congestion information of the at least one node cluster of the plurality of node clusters sent by the other node according to the request message, and the embodiment of the present invention is not limited thereto.
  • the method 200 further includes: receiving congestion information of at least one forwarding node cluster sent by the second node, where the at least one forwarding node cluster includes the second node.
  • other node clusters to which the second node cluster belongs may be adjacent to or not adjacent to the source node cluster.
  • the congestion information of the at least one forwarding node cluster sent by the second node may include congestion information of the first forwarding node cluster, where the second node cluster belongs to the first forwarding node cluster, and the first forwarding node cluster may The source node clusters are adjacent or non-adjacent; or further carrying congestion information of the second forwarding node cluster, wherein the second forwarding node cluster may be adjacent to the first forwarding node cluster, and the second forwarding node cluster may be The source node clusters are adjacent or non-adjacent, which is not limited in this embodiment of the present invention.
  • the first node may receive a status message sent by the control node of the one or more forwarding node clusters, where the status message sent by the control node of each forwarding node cluster carries the congestion information of the forwarding node cluster or carries the forwarding Congestion information of multiple forwarding node clusters including node clusters.
  • the plurality of forwarding node clusters may include or be in addition to the destination node cluster and the destination node cluster Other node clusters than the other, but the embodiment of the present invention is not limited thereto.
  • the receiving, by the second node, the congestion information of the at least one other node cluster includes:
  • the first node may receive a broadcast message sent by a control node of each of the plurality of forwarding node clusters included in the plurality of optional routing paths, and the broadcast sent by the control node in each forwarding node cluster
  • the message carries the congestion information of each of the forwarding node clusters, but the embodiment of the present invention is not limited thereto.
  • the first node before receiving the congestion information of the at least one other node cluster sent by the second node, the first node may further send a request message to the second node, requesting the second node to send the node. Congestion information of the cluster; correspondingly, the second node sends the congestion information of the at least one forwarding node cluster to the first node according to the request message, but the embodiment of the present invention is not limited thereto.
  • the first node may further store congestion information of the at least one forwarding node cluster.
  • the first node may also update the stored congestion information of the at least one forwarding node cluster, but the embodiment of the present invention is not limited thereto.
  • the first node may further determine congestion information of the source node cluster.
  • the first node may pre-store the congestion information of the source node cluster, where the congestion information of the source node cluster may be determined according to congestion information of at least one other node.
  • the first node may indicate that at least one other node in the source node cluster sends its own congestion information, and determines congestion information of the source node cluster according to the congestion information of the at least one other node.
  • the source node cluster may be composed of the first node and at least one third node other than the first node, where the at least one third node may include the source node.
  • the method 200 further includes:
  • the first node may be configured according to congestion information of the at least one third node and the first node Congestion information, determining congestion information of the source node cluster.
  • the congestion information includes a BFM
  • the BFM of the first node cluster may be equal to a sum of BFMs of some or all nodes in the source node cluster, or be equal to a BFM of some or all nodes in the source node cluster.
  • the mathematical average, or other function value of the BFM of some or all of the nodes in the cluster of the source node is not limited in this embodiment of the present invention.
  • Each third node of the at least one third node may periodically or triggerably send congestion information of the node to the first node, where the trigger condition may be sent by the control node to indicate the first
  • the embodiment of the present invention does not limit the indication that the three nodes send their own congestion information, or the data packet to be sent by the third node.
  • the method 200 before receiving the congestion information of each third node sent by each third node in the at least one third node, the method 200 further includes:
  • receiving the congestion information of each third node sent by each third node of the at least one third node includes:
  • the method 200 may further include:
  • Congestion information of the source node cluster is transmitted to at least one fourth node, wherein the fourth node belongs to another node cluster different from the source node cluster.
  • the information of the target routing path may include information of at least one node cluster included in the target routing path, or further include order information of the at least one node cluster, and the data packet sequentially passes through the at least one node cluster in an order corresponding to the order information.
  • embodiments of the invention are not limited thereto.
  • the source node may further determine a fine-grained routing path of the data packet according to the target routing path. Specifically, the source node may determine a next hop node of the data packet according to the target routing path and/or congestion information of multiple neighboring nodes of the source node.
  • the sending the data packet includes:
  • S240 Determine congestion information of multiple neighboring nodes of the source node.
  • the congestion information of the multiple neighboring nodes may include congestion information of some or all of the plurality of neighboring nodes.
  • the source node may determine a next hop node cluster of the data packet according to the target routing path, and determine at least one neighbor of the plurality of neighboring nodes of the source node that is closest to the next hop node cluster.
  • a node, wherein at least one neighbor node that is closest to the cluster of the next hop node may mean that the number of hops passed by the at least one neighboring node to the cluster of the next hop node is the least.
  • the source node may determine congestion information of each of the at least one neighboring node, and determine, according to congestion information of each of the at least one neighboring node, The next hop node. Specifically, the source node may determine whether each of the at least one neighboring node is in a congested state, where the node that is not in the congestion state is in a non-congested state, and if the congestion information of the node meets the preset condition, The node is in a congested state, and the preset condition may include that the BFM of the node is greater than a certain threshold, or the difference between the BFM of the node and the average BFM of the source node cluster is greater than a certain threshold, and the like, but the embodiment of the present invention is not limited thereto.
  • the first node may determine at least a second of the plurality of neighboring nodes that is closest to the next hop node cluster
  • An adjacent node determines whether the at least one neighboring node next to the distance is in a congested state, and reciprocates until an adjacent node in a non-congested state is found.
  • the source node may be the at least one neighboring node.
  • the neighboring node in the non-congested state is determined as the next hop node. If the number of neighboring nodes in the non-congested state of the at least one neighboring node is multiple, the source node may determine the node with the least degree of congestion among the neighboring nodes in the non-congested state as the next one.
  • the hop node wherein the neighboring node with the least degree of congestion may refer to the neighboring node corresponding to the smallest BFM value among the plurality of neighboring nodes in the non-congested state, but the embodiment of the present invention is not limited thereto.
  • the source node may also first determine at least one neighboring node in the non-congested state among the multiple neighboring nodes, if the number of the at least one neighboring node in the non-congested state If the value is one, the source node may determine the neighboring node in the non-congested state as the next hop node. If the number of the at least one neighboring node in the non-congested state is multiple, the source node may determine the next hop node according to the distance between the at least one neighboring node and the next hop node cluster. At this time, the congestion information of the multiple neighboring nodes may include congestion information of each of the plurality of neighboring nodes. Correspondingly, determining, according to the congestion information of the multiple neighboring nodes, the next hop node of the data packet from the multiple neighboring nodes, including:
  • the neighboring node is determined to be the next hop node.
  • the source node may determine the nearest neighbor node as the next hopping node point. If the number of neighboring nodes that are closest to the next hop node cluster in the at least one neighboring node is multiple, the source node may determine the neighboring node with the least congestion degree as the next hop node,
  • embodiments of the invention are not limited thereto.
  • the source node can determine congestion information of the multiple neighboring nodes in various manners.
  • the source node may pre-store the congestion information of each neighboring node, or receive the congestion information of each neighboring node that is actively or passively sent by each neighboring node, which is not limited in this embodiment of the present invention. .
  • the method for routing data packets can determine the routing path of the data packet by dividing the plurality of nodes in the network into different node clusters and according to the congestion information of the plurality of node clusters, and can balance the network. The load of each node cluster to avoid congestion.
  • the source node determines the next hop node of the data packet according to the target routing path of the data packet and the congestion information of the multiple neighboring nodes of the source node, and can further balance the load of each node in the source node cluster. Thereby balancing the load of all nodes in the network to further avoid congestion.
  • FIG. 5 illustrates a method 300 of routing data packets in accordance with another embodiment of the present invention.
  • the network to which the method is applicable includes a plurality of node clusters, each of the node clusters including at least one node.
  • the method 300 is applicable to the on-chip network 100, but the embodiment of the present invention is not limited thereto.
  • the method 300 can be performed by a source node of a data packet, wherein a source node of the data packet is different from a control node of a source node cluster to which the source node belongs, and the source node can be adjacent or not adjacent to the control node.
  • the method 300 includes:
  • S310 Send a path determination request to the control node, where the path determination request is used to request the control node to determine a routing path of the data packet, where the source node and the control node belong to a source node cluster;
  • control node may determine the source node cluster and the destination node cluster to which the destination node of the data packet belongs, and determine a routing path of the data packet according to the source node cluster and the target node cluster. .
  • the method for routing a data packet by dividing a plurality of nodes in the network into different node clusters, and the source node transmitting a path determination request to the control node, requesting the control node to determine a routing path of the data packet, And sending the data packet according to the information of the routing path sent by the control node, where the information of the routing path includes information of at least one node cluster, And the routing path is determined according to the congestion information of the multiple node clusters, and therefore, the load of each node cluster in the network can be balanced, thereby avoiding the occurrence of congestion.
  • the source node cluster and the destination node cluster are different node clusters.
  • the source node cluster may be composed of at least two nodes including the source node and the control node
  • the destination node cluster may be composed of at least one node including the destination node, which is used by the embodiment of the present invention.
  • the routing path starts from the source node cluster and ends with the destination node cluster, and may pass through zero, one or more node clusters in sequence.
  • the minimum granularity of the routing path is a node cluster.
  • the routing path is a coarse-grained routing path of the data packet.
  • the basic jump unit of the data packet is a node cluster.
  • the order information of the at least one node cluster may include hop count information corresponding to each node cluster in the at least one node cluster, and the hop count information of one node cluster may be specifically the node cluster being the first few of the at least one node cluster Jumping, but the embodiment of the invention is not limited thereto.
  • the path determining request carries the information of the destination node, so that the control node determines the destination node cluster according to the information of the destination node and determines the routing path according to the destination node cluster.
  • the information of the destination node may include an IP address or a device identifier of the destination node, and the like.
  • the control node may determine the target node cluster according to the information of the destination node. Specifically, the control node may acquire a correspondence between the node and the node cluster, and determine the target node cluster according to the information of the destination node and the correspondence between the acquired node and the node cluster, where the corresponding relationship may be
  • the control node is pre-stored or obtained from other network devices, which is not limited by the embodiment of the present invention.
  • the control node may also send, to other network devices, a request that carries information of the destination node, where the other network device is configured according to the destination node.
  • the control node determines the destination node cluster according to the information of the destination node cluster sent by the other network device, in the embodiment of the present invention Not limited to this.
  • the source node may further determine, according to information about the destination node, a destination node cluster to which the destination node belongs, and carry information of the destination node cluster in the path determination request.
  • the source node can determine the destination node cluster in a variety of ways.
  • the source node may acquire a correspondence between the node and the node cluster, and determine the target node cluster according to the information of the destination node and the obtained correspondence between the node and the node cluster, wherein the corresponding node
  • the relationship may be pre-stored by the source node or obtained from other network devices, which is not limited by the embodiment of the present invention.
  • the source node may also send a request for carrying information of the destination node to another network device, where the other network device may include the control node, and the other network device is configured according to the destination node.
  • the information is determined by the destination node cluster, and the destination node cluster information is sent to the source node.
  • the source node determines the destination node cluster according to the information of the destination node cluster sent by the other network device, which is not in the embodiment of the present invention. Limited to this.
  • the control node may determine the routing path according to the destination node cluster.
  • the control node may pre-store information of the routing path from the source node cluster to the destination node cluster, and obtain information about the stored routing path, where the pre-stored information of the routing path may be Determined based on congestion information of each of the plurality of node clusters.
  • the control node may acquire congestion information of each node cluster of the plurality of node clusters, and according to the source node cluster, the destination node cluster, and each of the plurality of node clusters The congestion information of the cluster determines the routing path, but the embodiment of the present invention is not limited thereto.
  • S330 according to the information of the routing path, sending the data packet, including:
  • the source node may carry the information of the routing path in the packet header of the data packet, and send the data packet to which the information of the target routing path is added. In this way, the node that receives the data packet can determine the next hop node of the data packet according to the information of the target routing path carried in the data packet.
  • the source node may further determine a fine-grained routing path of the data packet according to the information of the routing path. Specifically, the source node may be based on the information of the routing path and/or multiple neighboring nodes of the source node. Congestion information determines the next hop node of the packet.
  • the sending the data packet includes:
  • the packet is sent to the next hop node.
  • the congestion information of the plurality of neighboring nodes may include congestion information of some or all of the plurality of neighboring nodes.
  • the source node may determine, according to the information of the routing path, a next hop node cluster of the data packet, and determine at least one of the plurality of neighboring nodes of the source node that is closest to the next hop node cluster.
  • the neighboring node, wherein the at least one neighboring node that is closest to the cluster of the next hopping node may mean that the number of hops passed by the at least one neighboring node to the cluster of the next hopping node is the least.
  • the source node may determine congestion information of each of the at least one neighboring node, and determine the next hop node according to congestion information of each of the at least one neighboring node. Specifically, the source node may determine whether each adjacent node of the at least one neighboring node is in a congested state, wherein if the congestion information of one neighboring node satisfies a preset condition, the neighboring node is in a congested state.
  • the preset condition may include that the BFM of the node is greater than a certain threshold, or the difference between the BFM of the node and the average BFM of the source node cluster is greater than a certain threshold, etc., but the embodiment of the present invention is not limited thereto.
  • the first node may determine at least a second of the plurality of neighboring nodes that is closest to the next hop node cluster
  • An adjacent node determines whether the at least one neighboring node next to the distance is in a congested state, and reciprocates until an adjacent node in a non-congested state is found.
  • the source node may be the at least one neighboring node.
  • the neighboring node in the non-congested state is determined as the next hop node. If the number of neighboring nodes in the non-congested state of the at least one neighboring node is multiple, the source node may determine the node with the least degree of congestion among the neighboring nodes in the non-congested state as the next one.
  • the hop node wherein the neighboring node with the least degree of congestion may refer to the neighboring node corresponding to the smallest BFM value among the plurality of neighboring nodes in the non-congested state, but the embodiment of the present invention is not limited thereto.
  • the congestion information of the multiple neighboring nodes includes congestion information of each of the plurality of neighboring nodes; correspondingly, according to the congestion information of the multiple neighboring nodes, from the multiple phases
  • the next hop node of the data packet is determined in the neighboring node, including:
  • the next hop node cluster corresponding to the source node cluster, and the at least one neighboring node and the next hop node cluster is determined to be the next hop node.
  • the congestion information of the node may indicate the congestion status of the node.
  • the source node can determine congestion information of the multiple neighboring nodes in various manners.
  • the source node may pre-store congestion information of each neighboring node; or the source node may receive congestion information of each neighboring node sent by each of the multiple neighboring nodes.
  • the plurality of neighboring nodes may periodically or triggerably send their own congestion information to the source node, for example, the plurality of neighboring nodes send their own to the source node after receiving the request of the source node. Congestion information, but embodiments of the present invention are not limited thereto.
  • the congestion information of the multiple neighboring nodes may be obtained by the source node by using a first transmission link with multiple neighboring nodes, where the first transmission is between two adjacent nodes.
  • the first transmission link is used to transmit congestion information and data of the node to the adjacent node, but the embodiment of the present invention is not limited thereto.
  • the source node may send the congestion information of the source node to the control node periodically or in a triggering manner, where the trigger condition may be sent by the control node to indicate that the source node sends the
  • the embodiment of the present invention does not limit the indication of the congestion information, or the data packet to be sent by the source node.
  • the source node may send the congestion information of the source node by using a first transmission link with the control node, where the control node may have the same relationship with each of the other nodes.
  • a first transmission link the other node being a node other than the control node in the source node cluster.
  • the first transmission link is used to transmit state information of the node, for example, congestion information of the node, but the embodiment of the present invention is not limited thereto.
  • the sending the congestion information of the source node to the control node includes:
  • the congestion information of the source node is sent to the control node.
  • the source node determines the next hop node of the data packet according to the information of the routing path and the congestion information of the multiple neighboring nodes of the source node, and can further balance the load of each node in the source node cluster, thereby balancing The load on all nodes in the network further avoids congestion.
  • FIG. 6 illustrates a method 400 of routing data packets in accordance with yet another embodiment of the present invention.
  • the network to which the method is applicable includes a plurality of clusters of nodes, each of which includes at least one node.
  • the method 400 is applicable to the on-chip network 100, but the embodiment of the present invention is not limited thereto.
  • the method 400 may be performed by a second node, where the second node may be the control node in the foregoing embodiment, or the second node is the source node in the foregoing embodiment, and at this time, the source node receives different data packets.
  • the data packet sent by the source node in the foregoing embodiment, or the second node is a node other than the control node and the source node, which is not limited by the embodiment of the present invention.
  • the method 400 includes:
  • S410 Receive a data packet, where the data packet may carry information about a routing path of the data packet, where the information of the routing path may include information of at least one node cluster.
  • S420 Determine, according to information about the routing path, a next hop node of the data packet.
  • the method for routing a data packet determines a data packet by dividing a plurality of nodes in the network into different node clusters, and the second node determines information according to the routing path carried in the received data packet.
  • a next hop node wherein the information of the routing path includes information of the at least one node cluster, and the routing path is determined according to congestion information of the plurality of node clusters, and therefore, the load of each node cluster in the network can be balanced, Thereby avoiding the occurrence of congestion.
  • the data packet may carry information of a routing path of the data packet, wherein the information of the routing path may include information of at least one node cluster.
  • the information of the routing path may include the identification information of each node cluster in the at least one node cluster and the order information of the at least one node cluster, but the embodiment of the present invention is not limited thereto.
  • the second node may determine a node cluster to which the second node belongs, and determine a next hop node cluster of the data packet according to the order information of the at least one node cluster and the node cluster to which the second node belongs, but the present invention implements This example does not limit this.
  • the routing path may include at least one node cluster that sequentially passes through the data packet from the source node to the destination node, where the at least one node cluster may include only the destination node cluster to which the destination node belongs or only the source node cluster And the destination node cluster, in this case, the source node cluster may be adjacent to the destination node cluster, and the information of the routing path may only include information of the destination node cluster.
  • the routing path includes at least one other node cluster other than the source node cluster and the destination node cluster. At this time, the information of the at least one node cluster may include only information of at least one other node cluster other than the source node cluster and the destination node cluster, or further include information of the destination node cluster, which is not Make a limit.
  • S420 determining, according to the information of the routing path, a next hop node of the data packet, including:
  • the next hop node of the data packet is determined according to the next hop node cluster of the data packet.
  • the information of the routing path may include a label of the first node cluster to which the second node belongs. Identification information, identification information of the second node cluster, and order information of the first node cluster and the second node cluster.
  • the second node may determine, according to the order information of the first node cluster and the second node cluster, the second node cluster as a next hop node cluster of the first node cluster, and determine the data according to the second node cluster. The next hop node of the packet.
  • determining, according to the next hop node cluster, a next hop node of the data packet including:
  • the second node may determine whether each adjacent node of the at least one neighboring node is in a congested state, where the neighboring node is in a congested state if the congestion information of one neighboring node satisfies a preset condition
  • the preset condition may include that the BFM of the neighboring node is greater than a certain threshold, or the difference between the BFM of the neighboring node and the average BFM of the source node cluster is greater than a certain threshold, and the like, but the embodiment of the present invention is not limited thereto.
  • the second node may be the at least one neighbor.
  • the neighboring node in the non-congested state of the node is determined as the next hop node. If the number of neighboring nodes in the non-congested state of the at least one neighboring node is multiple, the second node may determine the node with the least degree of congestion among the neighboring nodes in the non-congested state as the lower one.
  • a hop node wherein the neighboring node with the least degree of congestion may refer to the neighboring node corresponding to the smallest BFM value among the plurality of neighboring nodes in the non-congested state, but the embodiment of the present invention is not limited thereto.
  • the second node may also first determine at least one neighboring node that is in a non-congested state among the multiple neighboring nodes, if the at least one neighboring node in the non-congested state If the number is one, the source node may determine the neighboring node in the non-congested state as the next hop node. If the number of the at least one neighboring node in the non-congested state is multiple, the source node may determine the next hop node according to the distance between the at least one neighboring node and the next hop node cluster.
  • the information of the multiple neighboring nodes includes information of each of the plurality of neighboring nodes; correspondingly, according to the congestion information of the next hop node cluster and the multiple neighboring nodes, Determine the next hop node of the packet, including:
  • the neighboring node that is closest to the cluster of the next hop node among the at least one neighboring node is determined as the next hop node.
  • the second node may determine the nearest neighbor node as the next hop node. If the number of neighboring nodes that are closest to the next hop node cluster in the at least one neighboring node is multiple, the second node may determine the neighboring node with the least congestion degree as the next hop node.
  • embodiments of the invention are not limited thereto.
  • the congestion information of the node may indicate the congestion state of the node at the current time or at a certain moment before.
  • the second node may determine congestion information of the multiple neighboring nodes in multiple manners.
  • the second node may pre-store the congestion information of each neighboring node; or the second node may receive the neighboring node sent by each of the multiple neighboring nodes.
  • Congestion information wherein the plurality of neighboring nodes may periodically or triggerably send their own congestion information to the second node, for example, the multiple neighboring nodes send the request to the second node to the first
  • the two nodes send their own congestion information, but the embodiment of the present invention is not limited thereto.
  • the congestion information of the multiple neighboring nodes may be obtained by the second node by using a first transmission link with multiple neighboring nodes, where the first node has the first a transmission connection, the first transmission link is used to transmit congestion information and data of the node to the adjacent node, but the embodiment of the present invention is not limited thereto.
  • the method 400 further includes:
  • the congestion information of the two nodes determines the congestion information of the node cluster to which the second node belongs.
  • the second node may periodically or triggerably send the congestion information of the second node to the control node, where the trigger condition may be an indication that the control node sends the congestion information to indicate that the second node sends the congestion information.
  • the embodiment of the present invention does not limit the data packet to be sent by the second node.
  • the second node may send the congestion information of the second node by using a second transmission link with the control node, where the control node may be connected to each of the other nodes.
  • There is the second transmission link and the other nodes are nodes other than the control node in the first node cluster.
  • the second transmission link is used for communication between the control node and the plurality of other nodes. For example, each other node sends its own congestion information to the control node, but the embodiment of the present invention is not limited thereto.
  • the second node may further send congestion information of the other node to the control node, where congestion information of the other node may be from a neighboring node of the second node, and the other node may
  • congestion information of the other node may be from a neighboring node of the second node, and the other node may
  • the second node is adjacent or non-adjacent, which is not limited by the embodiment of the present invention.
  • the method for routing a data packet determines a data packet by dividing a plurality of nodes in the network into different node clusters, and the second node determines information according to the routing path carried in the received data packet.
  • a next hop node wherein the information of the routing path includes information of at least one node cluster, and the routing path is determined according to congestion information of the plurality of node clusters, thereby balancing the load of each node cluster in the network, thereby Avoid congestion.
  • the second node determines the next hop node of the data packet according to the information of the routing path and the congestion information of the multiple neighboring nodes of the second node, and can further balance the load of each node in the source node cluster.
  • the load on all nodes in the network is balanced to further avoid congestion.
  • FIG. 7 shows a node 500 in accordance with an embodiment of the present invention.
  • the node 500 can correspond to the first node in the above embodiment and is used to perform the method 200 described above. As shown in FIG. 7, the node 500 includes:
  • a second determining unit 520 configured to determine, by the source node cluster, a plurality of optional routing paths of the destination node cluster determined by the first determining unit 510, where a source node of the data packet belongs to the source node cluster
  • Each of the plurality of selectable routing paths includes at least one forwarding node cluster
  • a third determining unit 530 configured to use, according to the congestion information of the at least one forwarding node cluster included in each of the plurality of selectable routing paths determined by the second determining unit 520, from the multiple optional routes
  • the target routing path is determined in the path.
  • a node can determine a routing path of a data packet by dividing a plurality of nodes in the network into different node clusters, and according to congestion information of the plurality of node clusters, and can balance each node cluster in the network. Load to avoid congestion.
  • the target routing path represents at least one forwarding node cluster that passes through the source node cluster to the destination node cluster in sequence.
  • the third determining unit 530 is specifically configured to:
  • the optional routing path with the smallest degree of congestion in the plurality of optional routing paths is determined as the target routing path.
  • the congestion information includes a BFM
  • a congestion status of each optional routing path is represented by a BFM corresponding to each optional routing path.
  • the third determining unit 530 is specifically configured to:
  • the BFM of each of the at least one forwarding node cluster is determined by the BFM of at least one node included in the each forwarding node cluster.
  • the node 500 is a node other than the source node that is included in the source node cluster.
  • the node 500 further includes:
  • the first determining unit 510 is specifically configured to: according to the path determining request received by the first receiving unit 510, determine a target node cluster to which the destination node belongs.
  • the first receiving unit 540 is further configured to receive congestion information of at least one forwarding node cluster sent by the second node, where the at least one forwarding node cluster includes the second node.
  • the first receiving unit 540 is specifically configured to receive congestion information of a forwarding node cluster to which the second node that is broadcast by the second node belongs.
  • the first sending unit 550 is further configured to receive, by the first receiving unit 540, congestion of each third node that is sent by each third node of the at least one third node.
  • the first receiving unit 540 is configured to receive, by each third node of the at least one third node, congestion information of each third node that is sent according to the information reporting indication sent by the first sending unit 550. .
  • the second sending unit is configured to send the data packet according to the target routing path of the data packet determined by the third determining unit 530.
  • a first determining subunit configured to determine congestion information of multiple neighboring nodes of the source node
  • a second determining subunit configured to determine, according to the congestion information of the multiple neighboring nodes determined by the first determining subunit, a next hop node of the data packet from the multiple neighboring nodes;
  • a sending subunit configured to send the data packet to the next hop node determined by the second determining subunit.
  • the congestion information of the multiple neighboring nodes includes congestion information of each of the multiple neighboring nodes
  • Node 500 in accordance with an embodiment of the present invention may correspond to a first node in method 200 of routing data packets in accordance with an embodiment of the present invention, and the above and other operations and/or functions of various modules in node 500 are respectively implemented to implement FIG.
  • the corresponding processes of the respective methods in FIG. 4 are not described herein for the sake of brevity.
  • a node can determine a routing path of a data packet by dividing a plurality of nodes in the network into different node clusters, and according to congestion information of the plurality of node clusters, and can balance each node cluster in the network. Load to avoid congestion.
  • the node determines the next hop node of the data packet according to the target routing path of the data packet and the congestion information of multiple neighboring nodes of the node, and can further balance The load of each node in the source node cluster, thereby balancing the load of all nodes in the network, further avoiding congestion.
  • FIG. 9 shows a node 600 in accordance with another embodiment of the present invention.
  • the node 600 can correspond to The source node in the above method embodiment is used to perform the method 300 described above.
  • the node 600 includes:
  • the sending unit 610 is configured to send a path determining request to the control node, where the path determining request is used to request the control node to determine a routing path of the data packet, where the node and the control node belong to the source node cluster;
  • the sending unit 610 is further configured to send the data packet according to the information of the routing path received by the receiving unit 620.
  • a node by dividing a plurality of nodes in a network into different node clusters, and transmitting a path determination request to the control node, requesting the control node to determine a routing path of the data packet, and transmitting according to the control node Information of the routing path, where the data packet is sent, wherein the routing path includes information of at least one node cluster, and the routing path is determined according to congestion information of multiple node clusters, and can balance the load of each node cluster in the network. Thereby avoiding the occurrence of congestion.
  • the information of the routing path includes identification information of each node cluster in the at least one node cluster and order information of the at least one node cluster.
  • the routing path may include at least one node cluster that sequentially passes through the data packet from the source node to the destination node, where the at least one node cluster may include only the destination node cluster to which the destination node belongs or only the source node cluster And the destination node cluster, in this case, the source node cluster may be adjacent to the destination node cluster, and the information of the routing path may only include information of the destination node cluster.
  • the routing path includes at least one other node cluster other than the source node cluster and the destination node cluster. At this time, the information of the at least one node cluster may include only information of at least one other node cluster other than the source node cluster and the destination node cluster, or further include information of the destination node cluster, which is not Make a limit.
  • the path determining request carries information of the destination node of the data packet, so that the control node determines, according to information of the destination node, a destination node cluster to which the destination node belongs and according to the source node cluster. And the destination node cluster determines the routing path.
  • the sending unit 610 is specifically configured to: send the data packet, where the data packet carries information of the routing path, so that the node that receives the data packet is configured according to The information of the routing path carried by the data packet forwards the data packet.
  • the sending unit 610 includes:
  • a first determining subunit configured to determine congestion information of multiple neighboring nodes of the node
  • a second determining subunit configured to determine, according to the congestion information of the multiple neighboring nodes determined by the first determining subunit, a next hop node of the data packet from the multiple neighboring nodes;
  • a sending subunit configured to send the data packet to the next hop node determined by the second determining subunit.
  • the congestion information of the multiple neighboring nodes includes congestion information of each of the multiple neighboring nodes
  • the second determining subunit is specifically configured to:
  • the neighboring node is determined to be the next hop node.
  • the sending unit 610 is further configured to send the congestion information of the node to the control node according to the information reporting indication received by the receiving unit 620.
  • a node 600 in accordance with an embodiment of the present invention may correspond to a source node in a method 300 of routing data packets in accordance with an embodiment of the present invention, and the above and other operations and/or functions of the various modules in the node 600 are respectively implemented in FIG. The corresponding processes of the various methods are not repeated here for the sake of brevity.
  • a node by dividing a plurality of nodes in a network into different node clusters, and transmitting a path determination request to the control node, requesting the control node to determine a routing path of the data packet, and transmitting according to the control node Information about the routing path, sending the packet, its
  • the routing path includes information of at least one node cluster, and the routing path is determined according to congestion information of the plurality of node clusters, and can balance the load of each node cluster in the network, thereby avoiding congestion.
  • the node determines the next hop node of the data packet according to the information of the routing path and the congestion information of the multiple neighboring nodes of the node, and can further balance the load of each node in the source node cluster, thereby balancing the network.
  • the load on all nodes further avoids congestion.
  • FIG. 10 shows a node 700 in accordance with another embodiment of the present invention.
  • the node 700 can correspond to the second node in the above method embodiment and is used to perform the method 400 described above.
  • the node 700 includes:
  • the receiving unit 710 is configured to receive a data packet, where the data packet carries information about a routing path of the data packet, where the information of the routing path includes information of at least one node cluster;
  • a determining unit 720 configured to determine, according to the information of the routing path received by the receiving unit 710, a next hop node of the data packet;
  • a node determines a next hop node of a data packet by dividing a plurality of nodes in the network into different node clusters, and according to information of a routing path carried in the received data packet, where The information of the routing path includes information of the at least one node cluster, and the routing path is determined according to congestion information of multiple node clusters, and can balance the load of each node cluster in the network, thereby avoiding congestion.
  • the routing path may include at least one node cluster that sequentially passes through the data packet from the source node to the destination node, where the at least one node cluster may include only the destination node cluster to which the destination node belongs or only the source node cluster And the destination node cluster, in this case, the source node cluster may be adjacent to the destination node cluster, and the information of the routing path may only include information of the destination node cluster.
  • the routing path includes at least one other node cluster other than the source node cluster and the destination node cluster. At this time, the information of the at least one node cluster may include only information of at least one other node cluster other than the source node cluster and the destination node cluster, or further include information of the destination node cluster, which is not Make a limit.
  • the determining unit 720 can include:
  • a second determining subunit configured to determine a next hop node cluster of the data packet according to the node cluster to which the second node belongs and the information of the routing path determined by the first determining subunit;
  • a third determining subunit configured to determine a next hop node of the data packet according to the next hop node cluster of the data packet determined by the second determining subunit.
  • the third determining subunit is specifically configured to:
  • next hop node cluster determining, according to the next hop node cluster and the congestion information of the multiple neighbor nodes, the next hop node of the data packet.
  • the information of the multiple neighboring nodes includes information of each of the plurality of neighboring nodes
  • the third determining subunit is specifically configured to:
  • the neighboring node that is closest to the cluster of the next hop node among the at least one neighboring node is determined as the next hop node.
  • a node determines a next hop node of a data packet by dividing a plurality of nodes in the network into different node clusters, and according to information of a routing path carried in the received data packet, where The information of the routing path includes information of at least one node cluster, and the routing path is determined according to congestion information of multiple node clusters, and can balance the load of each node cluster in the network, thereby avoiding congestion.
  • the node determines the next hop node of the data packet according to the information of the routing path and the congestion information of the multiple neighboring nodes of the node, and can further balance the load of each node in the source node cluster, thereby balancing the network.
  • the load of all nodes in the node further avoids congestion.
  • FIG. 11 illustrates a communication system 800 including: a node 500 illustrated in FIG. 7 or FIG. 8 and a node 700 illustrated in FIG. 10, in accordance with an embodiment of the present invention; or, the communication system 800 may include The node 600 shown in FIG. 9 and the node 700 shown in FIG.
  • the communication system determines the next hop node of the data packet by dividing the plurality of nodes in the network into different node clusters and according to the information of the routing path carried in the received data packet.
  • the information of the routing path includes information of at least one node cluster, and the routing path is determined according to congestion information of multiple node clusters, and can balance the load of each node cluster in the network, thereby avoiding congestion.
  • FIG. 12 shows a node 1100 in accordance with an embodiment of the present invention.
  • the node 1100 can correspond to the first node in the above embodiment and is used to perform the method 200 described above.
  • the node 1100 includes a processor 1110 for:
  • a node can determine a routing path of a data packet by dividing a plurality of nodes in the network into different node clusters, and according to congestion information of the plurality of node clusters, and can balance each node cluster in the network. Load to avoid congestion.
  • the processor 1110 may be a central processing unit (“CPU"), and the processor 1110 may also be other general-purpose processors, digital signal processors (DSPs). , an application specific integrated circuit (ASIC), an off-the-shelf programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, and the like.
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • the node 1100 may further include a memory for storing congestion information of each of the plurality of node clusters, or for further storing a correspondence between the node and the node cluster.
  • the memory can include read only memory and random access memory and provides instructions and data to the processor 1110.
  • a portion of the memory may also include a non-volatile random access memory.
  • the memory can also store information of the device type.
  • each step of the above method may pass through a set of hardware in the processor 1110.
  • the instructions in the form of logic circuits or software are completed.
  • the steps of the method disclosed in the embodiments of the present invention may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor.
  • the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
  • the storage medium is located in the memory, and the processor 1110 reads the information in the memory and completes the steps of the above method in combination with the hardware thereof. To avoid repetition, it will not be described in detail here.
  • the target routing path represents at least one forwarding node cluster that passes through the source node cluster to the destination node cluster in sequence.
  • the processor 1110 is specifically configured to:
  • the congestion information includes a BFM, and a congestion status of each optional routing path is represented by a BFM corresponding to each optional routing path.
  • the processor 1110 is specifically configured to:
  • the BFM of each of the at least one forwarding node cluster is determined by the BFM of at least one node included in the each forwarding node cluster.
  • the processor 1110 is specifically configured to:
  • the node 1110 is a node other than the source node that is included in the source node cluster.
  • the node 1100 further includes:
  • the receiver 1120 is configured to receive, before the processor 1110 determines the destination node cluster to which the destination node of the data packet belongs, a path determination request sent by the source node, where the path determination request is used to request the first node to determine the data packet. Routing path
  • the processor 1110 is specifically configured to: according to the path determination request received by the receiver 1120, determine a destination node cluster to which the destination node belongs.
  • the node 1100 also includes:
  • the transmitter 1130 is configured to send, to the source node, information about the target routing path determined by the processor 1110, so that the source node sends the data packet according to the information of the target routing path.
  • the receiver 1120 is further configured to: receive congestion information of at least one forwarding node cluster sent by the second node, where the at least one forwarding node cluster includes the second node.
  • the receiver 1120 is specifically configured to receive congestion information of a forwarding node cluster to which the second node that is broadcast by the second node belongs.
  • the processor 1110 is specifically configured to determine congestion information of the source node cluster according to the congestion information of each third node in the at least one third node received by the receiver 1120.
  • the transmitter 1130 is further configured to: before the receiver 1120 receives the congestion information of each third node sent by each third node of the at least one third node, Each of the at least one third node sends an information reporting indication, where the information reporting indication is used to indicate that each third node sends the congestion information of each third node to the first node;
  • the receiver 1120 is configured to receive, by each third node of the at least one third node, congestion information of each third node that is sent according to the information report sent by the sender 1130.
  • the transmitter 1130 is further configured to send congestion information of the source node cluster to at least one fourth node, where the fourth node belongs to another node cluster different from the source node cluster.
  • the node 1100 is the source node, and correspondingly, the node 1100 further includes:
  • the transmitter 1130 is specifically configured to send the data packet, where the data packet carries information of the target routing path, so that the node that receives the data packet is configured according to the data packet.
  • the information carrying the target routing path forwards the packet.
  • the processor 1110 is further configured to determine congestion information of multiple neighboring nodes of the source node, according to congestion information of the multiple neighboring nodes, from the multiple neighboring nodes. Determining the next hop node of the packet;
  • the transmitter 1130 is further configured to send the data packet to the next hop node determined by the processor 1110.
  • the congestion information of the multiple neighboring nodes includes congestion information of each of the multiple neighboring nodes
  • processor 1110 is specifically configured to:
  • the neighboring node is determined to be the next hop node.
  • a node 1100 in accordance with an embodiment of the present invention may correspond to a first node in a method 200 of routing data packets in accordance with an embodiment of the present invention, and the above and other operations and/or functions of the various modules in the node 1100 are respectively implemented to implement FIG.
  • the corresponding processes of the respective methods in FIG. 4 are not described herein for the sake of brevity.
  • a node can determine a routing path of a data packet by dividing a plurality of nodes in the network into different node clusters, and according to congestion information of the plurality of node clusters, and can balance each node cluster in the network. Load to avoid congestion.
  • the node determines the next hop node of the data packet according to the target routing path of the data packet and the congestion information of multiple neighboring nodes of the node, and can further balance The load of each node in the source node cluster, thereby balancing the load of all nodes in the network, further avoiding congestion.
  • FIG. 13 shows a node 1200 in accordance with another embodiment of the present invention.
  • the node 1200 can correspond to the source node in the above method embodiment and is used to perform the method 300 described above.
  • the node 1200 includes:
  • the receiver 1220 is configured to receive the path that the control node sends according to the transmitter 1210. Determining the information of the routing path requested to be sent, wherein the information of the routing path includes information of at least one node cluster;
  • the transmitter 1210 is further configured to send the data packet according to the information of the routing path received by the receiver 1220.
  • a node by dividing a plurality of nodes in a network into different node clusters, and transmitting a path determination request to the control node, requesting the control node to determine a routing path of the data packet, and transmitting according to the control node Information of the routing path, where the data packet is sent, wherein the routing path includes information of at least one node cluster, and the routing path is determined according to congestion information of multiple node clusters, and can balance the load of each node cluster in the network. Thereby avoiding the occurrence of congestion.
  • the information of the routing path includes identification information of each node cluster in the at least one node cluster and order information of the at least one node cluster.
  • the path determining request carries information of the destination node of the data packet, so that the control node determines, according to information of the destination node, a destination node cluster to which the destination node belongs and according to the source node cluster. And the destination node cluster determines the routing path.
  • the transmitter 1210 is specifically configured to: send the data packet, where the data packet carries information of the routing path, so that the node that receives the data packet is carried according to the data packet.
  • the information of the routing path forwards the packet.
  • the node 1200 further includes:
  • the processor 1230 is configured to determine congestion information of multiple neighboring nodes of the node, and determine, according to congestion information of the multiple neighboring nodes, a next hop node of the data packet from the multiple neighboring nodes;
  • the transmitter 1210 is further configured to send the data packet to the next hop node determined by the processor 1230.
  • the congestion information of the multiple neighboring nodes includes congestion information of each of the multiple neighboring nodes
  • processor 1230 is specifically configured to:
  • the neighboring node is determined to be the next hop node.
  • the transmitter 1210 is further configured to send congestion information of the node to the control node, so that the control node determines congestion information of the source node cluster according to congestion information of the node.
  • the receiver 1220 is further configured to: before the transmitter 1210 sends the congestion information of the node to the control node, receive an information reporting indication sent by the control node, where the information reporting indication is used for Instructing the node to send congestion information of the source node to the control node;
  • the transmitter 1210 is further configured to send the congestion information of the node to the control node according to the information reporting indication received by the receiver 1220.
  • a node 1200 in accordance with an embodiment of the present invention may correspond to a source node in a method 300 of routing data packets in accordance with an embodiment of the present invention, and the above and other operations and/or functions of the various modules in the node 1200 are respectively implemented in FIG. The corresponding processes of the various methods are not repeated here for the sake of brevity.
  • a node by dividing a plurality of nodes in a network into different node clusters, and transmitting a path determination request to the control node, requesting the control node to determine a routing path of the data packet, and transmitting according to the control node Information of the routing path, where the data packet is sent, wherein the routing path includes information of at least one node cluster, and the routing path is determined according to congestion information of multiple node clusters, and can balance the load of each node cluster in the network. Thereby avoiding the occurrence of congestion.
  • the node determines the next hop node of the data packet according to the information of the routing path and the congestion information of the multiple neighboring nodes of the node, and can further balance the load of each node in the source node cluster, thereby balancing the network.
  • the load on all nodes further avoids congestion.
  • FIG. 14 shows a node 1300 in accordance with another embodiment of the present invention.
  • the node 1300 can correspond to the second node in the above method embodiment and is used to perform the method 400 described above.
  • the node 1300 includes:
  • the receiver 1310 is configured to receive a data packet, where the data packet carries information about a routing path of the data packet, where the information of the routing path includes information of at least one node cluster;
  • the processor 1320 is configured to determine a next hop node of the data packet according to the information of the routing path received by the receiver 1310.
  • the transmitter 1330 is configured to send the data packet to the next hop node determined by the processor 1320.
  • a node divides a plurality of nodes in a network into different a node cluster, and determining a next hop node of the data packet according to the information of the routing path carried in the received data packet, wherein the information of the routing path includes information of the at least one node cluster, and the routing path is based on The congestion information of multiple node clusters determines the load of each node cluster in the network, thereby avoiding congestion.
  • the processor 1320 may be a central processing unit (“CPU"), and the processor 1320 may also be other general-purpose processors, digital signal processors (DSPs). , an application specific integrated circuit (ASIC), an off-the-shelf programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, and the like.
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • the node 1300 can also include a memory for storing congestion information for each of the plurality of neighboring nodes, and/or for storing a correspondence between the node and the cluster of nodes.
  • the memory can include read only memory and random access memory and provides instructions and data to the processor 1320.
  • a portion of the memory may also include a non-volatile random access memory.
  • the memory can also store information of the device type.
  • each step of the above method may be completed by an integrated logic circuit of hardware in the processor 1320 or an instruction in a form of software.
  • the steps of the method disclosed in the embodiments of the present invention may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor.
  • the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
  • the storage medium is located in the memory, and the processor 1320 reads the information in the memory and completes the steps of the above method in combination with the hardware thereof. To avoid repetition, it will not be described in detail here.
  • the information of the routing path includes identification information of each node cluster in the at least one node cluster and order information of the at least one node cluster;
  • processor 1320 is specifically configured to:
  • the next hop node of the data packet is determined according to the next hop node cluster of the data packet.
  • the processor 1320 is specifically configured to:
  • the neighboring node that is closest to the cluster of the next hop node among the at least one neighboring node is determined as the next hop node.
  • Node 1300 in accordance with an embodiment of the present invention may correspond to a second node in method 400 of routing data packets in accordance with an embodiment of the present invention, and the above and other operations and/or functions of the various modules in node 1300 are respectively implemented to implement FIG. The corresponding processes of each method in the following are not repeated here for brevity.
  • a node determines a next hop node of a data packet by dividing a plurality of nodes in the network into different node clusters, and according to information of a routing path carried in the received data packet, where The information of the routing path includes information of at least one node cluster, and the routing path is determined according to congestion information of multiple node clusters, and can balance the load of each node cluster in the network, thereby avoiding congestion.
  • the node determines the next hop node of the data packet according to the information of the routing path and the congestion information of the multiple neighboring nodes of the node, and can further balance the load of each node in the source node cluster, thereby balancing the network.
  • the load of all nodes in the node further avoids congestion.
  • Figure 15 illustrates a communication system 1400 in accordance with another embodiment of the present invention.
  • the communication system 1400 includes: a node 1100 shown in FIG. 12 and a node 1300 shown in FIG. 14; or the communication system includes a node 1200 shown in FIG. 13 and a node 1300 shown in FIG.
  • association relationship describing the associated object indicates that there may be three relationships.
  • a and/or B may indicate that A exists separately, and A and B exist simultaneously, and B cases exist alone.
  • the character / in this paper generally indicates that the contextual object is an OR relationship.
  • the disclosed systems, devices, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, or an electrical, mechanical or other form of connection.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the embodiments of the present invention.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
  • the technical solution of the present invention contributes in essence or to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium.
  • a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes. .

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了路由数据包的方法、节点和通信系统,该方法包括:确定该数据包的目的节点所属的目的节点簇;确定该数据包由源节点簇至该目的节点簇的多个可选路由路径,其中,该数据包的源节点属于该源节点簇,该多个可选路由路径中的每个可选路由路径包括至少一个转发节点簇;根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径。本发明公开的路由数据包的方法,通过将网络中的多个节点划分为不同的节点簇,并且根据多个节点簇的拥塞信息,确定数据包的路由路径,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。

Description

路由数据包的方法、节点和通信系统 技术领域
本发明实施例涉及通信领域,并且更具体地,涉及路由数据包的方法、节点和通信系统。
背景技术
片上网络(Network-on-Chip,NoC)能够将多个具有不同功能的模块集成到同一芯片中。但是随着NoC的规模越来越大,带来了一系列问题。例如,NoC规模的扩大会导致数据包传输的平均跳数的增加,从而增加延迟和功耗。此外,由于NoC中集成的多个功能模块具有不同的应用类型,使得网络中各个节点的负载不均衡,从而导致网络中的部分节点经常处于拥塞状态。目前,拥塞问题已经成为NoC主要的性能瓶颈。
路由自适应机制通常包括两部分:第一部分计算源节点到目的节点之间的多条可选路由路径,第二部分根据网络状态信息和特定选择策略从该多个可选路由路径中选择一个路由路径。在现有技术中的路由选择策略通常采用局域选择策略或路径上邻居(Neighbors on Path,NoP)策略。具体地,以图1所示的节点(0,0)为源节点并且节点(3,3)为目的节点为例,源节点(0,0)有两条可选路由路径:向东方向的路径和向南方向的路径。在局域选择策略中,源节点(0,0)在选择路径时只考虑相邻节点的状态,即只考虑节点(0,1)和节点(1,0)的状态。由于节点在路由时只考虑可能的下一跳节点的状态,不能避免在下一跳节点以外的其它节点处产生拥塞。而在NoP策略中,源节点(0,0)在选择路径时忽略其相邻节点(0,1)和(1,0)的状态,而只考虑可能的路由路径上的第二跳节点的状态,即节点(0,2)和(2,0)的状态。该NoP策略能够在某些场景下避免在拐弯处陷入僵局,但是由于该NoP仍然仅考虑了部分节点的状态,不能兼顾网络整体的状态,因此在全局范围内的性能较差。
发明内容
本发明提供一种路由数据包的方法、节点和通信系统,能够避免拥塞现象的发生。
第一方面,路由数据包的方法,包括:第一节点确定该数据包的目的节点所属的目的节点簇;确定该数据包由源节点簇至该目的节点簇的多个可选路由路径,其中,该数据包的源节点属于该源节点簇,该多个可选路由路径中的每个可选路由路径包括至少一个转发节点簇;根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径。
结合第一方面,在第一种可能的实现方式中,该目标路由路径表示该数据包由该源节点簇至该目的节点簇的过程中依次经过的至少一个转发节点簇。
结合上述可能的实现方式,在第二种可能的实现方式中,该根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径,包括:根据该多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定该每个可选路由路径的拥塞状态;将该多个可选路由路径中拥塞程度最小的可选路由路径确定为该目标路由路径。
结合上述可能的实现方式,在第三种可能的实现方式中,该拥塞信息包括最大缓存占用率BFM,每个可选路由路径的拥塞状态采用该每个可选路由路径对应的BFM表示;该根据该多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定该每个可选路由路径的拥塞状态,包括:将第一可选路由路径对应的BFM确定为该第一可选路由路径中包括的至少一个转发节点簇的BFM之和,其中,该多个可选路由路径包括该第一可选路由路径,该至少一个转发节点簇中的每个转发节点簇的BFM由该每个转发节点簇中包括的至少一个节点的BFM确定。
结合上述可能的实现方式,在第四种可能的实现方式中,该根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径,包括:根据该多个可选路由路径中每个可选路由路径包括的至少一个节点簇的拥塞信息和该每个可选路由路径包括的转发节点簇的个数,从该多个可选路由路径中确定该目标路由路径。
结合上述可能的实现方式,在第五种可能的实现方式中,该第一节点为该源节点簇包括的不同于该源节点的其它节点;在该确定该数据包的目的节 点所属的目的节点簇之前,该方法还包括:接收该源节点发送的路径确定请求,该路径确定请求用于请求该第一节点确定该数据包的路由路径;该确定该数据包的目的节点所属的目的节点簇,包括:根据该路径确定请求,确定该目的节点所属的目的节点簇;在该从该多个可选路由路径中确定目标路由路径之后,该方法还包括:向该源节点发送路径确定响应,该路径确定响应中携带该目标路由路径的信息,以便于该源节点根据该目标路由路径的信息发送该数据包。
结合上述可能的实现方式,在第六种可能的实现方式中,在该根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径之前,该方法还包括:接收第二节点发送的至少一个转发节点簇的拥塞信息,其中,该至少一个转发节点簇包括该第二节点。
结合上述可能的实现方式,在第七种可能的实现方式中,该接收第二节点发送的至少一个转发节点簇的拥塞信息,包括:接收该第二节点广播的该第二节点所属的转发节点簇的拥塞信息。
结合上述可能的实现方式,在第八种可能的实现方式中,该源节点簇由该第一节点和除该第一节点之外的至少一个第三节点组成;在该根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径之前,该方法还包括:接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息;根据该至少一个第三节点中的每个第三节点的拥塞信息,确定该源节点簇的拥塞信息。
结合上述可能的实现方式,在第九种可能的实现方式中,在该接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息之前,该方法还包括:向该至少一个第三节点中的每个第三节点发送信息上报指示,该信息上报指示用于指示每个第三节点向该第一节点发送该每个第三节点的拥塞信息;该接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息,包括:接收该至少一个第三节点中的每个第三节点根据该信息上报指示发送的该每个第三节点的拥塞信息。
结合上述可能的实现方式,在第十种可能的实现方式中,该方法还包括:向至少一个第四节点发送该源节点簇的拥塞信息,其中,该第四节点属于不 同于该源节点簇的其它节点簇。
结合上述可能的实现方式,在第十一种可能的实现方式中,该第一节点为该源节点,该方法还包括:根据该数据包的目标路由路径,发送该数据包。
结合上述可能的实现方式,在第十二种可能的实现方式中,该根据该数据包的目标路由路径,发送该数据包,包括:发送该数据包,其中,该数据包中携带该目标路由路径的信息,以便于接收到该数据包的节点根据该数据包中携带的该目标路由路径的信息转发该数据包。
结合上述可能的实现方式,在第十三种可能的实现方式中,该发送该数据包,包括:确定该源节点的多个相邻节点的拥塞信息;根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;向该下一跳节点发送该数据包。
结合上述可能的实现方式,在第十四种可能的实现方式中,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;该根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点,包括:根据该多个相邻节点中每个候选节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;若该至少一个相邻节点的个数为多个,确定该目标路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
第二方面,提供了另一种路由数据包的方法,包括:数据包的源节点向控制节点发送路径确定请求,该路径确定请求用于请求该控制节点确定该数据包的路由路径,其中,该源节点和该控制节点属于源节点簇;接收该控制节点根据该路径确定请求发送的路由路径的信息,其中,该路由路径的信息包括至少一个节点簇的信息;根据该路由路径的信息,发送该数据包。
结合第二方面,在第一种可能的实现方式中,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息。
结合上述可能的实现方式,在第二种可能的实现方式中,该路径确定请求携带该数据包的目的节点的信息,以便于该控制节点根据该目的节点的信息确定该目的节点所属的目的节点簇并根据该源节点簇和该目的节点簇确定该路由路径。
结合上述可能的实现方式,在第三种可能的实现方式中,该根据该路由路径的信息,发送该数据包,包括:发送该数据包,其中,该数据包携带该路由路径的信息,以便于接收到该数据包的节点根据该数据包携带的该路由路径的信息转发该数据包。
结合上述可能的实现方式,在第四种可能的实现方式中,该发送该数据包,包括:确定该源节点的多个相邻节点的拥塞信息;根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;向该下一跳节点发送该数据包。
结合上述可能的实现方式,在第五种可能的实现方式中,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;该根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点,包括:根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;若该至少一个相邻节点的个数为多个,确定该路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
结合上述可能的实现方式,在第六种可能的实现方式中,该方法还包括:向该控制节点发送该源节点的拥塞信息,以便于该控制节点根据该源节点的拥塞信息确定该源节点簇的拥塞信息。
结合上述可能的实现方式,在第七种可能的实现方式中,在该向该控制节点发送该源节点的拥塞信息之前,该方法还包括:接收该控制节点发送的信息上报指示,该信息上报指示用于指示该源节点向该控制节点发送该源节点的拥塞信息;该向该控制节点发送该源节点的拥塞信息,包括:根据该信息上报指示,向该控制节点发送该源节点的拥塞信息。
第三方面,提供了另一种路由数据包的方法,包括:第二节点接收数据包,其中,该数据包携带该数据包的路由路径的信息,该路由路径的信息包括至少一个节点簇的信息;根据该路由路径的信息,确定该数据包的下一跳节点;向该下一跳节点发送该数据包。
结合第三方面,在第一种可能的实现方式中,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息;该根据该路由路径的信息,确定该数据包的下一跳节点,包括:确定该 第二节点所属的节点簇;根据该第二节点所属的节点簇和该路由路径的信息,确定该数据包的下一跳节点簇;根据该数据包的下一跳节点簇,确定该数据包的下一跳节点。
结合上述可能的实现方式,在第二种可能的实现方式中,该根据该下一跳节点簇,确定该数据包的下一跳节点,包括:确定该第二节点的多个相邻节点的拥塞信息;根据该下一跳节点簇和该多个相邻节点的拥塞信息,确定该数据包的下一跳节点。
结合上述可能的实现方式,在第三种可能的实现方式中,该多个相邻节点的信息包括该多个相邻节点中的每个相邻节点的信息;该根据该下一跳节点簇和该多个相邻节点的拥塞信息,确定该数据包的下一跳节点,包括:根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;若该至少一个相邻节点的个数为多个,将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
第四方面,提供了一种节点,包括:第一确定单元,用于确定数据包的目的节点所属的目的节点簇;第二确定单元,用于确定该数据包由源节点簇至该第一确定单元确定的该目的节点簇的多个可选路由路径,其中,该数据包的源节点属于该源节点簇,该多个可选路由路径中的每个可选路由路径包括至少一个转发节点簇;第三确定单元,用于根据该第二确定单元确定的该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径。
结合第四方面,在第一种可能的实现方式中,该目标路由路径表示该数据包由该源节点簇至该目的节点簇的过程中依次经过的至少一个转发节点簇。
结合上述可能的实现方式,在第二种可能的实现方式中,该第三确定单元具体用于:根据该多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定该每个可选路由路径的拥塞状态;将该多个可选路由路径中拥塞程度最小的可选路由路径确定为该目标路由路径。
结合上述可能的实现方式,在第三种可能的实现方式中,该拥塞信息包括最大缓存占用率BFM,每个可选路由路径的拥塞状态采用该每个可选路由路径对应的BFM表示;该第三确定单元具体用于:将第一可选路由路径 对应的BFM确定为该第一可选路由路径中包括的至少一个转发节点簇的BFM之和,其中,该多个可选路由路径包括该第一可选路由路径,该至少一个转发节点簇中的每个转发节点簇的BFM由该每个转发节点簇中包括的至少一个节点的BFM确定。
结合上述可能的实现方式,在第四种可能的实现方式中,该第三确定单元具体用于:根据该多个可选路由路径中每个可选路由路径包括的至少一个节点簇的拥塞信息和该每个可选路由路径包括的转发节点簇的个数,从该多个可选路由路径中确定该目标路由路径。结合上述可能的实现方式,在第五种可能的实现方式中,该节点为该源节点簇包括的不同于该源节点的其它节点;该节点还包括:第一接收单元,用于在该第一确定单元确定该数据包的目的节点所属的目的节点簇之前,接收该源节点发送的路径确定请求,该路径确定请求用于请求该第一节点确定该数据包的路由路径;该第一确定单元具体用于:根据该路径确定请求,确定该目的节点所属的目的节点簇;该节点还包括:第一发送单元,用于向该源节点发送该第三确定单元确定的该目标路由路径的信息,以便于该源节点根据该目标路由路径的信息发送该数据包。
结合上述可能的实现方式,在第六种可能的实现方式中,该第一接收单元还用于接收第二节点发送的至少一个转发节点簇的拥塞信息,其中,该至少一个转发节点簇包括该第二节点。
结合上述可能的实现方式,在第七种可能的实现方式中,该第一接收单元具体用于接收该第二节点广播的该第二节点所属的转发节点簇的拥塞信息。
结合上述可能的实现方式,在第八种可能的实现方式中,该源节点簇由该第一节点和除该第一节点之外的至少一个第三节点组成;该第一接收单元还用于接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息;该第一确定单元还用于根据该第一接收单元接收的该至少一个第三节点中的每个第三节点的拥塞信息,确定该源节点簇的拥塞信息。
结合上述可能的实现方式,在第九种可能的实现方式中,该第一发送单元还用于在该第一接收单元接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息之前,向该至少一个第三节点中的每个第三节点发送信息上报指示,该信息上报指示用于指示每个第三节点向该第一节 点发送该每个第三节点的拥塞信息;该第一接收单元具体用于接收该至少一个第三节点中的每个第三节点根据该第一发送单元发送的该信息上报指示发送的该每个第三节点的拥塞信息。
结合上述可能的实现方式,在第十种可能的实现方式中该第一发送单元还用于向至少一个第四节点发送该源节点簇的拥塞信息,其中,该第四节点属于不同于该源节点簇的其它节点簇。
结合上述可能的实现方式,在第十一种可能的实现方式中,该节点为该数据包的源节点,该节点还包括:第二发送单元,用于根据该第三确定单元确定的该数据包的目标路由路径,发送该数据包。
结合上述可能的实现方式,在第十二种可能的实现方式中,该第二发送单元具体用于发送该数据包,其中,该数据包中携带该目标路由路径的信息,以便于接收到该数据包的节点根据该数据包中携带的该目标路由路径的信息转发该数据包。
结合上述可能的实现方式,在第十三种可能的实现方式中,该第二发送单元包括:第一确定子单元,用于确定该源节点的多个相邻节点的拥塞信息;第二确定子单元,用于根据该第一确定子单元确定的该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;发送子单元,用于向该第二确定子单元确定的该下一跳节点发送该数据包。
结合上述可能的实现方式,在第十四种可能的实现方式中,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;该第二确定子单元具体用于:根据该多个相邻节点中每个候选节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;若该至少一个相邻节点的个数为多个,确定该目标路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
第五方面,提供了另一种节点,包括:发送单元,用于向控制节点发送路径确定请求,该路径确定请求用于请求该控制节点确定数据包的路由路径,其中,该节点和该控制节点属于源节点簇;接收单元,用于接收该控制节点根据该发送单元发送的该路径确定请求发送的路由路径的信息,其中,该路由路径的信息包括至少一个节点簇的信息;该发送单元还用于根据该接收单元接收的该路由路径的信息,发送该数据包。
结合第五方面,在第一种可能的实现方式中,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息。
结合上述可能的实现方式,在第二种可能的实现方式中,该路径确定请求携带该数据包的目的节点的信息,以便于该控制节点根据该目的节点的信息确定该目的节点所属的目的节点簇并根据该源节点簇和该目的节点簇确定该路由路径。
结合上述可能的实现方式,在第三种可能的实现方式中,该发送单元具体用于:发送该数据包,其中,该数据包携带该路由路径的信息,以便于接收到该数据包的节点根据该数据包携带的该路由路径的信息转发该数据包。
结合上述可能的实现方式,在第四种可能的实现方式中,该发送单元包括:第一确定子单元,用于确定该节点的多个相邻节点的拥塞信息;第二确定子单元,用于根据该第一确定子单元确定的该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;发送子单元,用于向该第二确定子单元确定的该下一跳节点发送该数据包。
结合上述可能的实现方式,在第五种可能的实现方式中,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;该第二确定子单元具体用于:根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;若该至少一个相邻节点的个数为多个,确定该路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
结合上述可能的实现方式,在第六种可能的实现方式中,该发送单元还用于向该控制节点发送该节点的拥塞信息,以便于该控制节点根据该节点的拥塞信息确定该源节点簇的拥塞信息。
结合上述可能的实现方式,在第七种可能的实现方式中,该接收单元还用于在该发送单元向该控制节点发送该节点的拥塞信息之前,接收该控制节点发送的信息上报指示,该信息上报指示用于指示该节点向该控制节点发送该源节点的拥塞信息;该发送单元还用于根据该接收单元接收的该信息上报指示,向该控制节点发送该节点的拥塞信息。
第六方面,提供了另一种节点,包括:接收单元,用于接收数据包,其 中,该数据包携带该数据包的路由路径的信息,该路由路径的信息包括至少一个节点簇的信息;确定单元,用于根据该接收单元接收的该路由路径的信息,确定该数据包的下一跳节点;发送单元,用于向该确定单元确定的该下一跳节点发送该数据包。
结合第六方面,在第一种可能的实现方式中,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息;该确定单元包括:第一确定子单元,用于确定该第二节点所属的节点簇;第二确定子单元,用于根据该第一确定子单元确定的该第二节点所属的节点簇和该路由路径的信息,确定该数据包的下一跳节点簇;第三确定子单元,用于根据该第二确定子单元确定的该数据包的下一跳节点簇,确定该数据包的下一跳节点。
结合上述可能的实现方式,在第二种可能的实现方式中,该第三确定子单元具体用于:确定该第二节点的多个相邻节点的拥塞信息;根据该下一跳节点簇和该多个相邻节点的拥塞信息,确定该数据包的下一跳节点。
结合上述可能的实现方式,在第三种可能的实现方式中,该多个相邻节点的信息包括该多个相邻节点中的每个相邻节点的信息;该第三确定子单元具体用于:根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;若该至少一个相邻节点的个数为多个,将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
第七方面,提供了一种通信系统,包括下列节点中的至少一种:第四方面或第四方面的任一种实现方式中的节点、第五方面或第五方面的任一种实现方式中的节点以及第六方面或第六方面的任一种实现方式中的节点。
基于上述技术方案,本发明实施例提供的路由数据包的方法、节点和通信系统,通过将网络中的多个节点划分为不同的节点簇,并且根据多个节点簇的拥塞信息,确定数据包的路由路径,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述 的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中的路由路径选择场景示意图。
图2是本发明实施例的系统架构实例的示意图。
图3是本发明实施例的路由数据包的方法的示意性流程图。
图4是本发明实施例的路由数据包的方法的另一示意性流程图。
图5是本发明另一实施例的路由数据包的方法的示意性流程图。
图6是本发明另一实施例的路由数据包的方法的示意性流程图。
图7是本发明实施例的节点的示意性框图。
图8是本发明实施例的节点的另一示意性框图。
图9是本发明另一实施例的节点的示意性框图。
图10是本发明另一实施例的节点的示意性框图。
图11是本发明实施例的通信系统的示意性框图。
图12是本发明另一实施例的节点的示意性框图。
图13是本发明另一实施例的节点的示意性框图。
图14是本发明另一实施例的节点的示意性框图。
图15是本发明另一实施例的通信系统的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,本发明实施例的技术方案可以应用于片上网络的互连通信系统,例如由计算单元(processor unit),内存单元(memory unit)所共同组成的片上网络,但也可以应用于其他网络,本发明实施例对此不做限定。还应理解,在本发明实施例中,节点可以与路由器一一对应,因此,本发明实施例中对节点的描述同样适用于路由器。
本发明实施例的网络包括M个节点,并且该M个节点被划分为L个节点簇,其中,该M个节点中的每个节点仅属于一个节点簇,并且该L个节点簇中的每个节点簇包括至少一个节点,1<L<M。可选地,该L个节点簇中 的任意两个节点簇包括的节点数量可以相等或不等,本发明实施例对此不做限定。
在本发明实施例中,可以通过多种方式划分节点簇。可选地,可以将该网络分为L个物理区域,每个物理区域对应于一个节点簇,此时,位于该物理区域内的至少一个节点属于该物理区域对应的节点簇,但本发明还可以根据其他方式划分节点簇,本发明实施例对此不做限定。
可选地,该L个节点簇中的每个节点簇可以包括一个控制节点。可选地,一个节点簇中的控制节点可以为该节点簇包括的多个节点中位于某一特定位置的节点,例如,控制节点为该节点簇中的位于所有节点的中心的节点;或者该控制节点为该节点簇中具有某一特定功能或包括某一特定器件的节点,例如,该控制节点为该节点簇包括的所有节点中包括无线收发器的节点,等等,本发明实施例对此不做限定。
在本发明实施例中,如果一个节点簇包括控制节点和除该控制节点以外的多个其它节点,则该控制节点与该多个其它节点中的至少一个其它节点之间可以具有第一传输链路,其中,该第一传输链路用于传输节点的拥塞信息。通过接收该至少一个其它节点在分别对应的第一传输链路上发送的节点的拥塞信息,该控制节点可以获取该多个其它节点中的每个其它节点的拥塞信息,并根据该多个其它节点中每个其它节点的拥塞信息,确定该控制节点所属节点簇的拥塞信息。可选地,该第一传输链路可以为有线链路或无线链路,本发明实施例对此不做限定。
在一个可选实施例中,一个节点簇中只有相邻节点之间具有第一传输链路。此时,某个节点可以通过与该某个节点相邻的第一节点之间的第一传输链路,接收该第一节点发送的节点的拥塞信息,其中,该第一节点发送的节点的拥塞信息可以包括该第一节点的拥塞信息,并且还可以包括第二节点的拥塞信息,其中,该第二节点可以与该某个节点不相邻。可选地,该某个节点还可以在与第三节点的第一传输链路上向该第三节点发送该第一节点接收到的节点的拥塞信息,其中,该第一节点与该第三节点相邻;或者该某个节点还可以先将接收到的节点的拥塞信息与自身的拥塞信息进行聚合,并向该第三节点发送聚合后的节点的拥塞信息,本发明实施例对此不做限定。相应地,一个控制节点可以接收该控制节点的至少一个相邻节点中的每个相邻节点在其对应的第一传输链路上发送的节点的拥塞信息,其中,该控制节点 的一个相邻节点发送的节点的拥塞信息可以包括该相邻节点自身的拥塞信息或进一步包括其它节点的拥塞信息,其中,该其它节点与该控制节点不相邻。这样,该控制节点通过接收该至少一个相邻节点中的每个相邻节点在对应的第一传输链路上发送的节点的拥塞信息,获取该节点簇中除该控制节点以外的所有其它节点的拥塞信息。
此时,一个节点簇中的任意两个相邻节点之间既可以直接传输节点的状态信息,也可以直接传输数据,其中,该用于传输节点的状态信息的链路可以与该用于传输数据的链路为相同的链路或不同的链路,而不相邻的两个节点之间不能直接传输数据。这样,该控制节点和与该控制节点不相邻的节点之间可以直接传输状态相关信息,例如节点的状态信息,但不能直接传输数据,但本发明实施例不限于此。
在另一个可选实施例中,一个节点簇中的控制节点可以与该多个其它节点中的每个其它节点之间具有第一传输链路。此时,该控制节点可以接收该多个其它节点中的每个其它节点在与该控制节点之间的第一传输链路上发送的该每个其它节点的拥塞信息。可选地,该多个其它节点中的每个其它节点除了与该控制节点之间的第一传输链路外,还可以与相邻节点之间具有用于传输节点的拥塞信息的链路以及用于传输数据的链路,其中,该用于传输节点的拥塞信息的链路以及用于传输数据的链路可以相同或不同,本发明实施例对此不做限定。
在本发明实施例中,控制节点可以通过多种方式根据该多个其它节点中每个其它节点的拥塞信息,确定该控制节点所属节点簇的拥塞信息。可选地,如果节点的拥塞信息包括该节点的最大缓存占用率(Mixmum Buffer Occupay,BFM),相应地,节点簇的拥塞信息也可以包括该节点簇的BFM,则该控制节点可以将该节点簇包括的所有节点的BFM之和作为该节点簇的BFM,即该节点簇的BFM为该控制节点和多个其它节点中的所有节点的BFM之和。可选地,作为另一实施例,该控制节点也可以首先确定该节点簇包括的每个节点的BFM是否满足预设条件,并且将该节点簇包括的所有节点中满足该预设条件的节点的BFM之和作为该节点簇的BFM。其中,该预设条件可以包括:节点自身的BFM值大于一定阈值,节点的BFM值与该节点簇中除该节点以外的至少一个其它节点的BFM值的差大于一定阈值,但本发明实施例对此不做限定。
在本发明实施例中,一个节点簇中的控制节点可以与至少一个其它控制节点之间具有第二传输链路,其中,该其它控制节点属于其他节点簇,该第二传输链路用于传输节点簇的拥塞信息;并且,通过接收该至少一个其它控制节点在其对应的第二传输链路上发送的节点簇的拥塞信息,该控制节点可以确定其它(L-1)个节点簇中的每个节点簇的拥塞信息。可选地,优选地,该第二传输链路可以为无线链路,但该第二传输链路也可以为有线链路。此外,可选地,具有第二传输链路的两个控制节点可以不相邻,但本发明实施例对此不做限定。
在一个可选实施例中,该L个控制节点中只有相邻的节点簇包括的控制节点之间具有第二传输链路。此时,该L个控制节点中的第一控制节点可以接收至少一个其它控制节点中的每个其它控制节点通过与该第一控制节点的第二传输链路发送的节点簇的拥塞信息,其中,该至少一个其它控制节点所属的节点簇与该第一节点所属的第一节点簇相邻。可选地,第二控制节点发送的节点簇的拥塞信息可以包括该第二控制节点所属的第二节点簇的拥塞信息,或进一步包括不同于该第二节点簇的第三节点簇的拥塞信息,其中,该第三节点簇的拥塞信息可以来自于第三控制节点,其中,该第三控制节点所属的节点簇可以与该第二节点簇相邻,并且该第三控制节点所属的节点簇可以与该第一节点簇不相邻,本发明实施例对此不做限定。该第一控制节点可以向该与第一节点簇相邻的其它节点簇中的控制节点发送该第一控制节点接收到的节点簇的拥塞信息,例如,该第一控制节点可以向该第二控制节点发送该第一控制节点接收到的第四控制节点发送的节点簇的拥塞信息,并且向该第四控制节点发送该第一控制节点接收到的第二控制节点发送的节点簇的拥塞信息,其中,该第四控制节点所属的节点簇与该第一节点簇相邻。或者,该第一控制节点可以将该第一控制节点接收到的节点簇的拥塞信息与该第一节点簇的拥塞信息聚合,并向该与第一节点簇相邻的其它节点簇中的控制节点发送聚合后的节点簇的拥塞信息。这样,该第一控制节点可以获取除该第一节点簇以外的(L-1)个其它节点簇的拥塞信息。
在另一个可选实施例中,该L个节点簇中包括的任意两个控制节点之间具有第二传输链路。此时,不仅属于相邻的节点簇的两个控制节点之间可以具有第二传输链路,而且属于不相邻的节点簇的两个控制节点之间也可以具有第二传输链路。某一控制节点向其它控制节点发送的节点簇的状态信息可 以仅包括该某一控制节点所属的节点簇的状态信息。相应地,该L个控制节点中的第一控制节点可以接收(L-1)个其它控制节点中的每个其它控制节点在与该第一控制节点的第二传输链路上发送的该每个其它控制节点所属的其它节点簇的拥塞信息,并且,该第一控制节点可以向(L-1)个其他控制节点发送该第一节点簇的拥塞信息,但本发明实施例对此不作限定。
在本发明实施例中,控制节点可以周期性地发送该控制节点所属的节点簇的拥塞信息,其中,该周期值可以预先设置;或者,该控制节点也可以触发性地发送该控制节点所属的节点簇的拥塞信息,例如,第一控制节点在接收到第二控制节点发送的用于请求该第一控制节点所属的第一节点簇的拥塞信息的请求时,向该第二控制节点发送该第一节点簇的拥塞信息;或者,该第一控制节点在接收第三控制节点发送的令牌时,发送该第一节点簇的拥塞信息,并且在发送该第一节点簇的拥塞信息之后,向第二控制节点发送该令牌,以便于该第二控制节点根据该令牌发送该第二控制节点所属的第二节点簇的拥塞信息,但本发明实施例对此不作限定。
可选地,作为另一实施例,当一个控制节点接收到其它节点簇的拥塞信息时,该控制节点可以存储该其它节点簇的拥塞信息,并且在再次接收到该其它节点簇的拥塞信息之前,一直使用存储的该其它节点簇的拥塞信息。此外,当该控制节点再次接收到该其它节点簇的拥塞信息时,可以更新存储的该其它节点簇的拥塞信息,但本发明实施例不限于此。
应理解,在本发明实施例中,节点的拥塞信息以节点为粒度,用于表示节点的拥塞状态,而节点的拥塞状态可以对应于该节点中的路由器的拥塞状态。节点簇的拥塞信息用于表示节点簇的拥塞状态,该节点簇的拥塞信息可以以节点簇为粒度。一个节点簇的拥塞状态可以根据该节点簇包括的部分或全部节点的拥塞状态确定。
图2示例性地示出了本发明实施例的片上网络100的架构。具体地,该片上网络100包括81个节点。其中,该81个节点被划分为九个节点簇(110-190),并且该九个节点簇中的每个节点簇包括九个节点。可选地,该九个节点簇可以具有相同或不同的配置。以节点簇110为例,该节点簇110包括节点(0,0)、节点(0,1)、节点(0,2)、节点(1,0)、节点(1,1)、节点(1,2)、节点(2,0)、节点(2,1)和节点(2,2),其中,位于中心位置的节点(1,1)为该节点簇110的控制节点,并且九个节点中只有控 制节点(节点(1,1))具有无线收发器。其中,每个节点与在其东侧、西侧、南侧或北侧的一跳节点相邻,例如,节点(1,1)的相邻节点包括:位于节点(1,1)西侧(W)的节点(0,1)、位于节点(1,1)东侧(E)的节点(2,1)、位于节点(1,1)北侧(N)的节点(1,0)和位于节点(1,1)南侧(S)的节点(1,2)。
该节点簇110中的每个节点具有两个传输链路,即用于传输节点的拥塞信息的第一传输链路(图2中以长虚线表示)和用于传输数据的传输链路(图2中以短虚线表示),其中,这两个传输链路均可以为有线链路,但本发明实施例对此不做限定。在节点簇110中,除节点(1,1)之外的其它节点可以在该用于传输节点的拥塞信息的第一传输链路上向节点(1,1)发送自身的拥塞信息,并且可以在该用于传输数据的传输链路上向相邻节点发送自身的拥塞信息。节点(1,1)在接收到其它节点发送的节点的拥塞信息后,可以确定节点簇110的拥塞信息,并通过无线收发器向其它节点簇的控制节点发送将该节点簇110的拥塞信息。可选地,节点(1,1)可以广播该节点簇110的拥塞信息,并接收其它控制节点广播的其它节点簇的拥塞信息,以降低信令开销,但本发明实施例不限于此。
应理解,在本发明实施例中,相邻的节点簇可以表示物理或者逻辑上满足相邻关系的节点簇。例如,如图2所示,节点簇150的相邻节点簇包括:位于节点簇150西侧(W)的节点簇140、位于节点簇150东侧(E)的节点簇160、位于节点簇150北侧(N)的节点簇120和位于节点簇150南侧(S)的节点簇180,但本发明实施例不限于此。
基于上述网络架构,当节点簇中的节点有待发送的数据包时,可以首先根据多个节点簇中每个节点簇的拥塞信息,确定该数据包的粗粒度路由路径,其中,该粗粒度路由路径可以表示该数据包由源节点至目的节点的过程中依次经过的至少一个节点簇,并且以节点簇为基本单位;然后可以在该粗粒度路由路径的基础上进一步确定该数据包的细粒度路由路径,其中,该细粒度路由路径可以包括该数据包的下一跳节点,以节点为基本单位。这样,能够在均衡各个节点簇的负载的同时均衡每个节点簇中的各个节点的负载,从而能够均衡网络中所有节点的负载,避免拥塞现象的发生。
图3示意性地示出了本发明实施例的在网络中路由数据包的方法200。该方法适用的网络包括多个节点簇,该每个节点簇中的每个节点簇包括至少 一个节点,例如该方法200适用于片上网络100,但本发明实施例不限于此。该方法200可以由第一节点执行。如图3所示,该方法200包括:
S210,确定该数据包的目的节点所属的目的节点簇;
S220,确定该数据包由源节点簇至该目的节点簇的多个可选路由路径,其中,该数据包的源节点属于该源节点簇,该多个可选路由路径中的每个可选路由路径包括至少一个转发节点簇;
S230,根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径。
因此,根据本发明实施例的路由数据包的方法,通过将网络中的多个节点划分为不同的节点簇,并且根据多个节点簇的拥塞信息,确定数据包的路由路径,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
在本发明实施例中,该源节点簇和该目的节点簇为不同的节点簇。具体地,该源节点簇可以由包括该数据包的源节点在内的至少一个节点组成,该目的节点簇可以由包括该数据包的目的节点在内的至少一个节点组成,本发明实施例对此不做限定。该第一节点可以属于该源节点簇,具体地,该第一节点可以为该数据包的源节点,其中,该数据包的源节点可以为该源节点簇中的控制节点,或者为该源节点簇中的除控制节点之外的其它节点。可选地,作为另一实施例,该第一节点也可以为该源节点簇中的除该源节点之外的其它节点,例如,该第一节点为该源节点簇的控制节点,其中,该控制节点不同于该源节点,本发明实施例对此不做限定。
在本发明实施例中,节点簇的拥塞信息用于表示节点簇的拥塞状态,其中,节点簇的拥塞状态能够反映该节点簇中包括的所有节点的拥塞状态的整体情况。具体地,节点簇的拥塞信息可以根据该节点簇包括的部分或全部节点的拥塞信息来确定。可选地,拥塞信息包括BFM,此时,节点簇的BFM可以等于该节点簇中的部分或全部节点的BFM之和,或等于该节点簇中的部分或全部节点的BFM的数学平均值,或为该节点簇中的部分或全部节点的BFM的其它函数值。可选地,作为另一实施例,拥塞信息也可以包括虚通道占用率,此时,节点簇的虚通道占用率可以等于该节点簇中的部分或全部节点的虚通道占用率之和,或等于该节点簇中的部分或全部节点的虚通道占用率的其它函数值,但本发明实施例不限于此。
该第一节点可以确定该目的节点簇,并且确定由该源节点簇至该目的节 点簇的多个可选路由路径,其中,每个可选路由路径可以包括至少一个转发节点簇;然后该第一节点可以根据该多个可选路由路径包括的多个转发节点簇的拥塞信息,从该多个可选路由路径中确定该目标路由路径。该每个可选路由路径可以包括网络中的一个或多个转发节点簇,该转发节点簇中的节点用于转发该数据包。可选地,该每个可选路由路径中包括的至少一个转发节点簇可以包括除该源节点簇和该目的节点簇之外的至少一个其它节点簇,或者还可以进一步包括该目的节点簇,或进一步包括该源节点簇,本发明实施例对此不作限定。
该目标路由路径可以包括该数据包由该源节点簇至该目的节点簇的过程中依次经过的至少一个转发节点簇,其中,该目标路由路径可以仅包括该目的节点簇或者仅包括该源节点簇和该目的节点簇,此时,该源节点簇可以与该目的节点簇相邻;或者,该目标路由路径仅包括除该源节点簇和目的节点簇之外的至少一个其它节点簇,或进一步包括该目的节点簇,本发明实施例对此不做限定。
可选地,该目标路由路径的最小粒度为节点簇,此时,该目标路由路径为该数据包的粗粒度路由路径。相应地,该目标路由路径表示该数据包由该源节点簇至该目的节点簇的过程中依次经过的至少一个转发节点簇。
具体地,该目标路由路径以该源节点簇为起点,并且以该目的节点簇为终点,中间可以依次经过零个、一个或多个转发节点簇。在该目标路由路径中,该数据包的基本跳转单位为节点簇。
在S230中,该第一节点可以根据该多个转发节点簇中的每个转发节点簇的拥塞信息,确定该目标路由路径。可选地,S230,根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径,包括:
根据该多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定该每个可选路由路径的拥塞状态;
将该多个可选路由路径中拥塞程度最小的可选路由路径确定为该目标路由路径。
该多个可选路由路径中的每个可选路由路径可以包括至少一个转发节点簇。该第一节点可以根据每个可选路由路径中包括的部分或全部转发节点簇的拥塞信息,确定该可选路由路径的拥塞状态,该拥塞状态具体可以为获 得的表征拥塞信息的参数的大小。
可选地,该拥塞信息包括最大缓存占用率BFM,每个可选路由路径的拥塞状态采用该每个可选路由路径对应的BFM表示。此时,根据该多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定该每个可选路由路径的拥塞状态,包括:
将第一可选路由路径对应的BFM确定为该第一可选路由路径中包括的至少一个转发节点簇的BFM之和,其中,该多个可选路由路径包括该第一可选路由路径,该至少一个转发节点簇中的每个转发节点簇的BFM由该每个转发节点簇中包括的至少一个节点的BFM确定。
具体地,一个节点簇的BFM可以等于该节点簇中的部分或全部节点的BFM之和或数学平均值,但本发明实施例不限于此。该第一节点可以根据各个可选路由路径的拥塞状态,将该多个可选路由路径中的一个可选路由路径作为该目标路由路径。具体地,该第一节点可以通过多种选择准则确定该目标路由路径。可选地,该第一节点在确定该目标路由路径时,可以仅考虑各个可选路由路径的拥塞状态,例如,该第一节点可以将该多个可选路由路径中最不拥塞(即拥塞程度最低)的可选路由路径确定为该目标路由路径。或者,该第一节点可以根据各个可选路由路径的拥塞状态和各个可选路由路径的其他参数,确定该目标路由路径。例如,该第一节点可以根据该多个可选路由路径中每个可选路由路径的拥塞状态和路径长度,确定该目标路由路径。具体地,一个可选路由路径的路径长度可以采用该可选路由路径包括的节点簇的个数表示,可选路由路径包括的节点簇的个数对应于数据包在该可选路由路径中的跳转次数,但本发明实施例对此不做限定。
可选地,该根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径,包括:
根据该多个可选路由路径中每个可选路由路径包括的至少一个节点簇的拥塞信息和该每个可选路由路径包括的转发节点簇的个数,从该多个可选路由路径中确定该目标路由路径。
对于一个可选路由路径,在一个可选的选择准则中,可选路由路径的拥塞状态可以对应于第一权重值,可选路由路径包括的节点簇的个数可以对应于第二权重值。一个可选路由路径的总权重值可以根据该第一权重值、该可 选路由路径的拥塞状态、第二权重值和该可选路由路径包括的节点簇的个数确定。例如,可选路由路径的总权重值W可以通过下式确定:W=(BFM)w1+Nw2,其中,N为该可选路由路径包括的节点簇的个数,w1为第一权重值,w2为第二权重值。可选地,该总权重值还可以具有其他函数形式,本发明实施例对此不作限定。
此时,该第一节点可以确定该多个可选路由路径中每个可选路由路径的总权重值,并且将该多个可选路由路径中具有最小总权重值的可选路由路径确定为该目标路由路径,但本发明实施例不限于此。
可选地,该第一节点可以不为该源节点,例如,该第一节点为该源节点簇的控制节点,该控制节点不同于该源节点,可选地,该控制节点可以与该源节点相邻或不相邻。此时,该第一节点可以接收该源节点发送的请求,并根据该请求确定目的节点簇以及该目标路由路径,并向该源节点发送该目标路由路径。具体地,在S210之前,该方法200还包括:
接收该源节点发送的路径确定请求,该路径确定请求用于请求该第一节点确定该数据包的路由路径。
相应地,S210,确定该数据包的目的节点所属的目的节点簇,包括:
根据该路径确定请求,确定该目的节点所属的目的节点簇。
此外,在S230之后,该方法200还包括:向该源节点发送路径确定响应,该路径确定响应中携带该目标路由路径的信息,以便于该源节点根据该目标路由路径的信息发送该数据包。
具体地,该第一节点在接收到该路径确定请求后,可以根据该路径确定请求确定该目的节点簇。可选地,该路径确定请求可以携带该目的节点的信息,例如,目的节点的IP地址或设备标识,等等。此时,该第一节点可以根据该目的节点的信息,确定该目的节点簇。具体地,该第一节点可以获取节点与节点簇之间的对应关系,并且根据该目的节点的信息以及获取的该节点与节点簇之间的对应关系,确定该目的节点簇,其中,该对应关系可以是该第一节点预先存储的或者从其他网络设备获取的,本发明实施例对此不做限定。可选地,作为另一实施例,该第一节点也可以向其它网络设备发送携带有该目的节点的信息的请求,该其它网络设备根据该目的节点的信息确定该目的节点簇,并向该第一节点发送该目的节点簇的信息,此时,该第一节点可以根据该其它网络设备发送的该目的节点簇的信息确定该目的节点簇, 但本发明实施例不限于此。
可选地,作为另一实施例,该源节点可以确定该目的节点簇,并且在该路径确定请求中携带该目的节点簇的信息,例如,该目的节点簇的编号。此时,该第一节点可以根据该目的节点簇的信息确定该目的节点簇。该源节点可以通过多种方式确定该目的节点簇。可选地,该源节点可以预先存储或有节点与节点簇的对应关系,或者该源节点可以从其它节点获取节点与节点簇的对应关系,并根据该节点与节点簇的对应关系以及该目的节点的信息,确定该目的节点簇,但本发明实施例不限于此。
该目标路由路径的信息可以包括该目标路由路径中包括的至少一个转发节点簇中的每个转发节点簇的标识信息,或者还可以进一步包括用于表示该至少一个转发节点簇的次序的信息,其中,该数据包按照该次序依次经过该至少一个转发节点簇,但本发明实施例不限于此。
在本发明实施例中,该第一节点可以通过多种方式确定该多个可选路由路径中包括的多个转发节点簇的拥塞信息。可选地,该第一节点可以预先存储有该多个转发节点簇中的每个转发节点簇的拥塞信息,或者该第一节点也可以向其它节点(例如,该多个转发节点簇中的至少一个转发节点簇的控制节点)发送请求消息并接收该其它节点根据该请求消息发送的该多个节点簇中的至少一个节点簇的拥塞信息,本发明实施例不限于此。
可选地,在S230之前,该方法200还包括:接收第二节点发送的至少一个转发节点簇的拥塞信息,其中,该至少一个转发节点簇包括该第二节点。
可选地,该第二节点簇所属的其它节点簇可以与该源节点簇相邻或不相邻。该第二节点发送的至少一个转发节点簇的拥塞信息可以包括该第一转发节点簇的拥塞信息,其中,该第二节点簇属于该第一转发节点簇,该第一转发节点簇可以与该源节点簇相邻或不相邻;或者进一步携带第二转发节点簇的拥塞信息,其中,该第二转发节点簇可以与该第一转发节点簇相邻,并且该第二转发节点簇可以与该源节点簇相邻或不相邻,本发明实施例对此不做限定。
具体地,该第一节点可以接收一个或多个转发节点簇的控制节点发送的状态消息,其中每个转发节点簇的控制节点发送的状态消息携带该转发节点簇的拥塞信息或携带包括该转发节点簇在内的多个转发节点簇的拥塞信息。该多个转发节点簇可以包括该目的节点簇或除该源节点簇和该目的节点簇 之外的其它节点簇,但本发明实施例不限于此。
可选地,作为另一实施例,该接收第二节点发送的至少一个其它节点簇的拥塞信息,包括:
接收该第二节点广播的该第二节点所属的转发节点簇的拥塞信息。
此时,该第一节点可以接收该多个可选路由路径包括的多个转发节点簇中的每个转发节点簇的控制节点发送的广播消息,每个转发节点簇中的控制节点发送的广播消息携带该每个转发节点簇的拥塞信息,但本发明实施例不限于此。
可选地,作为另一实施例,在接收该第二节点发送的至少一个其它节点簇的拥塞信息之前,该第一节点还可以向该第二节点发送请求消息,请求该第二节点发送节点簇的拥塞信息;相应地,该第二节点根据该请求消息向该第一节点发送该至少一个转发节点簇的拥塞信息,但本发明实施例不限于此。
可选地,作为另一实施例,在该第一节点接收该第二节点发送的该至少一个转发节点簇的拥塞信息之后,该第一节点还可以存储该至少一个转发节点簇的拥塞信息。可选地,如果该第一节点已经存储有该至少一个转发节点簇的拥塞信息,该第一节点也可以更新存储的该至少一个转发节点簇的拥塞信息,但本发明实施例不限于此。
可选地,作为另一实施例,该第一节点还可以确定该源节点簇的拥塞信息。可选地,该第一节点可以预先存储有该源节点簇的拥塞信息,其中,该源节点簇的拥塞信息可以是根据至少一个其它节点的拥塞信息确定的。或者,该第一节点可以指示该源节点簇中的至少一个其他节点发送自身的拥塞信息,并且根据该至少一个其他节点的拥塞信息,确定该源节点簇的拥塞信息。具体地,该源节点簇可以由该第一节点和除该第一节点以外的至少一个第三节点组成,其中,该至少一个第三节点可以包括该源节点。相应地,在S230之前,该方法200还包括:
接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息;
根据该至少一个第三节点中的每个第三节点的拥塞信息,确定该源节点簇的拥塞信息。
该第一节点可以根据该至少一个第三节点的拥塞信息和该第一节点的 拥塞信息,确定该源节点簇的拥塞信息。可选地,如果该拥塞信息包括BFM,则该第一节点簇的BFM可以等于该源节点簇中的部分或全部节点的BFM之和,或等于该源节点簇中的部分或全部节点的BFM的数学平均,或等于该源节点簇中的部分或全部节点的BFM的其它函数值,本发明实施例对此不作限定。
该至少一个第三节点中的每个第三节点可以周期性或触发性地向该第一节点发送节点的拥塞信息,其中,该触发条件可以为接收到该控制节点发送的用于指示该第三节点发送自身的拥塞信息的指示,或者为该第三节点有待发送的数据包,等等,本发明实施例对此不做限定。
可选地,作为另一实施例,在该接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息之前,该方法200还包括:
向该至少一个第三节点中的每个第三节点发送信息上报指示,该信息上报指示用于指示每个第三节点向该第一节点发送该每个第三节点的拥塞信息;
相应地,该接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息,包括:
接收该至少一个第三节点中的每个第三节点根据该信息上报指示发送的该每个第三节点的拥塞信息。
可选地,作为另一实施例,在确定该源节点簇的拥塞信息之后,该方法200还可以包括:
向至少一个第四节点发送该源节点簇的拥塞信息,其中,该第四节点属于不同于该源节点簇的其它节点簇。
其中,该第四节点可以为其他节点簇的控制节点。具体地,该第一节点可以向多个其他控制节点中的至少一个其他控制节点发送该源节点簇的拥塞信息,例如,该第一节点可以在其他控制节点支持的频段上广播该源节点簇的拥塞信息,但本发明实施例不限于此。
可选地,作为另一实施例,该第一节点可以为该源节点,其中,该源节点可以为该源节点簇的控制节点或者为该控制节点以外的其他节点。此时,如果该源节点不为该源节点簇的控制节点,则该源节点可以向该源节点簇的控制节点发送用于请求该多个可选路由路径中包括的多个转发节点簇的拥塞信息的请求消息,并接收该控制节点根据该请求消息发送的该多个转发节 点簇的拥塞信息,但本发明实施例不限于此。
可选地,该方法200还包括:根据该数据包的目标路由路径,发送该数据包。
可选地,作为另一实施例,该根据该数据包的目标路由路径,发送该数据包,包括:
发送该数据包,其中,该数据包中携带该目标路由路径的信息,以便于接收到该数据包的节点根据该数据包中携带的该目标路由路径的信息转发该数据包。
该目标路由路径的信息可以包括该目标路由路径包括的至少一个节点簇的信息,或进一步包括该至少一个节点簇的次序信息,该数据包按照该次序信息对应的次序依次经过该至少一个节点簇,但本发明实施例不限于此。
该源节点可以将该目标路由路径的信息添加至该数据包,例如,将该目标路由路径的信息添加至该数据包的包头,并发送该添加了该目标路由路径的信息的数据包。这样,接收到该数据包的节点可以根据该数据包中携带的该目标路由路径的信息,确定该数据包的下一跳节点。
可选地,作为另一实施例,如果该目标路由路径对应于粗粒度路由路径,则该源节点还可以根据该目标路由路径,确定该数据包的细粒度路由路径。具体地,该源节点可以根据该目标路由路径和/或该源节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点。可选地,如图4所示,该发送该数据包,包括:
S240,确定该源节点的多个相邻节点的拥塞信息;
S250,根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;
S260,向该下一跳节点发送该数据包。
具体地,该多个相邻节点的拥塞信息可以包括该多个相邻节点中的部分或全部节点的拥塞信息。可选地,该源节点可以根据该目标路由路径确定该数据包的下一跳节点簇,并确定该源节点的多个相邻节点中与该下一跳节点簇距离最近的至少一个相邻节点,其中,与该下一跳节点簇距离最近的至少一个相邻节点可以指由该至少一个相邻节点到达该下一跳节点簇经过的跳数最少。然后,该源节点可以确定该至少一个相邻节点中每个相邻节点的拥塞信息,并且根据该至少一个相邻节点中的每个相邻节点的拥塞信息,确定 该下一跳节点。具体地,该源节点可以确定该至少一个相邻节点中的每个相邻节点是否处于拥塞状态,其中,不处于拥塞状态的节点处于非拥塞状态,如果节点的拥塞信息满足预设条件,则该节点处于拥塞状态,该预设条件可以包括节点的BFM大于一定阈值,或者节点的BFM与源节点簇的平均BFM之差大于一定阈值,等等,但本发明实施例不限于此。
可选地,如果该至少一个相邻节点中的每个相邻节点均处于拥塞状态,则该第一节点可以确定该多个相邻节点中与该下一跳节点簇的距离次近的至少一个相邻节点,并确定该距离次近的至少一个相邻节点是否处于拥塞状态,以此往复,直到找到处于非拥塞状态的相邻节点。
可选地,作为另一实施例,若与该下一跳节点簇距离最近的该至少一个相邻节点中存在处于非拥塞状态的相邻节点,则该源节点可以将该至少一个相邻节点中处于非拥塞状态的相邻节点确定为该下一跳节点。如果该至少一个相邻节点中处于非拥塞状态的相邻节点的数量为多个,则该源节点可以将该多个处于非拥塞状态的相邻节点中拥塞程度最小的节点确定为该下一跳节点,其中,拥塞程度最小的相邻节点可以指该多个处于非拥塞状态的相邻节点中对应于最小的BFM值的相邻节点,但本发明实施例不限于此。
可选地,作为另一实施例,该源节点还可以首先确定该多个相邻节点中处于非拥塞状态的至少一个相邻节点,如果该处于非拥塞状态的至少一个相邻节点的个数为一个,则该源节点可以将该处于非拥塞状态的相邻节点确定为该下一跳节点。如果该处于非拥塞状态的至少一个相邻节点的个数为多个,则该源节点可以根据该至少一个相邻节点与该下一跳节点簇之间的距离,确定该下一跳节点。此时,该多个相邻节点的拥塞信息可以包括该多个相邻节点中的每个相邻节点的拥塞信息。相应地,该根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点,包括:
根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,确定该目标路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
如果该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点的个数为一个,则该源节点可以将该距离最近的相邻节点确定为该下一跳节 点。如果该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点的个数为多个,则该源节点可以将其中拥塞程度最小的相邻节点确定为该下一跳节点,但本发明实施例不限于此。
该源节点可以通过多种方式确定该多个相邻节点的拥塞信息。可选地,该源节点可以预先存储每个相邻节点的拥塞信息,或接收每个相邻节点主动或被动发送的该每个相邻节点的拥塞信息,本发明实施例对此不做限定。
因此,根据本发明实施例的路由数据包的方法,通过将网络中的多个节点划分为不同的节点簇,并且根据多个节点簇的拥塞信息,确定数据包的路由路径,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,源节点通过根据该数据包的目标路由路径和该源节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图5示出了根据本发明另一实施例的路由数据包的方法300。该方法适用的网络包括多个节点簇,该每个节点簇中的每个节点簇包括至少一个节点,例如该方法300适用于片上网络100,但本发明实施例不限于此。该方法300可以由数据包的源节点执行,其中,该数据包的源节点不同于该源节点所属的源节点簇的控制节点,并且该源节点可以与该控制节点相邻或不相邻。如图5所示,该方法300包括:
S310,向控制节点发送路径确定请求,该路径确定请求用于请求该控制节点确定该数据包的路由路径,其中,该源节点和该控制节点属于源节点簇;
S320,接收该控制节点根据该路径确定请求发送的路由路径的信息,其中,该路由路径的信息包括至少一个节点簇的信息;
S330,根据该路由路径的信息,发送该数据包。
该控制节点在接收到该路径确定请求之后,可以确定该源节点簇和该数据包的目的节点所属的目的节点簇,并根据该源节点簇和该目标节点簇,确定该数据包的路由路径。
因此,根据本发明实施例的路由数据包的方法,通过将网络中的多个节点划分为不同的节点簇,并且源节点向控制节点发送路径确定请求,请求控制节点确定数据包的路由路径,并且根据该控制节点发送的路由路径的信息,发送该数据包,其中,该路由路径的信息包括至少一个节点簇的信息, 并且该路由路径是根据多个节点簇的拥塞信息确定的,因此,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
在本发明实施例中,该源节点簇和该目的节点簇为不同的节点簇。具体地,该源节点簇可以由包括该源节点和该控制节点在内的至少两个节点组成,该目的节点簇可以由包括该目的节点在内的至少一个节点组成,本发明实施例对此不做限定。该路由路径以该源节点簇为起点,并且以该目的节点簇为终点,中间可以依次经过零个、一个或多个节点簇。该路由路径可以包括该数据包由该源节点至该目的节点的过程中依次经过的至少一个节点簇,其中,该至少一个节点簇可以仅包括该目的节点簇或者仅包括该源节点簇和该目的节点簇,此时,该源节点簇可以与该目的节点簇相邻,并且该路由路径的信息可以仅包括该目的节点簇的信息。或者,该路由路径包括除该源节点簇和该目的节点簇之外的至少一个其它节点簇。此时,该至少一个节点簇的信息可以仅包括除该源节点簇和目的节点簇之外的至少一个转发节点簇的信息,或者进一步包括该目的节点簇的信息,本发明实施例对此不做限定。
可选地,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息。
可选地,该路由路径的最小粒度为节点簇,此时,该路由路径为该数据包的粗粒度路由路径。在该路由路径中,该数据包的基本跳转单位为节点簇。该至少一个节点簇的次序信息可以包括该至少一个节点簇中的每个节点簇对应的跳数信息,一个节点簇的跳数信息可以具体为该节点簇为该至少一个节点簇中的第几跳,但本发明实施例不限于此。
可选地,该路径确定请求携带该目的节点的信息,以便于该控制节点根据该目的节点的信息确定该目的节点簇并根据该目的节点簇确定该路由路径。
该目的节点的信息可以包括该目的节点的IP地址或设备标识,等等。该控制节点可以根据该目的节点的信息确定该目的节点簇。具体地,该控制节点可以获取节点与节点簇之间的对应关系,并且根据该目的节点的信息以及获取的节点与节点簇之间的对应关系,确定该目的节点簇,其中,该对应关系可以是该控制节点预先存储的或者从其他网络设备获取的,本发明实施例对此不做限定。可选地,作为另一实施例,该控制节点也可以向其它网络设备发送携带有该目的节点的信息的请求,该其它网络设备根据该目的节点 的信息确定该目的节点簇,并向该控制节点发送该目的节点簇的信息,相应地,该控制节点根据该其它网络设备发送的该目的节点簇的信息确定该目的节点簇,本发明实施例不限于此。
可选地,作为另一实施例,该源节点还可以根据该目的节点的信息确定该目的节点所属的目的节点簇,并且在该路径确定请求中携带该目的节点簇的信息。该源节点可以通过多种方式确定该目的节点簇。可选地,该源节点可以获取节点与节点簇之间的对应关系,并且根据该目的节点的信息以及获取的该节点与节点簇之间的对应关系,确定该目的节点簇,其中,该对应关系可以是该源节点预先存储的或者从其他网络设备获取的,本发明实施例对此不做限定。可选地,作为另一实施例,该源节点也可以向其它网络设备发送携带有该目的节点的信息的请求,其中,该其它网络设备可以包括该控制节点,该其它网络设备根据该目的节点的信息确定该目的节点簇,并向该源节点发送该目的节点簇的信息,相应地,该源节点根据其它网络设备发送的该目的节点簇的信息确定该目的节点簇,本发明实施例不限于此。
该控制节点可以根据该目的节点簇,确定该路由路径。可选地,该控制节点可以预先存储有由该源节点簇至该目的节点簇的路由路径的信息,并且获取存储的该路由路径的信息,其中,该预先存储的该路由路径的信息可以是根据多个节点簇中的每个节点簇的拥塞信息确定的。可选地,作为另一实施例,该控制节点可以获取多个节点簇中每个节点簇的拥塞信息,并根据该源节点簇、该目的节点簇和该多个节点簇中的每个节点簇的拥塞信息,确定该路由路径,但本发明实施例不限于此。
可选地,作为另一实施例,S330,根据该路由路径的信息,发送该数据包,包括:
发送该数据包,其中,该数据包携带该路由路径的信息,以便于接收到该数据包的节点根据该数据包携带的该路由路径的信息转发该数据包。
该源节点可以将该路由路径的信息携带在该数据包的包头,并发送该添加了该目标路由路径的信息的数据包。这样,接收到该数据包的节点可以根据该数据包中携带的该目标路由路径的信息,确定该数据包的下一跳节点。
可选地,作为另一实施例,如果该路由路径对应于粗粒度路由路径,则该源节点还可以根据该路由路径的信息,确定该数据包的细粒度路由路径。具体地,该源节点可以根据该路由路径的信息和/或该源节点的多个相邻节点 的拥塞信息,确定该数据包的下一跳节点。
可选地,该发送该数据包,包括:
确定该源节点的多个相邻节点的拥塞信息;
根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;
向该下一跳节点发送该数据包。
该多个相邻节点的拥塞信息可以包括该多个相邻节点中的部分或全部节点的拥塞信息。可选地,该源节点可以根据该路由路径的信息,确定该数据包的下一跳节点簇,并确定该源节点的多个相邻节点中与该下一跳节点簇距离最近的至少一个相邻节点,其中,与该下一跳节点簇距离最近的至少一个相邻节点可以指由该至少一个相邻节点到达该下一跳节点簇经过的跳数最少。然后,该源节点可以确定该至少一个相邻节点中每个相邻节点的拥塞信息,并且根据该至少一个相邻节点中的每个相邻节点的拥塞信息,确定该下一跳节点。具体地,该源节点可以确定该至少一个相邻节点中的每个相邻节点是否处于拥塞状态,其中,如果一个相邻节点的拥塞信息满足预设条件,则该相邻节点处于拥塞状态,该预设条件可以包括节点的BFM大于一定阈值,或者节点的BFM与源节点簇的平均BFM之差大于一定阈值,等等,但本发明实施例不限于此。
可选地,如果该至少一个相邻节点中的每个相邻节点均处于拥塞状态,则该第一节点可以确定该多个相邻节点中与该下一跳节点簇的距离次近的至少一个相邻节点,并确定该距离次近的至少一个相邻节点是否处于拥塞状态,以此往复,直到找到处于非拥塞状态的相邻节点。
可选地,作为另一实施例,若与该下一跳节点簇距离最近的该至少一个相邻节点中存在处于非拥塞状态的相邻节点,则该源节点可以将该至少一个相邻节点中处于非拥塞状态的相邻节点确定为该下一跳节点。如果该至少一个相邻节点中处于非拥塞状态的相邻节点的数量为多个,则该源节点可以将该多个处于非拥塞状态的相邻节点中拥塞程度最小的节点确定为该下一跳节点,其中,拥塞程度最小的相邻节点可以指该多个处于非拥塞状态的相邻节点中对应于最小的BFM值的相邻节点,但本发明实施例不限于此。
可选地,作为另一实施例,该源节点还可以首先确定该多个相邻节点中处于非拥塞状态的至少一个相邻节点,如果该处于非拥塞状态的至少一个相 邻节点的个数为一个,则该源节点可以将该处于非拥塞状态的相邻节点确定为该下一跳节点。如果该处于非拥塞状态的至少一个相邻节点的个数为多个,则该源节点可以根据该至少一个相邻节点与该下一跳节点簇之间的距离,确定该下一跳节点。此时,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;相应地,该根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点,包括:
根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,根据该路由路径的信息,确定该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
如果该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点的个数为一个,则该源节点可以将该距离最近的相邻节点确定为该下一跳节点。如果该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点的个数为多个,则该源节点可以将其中拥塞程度最小的相邻节点确定为该下一跳节点,但本发明实施例不限于此。
在本发明实施例中,节点的拥塞信息可以表示该节点的拥塞状态。该源节点可以通过多种方式确定该多个相邻节点的拥塞信息。可选地,该源节点可以预先存储每个相邻节点的拥塞信息;或者,该源节点可以接收该多个相邻节点中的每个相邻节点发送的该每个相邻节点的拥塞信息,其中,该多个相邻节点可以周期性或触发性地向该源节点发送自身的拥塞信息,例如,该多个相邻节点在接收到该源节点的请求后向该源节点发送自身的拥塞信息,但本发明实施例不限于此。可选地,该多个相邻节点的拥塞信息可以是该源节点通过与多个相邻节点之间的第一传输链路获取的,其中,两个相邻节点之间具有该第一传输连接,该第一传输链路用于向相邻节点传输节点的拥塞信息和数据,但本发明实施例不限于此。
可选地,作为另一实施例,该方法300还包括:
向该控制节点发送该源节点的拥塞信息,以便于该控制节点根据该源节点的拥塞信息确定该源节点簇的拥塞信息。
该源节点可以周期性或触发性地向该控制节点发送该源节点的拥塞信息,其中,该触发条件可以为接收到该控制节点发送的用于指示该源节点发 送拥塞信息的指示,或者为该源节点有待发送的数据包,等等,本发明实施例对此不做限定。可选地,该源节点可以通过与该控制节点之间的第一传输链路发送该源节点的拥塞信息,其中,该控制节点可以与多个其它节点中的每个其它节点之间具有该第一传输链路,该其它节点为该源节点簇中除该控制节点之外的节点。该第一传输链路用于传输节点的状态信息,例如,节点的拥塞信息,但本发明实施例不限于此。
可选地,作为另一实施例,该源节点还可以向该控制节点发送其它节点的拥塞信息,该其它节点的拥塞信息可以来自该源节点的相邻节点,并且该其它节点可以与该源节点相邻或不相邻,本发明实施例对此不做限定。
可选地,作为另一实施例,在该向该控制节点发送该源节点的拥塞信息之前,该方法300还包括:
接收该控制节点发送的信息上报指示,该信息上报指示用于指示该源节点向该控制节点发送该源节点的拥塞信息;
相应地,该向该控制节点发送该源节点的拥塞信息,包括:
根据该信息上报指示,向该控制节点发送该源节点的拥塞信息。
因此,根据本发明实施例的路由数据包的方法,通过将网络中的多个节点划分为不同的节点簇,并且源节点向控制节点发送路径确定请求,请求控制节点确定数据包的路由路径,并且根据该控制节点发送的路由路径的信息,发送该数据包,其中,该路由路径的信息包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,因此,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,源节点通过根据该路由路径的信息和该源节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图6示出了根据本发明再一实施例的路由数据包的方法400。该方法适用的网络包括多个节点簇,该每个节点簇中的每个节点簇包括至少一个节点,例如该方法400适用于片上网络100,但本发明实施例不限于此。该方法400可以第二节点执行,其中,该第二节点可以为上述实施例中的控制节点,或者该第二节点为上述实施例中的源节点,此时,该源节点接收的数据包不同于该源节点在上述实施例中发送的数据包,或者该第二节点为除该控制节点和该源节点之外的其它节点,本发明实施例对此不做限定。如图6所 示,该方法400包括:
S410,接收数据包,其中,该数据包可以携带该数据包的路由路径的信息,其中,该路由路径的信息可以包括至少一个节点簇的信息;
S420,根据该路由路径的信息,确定该数据包的下一跳节点;
S430,向该下一跳节点发送该数据包。
因此,根据本发明实施例的路由数据包的方法,通过将网络中的多个节点划分为不同的节点簇,并且第二节点根据接收到的数据包中携带的路由路径的信息,确定数据包的下一跳节点,其中,该路由路径的信息包括该至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,因此,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
该数据包可以携带该数据包的路由路径的信息,其中,该路由路径的信息可以包括至少一个节点簇的信息。具体地,该路由路径的信息可以包括该至少一个节点簇中每个节点簇的标识信息和该至少一个节点簇的次序信息,但本发明实施例不限于此。该第二节点可以确定该第二节点所属的节点簇,并且根据该至少一个节点簇的次序信息以及该第二节点所属的节点簇,确定该数据包的下一跳节点簇,但本发明实施例对此不做限定。
该路由路径可以包括该数据包由源节点至目的节点的过程中依次经过的至少一个节点簇,其中,该至少一个节点簇可以仅包括该目的节点所属的目的节点簇或者仅包括该源节点簇和该目的节点簇,此时,该源节点簇可以与该目的节点簇相邻,并且该路由路径的信息可以仅包括该目的节点簇的信息。或者,该路由路径包括除该源节点簇和该目的节点簇之外的至少一个其它节点簇。此时,该至少一个节点簇的信息可以仅包括除该源节点簇和目的节点簇之外的至少一个其它节点簇的信息,或者进一步包括该目的节点簇的信息,本发明实施例对此不做限定。
可选地,S420,根据该路由路径的信息,确定该数据包的下一跳节点,包括:
确定该第二节点所属的节点簇;
根据该第二节点所属的节点簇和该路由路径的信息,确定该数据包的下一跳节点簇;
根据该数据包的下一跳节点簇,确定该数据包的下一跳节点。
可选地,该路由路径的信息可以包括该第二节点所属的第一节点簇的标 识信息、第二节点簇的标识信息以及该第一节点簇和该第二节点簇的次序信息。该第二节点可以根据该第一节点簇和该第二节点簇的次序信息确定该第二节点簇为该第一节点簇的下一跳节点簇,并根据该第二节点簇,确定该数据包的下一跳节点。
可选地,作为另一实施例,根据该下一跳节点簇,确定该数据包的下一跳节点,包括:
确定该第二节点的多个相邻节点的拥塞信息;
根据该下一跳节点簇的信息和该多个相邻节点的拥塞信息,确定该数据包的下一跳节点。
该多个相邻节点的拥塞信息可以包括该多个相邻节点中的部分或全部节点的拥塞信息。可选地,该第二节点可以确定该第二节点的多个相邻节点中与该下一跳节点簇距离最近的至少一个相邻节点,其中,与该下一跳节点簇距离最近的相邻节点可以指由该相邻节点到达该下一跳节点簇经过的跳数最少。然后,该第二节点可以确定该至少一个相邻节点中每个相邻节点的拥塞信息,并且根据该至少一个相邻节点中的每个相邻节点的拥塞信息,确定该下一跳节点。具体地,该第二节点可以确定该至少一个相邻节点中的每个相邻节点是否处于拥塞状态,其中,如果一个相邻节点的拥塞信息满足预设条件,则该相邻节点处于拥塞状态,该预设条件可以包括相邻节点的BFM大于一定阈值,或者相邻节点的BFM与源节点簇的平均BFM之差大于一定阈值,等等,但本发明实施例不限于此。
可选地,如果该至少一个相邻节点中的每个相邻节点均处于拥塞状态,则该第二节点可以确定该多个相邻节点中与该下一跳节点簇的距离次近的至少一个相邻节点,并确定该距离次近的至少一个相邻节点是否处于拥塞状态,以此往复,直到找到处于非拥塞状态的相邻节点。
可选地,作为另一实施例,若与该下一跳节点簇距离最近的该至少一个相邻节点中存在处于非拥塞状态的相邻节点,则该第二节点可以将该至少一个相邻节点中处于非拥塞状态的相邻节点确定为该下一跳节点。如果该至少一个相邻节点中处于非拥塞状态的相邻节点的数量为多个,则该第二节点可以将该多个处于非拥塞状态的相邻节点中拥塞程度最小的节点确定为该下一跳节点,其中,拥塞程度最小的相邻节点可以指该多个处于非拥塞状态的相邻节点中对应于最小的BFM值的相邻节点,但本发明实施例不限于此。
可选地,作为另一实施例,该第二节点还可以首先确定该多个相邻节点中处于非拥塞状态的至少一个相邻节点,如果该处于非拥塞状态的至少一个相邻节点的个数为一个,则该源节点可以将该处于非拥塞状态的相邻节点确定为该下一跳节点。如果该处于非拥塞状态的至少一个相邻节点的个数为多个,则该源节点可以根据该至少一个相邻节点与该下一跳节点簇之间的距离,确定该下一跳节点。此时,该多个相邻节点的信息包括该多个相邻节点中的每个相邻节点的信息;相应地,该根据该下一跳节点簇和该多个相邻节点的拥塞信息,确定该数据包的下一跳节点,包括:
根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
如果该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点的个数为一个,则该第二节点可以将该距离最近的相邻节点确定为该下一跳节点。如果该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点的个数为多个,则该第二节点可以将其中拥塞程度最小的相邻节点确定为该下一跳节点,但本发明实施例不限于此。
在本发明实施例中,节点的拥塞信息可以表示该节点在当前时刻或之前某一时刻的拥塞状态。该第二节点可以通过多种方式确定该多个相邻节点的拥塞信息。可选地,该第二节点可以预先存储每个相邻节点的拥塞信息;或者,该第二节点可以接收该多个相邻节点中的每个相邻节点发送的该每个相邻节点的拥塞信息,其中,该多个相邻节点可以周期性或触发性地向该第二节点发送自身的拥塞信息,例如,该多个相邻节点在接收到该第二节点的请求后向该第二节点发送自身的拥塞信息,但本发明实施例不限于此。可选地,该多个相邻节点的拥塞信息可以是该第二节点通过与多个相邻节点之间的第一传输链路获取的,其中,两个相邻节点之间具有该第一传输连接,该第一传输链路用于向相邻节点传输节点的拥塞信息和数据,但本发明实施例不限于此。
可选地,作为另一实施例,如果该第二节点不为该第一节点簇的控制节点,则该方法400还包括:
向该控制节点发送该第二节点的拥塞信息,以便于该控制节点根据该第 二节点的拥塞信息确定该第二节点所属的节点簇的拥塞信息。
该第二节点可以周期性或触发性地向该控制节点发送该第二节点的拥塞信息,其中,该触发条件可以为接收到该控制节点发送的用于指示该第二节点发送拥塞信息的指示,或者为该第二节点有待发送的数据包,等等,本发明实施例对此不做限定。可选地,该第二节点可以通过与该控制节点之间的第二传输链路发送该第二节点的拥塞信息,其中,该控制节点可以与多个其它节点中的每个其它节点之间具有该第二传输链路,该其它节点为该第一节点簇中除该控制节点之外的节点。该第二传输链路用于该控制节点与该多个其它节点之间的通信,例如,各个其它节点向该控制节点发送自身的拥塞信息,但本发明实施例不限于此。
可选地,作为另一实施例,该第二节点还可以向该控制节点发送其它节点的拥塞信息,该其它节点的拥塞信息可以来自该第二节点的相邻节点,并且该其它节点可以与该第二节点相邻或不相邻,本发明实施例对此不做限定。
因此,根据本发明实施例的路由数据包的方法,通过将网络中的多个节点划分为不同的节点簇,并且第二节点根据接收到的数据包中携带的路由路径的信息,确定数据包的下一跳节点,其中,该路由路径的信息包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,因此,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,该第二节点通过根据该路由路径的信息和该第二节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中结合图3至图6,详细描述了根据本发明实施例的路由数据包的方法,下面将结合图7至图15,描述根据本发明实施例的节点和通信系统。
图7示出了根据本发明实施例的节点500。该节点500可以对应于上述实施例中的第一节点并且用于执行上述方法200。如图7所示,该节点500包括:
第一确定单元510,用于确定数据包的目的节点所属的目的节点簇;
第二确定单元520,用于确定该数据包由源节点簇至该第一确定单元510确定的该目的节点簇的多个可选路由路径,其中,该数据包的源节点属于该源节点簇,该多个可选路由路径中的每个可选路由路径包括至少一个转发节点簇;
第三确定单元530,用于根据该第二确定单元520确定的该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且根据多个节点簇的拥塞信息,确定数据包的路由路径,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
可选地,该目标路由路径表示该数据包由该源节点簇至该目的节点簇的过程中依次经过的至少一个转发节点簇。
可选地,作为另一实施例,该第三确定单元530具体用于:
根据该多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定该每个可选路由路径的拥塞状态;
将该多个可选路由路径中拥塞程度最小的可选路由路径确定为该目标路由路径。
可选地,作为另一实施例,该拥塞信息包括BFM,每个可选路由路径的拥塞状态采用该每个可选路由路径对应的BFM表示。此时,该第三确定单元530具体用于:
将第一可选路由路径对应的BFM确定为该第一可选路由路径中包括的至少一个转发节点簇的BFM之和,其中,该多个可选路由路径包括该第一可选路由路径,该至少一个转发节点簇中的每个转发节点簇的BFM由该每个转发节点簇中包括的至少一个节点的BFM确定。
可选地,作为另一实施例,该第三确定单元530具体用于:
根据该多个可选路由路径中每个可选路由路径包括的至少一个节点簇的拥塞信息和该每个可选路由路径包括的转发节点簇的个数,从该多个可选路由路径中确定该目标路由路径。
可选地,作为另一实施例,该节点500为该源节点簇包括的除该源节点之外的其它节点,此时,如图8所示,该节点500还包括:
第一接收单元540,用于在该第一确定单元510确定该数据包的目的节点所属的目的节点簇之前,接收该源节点发送的路径确定请求,该路径确定请求用于请求该第一节点确定该数据包的路由路径;
相应地,该第一确定单元510具体用于:根据该第一接收单元510接收的该路径确定请求,确定该目的节点所属的目的节点簇。
该节点500还包括:
第一发送单元550,用于向该源节点发送该第三确定单元530确定的该目标路由路径的信息,以便于该源节点根据该目标路由路径的信息发送该数据包。
可选地,作为另一实施例,该第一接收单元540还用于接收第二节点发送的至少一个转发节点簇的拥塞信息,其中,该至少一个转发节点簇包括该第二节点。
可选地,作为另一实施例,该第一接收单元540具体用于接收该第二节点广播的该第二节点所属的转发节点簇的拥塞信息。
可选地,作为另一实施例,该源节点簇由该第一节点和除该第一节点之外的至少一个第三节点组成。此时,该第一接收单元540还用于接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息;相应地,该第一确定单元510还用于根据该第一接收单元540接收的该至少一个第三节点中的每个第三节点的拥塞信息,确定该源节点簇的拥塞信息。
可选地,作为另一实施例,该第一发送单元550还用于在该第一接收单元540接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息之前,向该至少一个第三节点中的每个第三节点发送信息上报指示,该信息上报指示用于指示每个第三节点向该第一节点发送该每个第三节点的拥塞信息;相应地,该第一接收单元540具体用于接收该至少一个第三节点中的每个第三节点根据该第一发送单元550发送的该信息上报指示发送的该每个第三节点的拥塞信息。
可选地,作为另一实施例,该第一发送单元550还用于向至少一个第四节点发送该源节点簇的拥塞信息,其中,该第四节点属于不同于该源节点簇的其它节点簇。
可选地,作为另一实施例,该节点500为该源节点,相应地,该节点500还包括:
第二发送单元,用于根据该第三确定单元530确定的该数据包的目标路由路径,发送该数据包。
可选地,作为另一实施例,该第二发送单元具体用于发送该数据包,其中,该数据包中携带该目标路由路径的信息,以便于接收到该数据包的节点根据该数据包中携带的该目标路由路径的信息转发该数据包。
可选地,作为另一实施例,该第二发送单元包括:
第一确定子单元,用于确定该源节点的多个相邻节点的拥塞信息;
第二确定子单元,用于根据该第一确定子单元确定的该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;
发送子单元,用于向该第二确定子单元确定的该下一跳节点发送该数据包。
可选地,作为另一实施例,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;
相应地,该第二确定子单元具体用于:
根据该多个相邻节点中每个候选节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,确定该目标路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
根据本发明实施例的节点500可对应于根据本发明实施例的路由数据包的方法200中的第一节点,并且节点500中的各个模块的上述和其它操作和/或功能分别为了实现图3至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且根据多个节点簇的拥塞信息,确定数据包的路由路径,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,当该节点为数据包的源节点时,该节点通过根据该数据包的目标路由路径和该节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图9示出了根据本发明另一实施例的节点600。该节点600可以对应于 上述方法实施例中的源节点并且用于执行上述方法300。如图9所示,该节点600包括:
发送单元610,用于向控制节点发送路径确定请求,该路径确定请求用于请求该控制节点确定数据包的路由路径,其中,该节点和该控制节点属于源节点簇;
接收单元620,用于接收该控制节点根据该发送单元610发送的该路径确定请求发送的路由路径的信息,其中,该路由路径的信息包括至少一个节点簇的信息;
该发送单元610还用于根据该接收单元620接收的该路由路径的信息,发送该数据包。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且向控制节点发送路径确定请求,请求控制节点确定数据包的路由路径,并且根据该控制节点发送的路由路径的信息,发送该数据包,其中,该路由路径包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
可选地,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息。
该路由路径可以包括该数据包由源节点至目的节点的过程中依次经过的至少一个节点簇,其中,该至少一个节点簇可以仅包括该目的节点所属的目的节点簇或者仅包括该源节点簇和该目的节点簇,此时,该源节点簇可以与该目的节点簇相邻,并且该路由路径的信息可以仅包括该目的节点簇的信息。或者,该路由路径包括除该源节点簇和该目的节点簇之外的至少一个其它节点簇。此时,该至少一个节点簇的信息可以仅包括除该源节点簇和目的节点簇之外的至少一个其它节点簇的信息,或者进一步包括该目的节点簇的信息,本发明实施例对此不做限定。
可选地,作为另一实施例,该路径确定请求携带该数据包的目的节点的信息,以便于该控制节点根据该目的节点的信息确定该目的节点所属的目的节点簇并根据该源节点簇和该目的节点簇确定该路由路径。
可选地,作为另一实施例,该发送单元610具体用于:发送该数据包,其中,该数据包携带该路由路径的信息,以便于接收到该数据包的节点根据 该数据包携带的该路由路径的信息转发该数据包。
可选地,作为另一实施例,该发送单元610包括:
第一确定子单元,用于确定该节点的多个相邻节点的拥塞信息;
第二确定子单元,用于根据该第一确定子单元确定的该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;
发送子单元,用于向该第二确定子单元确定的该下一跳节点发送该数据包。
可选地,作为另一实施例,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;
相应地,该第二确定子单元具体用于:
根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,确定该路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
可选地,作为另一实施例,该发送单元610还用于向该控制节点发送该节点的拥塞信息,以便于该控制节点根据该节点的拥塞信息确定该源节点簇的拥塞信息。
可选地,作为另一实施例,该接收单元620还用于在该发送单元610向该控制节点发送该节点的拥塞信息之前,接收该控制节点发送的信息上报指示,该信息上报指示用于指示该节点向该控制节点发送该源节点的拥塞信息;
相应地,该发送单元610还用于根据该接收单元620接收的该信息上报指示,向该控制节点发送该节点的拥塞信息。
根据本发明实施例的节点600可对应于根据本发明实施例的路由数据包的方法300中的源节点,并且节点600中的各个模块的上述和其它操作和/或功能分别为了实现图5中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且向控制节点发送路径确定请求,请求控制节点确定数据包的路由路径,并且根据该控制节点发送的路由路径的信息,发送该数据包,其 中,该路由路径包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,节点通过根据该路由路径的信息和该节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图10示出了根据本发明另一实施例的节点700。该节点700可以对应于上述方法实施例中的第二节点并且用于执行上述方法400。如图10所示,该节点700包括:
接收单元710,用于接收数据包,其中,该数据包携带该数据包的路由路径的信息,该路由路径的信息包括至少一个节点簇的信息;
确定单元720,用于根据该接收单元710接收的该路由路径的信息,确定该数据包的下一跳节点;
发送单元730,用于向该确定单元720确定的该下一跳节点发送该数据包。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且根据接收到的数据包中携带的路由路径的信息,确定数据包的下一跳节点,其中,该路由路径的信息包括该至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
可选地,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息。
该路由路径可以包括该数据包由源节点至目的节点的过程中依次经过的至少一个节点簇,其中,该至少一个节点簇可以仅包括该目的节点所属的目的节点簇或者仅包括该源节点簇和该目的节点簇,此时,该源节点簇可以与该目的节点簇相邻,并且该路由路径的信息可以仅包括该目的节点簇的信息。或者,该路由路径包括除该源节点簇和该目的节点簇之外的至少一个其它节点簇。此时,该至少一个节点簇的信息可以仅包括除该源节点簇和目的节点簇之外的至少一个其它节点簇的信息,或者进一步包括该目的节点簇的信息,本发明实施例对此不做限定。
该确定单元720可以包括:
第一确定子单元,用于确定该第二节点所属的节点簇;
第二确定子单元,用于根据该第一确定子单元确定的该第二节点所属的节点簇和该路由路径的信息,确定该数据包的下一跳节点簇;
第三确定子单元,用于根据该第二确定子单元确定的该数据包的下一跳节点簇,确定该数据包的下一跳节点。
可选地,作为另一实施例,该第三确定子单元具体用于:
确定该第二节点的多个相邻节点的拥塞信息;
根据该下一跳节点簇和该多个相邻节点的拥塞信息,确定该数据包的下一跳节点。
可选地,作为另一实施例,该多个相邻节点的信息包括该多个相邻节点中的每个相邻节点的信息;
相应地,该第三确定子单元具体用于:
根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
根据本发明实施例的节点700可对应于根据本发明实施例的路由数据包的方法400中的第二节点,并且节点700中的各个模块的上述和其它操作和/或功能分别为了实现图6中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且根据接收到的数据包中携带的路由路径的信息,确定数据包的下一跳节点,其中,该路由路径的信息包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,该节点通过根据该路由路径的信息和该节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图11示出了根据本发明实施例的一种通信系统800,该通信系统800包括:图7或图8所示的节点500和图10所示的节点700;或者,该通信系统800可以包括图9所示的节点600和图10所示的节点700。
因此,根据本发明实施例的通信系统,通过将网络中的多个节点划分为不同的节点簇,并且根据接收到的数据包中携带的路由路径的信息,确定数据包的下一跳节点,其中,该路由路径的信息包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,节点通过根据该路由路径的信息和该节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图12示出了根据本发明实施例的节点1100。该节点1100可以对应于上述实施例中的第一节点并且用于执行上述方法200。如图12所示,该节点1100包括处理器1110,用于:
确定该数据包的目的节点所属的目的节点簇;
确定该数据包由源节点簇至该目的节点簇的多个可选路由路径,其中,该数据包的源节点属于该源节点簇,该多个可选路由路径中的每个可选路由路径包括至少一个转发节点簇;
根据该多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从该多个可选路由路径中确定目标路由路径。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且根据多个节点簇的拥塞信息,确定数据包的路由路径,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
应理解,在本发明实施例中,该处理器1110可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器1110还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该节点1100还可以包括存储器,该存储器用于存储该多个节点簇中的每个节点簇的拥塞信息,或者进一步用于存储节点与节点簇之间的对应关系。该存储器可以包括只读存储器和随机存取存储器,并向处理器1110提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器1110中的硬件的集 成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器1110读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,该目标路由路径表示该数据包由该源节点簇至该目的节点簇的过程中依次经过的至少一个转发节点簇。
可选地,作为另一实施例,该处理器1110具体用于:
根据该多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定该每个可选路由路径的拥塞状态;
将该多个可选路由路径中拥塞程度最小的可选路由路径确定为该目标路由路径。
可选地,作为另一实施例,该拥塞信息包括BFM,每个可选路由路径的拥塞状态采用该每个可选路由路径对应的BFM表示。此时,该处理器1110具体用于:
将第一可选路由路径对应的BFM确定为该第一可选路由路径中包括的至少一个转发节点簇的BFM之和,其中,该多个可选路由路径包括该第一可选路由路径,该至少一个转发节点簇中的每个转发节点簇的BFM由该每个转发节点簇中包括的至少一个节点的BFM确定。
可选地,作为另一实施例,该处理器1110具体用于:
根据该多个可选路由路径中每个可选路由路径包括的至少一个节点簇的拥塞信息和该每个可选路由路径包括的转发节点簇的个数,从该多个可选路由路径中确定该目标路由路径。
可选地,作为另一实施例,该节点1110为该源节点簇包括的除该源节点之外的其它节点,此时,如图12所示,该节点1100还包括:
接收器1120,用于在该处理器1110确定该数据包的目的节点所属的目的节点簇之前,接收该源节点发送的路径确定请求,该路径确定请求用于请求该第一节点确定该数据包的路由路径;
相应地,该处理器1110具体用于:根据该接收器1120接收的该路径确定请求,确定该目的节点所属的目的节点簇。
该节点1100还包括:
发送器1130,用于向该源节点发送该处理器1110确定的该目标路由路径的信息,以便于该源节点根据该目标路由路径的信息发送该数据包。
可选地,作为另一实施例,该接收器1120还用于:接收第二节点发送的至少一个转发节点簇的拥塞信息,其中,该至少一个转发节点簇包括该第二节点。
可选地,作为另一实施例,该接收器1120具体用于接收该第二节点广播的该第二节点所属的转发节点簇的拥塞信息。
可选地,作为另一实施例,该源节点簇由该第一节点和除该第一节点之外的至少一个第三节点组成。此时,该接收器1120还用于接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息;
相应地,该处理器1110具体用于根据该接收器1120接收的该至少一个第三节点中的每个第三节点的拥塞信息,确定该源节点簇的拥塞信息。
可选地,作为另一实施例,该发送器1130还用于在该接收器1120接收该至少一个第三节点中的每个第三节点发送的该每个第三节点的拥塞信息之前,向该至少一个第三节点中的每个第三节点发送信息上报指示,该信息上报指示用于指示每个第三节点向该第一节点发送该每个第三节点的拥塞信息;
相应地,该接收器1120具体用于接收该至少一个第三节点中的每个第三节点根据该发送器1130发送的该信息上报指示发送的该每个第三节点的拥塞信息。
可选地,作为另一实施例,该发送器1130还用于向至少一个第四节点发送该源节点簇的拥塞信息,其中,该第四节点属于不同于该源节点簇的其它节点簇。
可选地,作为另一实施例,该节点1100为该源节点,相应地,该节点1100还包括:
发送器1130,用于根据该处理器1110确定的该数据包的目标路由路径,发送该数据包。
可选地,作为另一实施例,该发送器1130具体用于发送该数据包,其中,该数据包中携带该目标路由路径的信息,以便于接收到该数据包的节点根据该数据包中携带的该目标路由路径的信息转发该数据包。
可选地,作为另一实施例,该处理器1110还用于确定该源节点的多个相邻节点的拥塞信息,根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;
该发送器1130还用于向该处理器1110确定的该下一跳节点发送该数据包。
可选地,作为另一实施例,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;
相应地,该处理器1110具体用于:
根据该多个相邻节点中每个候选节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,确定该目标路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
根据本发明实施例的节点1100可对应于根据本发明实施例的路由数据包的方法200中的第一节点,并且节点1100中的各个模块的上述和其它操作和/或功能分别为了实现图3至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且根据多个节点簇的拥塞信息,确定数据包的路由路径,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,当该节点为数据包的源节点时,该节点通过根据该数据包的目标路由路径和该节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图13示出了根据本发明另一实施例的节点1200。该节点1200可以对应于上述方法实施例中的源节点并且用于执行上述方法300。如图13所示,该节点1200包括:
发送器1210,用于向控制节点发送路径确定请求,该路径确定请求用于请求该控制节点确定数据包的路由路径,其中,该节点和该控制节点属于源节点簇;
接收器1220,用于接收该控制节点根据该发送器1210发送的该路径确 定请求发送的路由路径的信息,其中,该路由路径的信息包括至少一个节点簇的信息;
该发送器1210还用于根据该接收器1220接收的该路由路径的信息,发送该数据包。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且向控制节点发送路径确定请求,请求控制节点确定数据包的路由路径,并且根据该控制节点发送的路由路径的信息,发送该数据包,其中,该路由路径包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
可选地,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息。
可选地,作为另一实施例,该路径确定请求携带该数据包的目的节点的信息,以便于该控制节点根据该目的节点的信息确定该目的节点所属的目的节点簇并根据该源节点簇和该目的节点簇确定该路由路径。
可选地,作为另一实施例,该发送器1210具体用于:发送该数据包,其中,该数据包携带该路由路径的信息,以便于接收到该数据包的节点根据该数据包携带的该路由路径的信息转发该数据包。
可选地,作为另一实施例,如图13所示,该节点1200还包括:
处理器1230,用于确定该节点的多个相邻节点的拥塞信息,根据该多个相邻节点的拥塞信息,从该多个相邻节点中确定该数据包的下一跳节点;
该发送器1210还用于向该处理器1230确定的该下一跳节点发送该数据包。
可选地,作为另一实施例,该多个相邻节点的拥塞信息包括该多个相邻节点中的每个相邻节点的拥塞信息;
相应地,该处理器1230具体用于:
根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,确定该路由路径中该源节点簇对应的下一跳节点簇,并将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
可选地,作为另一实施例,该发送器1210还用于向该控制节点发送该节点的拥塞信息,以便于该控制节点根据该节点的拥塞信息确定该源节点簇的拥塞信息。
可选地,作为另一实施例,该接收器1220还用于在该发送器1210向该控制节点发送该节点的拥塞信息之前,接收该控制节点发送的信息上报指示,该信息上报指示用于指示该节点向该控制节点发送该源节点的拥塞信息;
相应地,该发送器1210还用于根据该接收器1220接收的该信息上报指示,向该控制节点发送该节点的拥塞信息。
根据本发明实施例的节点1200可对应于根据本发明实施例的路由数据包的方法300中的源节点,并且节点1200中的各个模块的上述和其它操作和/或功能分别为了实现图5中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且向控制节点发送路径确定请求,请求控制节点确定数据包的路由路径,并且根据该控制节点发送的路由路径的信息,发送该数据包,其中,该路由路径包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,节点通过根据该路由路径的信息和该节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图14示出了根据本发明另一实施例的节点1300。该节点1300可以对应于上述方法实施例中的第二节点并且用于执行上述方法400。如图14所示,该节点1300包括:
接收器1310,用于接收数据包,其中,该数据包携带该数据包的路由路径的信息,该路由路径的信息包括至少一个节点簇的信息;
处理器1320,用于根据该接收器1310接收的该路由路径的信息,确定该数据包的下一跳节点;
发送器1330,用于向该处理器1320确定的该下一跳节点发送该数据包。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同 的节点簇,并且根据接收到的数据包中携带的路由路径的信息,确定数据包的下一跳节点,其中,该路由路径的信息包括该至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
应理解,在本发明实施例中,该处理器1320可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器1320还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该节点1300还可以包括存储器,该存储器用于存储该多个相邻节点中的每个相邻节点的拥塞信息,和/或用于存储节点与节点簇之间的对应关系。该存储器可以包括只读存储器和随机存取存储器,并向处理器1320提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器1320中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器1320读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,该路由路径的信息包括该至少一个节点簇中的每个节点簇的标识信息和该至少一个节点簇的次序信息;
相应地,该处理器1320具体用于:
确定该第二节点所属的节点簇;
根据该第二节点所属的节点簇和该路由路径的信息,确定该数据包的下一跳节点簇;
根据该数据包的下一跳节点簇,确定该数据包的下一跳节点。
可选地,作为另一实施例,该处理器1320具体用于:
确定该第二节点的多个相邻节点的拥塞信息;
根据该下一跳节点簇和该多个相邻节点的拥塞信息,确定该数据包的下 一跳节点。
可选地,作为另一实施例,该多个相邻节点的信息包括该多个相邻节点中的每个相邻节点的信息;
相应地,该处理器1320具体用于:
根据该多个相邻节点中的每个相邻节点的拥塞信息,从该多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
若该至少一个相邻节点的个数为多个,将该至少一个相邻节点中与该下一跳节点簇距离最近的相邻节点确定为该下一跳节点。
根据本发明实施例的节点1300可对应于根据本发明实施例的路由数据包的方法400中的第二节点,并且节点1300中的各个模块的上述和其它操作和/或功能分别为了实现图6中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,根据本发明实施例的节点,通过将网络中的多个节点划分为不同的节点簇,并且根据接收到的数据包中携带的路由路径的信息,确定数据包的下一跳节点,其中,该路由路径的信息包括至少一个节点簇的信息,并且该路由路径是根据多个节点簇的拥塞信息确定的,能够均衡网络中各个节点簇的负载,从而避免拥塞现象的发生。
此外,该节点通过根据该路由路径的信息和该节点的多个相邻节点的拥塞信息,确定该数据包的下一跳节点,能够进一步均衡源节点簇中的各个节点的负载,从而均衡网络中所有节点的负载,进一步避免拥塞现象的发生。
图15示出了根据本发明另一实施例的通信系统1400。如图15所示,该通信系统1400包括:图12所示的节点1100和图14所示的节点1300;或者该通信系统包括图13所示的节点1200和图14所示的节点1300。
应理解,在本发明实施例中,术语和/或仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符/,一般表示前后关联对象是一种或的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执 行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限 于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (56)

  1. 一种路由数据包的方法,其特征在于,包括:
    第一节点确定所述数据包的目的节点所属的目的节点簇;
    确定所述数据包由源节点簇至所述目的节点簇的多个可选路由路径,其中,所述数据包的源节点属于所述源节点簇,所述多个可选路由路径中的每个可选路由路径包括至少一个转发节点簇;
    根据所述多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从所述多个可选路由路径中确定目标路由路径。
  2. 根据权利要求1所述的方法,其特征在于,所述目标路由路径表示所述数据包由所述源节点簇至所述目的节点簇的过程中依次经过的至少一个转发节点簇。
  3. 根据权利要求1或2所述的方法,其特征在于,所述根据所述多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从所述多个可选路由路径中确定目标路由路径,包括:
    根据所述多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定所述每个可选路由路径的拥塞状态;
    将所述多个可选路由路径中拥塞程度最小的可选路由路径确定为所述目标路由路径。
  4. 根据权利要求3所述的方法,其特征在于,所述拥塞信息包括最大缓存占用率BFM,每个可选路由路径的拥塞状态采用所述每个可选路由路径对应的BFM表示;
    所述根据所述多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定所述每个可选路由路径的拥塞状态,包括:
    将第一可选路由路径对应的BFM确定为所述第一可选路由路径中包括的至少一个转发节点簇的BFM之和,其中,所述多个可选路由路径包括所述第一可选路由路径,所述至少一个转发节点簇中的每个转发节点簇的BFM由所述每个转发节点簇中包括的至少一个节点的BFM确定。
  5. 根据权利要求1或2所述的方法,其特征在于,所述根据所述多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从所述多个可选路由路径中确定目标路由路径,包括:
    根据所述多个可选路由路径中每个可选路由路径包括的至少一个节点 簇的拥塞信息和所述每个可选路由路径包括的转发节点簇的个数,从所述多个可选路由路径中确定所述目标路由路径。
  6. 根据权利要求1至5中任一项所述的方法,其特征在于,所述第一节点为所述源节点簇包括的不同于所述源节点的其它节点;
    在所述确定所述数据包的目的节点所属的目的节点簇之前,所述方法还包括:
    接收所述源节点发送的路径确定请求,所述路径确定请求用于请求所述第一节点确定所述数据包的路由路径;
    所述确定所述数据包的目的节点所属的目的节点簇,包括:
    根据所述路径确定请求,确定所述目的节点所属的目的节点簇;
    在所述从所述多个可选路由路径中确定目标路由路径之后,所述方法还包括:
    向所述源节点发送路径确定响应,所述路径确定响应中携带所述目标路由路径的信息,以便于所述源节点根据所述目标路由路径的信息发送所述数据包。
  7. 根据权利要求6所述的方法,其特征在于,在所述根据所述多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从所述多个可选路由路径中确定目标路由路径之前,所述方法还包括:
    接收第二节点发送的至少一个转发节点簇的拥塞信息,其中,所述至少一个转发节点簇包括所述第二节点。
  8. 根据权利要求7所述的方法,其特征在于,所述接收第二节点发送的至少一个转发节点簇的拥塞信息,包括:
    接收所述第二节点广播的所述第二节点所属的转发节点簇的拥塞信息。
  9. 根据权利要求6至8中任一项所述的方法,其特征在于,所述源节点簇由所述第一节点和除所述第一节点之外的至少一个第三节点组成;
    在所述根据所述多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从所述多个可选路由路径中确定目标路由路径之前,所述方法还包括:
    接收所述至少一个第三节点中的每个第三节点发送的所述每个第三节点的拥塞信息;
    根据所述至少一个第三节点中的每个第三节点的拥塞信息,确定所述源 节点簇的拥塞信息。
  10. 根据权利要求9所述的方法,其特征在于,在所述接收所述至少一个第三节点中的每个第三节点发送的所述每个第三节点的拥塞信息之前,所述方法还包括:
    向所述至少一个第三节点中的每个第三节点发送信息上报指示,所述信息上报指示用于指示每个第三节点向所述第一节点发送所述每个第三节点的拥塞信息;
    所述接收所述至少一个第三节点中的每个第三节点发送的所述每个第三节点的拥塞信息,包括:
    接收所述至少一个第三节点中的每个第三节点根据所述信息上报指示发送的所述每个第三节点的拥塞信息。
  11. 根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
    向至少一个第四节点发送所述源节点簇的拥塞信息,其中,所述第四节点属于不同于所述源节点簇的其它节点簇。
  12. 根据权利要求1至5中任一项所述的方法,其特征在于,所述第一节点为所述源节点,所述方法还包括:
    根据所述目标路由路径,发送所述数据包。
  13. 根据权利要求12所述的方法,其特征在于,所述根据所述目标路由路径,发送所述数据包,包括:
    发送所述数据包,其中,所述数据包中携带所述目标路由路径的信息,以便于接收到所述数据包的节点根据所述数据包中携带的所述目标路由路径的信息转发所述数据包。
  14. 根据权利要求12或13所述的方法,其特征在于,所述发送所述数据包,包括:
    确定所述源节点的多个相邻节点的拥塞信息;
    根据所述多个相邻节点的拥塞信息,从所述多个相邻节点中确定所述数据包的下一跳节点;
    向所述下一跳节点发送所述数据包。
  15. 根据权利要求14所述的方法,其特征在于,所述多个相邻节点的拥塞信息包括所述多个相邻节点中的每个相邻节点的拥塞信息;
    所述根据所述多个相邻节点的拥塞信息,从所述多个相邻节点中确定所 述数据包的下一跳节点,包括:
    根据所述多个相邻节点中每个候选节点的拥塞信息,从所述多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
    若所述至少一个相邻节点的个数为多个,确定所述目标路由路径中所述源节点簇对应的下一跳节点簇,并将所述至少一个相邻节点中与所述下一跳节点簇距离最近的相邻节点确定为所述下一跳节点。
  16. 一种路由数据包的方法,其特征在于,包括:
    数据包的源节点向控制节点发送路径确定请求,所述路径确定请求用于请求所述控制节点确定所述数据包的路由路径,其中,所述源节点和所述控制节点属于源节点簇;
    接收所述控制节点根据所述路径确定请求发送的路由路径的信息,其中,所述路由路径的信息包括至少一个节点簇的信息;
    根据所述路由路径的信息,发送所述数据包。
  17. 根据权利要求16所述的方法,其特征在于,所述路由路径的信息包括所述至少一个节点簇中的每个节点簇的标识信息和所述至少一个节点簇的次序信息。
  18. 根据权利要求16或17所述的方法,其特征在于,所述路径确定请求携带所述数据包的目的节点的信息,以便于所述控制节点根据所述目的节点的信息确定所述目的节点所属的目的节点簇并根据所述源节点簇和所述目的节点簇确定所述路由路径。
  19. 根据权利要求16至18中任一项所述的方法,其特征在于,所述根据所述路由路径的信息,发送所述数据包,包括:
    发送所述数据包,其中,所述数据包携带所述路由路径的信息,以便于接收到所述数据包的节点根据所述数据包携带的所述路由路径的信息转发所述数据包。
  20. 根据权利要求16至19中任一项所述的方法,其特征在于,所述发送所述数据包,包括:
    确定所述源节点的多个相邻节点的拥塞信息;
    根据所述多个相邻节点的拥塞信息,从所述多个相邻节点中确定所述数据包的下一跳节点;
    向所述下一跳节点发送所述数据包。
  21. 根据权利要求20所述的方法,其特征在于,所述多个相邻节点的拥塞信息包括所述多个相邻节点中的每个相邻节点的拥塞信息;
    所述根据所述多个相邻节点的拥塞信息,从所述多个相邻节点中确定所述数据包的下一跳节点,包括:
    根据所述多个相邻节点中的每个相邻节点的拥塞信息,从所述多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
    若所述至少一个相邻节点的个数为多个,确定所述路由路径中所述源节点簇对应的下一跳节点簇,并将所述至少一个相邻节点中与所述下一跳节点簇距离最近的相邻节点确定为所述下一跳节点。
  22. 根据权利要求16至21中任一项所述的方法,其特征在于,所述方法还包括:
    向所述控制节点发送所述源节点的拥塞信息,以便于所述控制节点根据所述源节点的拥塞信息确定所述源节点簇的拥塞信息。
  23. 根据权利要求22所述的方法,其特征在于,在所述向所述控制节点发送所述源节点的拥塞信息之前,所述方法还包括:
    接收所述控制节点发送的信息上报指示,所述信息上报指示用于指示所述源节点向所述控制节点发送所述源节点的拥塞信息;
    所述向所述控制节点发送所述源节点的拥塞信息,包括:
    根据所述信息上报指示,向所述控制节点发送所述源节点的拥塞信息。
  24. 一种路由数据包的方法,其特征在于,包括:
    第二节点接收数据包,其中,所述数据包携带所述数据包的路由路径的信息,所述路由路径的信息包括至少一个节点簇的信息;
    根据所述路由路径的信息,确定所述数据包的下一跳节点;
    向所述下一跳节点发送所述数据包。
  25. 根据权利要求24所述的方法,其特征在于,所述路由路径的信息包括所述至少一个节点簇中的每个节点簇的标识信息和所述至少一个节点簇的次序信息;
    所述根据所述路由路径的信息,确定所述数据包的下一跳节点,包括:
    确定所述第二节点所属的节点簇;
    根据所述第二节点所属的节点簇和所述路由路径的信息,确定所述数据 包的下一跳节点簇;
    根据所述数据包的下一跳节点簇,确定所述数据包的下一跳节点。
  26. 根据权利要求25所述的方法,其特征在于,所述根据所述下一跳节点簇,确定所述数据包的下一跳节点,包括:
    确定所述第二节点的多个相邻节点的拥塞信息;
    根据所述下一跳节点簇和所述多个相邻节点的拥塞信息,确定所述数据包的下一跳节点。
  27. 根据权利要求26所述的方法,其特征在于,所述多个相邻节点的信息包括所述多个相邻节点中的每个相邻节点的信息;
    所述根据所述下一跳节点簇和所述多个相邻节点的拥塞信息,确定所述数据包的下一跳节点,包括:
    根据所述多个相邻节点中的每个相邻节点的拥塞信息,从所述多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
    若所述至少一个相邻节点的个数为多个,将所述至少一个相邻节点中与所述下一跳节点簇距离最近的相邻节点确定为所述下一跳节点。
  28. 一种节点,其特征在于,包括:
    第一确定单元,用于确定数据包的目的节点所属的目的节点簇;
    第二确定单元,用于确定所述数据包由源节点簇至所述第一确定单元确定的所述目的节点簇的多个可选路由路径,其中,所述数据包的源节点属于所述源节点簇,所述多个可选路由路径中的每个可选路由路径包括至少一个转发节点簇;
    第三确定单元,用于根据所述第二确定单元确定的所述多个可选路由路径中每个可选路由路径中包括的至少一个转发节点簇的拥塞信息,从所述多个可选路由路径中确定目标路由路径。
  29. 根据权利要求28所述的节点,其特征在于,所述目标路由路径表示所述数据包由所述源节点簇至所述目的节点簇的过程中依次经过的至少一个转发节点簇。
  30. 根据权利要求28或29所述的节点,其特征在于,所述第三确定单元具体用于:
    根据所述多个可选路由路径中每个可选路由路径包括的至少一个转发节点簇的拥塞信息,确定所述每个可选路由路径的拥塞状态;
    将所述多个可选路由路径中拥塞程度最小的可选路由路径确定为所述目标路由路径。
  31. 根据权利要求30所述的节点,其特征在于,所述拥塞信息包括最大缓存占用率BFM,每个可选路由路径的拥塞状态采用所述每个可选路由路径对应的BFM表示;
    所述第三确定单元具体用于:
    将第一可选路由路径对应的BFM确定为所述第一可选路由路径中包括的至少一个转发节点簇的BFM之和,其中,所述多个可选路由路径包括所述第一可选路由路径,所述至少一个转发节点簇中的每个转发节点簇的BFM由所述每个转发节点簇中包括的至少一个节点的BFM确定。
  32. 根据权利要求28至31中任一项所述的节点,其特征在于,所述第三确定单元具体用于:
    根据所述多个可选路由路径中每个可选路由路径包括的至少一个节点簇的拥塞信息和所述每个可选路由路径包括的转发节点簇的个数,从所述多个可选路由路径中确定所述目标路由路径。
  33. 根据权利要求28至32中任一项所述的节点,其特征在于,所述节点为所述源节点簇包括的不同于所述源节点的其它节点;
    所述节点还包括:
    第一接收单元,用于在所述第一确定单元确定所述数据包的目的节点所属的目的节点簇之前,接收所述源节点发送的路径确定请求,所述路径确定请求用于请求所述第一节点确定所述数据包的路由路径;
    所述第一确定单元具体用于:
    根据所述第一接收单元接收的所述路径确定请求,确定所述目的节点所属的目的节点簇;
    所述节点还包括:
    第一发送单元,用于向所述源节点发送所述第三确定单元确定的所述目标路由路径的信息,以便于所述源节点根据所述目标路由路径的信息发送所述数据包。
  34. 根据权利要求33所述的节点,其特征在于,所述第一接收单元还用于接收第二节点发送的至少一个转发节点簇的拥塞信息,其中,所述至少一个转发节点簇包括所述第二节点。
  35. 根据权利要求34所述的节点,其特征在于,所述第一接收单元具体用于接收所述第二节点广播的所述第二节点所属的转发节点簇的拥塞信息。
  36. 根据权利要求33至35中任一项所述的节点,其特征在于,所述源节点簇由所述第一节点和除所述第一节点之外的至少一个第三节点组成;
    所述第一接收单元还用于接收所述至少一个第三节点中的每个第三节点发送的所述每个第三节点的拥塞信息;
    所述第一确定单元还用于根据所述第一接收单元接收的所述至少一个第三节点中的每个第三节点的拥塞信息,确定所述源节点簇的拥塞信息。
  37. 根据权利要求36所述的节点,其特征在于,所述第一发送单元还用于在所述第一接收单元接收所述至少一个第三节点中的每个第三节点发送的所述每个第三节点的拥塞信息之前,向所述至少一个第三节点中的每个第三节点发送信息上报指示,所述信息上报指示用于指示每个第三节点向所述第一节点发送所述每个第三节点的拥塞信息;
    所述第一接收单元具体用于接收所述至少一个第三节点中的每个第三节点根据所述第一发送单元发送的所述信息上报指示发送的所述每个第三节点的拥塞信息。
  38. 根据权利要求36或37所述的节点,其特征在于,所述第一发送单元还用于向至少一个第四节点发送所述源节点簇的拥塞信息,其中,所述第四节点属于不同于所述源节点簇的其它节点簇。
  39. 根据权利要求28至32中任一项所述的节点,其特征在于,所述节点为所述源节点,所述节点还包括:
    第二发送单元,用于根据所述第三确定单元确定的所述数据包的目标路由路径,发送所述数据包。
  40. 根据权利要求39所述的节点,其特征在于,所述第二发送单元具体用于发送所述数据包,其中,所述数据包中携带所述目标路由路径的信息,以便于接收到所述数据包的节点根据所述数据包中携带的所述目标路由路径的信息转发所述数据包。
  41. 根据权利要求39或40所述的节点,其特征在于,所述第二发送单元包括:
    第一确定子单元,用于确定所述源节点的多个相邻节点的拥塞信息;
    第二确定子单元,用于根据所述第一确定子单元确定的所述多个相邻节点的拥塞信息,从所述多个相邻节点中确定所述数据包的下一跳节点;
    发送子单元,用于向所述第二确定子单元确定的所述下一跳节点发送所述数据包。
  42. 根据权利要求41所述的节点,其特征在于,所述多个相邻节点的拥塞信息包括所述多个相邻节点中的每个相邻节点的拥塞信息;
    所述第二确定子单元具体用于:
    根据所述多个相邻节点中每个候选节点的拥塞信息,从所述多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
    若所述至少一个相邻节点的个数为多个,确定所述目标路由路径中所述源节点簇对应的下一跳节点簇,并将所述至少一个相邻节点中与所述下一跳节点簇距离最近的相邻节点确定为所述下一跳节点。
  43. 一种节点,其特征在于,包括:
    发送单元,用于向控制节点发送路径确定请求,所述路径确定请求用于请求所述控制节点确定数据包的路由路径,其中,所述节点和所述控制节点属于源节点簇;
    接收单元,用于接收所述控制节点根据所述发送单元发送的所述路径确定请求发送的路由路径的信息,其中,所述路由路径的信息包括至少一个节点簇的信息;
    所述发送单元还用于根据所述接收单元接收的所述路由路径的信息,发送所述数据包。
  44. 根据权利要求43所述的节点,其特征在于,所述路由路径的信息包括所述至少一个节点簇中的每个节点簇的标识信息和所述至少一个节点簇的次序信息。
  45. 根据权利要求43或44所述的节点,其特征在于,所述路径确定请求携带所述数据包的目的节点的信息,以便于所述控制节点根据所述目的节点的信息确定所述目的节点所属的目的节点簇并根据所述源节点簇和所述目的节点簇确定所述路由路径。
  46. 根据权利要求43至45中任一项所述的节点,其特征在于,所述发送单元具体用于:
    发送所述数据包,其中,所述数据包携带所述路由路径的信息,以便于 接收到所述数据包的节点根据所述数据包携带的所述路由路径的信息转发所述数据包。
  47. 根据权利要求43至46中任一项所述的节点,其特征在于,所述发送单元包括:
    第一确定子单元,用于确定所述节点的多个相邻节点的拥塞信息;
    第二确定子单元,用于根据所述第一确定子单元确定的所述多个相邻节点的拥塞信息,从所述多个相邻节点中确定所述数据包的下一跳节点;
    发送子单元,用于向所述第二确定子单元确定的所述下一跳节点发送所述数据包。
  48. 根据权利要求47所述的节点,其特征在于,所述多个相邻节点的拥塞信息包括所述多个相邻节点中的每个相邻节点的拥塞信息;
    所述第二确定子单元具体用于:
    根据所述多个相邻节点中的每个相邻节点的拥塞信息,从所述多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
    若所述至少一个相邻节点的个数为多个,确定所述路由路径中所述源节点簇对应的下一跳节点簇,并将所述至少一个相邻节点中与所述下一跳节点簇距离最近的相邻节点确定为所述下一跳节点。
  49. 根据权利要求43至48中任一项所述的节点,其特征在于,所述发送单元还用于向所述控制节点发送所述节点的拥塞信息,以便于所述控制节点根据所述节点的拥塞信息确定所述源节点簇的拥塞信息。
  50. 根据权利要求49所述的节点,其特征在于,所述接收单元还用于在所述发送单元向所述控制节点发送所述节点的拥塞信息之前,接收所述控制节点发送的信息上报指示,所述信息上报指示用于指示所述节点向所述控制节点发送所述源节点的拥塞信息;
    所述发送单元还用于根据所述接收单元接收的所述信息上报指示,向所述控制节点发送所述节点的拥塞信息。
  51. 一种节点,其特征在于,包括:
    接收单元,用于接收数据包,其中,所述数据包携带所述数据包的路由路径的信息,所述路由路径的信息包括至少一个节点簇的信息;
    确定单元,用于根据所述接收单元接收的所述路由路径的信息,确定所述数据包的下一跳节点;
    发送单元,用于向所述确定单元确定的所述下一跳节点发送所述数据包。
  52. 根据权利要求51所述的节点,其特征在于,所述路由路径的信息包括所述至少一个节点簇中的每个节点簇的标识信息和所述至少一个节点簇的次序信息;
    所述确定单元包括:
    第一确定子单元,用于确定所述第二节点所属的节点簇;
    第二确定子单元,用于根据所述第一确定子单元确定的所述第二节点所属的节点簇和所述路由路径的信息,确定所述数据包的下一跳节点簇;
    第三确定子单元,用于根据所述第二确定子单元确定的所述数据包的下一跳节点簇,确定所述数据包的下一跳节点。
  53. 根据权利要求52所述的节点,其特征在于,所述第三确定子单元具体用于:
    确定所述第二节点的多个相邻节点的拥塞信息;
    根据所述下一跳节点簇和所述多个相邻节点的拥塞信息,确定所述数据包的下一跳节点。
  54. 根据权利要求53所述的节点,其特征在于,所述多个相邻节点的信息包括所述多个相邻节点中的每个相邻节点的信息;
    所述第三确定子单元具体用于:
    根据所述多个相邻节点中的每个相邻节点的拥塞信息,从所述多个相邻节点中确定处于非拥塞状态的至少一个相邻节点;
    若所述至少一个相邻节点的个数为多个,将所述至少一个相邻节点中与所述下一跳节点簇距离最近的相邻节点确定为所述下一跳节点。
  55. 一种通信系统,其特征在于,包括如权利要求28至42中任一项所述的节点和如权利要求52至54中任一项所述的节点。
  56. 一种通信系统,其特征在于,包括如权利要求43至50中任一项所述的节点和如权利要求52至54中任一项所述的节点。
PCT/CN2014/091846 2014-11-21 2014-11-21 路由数据包的方法、节点和通信系统 WO2016078070A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2014/091846 WO2016078070A1 (zh) 2014-11-21 2014-11-21 路由数据包的方法、节点和通信系统
CN201480037572.5A CN105814850B (zh) 2014-11-21 2014-11-21 路由数据包的方法、节点和通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/091846 WO2016078070A1 (zh) 2014-11-21 2014-11-21 路由数据包的方法、节点和通信系统

Publications (1)

Publication Number Publication Date
WO2016078070A1 true WO2016078070A1 (zh) 2016-05-26

Family

ID=56013093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/091846 WO2016078070A1 (zh) 2014-11-21 2014-11-21 路由数据包的方法、节点和通信系统

Country Status (2)

Country Link
CN (1) CN105814850B (zh)
WO (1) WO2016078070A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124825A (zh) * 2021-10-26 2022-03-01 中国联合网络通信集团有限公司 一种数据传输的方法、系统、装置及存储介质
WO2024060730A1 (zh) * 2022-09-20 2024-03-28 华为技术有限公司 流量控制方法和装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311441B (zh) * 2020-09-30 2022-09-27 中国人民解放军陆军工程大学 低轨星座网络中的拥塞避免路由方法
CN116405555B (zh) * 2023-03-08 2024-01-09 阿里巴巴(中国)有限公司 数据传输方法、路由节点、处理单元和片上系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616063A (zh) * 2008-06-26 2009-12-30 华为技术有限公司 一种路由路径建立方法、系统和装置
CN102223671A (zh) * 2010-04-15 2011-10-19 华为技术有限公司 无线多跳网络中数据传输的方法和通信设备
US20140198770A1 (en) * 2011-09-20 2014-07-17 Fujitsu Limited Node device, communication method, and storage medium
US20140254352A1 (en) * 2013-03-11 2014-09-11 Dell Products L.P. System and method for rapid vlt connection failure handling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616063A (zh) * 2008-06-26 2009-12-30 华为技术有限公司 一种路由路径建立方法、系统和装置
CN102223671A (zh) * 2010-04-15 2011-10-19 华为技术有限公司 无线多跳网络中数据传输的方法和通信设备
US20140198770A1 (en) * 2011-09-20 2014-07-17 Fujitsu Limited Node device, communication method, and storage medium
US20140254352A1 (en) * 2013-03-11 2014-09-11 Dell Products L.P. System and method for rapid vlt connection failure handling

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124825A (zh) * 2021-10-26 2022-03-01 中国联合网络通信集团有限公司 一种数据传输的方法、系统、装置及存储介质
CN114124825B (zh) * 2021-10-26 2023-05-16 中国联合网络通信集团有限公司 一种数据传输的方法、系统、装置及存储介质
WO2024060730A1 (zh) * 2022-09-20 2024-03-28 华为技术有限公司 流量控制方法和装置

Also Published As

Publication number Publication date
CN105814850A (zh) 2016-07-27
CN105814850B (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
EP3259885B1 (en) Traffic engineering feeder for packet switched networks
US7570628B2 (en) Methods and apparatus for providing a dynamic on-demand routing protocol
US8982708B1 (en) Priority aware dynamic routing protocol for ad-hoc networks
WO2007016326A1 (en) Method and apparatus for maximizing data transmission capacity of a mesh network
JP2009517987A (ja) 無線通信ルートの品質を向上させる方法及びシステム
WO2016078070A1 (zh) 路由数据包的方法、节点和通信系统
WO2022213817A1 (zh) 路由方法和路由装置
Sankaranarayanan Early detection congestion and control routing in MANET
US10205665B2 (en) Mesh network nodes configured to alleviate congestion in cellular network
CN105634973B (zh) 基于负载均衡的路由方法和设备
KR20120017972A (ko) 무선 메쉬 네트워크에서 데이터 전송의 혼잡 상황을 통지/회피하는 방법 및 이를 위한 메쉬 노드
US20170208529A1 (en) Packet processing method for software-defined network
Bhatia Performance analysis of AODV based congestion control protocols in MANET
JP2006197473A (ja) ノード
KR101758326B1 (ko) 네트워크에서의 부하 분산 방법
WO2016078071A1 (zh) 通信系统、控制节点和通信方法
US20090296725A1 (en) Router device for efficient routing with congestion minimized
US20210092065A1 (en) Multihop network routing
US10965585B2 (en) Method for transmitting path load information and network node
KR102208873B1 (ko) 데이터 패킷에 관한 경로 정보를 취득하는 방법 및 디바이스
Pham et al. Gateway load balancing in future tactical networks
CN112770301A (zh) 无线网络中节点故障后的按需表和路由更新
KR20160139591A (ko) 라우팅 방법 및 그 장치
KR101670809B1 (ko) 다중 홉 구조 무선통신 시스템에서 부하 분산을 고려한 부모 노드 선택 방법 및 이를 위한 장치
CN104038436A (zh) 一种解决有线网络拥塞的路由选择方法

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: 14906328

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14906328

Country of ref document: EP

Kind code of ref document: A1