路由数据包的方法、节点和通信系统与流程

文档序号:17386132发布日期:2019-04-13 00:10阅读:155来源:国知局
路由数据包的方法、节点和通信系统与流程

本发明实施例涉及通信领域,并且更具体地,涉及路由数据包的方法、节点和通信系统。



背景技术:

片上网络(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)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1