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

文档序号:8433695阅读:322来源:国知局
一种基于智能识别链路算法的链路负载均衡方法
【技术领域】
[0002]本发明设及链路选择技术领域,具体地说是一种基于智能识别链路算法的链路负 载均衡方法。
【背景技术】
[0003] 一个单位用多条ISP链路,避免因单ISP链路故障带来的网络可用性风险和解决 网络带宽不足带来的网络访问问题。如何合理运用多条ISP链路,既不造成资源浪费,又能 实现网络服务质量的提升成为很多单位需要解决的问题。链路负载均衡方法,目前主要的 方式有: 1、链路聚合,其价值在于其可W利用于低端接口到高端接口的过渡,例如单向2G的流 量,可W使用3条千兆的链路进行聚合,成本要低于直接使用万兆接口。聚合链路相对于单 条链路,具有更高的可靠性。
[0004] 2、等价多径路由,它的价值在于访问同一目的IP或网段,有多个出口,为充分利 用链路资源,配置相同的路由优先级,此时开启ECMP算法,就可W将流量负载分担到多条 链路上。
[0005] 3、ISP路由,其价值在于不同ISP间的地址互访速度较慢,因此内网用户访问外网 某服务时,如果做到内网用户源地址转换后使用跟此服务同一归属ISP的地址,就能提高 用户的体验。
[0006]上述链路负载均衡方法虽然各有特点,但是要精确的定位所访问的资源走相应链 路,需要数据库的支撑。

【发明内容】

[0007]本发明的技术任务是针对上述现有技术的不足,提供一种基于智能识别链路算法 的链路负载均衡方法。该方法将IP W特定的数据结构植入内核,通过截取数据流对数据流 进行分析,改变其方向,从而起到链路选择的效果。
[000引本发明的技术任务是按W下方式实现的:一种基于智能识别链路算法的链路负载 均衡方法,其特点是包括W下步骤: (一) 内核钩子模块截获数据流中的数据包,对数据包进行分析; (二) 通过在数据包中获取的信息在智能数据结构和子缓存中进行查找,并返回查找最 快的结果; (=)根据返回结果将数据流引向定义的路由模块,同时将选路信息存入到智能数据结 构中。
[0009]所述内核钩子模块用于对数据流中的数据包进行拆包,并获取目的IP、数据包源 IP及访问类型等信息。
[0010] 所述智能数据结构是在内核中定义的一种树形数据结构,每个节点的数据域中会 有一个存储最近几次在其下一层匹配的IP的地址,为下次查找提供参考。在该数据结构 中进行数据查找时,由于具有记忆功能,在智能数据结构中相同的IP查找的速度会越来越 快。
[0011] 查找的算法优选采用树的遍历匹配技术。
[0012] 子缓存的实现方法;在完成选路的同时将相关路线信息放入事先定义好的数据 库,作为子缓存,将信息缓存一段时间之后,如果在一定时间之后未再次匹配到,则将该缓 存记录删除,所述相关路线信息包括目的IP、源IP、选择的路线、时间戳。
[0013] 进一步说,所述子缓存是在钩子函数中嵌入一个缓存机制表,将来源IP、目的IP、 选择的路线、时间戳等参数登记下来,下次数据来了之后先进行进表判断,如果缓存表中不 存在该一数据,则直接进行智能树的查找,然后根据查询结果进行链路选择;在子缓存中如 果数据存在则走该线路,并修改表内的时间。根据表的登记时间,设置一个定时器定期的检 查表,如果发现该表的数据时间与当前时间差大于一定值则说明该段时间没有新连接,也 就是超时了,则删除该数据。
[0014] 作为优选,智能数据结构的读取和子缓存的读取同步进行,取最先完成的返回结 果,同时中断另外一个进程。
[0015] 本发明的基于智能识别链路算法的链路负载均衡方法采用智能数据结构,将isp 的IP段存储在智能数据结构中,通过学习用户访问数据包分析出访问的性质,通过在ISP 数据库中进行高速查找,在极短的时间内返回结果,根据结果对数据包做出站链路选择;通 过自定义内核钩子模块将数据包截获并进行分析,然后通过查询IP数据库,将该数据流定 位到相应的ISP链路上;检索智能数据结构的同时添加了子缓存功能,对链路查询功能有 了明显的提高;可W在修改了linux原内核的基础上,把新功能插入到系统中,在不影响原 有功能的基础上,对数据流进行了流向划分。与现有技术相比,本发明的链路负载均衡技术 具有简单、快速、便于实现等特点,尤其是加入了子缓存功能,选路效率更加高效。在多条运 营商线路的情况下,能够体现出反应速度,能够提高链路负载均衡器的处理效率。
【附图说明】
[0016] 附图1是本发明基于智能识别链路算法的链路负载均衡方法数据传输流程图; 附图2是本发明基于智能识别链路算法的链路负载均衡方法中学习算法原理流程图。
【具体实施方式】
[0017] 参照说明书附图W具体实施例对本发明的基于智能识别链路算法的链路负载均 衡方法作W下详细地说明。
[001引 实施例: 如附图1所示,本发明基于智能识别链路算法的链路负载均衡方法实现步骤如下: 第一步;内核钩子模块(函数)截取数据流中的数据包,根据来访数据流中的源IP、目的IP在子缓存表(表一)中进行快速匹配,同时在智能数据结构中也进行匹配,如果缓存中匹 配成功则返回所选的链路,此时数据结构的快速查找将被中断。
[0019] 第二步:如果子缓存中查找不到,则等待智能数据结构的查找机制,根据返回的结 果选择链路,并同时将该选路信息加入到子缓存表中。
[0020] 第=步:同样的数据流在第二次到来的时候如果在缓存时间内将直接根据缓存信 息选择链路。
[0021] 第四步;如果找不到返回默认线路。
【主权项】
1. 一种基于智能识别链路算法的链路负载均衡方法,其特征在于包括以下步骤: (一) 内核钩子模块截获数据流中的数据包,对数据包进行分析; (二) 通过在数据包中获取的信息在智能数据结构和子缓存中进行查找,并返回查找最 快的结果; (三) 根据返回结果将数据流引向定义的路由模块,同时将选路信息存入到智能数据结 构中。
2. 根据权利要求1所述的基于智能识别链路算法的链路负载均衡方法,其特征在于: 所述内核钩子模块用于对数据流中的数据包进行拆包,并获取目的IP、数据包源IP及访问 类型信息。
3. 根据权利要求1所述的基于智能识别链路算法的链路负载均衡方法,其特征在于所 述智能数据结构是在内核中定义的一种树形数据结构,每个节点的数据域中会有一个存储 最近几次在其下一层匹配的IP的地址,为下次查找提供参考。
4. 根据权利要求3所述的基于智能识别链路算法的链路负载均衡方法,其特征在于查 找的算法采用树的遍历匹配技术。
5. 根据权利要求1所述的基于智能识别链路算法的链路负载均衡方法,其特征在于子 缓存的实现方法:在完成选路的同时将相关路线信息放入事先定义好的数据库,作为子缓 存,将信息缓存一段时间之后,如果在一定时间之后未再次匹配到,则将该缓存记录删除, 所述相关路线信息包括目的IP、源IP、选择的路线、时间戳。
6. 根据权利要求1所述的基于智能识别链路算法的链路负载均衡方法,其特征在于智 能数据结构的读取和子缓存的读取同步进行,取最先完成的返回结果,同时中断另外一个 进程。
【专利摘要】本发明公开了一种基于智能识别链路算法的链路负载均衡方法,属于链路选择技术领域。该方法包括以下步骤:(一)内核钩子模块截获数据流中的数据包,对数据包进行分析;(二)通过在数据包中获取的信息在智能数据结构和子缓存中进行查找,并返回查找最快的结果;(三)根据返回结果将数据流引向定义的路由模块,同时将选路信息存入到智能数据结构中。与现有技术相比,本发明方法是在对linux内核进行了修改的基础上,通过加入ISP数据库,并对数据库进行高速查询,通过得出结果选择链路的方法,具有简单、快速等特点,能够有效提高链路负载均衡器的处理效率。
【IPC分类】H04L12-803
【公开号】CN104753807
【申请号】CN201510155867
【发明人】路廷文, 刘刚
【申请人】浪潮电子信息产业股份有限公司
【公开日】2015年7月1日
【申请日】2015年4月3日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1