CN104980364A - 一种基于智能查找算法的链路负载均衡方法 - Google Patents
一种基于智能查找算法的链路负载均衡方法 Download PDFInfo
- Publication number
- CN104980364A CN104980364A CN201510354907.2A CN201510354907A CN104980364A CN 104980364 A CN104980364 A CN 104980364A CN 201510354907 A CN201510354907 A CN 201510354907A CN 104980364 A CN104980364 A CN 104980364A
- Authority
- CN
- China
- Prior art keywords
- data
- routing
- value
- search
- route
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于智能查找算法的链路负载均衡方法,在修改了linux内核源码的基础上重新编写了路由模块,通过编译内核,形成的一种新的链路负载均衡技术。该技术可以提高网络选路的效率,特别是在多种线路运营商的情况下,可以通过智能选择线路,然后选择特定的路由进行数据路由。与传统的链路负载均衡相比,本发明能够快速分辨访问需要走的线路,并通过定制路由表,本发明提出的思想方法:(1)改进的二分查找算法,在IP数据库中快速辨别访问目的地址所属的线路。(2)自主的IP数据库结构创建。(3)开发了基于直接寻路思想linux内核功能模块。
Description
技术领域
本发明涉及计算机应用技术领域,具体地说是一种基于智能查找算法的链路负载均衡方法。
背景技术
本发明涉及linux内核模块的开发,众所周知链路负载均衡是一个经策略性部署的整体系统,能够帮用户解决分布式存储、负载均衡、网络请求的重定向和内容管理等问题。目的是通过在现有的Internet中增加一层新的网络架构,智能共享网络资源,使用户可以就近取得所需的内容,解决Internet网络拥塞状况。提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小,用户访问量大、网点分布不均等原因。解决由于线路问题访问网站的响应速度慢的根本原因。
目前市场上的链路负载均衡产品层出不穷,但是链路负载均衡出站技术各有千秋,很多设计存在效率或者其他方面的问题,本发明是在市场竞争高强度的压力基础上,在定制了自主格式的IP数据库、修改了内核源码的基础上将链路负载技术提高到一个新的高度。在不影响内核运行效率的基础上开发了linux内核新模块。
本发明对链路选择效率有了大大的提高,在运营商线路较多,网络复杂的情况下尤为明显。
发明内容
本发明的目的是提供一种基于智能查找算法的链路负载均衡方法。
本发明的目的是按以下方式实现的,为了提高数据查找效率,智能查找算法是在改进了折半查找算法的基础上,加入了分段的因子,该因子是通过多次检索总结出的一个经验值,通过经验值指导该段的IP应在分几段的情况下查找的最快,改进的算法是多个折半算法同时查找,因而效率提升了n倍,将数据查找分二段进行,然后在每个段中分别进行同步查找多个进程并行操作,在存放IP段的数据的二维数组中先分段再查找,时间复杂度在O((1/2)n)数量级上,将初始范围分为N段,在每一个段中分别进行二分查找,所需时间为原来的1/N;
智能查找算法匹配规则如下:通过学习上N次的经验值得出本次应该将数据记录分成几段,即通过记忆多次的经验值来智能判断这一次应该分成的段数,将多次分段数结合时间值进行BP神经网络的优化,收敛最快最接近目标值的样本作为候选值,然后取候选值的平均值,利用BP神经网络作为分段的工具,限制优化学习的次数,只进行时间允许范围内的计算次数;
内存数据结构是具有HASH功能和定时器功能的链表结构,每个节点存放了一个数据单元,数据链表初始化以后装填数据,然后按照hash算法将数据变量排序形成一个动态的数组,以供二分算法分段查找,存放数据的节点如下所示:
在数据库中检索IP所属的线路,具体查找过程如下:
(1)首先转换目标ip数据格式,将数据库中数据记录随机分成N段;
(2)在每段中进行二分查找,根据数据库文件的存储格式,比较目的ip所属于的ip范围;
(3)如果找不到返回默认线路。
根据路由模块,路由算法,分析数据包的内容和源IP、目的IP参数来判断应该选择哪一个路由表,将遍历所有表的方式改为直接根据从数据结构返回的link值直接进入相应的路由表,路由的表面和link值有直接联系才能识别路由模块位置:
在此函数中加入search_ip_in_database(),从而实现出站选路功能的关键,此函数的功能是在进入表之前判断策略路由,判断该数据包的目的IP是否符合该路由表,如果符合就进入该路由表,否则不进入此路由表/判断的原理就是预先设定好路由,通过IP数据库判断该目的IP属于哪条线路然后选择那条路由;
整体选路过程如下:
(1):拆数据包,获取目的IP地址、mark值等参数;
(2):通过线路检索模块在数据库文件中快速得出该访问属于的线路;
(3):首先判断路由缓存数据,如果路由缓存为空则根据该目的IP和得到的线路,在内核的路由模块中,判断应该走哪个路由表;
(4):如果没有合适的路由表,则选择默认路由;
(5):记录经验值和当前IP、和线路范围以供后续使用。
本发明的有益效果是:在修改了linux内核源码的基础上重新编写了路由模块,通过编译内核,形成的一种新的链路负载均衡技术。该技术可以提高网络选路的效率,特别是在多种线路运营商的情况下,可以通过智能选择线路,然后选择特定的路由进行数据路由。与传统的链路负载均衡相比,本发明能够快速分辨访问需要走的线路,并通过定制路由表,本发明提出的思想方法:(1)改进的二分查找算法,在IP数据库中快速辨别访问目的地址所属的线路。(2)自主的IP数据库结构创建。(3)开发了基于直接寻路思想linux内核功能模块。
(1)、改进的二分查找算法:通过用户访问的目的地址,在大量数据中快速查找出目标段的算法,属于改进型技术。
(2)、IP数据独特的内存数据结构的定制,本发明提出了存储IP和线路属性的定制格式,使数据在内存中的存放方式更加独特,从而查找IP的速度更加高效。
(3)、给出了基于自主思想的linux内核新模块:的设计与实现:路由表的选择不再是按照顺序匹配所有的策略路由表之后再决定进入哪个路由表,而是通过该模块的判断直接找到所要访问的路由。
附图说明
图1是智能查找算法流程图;
图2是模块数据流程图
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明做进一步地详细描述。
本发明提供一种链路负载出站高速选择运营商线路的技术,这一过程分为两个阶段,第一阶段是通过用户访问的服务器地址来判断是哪条线路,这一判断是依赖于IP数据库,在几十万条记录的数据库中以最快的速度找到访问的的服务器IP所属的范围是该阶段的关键技术。第二阶段,在linux内核中,经过的数据流属于哪条线路已经在第一阶段判断出来,而直接选择相应的路由表是这一阶段的关键技术。
本发明引入快速检索算法,一种多路二分查找算法。这一改进算法是在对大量数据检索时首先动态的对IP数据记录进行分段,在子分段内利用折半查找的策略,这样就会形成一种在多个段能同步查找的算法,最早检索到结果的那个分段就是整体的检索时间,最关键的值就是分段数N,分多少段是根据多次查找时间效率的经验值得出的,恰当的分段和同步的检索提高了检索的效率。初始化时分几段然后在每段中查找。所谓的智能就是通过算法自己根据缓存的数据总结经验值, 智能的划分数据分段,经过多次实验证实这是可行的。通过快速算法的加入,大大提高了IP检索的效率。
本发明提出的定制数据结构是将大量数据以一种特定的形式存放如内存中,并可以实现数据的被检索,即数据库格式定制到内存建立数据结构Xlist,定制了数据库在内存的Xlist数据结构在检索的时候才能提高效率这种特殊的数据结构能够存放所有的IP段,ip转化了格式,用数字形式存放,线路也设置了索引,国内的运营商主要有:电信、联通、移动、其他线路。在匹配IP范围的情况下比较容易计算。
本发明在linux内核路由匹配的原理上提出了一个新功能的模块,该模块改变了传统的路由匹配原理,将繁琐的无用的表的匹配删除,根据传入的结果直接找到特定的路由表,本发明通过修改linux内核源码,重新修改并编译了路由模块的逻辑功能,开发了一个具有独立新功能的内核模块。
改进的二分查找算法,本发明中所查找对象数据量大,为了提高效率将这一数据分段进行,然后在每个段中分别进行同步查找,所以是在存放所以的IP段的数据的二维数组中先分段再查找,时间复杂度在O((1/2)n)数量级上,普通的二分查找也叫折半查找,在线性结构中查询是非常快的,但是将初始范围分为N段,在每一个段中分别进行二分查找,所需时间为原来的1/N,改进的算法是多个进程并行操作。
本发明中智能查找法匹配规则:通过学习上N次的经验值得出本次应该将数据记录分成几段,确定分多少段很重要,发明中是通过记忆多次的经验值来智能判断这一次应该分成的段数,具体的实现为将多次分段数结合时间值进行BP神经网络的优化,收敛最快最接近目标值的样本作为候选值,然后取候选值的平均值,BP神经网络即为常见的一个优化算法,在本发明中作为一个分段的工具,优化学习的次数是有限制的,只进行时间允许范围内的计算次数,比如学习50次即可取结果。本思想是经过大量实验验证的也是本发明的一个重要技术。传统的折半查找算法是整体的单进程进行折半,然后在前半部分或后半部分进行同样的操作,直到匹配到确切位置,本发明提出的智能检索算法是在改进了折半查找的基础上,加入了分段的因子,该因子是通过多次检索总结出的一个经验值,可以指导该段的IP应在分几段的情况下查找的最快,如果改进的算法是多个折半算法同时查找,效率提升了n倍,原理流程图如图1。fun_d_bs(data)
本发明中的内存数据结构是具有HASH功能和定时器功能的链表结构,每个节点存放了一个数据单元,数据链表初始化以后装填数据,然后按照hash算法将数据变量排序形成一个动态的数组,以供二分算法分段查找,本发明中设计的存放数据的节点如:
在数据库中检索IP所属的线路,具体过程:
(1):首先转换目标ip数据格式,将数据库中数据记录随机分成N段。
(2):在每段中进行二分查找,根据数据库文件的存储格式,比较目的ip所属于的ip范围。
(3):如果找不到返回默认线路。
数据库记录格式表如下所示
记录ID | 起始IP | 截止IP | 线路 |
1 | 125478412 | 215478453 | 5 |
2 | 215478453 | 415478453 | 3 |
3 | ... | ... |
数据库文件是被内核文件直接调用的所以不可出错,数据记录的格式含义如下:125478412 215478453 3数字之间以空格隔开,第一个数字是起始IP,第二个数字是截止IP,第三个数字是线路的代表。数字3表示电信、数字5表示联通、数字7表示移动、数字9表示默认线路。
新的路由模块,传统的路由算法,分析数据包的内容,根据源IP、目的IP等参数来判断应该选择哪一个路由表,本发明提出的思想是将进入策略路由表的原理由原来遍历所有表的方式改为直接根据从数据结构返回的link值直接进入相应的路由表,在此设计路由的表面和link值有直接联系才能识别。模块位置:
在此函数中加入search_ip_in_database(),从而实现出站选路功能,这是本发明的关键技术。此函数的功能是在进入表之前判断策略路由,我们修改的思想是判断该数据包的目的IP是否符合该路由表,如果符合就进入该路由表,否则不进入此路由表/判断的原理就是预先设定好路由。通过IP数据库判断该目的IP属于哪条线路然后选择那条路由。
整体选路过程如下:
(1):拆数据包,获取目的IP地址、mark值等参数。
(2):通过线路检索模块在数据库文件中快速得出该访问属于的线路。
(3):首先判断路由缓存数据,如果路由缓存为空则根据该目的IP和得到的线路,在内核的路由模块中,判断应该走哪个路由表。
(4):如果没有合适的路由表,则选择默认路由。
(5):记录经验值和当前IP、和线路范围以供后续使用。
以上三个技术点是本专利的主要内容,根据实验结果判断,改进的技术在多条运营商线路的情况下,能够体现出反应速度,能够提高链路负载均衡器的处理效率。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (2)
1.一种基于智能查找算法的链路负载均衡方法,其特征在于为了提高数据查找效率,智能查找算法是在改进了折半查找算法的基础上,加入了分段的因子,该因子是通过多次检索总结出的一个经验值,通过经验值指导该段的IP应在分几段的情况下查找的最快,改进的算法是多个折半算法同时查找,因而效率提升了n倍,将数据查找分二段进行,然后在每个段中分别进行同步查找多个进程并行操作,在存放IP段的数据的二维数组中先分段再查找,时间复杂度在O((1/2)n)数量级上,将初始范围分为N段,在每一个段中分别进行二分查找,所需时间为原来的1/N;
智能查找算法匹配规则如下:通过学习上N次的经验值得出本次应该将数据记录分成几段,即通过记忆多次的经验值来智能判断这一次应该分成的段数,将多次分段数结合时间值进行BP神经网络的优化,收敛最快最接近目标值的样本作为候选值,然后取候选值的平均值,利用BP神经网络作为分段的工具,限制优化学习的次数,只进行时间允许范围内的计算次数;
内存数据结构是具有HASH功能和定时器功能的链表结构,每个节点存放了一个数据单元,数据链表初始化以后装填数据,然后按照hash算法将数据变量排序形成一个动态的数组,以供二分算法分段查找,存放数据的节点如下所示:
在数据库中检索IP所属的线路,具体查找过程如下:
(1)首先转换目标ip数据格式,将数据库中数据记录随机分成N段;
(2)在每段中进行二分查找,根据数据库文件的存储格式,比较目的ip所属于的ip范围;
(3)如果找不到返回默认线路。
2.根据权利要求1所述的方法,其特征在于,根据路由模块,路由算法,分析数据包的内容和源IP、目的IP参数来判断应该选择哪一个路由表,将遍历所有表的方式改为直接根据从数据结构返回的link值直接进入相应的路由表,路由的表面和link值有直接联系才能识别路由模块位置:
在此函数中加入search_ip_in_database(),从而实现出站选路功能的关键,此函数的功能是在进入表之前判断策略路由,判断该数据包的目的IP是否符合该路由表,如果符合就进入该路由表,否则不进入此路由表/判断的原理就是预先设定好路由,通过IP数据库判断该目的IP属于哪条线路然后选择那条路由;
整体选路过程如下:
(1):拆数据包,获取目的IP地址、mark值等参数;
(2):通过线路检索模块在数据库文件中快速得出该访问属于的线路;
(3):首先判断路由缓存数据,如果路由缓存为空则根据该目的IP和得到的线路,在内核的路由模块中,判断应该走哪个路由表;
(4):如果没有合适的路由表,则选择默认路由;
(5):记录经验值和当前IP、和线路范围以供后续使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510354907.2A CN104980364A (zh) | 2015-06-23 | 2015-06-23 | 一种基于智能查找算法的链路负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510354907.2A CN104980364A (zh) | 2015-06-23 | 2015-06-23 | 一种基于智能查找算法的链路负载均衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104980364A true CN104980364A (zh) | 2015-10-14 |
Family
ID=54276486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510354907.2A Pending CN104980364A (zh) | 2015-06-23 | 2015-06-23 | 一种基于智能查找算法的链路负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104980364A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583333A (zh) * | 2018-11-16 | 2019-04-05 | 中证信用增进股份有限公司 | 基于水淹法和卷积神经网络的图像识别方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043421A (zh) * | 2006-03-21 | 2007-09-26 | 上海激动通信有限公司 | 一种基于内存的ip地址最长匹配快速查找的方法 |
CN101213811A (zh) * | 2005-06-30 | 2008-07-02 | 英特尔公司 | 采用标记值的多样本包内容检测机制 |
WO2012129432A2 (en) * | 2011-03-22 | 2012-09-27 | Texas Instruments Incorporated | Method and apparatus for packet switching |
CN103425787A (zh) * | 2013-08-26 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种渐进最优的三角网格重复顶点快速去除方法 |
CN103442049A (zh) * | 2013-08-22 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种面向构件的混合型云操作系统体系结构及其通信方法 |
-
2015
- 2015-06-23 CN CN201510354907.2A patent/CN104980364A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101213811A (zh) * | 2005-06-30 | 2008-07-02 | 英特尔公司 | 采用标记值的多样本包内容检测机制 |
CN101043421A (zh) * | 2006-03-21 | 2007-09-26 | 上海激动通信有限公司 | 一种基于内存的ip地址最长匹配快速查找的方法 |
WO2012129432A2 (en) * | 2011-03-22 | 2012-09-27 | Texas Instruments Incorporated | Method and apparatus for packet switching |
CN103442049A (zh) * | 2013-08-22 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种面向构件的混合型云操作系统体系结构及其通信方法 |
CN103425787A (zh) * | 2013-08-26 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种渐进最优的三角网格重复顶点快速去除方法 |
Non-Patent Citations (2)
Title |
---|
岳荣惠: ""出方向链路负载均衡选路策略的研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
雷升平: ""基于多核处理器的并行路由查找算法研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583333A (zh) * | 2018-11-16 | 2019-04-05 | 中证信用增进股份有限公司 | 基于水淹法和卷积神经网络的图像识别方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11423082B2 (en) | Methods and apparatus for subgraph matching in big data analysis | |
CN103095804B (zh) | 用于在集群存储系统中进行负载平衡的方法和系统 | |
CN103309917A (zh) | 路径搜索方法和路径搜索装置 | |
Delling et al. | Faster batched shortest paths in road networks | |
Wang et al. | Skyframe: a framework for skyline query processing in peer-to-peer systems | |
Pascoal et al. | An algorithm for ranking quickest simple paths | |
JP6613475B2 (ja) | 経路照会方法、装置、デバイス及び不揮発性コンピューター記憶媒体 | |
Arfat et al. | Parallel shortest path graph computations of United States road network data on apache spark | |
JP2018531379A6 (ja) | 経路照会方法、装置、デバイス及び不揮発性コンピューター記憶媒体 | |
CN109540165B (zh) | 一种启发式搜索的高速路网约束寻路算法 | |
Jaillet et al. | Online traveling salesman problems with rejection options | |
Abeywickrama et al. | Efficient Landmark-Based Candidate Generation for k NN Queries on Road Networks | |
CN105843907A (zh) | 一种内存索引结构-距离树的构建及基于距离树的相似性连接算法 | |
Levin et al. | TARS: traffic-aware route search | |
Cao et al. | SHAREK*: A scalable matching method for dynamic ride sharing | |
CN104794237B (zh) | 网页信息处理方法及装置 | |
CN104980364A (zh) | 一种基于智能查找算法的链路负载均衡方法 | |
Ghaemi et al. | A comparative study of two approaches for supporting optimal network location queries | |
CN113821550B (zh) | 路网拓扑图的划分方法、装置、设备及计算机程序产品 | |
CN110222055A (zh) | 一种动态图下多边更新的单轮核值维护方法 | |
Zafar et al. | Analysis of multiple shortest path finding algorithm in novel gaming scenario | |
Bouhafs et al. | A hybrid heuristic approach to solve the capacitated vehicle routing problem | |
Bansal et al. | Use of ant colony system in solving vehicle routing problem with time window constraints | |
Gąsieniec et al. | Searching with increasing speeds | |
JP7070710B2 (ja) | 分散処理支援装置、分散処理支援方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151014 |
|
RJ01 | Rejection of invention patent application after publication |