一种报文处理方法及设备技术

技术编号:9893726 阅读:71 留言:0更新日期:2014-04-08 01:29
本发明专利技术公开了一种报文处理方法及设备,通过将报文业务处理过程中产生的事件消息组装为与所述报文具备相同格式的伪报文,并按照所述事件消息的类型,将所述伪报文插入到所述报文所在报文队列的相应位置当中的方式,来实现报文与事件消息的统一管理,从而简化了报文与事件消息的处理逻辑,达到了提高报文与事件消息的处理效率与处理灵活性、并进而提高系统性能的目的。

【技术实现步骤摘要】
一种报文处理方法及设备
本专利技术涉及通信
,尤其涉及一种报文处理方法及设备。
技术介绍
目前,网络设备(如业务网关、路由器以及网络安全设备等)上通常会运行协议识别、内容解析、负载均衡、网络加速以及安全等业务,以支撑网络流量的有效管理。具体地,网络设备在对接收到的网络数据流中的报文进行处理时,通常需要严格按照各报文的先后顺序进行,并且,网络设备上运行的各种业务在处理同一报文时也需要严格保持有序性。例如,针对任一报文,网络设备需要首先对其执行协议识别,之后,才能对其执行内容解析,最后才能对其执行安全检查和/或负载均衡等操作。另外,针对报文在业务处理过程中产生的建链或断链等事件消息,也需要有序地传递给各个业务应用。基于上述情况,网络设备通常可采用以下方式对接收到的报文以及报文在业务处理过程中产生的事件消息进行处理:方式一:根据网络设备接收报文的先后顺序以及报文携带的时间戳、分片等信息,将各报文组成相应的报文队列,以及,按照事件消息产生的先后顺序,将所有由报文产生的事件消息也组成相应的事件消息队列。在报文队列和事件消息队列上,分别管理和维护待执行的各业务处理模块,如图1中报文队列对应的协议识别模块、IPSIntrusionPreventionSystem,入侵预防系统)模块以及ADC(ApplicationDeliveryController,应用交付控制器)模块,以及事件消息队列对应的ADC模块或IPS模块等,以此保证报文以及事件消息处理的有序性,此时,所述报文以及事件消息的处理过程可如图1所示。但是,由于在采用上述方式对各报文以及各事件消息进行业务处理时,存在报文队列、事件消息队列以及业务处理模块队列等多种队列,从而导致队列之间的管理调度较为复杂;并且,由报文产生的事件消息,其执行的时机,有可能需要与报文同步,若采用多个队列则很难实现;再有,当网络设备采用多核多线程方式处理报文和事件消息时,会导致锁资源的频繁使用,在加大系统开销的同时增加了并行处理冲突的可能性,对系统资源和性能均存在较大的浪费。方式二:对事件消息的处理在报文队列处理过程中触发,并以中断的形式实现,此时,所述报文以及事件消息的处理过程可如图2所示。与方式一相比,由于可采用中断的形式对报文处理过程中产生的事件消息进行处理,因此可达到隐藏事件消息队列、从而降低队列调度复杂性的目的。但是,对于某些需要在报文完整处理完毕后才能执行的事件消息,方式二并不能够完全支持,再有,由于在采用方式二对各报文以及各事件消息进行业务处理时,事先注册了多个业务处理模块,如图2中报文对应的IPS模块以及ADC模块,或者断链事件消息对应的IPS断链处理模块、ADC断链处理模块以及WOC(WANOptimizationController,广域网优化控制器)断链处理模块等,即使实际需要执行的业务处理模块只有其中的一部分,也需要将所有业务处理模块依次执行过去,对系统的性能会有一定程度的浪费。也就是说,目前存在的对各报文以及各在报文处理过程中产生的事件消息进行处理的方式并不佳,因此,亟需提供一种新的处理方式以解决上述问题。
技术实现思路
本专利技术实施例提供了一种报文处理方法及设备,用以解决目前存在的对各报文以及各在报文处理过程中产生的事件消息进行处理的方式并不佳的问题。第一方面,提供了一种报文处理方法,包括:网络设备从包括至少一个报文的报文队列中获取当前待处理报文,并确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序;根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。结合第一方面,在第一方面的第一种可能的实现方式中,确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序,包括:根据预先配置的业务处理模块与报文运行条件的对应关系,或预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行条件或运行场景相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件或运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。结合第一方面,在第一方面的第二种可能的实现方式中,在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,所述方法还包括:若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文;若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给报文接收设备。结合第一方面,或者第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,包括:根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。结合第一方面,或者第一方面的第一种或第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述事件消息包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息以及事务结束事件消息中的一种或多种;所述将所述事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,并根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中,包括:当所述事件消息为建链完成事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处;或者,当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处;或者,当所述事件消息为断链事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含断链事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报尾位置处。第二方面,提供了一种报文处理设备,包括:报文获取单元,用于从包括至少一个报文的报文队列中获取当前待处理报文;模块确定单元,用于确定对所述报文获取单元获取到的当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序;报文处理单元,用于根据所述模块确定单元确定的所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。结合第二方面,在第二方面的第一种可能的本文档来自技高网
...
一种报文处理方法及设备

【技术保护点】
一种报文处理方法,其特征在于,包括:网络设备从包括至少一个报文的报文队列中获取当前待处理报文,并确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序;根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。

【技术特征摘要】
1.一种报文处理方法,其特征在于,包括:网络设备从包括至少一个报文的报文队列中获取当前待处理报文,并确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序;根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。2.如权利要求1所述的报文处理方法,其特征在于,确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序,包括:根据预先配置的业务处理模块与报文运行条件的对应关系,或预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行条件或运行场景相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件或运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。3.如权利要求1所述的报文处理方法,其特征在于,在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,所述方法还包括:若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文;若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给报文接收设备。4.如权利要求1~3任一所述的报文处理方法,其特征在于,根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,包括:根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。5.如权利要求1~3任一所述的报文处理方法,其特征在于,所述事件消息包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息以及事务结束事件消息中的一种或多种;所述将所述事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,并根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中,包括:当所述事件消息为建链完成事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处;或者,当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处;或者,当所述事件消息为断链事件消息时,将所述事件消息组装为与所述当前待处理报文具...

【专利技术属性】
技术研发人员:潘方敏刘赫伟
申请(专利权)人:杭州华为数字技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1