一种基于智能查找算法的链路负载均衡方法

文档序号:9263396阅读:391来源:国知局
一种基于智能查找算法的链路负载均衡方法
【技术领域】
[0001] 本发明涉及计算机应用技术领域,具体地说是一种基于智能查找算法的链路负 载均衡方法。
【背景技术】
[0002] 本发明涉及linux内核模块的开发,众所周知链路负载均衡是一个经策略性部署 的整体系统,能够帮用户解决分布式存储、负载均衡、网络请求的重定向和内容管理等问 题。目的是通过在现有的Internet中增加一层新的网络架构,智能共享网络资源,使用户 可以就近取得所需的内容,解决Internet网络拥塞状况。提高用户访问网站的响应速度。 从技术上全面解决由于网络带宽小,用户访问量大、网点分布不均等原因。解决由于线路问 题访问网站的响应速度慢的根本原因。
[0003] 目前市场上的链路负载均衡产品层出不穷,但是链路负载均衡出站技术各有千 秋,很多设计存在效率或者其他方面的问题,本发明是在市场竞争高强度的压力基础上,在 定制了自主格式的IP数据库、修改了内核源码的基础上将链路负载技术提高到一个新的 高度。在不影响内核运行效率的基础上开发了linux内核新模块。
[0004] 本发明对链路选择效率有了大大的提高,在运营商线路较多,网络复杂的情况下 尤为明显。

【发明内容】

[0005] 本发明的目的是提供一种基于智能查找算法的链路负载均衡方法。
[0006] 本发明的目的是按以下方式实现的,为了提高数据查找效率,智能查找算法是在 改进了折半查找算法的基础上,加入了分段的因子,该因子是通过多次检索总结出的一个 经验值,通过经验值指导该段的IP应在分几段的情况下查找的最快,改进的算法是多个折 半算法同时查找,因而效率提升了n倍,将数据查找分二段进行,然后在每个段中分别进行 同步查找多个进程并行操作,在存放IP段的数据的二维数组中先分段再查找,时间复杂度 在0((l/2)n)数量级上,将初始范围分为N段,在每一个段中分别进行二分查找,所需时间 为原来的1/N;
[0007] 智能查找算法匹配规则如下:通过学习上N次的经验值得出本次应该将数据记录 分成几段,即通过记忆多次的经验值来智能判断这一次应该分成的段数,将多次分段数结 合时间值进行BP神经网络的优化,收敛最快最接近目标值的样本作为候选值,然后取候选 值的平均值,利用BP神经网络作为分段的工具,限制优化学习的次数,只进行时间允许范 围内的计算次数;
[0008] 内存数据结构是具有HASH功能和定时器功能的链表结构,每个节点存放了一个 数据单元,数据链表初始化以后装填数据,然后按照hash算法将数据变量排序形成一个动 态的数组,以供二分算法分段查找,存放数据的节点如下所示:
[0009]
[0010] 在数据库中检索IP所属的线路,具体查找过程如下:
[0011] (1)首先转换目标ip数据格式,将数据库中数据记录随机分成N段;
[0012] (2)在每段中进行二分查找,根据数据库文件的存储格式,比较目的ip所属于的 ip范围;
[0013] (3)如果找不到返回默认线路。
[0014] 根据路由模块,路由算法,分析数据包的内容和源IP、目的IP参数来判断应该选 择哪一个路由表,将遍历所有表的方式改为直接根据从数据结构返回的link值直接进入 相应的路由表,路由的表面和link值有直接联系才能识别路由模块位置:
[0016] 在此函数中加入search_ip_in_database(),从而实现出站选路功能的关键,此 函数的功能是在进入表之前判断策略路由,判断该数据包的目的IP是否符合该路由表,如 果符合就进入该路由表,否则不进入此路由表/判断的原理就是预先设定好路由,通过IP 数据库判断该目的IP属于哪条线路然后选择那条路由;
[0017] 整体选路过程如下:
[0018] (1):拆数据包,获取目的IP地址、mark值等参数;
[0019] (2):通过线路检索模块在数据库文件中快速得出该访问属于的线路;
[0020] (3):首先判断路由缓存数据,如果路由缓存为空则根据该目的IP和得到的线路, 在内核的路由模块中,判断应该走哪个路由表;
[0021] (4):如果没有合适的路由表,则选择默认路由;
[0022] (5):记录经验值和当前IP、和线路范围以供后续使用。
[0023] 本发明的有益效果是:在修改了linux内核源码的基础上重新编写了路由模块, 通过编译内核,形成的一种新的链路负载均衡技术。该技术可以提高网络选路的效率,特别 是在多种线路运营商的情况下,可以通过智能选择线路,然后选择特定的路由进行数据路 由。与传统的链路负载均衡相比,本发明能够快速分辨访问需要走的线路,并通过定制路由 表,本发明提出的思想方法:(1)改进的二分查找算法,在IP数据库中快速辨别访问目的地 址所属的线路。(2)自主的IP数据库结构创建。(3)开发了基于直接寻路思想linux内核 功能t吴块。
[0024] (1)、改进的二分查找算法:通过用户访问的目的地址,在大量数据中快速查找出 目标段的算法,属于改进型技术。
[0025] (2)、IP数据独特的内存数据结构的定制,本发明提出了存储IP和线路属性的定 制格式,使数据在内存中的存放方式更加独特,从而查找IP的速度更加高效。
[0026] (3)、给出了基于自主思想的linux内核新模块:的设计与实现:路由表的选择不 再是按照顺序匹配所有的策略路由表之后再决定进入哪个路由表,而是通过该模块的判断 直接找到所要访问的路由。
【附图说明】
[0027] 图1是智能查找算法流程图;
[0028] 图2是模块数据流程图
【具体实施方式】
[0029] 参照说明书附图对本发明的方法作以下详细地说明。
[0030] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明做进一 步地详细描述。
[0031] 本发明提供一种链路负载出站高速选择运营商线路的技术,这一过程分为两个阶 段,第一阶段是通过用户访问的服务器地址来判断是哪条线路,这一判断是依赖于IP数据 库,在几十万条记录的数据库中以最快的速度找到访问的的服务器IP所属的范围是该阶 段的关键技术。第二阶段,在linux内核中,经过的数据流属于哪条线路已经在第一阶段判 断出来,而直接选择相应的路由表是这一阶段的关键技术。
[0032] 本发明引入快速检索算法,一种多路二分查找算法。这一改进算法是在对大量数 据检索时首先动态的对IP数据记录进行分段,在子分段内利用折半查找的策略,这样就会 形成一种在多个段能同步查找的算法,最早检索到结果的那个分段就是整体的检索时间, 最关键的值就是分段数N,分多少段是根据多次查找时间效率的经验值得出的,恰当的分段 和同步的检索提高了检索的效率。初始化时分几段然后在每段中查找。所谓的智能就是通 过算法自己根据缓存的数据总结经验值,智能的划分数据分段,经过多次实验证实这是可 行的。通过快速算法的加入,大大提高了IP检索的效率。
[0033] 本发明提出的定制数据结构是将大量数据以一种特定的形式存放如内存中,并可 以实现数据的被检索,即数据库格式定制到内存建立数据结构Hist,定制了数据库在内存 的Xlist数据结构在检索的时候才能提高效率这种特殊的数据结构能够存放所有的IP段, ip转化了格式,用数字形式存放,线路也设置了索引,国内的运营商主要有:电信、联通、移 动、其他线路。在匹配IP范围的情况下比较容易计算。
[0034] 本发明在linux内核路由匹配的原理上提出了一个新功能的模块,该模块改变了 传统的路由匹配原理,将繁琐的无用的表的匹配删除,根据传入的结果直接找到特定的路 由表,本发明通过修改linux内核源码,重新修改并编译了路由模块的逻辑功能,开发了一 个具有独立新功能的内核模块。
[0035] 改进的二分查找算法,本发明中所查找对象数据量大,为了提高效率将这一数据 分段进行,然后在每个段中分别进行同步查找,所以是在存放所以的IP段的数据的二维数 组中先分段再查找,时间复杂度在〇((l/2)n)数量级上,普通的二分查
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1