CN102158406B - 面向计算机网络链路的智能选路方法 - Google Patents

面向计算机网络链路的智能选路方法 Download PDF

Info

Publication number
CN102158406B
CN102158406B CN2011100816069A CN201110081606A CN102158406B CN 102158406 B CN102158406 B CN 102158406B CN 2011100816069 A CN2011100816069 A CN 2011100816069A CN 201110081606 A CN201110081606 A CN 201110081606A CN 102158406 B CN102158406 B CN 102158406B
Authority
CN
China
Prior art keywords
address
solution
found
hash table
link
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.)
Active
Application number
CN2011100816069A
Other languages
English (en)
Other versions
CN102158406A (zh
Inventor
汪黎
戴华东
吴庆波
袁飞
文云川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN2011100816069A priority Critical patent/CN102158406B/zh
Publication of CN102158406A publication Critical patent/CN102158406A/zh
Application granted granted Critical
Publication of CN102158406B publication Critical patent/CN102158406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种面向计算机网络链路的智能选路方法,包括以下步骤:采用核内模块截获请求访问外网的报文,若该报文为新的访问请求发起报文,则根据报文的目标地址查询主Hash表,若主Hash表命中,则将目标地址对应的连接打上标记,并根据标记对应的链路接口的信息转发数据;若主Hash表未命中,则核内模块将目标地址投入待求解地址池,由核外模块查询待求解地址池,先采用静态选路,快速地获得一个初步的选路结果,提供给核内模块使用;再根据动态选路对静态选路结果进行修正,更新主Hash表,并根据选路结果为连接打上标记并进行数据转发。本发明具有调度速度快、准确性高、系统资源消耗小的优点。

Description

面向计算机网络链路的智能选路方法
技术领域
本发明涉及计算机网络领域,特指一种计算机网络链路的选路方法。
背景技术
随着互联网的飞速发展,企业、学校、政府部门等对互联网的需求越来越大。中国主要的ISP (Internet Service Provider,互联网服务提供商)有:电信、网通和铁通等。客观上,ISP之间的互联互通存在速度慢,容易断线等问题。例如:电信用户访问网通的服务器,或者网通的用户访问电信的服务器,常出现连接缓慢,掉线,甚至服务无法访问等情况,影响了服务质量和用户体验。这种现象在全国范围内的普遍存在,使得不少网站只能退一步求其次,纷纷在网站上针对用户使用的不同ISP,罗列不同的入口链接,让用户自行选择,给用户造成了使用上很大的不便。
为了解决上述ISP之间互联互通的问题,且由于现在互联网接入成本逐渐降低,单位用户绝大多数都采用多链路接入的方式来访问互联网,如同时租用电信和网通的链路,依靠智能选路设备2来进行链路级的智能选路。典型的网络部署方式如图1所示,多条互联网接入链路都接在智能选路设备2上,内网用户5经交换机4和防火墙3后访问互联网,其数据流均经过智能选路设备2,并由智能选路设备2根据用户访问的服务器地址,选择相应的链路,并通过对应链路的路由器1将报文发出,以达到访问电信服务器的数据走电信链路;访问网通服务器的数据走网通链路的效果,从而改善互联网服务质量。
当前智能选路技术主要有两种:静态智能选路技术和动态智能选路技术。
静态智能选路即传统智能选路产品所称的静态就近性技术,该技术根据静态信息决定链路的选择。系统从互联网上下载ISP网段分配表。此外,一般的智能选路产品也支持由用户指定IP规则,即IP地址段与ISP的对应规则。系统解析IP规则,生成对应的基于目标地址的策略路由规则,然后借助iptables等工具将这些策略路由规则导入内核路由表即可实现静态智能选路。这种方式的静态智能选路实现比较简单,但存在性能问题。由于各ISP的网段分配并不连续,整个表的规模较大,包含大约3000条规则。这些规则全部对应到操作系统内核的路由规则,将占用大量的系统内核资源。而且,规则表的初始化,匹配都比较费时,影响操作系统的路由性能。此外,尽管静态信息在大多数情况下能导致正确的链路选择,但是,在某些情况下,如ISP网段分配更新,ISP服务中断,线路拥塞等原因,根据静态信息的选路不一定准确,可能出现目标地址为某个ISP的服务器的报文通过另一个ISP的链路发送速度更快。
动态智能选路即传统智能选路产品所称的动态就近性技术。动态智能选路不依赖静态的ISP网段分配信息,而是根据运行时信息选择最佳出口链路。动态智能选路的实现方式可分为核内方式和核内核外配合方式。
对于核内方式,如图4、图5和图6所示。系统基于操作系统内核报文捕获框架注册一个回调函数,截获外网访问及响应报文。如果报文为一个新的连接请求报文,则复制该报文,每个配置的外网接口一份,然后从这些外网接口同时发出,其对应的控制流程和数据流如图2和图3所示。同时,系统截获从外网接口收到的响应报文,选择接收到响应最快的接口,即数据往返时间测量值(Round-Trip Time Mesurement, RTT)最小的为该连接上后续报文的发送接口,利用操作系统提供的机制记录该连接的调度结果到内核中跟该连接相关的数据结构中。这样,此连接上的后续报文将由操作系统的路由子系统自动路由到对应的出口线路,而无需再启动智能选路过程。然后将响应报文转发给内网客户机。将其它外网接口上收到的响应报文丢弃。核内方式完全在操作系统内核实现,开发和调试难度较大,容易导致系统不稳定。另外,复制报文引入了开销。因此,当前智能选路产品的动态智能选路功能大多采用核内核外配合方式实现。
对于核内核外配合方式,系统同样截获外网访问报文,但选路由核外进程进行。对于新的连接请求,核内将连接的地址通过核内核外通信机制发送给核外的一个探测服务进程。该进程向该地址通过所有配置的外网接口发送探测报文,该探测报文可以是ICMP报文,或者是UDP, TCP报文。对于RTT值最小的接口,将其信息传递给核内模块。核内模块将该信息记录到内核对应连接的数据结构中,即对连接打上标记,则操作系统的路由子系统根据连接的标记将自动将该连接上的后续报文路由到选定的接口。
动态智能选路技术,不管是核内方式还是核内核外配合方式,对于每个不同的目标地址,均需启动探测过程来决定最佳的链路接口。因此系统开销较大,且调度时间较长。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的技术问题,本发明提供一种调度速度快、准确性高、系统资源消耗小的面向计算机网络链路的智能选路方法。
为解决上述技术问题,本发明采用以下技术方案:
一种面向计算机网络链路的智能选路方法,其特征在于包括以下步骤: 
1)核内模块截获请求访问外网的报文,若该报文为新的访问请求发起报文,则转步骤2);否则,转到步骤6);
2)根据报文中的目标地址计算Hash值,并查找记录有目标地址和链路接口对应关系的主Hash表,如果主Hash表命中,则获得该目标地址对应的链路接口的信息,转到步骤5),否则转入步骤3);
3)在核内维护的待求解地址池中查询所述目标地址,如果待求解地址池中没有所述目标地址,则将该目标地址投入待求解地址池,转入步骤4);否则直接转入步骤4);
4)根据预配置的默认策略,决定该目标地址对应的链路接口,将该目标地址对应的链路接口的信息保存插入到所述主Hash表中,转入步骤5);
5)将该目标地址对应的连接打上标记,转入步骤6);
6)根据目标地址的相应连接上的标记,将所述报文路由到所述标记对应的链路接口发送。 
作为本发明的进一步改进:
上述的方法中,所述主Hash表由核内模块和核外模块共享,所述主Hash表中长时间未使用的表项定期删除。
上述的方法中,所述主Hash表采用分段加锁。
上述的方法中,所述预配置的默认策略为最大带宽连接数比策略,即选择带宽除以当前连接数比值最大的接口。
上述的方法中,所述步骤3)完成后,核外模块对待求解地址池中的IP地址进行定期处理,具体包括以下步骤:
3.1)定期查询待求解地址池,获得待求解地址池中的所有待求解的IP地址,转入步骤3.2);
3.2)用所述待求解的IP地址查找核外维护的规则缓冲区,所述规则缓冲区中记录了最近使用过的IP地址段和链路接口的静态对应规则,如果所述待求解的IP地址落在规则缓冲区中的IP地址段中,则可直接根据所述静态对应规则获得对应的链路接口信息,转到步骤3.4),否则转到步骤3.3);
3.3)用所述待求解的IP地址查找核外存储的ISP网段分配表,所述ISP网段分配表中记录了所有IP地址段与ISP的对应关系,若所述待求解的IP地址与所述ISP网段分配表中的表项匹配上,则将所述IP地址与所属的ISP的链路接口的对应信息缓存到所述规则缓冲区中,转到步骤3.4);
3.4)将所述待求解的IP地址查询待验证缓冲区,如果待验证缓冲区中没有所述地址,则将该地址投入待验证缓冲区中,转到步骤3.5);
3.5)将得到的所述IP地址与与其所属的ISP的链路接口对应信息保存插入到所述主Hash表中。
上述的方法中,所述规则缓冲区的数据结构为线性链表形式,所述线性链表中每个表项为IP地址段和标记值的二元组,所述标记值与链路接口相对应。
上述的方法中,所述待求解地址池的数据结构为Hash表的形式。
上述的方法中,所述步骤3.4)完成后,核外模块对待验证缓冲区中的IP地址进行定期处理,具体包括以下步骤:
3.4.1)定期查询待验证缓冲区,获得待验证的IP地址;
3.4.2)构造发往待验证的IP地址的报文并向外网的所有链路接口发送,将往返时延最小的链路接口选定为所述待验证的IP地址对应的链路接口;
3.4.3)用得到的所述IP地址与链路接口的对应信息插入所述主Hash表中并修正不一致的表项。
上述的方法中,所述规则缓冲区中长时间未使用的表项定期删除。
与现有技术相比,本发明的优点在于:
1、本发明的面向计算机网络链路的智能选路方法,采用核内模块截获请求访问外网的报文,查询主Hash表,并迅速转发;而核外维护待求解地址池和待验证缓冲区并定期处理的核内核外相互独立且异步协作的方式。避免了转发外网访问报文时的核内核外通信或同步等待,减小了调度时间,提高了数据转发效率;并且,链路的选择确定由核外模块进行,大大减少了系统内核资源的消耗,减少了链路选择的过程对操作系统的路由性能的影响。 
2、本发明的面向计算机网络链路的智能选路方法,链路选择采用动静结合、以动辅静的方式;先采用静态信息进行选路,快速地获得一个初步的,在大多数情况下准确的选路结果,提供给核内模块使用;再根据动态信息对静态选路结果进行修正。在保持静态调度的简单高速的同时,又根据动态调度提供高的准确度。
3、本发明的面向计算机网络链路的智能选路方法,主Hash表以及规则缓冲区,遵循按需增长,未用淘汰的原则,对长时间未使用的表项定时进行删除,进一步降低了系统资源消耗。
4、本发明的面向计算机网络链路的智能选路方法,主Hash表采用分段加锁,核内与核外模块或不同的CPU访问的是主Hash表的不同的段,则可并行进行数据转发处理,加快了选路调度的速度。
附图说明
图1是现有的典型网络部署方式示意图;
图2是现有的动态智能选路核内方式的发送控制流程示意图;
图3是现有的动态智能选路核内方式的发送数据流示意图;
图4是现有的动态智能选路核内方式的接收控制流程示意图;
图5是现有的动态智能选路核内方式的接收数据流示意图;
图6是现有的动态智能选路核内方式的连接建立过程示意图;
图7是本发明具体实施例中核内模块与核外模块的连接关系示意图; 
图8是本发明的主流程示意图;
图9为本发明具体实施例的主Hash表中的表项的数据结构示意图;
图10是本发明具体实施例的Netfilter框架报文处理模块组成示意图;
图11是本发明具体实施例的核外模块定期处理待求解地址池中的IP地址的处理流程示意图;
图12是本发明具体实施例的核外模块定期处理待验证缓冲区中的IP地址的处理流程示意图;
图13是本发明具体实施例中IP地址在主Hash表、待求解地址池和待验证缓冲区中的处理流向示意图。
图例说明:
1、路由器;2、智能选路设备;3、防火墙;4、交换机;5、内网用户。
具体实施方式
以下将结合说明书附图和具体实施例对本发明作进一步详细说明。
将本发明的面向计算机网络链路的智能选路方法,应用于某同时租用了电信链路和网通链路的单位的内网与外网(因特网)之间的通信,实现报文发送的智能选路。该单位的网络设备部署如图1所示,智能选路设备2设于内网出口与外网接口处,所有外网线路均连接到智能选路设备2上。可通过在智能选路设备2的报文转发钩挂点注册回调函数,截获访问外网的报文,然后将其路由到选择的网络接口,实现智能选路。如图7所示,将实现本发明的软件系统划分为核内模块SLS(Smart Link Selector,智能链路选择器)和核外模块SP(Search Processor,查询器)。 SLS包括报文截获模块、主Hash表查询模块以及连接标记模块。SP包括静态选路模块和动态选路模块。SP通过getsockopt/setsockopt接口模块读写在内核的主Hash表以及待求解地址池。其中,getsockopt/setsockopt(获得/设置网络套接口选项)为Linux操作系统提供的核内与核外的通信接口。则如图8、图11和图12所示,本发明的面向计算机网络链路的智能选路方法,通过以下步骤实现:
1、核内模块SLS截获请求访问外网的报文,若该报文为新的访问请求发起报文,则转步骤2;否则,转到步骤6。
Linux操作系统提供Netfilter(网络过滤器)网络包过滤框架,该框架可以在内核空间进行包过滤、网络地址转换和网络连接跟踪等功能。Netfilter在网络协议栈中提供5个钩挂点,用户可以自己编写内核模块,在相应钩挂点注册回调函数,来截获数据包进行处理。本实施例中,Netfilter的5个钩挂点及其所在的网络协议栈如表1所示,报文流经钩挂点的流程如图10所示。
表1  Netfilter的5个钩挂点及其所在的网络协议栈对应表
报文处理点 说明
NF_IP_PRE_ROUTING 由内网接口传入设备的报文,在没有经过IP层路由之前,会先经过该点
NF_IP_LOCAL_IN 经过路由后,要进入本机的报文,会经过这个点
NF_IP_FORWARD 经过路由后,(接收到的报文)不是发往本机、需要向外转发的的报文,会经过该点
NF_IP_LOCAL_OUT 本机发往外部的报文(设备自己产生的报文)在经过路由之前会经过该点
NF_IP_POST_ROUTING 所有外出报文(包括设备自己产生的报文和设备接收后向外转发的报文)都必须经过该点
根据表1和图10可知,本实施例中,核内模块SLS可在NF_IP_FORWARD钩挂点注册回调函数来截获访问外网的报文。
2、核内模块SLS从报文头部提取目标地址(IP地址),根据该目标地址计算Hash值,并查找主Hash表,如果主Hash表命中,则转到步骤5,否则转入步骤3。
主Hash表中记录有目标地址和链路接口的对应关系(即IP地址与ISP的对应信息),其中的表项的数据结构如图9所示。该结构体保存了IP地址与相应的标记值的信息,具体的,list域用于将对应结构体插入到主Hash表中;ip域记录IP地址;value域记录标记值;use为使用计数,表项每被目标地址匹配一次就将该表项的使用计数加1。主Hash表由核内模块SLS和核外模块SP共享。核内模块SLS负责查询主Hash表。
本实施例中,核内模块SLS还负责定期淘汰主Hash表中长时间未使用的表项,以保证主Hash表的查找速度。如果在每个Hash表项上设置一个定时器,当定时器超时后,将该表项删除,由于智能选路系统中有可能存在几万个并发连接,若使用内核中的定时器,几万个表项对应大量的定时器,这会占用很多系统的开销。由于Hash表项的删除并不需要很精确,因此,本实施例采用粗粒度定时器。对于整个主Hash表,采用一个定时器,在模块加载时进行注册,然后定时进行主Hash表的清理工作。每次调用超时函数时,将使用计数use不为0的项置为0,使用计数use等于0的项删除,也就是说在超时时间间隔内没有被再次使用的表项将会从主Hash表中删除。
3、核内模块SLS将报文中的目标地址,查询在核内维护的待求解地址池,如果待求解地址池中没有该目标地址,则将该目标地址投入待求解地址池,转入步骤4;若待求解地址池中有目标地址,则直接转入步骤4。
4、核内模块SLS根据预配置的默认策略,本实施例中,采用最大带宽连接数比策略,决定该目标地址对应的链路接口。该策略的工作方式为:对于每条链路,将其带宽除以当前的连接数,取比值最大的链路。这是因为,带宽越宽,表明链路的物理通信性能越高;当前连接数越小,表明该链路负载越轻。在决定链路接口后,将该目标地址对应的链路接口的信息保存插入到所述主Hash表中,转入步骤5。
5、核内模块SLS将该目标地址对应的连接打上标记,转入步骤6。
6、核内模块SLS根据目标地址的相应连接上的标记,将报文路由到标记对应的链路接口发送(由协议栈处理完成)。 
本实施例中,核外模块SP实现一个守护进程,采用两个定时器,维护两个缓冲池。一个缓冲池为待求解地址池。核内模块SLS在遇到没有进行过智能选路的IP地址时,将该地址投入待求解地址池,由SP进行调度;另一个缓冲池为待验证缓冲区,存放进行了静态调度,等待动态调度进行验证的IP地址。
在步骤3完成后,核外模块SP对待求解地址池中的IP地址进行定期处理,具体包括以下步骤:
3.1 核外模块SP定期查询待求解地址池,获得待求解地址池中的所有待求解的IP地址,转入步骤3.2 。
待求解地址池的数据结构为Hash表的形式。一方面,应该避免同一待求解地址被多次插入待求解地址池;另一方面,将地址插入待求解地址池的速度应该尽量快,以保证内核模块转发的速度。采用Hash表,可迅速判断当前地址是否已经在Hash表中,且Hash表的插入速度也很快。
3.2 核外模块SP用待求解的IP地址查找核外维护的规则缓冲区,规则缓冲区中记录了最近使用过的IP地址段和链路接口的静态对应规则,如果待求解的IP地址落在规则缓冲区中的IP地址段中,则可直接根据静态对应规则获得对应的链路接口信息,转到步骤3.4 ,否则转到步骤3.3 ;规则缓冲区中长时间未使用的表项定期删除。
本实施例中,规则缓冲区的数据结构为线性链表形式,线性链表中每个表项为IP地址段和标记值二元组,标记值与链路接口相对应。
3.3 核外模块SP用待求解的IP地址查找核外存储的ISP网段分配表,ISP网段分配表中记录了所有IP地址段与ISP的对应关系,若待求解的IP地址与ISP网段分配表中的表项匹配上,则将求解得到的IP地址与其所属的ISP的链路接口的对应信息缓存到规则缓冲区中,转到步骤3.4。
3.4 核外模块SP将IP地址查询核外维护的待验证缓冲区,如果待验证缓冲区中没有所述地址,则将该地址投入待验证缓冲区中,转到步骤3.5)。 
对于投入待验证缓冲区中的IP地址,核外模块SP进行定期处理,具体包括以下步骤:
3.4.1定期查询待验证缓冲区,如果缓冲池非空,则从中取出所有的待验证的IP地址;
3.4.2构造发往待验证的IP地址的报文并向外网的所有链路接口发送,将往返时延最小的链路接口选定为IP地址对应的链路接口;
3.4.3用求解得到的IP地址与其所属的链路接口的对应信息插入主Hash表中并修正不一致的表项。
3.5 核外模块SP将得到的IP地址与ISP的链路接口的对应信息保存插入到主Hash表中。
在上述步骤过程中,IP地址表项的处理流向示意图如图13所示。由图可知,本发明的方法中,链路选择采用动静结合、以动辅静的方式。先采用静态信息(ISP网段分配表)进行选路,快速地获得一个初步的选路结果(在大多数情况下是准确的),提供给核内模块使用;再根据动态信息对静态选路结果进行修正,可大大提高选路的准确度。上述过程中,核外模块SP与核内模块SLS的控制过程相互独立、且异步协作,可减小智能选路对内核资源的占用,并减少等待时间。
本发明的方法中,采用主Hash表存储核内模块和核外模块共享的目标地址和链路接口对应关系表,可提高查找和插入速度。对于大规模的用户,智能选路系统可能需要同时处理上万个并发连接,因此支持快速搜索非常重要。选择Hash表优先Tree等数据结构的原因是Hash表的插入和删除的复杂度为O(1),而Tree的复杂度为O(log(n)),其它数据结构如线性链表的复杂度则更高。Hash表的查找复杂度为O(n/m),其中n为Hash表中对象的个数,m为Hash表的桶个数。当对象在Hash表中均匀分布,并且Hash表的桶个数与对象个数一样多时,Hash表的查找复杂度可以接近O(1)。
实际应用时,主Hash表可采用分段加锁机制。本实施例中,主Hash表是使用最频繁的资源,任何一个新的连接请求报文到达都需要查找Hash表。此外,核外组件SP还会定期更新主Hash表中的信息。如果只有一个锁来管理连接主Hash表的操作,锁的冲突率会较高。为了提高主Hash表的查找效率,主Hash表操作时的加锁采用分段加锁机制,假设锁的个数为num,则num由Hash表的大小决定,主Hash表的大小根据内存情况进行分配,假设为htable_size,则num=htable_size/4096,也就是说每4096个表项使用一把锁。使用分段加锁机制可以提高效率,对不在当前已锁表项范围内的主Hash表项可以并行操作。例如,假设主Hash表有8192个表项,依次编号为1至8192。编号为1至4096的表项使用一把锁,编号为4097至8192的表项使用另一把锁,则编号为3的表项可以和编号为4097至8192的任意一个表项并发访问。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (8)

1.一种面向计算机网络链路的智能选路方法,其特征在于包括以下步骤: 
1)核内模块截获请求访问外网的报文,若该报文为新的访问请求发起报文,则转步骤2);否则,转到步骤6);
2)根据报文中的目标地址计算Hash值,并查找记录有目标地址和链路接口对应关系的主Hash表,如果主Hash表命中,则转到步骤5),否则转入步骤3);
3)在核内维护的待求解地址池中查询所述目标地址,如果待求解地址池中没有所述目标地址,则将该目标地址投入待求解地址池,转入步骤4);否则直接转入步骤4);
4)根据预配置的默认策略,决定该目标地址对应的链路接口,将该目标地址对应的链路接口的信息保存插入到所述主Hash表中,转入步骤5);
5)将该目标地址对应的连接打上标记,转入步骤6);
6)根据目标地址的相应连接上的标记,将所述报文路由到所述标记对应的链路接口发送;
所述步骤3)完成后,核外模块对待求解地址池中的IP地址进行定期处理,具体包括以下步骤:
3.1)定期查询待求解地址池,获得待求解地址池中的所有待求解的IP地址,转入步骤3.2);
3.2)用所述待求解的IP地址查找核外维护的规则缓冲区,所述规则缓冲区中记录了最近使用过的IP地址段和链路接口的静态对应规则,如果所述待求解的IP地址落在规则缓冲区中的IP地址段中,则直接根据所述静态对应规则获得对应的链路接口信息,转到步骤3.4);否则转到步骤3.3);
3.3)用所述待求解的IP地址查找核外存储的ISP网段分配表,所述ISP网段分配表中记录了所有IP地址段与ISP的对应关系,若所述待求解的IP地址与所述ISP网段分配表中的表项匹配上,则将所述求解得到的IP地址与其所属的ISP的链路接口的对应信息缓存到所述规则缓冲区中,转到步骤3.4);
3.4)将所述待求解的IP地址查询核外维护的待验证缓冲区,如果待验证缓冲区中没有所述待求解的IP地址,则将该地址投入待验证缓冲区中,转到步骤3.5);
3.5)将求解得到的IP地址与其所属的ISP的链路接口的对应信息保存插入到所述主Hash表中。
2.根据权利要求1所述的面向计算机网络链路的智能选路方法,其特征在于,所述主Hash表由核内模块和核外模块共享,所述主Hash表中长时间未使用的表项定期删除。
3.根据权利要求1所述的面向计算机网络链路的智能选路方法,其特征在于,所述主Hash表采用分段加锁。
4.根据权利要求1所述的面向计算机网络链路的智能选路方法,其特征在于,所述预配置的默认策略为最大带宽连接数比策略。
5.根据权利要求1所述的面向计算机网络链路的智能选路方法,其特征在于,所述规则缓冲区的数据结构为线性链表形式,所述线性链表中每个表项为IP地址段和标记值的二元组,所述标记值与链路接口相对应。
6.根据权利要求1所述的面向计算机网络链路的智能选路方法,其特征在于,所述待求解地址池的数据结构为Hash表的形式。
7.根据权利要求1所述的面向计算机网络链路的智能选路方法,其特征在于,所述步骤3.4)完成后,核外模块对待验证缓冲区中的IP地址进行定期处理,具体包括以下步骤:
3.4.1)定期查询待验证缓冲区,获得待验证的IP地址;
3.4.2)构造发往待验证的IP地址的报文并向外网的所有链路接口发送,将往返时延最小的链路接口选定为所述待验证的IP地址对应的链路接口;
3.4.3)用得到的所述IP地址与链路接口的对应信息插入所述主Hash表中并修正不一致的表项。
8.根据权利要求1所述的面向计算机网络链路的智能选路方法,其特征在于,所述规则缓冲区中长时间未使用的表项定期删除。
CN2011100816069A 2011-04-01 2011-04-01 面向计算机网络链路的智能选路方法 Active CN102158406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100816069A CN102158406B (zh) 2011-04-01 2011-04-01 面向计算机网络链路的智能选路方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100816069A CN102158406B (zh) 2011-04-01 2011-04-01 面向计算机网络链路的智能选路方法

Publications (2)

Publication Number Publication Date
CN102158406A CN102158406A (zh) 2011-08-17
CN102158406B true CN102158406B (zh) 2013-10-23

Family

ID=44439603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100816069A Active CN102158406B (zh) 2011-04-01 2011-04-01 面向计算机网络链路的智能选路方法

Country Status (1)

Country Link
CN (1) CN102158406B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761476B (zh) * 2012-03-30 2015-01-14 杭州华三通信技术有限公司 一种负载均衡的方法及装置
CN102664833B (zh) * 2012-05-03 2015-01-14 烽火通信科技股份有限公司 家庭网关及分析用户上网行为和监控网络质量的方法
CN103269316B (zh) * 2013-05-28 2016-06-29 北京星网锐捷网络技术有限公司 选路的处理方法和装置及网络设备
CN103560959B (zh) * 2013-10-25 2017-02-01 瑞斯康达科技发展股份有限公司 一种选择静态路由的方法及装置
CN104363174B (zh) * 2014-11-12 2017-10-27 迈普通信技术股份有限公司 一种连接跟踪管理装置和方法
CN106357433B (zh) * 2016-08-30 2019-11-29 上海寰创网络科技有限公司 一种实接口多wan口网关的实现方法
CN106375220A (zh) * 2016-08-30 2017-02-01 上海寰创网络科技有限公司 一种虚接口多wan口网关的实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1630268A (zh) * 2003-12-19 2005-06-22 华为技术有限公司 一种多isp局域网的出口路由方法
CN101729427A (zh) * 2010-01-20 2010-06-09 杭州华三通信技术有限公司 一种多链路负载分担和选路的方法和路由器
CN101808034A (zh) * 2010-03-16 2010-08-18 杭州华三通信技术有限公司 一种路由管理方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI112148B (fi) * 2000-07-24 2003-10-31 Stonesoft Oyj Tietoliikenteen ohjausmenetelmä

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1630268A (zh) * 2003-12-19 2005-06-22 华为技术有限公司 一种多isp局域网的出口路由方法
CN101729427A (zh) * 2010-01-20 2010-06-09 杭州华三通信技术有限公司 一种多链路负载分担和选路的方法和路由器
CN101808034A (zh) * 2010-03-16 2010-08-18 杭州华三通信技术有限公司 一种路由管理方法和设备

Also Published As

Publication number Publication date
CN102158406A (zh) 2011-08-17

Similar Documents

Publication Publication Date Title
CN102158406B (zh) 面向计算机网络链路的智能选路方法
CN1875585B (zh) 利用mac限制来控制动态未知l2泛滥的方法和系统
US11522734B2 (en) Method for controlling a remote service access path and relevant device
Yasukata et al. {StackMap}:{Low-Latency} Networking with the {OS} Stack and Dedicated {NICs}
CN105554065B (zh) 处理报文的方法、转换单元和应用单元
KR101863024B1 (ko) 분산 로드 밸런서
CN106059821B (zh) 一种基于sdn的数据中心业务服务质量保障方法
CN102299969B (zh) 一种Web访问方法、七层交换设备和服务网络
US5918017A (en) System and method for providing dynamically alterable computer clusters for message routing
JP2015503274A (ja) 仮想レーンの動的割り当てを用いてファットツリートポロジにおける輻輳を緩和するためのシステムおよび方法
CN101573927A (zh) 网络系统中的路径最大传输单元发现
WO2012024909A1 (zh) 长连接管理装置及长连接通讯的链路资源管理方法
CN102394944B (zh) 一种Web访问中的IP地址库修正方法和设备
JP2022532731A (ja) スライスベースネットワークにおける輻輳回避
CN104821924A (zh) 一种网络数据包处理方法、装置和网络处理设备
CN109040243A (zh) 一种报文处理方法及装置
CN109240796A (zh) 虚拟机信息获取方法及装置
Raumer et al. Performance exploration of software-based packet processing systems
Soleimanzadeh et al. SD‐WLB: An SDN‐aided mechanism for web load balancing based on server statistics
CN107249038A (zh) 业务数据转发方法及系统
CN105099799B (zh) 僵尸网络检测方法和控制器
CN105991367A (zh) 一种测量虚拟机之间通信依赖关系的方法和系统
Haas et al. Creating advanced functions on network processors: Experience and perspectives
Bays et al. Flow based load balancing: Optimizing web servers resource utilization
CN110099015A (zh) 确定设备属性

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant