发明内容
本发明的目的是提供一种信元数据处理方法、装置和交换网元,能够根据交换网元包括的多条链路的数据量累计情况对信元数据的所有可选链路进行负载均衡。
为了实现上述目的,本发明实施例提供了一种信元数据处理方法,用于交换网元,所述交换网元具有与单播信元数据对应的单播路由表和与多播信元数据对应的多播路由表;
所述方法包括:
所述交换网元从上游设备接收携带目的标识的信元数据;
根据所述信元数据的目的标识查询对应的路由表,获得与所述信元数据对应的输出端口号比特图;
根据所述交换网元包括的多条链路的数据量累计情况,对所述输出端口号比特图进行负载均衡,得到负载均衡结果;
根据所述负载均衡结果,确定输出目的端口号,并将所述信元数据按所述目的端口号输出。
上述的信元数据处理方法,其中,所述信元数据为单播信元数据时,所述信元数据的目的标识为单播标识;
所述单播路由表中单播标识与输出端口号对应。
上述的信元数据处理方法,其中,所述信元数据为多播信元数据时,所述信元数据的目的标识为多播组标识;
所述多播路由表中多播组标识与下游设备的设备号对应。
上述的信元数据处理方法,其中,所述交换网元还具有与多播信元数据对应的多播负载均衡表,多播负载均衡表中所述下游设备的设备号与所述交换网元链路的链路号对应;
所述根据所述信元数据的目的标识查询对应的路由表,获得与所述信元数据对应的输出端口号比特图具体为根据所述多播信元数据的目的标识查询多播路由表以及多播负载均衡表,获得与所述多播信元数据对应的输出端口号比特图。
上述的信元数据处理方法,其中,所述根据所述交换网元包括的多条链路的数据量累计情况,对所述输出端口号比特图进行负载均衡,得到负载均衡结果具体包括:
计算所述交换网元包括的多条链路中每条链路的数据量累计值;
根据所述数据量累计值,得到所述负载均衡结果。
上述的信元数据处理方法,其中,所述根据所述负载均衡结果,确定输出目的端口号具体为:
选择所述数据量累计值最小的链路所对应的端口号作为所述输出目的端口号。
上述的信元数据处理方法,其中,所述根据所述交换网元包括的多条链路的数据量累计情况,对所述输出端口号比特图进行负载均衡,得到负载均衡结果还包括:
判断所述多条链路中的每条链路的数据量累计值是否达到预设阈值,获得判断结果;
当判断结果指示所述多条链路中的任一链路的数据量累计值达到预设阈值时,获取所述数据量累计值达到预设阈值的链路的当前缓存深度值;
用所述数据量累计值达到预设阈值的链路的当前缓存深度值重置所述链路的所述数据量累计值。
为了实现上述目的,本发明实施例还提供了一种信元数据处理装置,用于交换网元,所述交换网元具有与单播信元数据对应的单播路由表和与多播信元数据对应的多播路由表;
所述装置包括:
接收模块,用于所述交换网元从上游设备接收携带目的标识的信元数据;
获取模块,用于根据所述信元数据的目的标识查询对应的路由表,获得与所述信元数据对应的输出端口号比特图;
负载均衡处理模块,用于根据所述交换网元包括的多条链路的数据量累计情况,对所述输出端口号比特图进行负载均衡,得到负载均衡结果;
目的端口号确定模块,用于根据所述负载均衡结果,确定输出目的端口号,并将所述信元数据按所述目的端口号输出。
上述的信元数据处理装置,其中,所述信元数据为单播信元数据时,所述信元数据的目的标识为单播标识;
所述单播路由表中单播标识与输出端口号对应。
上述的信元数据处理装置,其中,所述信元数据为多播信元数据时,所述信元数据的目的标识为多播组标识;
所述多播路由表中多播组标识与下游设备的设备号对应。
上述的信元数据处理装置,其中,所述交换网元还具有与多播信元数据对应的多播负载均衡表,多播负载均衡表中所述下游设备的设备号与所述交换网元链路的链路号对应;
所述获取模块具体为根据所述多播信元数据的目的标识查询多播路由表以及多播负载均衡表,获得与所述多播信元数据对应的输出端口号比特图。
上述的信元数据处理装置,其中,所述负载均衡处理模块具体包括:
第一计算模块,用于计算所述交换网元包括的多条链路中每条链路的数据量累计值;
负载均衡处理子模块,用于根据所述数据量累计值,得到所述负载均衡结果。
上述的信元数据处理装置,其中,所述目的端口号确定模块具体包括:
选择模块,用于选择所述数据量累计值最小的链路所对应的端口号作为所述输出目的端口号。
上述的信元数据处理装置,其中,所述负载均衡处理模块具体还包括:
判断模块,用于判断所述多条链路中的每条链路的数据量累计值是否达到预设阈值,获得判断结果;
第二计算模块,用于当判断结果指示所述多条链路中的任一链路的数据量累计值达到预设阈值时,获取所述数据量累计值达到预设阈值的链路的当前缓存深度值;
重置模块,用于用所述数据量累计值达到预设阈值的链路的当前缓存深度值重置所述链路的所述数据量累计值。
为了实现上述目的,本发明实施例还提供了一种交换网元,所述交换网元具有与单播信元数据对应的单播路由表、与多播信元数据对应的多播路由表、以及与多播信元数据对应的多播负载均衡表;
所述交换网元还包括上述任一项所述的信元数据处理装置。
本发明实施例具有以下有益效果中的至少一项:
本发明实施例,能够根据交换网元包括的多条链路的数据量累计情况对信元数据的所有可选链路进行负载均衡,进一步地,能够解决负载均衡效果不佳导致的流量分配不均的问题;
本发明实施例,能够在完成交换网数据处理的同时,实现各芯片联接关系的灵活性及良好的负载均衡效果。
具体实施方式
为使本发明实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明实施例提供了一种信元数据处理方法,用于交换网元,所述交换网元具有与单播信元数据对应的单播路由表和与多播信元数据对应的多播路由表;
所述方法如图6所示,包括:
步骤61,所述交换网元从上游设备接收携带目的标识的信元数据;
步骤62,根据所述信元数据的目的标识查询对应的路由表,获得与所述信元数据对应的输出端口号比特图;
步骤63,根据所述交换网元包括的多条链路的数据量累计情况,对所述输出端口号比特图进行负载均衡,得到负载均衡结果;
步骤64,根据所述负载均衡结果,确定输出目的端口号,并将所述信元数据按所述目的端口号输出。
本发明实施例提供的信元数据处理方法,其中,交换网元从上游设备接收到携带目的标识的信元数据时,这里的上游设备可以为接入芯片或交换网元芯片,根据信元数据的目的标识查询与信元数据对应的路由表,获得该信元数据的输出端口号比特图,此时,根据交换网元包括的多条链路的数据量累计情况,对所述输出端口号比特图进行负载均衡,得到负载均衡结果,并根据负载均衡结果确定输出目的端口号,将所述信元数据按所述目的端口号输出。
本发明实施例,基于交换网元包括的多条链路的数据量累计情况对信元数据的所有可选链路进行负载均衡,进一步地,解决了负载均衡效果不佳导致的流量分配不均的问题。
信元数据可以为单播信元数据或多播信元数据,下面分别针对不同的信元数据说明本发明实施例提供的信元数据处理方法。
<单播信元数据>
所述信元数据为单播信元数据时,所述信元数据的目的标识为单播标识;
所述单播路由表中单播标识与输出端口号对应。
在本发明实施例中,单播路由表为单播标识与输出端口号对应的路由表,与现有技术中的单播路由表相同,如图2所示。
对于进入交换网元芯片的单播信元数据,信元数据处理方法包括:
步骤1,根据其携带的单播标识查询单播路由表获得单播输出端口号比特图;
步骤2,根据所述交换网元包括的多条链路的数据量累计情况,对单播输出端口号比特图进行负载均衡,获得负载均衡的结果;
步骤3,根据所述负载均衡结果,确定输出目的端口号,并将所述单播信元数据按所述目的端口号输出。
<多播信元数据>
所述信元数据为多播信元数据时,所述信元数据的目的标识为多播组标识;
所述多播路由表中多播组标识与下游设备的设备号对应。
此时,优选地,所述交换网元还具有与多播信元数据对应的多播负载均衡表,多播负载均衡表中所述下游设备的设备号与所述交换网元链路的链路号对应;
所述根据所述信元数据的目的标识查询对应的路由表,获得与所述信元数据对应的输出端口号比特图具体为根据所述多播信元数据的目的标识查询多播路由表以及多播负载均衡表,获得与所述多播信元数据对应的输出端口号比特图。
在本发明实施例中,构建了新型的多播路由表如图7所示,为多播组标识与下游设备的设备号对应的路由表,下游设备指下游芯片,可以为交换网元芯片或接入芯片。优选地,在交换网元中还具有与多播信元数据对应的多播负载均衡表如图8所示,其中所述下游设备的设备号与所述交换网元链路的链路号对应。
对于进入交换网元芯片的多播信元数据,信元数据处理方法包括:
步骤1,根据其携带的多播组标识查询多播路由表获得多播下游设备号比特图;
步骤2,根据通过步骤1获得的多播下游设备号比特图查询多播负载均衡表,获得多播输出端口号比特图;
步骤3,根据所述交换网元包括的多条链路的数据量累计情况,对多播输出端口号比特图进行负载均衡,获得负载均衡的结果;
步骤4,根据所述负载均衡结果,确定输出目的端口号,并将所述多播信元数据按所述目的端口号输出。
由上述过程可以看出,在实现多播信元数据查表功能时,通过构建和使用新型多播路由表及多播负载均衡表,多播芯片的输出端口号在交换网元所有输出端口中可以灵活选择,从而使芯片间连接关系及连接端口数量不再固定,使光纤联接和通信天线PCB布局布线更为方便。
上述的信元数据处理方法中,无论信元数据为单播信元数据或多播信元数据,步骤63可以具体为:
计算所述交换网元包括的多条链路中每条链路的数据量累计值;
根据所述数据量累计值,得到所述负载均衡结果。
每条链路的数据量累计值是经由该链路输出端口的数据量的积累值,每当经由该链路输出端口的数据信元进入交换网元的输出端进行缓存时,增加该数据信元对应的数据量;当数据信元经由该链路输出时,不做任何统计。
相应地,步骤64具体为:
选择所述数据量累计值最小的链路所对应的端口号作为所述输出目的端口号。
本发明实施例提供的信元数据处理方法,通过计算交换网元包括的多条链路中每条链路的数据量累计值作为负载均衡的参数,并选择数据量累计值最小的链路所对应的端口号作为所述输出目的端口号,在实现单播及多播路径选择功能时,通过采用一套基于输出端口输出数据量累积的算法实现,得到较佳的负载均衡效果,可以更好的避免由于流量分配不均而产生的交换网络拥塞,这一效果在信元长度为变长时尤为明显。
上述的信元数据处理方法,所述步骤63具体还包括:
判断所述多条链路中的每条链路的数据量累计值是否达到预设阈值,获得判断结果;
当判断结果指示所述多条链路中的任一链路的数据量累计值达到预设阈值时,获取所述数据量累计值达到预设阈值的链路的当前缓存深度值;
用所述数据量累计值达到预设阈值的链路的当前缓存深度值重置所述链路的所述数据量累计值。
本发明实施例优选地,当网元芯片包括的多条链路中的任一链路的数据量累计值达到预设阈值时,用所述链路的当前缓存深度值来重置所述链路的数据量累计值。
在实际应用中,可以通过一个负载均衡电路如图9所示,实现对所述输出端口号比特图的负载均衡,针对网元芯片包括的多条链路的每条链路设置一个数据量累加计数器,用于统计对应链路的数据量累计值,一般的计数器都存在计数上限,当任一数据量累加计数器计满,即达到某一预设阈值时,需要对该数据量累加计数器进行重置,在本发明实施例中,优选地,利用对应链路的当前缓存深度值来重置所述数据量累加计数器的累计值。
在负载均衡电路中,为每条链路设置缓存深度计数器来计算对应链路的当前缓存深度值。缓存深度计数器反映了链路输出端缓存的实时深度,即选定经由该链路输出但是还没有从输出端口输出的数据的总量,每当经由该链路输出端口的信元数据进入交换网元芯片的输出端缓存,缓存深度计数器增加该信元数据对应的数据量;当信元数据从链路的输出端口输出时,缓存深度计数器减去该信元数据对应的数据量。
该负载均衡电路还包括检测模块,该检测模块用于实时对所有输出端口的数据量累加计数器进行检测,当任一累加计数器计满时,则将所有输出端口数据量累加计数器的值重置为该输出端口缓存深度计数器的当前值。
该负载均衡电路还包括比较模块,该比较模块用于实现负载均衡的链路负载比较功能,即采用多级流水的方式对所有有效链路的当前累加计数器值进行比较,从中选出值最小的链路对应的端口号作为数据信元的输出目的端口号。
下面以4链路为例,说明多播信元数据负载均衡过程。
如图10所示,一个多播信元数据有链路0~3共4条链路可经由输出,这四条链路的累加计数器值经过两级比较,选出累加器值最小的链路作为负载均衡的结果,这个累加器值最小的链路对应的输出端口号就是输出目的端口号。
其中,缓存深度计数器不作为比较的依据,当累加计数器值计满时,将当前缓存深度计数器的值赋给累加计数器,然后缓存深度计数器和累加计数器继续执行各自的加减操作(累加计数器不做减操作),互不影响。
本发明实施例还提供了一种信元数据处理装置,用于交换网元,所述交换网元具有与单播信元数据对应的单播路由表和与多播信元数据对应的多播路由表;
所述装置如图11所示,包括:
接收模块,用于所述交换网元从上游设备接收携带目的标识的信元数据;
获取模块,用于根据所述信元数据的目的标识查询对应的路由表,获得与所述信元数据对应的输出端口号比特图;
负载均衡处理模块,用于根据所述交换网元包括的多条链路的数据量累计情况,对所述输出端口号比特图进行负载均衡,得到负载均衡结果;
目的端口号确定模块,用于根据所述负载均衡结果,确定输出目的端口号,并将所述信元数据按所述目的端口号输出。
上述的信元数据处理装置,其中,所述信元数据为单播信元数据时,所述信元数据的目的标识为单播标识;
所述单播路由表中单播标识与输出端口号对应。
上述的信元数据处理装置,其中,所述信元数据为多播信元数据时,所述信元数据的目的标识为多播组标识;
所述多播路由表中多播组标识与下游设备的设备号对应。
上述的信元数据处理装置,其中,所述交换网元还具有与多播信元数据对应的多播负载均衡表,多播负载均衡表中所述下游设备的设备号与所述交换网元链路的链路号对应;
所述获取模块具体为根据所述多播信元数据的目的标识查询多播路由表以及多播负载均衡表,获得与所述多播信元数据对应的输出端口号比特图。
上述的信元数据处理装置,其中,所述负载均衡处理模块具体包括:
第一计算模块,用于计算所述交换网元包括的多条链路中每条链路的数据量累计值;
负载均衡处理子模块,用于根据所述数据量累计值,得到所述负载均衡结果。
上述的信元数据处理装置,其中,所述目的端口号确定模块具体包括:
选择模块,用于选择所述数据量累计值最小的链路所对应的端口号作为所述输出目的端口号。
上述的信元数据处理装置,其中,所述负载均衡处理模块具体还包括:
判断模块,用于判断所述多条链路中的每条链路的数据量累计值是否达到预设阈值,获得判断结果;
第二计算模块,用于当判断结果指示所述多条链路中的任一链路的数据量累计值达到预设阈值时,获取所述数据量累计值达到预设阈值的链路的当前缓存深度值;
重置模块,用于用所述数据量累计值达到预设阈值的链路的当前缓存深度值重置所述链路的所述数据量累计值。
本发明实施例还提供了一种交换网元,所述交换网元具有与单播信元数据对应的单播路由表、与多播信元数据对应的多播路由表、以及与多播信元数据对应的多播负载均衡表;
所述交换网元还包括上述任一项所述的信元数据处理装置。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。