一种报文处理方法、系统及设备.pdf

上传人:a**** 文档编号:4080127 上传时间:2018-08-14 格式:PDF 页数:29 大小:2.60MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310430811.0

申请日:

2013.09.18

公开号:

CN104469845A

公开日:

2015.03.25

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04W28/08申请日:20130918|||公开

IPC分类号:

H04W28/08(2009.01)I; H04W40/02(2009.01)I; H04L12/803(2013.01)I; H04L12/725(2013.01)I

主分类号:

H04W28/08

申请人:

华为技术有限公司

发明人:

黄勇

地址:

518129广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

北京同达信恒知识产权代理有限公司11291

代理人:

李姜

PDF下载: PDF下载
内容摘要

本发明公开了一种报文处理方法、系统及设备,通过预先为报文流中的报文配置用于标识业务节点在指定时间的拓扑状态的状态值,以便于在为该报文选择下一跳中的业务节点时,并不以下一跳中当前实际的业务节点拓扑状态为选择基础,而是以所述状态值所标识的指定时间的业务节点拓扑状态为选择基础,只要同一报文流中每个报文中携带的状态值相同,即使业务节点的拓扑状态发生变化,还是能够为同一报文流中的各报文选择出相同的业务节点,避免出现同一条报文流的报文改向的问题。

权利要求书

权利要求书1.  一种报文处理方法,其特征在于,所述方法包括:在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点;从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选择的所述业务节点;其中,同一报文流中所有报文携带的状态值相同。2.  如权利要求1所述的报文处理方法,其特征在于,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。3.  如权利要求2所述的报文处理方法,其特征在于,所述业务节点的拓朴状态包括同一业务的业务节点数量。4.  如权利要求1或2或3所述的报文处理方法,其特征在于,所述报文中携带的状态值是由中心控制模块生成并下发给流分类模块后,再由所述流分类模块携带在当前生成的报文流的报文中。5.  如权利要求4所述的报文处理方法,其特征在于,所述中心控制模块对业务节点的拓扑状态进行监控,当业务节点的拓扑状态发生变化时,更新所述状态值,并将更新后的状态值发送给所述流分类模块,由所述流分类模块将更新后的状态值携带在当前生成的报文流的报文中。6.  如权利要求1~5任一所述的报文处理方法,其特征在于,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,具体包括:利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。7.  如权利要求6所述的报文处理方法,其特征在于,利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算的运算结果选择一个业 务节点,具体包括:将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。8.  如权利要求7所述的报文处理方法,其特征在于,利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算的运算结果选择一个业务节点,具体包括:将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。9.  如权利要求7或8所述的报文处理方法,其特征在于,所述预定数值是携带在报文中的,或是根据报文所在的业务流中所有报文共有的传输参数转换得到的。10.  如权利要求9所述的报文处理方法,其特征在于,所述携带在报文中的预定数值是中心控制模块下发给流分类模块后,由所述流分类模块携带在所述报文中的。11.  如权利要求10所述的报文处理方法,其特征在于,所述中心控制模块下发给流分类模块的预定数值是中心控制模块从资源池中随机选取的一个数值,或是中心控制模块根据报文所在的业务流中所有报文共有的传输参数转换得到的数值,或是中心控制模块根据业务节点负载状态选取的一个数值。12.  如权利要求1~11任一所述的报文处理方法,其特征在于,所述方法还包括:接收到所述报文的业务节点向中心控制模块上报所述报文所在的报文流的五元组信息,以及对应的反向流的五元组信息,使得当所述中心控制模块根据反向流的五元组信息确定生成所述反向流时,向流分类模块下发所述报文流中的报文所携带的状态值,由所述流分类模块将该状态值携带在所述反向流的报文中,使得所述反向流中的报文在该状态值所标识的业务节点拓扑架构中进 行处理。13.  如权利要求12所述的报文处理方法,其特征在于,在业务节点接收到的报文中携带有预定数值时,中心控制模块确定生成所述反向流时,向反向流的流分类模块下发该预定数值,由所述反向流的流分类模块将该预定数值携带在所述反向流的报文中。14.  一种报文处理系统,其特征在于,所述系统包括:负载均衡设备以及附着在负载均衡设备上的业务节点,其中:所述负载均衡设备,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选择的所述业务节点,其中,同一报文流中所有报文携带的状态值相同;所述业务节点,用于接收所述报文。15.  如权利要求14所述的报文处理系统,其特征在于,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。16.  如权利要求14或15所述的报文处理系统,其特征在于,所述系统还包括中心控制设备和流分类设备,其中:所述中心控制设备,用于生成所述状态值并下发给所述流分类模块;所述流分类设备,用于将所述状态值携带在当前生成的报文流的报文中。17.  一种负载均衡设备,其特征在于,所述负载均衡设备包括:业务节点确定单元,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,其中,同一报文流中所有报文携带的状态值相同;业务节点选择单元,用于从所述状态值在下一跳所标识的业务节点中选择 一个业务节点;报文发送单元,用于将所述报文发送至选择的所述业务节点。18.  如权利要求17所述的负载均衡设备,其特征在于,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。19.  如权利要求18所述的负载均衡设备,其特征在于,所述业务节点的拓朴状态包括同一业务的业务节点数量。20.  如权利要求17、18或19所述的负载均衡设备,其特征在于,所述业务节点选择单元,具体用于利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。21.  如权利要求20所述的负载均衡设备,其特征在于,所述业务节点选择单元,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。22.  如权利要求21所述的负载均衡设备,其特征在于,所述业务节点选择单元,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。23.  如权利要求21或22所述的负载均衡设备,其特征在于,所述负载均衡设备还包括:预定数值确定单元,用于从所述报文中获取携带的所述预定数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。24.  一种中心控制设备,其特征在于,所述中心控制设备包括:生成单元,用于生成状态值;发送单元,用于将所述状态值发送给流分类设备,并指示流分类设备将所 述状态值携带在报文中。

说明书

说明书一种报文处理方法、系统及设备
技术领域
本发明涉及无线通信领域,尤其涉及一种报文处理方法、系统及设备。
背景技术
在业务路由过程中,具有安全认证、过滤、统计监测、计费、流量加速等网络功能的业务节点,如防火墙、TCP(Transmission Control Protocol,传输控制协议)加速节点、NAT(Network Address Translate,网络地址转换)节点,这些业务节点组成业务节点的网络拓扑架构,部署在业务流流经的路径上,使得业务流能够在流经这些业务节点时被执行相应的网络功能。
但是,针对某一业务部署的网络拓扑架构中,业务节点的数量会发生变化,如根据网络忙闲程度的变化来增加或减少部署的业务节点,或是业务节点故障时数量减少等,也就是说,网络拓扑架构中部署的业务节点的数量是动态变化的,针对业务流中的某一报文流而言,若该报文流中的报文依次流经某一跳的业务节点时出现业务节点数量的变化,如增加了一个业务节点,则可能会导致报文流改向(即报文流中前若干个报文流经的业务节点与后若干个报文流经的业务节点不同)的问题,在此情况下,该报文流中的报文容易出现报文错序,同时,对于有报文状态记录要求的业务节点而言,也无法满足该业务节点的状态记录要求。
发明内容
本发明实施例提供了一种报文处理方法、系统及设备,用以解决现有技术中存在的由于业务节点的拓扑状态变化导致报文流改向的问题。
第一方面,提供一种报文处理方法,所述方法包括:
在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点;
从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选择的所述业务节点;
其中,同一报文流中所有报文携带的状态值相同。
结合第一方面,在第一种可能的实现方式中,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述业务节点的拓朴状态包括同一业务的业务节点数量。
结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述报文中携带的状态值是由中心控制模块生成并下发给流分类模块后,再由所述流分类模块携带在当前生成的报文流的报文中。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,
所述中心控制模块对业务节点的拓扑状态进行监控,当业务节点的拓扑状态发生变化时,更新所述状态值,并将更新后的状态值发送给所述流分类模块,由所述流分类模块将更新后的状态值携带在当前生成的报文流的报文中。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,具体包括:
利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,利 用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算的运算结果选择一个业务节点,具体包括:
将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算的运算结果选择一个业务节点,具体包括:
将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。
结合第一方面的第六种可能的实现方式或第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述预定数值是携带在报文中的,或是根据报文所在的业务流中所有报文共有的传输参数转换得到的。
结合第一方面的第八种可能的实现方式,在第九种可能的实现方式中,所述携带在报文中的预定数值是中心控制模块下发给流分类模块后,由所述流分类模块携带在所述报文中的。
结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,所述中心控制模块下发给流分类模块的预定数值是中心控制模块从资源池中随机选取的一个数值,或是中心控制模块根据报文所在的业务流中所有报文共有的传输参数转换得到的数值,或是中心控制模块根据业务节点负载状态选取的一个数值。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式、第一方面的第五种可能的实现方式、第一方面的第六种可能的实现方式、第一方面的第七种可能的实现方式、第一方面的第八种可能的实现方式、第一方面的第九种可能的实现方式或第一方面的第十种可能的实现方式,在第 十一种可能的实现方式中,所述方法还包括:
接收到所述报文的业务节点向中心控制模块上报所述报文所在的报文流的五元组信息,以及对应的反向流的五元组信息,使得当所述中心控制模块根据反向流的五元组信息确定生成所述反向流时,向流分类模块下发所述报文流中的报文所携带的状态值,由所述流分类模块将该状态值携带在所述反向流的报文中,使得所述反向流中的报文在该状态值所标识的业务节点拓扑架构中进行处理。
结合第一方面的第十一种可能的实现方式,在第十二种可能的实现方式中,在业务节点接收到的报文中携带有预定数值时,中心控制模块确定生成所述反向流时,向反向流的流分类模块下发该预定数值,由所述反向流的流分类模块将该预定数值携带在所述反向流的报文中。
第二方面,提供一种报文处理系统,所述系统包括:负载均衡设备以及附着在负载均衡设备上的业务节点,其中:
所述负载均衡设备,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选择的所述业务节点,其中,同一报文流中所有报文携带的状态值相同;
所述业务节点,用于接收所述报文。
结合第二方面,在第一种可能的实现方式中,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述系统还包括中心控制设备和流分类设备,其中:
所述中心控制设备,用于生成所述状态值并下发给所述流分类设备;
所述流分类设备,用于将所述状态值携带在当前生成的报文流的报文中。
第三方面,提供一种负载均衡设备,所述负载均衡设备包括:
业务节点确定单元,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,其中,同一报文流中所有报文携带的状态值相同;
业务节点选择单元,用于从所述状态值在下一跳所标识的业务节点中选择一个业务节点;
报文发送单元,用于将所述报文发送至选择的所述业务节点。
结合第三方面,在第一种可能的实现方式中,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述业务节点的拓朴状态包括同一业务的业务节点数量。
结合第三方面、第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述业务节点选择单元,具体用于利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,
所述业务节点选择单元,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。
结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述业务节点选择单元,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。
结合第三方面的第四种可能的实现方式或第三方面的第五种可能的实现方式,在第六种可能的实现方式中,所述负载均衡设备还包括:
预定数值确定单元,用于从所述报文中获取携带的所述预定数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。
第四方面,提供一种负载均衡设备,所述负载均衡设备包括:
处理器,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,其中,同一报文流中所有报文携带的状态值相同,以及从所述状态值在下一跳所标识的业务节点中选择一个业务节点;
所述接口,用于将所述报文发送至选择的所述业务节点。
结合第四方面,在第一种可能的实现方式中,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述业务节点的拓朴状态包括同一业务的业务节点数量。
结合第四方面、第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述处理器,具体用于利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,
所述处理器,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。
结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述处理器,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的 业务节点。
结合第四方面的第四种可能的实现方式或第四方面的第五种可能的实现方式,在第六种可能的实现方式中,
所述处理器,具体用于从所述报文中获取携带的所述预定数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。
第五方面,提供了一种中心控制设备,所述中心控制设备包括:
生成单元,用于生成状态值;
发送单元,用于将所述状态值发送给流分类设备,并指示流分类设备将所述状态值携带在报文中。
第六方面,提供一种中心控制设备,所述中心控制设备包括:
处理器,用于生成状态值;
接口,用于将所述状态值发送给流分类设备,并指示流分类设备将所述状态值携带在报文中。
本发明实施例通过预先为报文流中的报文配置用于标识业务节点在指定时间的拓扑状态的状态值,以便于在为该报文选择下一跳中的业务节点时,并不以下一跳中当前实际的业务节点拓扑状态为选择基础,而是以所述状态值所标识的指定时间的业务节点拓扑状态为选择基础,只要同一报文流中每个报文中携带的状态值相同,即使业务节点的拓扑状态发生变化,还是能够为同一报文流中的各报文选择出相同的业务节点,避免出现同一条报文流的报文改向的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一中报文处理方法的步骤示意图;
图2为本发明实施例一中业务节点拓扑架构示意图;
图3为以三跳业务节点为例,业务节点间负载均衡示意图;
图4为本发明实施例二中报文处理方法的步骤示意图;
图5为本发明实施例三中业务节点拓扑架构示意图;
图6为本发明实施例三中报文处理方法的步骤示意图;
图7为本发明实施例四中报文处理系统的结构示意图;
图8(a)和图8(b)为本发明实施例五中负载均衡设备的结构示意图;
图9为本发明实施例六中中心控制设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了确保同一报文流中的报文流向不变的目的,本发明实施例提出了一种报文处理方案,通过预先为报文流中的报文配置用于标识业务节点在指定时间的拓扑状态的状态值,在为该报文选择下一跳中的业务节点时,并不以下一跳中当前实际的业务节点拓扑状态为选择基础,而是以所述状态值所标识的指定时间的业务节点拓扑状态为选择基础,只要同一报文流中每个报文中携带的状态值相同,即使在该报文流流经业务节点的过程中,业务节点的拓扑状态发生变化,根据每个报文中携带的相同的状态值还是能够为同一报文流中的各报文选择出相同的业务节点,因此,避免出现同一条报文流的报文错序问题,同时还能够满足业务节点(如NAT节点)对同一报文流中各报文的状态进行记录的处理要求。
本发明各实施例所指的一跳包括了这样的至少一个业务节点:在业务节点 的拓扑架构中,具有相同网络功能的业务节点,其中任一业务节点能够为报文流中的报文提供该网络功能。
本发明各实施例所指的业务节点,是指能够对报文进行业务处理的网络设备,如防火墙、交换机等。
下面结合具体实施例对本发明方案做具体描述,当然,本发明方案并不局限于以下实施例。
实施例一:
如图1所示,为本发明实施例一中报文处理方法的步骤示意图,所述方法包括以下步骤:
步骤101:中心控制模块(Controller)生成Stage值(状态值)。
所述Stage值用于标识业务节点在指定时间的拓扑状态,所述指定时间可以是指生成该Stage值的时间,所述拓扑状态可以指针对某一业务的业务节点数量,具体地,可以是该业务在每一跳中的业务节点数量。
所述Controller实时对业务节点的拓扑状态进行监控,当业务节点的拓扑状态发生变化时,如增加或减少业务节点,Controller将更新Stage值,使得更新后的Stage值能够标识业务节点的数量发生变化后的业务节点拓扑状态。
例如,在T1时刻,Controller生成的Stage值取0,表示在T1时刻业务节点的拓扑状态与Stage值取0对应;假设在之后的T2时刻,某一跳中增加了一个业务节点,则Controller将Stage值更新为1,表示在T2时刻更新后的业务节点的拓扑状态与Stage值取1对应。
只要Stage值取值不重复,Stage值对应的业务节点的拓扑状态就不会冲突,优选地,可设定初始时Stage值为0,每当业务节点的拓扑状态发生变化,就将Stage值加1,直至Stage值达到取值上限后,再从0重新开始取值。只要Stage值的取值上限足够大,当Stage值从取值上限转而从0重新开始取值时,携带上一轮Stage值取0的报文已结束处理,本轮Stage值加满后再次取0时对应的业务节点的拓扑状态与上一轮Stage值取0时对应的业务节点的拓扑状 态不冲突。
以上是将Stage值视为一个常数来标识业务节点在指定时间的拓扑状态的,本发明实施例中的Stage值也可以用其他形式来表示,如时间戳或负载均衡值等表示。
本步骤101可以是实现本发明目的的优选步骤,本发明实施例也不限于由其他网元来生成Stage值,且Stage值的取值方式也不限于以上描述的方式,只要保证同时使用的相同的Stage值对应的业务节点的拓扑状态相同即可。
步骤102:Controller将生成的Stage值下发给流分类模块(Flow Classifier)。
Controller在每次生成或更新一个Stage值时,就将该Stage值下发给流分类模块。Controller可同时控制至少一个流分类模块,在每次更新Stage值后,将更新后的Stage值下发给每个控制的流分类模块。
优选地,在报文流生成时,Controller还向该报文流的流分类模块下发该报文流的业务路由标识(SID),用于表示该报文流在业务节点的拓扑架构中的传输路径,同时,Controller还将生成的报文流下发给该流分类模块,要求流分类模块对接收到的报文流中的报文进行处理。
步骤103:流分类模块将所述Stage值携带在报文流中的各报文的报文头中。
优选地,流分类模块还将所述SID携带在报文流中的各报文的报文头中。
流分类模块将Stage值携带在报文后,不论Controller是否更新Stage值,该报文中已携带的Stage值将不再变化;也就是说,报文中携带的Stage值是该报文所属的报文流生成时的Stage值,之后,若该Stage值更新,更新后的Stage值携带在Stage值更新后生成的报文流中的报文中,而不改变之前生成的报文中携带的Stage值。
针对汇聚在同一业务流中的多条报文流而言,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态,若存在多条报文流生成时的Stage值相同,则这多条报文流中的报文携带的Stage值相同。
以上步骤102和步骤103是本发明实施例的优选步骤,本发明实施例并不限于通过其他方式或其他网络设备在报文中携带Stage值,以及,除了Stage值外,本发明实施例也不限于在报文中携带其他参数。
步骤104:流分类模块将报文流中的报文依次导向其对应的传输路径。
具体地,在本步骤104中,流分类模块将报文依次导向其传输路径上的第一跳中的业务节点,所述报文的路由过程开始。
针对报文流中的任一报文,流分类模块将会根据其传输路径,将其传输至第一跳中的业务节点中,由第一跳中的业务节点对其进行处理后,再传输至第二跳中的业务节点中,以此类推,直至最后一跳中的业务节点。为方便描述,以下以图2所示的业务节点拓扑架构为例,报文流中的报文需流经第N跳中的业务节点A,以及流经第N+1跳中的业务节点B1~B2中的一个业务节点为例进行描述,若在第N+1跳后报文还未结束处理,则继续传输的过程与从第N跳至第N+1跳的过程类似,此处不再专门描述。
特殊地,若在步骤104中,流分类模块根据报文的SID确定所述报文流经的第一跳中有多个业务节点,则也可按照以下方式,选择第一跳中的一个业务节点,并将报文传输至第一跳中选择的业务节点。
步骤105:第N跳中业务节点A附着的负载均衡模块接收报文。
所述负载均衡模块可以是与附着在其上的业务节点独立的网元,如业务路由转发功能单元(Service routing function,SRF),所述SRF可以由物理实体实现,也可以由软件集成实现;所述负载均衡模块还可以是与附着在其上的业务节点集成在一起的网元,以虚拟机的形式出现。后续为方便描述,以负载均衡模块是SRF为例进行描述。
这里可使用NFV(Network Function Virtualization,网络功能虚拟化)技术将业务节点与负载均衡模块区分开来,也就是将原来部署于网络中的业务节点或其他更多的具有网络功能的节点,如交换机、路由器等采用通用计算平台实现,可使节点的运行、维护一致化,同时,软件功能与硬件设备分离,可分别 为软、硬件提供更好的扩展性。
在本步骤105中,业务节点A附着的SRF1接收到的报文可以是上一跳中的SRF发送的报文,若业务节点A是第一跳中的业务节点,则SRF1接收到的是流分类模块发送的报文。
步骤106:SRF1将所述报文进行业务路由转发操作,将报文发送给业务节点A。
步骤107:业务节点A对报文进行处理(如防火墙处理)后,再返回给SRF1。
步骤108:SRF1根据报文中的SID查找下一跳的业务节点,若下一跳中有多个业务节点,则执行步骤109;若只有一个业务节点,直接将所述报文传输至下一跳的业务节点所附着的SRF。
每个SRF中都可预先存储相邻的业务节点所附着的SRF的相关信息,称之为负载均衡表,如表1所示,为SRF1中存储的针对下一跳的负载均衡表。

表1
SRF1从表1中可查询出:第N+1跳中有两个业务节点,其中一个业务节点(即图2中的业务节点B1)附着在SRF2上,另一个业务节点(即图2中的业务节点B2)附着在SRF3上,需从中选择一个业务节点作为下一跳中的业务节点。
每当业务节点的拓扑状态发生变化时,如增加或减少业务节点,SRF中存储的负载均衡表也会相应地更新,使得更新后的负载均衡表能够反映下一跳中实际的业务节点以及所附着的SRF的相关信息,假设图2所示的业务结构拓扑状态中,新增了一个附着在SRF4上的业务节点B3(图2中虚线表示部分),则表1更新为表2所示的内容。

表2
步骤109:SRF1根据所述报文中携带的Stage值,确定所述Stage值在指定时间所标识的下一跳中的业务节点。
从步骤103中报文携带Stage值起至本步骤109,不论业务节点在第N+1跳的拓扑状态是否已发生了变化,SRF1并不使用当前的业务节点拓扑状态,而是使用步骤103时下一跳的拓扑状态,避免了由于业务节点拓扑状态的变化导致同一报文流中报文的传输路径改变的情况。
例如,在步骤103中报文携带Stage值时,在第N+1跳中的业务节点有业务节点B1和业务节点B2;之后,报文流中的报文依次进行路由。在前n个报文路由至第N+1跳时,第N+1跳中的业务节点的拓扑状态没有发生变化;在第n+1个报文路由至第N+1跳前,在第N+1跳中增加了一个业务节点B3(如图2中虚线部分),则在第n+1个报文从第N跳路由至第N+1跳时,SRF1并不确定当前实际存在的业务节点B1、业务节点B2和业务节点B3,而是根据报文中携带的Stage值确定在携带Stage值时第N+1跳中的业务节点B1和业务节点B2,从中选择报文所流经的业务节点。
步骤110:SRF1从所述Stage值在下一跳所标识的业务节点中选择一个业务节点。
在本步骤110中,SRF1通过选择业务节点所附着的SRF或所附着的SRF的一个端口达到选择业务节点的目的。
步骤111:SRF1将所述报文发送至选择的所述业务节点。
假设在步骤110中SFR1选择了SRF2,则将所述报文发送至SRF2,由SRF2将报文发送给附着在本地的业务节点B1,实现了报文从第N跳传输至第N+1 跳的过程。
通过本发明实施例一的方案,不论业务节点的拓扑状态发生何种变化,都可确保同一报文流中的报文在每一跳中流经相同的业务节点,因此,可以有效防止同一报文流中报文错序的问题,对于有记录状态要求的业务节点,也可对同一报文流中各报文的状态进行记录。
优选地,如图3所示,以三跳业务节点为例,说明负载相对均衡时,业务节点之间的路由状态,为了在实施例一的方案上进一步实现业务节点之间的负载均衡,特别是当业务节点的拓扑状态动态变化时,报文流能够基本均分到同一跳中的各个业务节点中,本发明实施例还提出一种负载均衡运算方案,下面通过实施例二加以描述。
实施例二:
基于实施例一所述的方法,可对其中步骤110使用负载均衡运算。
如图4所示,为报文处理方法的步骤示意图,其中,除步骤110/外,其他步骤与图1相同。图4中步骤110/在图1步骤110的基础上,使用负载均衡运算从下一跳的业务节点中选择一个业务节点,具体的负载均衡运算过程如下:
步骤110/:利用所述Stage值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。
假设在实施例一的执行过程中,业务节点的拓扑状态没有发生变化,即根据所述Stage值确定在下一跳中的业务节点是业务节点B1和业务节点B2,业务节点数量count=2,可利用hash算法进行负载均衡运算,一种可行的负载均衡运算方式为:将预定数值与所述Stage值在下一跳所标识的业务节点的数量值count=2取模,按照取模结果选择一个业务节点做为下一跳业务节点,具体实现过程为:
首先,将预定数值与count=2取模,其取模结果为0或1。
然后,确定所述Stage值在下一跳所标识的业务节点(即业务节点B1和业务节点B2)分别对应的运算值。
接着,根据取模结果与业务节点的运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。
仍以图2所示的情况为例,若取模结果为0,根据表1中记录的运算值,选择业务节点B1,再根据表1中记录的业务节点所附着的SRF的路由地址,将报文传输给业务节点B1所附着的SRF2;若取模结果为1,根据表1中记录的运算值,选择业务节点B2,再根据表1中记录的业务节点所附着的SRF的路由地址,将报文传输给业务节点B2所附着的SRF3。
特殊地,若存在多个业务节点附着的同一个SRF的情况,则按照以下方式处理:
假设在业务节点的拓扑状态没有发生变化时,根据Stage值确定在下一跳中的业务节点是业务节点B1、业务节点B2和业务节点B3,其中,业务节点B1附着在SRF2上,业务节点B2和业务节点B3都附着在SRF3上,则SRF1中存储在负载均衡表如表3所示:

表3
同时,所述下一跳中的SRF也记录本跳中各业务节点的标识、运算值和所附着的SRF的路由地址,以SRF3中记录的内容为例,SRF3将会记录以下内容:本跳中各业务节点的标识、各业务节点的运算值和各业务节点所附着的SRF的路由地址,同时,SRF3还会记录业务节点B2与自身通信的通信端口的端口号(假设为端口号1),业务节点B3与自身通信的通信端口的端口号(假设为端口号2)。
SRF1选择下一跳中的业务节点的过程为:
SRF1确定下一跳中等个业务节点数量count=3,将预定数值与3取模,按 照取模结果查询表3。假设取模结果为1,通过查询表3选择SRF3,则选择的业务节点是业务节点B2。SRF1将报文传输给SRF3后,再由SRF3按照与SRF1相同的方式进行取模运算,也会算出取模结果为1,SRF3查询本地记录的业务节点的运算值,也能确定出SRF1选择的是业务节点B2,则SRF3根据与业务节点B2之间通信端口的端口号(假设为端口号1),通过对应的端口向业务节点传输所述报文。
以上是以业务节点的拓扑状态没有发生变化的情况为例进行说明的,若业务节点的拓扑状态发生了变化,如增加了附着在SRF4上的业务节点B3时,SRF1根据所述Stage值确定在下一跳中的业务节点是业务节点B1和业务节点B2后,仍以count=2进行上述操作,从业务节点B1和业务节点B2中选择一个业务节点作为下一跳的业务节点。
所述预定数值可以是由Controller生成并下发给流分类模块,再由流分类模块在步骤103中携带在报文中的数值,此时,所述预定数值可称之为TCN(Traffic Classify Number,传输分类号),同一报文流中的报文携带的TCN相同;所述Controller生成并下发给流分类模块的TCN可以是:从资源池中随机选取的一个数值,或是根据报文所在的业务流中所有报文共有的传输参数转换得到的数值,或是根据业务节点负载状态选取的一个数值。
所述资源池中预先缓存有多个可作为TCN的数值,TCN取值范围可为[1,N],N为一个正整数,所述N值的取值下限Nmin的确定方式可以为:首先确定在报文流经的一跳中,具有相同网络业务功能的业务节点的最大值,然后将该最大值的M(M大于1,可选的,M等于100)倍作为Nmin。例如:在报文需流经的业务第一跳中有一个业务节点A,业务第二跳中有3个业务节点(分别为业务节点B1、业务节点B2和业务节点B3),业务第三跳中有2个业务节点(分别为业务节点C1和业务节点C2),此时,一跳中,具有相同网络业务功能的业务节点的最大值为3,若M等于100,则资源池中Nmin为300,此时,资源池中的TCN数值可以为从1至300的整数。
所述预定数值也可不携带在报文中,由SRF根据报文所在的业务流中所有报文共有的传输参数转换得到。
所述报文共有的传输参数包括但不限于:报文的源IP地址、目的IP地址、协议号、传输层源端口号、传输层目的端口号等,对所述传输参数采用hash运算后得到的数值可作为所述预定数值。以报文的目的IP地址为200.1.1.154为例,可采用hash算法将所述目的IP地址200.1.1.154转换为一个hash值,如:将200.1.1.154转换为200+1+1+154=356作为所述预定数值。
下面以图2所示的业务节点拓扑状态为例,说明本发明实施例二中SRF1为报文选择下一跳中的业务节点的具体做法:
情况1:假设报文中携带有TCN=320,SRF1根据Stage值确定count=2,将320与2取模的结果为0,查询表1中的运算值,确定选择下一跳中业务节点B1。
情况2:假设报文中没有携带TCN,SRF1将报文的目的IP地址200.1.1.154为转换为200+1+1+154=356,再根据Stage值确定count=2,将356与2取模的结果为0,查询表1中的运算值,确定选择下一跳中的业务节点B1。
情况3:假设报文中没有携带TCN,SRF1将报文的目的IP地址200.1.1.154为转换为200+1+1+154=356,再根据Stage值确定count=3(假设此报文是业务节点的拓扑状态更新后生成的报文流中的报文),将356与3取模的结果为2,查询表2中的运算值,确定选择下一跳中的业务节点B3。
相对于SRF每次根据hash算法对报文的传输参数转换得到的预定数值的方式,SRF从报文中直接获取TCN的方式有以下优点:
1)、对于有些业务节点会对报文头进行改变,如NAT节点处理后的报文头会改变,采用hash算法计算得到的数值可能会干扰报文流在业务节点间的分布,预先制定的TCN可保证报文流在业务节点间的均匀分布,且负载均衡的表现与业务处理完全解耦。
2)、若业务节点位于虚拟网络(即应用在NFV技术中),可能引入完全新 型的报文格式,使得目前已部署的业务节点无法识别新型格式的报文,难于获得好的hash计算方法用于负载均衡;而TCN可不依赖报文特征,完全均匀地分配,达到好的负载均衡效果。
3)、如果逐跳逐报文地进行hash运算,会影响业务节点对报文的处理性能,且hash运算需要在多点实现同步,带来管理维护成本上升。
通过本发明实施例二的方案,除了能够得到实施例一的效果外,还可以将大量的报文流归一到固定个数的“粗流”,所述粗流中的每个报文流中报文的预定数值相同,且报文的预定数值将不再改变,利用本实施例二的负载均衡运算后,如果粗流中每个报文流中报文携带的Stage值相同,则所述粗流将全部流经相同的业务节点,如果存在至少两条报文流中报文的Stage值不同的情况,则粗流中的报文流也会根据以上hash运算规则,有规律地流经不同的业务节点,因此,在报文流相对稳定时,只要合理地为报文确定预定数值,就可以在统计意义上实现同一跳中业务节点的负载均衡。
本发明实施例二的方案是实现实施例一的优选方式,但本发明实施例一也不限于通过其他方式来为报文选择下一跳中的业务节点。
优选地,在本实施例一或实施例二描述方案的基础上,将进行路由的报文流视为正向流,如果其对应的反向流的传输路径是正向流的传输路径的逆过程,就可以实现正、反向业务流共路。进而,如果正向流的路由过程可防止同一报文流中报文错序,满足业务节点对报文的状态记录要求,且实现同一跳业务节点中的负载均衡,则反向流也能够得到上述效果,下面通过实施例三对报文流的双向路由过程进行描述。
实施例三:
本发明实施例三在实施例一和实施例二的基础上对报文进行处理,以达到双向流的路由过程目的,以图5所示的业务节点拓扑状态为例,假设正向流flow流经业务节点的顺序是A-B1-C,则反向流flow-r流经业务节点的顺序是C-B1-A,这样做可使得正、反向流共路。
如图6所示,本实施例三的具体做法如下:
步骤301:正向流flow的报文从业务节点A路由至业务节点B1。
本步骤301的具体实现方式与实施例一和实施例二的方案相同,假设Controller向正向流的流分类模块下发Stage值取0,TCN=24,SID=1001,源IP地址是业务节点A的IP地址:10.10.1.1,目的IP地址是业务节点C的IP地址:10.10.1.4,SRF1中存储的负载均衡表如表4所示。

表4
需要说明的是,若报文中没有携带TCN,则本实施例的方案中也不涉及TCN,在选择下一跳的业务节点时,可按照报文所在的业务流中所有报文共有的传输参数转换得到预定数值。
步骤302:业务节点B1向Controller上报正向流flow的五元组信息和对应的反向流flow-r的五元组信息。
由于报文流可通过其五元组信息来唯一表示,因此,业务节点B1向Controller上报正向流flow和反向流flow-r的五元组信息,Controller可识别出需共路的正反向流。
可选地,所述业务节点B1还可以向Controller上报自身的节点标识,以便于使Controller获知有正反向流共路需求的业务节点。
在本实施例的方案中,报文可能会流经多个业务节点,接收到报文的业务节点并不都需要向Controller上报正反向流的五元组信息,可由有正反向流共路需求的业务节点,如对报文有状态记录要求的业务节点向Controller上报。
步骤303:Controller在本地记录接收到的正反向流五元组的关联关系,并根据之前向流分类模块下发的TCN和Stage值,确定正反向流的TCN=24,Stage值取0。
步骤304:报文继续路由,直至正向流路由结束。
步骤305:Controller生成与本地记录的反向流的五元组信息匹配的反向流时,向反向流的流分类模块下发与正向流相同的Stage值和TCN。
本步骤305中,Controller下发的Stage值取0,TCN=24,SID=1002,源IP地址是业务节点C的IP地址:10.10.1.4,目的IP地址是业务节点A的IP地址:10.10.1.1,SRF4中存储的负载均衡表如表5所示。

表5
在本实施例三的方案中,正向流的流分类模块与反向流的流分类模块可以是同一网元,也可以是不同的网元,本发明实施例并不对流分类模块的形式做限定,只要确保所有的流分类模块具有与Controller通信的能力即可。
步骤306:流分类模块将所述Stage值和TCN携带在反向流的报文中。
步骤307:反向流flow-r的报文从业务节点A路由至业务节点B1,再路由至业务节点A。
由于反向流的报文中携带的是与正向流相同的Stage值和TCN,因此,反向流中的报文在图5所示的业务节点拓扑状态中按照实施例一的方案进行处理时,确保会按照C-B1-A的顺序进行路由,实现与正向流的共路。
通过本发明实施例的方案,利用控制面中的Stage值实现新生成的报文流和旧报文流的区分,旧报文流在业务节点的拓扑状态改变时不改向,新报文流按照改变后的业务节点的拓扑状态进行分流,在保证同一报文流中的报文不改向的情况下,实现业务节点的拓扑状态改变负载均衡的平滑过渡;业务节点的负载均衡并不以报文流的增加而增加复杂度,可扩展性强。
实施例四:
本发明实施例四描述了一种与实施例一至实施例三属于统一发明构思下 的报文处理系统,如图7所示,以三跳业务节点为例,所述系统包括负载均衡设备以及附着在负载均衡设备上的业务节点,其中:
所述负载均衡设备,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选择的所述业务节点,其中,同一报文流中所有报文携带的状态值相同;
所述业务节点,用于接收所述报文。
所述负载均衡设备可以是与附着在其上的业务节点独立的网元,如SRF,所述SRF可以由物理实体实现,也可以由软件集成实现;所述负载均衡设备还可以是与附着在其上的业务节点集成在一起的网元,以虚拟机的形式出现。
所述业务节点是指能够对报文进行业务处理的网络设备,如防火墙、交换机等。
可选地,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。
可选地,所述业务节点的拓朴状态包括同一业务的业务节点数量。
可选地,所述系统还包括中心控制设备和流分类设备,其中:
所述中心控制设备,用于生成所述状态值并下发给所述流分类设备;
所述流分类设备,用于将所述状态值携带在当前生成的报文流的报文中。
可选地,所述中心控制设备,还用于对业务节点的拓扑状态进行监控,当业务节点的拓扑状态发生变化时,更新所述状态值,并将更新后的状态值发送给所述流分类设备;
所述流分类设备,还用于将更新后的状态值携带在当前生成的报文流的报文中。
可选地,所述负载均衡设备,具体用于利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。
可选地,所述负载均衡设备,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。
可选地,所述负载均衡设备,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点,并将报文发送给选择的业务节点所附着的负载均衡设备;
所述业务节点,具体用于接收所附着的负载均衡模块发送的报文。
可选地,所述负载均衡设备,具体用于从报文中获取携带的所述预定数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。
可选地,所述中心控制设备,还用于将所述预定数值下发给流分类设备;
所述流分类设备,还用于将所述预定数值携带在所述报文中。
可选地,所述中心控制设备,具体用于从资源池中随机选取的一个数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到的数值,或根据业务节点负载状态选取的一个数值作为所述预定数值并下发给流分类设备。
可选地,所述业务节点,还用于向中心控制设备上报所述报文所在的报文流的五元组信息,以及对应的反向流的五元组信息;
所述中心控制设备,用于根据反向流的五元组信息确定生成所述反向流时,向流分类设备下发所述报文流中的报文所携带的状态值;
所述流分类设备,用于将该状态值携带在所述反向流的报文中,使得所述反向流中的报文在该状态值所标识的业务节点拓扑架构中进行处理。
可选地,所述中心控制设备,还用于在业务节点接收到的报文中携带有预定数值时,在确定生成所述反向流时,向流分类设备下发该预定数值;
所述流分类设备,还用于将该预定数值携带在所述反向流的报文中。
实施例五:
本发明实施例五描述了一种与实施例一至实施例四属于同一发明构思下的负载均衡设备,如图8(a)所示,所述负载均衡设备包括业务节点确定单元11、业务节点选择单元12和报文发送单元13,其中:
业务节点确定单元11用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,其中,同一报文流中所有报文携带的状态值相同;
业务节点选择单元12用于从所述状态值在下一跳所标识的业务节点中选择一个业务节点;
报文发送单元13用于将所述报文发送至选择的所述业务节点。
可选地,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。
可选地,所述业务节点的拓朴状态包括同一业务的业务节点数量。
可选地,所述业务节点选择单元12具体用于利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。
可选地,所述业务节点选择单元12具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。
可选地,所述业务节点选择单元12具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点;
所述报文发送单元13具体用于将所述报文发送至选择的业务节点所附着的负载均衡设备。
可选地,所述负载均衡设备还包括预定数值确定单元14,用于从所述报文 中获取携带的所述预定数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。
本发明实施例五还描述了另一种与实施例一至实施例四属于同一发明构思下的负载均衡模块,如图8(b)所示,所述负载均衡设备包括处理器21和接口22,其中:
处理器21用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,其中,同一报文流中所有报文携带的状态值相同,以及从所述状态值在下一跳所标识的业务节点中选择一个业务节点;
所述接口22用于将所述报文发送至选择的所述业务节点。
可选地,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。
可选地,所述业务节点的拓朴状态包括同一业务的业务节点数量。
可选地,所述处理器21具体用于利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。
可选地,所述处理器21具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。
可选地,所述处理器21具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点;
所述端口22具体用于将所述报文发送至选择的业务节点所附着的负载均衡设备。
可选地,所述处理器21具体用于从所述报文中获取携带的所述预定数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。
实施例六:
本发明实施例六描述了一种中心控制设备,如图9所示,所述中心控制设备包括第一生成单元31和第一发送单元32,其中:
第一生成单元31用于生成状态值;
第一发送单元32用于将所述状态值发送给流分类设备,并指示流分类设备将所述状态值携带在所述报文中。
可选地,所述中心控制模块还包括监控单元33,用于对业务节点的拓扑状态进行监控;
所述第一生成单元31还用于当业务节点的拓扑状态发生变化时,更新所述状态值;
所述第一发送单元32还用于将更新后的状态值发送给所述流分类设备,由所述流分类设备将更新后的状态值携带在当前生成的报文流的报文中。
可选地,所述中心控制设备还包括:
第二生成单元34,用于为所述报文生成预定数值;
第二发送单元35,用于将所述预定数值发送给流分类设备,由所述流分类设备将所述预定数值携带在所述报文中。
可选地,所述第二生成单元34,具体用于从资源池中随机选取的一个数值,或是根据报文所在的业务流中所有报文共有的传输参数转换得到的数值,或是根据业务节点负载状态选取的一个数值,作为所述预定数值。
可选地,所述中心控制设备还包括:
接收单元36,用于接收业务节点上报的所述报文所在的报文流的五元组信息,以及对应的反向流的五元组信息;
所述第一生成单元31,具体用于根据反向流的五元组信息确定生成所述反向流时,为反向流中的报文生成与所述报文流中的报文相同的状态值;
所述第一发送单元32,具体用于将所述状态值发送给流分类设备,由流分类设备将所述状态值携带在所述反向流的报文中;
所述第二生成单元34,具体用于为反向流中的报文生成与所述报文流中的报文相同的预定数值;
所述第二发送单元35,具体用于将所述预定数值发送给流分类设备,由流分类设备将所述预定数值携带在所述反向流的报文中。
本发明实施例六描述了另一种中心控制设备,所述中心控制设备包括接口和处理器,其中:
所述处理器用于生成状态值;
所述接口用于将所述状态值发送给流分类设备,并指示流分类设备将所述状态值携带在所述报文中。
可选地,所述处理器还用于对业务节点的拓扑状态进行监控,当业务节点的拓扑状态发生变化时,更新所述状态值;
所述接口还用于将更新后的状态值发送给所述流分类设备,由所述流分类设备将更新后的状态值携带在当前生成的报文流的报文中。
可选地,所述处理器还用于为所述报文生成预定数值;
所述接口还用于将所述预定数值发送给流分类设备,由所述流分类设备将所述预定数值携带在所述报文中。
可选地,所述处理器具体用于从资源池中随机选取的一个数值,或是根据报文所在的业务流中所有报文共有的传输参数转换得到的数值,或是根据业务节点负载状态选取的一个数值,作为所述预定数值。
可选地,所述接口还用于接收业务节点上报的所述报文所在的报文流的五元组信息,以及对应的反向流的五元组信息,并将所述处理器为反向流中的报文生成的状态值和预定数值发送给流分类设备,由流分类设备将所述状态值和预定数值携带在所述反向流的报文中;
所述处理器具体用于根据反向流的五元组信息确定生成所述反向流时,为反向流中的报文生成与所述报文流中的报文相同的状态值和预定数值。
本发明实施例四、实施例五和实施例六中所涉及的负载均衡设备、中心控 制设备和流分类设备可以是实施例一至实施例三中所涉及的负载均衡模块、中心控制模块和流分类模块。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可 读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

一种报文处理方法、系统及设备.pdf_第1页
第1页 / 共29页
一种报文处理方法、系统及设备.pdf_第2页
第2页 / 共29页
一种报文处理方法、系统及设备.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《一种报文处理方法、系统及设备.pdf》由会员分享,可在线阅读,更多相关《一种报文处理方法、系统及设备.pdf(29页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201310430811.0(22)申请日 2013.09.18H04W 28/08(2009.01)H04W 40/02(2009.01)H04L 12/803(2013.01)H04L 12/725(2013.01)(71)申请人华为技术有限公司地址 518129 广东省深圳市龙岗区坂田华为总部办公楼(72)发明人黄勇(74)专利代理机构北京同达信恒知识产权代理有限公司 11291代理人李姜(54) 发明名称一种报文处理方法、系统及设备(57) 摘要本发明公开了一种报文处理方法、系统及设备,通过预先为报文流中的报文配置用于标识业务节点。

2、在指定时间的拓扑状态的状态值,以便于在为该报文选择下一跳中的业务节点时,并不以下一跳中当前实际的业务节点拓扑状态为选择基础,而是以所述状态值所标识的指定时间的业务节点拓扑状态为选择基础,只要同一报文流中每个报文中携带的状态值相同,即使业务节点的拓扑状态发生变化,还是能够为同一报文流中的各报文选择出相同的业务节点,避免出现同一条报文流的报文改向的问题。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书18页 附图7页(10)申请公布号 CN 104469845 A(43)申请公布日 2015.03.25CN 104469845 A1/3页21.一。

3、种报文处理方法,其特征在于,所述方法包括:在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点;从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选择的所述业务节点;其中,同一报文流中所有报文携带的状态值相同。2.如权利要求1所述的报文处理方法,其特征在于,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。3.如权利要求2所述的报文处理方法,其特征在于,所述业务节点的拓朴状态包括同一业务的业务节点数量。4.如权利要求1或2。

4、或3所述的报文处理方法,其特征在于,所述报文中携带的状态值是由中心控制模块生成并下发给流分类模块后,再由所述流分类模块携带在当前生成的报文流的报文中。5.如权利要求4所述的报文处理方法,其特征在于,所述中心控制模块对业务节点的拓扑状态进行监控,当业务节点的拓扑状态发生变化时,更新所述状态值,并将更新后的状态值发送给所述流分类模块,由所述流分类模块将更新后的状态值携带在当前生成的报文流的报文中。6.如权利要求15任一所述的报文处理方法,其特征在于,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,具体包括:利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个。

5、业务节点。7.如权利要求6所述的报文处理方法,其特征在于,利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算的运算结果选择一个业务节点,具体包括:将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。8.如权利要求7所述的报文处理方法,其特征在于,利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算的运算结果选择一个业务节点,具体包括:将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。

6、。9.如权利要求7或8所述的报文处理方法,其特征在于,所述预定数值是携带在报文中的,或是根据报文所在的业务流中所有报文共有的传输参数转换得到的。10.如权利要求9所述的报文处理方法,其特征在于,所述携带在报文中的预定数值是中心控制模块下发给流分类模块后,由所述流分类模块携带在所述报文中的。11.如权利要求10所述的报文处理方法,其特征在于,所述中心控制模块下发给流分类模块的预定数值是中心控制模块从资源池中随机选取的一个数值,或是中心控制模块根据报文所在的业务流中所有报文共有的传输参数转换得到的数值,或是中心控制模块根据权 利 要 求 书CN 104469845 A2/3页3业务节点负载状态选取。

7、的一个数值。12.如权利要求111任一所述的报文处理方法,其特征在于,所述方法还包括:接收到所述报文的业务节点向中心控制模块上报所述报文所在的报文流的五元组信息,以及对应的反向流的五元组信息,使得当所述中心控制模块根据反向流的五元组信息确定生成所述反向流时,向流分类模块下发所述报文流中的报文所携带的状态值,由所述流分类模块将该状态值携带在所述反向流的报文中,使得所述反向流中的报文在该状态值所标识的业务节点拓扑架构中进行处理。13.如权利要求12所述的报文处理方法,其特征在于,在业务节点接收到的报文中携带有预定数值时,中心控制模块确定生成所述反向流时,向反向流的流分类模块下发该预定数值,由所述反。

8、向流的流分类模块将该预定数值携带在所述反向流的报文中。14.一种报文处理系统,其特征在于,所述系统包括:负载均衡设备以及附着在负载均衡设备上的业务节点,其中:所述负载均衡设备,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选择的所述业务节点,其中,同一报文流中所有报文携带的状态值相同;所述业务节点,用于接收所述报文。15.如权利要求14所述的报文处理系统,其特征在于,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所。

9、携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。16.如权利要求14或15所述的报文处理系统,其特征在于,所述系统还包括中心控制设备和流分类设备,其中:所述中心控制设备,用于生成所述状态值并下发给所述流分类模块;所述流分类设备,用于将所述状态值携带在当前生成的报文流的报文中。17.一种负载均衡设备,其特征在于,所述负载均衡设备包括:业务节点确定单元,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,其中,同一报文流中所有报文携带的状态值相同;业务节点选择单元,用于从所述状态值在下一跳所标识的。

10、业务节点中选择一个业务节点;报文发送单元,用于将所述报文发送至选择的所述业务节点。18.如权利要求17所述的负载均衡设备,其特征在于,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。19.如权利要求18所述的负载均衡设备,其特征在于,所述业务节点的拓朴状态包括同一业务的业务节点数量。20.如权利要求17、18或19所述的负载均衡设备,其特征在于,所述业务节点选择单元,具体用于利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。权 利 要 求 书CN 104469845 A3/3页421.如。

11、权利要求20所述的负载均衡设备,其特征在于,所述业务节点选择单元,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。22.如权利要求21所述的负载均衡设备,其特征在于,所述业务节点选择单元,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。23.如权利要求21或22所述的负载均衡设备,其特征在于,所述负载均衡设备还包括:预定数值确定单元,用于从所述报文中获取携带的所述预定数值,或根据报。

12、文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。24.一种中心控制设备,其特征在于,所述中心控制设备包括:生成单元,用于生成状态值;发送单元,用于将所述状态值发送给流分类设备,并指示流分类设备将所述状态值携带在报文中。权 利 要 求 书CN 104469845 A1/18页5一种报文处理方法、 系统及设备技术领域0001 本发明涉及无线通信领域,尤其涉及一种报文处理方法、系统及设备。背景技术0002 在业务路由过程中,具有安全认证、过滤、统计监测、计费、流量加速等网络功能的业务节点,如防火墙、TCP(Transmission Control Protocol,传输控制协议)加速节点。

13、、NAT(Network Address Translate,网络地址转换)节点,这些业务节点组成业务节点的网络拓扑架构,部署在业务流流经的路径上,使得业务流能够在流经这些业务节点时被执行相应的网络功能。0003 但是,针对某一业务部署的网络拓扑架构中,业务节点的数量会发生变化,如根据网络忙闲程度的变化来增加或减少部署的业务节点,或是业务节点故障时数量减少等,也就是说,网络拓扑架构中部署的业务节点的数量是动态变化的,针对业务流中的某一报文流而言,若该报文流中的报文依次流经某一跳的业务节点时出现业务节点数量的变化,如增加了一个业务节点,则可能会导致报文流改向(即报文流中前若干个报文流经的业务节点。

14、与后若干个报文流经的业务节点不同)的问题,在此情况下,该报文流中的报文容易出现报文错序,同时,对于有报文状态记录要求的业务节点而言,也无法满足该业务节点的状态记录要求。发明内容0004 本发明实施例提供了一种报文处理方法、系统及设备,用以解决现有技术中存在的由于业务节点的拓扑状态变化导致报文流改向的问题。0005 第一方面,提供一种报文处理方法,所述方法包括:0006 在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点;0007 从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选。

15、择的所述业务节点;0008 其中,同一报文流中所有报文携带的状态值相同。0009 结合第一方面,在第一种可能的实现方式中,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。0010 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述业务节点的拓朴状态包括同一业务的业务节点数量。0011 结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述报文中携带的状态值是由中心控制模块生成并下发给流分类模块后,再由所述流分类模块携带在当前生成的报文流的报文中。0012 结合第。

16、一方面的第三种可能的实现方式,在第四种可能的实现方式中,说 明 书CN 104469845 A2/18页60013 所述中心控制模块对业务节点的拓扑状态进行监控,当业务节点的拓扑状态发生变化时,更新所述状态值,并将更新后的状态值发送给所述流分类模块,由所述流分类模块将更新后的状态值携带在当前生成的报文流的报文中。0014 结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,具体包括:0015 利用所述状态值在下一跳所标识的业。

17、务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。0016 结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算的运算结果选择一个业务节点,具体包括:0017 将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。0018 结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算的运算结果选择一个业务节点,具体包括:0019 将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所。

18、述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。0020 结合第一方面的第六种可能的实现方式或第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述预定数值是携带在报文中的,或是根据报文所在的业务流中所有报文共有的传输参数转换得到的。0021 结合第一方面的第八种可能的实现方式,在第九种可能的实现方式中,所述携带在报文中的预定数值是中心控制模块下发给流分类模块后,由所述流分类模块携带在所述报文中的。0022 结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,所述中心控制模块下发给流分类模块的预定数值是。

19、中心控制模块从资源池中随机选取的一个数值,或是中心控制模块根据报文所在的业务流中所有报文共有的传输参数转换得到的数值,或是中心控制模块根据业务节点负载状态选取的一个数值。0023 结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式、第一方面的第五种可能的实现方式、第一方面的第六种可能的实现方式、第一方面的第七种可能的实现方式、第一方面的第八种可能的实现方式、第一方面的第九种可能的实现方式或第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,所述方法还包括:0024 接收到所述报文的业务节点向中心控。

20、制模块上报所述报文所在的报文流的五元组信息,以及对应的反向流的五元组信息,使得当所述中心控制模块根据反向流的五元组信息确定生成所述反向流时,向流分类模块下发所述报文流中的报文所携带的状态值,由所述流分类模块将该状态值携带在所述反向流的报文中,使得所述反向流中的报文在该状说 明 书CN 104469845 A3/18页7态值所标识的业务节点拓扑架构中进行处理。0025 结合第一方面的第十一种可能的实现方式,在第十二种可能的实现方式中,在业务节点接收到的报文中携带有预定数值时,中心控制模块确定生成所述反向流时,向反向流的流分类模块下发该预定数值,由所述反向流的流分类模块将该预定数值携带在所述反向流。

21、的报文中。0026 第二方面,提供一种报文处理系统,所述系统包括:负载均衡设备以及附着在负载均衡设备上的业务节点,其中:0027 所述负载均衡设备,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,从所述状态值在下一跳所标识的业务节点中选择一个业务节点,并将所述报文发送至选择的所述业务节点,其中,同一报文流中所有报文携带的状态值相同;0028 所述业务节点,用于接收所述报文。0029 结合第二方面,在第一种可能的实现方式中,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的。

22、是该报文流生成时业务节点的拓扑状态。0030 结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述系统还包括中心控制设备和流分类设备,其中:0031 所述中心控制设备,用于生成所述状态值并下发给所述流分类设备;0032 所述流分类设备,用于将所述状态值携带在当前生成的报文流的报文中。0033 第三方面,提供一种负载均衡设备,所述负载均衡设备包括:0034 业务节点确定单元,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,其中,同一报文流中所有报文携带的状态值相同;0035 。

23、业务节点选择单元,用于从所述状态值在下一跳所标识的业务节点中选择一个业务节点;0036 报文发送单元,用于将所述报文发送至选择的所述业务节点。0037 结合第三方面,在第一种可能的实现方式中,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。0038 结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述业务节点的拓朴状态包括同一业务的业务节点数量。0039 结合第三方面、第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,0040 所述业务节点选择单元,具体用于利用所述状态值在下一。

24、跳所标识的业务节点的数量值进行负载均衡运算,根据运算结果选择一个业务节点。0041 结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,0042 所述业务节点选择单元,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。0043 结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,说 明 书CN 104469845 A4/18页80044 所述业务节点选择单元,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配。

25、,选择与取模结果匹配的运算值对应的业务节点。0045 结合第三方面的第四种可能的实现方式或第三方面的第五种可能的实现方式,在第六种可能的实现方式中,所述负载均衡设备还包括:0046 预定数值确定单元,用于从所述报文中获取携带的所述预定数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。0047 第四方面,提供一种负载均衡设备,所述负载均衡设备包括:0048 处理器,用于在确定报文的下一跳有多个业务节点时,根据所述报文中携带的用于标识业务节点在指定时间的拓扑状态的状态值,确定所述状态值在下一跳所标识的业务节点,其中,同一报文流中所有报文携带的状态值相同,以及从所述状态值在下。

26、一跳所标识的业务节点中选择一个业务节点;0049 所述接口,用于将所述报文发送至选择的所述业务节点。0050 结合第四方面,在第一种可能的实现方式中,针对汇聚在同一业务流中的多条报文流,任一报文流中的报文所携带的状态值所标识的是该报文流生成时业务节点的拓扑状态。0051 结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述业务节点的拓朴状态包括同一业务的业务节点数量。0052 结合第四方面、第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,在第三种可能的实现方式中,0053 所述处理器,具体用于利用所述状态值在下一跳所标识的业务节点的数量值进行负载均衡运算,根据运算。

27、结果选择一个业务节点。0054 结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,0055 所述处理器,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,按照取模结果选择一个业务节点做为下一跳业务节点。0056 结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,0057 所述处理器,具体用于将预定数值与所述状态值在下一跳所标识的业务节点的数量值取模,根据所述状态值在下一跳所标识的各业务节点对应的运算值,将取模结果与所述运算值进行匹配,选择与取模结果匹配的运算值对应的业务节点。0058 结合第四方面的第四种可能的实现方式或第四方面的第五种可能的实现方式,。

28、在第六种可能的实现方式中,0059 所述处理器,具体用于从所述报文中获取携带的所述预定数值,或根据报文所在的业务流中所有报文共有的传输参数转换得到所述预定数值。0060 第五方面,提供了一种中心控制设备,所述中心控制设备包括:0061 生成单元,用于生成状态值;0062 发送单元,用于将所述状态值发送给流分类设备,并指示流分类设备将所述状态值携带在报文中。0063 第六方面,提供一种中心控制设备,所述中心控制设备包括:0064 处理器,用于生成状态值;说 明 书CN 104469845 A5/18页90065 接口,用于将所述状态值发送给流分类设备,并指示流分类设备将所述状态值携带在报文中。0。

29、066 本发明实施例通过预先为报文流中的报文配置用于标识业务节点在指定时间的拓扑状态的状态值,以便于在为该报文选择下一跳中的业务节点时,并不以下一跳中当前实际的业务节点拓扑状态为选择基础,而是以所述状态值所标识的指定时间的业务节点拓扑状态为选择基础,只要同一报文流中每个报文中携带的状态值相同,即使业务节点的拓扑状态发生变化,还是能够为同一报文流中的各报文选择出相同的业务节点,避免出现同一条报文流的报文改向的问题。附图说明0067 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人。

30、员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。0068 图1为本发明实施例一中报文处理方法的步骤示意图;0069 图2为本发明实施例一中业务节点拓扑架构示意图;0070 图3为以三跳业务节点为例,业务节点间负载均衡示意图;0071 图4为本发明实施例二中报文处理方法的步骤示意图;0072 图5为本发明实施例三中业务节点拓扑架构示意图;0073 图6为本发明实施例三中报文处理方法的步骤示意图;0074 图7为本发明实施例四中报文处理系统的结构示意图;0075 图8(a)和图8(b)为本发明实施例五中负载均衡设备的结构示意图;0076 图9为本发明实施例六中中心控制设备的。

31、结构示意图。具体实施方式0077 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。0078 为了确保同一报文流中的报文流向不变的目的,本发明实施例提出了一种报文处理方案,通过预先为报文流中的报文配置用于标识业务节点在指定时间的拓扑状态的状态值,在为该报文选择下一跳中的业务节点时,并不以下一跳中当前实际的业务节点拓扑状态为选择基础,而是以所述状态值所标识的指定时间的业务节点拓扑状态。

32、为选择基础,只要同一报文流中每个报文中携带的状态值相同,即使在该报文流流经业务节点的过程中,业务节点的拓扑状态发生变化,根据每个报文中携带的相同的状态值还是能够为同一报文流中的各报文选择出相同的业务节点,因此,避免出现同一条报文流的报文错序问题,同时还能够满足业务节点(如NAT节点)对同一报文流中各报文的状态进行记录的处理要求。0079 本发明各实施例所指的一跳包括了这样的至少一个业务节点:在业务节点的拓扑架构中,具有相同网络功能的业务节点,其中任一业务节点能够为报文流中的报文提供该说 明 书CN 104469845 A6/18页10网络功能。0080 本发明各实施例所指的业务节点,是指能够对。

33、报文进行业务处理的网络设备,如防火墙、交换机等。0081 下面结合具体实施例对本发明方案做具体描述,当然,本发明方案并不局限于以下实施例。0082 实施例一:0083 如图1所示,为本发明实施例一中报文处理方法的步骤示意图,所述方法包括以下步骤:0084 步骤101:中心控制模块(Controller)生成Stage值(状态值)。0085 所述Stage值用于标识业务节点在指定时间的拓扑状态,所述指定时间可以是指生成该Stage值的时间,所述拓扑状态可以指针对某一业务的业务节点数量,具体地,可以是该业务在每一跳中的业务节点数量。0086 所述Controller实时对业务节点的拓扑状态进行监控。

34、,当业务节点的拓扑状态发生变化时,如增加或减少业务节点,Controller将更新Stage值,使得更新后的Stage值能够标识业务节点的数量发生变化后的业务节点拓扑状态。0087 例如,在T1时刻,Controller生成的Stage值取0,表示在T1时刻业务节点的拓扑状态与Stage值取0对应;假设在之后的T2时刻,某一跳中增加了一个业务节点,则Controller将Stage值更新为1,表示在T2时刻更新后的业务节点的拓扑状态与Stage值取1对应。0088 只要Stage值取值不重复,Stage值对应的业务节点的拓扑状态就不会冲突,优选地,可设定初始时Stage值为0,每当业务节点的拓。

35、扑状态发生变化,就将Stage值加1,直至Stage值达到取值上限后,再从0重新开始取值。只要Stage值的取值上限足够大,当Stage值从取值上限转而从0重新开始取值时,携带上一轮Stage值取0的报文已结束处理,本轮Stage值加满后再次取0时对应的业务节点的拓扑状态与上一轮Stage值取0时对应的业务节点的拓扑状态不冲突。0089 以上是将Stage值视为一个常数来标识业务节点在指定时间的拓扑状态的,本发明实施例中的Stage值也可以用其他形式来表示,如时间戳或负载均衡值等表示。0090 本步骤101可以是实现本发明目的的优选步骤,本发明实施例也不限于由其他网元来生成Stage值,且St。

36、age值的取值方式也不限于以上描述的方式,只要保证同时使用的相同的Stage值对应的业务节点的拓扑状态相同即可。0091 步骤102:Controller将生成的Stage值下发给流分类模块(Flow Classifier)。0092 Controller在每次生成或更新一个Stage值时,就将该Stage值下发给流分类模块。Controller可同时控制至少一个流分类模块,在每次更新Stage值后,将更新后的Stage值下发给每个控制的流分类模块。0093 优选地,在报文流生成时,Controller还向该报文流的流分类模块下发该报文流的业务路由标识(SID),用于表示该报文流在业务节点的拓扑架构中的传输路径,同时,Controller还将生成的报文流下发给该流分类模块,要求流分类模块对接收到的报文流中的报文进行处理。0094 步骤103:流分类模块将所述Stage值携带在报文流中的各报文的报文头中。说 明 书CN 104469845 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1