一种网络设备中的数据处理方法及系统技术方案

技术编号:15080580 阅读:133 留言:0更新日期:2017-04-07 12:39
本发明专利技术公开了一种网络设备中的数据处理方法及系统,用于避免升级时流量中断,该方法包括:数据包收发进程接收数据包放入第一共享内存区域;第一数据包处理进程从第一共享内存区域获取数据包,根据会话表对数据包进行处理,会话表及需要缓存的数据包保存于第二共享内存区域;第二数据包处理进程启动;第二数据包处理进程将第一共享内存区域及第二共享内存区域映射到自身进程空间;第二数据包处理进程向第一数据包处理进程发送升级通知;第一数据包处理进程收到升级通知后,停止从第一共享内存区域获取数据包,处理完成数据包后向第二数据包处理进程发送处理完成通知,退出进程;第二数据包处理进程收到处理完成通知后,变为第一数据包处理进程。

【技术实现步骤摘要】

本专利技术涉及网络设备
,具体涉及一种网络设备中的数据处理方法及系统
技术介绍
网络设备一般根据功能可以划分为控制面以及数据面两部分,其中控制面用于处理网络设备之间的协议包,承担对网络设备配置管理的功能;数据面用于从网络设备的网卡接收发送数据包、解析数据包、根据会话表处理数据包,数据面是网络设备核心的业务逻辑单元。在数据面软件升级时,数据面进程重启会导致网络设备停止从网卡收发数据包,同时会引起数据面进程的内存中保存的会话表等核心数据结构丢失,进而引起网络流量中断。在现有技术中,为了避免数据面升级过程中网络流量中断,通常采取双机热备的方法,即在网络中同时接入两台网络设备,一台网络设备为主设备,承担数据包收发、处理等工作,另一台网络设备为备设备,处于休眠状态。在网络通信过程中主设备把会话表同步给备设备,在主设备升级时,备设备迅速接替主设备完成数据包的转发、处理等工作,但是这种方式需要在网络中同时接入两台网络设备,硬件成本较高。
技术实现思路
有鉴于此,本专利技术提供一种网络设备中的数据处理方法及系统,以解决现有技术中为避免网络流量中断而造成硬件成本较高的技术问题。为解决上述问题,本专利技术提供的技术方案如下:一种网络设备中的数据处理方法,所述方法应用于网络设备的数据面,所述数据面包括数据包收发进程、第一数据包处理进程、第一共享内存区域以及第二共享内存区域,所述第一共享内存区域被映射到所述数据包收发进程的进程空间以及所述第一数据包处理进程的进程空间,所述第二共享内存区域被映射到所述第一数据包处理进程的进程空间;所述方法包括:所述数据包收发进程接收数据包并将所述数据包放入所述第一共享内存区域;所述第一数据包处理进程从所述第一共享内存区域获取所述数据包,并根据会话表对所述数据包进行处理,所述会话表以及处理后需要缓存的数据包保存于所述第二共享内存区域;根据网络设备升级程序,第二数据包处理进程启动;所述第二数据包处理进程将所述第一共享内存区域以及所述第二共享内存区域映射到所述第二数据包处理进程的进程空间;所述第二数据包处理进程向所述第一数据包处理进程发送升级通知;所述第一数据包处理进程收到所述升级通知后,停止从所述第一共享内存区域获取所述数据包,在处理完成已经获取的数据包后向所述第二数据包处理进程发送处理完成通知,并退出进程;所述第二数据包处理进程接收到所述处理完成通知后,变更为所述第一数据包处理进程。相应的,所述第一共享内存区域包括正向环形缓存队列、反向环形缓存队列以及数据包内存池;所述数据包收发进程接收数据包并将所述数据包放入所述第一共享内存区域,包括:所述数据包收发进程接收数据包将所述数据包放入所述数据包内存池,并将所述数据包在所述数据包内存池中的索引放入所述正向环形缓存队列。相应的,所述第一数据包处理进程从所述第一共享内存区域获取所述数据包,并根据会话表对所述数据包进行处理,包括:所述第一数据包处理进程根据所述正向环形缓存队列中的所述数据包在所述数据包内存池中的索引获取所述数据包;所述根据会话表对所述数据包进行处理,将处理后需要丢弃的数据包丢弃,将处理后需要缓存的数据包放入所述第二共享内存区域,将处理后需要发出的数据包放入所述数据包内存池,并将所述需要发出的数据包在所述数据包内存池中的索引放入所述反向环形缓存队列,以使所述数据包收发进程根据所述反向环形缓存队列中的所述需要发出的数据包在所述数据包内存池中的索引获取所述需要发出的数据包进行发送。相应的,所述方法还包括:所述第一数据包处理进程每次从所述第一共享内存区域获取一个数据包之后,将正在处理数据包计数器加一,在每次根据会话表对一个数据包进行处理之后,将所述正在处理数据包计数器减一。相应的,所述在处理完成已经获取的数据包后向所述第二数据包处理进程发送处理完成通知,包括:在判断所述正在处理数据包计数器为零后向所述第二数据包处理进程发送处理完成通知。相应的,所述第一共享内存区域的大小根据所述数据包内存池大小、所述正向环形缓存队列大小以及所述反向环形缓存队列大小确定;所述第二共享内存区域的大小根据所述会话表的存储区域大小以及所述数据包缓存区大小确定。一种网络设备中的数据处理系统,所述系统包括:数据包收发进程、第一数据包处理进程、第一共享内存区域以及第二共享内存区域,所述第一共享内存区域被映射到所述数据包收发进程的进程空间以及所述第一数据包处理进程的进程空间,所述第二共享内存区域被映射到所述第一数据包处理进程的进程空间;所述数据包收发进程,用于接收数据包并将所述数据包放入所述第一共享内存区域;所述第一数据包处理进程,用于从所述第一共享内存区域获取所述数据包,并根据会话表对所述数据包进行处理;所述第二共享内存区域,用于保存所述会话表以及处理后需要缓存的数据包;所述系统还包括第二数据包处理进程,所述第二数据包处理进程是根据网络设备升级程序启动的,所述第一共享内存区域以及所述第二共享内存区域被映射到所述第二数据包处理进程的进程空间;所述第二数据包处理进程,用于向所述第一数据包处理进程发送升级通知;所述第一数据包处理进程,还用于收到所述升级通知后,停止从所述第一共享内存区域获取所述数据包,在处理完成已经获取的数据包后向所述第二数据包处理进程发送处理完成通知,并退出进程;所述第二数据包处理进程,还用于接收到所述处理完成通知后,变更为所述第一数据包处理进程。相应的,所述第一共享内存区域包括正向环形缓存队列、反向环形缓存队列以及数据包内存池;所述数据包内存池,用于保存所述数据包收发进程接收的数据包,以及保存所述数据包处理进程需要发出的数据包;所述正向环形缓存队列,用于保存所述数据包在所述数据包内存池中的索引;所述正向环形缓存队列,用于保存所述需要发出的数据包在所述数据包内存池中的索引。相应的,所述第一数据包处理进程中包括正在处理数据包计数器;所述正在处理数据包计数器,用于在所述第一数据包处理进程每次从所述第一共享内存区域获取一个数据包之后加一,在每次根据会话表对一个数据包进行处理之后减一。相应的,所述第一共享内存区域的大小根据所述数据包内存池大小、所述正向环形缓存队列大小以及所述反向环形缓存队列大小确定;所述第二共享内存区域的大小根据所述会话表的存储区域大小以及所述数据包缓存区大小确定。由此可见,本专利技术实施例具有如下有益效果:本专利技术实施例在网络设备数据面建立数据包收发进程以及数据包处理进程,由于数据包收发进程功能简单无需升级,在网络设备软件升级时只需对数据包处理进程进行更新,在更新时启动新的数据包处理进程,第一共享内存区域和第二共享内存区域均映射到新的数据包处理进程,此时数据包收发进程没有停止接收数据包,接收到的数据包正常放入第一共享内存区域,因此不会丢包,原数据包处理进程在将已经获取的数据包处理完成后退出进程,由新的数据包处理进程接替原数据包处理进程工作,由于会话表和数据包缓存区位于第二共享内存区域内,所以新的数据包处理进程可以接管原数据包处理进程的会话表以及缓存的数据包,会话表和缓存的数据包都不会丢失,实现数据面升级过程中网络流量不中断,且不需要另外的网络设备,节约了硬件成本。附图说明图1为本专利技术实施例中提供的数据面结构示意图;图2为本专利技术实施例中提供的数据面初始化过本文档来自技高网...
一种网络设备中的数据处理方法及系统

【技术保护点】
一种网络设备中的数据处理方法,其特征在于,所述方法应用于网络设备的数据面,所述数据面包括数据包收发进程、第一数据包处理进程、第一共享内存区域以及第二共享内存区域,所述第一共享内存区域被映射到所述数据包收发进程的进程空间以及所述第一数据包处理进程的进程空间,所述第二共享内存区域被映射到所述第一数据包处理进程的进程空间;所述方法包括:所述数据包收发进程接收数据包并将所述数据包放入所述第一共享内存区域;所述第一数据包处理进程从所述第一共享内存区域获取所述数据包,并根据会话表对所述数据包进行处理,所述会话表以及处理后需要缓存的数据包保存于所述第二共享内存区域;根据网络设备升级程序,第二数据包处理进程启动;所述第二数据包处理进程将所述第一共享内存区域以及所述第二共享内存区域映射到所述第二数据包处理进程的进程空间;所述第二数据包处理进程向所述第一数据包处理进程发送升级通知;所述第一数据包处理进程收到所述升级通知后,停止从所述第一共享内存区域获取所述数据包,在处理完成已经获取的数据包后向所述第二数据包处理进程发送处理完成通知,并退出进程;所述第二数据包处理进程接收到所述处理完成通知后,变更为所述第一数据包处理进程。...

【技术特征摘要】
1.一种网络设备中的数据处理方法,其特征在于,所述方法应用于网络设备的数据面,所述数据面包括数据包收发进程、第一数据包处理进程、第一共享内存区域以及第二共享内存区域,所述第一共享内存区域被映射到所述数据包收发进程的进程空间以及所述第一数据包处理进程的进程空间,所述第二共享内存区域被映射到所述第一数据包处理进程的进程空间;所述方法包括:所述数据包收发进程接收数据包并将所述数据包放入所述第一共享内存区域;所述第一数据包处理进程从所述第一共享内存区域获取所述数据包,并根据会话表对所述数据包进行处理,所述会话表以及处理后需要缓存的数据包保存于所述第二共享内存区域;根据网络设备升级程序,第二数据包处理进程启动;所述第二数据包处理进程将所述第一共享内存区域以及所述第二共享内存区域映射到所述第二数据包处理进程的进程空间;所述第二数据包处理进程向所述第一数据包处理进程发送升级通知;所述第一数据包处理进程收到所述升级通知后,停止从所述第一共享内存区域获取所述数据包,在处理完成已经获取的数据包后向所述第二数据包处理进程发送处理完成通知,并退出进程;所述第二数据包处理进程接收到所述处理完成通知后,变更为所述第一数据包处理进程。2.根据权利要求1所述的方法,其特征在于,所述第一共享内存区域包括正向环形缓存队列、反向环形缓存队列以及数据包内存池;所述数据包收发进程接收数据包并将所述数据包放入所述第一共享内存区域,包括:所述数据包收发进程接收数据包将所述数据包放入所述数据包内存池,并将所述数据包在所述数据包内存池中的索引放入所述正向环形缓存队列。3.根据权利要求2所述的方法,其特征在于,所述第一数据包处理进程从所述第一共享内存区域获取所述数据包,并根据会话表对所述数据包进行处理,包括:所述第一数据包处理进程根据所述正向环形缓存队列中的所述数据包在所述数据包内存池中的索引获取所述数据包;所述根据会话表对所述数据包进行处理,将处理后需要丢弃的数据包丢弃,将处理后需要缓存的数据包放入所述第二共享内存区域,将处理后需要发出的数据包放入所述数据包内存池,并将所述需要发出的数据包在所述数据包内存池中的索引放入所述反向环形缓存队列,以使所述数据包收发进程根据所述反向环形缓存队列中的所述需要发出的数据包在所述数据包内存池中的索引获取所述需要发出的数据包进行发送。4.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:所述第一数据包处理进程每次从所述第一共享内存区域获取一个数据包之后,将正在处理数据包计数器加一,在每次根据会话表对一个数据包进行处理之后,将所述正在处理数据包计数器减一。5.根据权利要求4所述的方法,其特征在于,所述在处理完成已经获取...

【专利技术属性】
技术研发人员:李拓
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

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

1