具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的负载均衡的方法,应用于负载均衡的系统中,如图1所示,该系统包括:至少两台路由设备,图中仅示例性地示出了路由设备1、路由设备2以及路由设备N,其中,每两台路由设备之间均有多条链路相连,每两台路由设备通过连接的链路交互信息。
其中,在本发明实施例内,将正在发送LLDP报文的路由设备称为发送方设备,将正在接收LLDP报文的路由设备称为接收方设备,可以理解的是,一个路由设备可以在一个时间段内为发送方设备,在另一个时间段内为接收方设备。
需要说明的是,在发送方设备与接收方设备通过链路交互信息之前,需要开启各自的LLDP功能,当开启LLDP功能之后,两台路由设备之间就能够传输LLDP报文,以实现两台路由设备的信息交互。
其中,LLDP报文中包含类型长度值(Type-length-value,以下简称TLV)字段,TLV字段中携带有路由设备的相关信息,例如,TLV字段携带有路由设备类型信息和路由设备端口信息,路由设备接收来自与其相连路由设备的LLDP报文,并通过解析LLDP报文的TLV字段中携带的信息,来掌握网络中与其相连路由设备的基本信息,进而根据掌握的基本信息实现与相连路由设备的信息交互。
结合图1所示的系统,为了解决链路的工作状况发生变化,而导致链路资源利用不充分或者链路的数据包丢失,降低网络服务质量的问题,本发明实施例提供了一种负载均衡的方法,如图2所示,该方法包括:
步骤201、发送方设备在当前周期内,分别通过每条链路向接收方设备发送每条链路各自对应数量的链路层发现协议LLDP报文。
需要说明的是,发送方设备会周期性地向接收方设备发送LLDP报文,在每个周期内分别通过每条链路发送每条链路各自对应数量的LLDP报文。例如,第一周期为5秒,在第一周期内,发送方设备通过第一条链路向接收方设备发送10个LLDP报文,通过第二条链路向接收方设备发送15个报文。第二周期为10秒,在第二周期内,发送方设备通过第一条链路向接收方设备发送20个LLDP报文,通过第二条链路向接收方设备发送25个报文。
其中,发送方设备发送的LLDP报文中包含TLV字段。在本发明实施例中,对现有技术中的TLV字段进行了改进与拓展,在本发明实施例中,TLV字段中包括LLDP报文的周期序号、在周期序号对应的周期内需在LLDP报文对应的链路上发送LLDP报文的总数量、LLDP报文的序号。
例如,假设当前周期为第二周期,第二周期为10秒,发送方设备在第二周期内通过第一条链路向接收方设备发送10个LLDP报文,发送的第1个LLDP报文的TLV字段中包括如下内容:LLDP报文的周期序号为2,发送LLDP报文的总数量为10个,LLDP报文的序号为1。在第二周期内,发送方设备通过第二条链路向接收方设备发送20个LLDP报文,发送的第3个LLDP报文的TLV字段中包括如下内容:LLDP报文的周期序号为2,发送LLDP报文的总数量为20个,LLDP报文的序号为3。
步骤202、接收方设备根据在当前周期内在每条链路上接收的LLDP报文以及接收的LLDP报文的数量,分别计算每条链路的链路质量参数。
需要说明的是,在当前周期内,当发送方设备通过一条链路发送固定数量的LLDP报文时,接收方设备通过该链路接收LLDP报文的数量能够反映链路当前的工作状况,当链路工作状况良好时,接收方设备通过该链路成功接收LLDP报文的数量较大,当链路工作状况较差时,接收方设备通过该链路成功接收LLDP报文的数量较少,因此,接收方设备能够结合其通过每条链路实际接收LLDP报文的数量来计算各链路的链路质量参数。
例如,在第二周期内,发送方设备通过第一条链路向接收方设备发送20个LLDP报文,通过第二条链路向接收方设备发送20个LLDP报文,接收方设备通过第一条链路成功接收18个LLDP报文,而通过第二条链路仅仅成功接收8个LLDP报文。则通过接收LLDP报文的数量能够反映出,在第二周期内,第一条链路的工作状况良好,而第二条链路工作状况较差。
步骤203、接收方设备分别通过每条链路向发送方设备发送各链路的反馈LLDP报文。
其中,每条链路的反馈LLDP报文分别携带有各自的链路质量参数。
例如,接收方设备通过第一条链路发送第一条链路的反馈LLDP报文,其中携带有第一条链路的链路质量参数,通过第二条链路发送第二条链路的反馈LLDP报文,其中携带有第二条链路的链路质量参数。
需要说明的是,为保证反馈的及时有效性,接收方设备分别通过每条链路向发送方设备连续发送三次各链路的反馈LLDP报文。当反馈LLDP报文及时有效地被发送至发送方设备之后,发送方设备就能够立即根据反馈LLDP报文中携带的每条链路的链路质量参数来调整各个链路的业务比例,从而更加实时地实现了负载均衡。
步骤204、发送方设备根据每条链路的链路质量参数调节每条链路的业务比例。
本发明实施例提供的负载均衡的方法,与现有技术中链路的工作状况发生变化,而导致链路资源利用不充分或者链路的数据包丢失,降低了网络服务质量相比,接收方设备能够根据通过每条链路接收的LLDP报文的数量,分别计算每条链路的链路质量参数,并将每条链路的链路质量参数反馈给发送方设备,使得发送方设备根据每条链路的链路质量参数调节每条链路的业务比例。可见,即使链路的工作状况发生变化,发送方设备也能够根据接收方设备反馈的每条链路的链路质量参数,来调节各个链路的业务比例,实现的负载均衡,避免链路资源的浪费或者数据包丢失,提高了网络服务质量。
在本实施例提供的另一种实现方式中,对计算每条链路的链路质量参数的方法进行了说明,如图3所示,上述步骤202、接收方设备根据在当前周期内,在每条链路上接收的LLDP报文以及接收的LLDP报文的数量,分别计算每条链路的链路质量参数包括:
步骤301、接收方设备在当前周期内每接收到一个LLDP报文,确定在当前周期内,在当前接收的LLDP报文对应的链路上实际接收的LLDP报文的数量。
例如,当前周期为第二周期,在第二周期内,接收方设备已经在第一条链路上接收了序号为1、3的两个LLDP报文,在第二条链路上接收了序号为1、2、3、5的四个LLDP报文。接收方设备当前在第一条链路上接收到序号为5的一个LLDP报文,则确定在第二周期内,通过第一条链路当前实际接收的LLDP报文数量为3。
步骤302、接收方设备通过解析当前接收的LLDP报文,确定发送方设备在当前周期内,在当前接收的LLDP报文对应的链路上需发送的LLDP报文的总数量。
例如,当前周期为第二周期,在第二周期内,接收方设备在第一条链路上接收到一个LLDP报文,通过解析该LLDP报文中的TLV字段,确定该LLDP报文的周期序号为2,报文序号为5,在第二周期内需在第一条链路上发送10个LLDP报文,从而确定发送方设备在第二周期内,在第一条链路上需发送的LLDP报文的总数量为10。
步骤303、当接收方设备确定当前周期结束时,计算每条链路的链路质量参数。
需要说明的是,若接收方设备确定当前周期未结束,则重复执行步骤301至步骤302,直至接收方设备确定当前周期结束,则执行步骤303。
其中,接收方设备判断当前周期是否结束的方法可以实现为以下步骤:
接收方设备通过解析当前接收的LLDP报文,确定该LLDP报文的周期序号,并根据该LLDP报文的周期序号判断当前周期是否结束。
例如,当前周期为第二周期,在第二周期内,接收方设备在第一条链路上接收到一个LLDP报文,通过解析该LLDP报文中的TLV字段,确定该LLDP报文的周期序号为2,则接收方设备确定当前周期未结束,此时,接收方设备重复执行步骤301至步骤302,直至接收方设备在第一条链路上接收到一个LLDP报文,通过解析该LLDP报文中的TLV字段,确定该LLDP报文的周期序号为3,则确定第二周期已结束,此时,接收方设备计算每条链路的链路质量参数。
其中,链路质量参数为i为链路编号,NUMRx为在当前周期内,在链路i上实际接收的LLDP报文的数量,NUMTx为在当前周期内,在链路i上需发送的LLDP报文的总数量。
结合步骤302的举例,在第二周期内,接收方设备在第一条链路上接收到序号为1、3、5、6-10的LLDP报文,则在第一条链路上实际接收的LLDP报文的数量为8,而在第二周期内第一条链路需发送的LLDP报文的总数量为10,因此第一条链路的链路质量参数为8/10=80%。
在第二周期内,接收方设备在第二条链路上接收到序号为1、2、3、5的LLDP报文,则在第二条链路上实际接收的LLDP报文的数量为4,而在第二周期内,发送方设备在第二条链路上需发送的LLDP报文的总数量为20,因此第二条链路的链路质量参数为4/20=20%。
还需说明的是,在链路工作状况发生突变的应用场景中,为了保证链路质量参数能够更为准确地反映链路的工作状况,本发明实施例提供一种基于时间的平均链路质量参数,平均链路质量参数能够反映链路长期的平均工作状况。
平均链路质量参数的计算方式如下:
ave_L(i)=(1-w)*ave_L_old(i)+w*L(i)。
其中,ave_L(i)为当前第i条链路的平均链路质量参数,ave_L_old(i)为上一周期内第i条链路的平均链路质量参数,L(i)为第i条链路的实时链路质量参数,w为权值。
需要说明的是,w取值范围为(0,1],当w取值为1时,当前平均链路质量参数等于实时链路质量参数,w越大,当前平均链路质量参数越接近实时链路质量参数,链路工作状况突变的影响就越大,因此,w过大时,不能有效减小链路工作状况突变所带来的影响。w越小,当前平均链路质量参数越接近上一周期内的平均链路质量参数,因此,w过小时,当前平均链路质量参数不能合理反映链路当前的工作状况。例如,一条链路的工作状况突变为良好,该链路的实时链路质量参数L(i)为90%,能够承载1000M的业务量,而该链路在上一周期内的平均链路质量参数为10%,仅能承载100M业务量,w取值为0.8,则由计算得出该链路的当前平均链路质量参数ave_L(i)=(1-0.8)*10%+0.8*90%=74%,由于w取值较大,则该当前平均链路质量参数接近实时链路质量参数90%,在下一周期内,发送方设备根据此当前链路质量参数来增加该链路的业务量至1000M,但是由于该链路工作状况是突变为良好,则该链路仅仅在很短的时间段内能够承载1000M业务量,而发送方设备却在整个下一周期内增加该链路的业务量至1000M,因此,容易导致在下一周期内该链路拥塞,使数据包丢失。
因此,针对链路工作状况发生突变的应用场景,本发明实施例需要根据链路工作状况的稳定性来确定合适的权值。当链路工作状况不稳定,容易发生突变时,可以减小w的取值,以有效减小链路工作状况突变带来的影响;当链路工作状况较为稳定时,可以增大w的取值,以使当前平均链路质量参数合理反映链路当前的工作状况。
例如,在很长的一段时间内,一条链路工作状况不稳定,容易发生突变,该链路在第一周期和第二周期内的工作状况均为良好,在第一周期和第二周期内的平均链路质量参数均为90%,能够承载1000M的业务量,而在第三周期内的工作状况骤然变差,实时链路质量参数为10%,仅能够承载100M的业务量,到第四周期内,该链路的实际工作状况又恢复为良好,能够承载1000M的业务量。则本发明实施例将该链路的w减小至0.2,并在第三周期结束时,由计算得出该链路在第三周期内的当前平均链路质量参数如下:
ave_L(i)=(1-0.1)*90%+0.1*10%=82%。
可见,该当前平均链路质量参数反映了该链路在第三周期内的工作状况较为良好,则在第四周期内,发送方设备能够根据该当前平均链路质量参数调整该链路的业务量,假设发送方设备调整该链路的业务量为950M,则该链路在第四周期内将承载950M的业务量,而第四周期内,该链路实际能够承载的业务量为1000M,因此,该链路的资源能够得到较为充分的利用,避免了链路资源的浪费。而且,本发明实施例中,减少了链路工作状况突变时的实时链路质量参数在当前平均链路质量参数中所占的比例,因此,有效减小了链路工作状况突变带来的影响。
本发明实施例提供的负载均衡的方法,接收方设备根据在当前周期内通过链路实际接收的LLDP报文的数量以及发送方设备在该链路上需发送的LLDP报文的总数量,计算该链路的链路质量参数,从而链路质量被描述为精准的数值,根据精准的数值就能够精准地调整各个链路的业务比例,实现更为精准的负载均衡。
结合图3所示的方法流程,在计算出当前周期内每条链路的质量参数之后,即可根据计算出的链路质量参数,对每条链路的业务比例进行调整。基于此,在本发明实施例提供的另一种实现方式中,如图4所示,步骤204、发送方设备根据每条链路的链路质量参数调节每条链路的业务比例包括:
步骤401、发送方设备根据每条链路的链路质量参数计算每条链路的业务比例。
其中,链路的业务比例为∑L(i)为各个链路在当前周期内的链路质量参数之和。
例如,在第二周期内,第一条链路的链路质量参数为80%,第二条链路的链路质量参数为20%。则第一条链路的业务比例为第二条链路的业务比例为
步骤402、发送方设备根据计算出的每条链路的业务比例调整每条链路需承载的业务量。
例如,当前有200M的业务量通过该系统,则第一条链路需承载的业务量为第二条链路需承载的业务量为
本发明实施例提供的负载均衡的方法,当链路的工作状况发生变化时,发送方设备能够根据其通过每条链路的链路质量参数调整每条链路需承载的业务量,因此,每条链路均能够根据各自的承载能力来承载相应的业务量,进而避免了链路资源的浪费或者数据包丢失,提高了网络服务质量。
对应于上述的方法流程,为了解决链路的工作状况发生变化,而导致链路资源利用不充分或者链路的数据包丢失,降低网络服务质量的问题,本发明实施例提供了一种负载均衡的装置,该装置可以为上述方法实施例中的发送方设备,如图5所示,该装置包括:发送单元501、接收单元502、调节单元503。
发送单元501,用于在当前周期内,分别通过每条链路向接收方设备发送每条链路各自对应数量的链路层发现协议LLDP报文;
其中,发送单元501发送的LLDP报文中包含类型长度值TLV字段,TLV字段中包括LLDP报文的周期序号、在周期序号对应的周期内需在LLDP报文对应的链路上发送LLDP报文的总数量、LLDP报文的序号。
接收单元502,用于分别通过每条链路接收接收方设备发送的各链路的反馈LLDP报文,每条链路的反馈LLDP报文分别携带有各自的链路质量参数,每条链路的链路质量参数为接收方设备根据在当前周期内,在每条链路上接收的LLDP报文以及接收的LLDP报文的数量计算出的;
调节单元503,用于根据接收单元502接收的每条链路的链路质量参数调节每条链路的业务比例。
在本发明实施例提供的另一种实现方式中,调节单元503,还用于根据每条链路的链路质量参数计算每条链路的业务比例;
其中,链路质量参数为i为链路编号,NUMRx为接收方设备在当前周期内,在链路i上实际接收的LLDP报文的数量,NUMTx为所述发送单元在当前周期内,在链路i上需发送的LLDP报文的总数量;
链路的业务比例为其中,∑L(i)为各个链路在当前周期内的链路质量参数之和;根据计算出的每条链路的业务比例调整每条链路需承载的业务量。
本发明实施例提供的负载均衡的装置,与现有技术中链路的工作状况发生变化,而导致链路资源利用不充分或者链路的数据包丢失,降低了网络服务质量相比,接收方设备能够根据每条链路接收的LLDP报文以及接收的LLDP报文的数量,分别计算每条链路的链路质量参数,并将每条链路的链路质量参数反馈给接收单元,使得调节单元根据每条链路的链路质量参数调节每条链路的业务比例。可见,即使链路的工作状况发生变化,调节单元也能够根据接收方设备反馈的每条链路的链路质量参数,来调节各个链路的业务比例,实现的负载均衡,避免链路资源的浪费或者数据包丢失,提高了网络服务质量。
对应于上述的方法流程,为了解决链路的工作状况发生变化,而导致链路资源利用不充分或者链路的数据包丢失,降低网络服务质量的问题,本发明实施例提供了一种负载均衡的装置,该装置可以为上述方法实施例中的接收方设备,如图6所示,该装置包括:接收单元601、计算单元602、发送单元603。
接收单元601,用于在当前周期内,分别通过每条链路接收发送方设备发送的每条链路各自对应数量的链路层发现协议LLDP报文;
其中,发送方设备发送的LLDP报文中包含类型长度值TLV字段,TLV字段中包括LLDP报文的周期序号、在周期序号对应的周期内需在LLDP报文对应的链路上发送LLDP报文的总数量、LLDP报文的序号。
计算单元602,用于根据在当前周期内在每条链路上接收单元502接收的LLDP报文以及接收的LLDP报文的数量,分别计算每条链路的链路质量参数;
发送单元603,用于分别通过每条链路向发送方设备发送各链路的反馈LLDP报文,每条链路的反馈LLDP报文分别携带有计算单元602计算的各自的链路质量参数,以使得发送方设备根据每条链路的链路质量参数调节每条链路的业务比例。
在本发明实施例提供的另一种实现方式中,计算单元602,还用于在当前周期内每接收到一个LLDP报文,确定在当前周期内,在当前接收的LLDP报文对应的链路上实际接收的LLDP报文的数量;通过解析当前接收的LLDP报文,确定发送方设备在当前周期内,在当前接收的LLDP报文对应的链路上需发送的LLDP报文的总数量;当确定当前周期结束时,计算每条链路的链路质量参数;
其中,链路质量参数为i为链路编号,NUMRx为在当前周期内,在链路i上实际接收的LLDP报文的数量,NUMTx为在当前周期内,在链路i上需发送的LLDP报文的总数量。
在本发明实施例提供的另一种实现方式中,发送单元603,还用于分别通过每条链路向发送方设备连续发送三次各链路的反馈LLDP报文。
本发明实施例提供的负载均衡的装置,与现有技术中链路的工作状况发生变化,而导致链路资源利用不充分或者链路的数据包丢失,降低了网络服务质量相比,计算单元能够根据每条链路接收的LLDP报文以及接收的LLDP报文的数量,分别计算每条链路的链路质量参数,并将每条链路的链路质量参数反馈给发送方设备,使得发送方设备根据每条链路的链路质量参数调节每条链路的业务比例。可见,即使链路的工作状况发生变化,发送方设备也能够根据接收方设备反馈的每条链路的链路质量参数,来调节各个链路的业务比例,实现的负载均衡,避免链路资源的浪费或者数据包丢失,提高了网络服务质量。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。