一种会话表老化方法及系统的制作方法

文档序号:8301449阅读:739来源:国知局
一种会话表老化方法及系统的制作方法
【技术领域】
[0001] 本发明属于数据通信领域,具体涉及一种会话表维护技术。
【背景技术】
[0002] 大量的网络协议或应用需要在系统中建立会话表,系统通过对表项的查询,以实 现各种转发、会话等任务,常见的会话表包括ARP (地址解析协议)表,路由表,NAT (网络地 址转换)转发表等,系统为了实现对各种会话表的动态维护,通常会引入一个老化机制,即 对长时间处于静默状态的表项进行老化删除,以防止会话表过于冗余,提高查找效率。
[0003] 在申请号为CN200710198708. 2的专利申请文件中提到了解决这一问题的方案: 在分布式系统中,会话表的老化、删除通常由主控核即用于执行其它任务,如任务调度、内 存管理等功能的CPU进行统一处理,转发核即用于执行转发核心业务的CPU负责对会话表 进行查询,并执行转发任务。此种老化机制在通常情况下不会出现较大的问题,但是在某些 情况下,如大量的表项集中老化时,主控核的负担急剧上升,主控核需要耗费大量的时间进 行老化,另一方面,主控核在对会话表进行老化时,会将会话表进行加锁处理,以防止访问 冲突,因此转发核在主控核进行老化任务时无法进行会话表查询业务,直接导致转发核心 业务受阻,产生网络中断,堆叠设备分裂等严重的后果。
[0004] 首先,该问题是由于将所有老化任务全部集中给主控核,同时又有大量的会话表 集中老化或删除,导致主控核大量占用会话表的操控权所致;其次,会话表老化任务全部由 主控核处理,增大了主控核CPU的占用率,容易导致其它任务异常或设备卡死;进而,只有 一个主控核处理会话表,速率低下,且由于主控核在处理会话表时,转发核无法查询该会话 表,导致转发核业务阻塞。

【发明内容】

[0005] 本发明为解决的上述技术问题,提出一种会话表进行老化方法及系统。
[0006] 本发明采用的技术方案是:一种会话表老化方法,包括以下步骤:
[0007] A、对会话表进行老化检测,得到需要老化的会话节点消息,根据得到的会话节点 消息查找对应的转发核,并将会话节点老化消息下发至转发核老化消息队列;
[0008] B、根据转发核老化消息队列中缓存的会话节点老化消息将会话节点从会话表中 移出。
[0009] 进一步地,所述会话节点消息包括会话节点队列头部、会话节点老化标志、会话节 点创建者以及会话节点内容;所述会话节点老化消息由老化消息队列头部和会话节点消息 组成。
[0010] 进一步地,
[0011] 所述步骤A具体包括以下分步骤:
[0012] A1、按顺序依次读取会话表中的会话节点;
[0013] A2、判断当前会话节点是否需要老化,若需要老化则执行步骤A3,否则执行步骤 Al读取下一个会话节点;
[0014] A3、判断当前会话节点老化标志是否被标记,若是则返回步骤Al读取下一个会话 节点,否则执行步骤A4;
[0015] A4、根据当前会话节点的会话老化消息获取创建当前会话节点的转发核,将会话 节点老化消息发送至创建当前会话节点转发核的转发核老化消息队列,并标记将当前会话 节点老化标记,然后执行步骤Al读取下一个会话节点。
[0016] 进一步地,
[0017] 所述步骤B具体包括以下分步骤:
[0018] B1、判断转发核老化消息队列是否为空,若为空则执行步骤B3,否则执行步骤B2 ;
[0019] B2、获取当前会话表,锁定会话表,将当前会话节点从会话表中移出,然后解锁会 话表;
[0020] B3、执行转发业务。
[0021] 进一步地,所述步骤A进一步包括将内存回收消息下发至转发核老化消息队列; 所述内存回收消息由内存回收消息队列头部和指向该会话节点地址的指针组成,所述指向 会话节点地址的指针为会话节点消息组成的字段;
[0022] 所述步骤B进一步包括根据转发核老化消息队列中缓存的内存回收消息进行会 话节点删除。
[0023] 本发明还提供一种会话表老化系统,
[0024] 包括:主控核老化检查模块、以及转发核老化执行模块;
[0025] 所述主控核老化检查模块用于对会话节点老化进行监控,得到需要老化的会话节 点消息,并根据得到的会话节点消息判断创建会话节点的转发核,然后将会话节点老化消 息下发到对应转发核老化消息队列;
[0026] 所述转发核老化执行模块用于检查转发核消息缓存模块是否为空,不为空时,则 获取转发核消息缓存模块所缓存的会话节点老化消息,然后执行转发业务。
[0027] 进一步地,所述会话节点消息包括会话节点创建者信息,主控核老化检查模块通 过读取会话节点创建者信息得到创建会话节点的转发核,并将会话节点老化消息下发到该 转发核的转发核老化消息队列。
[0028] 进一步地,主控核老化检查模块还包括将内存回收消息下发到转发核老化消息队 列。
[0029] 进一步地,所述主控核老化检查模块还包括会话节点老化标志判断单元,用于判 断当前需要老化的会话节点的老化标志是否已经被标记,若是则检查下一个会话节点;否 则根据主控核老化检查模块判断得到创建会话节点的转发核,将会话节点老化消息和内存 回收消息下发到该转发核的转发核老化消息队列,并标记该会话节点的老化标志。
[0030] 更进一步地,所述转发核老化执行模块还包括消息判断单元,用于判断从转发核 老化消息队列获取到的消息为会话节点老化消息或者内存回收消息,当该消息为会话节点 老化消息时,则将会话节点从会话表中移除;当判断该消息为内存回收消息时,则将会话删 除。
[0031] 本发明的有益效果:本发明的一种会话表老化方法及系统,通过将老化任务的核 心部分转移给转发核,提高了多核系统的并发性,降低了主控核的负担,提高了老化的效 率。解决了因大量会话表需要集中老化而出现了主控核卡死等问题;去锁化,每个转发核在 回收内存,即真正删除会话时均无需加锁,且转发核采用一次老化一次转发,解决了传统方 法中,主控核因老化任务长期占用会话表,导致转发业务受阻的问题;将老化消息和内存回 收消息分开处理,实现老化优先,删除延后的机制,提高了转发核的处理效率,有效的降低 了老化任务因等待而造成的转发任务受阻。
【附图说明】
[0032] 图1为本发明实施例提供的方法流程图。
[0033] 图2为本发明实施例提供的主控核老化消息判断流程图。
[0034] 图3为本发明实施例提供的转发核老化执行流程图。
【具体实施方式】
[0035] 为便于本领域技术人员理解本发明的技术内容,下面结合附图对本
【发明内容】
进一 步阐释。
[0036] 如图1所示为本发明的方案流程图,本发明的技术方案为:一种会话表老化方法, 包括以下步骤:
[0037] A、对会话表进行老化检测,得到需要老化的会话节点消息,根据得到的会话节点 消息查找对应的转发核,并将会话节点老化消息下发至转发核老化消息队列;
[0038] B、根据转发核老化消息队列中缓存的会话节点老化消息将会话节点从会话表中 移出。
[0039] 如图2所示为主控核老化消息判断流程图,所述步骤A具体包括以下分步骤:
[0040] A1、主控核老化检查任务按顺序依次读取会话表中的会话节点;
[0041] A2、判断当前会话节点是否需要老化,若需要
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1