一种负载分担实现方法及装置与流程

文档序号:15455218发布日期:2018-09-15 00:55阅读:252来源:国知局
本发明涉及网络通信
技术领域
,尤其涉及一种负载分担实现方法及装置。
背景技术
:负载分担算法是指根据流量的五元组信息,按不同的hash(散列)算法得出hash值,并根据hash值将流量按等价路由数量负载分担。目前,路由节点之间采用等价路由进行负载分担的场景很常见。而一旦出现连续两个路由节点采用了相同的负载分担算法,则第二个路由节点的负载分担就会因流量已经被筛选过一次导致分担效果大幅度下降。以图1所示场景为例,r1的流量经过负载分担到r2和r3,r2接收到r1发送的流量后再次通过两条等价路由负载分担到r4。当r2接收到r1通过负载分担算法筛选过一次的流量时,若r2使用与r1相同的负载分担算法,则由于r2利用负载分担算法对该流量的五元组信息进行hash得到的hash值与r1利用负载分担算法对该流量的五元组信息进行hash得到的hash值相同,r2接收到的r1发送的流量均会通过同一条链路转发至r4,即r2和r4之间未实现负载分担,浪费了等价带宽。技术实现要素:本发明提供一种负载分担实现方法及装置,以解决现有负载分担方案中由于邻居路由节点之间使用相同负载分担算法导致的负载分担效果较差的问题。根据本发明的第一方面,提供一种负载分担实现方法,应用于路由节点,所述方法包括:接收邻居路由节点发送的负载分担算法通知报文,所述负载分担算法通知报文包括邻居路由节点使用的第一负载分担算法的标识;根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法;所述第二负载分担算法与所述第一负载分担算法为不同负载分担算法。结合第一方面,在第一种可能的实现方式中,所述根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法,包括:当所述邻居路由节点的优先级级别高于所述本地路由节点的优先级级别时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,选择出一种未被所述邻居路由节点使用的负载分担算法;将选择出的负载分担算法确定为所述本地路由节点使用的第二负载分担算法。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述从所述本地节点支持的负载分担算法中,选择出一种未被所述邻居路由节点使用的负载分担算法,包括:从所述本地路由节点支持的负载分担算法中选择一种未被所述邻居路由节点使用,且负载分担算法的标识最小的负载分担算法;或,从所述本地路由节点支持的负载分担算法中选择一种未被所述邻居路由节点使用,且负载分担算法的标识最大的负载分担算法。结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法,还包括:当所述邻居路由节点的优先级级别高于所述本地路由节点的优先级级别,且所述本地路由节点支持的负载分担算法中不存在未被所述邻居路由节点使用的负载分担算法时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,选择出一种使用次数最少的负载分担算法;将选择出的负载分担算法确定为所述本地路由节点使用的第二负载分担算法;其中,负载分担算法的使用次数为使用该负载分担算法,且优先级级别高于本地路由节点的优先级级别的邻居路由节点的数量。结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述接收邻居路由节点发送的负载分担算法通知报文之后,还包括:比较本地路由节点记录的全网mac地址与所述接收到的负载分担算法通知报文中包括的全网mac地址的大小;若所述记录的全网mac地址小于所述接收到的负载分担算法通知报文中包括的全网mac地址,则将所述记录的全网mac地址更新为所述接收到的负载分担算法通知报文中包括的全网mac地址;或,若所述记录的全网mac地址大于所述接收到的负载分担算法通知报文中包括的全网mac地址,则将记录的全网mac地址更新为所述接收到的负载分担算法通知报文中包括的全网mac地址;所述根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法,包括:当所述接收到的负载分担算法通知报文中包括的全网mac地址均与所述记录的全网mac地址相同时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法。根据本发明的第二方面,提供一种负载分担实现装置,应用于路由节点,所述装置包括:接收单元,用于邻居路由节点发送的负载分担算法通知报文,所述负载分担算法通知报文包括邻居路由节点使用的第一负载分担算法的标识;控制单元,用于根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法;所述第二负载分担算法与所述第一负载分担算法为不同负载分担算法。结合第二方面,在第一种可能的实现方式中,所述负载分担算法通知报文还包括所述邻居路由节点的优先级级别;所述控制单元,具体用于当所述邻居路由节点的优先级级别高于所述本地路由节点的优先级级别时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,选择出一种未被所述邻居路由节点使用的负载分担算法;将选择出的负载分担算法确定为所述本地路由节点使用的第二负载分担算法。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制单元,具体用于从所述本地路由节点支持的负载分担算法中选择一种未被所述邻居路由节点使用,且负载分担算法的标识最小的负载分担算法;或,所述控制单元,具体用于从所述本地路由节点支持的负载分担算法中选择一种未被所述邻居路由节点使用,且负载分担算法的标识最大的负载分担算法。结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述控制单元,还用于当所述邻居路由节点的优先级级别高于所述本地路由节点的优先级级别,且所述本地路由节点支持的负载分担算法中不存在未被所述邻居路由节点使用的负载分担算法时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,选择出一种使用次数最少的负载分担算法;将选择出的负载分担算法确定为所述本地路由节点使用的第二负载分担算法;其中,负载分担算法的使用次数为使用该负载分担算法,且优先级级别高于本地路由节点的优先级级别的邻居路由节点的数量。结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述负载分担算法通知报文中还包括全网mac地址,所述全网mac地址的初始值为报文发送方节点的mac地址;所述装置还包括:记录单元,用于记录全网mac地址;比较单元,用于比较本地路由节点记录的全网mac地址与所述接收到的负载分担算法通知报文中包括的全网mac地址的大小;所述记录单元,还用于若所述记录的全网mac地址小于所述接收到的负载分担算法通知报文中包括的全网mac地址,则将所述记录的全网mac地址更新为所述接收到的负载分担算法通知报文中包括的全网mac地址;或,所述记录单元,还用于若所述记录的全网mac地址小于所述接收到的负载分担算法通知报文中包括的全网mac地址,则将所述记录的全网mac地址更新为所述接收到的负载分担算法通知报文中包括的全网mac地址;所述控制单元,具体用于当所述接收到的负载分担算法通知报文中包括的全网mac地址均与所述记录的全网mac地址相同时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法。应用本发明公开的技术方案,通过接收邻居路由节点发送的负载分担算法通知报文,进而,根据接收到的负载分担算法通知报文中包括的第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,确定出本地路由节点使用的第二负载分担算法,以使本地路由节点使用的负载分担算法与邻居路由节点使用的负载分担算法不同,避免了由于邻居路由节点之间使用相同负载分担算法导致的负载分担效果下降,优化了组网的负载分担效果。附图说明图1是一种负载分担组网的示意图;图2是本发明实施例提供的一种负载分担实现方法的流程示意图;图3是本发明实施例提供的一种负载分担实现装置的结构示意图;图4是本发明实施例提供的另一种负载分担实现装置的结构示意图;图5是本发明实施例提供的一种负载分担实现装置的硬件结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。请参见图2,为本发明实施例提供的一种负载分担实现方法的流程示意图,其中,该负载分担实现方法可以应用于路由节点(本文中称为本地路由节点),如图2所示,该负载分担实现方法可以包括以下步骤:步骤201、接收邻居路由节点发送的负载分担算法通知报文,该负载分担算法通知报文包括邻居路由节点使用的第一负载分担算法的标识。需要说明的是,在本发明实施例中,本地路由节点或邻居路由节点并不特指某一个固定的路由节点,本地路由节点和邻居路由节点是相对而言的。举例来说,以图1所示场景为例,当r1为本地路由节点时,邻居路由节点包括r2和r3;当r2为本地路由节点时,邻居路由节点包括r1和r4。本发明实施例中,为了避免直连的路由节点之间使用相同的负载分担算法导致的负载分担效果降低,直连的路由节点之间可以相互通知本节点使用的负载分担算法。相应地,在本发明实施例中,本地路由节点可以接收邻居路由节点发送的负载分担算法通知报文。仍以图1所示场景为例,r1可以接收r2和r3发送的负载分担算法通知报文;r2可以接收到r1和r4发送的负载分担算法通知报文。其中,该负载分担算法通知报文中可以携带有邻居路由节点的负载分担算法(本文中称为第一负载分担算法)的标识,该负载分担算法的标识与负载分担算法一一对应,即相同的负载分担算法的标识相同,不同的负载分担算法的标识不同。例如,可以对各路由节点支持的负载分担算法进行统一编号,并将该编号作为负载分担算法的标识。需要说明的是,在本发明实施例中,第一负载分担算法并不特指某一种固定的负载分担算法,当邻居路由设备的数量为多个时,该第一负载分担算法也可以包括多个不同的负载分担算法。举例来说,仍以图1所示场景为例,当本地路由节点为r2时,邻居路由节点为r1和r4,r1使用的负载分担算法为负载分担算法1,r4使用的负载分担算法为负载分担算法2,则对于r2而言,第一负载分担算法可以包括负载分担算法1和负载分担算法4。在本发明其中一个实施例中,上述负载分担算法通知报文可以为lldp报文。在该实施例中,直连的路由节点之间可以通过lldp(linklayerdiscoveryprotocol,链路层发现协议)协议进行负载分担算法通知,即对lldp协议进行扩展,在lldp报文中新增一种tlv(type/length/value,类型/长度/值),该新增tlv可以用于携带负载分担算法的标识信息。应该认识到,在本发明实施例中,负载分担算法通知报文并不限于lldp报文,也可以新定义一种专门用于进行负载分担算法通知的报文格式,其具体实现在此不做赘述。需要说明的是,由于本地路由节点和邻居路由节点是相对而言的,对于本地路由节点的任一邻居路由节点而言,该本地路由节点也是该邻居路由节点的邻居路由节点,因此,本地路由节点也需要向邻居路由节点发送负载分担算法通知报文。本发明实施例中,本地路由节点可以定时(如周期性地)向邻居路由节点发送负载分担算法通知报文,或者,本地路由节点可以在本节点使用的负载分担算法发生变化或检测到新的邻居路由节点加入时向邻居路由节点发送负载分担算法通知报文。步骤202、根据第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,确定出本地路由节点使用的第二负载分担算法;其中,该第二负载分担算法与第一负载分担算法为不同负载分担算法。本发明实施例中,本地路由节点接收到邻居路由节点发送的负载分担算法时,可以获取接收到的负载分担算法中携带的第一负载分担算法的标识,以确定邻居路由节点使用的负载分担算法,进而,根据第一负载分担算法的标识,从本地路由节点支持的负载分担算法中选择一个未被邻居节点使用的负载分担算法,确定为本地路由节点使用的负载分担算法(本文中称为第二负载分担算法),以使本地路由节点使用的负载分担算法与邻居路由节点使用的负载分担算法不同,优化组网的负载分担效果。需要说明的是,在本发明实施例中,当本地路由节点根据第一负载分担算法的标识确定本地路由节点使用的负载分担算法与各邻居路由节点使用的负载分担算法均不相同时,本地路由节点可以不改变本节点使用的负载分担算法。可见,在本发明实施例中,通过直连的路由节点之间相互通知本节点使用的负载分担算法,进而,本地路由节点可以根据邻居路由节点使用的负载分担算法以及本地路由节点支持的负载分担算法,选择一个未被邻居路由节点使用的负载分担算法作为本地路由节点使用的负载分担算法,避免了由于直连的路由节点之间使用相同负载分担算法导致的负载分担效果下降,优化了组网的负载分担效果。在本发明其中一个实施例中,上述负载分担算法通知报文中包括邻居路由节点的优先级级别。相应地,上述根据第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,确定出本地路由节点使用的第二负载分担算法,可以包括:当邻居路由节点的优先级级别高于本地路由节点的优先级级别时,根据第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,选择出一种未被邻居路由节点使用的负载分担算法;将选择出的负载分担算法确定为本地路由节点使用的第二负载分担算法。在该实施例中,考虑到对于直连的两个路由节点,其中一个路由节点会接收到另一个路由节点发送的负载分担算法通知报文,当该两个路由节点使用的负载分担算法相同,且该两个路由节点均进行负载分担算法更新时,该两个路由节点可能会选择相同的负载分担算法进行更新,导致负载分担算法更新后该两个路由节点使用的负载分担算法仍然相同,进而该两个路由节点需要再次进行负载分担算法更新,负载分担算法更新效率较低。针对上述问题,为了提高负载分担算法更新效率,路由节点发送的负载分担算法通知报文中还可以携带路由节点的优先级级别,当存在直连的路由节点使用相同的负载分担算法时,该直连的路由节点中优先级级别较高的路由节点可以不需要进行负载分担算法更新,而是由优先级级别较低的路由节点进行负载分担算法更新。在一个示例中,路由节点的优先级级别可以通过路由节点的mac(mediaaccesscontrol,媒体访问控制)地址表征。其中,路由节点的mac地址越大,路由节点的优先级级别越高;或,路由节点的mac地址越小,路由节点的优先级级别越高。需要说明的是,在本发明实施例中,若未特殊说明,所提及的路由节点的mac地址均指路由节点的桥mac地址,本发明实施例后续不再复述。应该认识到,在本发明实施例中,路由节点的优先级级别并不限于通过路由节点的mac地址表征,例如,路由节点的优先级级别可以由用户(如管理员)预先配置在各路由节点中,或者,路由节点的优先级级别可以通过路由节点的设备序列号等信息表征等,其具体实现在此不做赘述。相应地,在该实施例中,当本地路由节点接收到邻居路由节点发送的负载分担算法通知报文时,路由节点可以根据负载分担算法通知报文中包括的邻居路由节点的优先级级别确定邻居路由节点的优先级级别是否高于本地路由节点的优先级级别。当邻居路由节点的优先级级别高于本地路由节点的优先级级别时,本地路由节点可以从本地路由节点支持的负载分担算法中选择一种未被优先级级别高于本地路由节点的优先级级别的邻居路由节点使用的负载分担算法,并将该负载分担算法确定为本节点使用的负载分担算法(即第二负载分担算法)。在该实施例的一种实施方式中,上述从本地路由节点支持的负载分担算法中选择出一种未被邻居路由节点使用的负载分担算法,可以包括:从本地路由节点支持的负载分担算法中选择一种未被优先级级别高于本地路由节点的优先级级别的邻居路由节点使用,且负载分担算法的标识最小的负载分担算法。在该实施方式中,当本地路由节点确定邻居路由节点的优先级级别高于本地路由节点的优先级级别时,本地路由节点可以根据优先级级别高于本地路由节点的优先级级别的邻居路由节点使用的负载分担算法,从本地路由节点支持的负载分担算法中选择一种未被该邻居路由节点使用,且负载分担算法的标识最小的负载分担算法,并将该负载分担算法作为本地路由节点使用的负载分担算法,从而可以提高各路由节点使用的负载分担算法的可控性。在该实施例的另一种实施方式中,上述从本地路由节点支持的负载分担算法中选择出一种未被邻居路由节点使用的负载分担算法,可以包括:从本地路由节点支持的负载分担算法中选择一种未被优先级级别高于本地路由节点的优先级级别的邻居路由节点使用,且负载分担算法的标识最大的负载分担算法。其中,该实施方式的具体实现可以参见上一实施方式中的相关描述,本发明实施例在此不做赘述。应该认识到,在本发明实施例中,本地路由节点选择使用的负载分担算法时,并不限于上述实施方式中描述的方式,例如,本地路由节点也可以随机从本地路由节点支持的负载分担算法中选择一种未被邻居路由节点使用的负载分担算法,其具体实现在此不做赘述。此外,需要说明的是,在本发明实施例中,当本地路由节点根据接收到邻居路由节点发送的负载分担算法通知报文确定本地路由节点使用的负载分担算法与各优先级级别高于本地路由节点的优先级级别的邻居路由节点使用的负载分担算法均不相同时,本地路由节点可以不改变本地路由节点使用的负载分担算法。本发明实施例中,考虑到当本地路由节点支持的负载分担算法较少,且本地路由节点的邻居路由节点较多时,可能会存在本地路由节点支持的负载分担算法均被邻居路由节点使用的情况,在情况下,为了尽量降低由于直连的路由节点使用相同负载分担算法对组网负载分担效果的影响,本地路由节点可以从本地路由节点支持的负载分担算法中选择一种使用次数最少的负载分担算法作为本节点使用的负载分担算法。相应地,在本发明其中一个实施例中,上述根据第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,确定出本地路由节点使用的第二负载分担算法,还可以包括:当邻居路由节点的优先级级别高于本地路由节点的优先级级别,且本地路由节点支持的负载分担算法中不存在未被优先级级别高于本地路由节点的优先级级别的邻居路由节点使用的负载分担算法时,从本地路由节点支持的负载分担算法中选择一种使用次数最少的负载分担算法,并将选择出的负载分担算法确定为本地路由节点使用的负载分担算法(即第二负载分担算法)。在该实施例中,当路由节点接收到邻居路由节点发送的负载分担算法通知报文,且根据接收到的负载分担算法通知报文中包括的优先级级别确定邻居路由节点的优先级级别高于本地路由节点的优先级级别时,本地路由节点可以根据负第一负载分担算法的标识,确定该邻居路由节点使用的负载分担算法。若本地路由节点支持的负载分担算法中不存在未被优先级级别高于本地路由节点的优先级级别的邻居路由节点使用的负载分担算法,则本地路由节点可以统计本地路由节点支持的各负载分担算法的使用次数,并从本地路由节点支持的负载分担算法中选择一种使用次数最少的负载分担算法作为本地路由节点使用的负载分担算法。其中,在该实施中,对于本地路由节点支持的任一负载分担算法,该负载分担算法的使用次数可以为使用该负载分担算法,且优先级级别高于本地路由节点的优先级级别的邻居路由节点的数量。进一步地,在本发明实施例中,为了实现整个组网的信息同步,保证组网中各路由节点均参与负载分担算法的更新,优化整个组网的负载分担效果,负载分担算法通知报文中还可以包括全网mac地址信息,该全网mac地址信息用于记录组网中mac地址最大(或最小,下文中以最大为例)的路由节点的mac地址信息;其中,负载分担算法通知报文中包括的全网mac地址信息的初始值为报文发送方节点的mac地址。相应地,在本发明其中一个实施例中,上述接收邻居路由节点发送的负载分担算法通知报文之后,还可以包括:比较本地路由节点记录的全网mac地址与接收到的负载分担算法通知报文中包括的全网mac地址的大小;若本地路由节点记录的全网mac地址小于接收到的负载分担算法通知报文中包括的全网mac地址,则将本地路由节点记录的全网mac地址更新为该接收到的负载分担算法通知报文中包括的全网mac地址。在该实施例中,上述根据第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,确定出本地路由节点使用的第二负载分担算法,可以包括:当接收到的负载分担算法通知报文中包括的全网mac地址均与本地路由节点记录的全网mac地址相同时,根据第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,确定出本地路由节点使用的第二负载分担算法。在该实施例中,本地路由节点可以记录全网mac地址,该全网mac地址的初始值为本地路由节点的mac地址。当本地路由节点接收到邻居路由节点发送的负载分担算法通知报文时,可以获取其中包括的全网mac地址(下文中称为第一全网mac地址),并比较该全网mac地址与本地路由节点记录的全网mac地址(下文中称为第二全网mac地址)的大小;若该第一全网mac地址大于该第二全网mac地址时,则将本地路由节点记录的全网mac地址更新为该第一全网mac地址。通过上述处理,最终各负载分担算法通知报文中包括的全网mac地址可以均更新为组网中mac地址最大的路由节点的mac地址。在该实施例中,当本地路由节点接收到的负载分担算法通知报文中包括的全网mac地址均与本地路由节点记录的全网mac地址相同时,本地路由节点确定全网信息已同步,此时,本地路由节点可以根据接收到的负载分担算法通知报文以及本地路由节点支持的负载分担算法确定本地路由节点使用的负载分担算法,其具体实现方式可以参见上述实施例中的相关描述,本发明实施例在此不再赘述。需要说明的是,在本发明实施例中,当本地路由节点按照上述方式进行了负载分担算法更新,并检测到接收到的负载分担算法通知报文中包括的全网mac地址发生了更新时,本地路由节点可以重新按照上述实施例中描述的方式进行负载分担算法更新,其具体实现在此不做赘述。为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实例对本发明实施例提供的技术方案进行说明。在该实施例中,通过路由节点的mac地址表征路由节点的优先级级别,其中,路由节点的mac地址越大,路由节点的优先级级别越高。在该实施例中,对lldp协议进行扩展,新增一种tlv,该tlv中携带有全网mac地址、本机mac地址以及负载分担算法值等信息。其中,全网mac地址用于记录全网中mac地址最大的路由节点的mac地址,其初始值与本机mac地址一致;本机mac地址用于记录发送lldp报文(扩展后的lldp报文)的路由节点的mac地址;负载分担算法值用于记录发送lldp报文的路由节点使用的负载分担算法的编号,其中,负载分担算法的编号与负载分担算法一一对应。在该实施例中,本地路由节点可以定时通过使能了lldp协议的接口发送lldp报文,并接收邻居路由节点发送的lldp报文。其中,若本地路由节点接收到的lldp报文中包括的全网mac地址大于本地路由节点记录的全网mac地址时,将本地路由节点记录的全网mac地址更新为该接收到的lldp报文中包括的全网mac地址。当本地路由节点接收到的lldp报文中包括的全网mac地址均与本地路由节点记录的全网mac地址相同时,本地路由节点可以记录接收到的lldp报文中包括的负载分担算法值(即各邻居路由节点使用的负载分担算法的编号)。其中,本地路由节点可以将各邻居路由节点使用的负载分担算法的编号记录为邻居负载负担状态表,其格式可以如下表所示:邻居路由节点的mac地址负载分担算法的编号mac1编号1mac2编号2……其中,邻居路由节点的mac地址可以根据本地路由节点接收到的lldp报文中包括的本机mac地址确定,负载分担算法的编号可以根据本地路由节点接收到的lldp报文中包括的负载分担算法值确定。在该实施例中,本地路由节点可以将本地路由节点的mac地址与本地路由节点记录的邻居负载负担状态表中各邻居路由节点的mac地址进行比较,并确定存在记录的邻居路由节点的mac地址大于本地路由节点的mac地址的表项时,根据该表项中记录的负载分担算法的编号,以及本地路由节点支持的负载分担算法,确定本地路由节点支持的负载分担算法中是否存在未被mac地址大于本地路由节点的邻居路由节点使用的负载分担算法。若存在,则从本地路由节点支持的负载分担算法中,选择一种未被mac地址大于本地路由节点的邻居路由节点使用,且负载分担算法的编号最小的负载分担算法,作为本地路由节点使用的负载分担算法;若不存在,则从本地路由节点支持的负载分担算法中,选择一种使用次数最少的负载分担算法,作为本地路由节点使用的负载分担算法。在该实施例中,当本地路由节点使用的负载分担算法发生了变化时,本地路由节点可以更新自身发送的lldp报文中包括的负载分担算法值。通过以上描述可以看出,在本发明实施例提供的技术方案中,通过接收邻居路由节点发送的负载分担算法通知报文,进而,根据接收到的负载分担算法通知报文中包括的第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,确定出本地路由节点使用的第二负载分担算法,以使本地路由节点使用的负载分担算法与邻居路由节点使用的负载分担算法不同,避免了由于邻居路由节点之间使用相同负载分担算法导致的负载分担效果下降,优化了组网的负载分担效果。请参见图3,为本发明实施例提供一种负载分担实现装置的结构示意图,其中,该装置可以应用于上述方法实施例中的路由节点,如图3所示,该负载分担实现装置可以包括:接收单元310,用于邻居路由节点发送的负载分担算法通知报文,所述负载分担算法通知报文包括邻居路由节点使用的第一负载分担算法的标识;控制单元320,用于根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法;所述第二负载分担算法与所述第一负载分担算法为不同负载分担算法。在可选实施例中,所述负载分担算法通知报文还包括所述邻居路由节点的优先级级别;所述控制单元320,具体用于当所述邻居路由节点的优先级级别高于所述本地路由节点的优先级级别时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,选择出一种未被所述邻居路由节点使用的负载分担算法;将选择出的负载分担算法确定为所述本地路由节点使用的第二负载分担算法。在可选实施例中,所述控制单元320,具体用于从所述本地路由节点支持的负载分担算法中选择一种未被所述邻居路由节点使用,且负载分担算法的标识最小的负载分担算法;或,所述控制单元320,具体用于从所述本地路由节点支持的负载分担算法中选择一种未被所述邻居路由节点使用,且负载分担算法的标识最大的负载分担算法。在可选实施例中,所述控制单元320,还用于当所述邻居路由节点的优先级级别高于所述本地路由节点的优先级级别,且所述本地路由节点支持的负载分担算法中不存在未被所述邻居路由节点使用的负载分担算法时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,选择出一种使用次数最少的负载分担算法;将选择出的负载分担算法确定为所述本地路由节点使用的第二负载分担算法;其中,负载分担算法的使用次数为使用该负载分担算法,且优先级级别高于本地路由节点的优先级级别的邻居路由节点的数量。在可选实施例中,所述负载分担算法通知报文中还包括全网mac地址,所述全网mac地址的初始值为报文发送方节点的mac地址;相应地,请一并参见图4,为本发明实施例提供的另一种负载分担实现装置的结构示意图,如图4所示,在图3所示负载分担实现装置的基础上,图4所示负载分担实现装置还可以包括:记录单元330,用于记录全网mac地址;比较单元340,用于所述本地路由节点发送的负载分担算法通知报文中包括的全网mac地址与所述接收到的负载分担算法通知报文中包括的全网mac地址的大小;所述记录单元330,还用于若所述记录的全网mac地址小于所述接收到的负载分担算法通知报文中包括的全网mac地址,则将所述记录的全网mac地址更新为所述接收到的负载分担算法通知报文中包括的全网mac地址;或,所述记录单元330,还用于若所述记录的全网mac地址小于所述接收到的负载分担算法通知报文中包括的全网mac地址,则将所述记录的全网mac地址更新为所述接收到的负载分担算法通知报文中包括的全网mac地址;所述控制单元320,具体用于当所述接收到的负载分担算法通知报文中包括的全网mac地址均与所述记录的全网mac地址相同时,根据所述第一负载分担算法的标识,从所述本地路由节点支持的负载分担算法中,确定出所述本地路由节点使用的第二负载分担算法。请参见图5,为本申请实施例提供的一种负载分担实现装置的硬件结构示意图。该负载分担实现装置可以包括处理器501、存储有机器可执行指令的机器可读存储介质502。处理器501与机器可读存储介质502可经由系统总线503通信。并且,通过读取并执行机器可读存储介质502中与负载分担实现逻辑对应的机器可执行指令,处理器501可执行上文描述的负载分担实现方法。本文中提到的机器可读存储介质502可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。本申请实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图5中的机器可读存储介质502,所述机器可执行指令可由负载分担实现装置中的处理器501执行以实现以上描述的负载分担实现方法。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。由上述实施例可见,通过接收邻居路由节点发送的负载分担算法通知报文,进而,根据接收到的负载分担算法通知报文中包括的第一负载分担算法的标识,从本地路由节点支持的负载分担算法中,确定出本地路由节点使用的第二负载分担算法,以使本地路由节点使用的负载分担算法与邻居路由节点使用的负载分担算法不同,避免了由于邻居路由节点之间使用相同负载分担算法导致的负载分担效果下降,优化了组网的负载分担效果。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1