一种基于智能学习算法的链路负载均衡出站会话保持方法

文档序号:9276763阅读:523来源:国知局
一种基于智能学习算法的链路负载均衡出站会话保持方法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体地说是一种在负载均衡内部智能区分用户数 据是否需要会话保持和选路算法的方法,或者说是一种基于改进的BP学习算法的出站会 话保持方法。
【背景技术】
[0002] 本发明涉及Iinux内核模块的开发,会话保持是链路负载均衡的一个基本功能。 在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务 器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互 过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一 次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下一步操作时需要这就 要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不同的服 务器上。
[0003] 而这一系列的相关的交互过程可能是由客户到服务器的一个连接的多次会话完 成,也可能是在客户与服务器之间的多个不同连接里的多次会话完成。不同连接的多次会 话,最典型的例子就是基于http的访问,一个客户完成一笔交易可能需多次点击,而一个 新的点击产生的请求,可能会重用上一次点击建立起来的连接,也可能是一个新建的连接。
[0004] 本发明对不同链路的访问做了智能的区分,需要会话保持与非会话保持的线路进 行了内部分类,在运营商线路较多,网络复杂的情况这种技术的高效性得以体现。

【发明内容】

[0005] 本发明提供一种在负载均衡内部智能区分用户数据是否需要会话保持和选路算 法的方法。
[0006] 本发明的目的是按以下方式实现的,包括1)智能学习算法优化,通过用户访问的 数据包内容分析协议类型、服务类型参数,根据设定的标准和学习算法的经验来定位这一 访问的类型;2)会话保持,根据第一阶段的判断结果设定这一数据的选路策略,包括进行 轮询选路或进入会话保持机制进行路由;3)开发新功能模块,具体内容如下:
[0007] 1)智能学习算法优化,是在经过BP神经网络学习的基础上进行了改进,修改了优 化函数f(x),加入了动向量,样板是动态的,但是需要多次学习之间的联系,故引入了经验 值radom,将来访的数据包内容参数进行分类作为参数进行神经网络的学习,通过学习和设 定的标准进行比对,从而得出下一步的动作,所依据的标准是算法在不断的学习,通过大量 的学习给出经验值,在后续访问数据包到来时不需要进行具体学习便可分类,从而不会影 响系统的效率;
[0008] 2)会话保持技术,将来源IP、目的IP、时间、协议类型参数登记下来,下次需要会 话保持的数据来了之后先进行进表判断,缓存表中不存在这一数据,则向表中添加,数据存 在这一数据则走该线路,并修改表内的时间,根据表的登记时间,有一个定时器定期的检查 表,发现该表的数据时间与当前时间差大于一定值,则说明这段时间没有新连接,也就是超 时了,则删除该数据;
[0009] 3)开发新功能模块,是一个具有保持信息、添加信息、查找信息、定时删除信息的 功能模块,该模块能够插入到Iinux内核中,保持模块中不存在但是有效的路由信息,以备 下次查找,模块中已有且能查找到的信息,改变时间戳,直接返回信息,避免了整个路由表 继续匹配所花费的CPU开销;
[0010] 具体步骤如下:
[0011] 当给一个训练好的网提供新的学习记忆模式时,将使已有的连接权值被打乱,导 致已记忆的学习模式的信息的消失,在此基础上我们对BP神经网络算法加以改造,引入动 量项,加入经验记忆值;
[0012] 由于网络是确定的,学习样本是不断变化的,所以误差E也是变化的,神经网络的 学习也是动态的,为了监视每次优化之间的联系,要加入记忆功能,也就是将每次学习之前 三次的结果作为记忆值加入到这次学习的f (X)函数中,这样改进的f (X)变为:
[0016]Bj表示阈值。Xi为输入,wji为权值。RandO是平衡值函数,Sj为经输入;[0017]公式(1)和公式(2)是改进的算法的学习优化工具,样板的选取也至关重要,每次 取X的样本进行学习,目标值设为M(需要会话保持的访问)学习N次后发现收敛的最快的 样本属于M类的需要会话保持的值,样本的获取主要根据时间间隔内对数据流中的服务类 型进行提取;
[0018] 每次运行完都会有专门的参数来保存这次的学习的最优值。
[0019] 算法的优化过程如下:
[0020] (1)根据来访数据流中的源IP、目的IP、协议类型和当前路由节点中路由的源IP 地址,进行神经网络学习,根据反馈结果决定是否进行会话保持;
[0021] (2)需要会话保持,则进入缓存表,根据来访数据的源IP、目的IP参数判断是在在 表中,如果表中无此数据记录,则说明是第一次访问,如果该路由是通畅可选的,则在表中 加入自数据记录,否则继续匹配下一条路由;
[0022] (3)无需进行会话保持,在根据用户选择的轮询或加权轮询算法进行路由;
[0023] (4)找不到返回默认线路;
[0024] 缓存表HASH链表是被内核文件直接读取,数据记录的格式含义如下:第一个数字 是起始来访数据流源IP,第二个来访数据流目的IP,第三个数字是路由的源IP,http表示 协议、最后一个数字是时间,系统将根据目前时间和记录的时间是否超过一定的差值来决 定这条数据的删除与否;
[0025] 传统的路由算法,分析数据包的内容,根据路由表的子网掩码判断匹配子网,如果 子网内有两条路由的话则无法精确匹配每一条,这样就失去了会话保持功能,经过修改算 法加入了缓存表保存了数据记录,将内核模块进行了重新编译;
[0026] 路由模块修改步骤如下:
[0027] 缓存功能的实现是在Iinux内核中,通过添加了一个HASH链表数据结构来存储临 时数据,通过hash算法快速查找数据记录,并且由定时器timer来实时掌控数据记录的生 存周期,实现方式对Iinux内核改造位置:具体步骤如下:/*作仍0)/1?511161-2.6.32-358. el6/linux_2. 6. 32-358.el6.x86_64/net/ipv4下的 route,c文件下,修改模块为:fib_ hash_lookup,在fib_semantic_match函数中添加列表匹配功能,在fib_init()函数中添 加hash列表初始化,fib_hash_lookup中加入session_list_add〇,该函数时链表信息添 加函数,将进来的不在链表的需要保持的数据信息保存,session_list_search(ip),该函 数功能是根据目的ip彳目息是否在此缓存表中,判断是否存在相应的彳目息;session_list_ del是定时器定时的清理链表中的超时数据记录,使得链表不至于太大,定时器timer是一 个根据CPU频率执行的定时器,定时具有绝对性,开启之后保证在规定的时间能执行相应 动作;
[0028] 修改后路由模块工作过程如下:
[0029] (1)在网络层获取数据流、拆数据包,获取数据流中的源IP、目的IP、访问类型参 数;
[0030] (2)如果访问参数组在缓存表内,则直接返回所对应的链路信息,即不会去重新匹 配路由,也就不会走不同的链路,即实现了会话保持功能;
[0031] (3)如果不在缓存表内,并且该路由也匹配不同,则需要继续查找合适的路由,最 终若都不在缓存表中但是有通的路由,则返回该路由,向缓存表中加入数据,否则退出循 环;
[0032] (4):如果没有合适的路由表,则选择默认路由,定时器timer会及时清理过期数 据。
[0033] 本发明的有益效果是:
[0034] (1)改进的BP神经网络算法:在传统BP算法的基础上进行了优化函数和动向量 参数改造,通过学习用户访问数据包分析出访问的性质,判断是否需要会话保持,在多次学 习经验值和当前参数值的基础上分析出线路的性质;
[0035] (2)基于源与目的综合IP信息技术的会话保持方法,是在内核全局会话保持方法 的基础上,在分析了用户的数据来源、访问目的地、数据包参数、路由参数的基础上综合定 制的会话保持技术,精确度比单纯基于源地址或目的地址的技术要高。
[0036] (3)开发了具有存储数据记录、删除数据记录、查询数据功能的功能模块,通过插 入到内核的路由模块中,起到了会话保持功能作用。
【附图说明】
[0037] 图1是改进的BP神经网络原理原型图;
[0038] 图2整体算法数据传输流程图;
[0039] 图3是智能学习算法流程;
[0040] 图4是线路确定原理流程图;
[0041] 图5是会话保持缓存表记录格式图。
【具体实施方式】
[0042] 参照说明书附图对本发明的方法作以下详细地说明。
[0043] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明做进一 步地详细描述。
[0044] 本发明中智能神经网络学习算法的一个改进模型,通过设定权值将来访数据的协 议类型、源IP、目的IP、请求关键字、路由源IP作为输入值,权重根据路由随机设置。在没 有数据访问的时候神经网络的学习是不停止的,在不断的学习过程中建立数据源和优化结 果的标准关系。争取在输入数据和长期优化的经验值的指导下快速判断出访问类型。学习 是个旁路并行的技术,不会影响正常访问,如图1所示。
[0045] 本发明是在原型的基础上进行了权值和目标值的动态改变如图一所示,使得整个 样本都有了活性,在学习过程中不再是单纯的迭代学习,而是伴随着经验值进行优化,加入 的随机权值更贴近于现实场景。
[0046] 原始的BP网并不是十分的完善,它存在:学习收敛速度太慢、网络的学习记忆具 有不稳定性,即:当给一个训练好的网提供新的学习记忆模式时,将使已有的连接权值被打 乱,导致已记忆的学习模式的信息的消失。在此基础上我们对BP神经网络算法加以改造, 引入动量项,加入经验记忆值。
[0047] 网络是确定的,学习样本是不断变化的,所以误差E也是变化的,所以神经网络的 学习是动态的,为了监视每次优化之间的联系,要加入记忆功能,也就是我们将每次学习之 前三次的结果作为记忆值加入到这次学习的f (X)函数中,这样改进的f (X)变为:
[0051] Bj表示阈值。Xi为输入,wji为权值。RandO是平衡值函数,Sj为经输入。
[0052] 公式(1)和公式(2)是改进的算法的学习优化工具,样板的选取也至关重要,每次 取X的样本进行学习,目标值设为M(需要会话保持的访问)学习N次后发现收敛的最快的 样本属
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1