一种有效数据包捕获方法及请求重定向服务器的制造方法

文档序号:7816485阅读:276来源:国知局
一种有效数据包捕获方法及请求重定向服务器的制造方法
【专利摘要】本发明提供了一种基于协议栈的有效包捕获方法,该方法可以用来实现一种请求重定向服务器,该服务器可以把网络用户的请求引导到离用户较近的缓存系统,以提高用户资源下载速度。该方法包括将包含有效包的网络流量引导到重定向服务器的接收网口,所有进入网口的数据包被网口接收并递交给网络层协议栈;网络层协议栈获取数据包的目的IP地址,将目的IP地址为非本机IP地址的数据包不丢弃或路由转发而是基于预设的过滤规则对数据包进行过滤,将满足过滤规则的数据包的内存地址存入对应的有效包缓冲区描述符环,对于不满足任何过滤规则的数据包则直接从内存中删除;本发明解决了基于抓包的有效包捕获方法存在丢包及耗用系统资源的问题。
【专利说明】一种有效数据包捕获方法及请求重定向服务器

【技术领域】
[0001]本发明涉及互联网缓存系统请求重定向【技术领域】,特别是涉及一种有效数据包捕获方法及请求重定向服务器。

【背景技术】
[0002]互联网缓存系统将互联网用户对网络资源的请求重定向到距离用户较近的边缘缓存服务器,以实现提高用户资源下载速度及减少网间流量的目的。
[0003]请求重定向模块是互联网缓存系统的一个核心模块,有效包的捕获是请求重定向的基础。
[0004]请求重定向模块首先需要捕获用户的HTTP请求、P2P get-peer请求及DNS请求等有效数据包,然后通过对这些有效包进行分析来构造其重定向包并发送给用户,以实现对用户请求进行重定向的目的,因此有效包的捕获方法是请求重定向模块性能的关键因素。
[0005]传统的有效包捕获方法通常是基于抓包的思想,Unix/Linux平台上可以使用Libpcap库进行抓包,基于抓包的有效包捕获方法其步骤如下:
[0006]步骤I)网络数据包到达接收网口后,首先被接收网口接收并缓存到接收缓冲区中;
[0007]步骤2)网口产生硬件中断,CPU响应中断并执行中断处理程序,中断处理将数据包拷贝到内核内存空间并递交给上层协议栈处理,与此同时抓包模块利用已经创建的Socket从链路层驱动程序中获得该数据包的拷贝,再通过Tap函数将数据包发给BPF (BSDPacket Filter)过滤器;
[0008]步骤3) BPF过滤器根据用户预定义的过滤规则对数据包进行逐一过滤,满足过滤规则的有效数据包被缓存到相应的缓冲区,不满足过滤规则的数据包被删除。
[0009]基于抓包的有效包捕获方法存在以下两个缺点:
[0010]I)抓包模块通过数据拷贝的方式获取进入网口数据包的一份副本,当网络流量较大时大量内存拷贝会耗用很多系统资源;
[0011]2)数据包拷贝存在一定的延迟,当网络流量较大时会产生大量的丢包。


【发明内容】

[0012]鉴于以上所述现有技术的缺点,本发明针对现有互联网缓存系统请求重定向模块提出了一种新的有效包捕获方法,该方法在协议栈基础上进行数据包过滤和有效包捕获,不进行网络抓包及数据包拷贝,从而解决了现有基于抓包的有效包捕获方法存在丢包及消耗大量系统资源的问题。
[0013]为实现上述目标及其他相关目标,本发明提供一种有效数据包捕获方法,包括:将包含有效数据包的网络流量引导至请求重定向服务器的接收网口 ;将所述接收网口设置为混杂模式以能接收目的MAC地址并非本网口 MAC地址的数据包,并递交给网络层协议栈处理;网络层协议栈解析数据头部以获取数据包的目的IP地址,判断所述数据包的目的IP地址是否为本机IP地址;若是,则将所述数据包按传统协议栈流程处理;若否,则进行有效数据包捕获处理,包括:获取该数据包相关特征的值,将相关特征的值代入过滤规则列表中每一项过滤规则对应的特征逻辑运算表达式来进行计算,根据所述计算结果的值判断数据包是否匹配该过滤规则;如果匹配成功,则将该数据包的内存地址存入过滤规则指明的有效包缓冲区描述符环中;如果所有过滤规则都没有匹配成功,则删除该数据包。
[0014]可选的,所述数据包的相关特征是相关于该数据包的至少一个命题,所述相关特征的值是该命题的真假值,所述特征逻辑运算表达式是数据包各相关命题的复合命题,所述特征逻辑运算表达式的计算结果是指该复合命题的真假值。
[0015]可选的,所述数据包的相关特征包括:属性特征和字节特征;所述属性特征包括:数据包的属性信息值是否满足与预设值存在预定的运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系。
[0016]可选的,所述属性特征包括:数据包头部内各项信息的值是否与预设值间存在预定的关系运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系。
[0017]可选的,通过在相关网络链路上进行分光或者在出口路由做端口镜像的方式,将所述包含有效数据包的网络流量引导至请求重定向服务器的接收网口。
[0018]为实现上述目标及其他相关目标,本发明提供一种请求重定向服务器,包括:重定向服务器网卡的接收网口,用于接收被引导至所述请求重定向服务器的网络数据流;所述接收网口设置为混杂模式,以能接收进入网口的所有数据包,并递交给网络层协议栈处理;有效包捕获模块,包括网络层协议栈和有效包分析引擎;所述网络层协议栈用于解析数据头部以获取数据包的目的IP地址,判断所述数据包的目的IP地址是否为本机IP地址;若是,则将所述数据包按传统协议栈流程处理;若否,则将所述数据包交给所述有效包分析引擎进行有效包捕获处理;所述有效包分析引擎用于对数据包进行过滤并捕获有效数据包,包括:获取该数据包相关特征的值,将相关特征的值代入过滤规则列表中每一项过滤规则对应的特征逻辑运算表达式来进行计算,根据所述计算结果的值判断数据包是否匹配该过滤规则;如果匹配成功,则将该数据包的内存地址存入过滤规则指明的有效包缓冲区描述符环中;如果所有过滤规则都没有匹配成功,则删除该数据包;请求重定向模块,用于将用户对网络资源的请求引导到缓存服务器,其读取、分析有效数据包,并构造相应的响应包发送给用户,以此实现对用户请求的引导。
[0019]可选的,所述数据包的相关特征是相关于该数据包的至少一个命题,所述相关特征的值是该命题的真假值,所述特征逻辑运算表达式是数据包各相关命题的复合命题,所述特征逻辑运算表达式的计算结果是指该复合命题的真假值。
[0020]可选的,所述数据包的相关特征包括:属性特征和字节特征;所述属性特征包括:数据包的属性信息值是否满足与预设值存在预定的运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系。
[0021]可选的,所述属性特征包括:数据包头部内各项信息的值是否与预设值间存在预定的关系运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系。
[0022]可选的,通过在相关网络链路上进行分光或者在出口路由做端口镜像的方式,将所述包含有效数据包的网络流量引导至请求重定向服务器的接收网口。
[0023]如上所述,本发明提供了一种基于协议栈的有效数据包捕获方法以及基于该方法实现的一种请求重定向服务器,该请求重定向服务器可以将互联网用户的网络资源请求引导到距离用户较近的边缘缓存服务器,以提高用户资源获取的速度,并降低运营商网间结算成本。基于协议栈的有效包捕获方法包括将包含有效数据包的网络流量引导至请求重定向服务器的接收网口 ;将所述接收网口设置为混杂模式以能接收目的MAC地址并非本网口MAC地址的数据包,并递交给网络层协议栈处理;网络层协议栈解析数据头部以获取数据包的目的IP地址,判断所述数据包的目的IP地址是否为本机IP地址;若是,则将所述数据包按传统协议栈流程处理;若否,则进行有效数据包捕获处理,包括:获取该数据包相关特征的值,将相关特征的值代入过滤规则列表中每一项过滤规则对应的特征逻辑运算表达式来进行计算,根据所述计算结果的值判断数据包是否匹配该过滤规则,如果匹配成功,则将该数据包的内存地址存入过滤规则指明的有效包缓冲区描述符环中;如果所有过滤规则都没有匹配成功,则删除该数据包。该发明解决了基于抓包的有效包捕获方法存在丢包以及消耗大量系统资源的问题。

【专利附图】

【附图说明】
[0024]图1显示为本发明一实施例中应用的网络环境架构示意图。
[0025]图2显示为本发明一实施例中的有效数据包捕获方法的流程示意图。
[0026]图3a至图3d显示为本发明一实施例中的有效数据包捕获方法应用的主要数据结构示意图。
[0027]图4显示为本发明一实施例中的请求重定向服务器的结构示意图。
[0028]图5显示为本发明一实施例中的重定向服务器捕获数据包并重定向数据包的应用程序结果示意图。
[0029]元件标号说明
[0030]I请求重定向服务器
[0031]11网卡
[0032]111接收网口
[0033]12有效包捕获模块
[0034]121网络层协议栈
[0035]122有效包分析引擎
[0036]13请求重定向模块
[0037]SI?S7方法步骤

【具体实施方式】
[0038]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0039]本发明的应用环境为基于TCP/IP协议栈的网络环境,如因特网。本发明可以应用于互联网缓存系统,是针对互联网缓存系统中请求重定向服务器有效数据包获取技术的改进;参阅图1所示为一互联网缓存系统实施例,互联网缓存系统主要由请求重定向服务器和缓存服务器集群组成,主要工作原理及流程为:(1)网内互联网用户发起对网外资源的请求;(2)该请求数据包被导入到请求重定向服务器的接收网口 ;(3)请求重定向服务器捕获、分析该请求数据包以产生相应的重定向包并发送给网内用户;(4)用户收到请求重定向数据包后,用户对网外资源的请求被引导到缓存服务器,用户重新向缓存服务器发起资源请求,此时如果用户请求的资源已经缓存在缓存服务器,则缓存服务器直接将用户请求的资源发送给用户,否则缓存服务器向源站发起回源请求,获取资源后发送给用户并对获取到的资源进行缓存。
[0040]请参阅图2,本发明提供了一种有效数据包捕获方法,包括:
[0041]步骤S1:将包含有效数据包的网络流量引导至请求重定向服务器的接收网口。
[0042]在一实施例中,可以通过在相关网络链路上进行分光或者在出口路由做端口镜像等方式,将所述包含有效数据包的网络流量引导至请求重定向服务器的接收网口,所述接收网口可以是请求请求重定向服务器上的网卡所提供。
[0043]步骤S2:将所述接收网口设置为混杂模式以能接收所有进入网口的数据包,并递交给网络层协议栈处理。
[0044]在一实施例中,对于linux服务器,可以通过执行shell命令:ifconfig ethOpromise将其ethO网口设置成混杂模式。
[0045]步骤S3:网络层协议栈解析数据头部以获取数据包的目的IP地址,判断所述数据包的目的IP地址是否为本机IP地址。
[0046]在一实施例中,即判断数据包的目的IP地址是否为本机(请求重定向服务器)IP地址,在网络层协议栈将目的IP地址为非本机IP地址的数据包不丢弃或路由转发而是进行处理以捕获有效数据包。
[0047]步骤S4:若是,则将所述数据包按传统协议栈流程处理。
[0048]在一实施例中,对于非路由模式运行TCP/IP协议栈的linux主机而言,网络层协议栈解析IP头部并判断该IP数据包的目的IP是否为本机IP地址,若是则对数据包进行处理并去掉IP头部后递交给上层协议进行处理,网络层根据IP数据头部的Protocal字段来决定递交给那种上层协议栈处理,常用的上层协议有TCP、UDP、ICMP、IGMP等协议。
[0049]步骤S5:若否,则进行有效数据包捕获处理,包括:计算该数据包相关特征的值,将相关特征的值代入过滤规则列表中每一项过滤规则对应的逻辑运算表达式来进行计算,根据所述计算结果的值判断数据包是否匹配该过滤规则。
[0050]在一实施例中,首先对网络层协议栈进行修改,数据包在网络层协议栈被划分为目的IP地址为本机IP地址和目的IP地址为非本机IP地址的数据包,对于目的IP地址为非本机IP地址的数据包不进行路由转发或丢弃而是直接交给有效包分析引擎进行有效包捕获处理。
[0051]有效包分析引擎的有效包捕获基于数据包的特征,其中包括属性特征和字节特征。属性特征是针对数据包属性信息的一种宏观描述,字节特征则是针对数据包在字节层面的一种描述;所述属性特征包括:数据包的属性信息值是否与预设值间存在预定的关系运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系。举例来说,“目的端口号等于80”是数据包的一个属性特征,如果一个数据包的TCP头部中Destinat1n port字段的值为80,则其该属性特征的值为1,否则其该属性特征的值为0,另外“数据包的目的IP地址为221.181.122.4”也是描述数据包的一个属性特征,若数据包IP头部的目的IP地址为221.181.122.4,则该属性特征值为1,反之则为0。“tcp[20:2] = 0x4745”是数据包的一个字节特征,如果一个数据包的TCP数据中偏移20字节的连续两个字节值等于0x4745,则该字节特征的值为1,否则该字节特征值为 0。“dport = 80 and (tcp [20:2] = 0x4745 or tcp [20:2] = 0x4854) ”是上述特征的逻辑运算表达式,对于发往80端口的HTTP数据包该逻辑运算表达式的值为1。
[0052]如图3a所示,在一实施例中有效包特征全局表用来存储有效包的所有相关特征,其中每条特征包括5个字段,分别是:特征类型、特征参数、关系运算符、预设值、特征值。特征类型占用1字节内存空间,用于表示该特征是字节特征还是属性特征,其中属性特征为0,字节特征为1 ;特征参数占用16字节内存空间,特征参数是关于特征的描述比如port、dport等;预设值占用16字节内存空间,是关于特征参数的预设值比如port特征参数的预设值80等;关系运算符占用1字节内存空间,用于描述该特征的特征参数和预设值之间的关系运算类型,比如 >、=、〈等;特征值占用2字节内存空间,表示该特征针对某数据包的真假值,有效包特征全局表初始化时该字段被置为-1 ;因此对于上述的三个特征:dp0rt =80、tcp [20:2] = 0x4745、tcp [20:2] = 0x4854 在有效包全局表中的储存为(0, dport,=,80,-1)、(1,tcp [20:2], = ,0x4745, -1)、(1,tcp [20:2],=,0x4854,-1)。
[0053]如图3b所示,所述过滤规则表用于储存所有的有效包过滤规则,其中包括3个字段,分别是:MD5值、后续表达式、指针point。MD5值占用16字节内存空间,存储过滤规则字符串的 MD5 值,比如过滤字符串 “dport = 80 and (tcp [20:2] = 0x4745 or tcp [20:2]=0x4854) ”的16位MD5值为dlb83e5alc6e4332,存储MD5值而不直接存储过滤规则字符串的目的一方面是为了节约存储空间,另一方面是为了提高相关过滤规则的查找速度;后续表达式占用40字节内存空间,用于储存过滤规则相关的特征逻辑表达式的后续表达式,对于上述过滤规则:dport = 80 and (tcp [20:2] = 0x4745 or tcp [20:2] = 0x4854),其中dport = 80在有效包特征全局表中的索引为0,tcp [20:2] = 0x4745在有效包特征全局表中的索引为1,tcp [20:2] = 0x4854在有效包特征全局表中的索引为2,则该逻辑特征表达式改写为0&(11 2),该逻辑表达式的后续表达式为012 | &,因此该过滤规则的后续表达式字段存储值为012 |& ;指针point存储该过滤规则对应的有效包描述符环metadata的地址。
[0054]在一实施例中,有效包分析引擎的初始化程序读取所有的有效包过滤规则并创建图3所示的数据结构,根据有效包过滤规则初始化有效包特征全局表和过滤规则表中的相关字段。有效包捕获过程首先根据数据包计算有效包特征全局表中所有特征的值,然后依次扫描过滤规则表中的每一条过滤规则,将有效包特征表中相关特征的值代入过滤规则后续表达式来计算该后续表达式的值并以此判断该数据包是否匹配该过滤规则。
[0055]步骤S6:如果匹配成功,则将该数据包的内存地址存入过滤规则指明的有效包缓冲区描述符环中。
[0056]如图3b所示,在一实施例中,通过过滤规则的指针point字段可以找到其有效包描述符环Metadata,有效包描述符环Metadata是有效包描述符环的管理数据结构,占用24字节的内存空间,该数据结构包括4个字段:free_point、avail-point、free-num、avail-num,其中free-point占用8字节内存空间,指向有效包缓冲区描述符环中第一个空描述符;avail-point占用8字节内存空间,指向有效包缓冲区描述符环中第一个可用的描述符;aVail-num占用4字节内存空间,表示有效包描述符环中可用有效包描述符数量;free-num占用4字节内存空间,表示有效包描述符环中空描述符数量。每当需要存储一个新的有效包信息时,通过free-point获取到第一个空描述符,将相关信息记录到该描述符对应的内存空间,然后free-point顺时针后移一个位置,free-num执行减一操作,avail-num执行加一操作;当需要从有效包描述符环中读取一个有效包时,通过avail-point获取到第一个可用描述符地址,根据该描述符记录的信息读取到一个有效数据包,然后avail-point顺时针后移一个位置,free-num执行加一操作,avail-num执行减I操作。
[0057]在一实施例中,有效包描述符环中每一项描述符包括一个index字段,该字段占用4字节内存空间,表示有效包全局索引表的一个索引值,有效包索引表的数据结构例如图3c所示。当记录一个新的有效包时,首先根据有效包描述符环Metadata找到一个空的描述符,如果该有效包第一次匹配过滤规则,则从有效包全局索引表中找到一个空索引项,记录该索引项在有效包索引表中的索引值,索引项Num字段置I,索引项的point字段存储该数据包的内存地址,然后将该索引项所在有效包索引表的索引值记录到描述符中的index字段;如果该有效包已经匹配前面的过滤规则,则根据记录的有效包索引表中的索引值找到对应的索引项,将该索引项的Num字段执行加一操作,同时将该索引项所在索引表的索引值存储到描述符的index字段。当读取指定过滤规则的有效包时,首先根据过滤过则的指针point字段找到该过滤规则的有效包描述符环Metadata,根据Metadata找到一个可用描述符,根据该描述符的index字段找到有效包全局索引表中的一个索引项,根据索引项中的point字段找到并读取该有效包,同时索引项的Num字段执行减一操作后判断Num是否为0,如果为O则删除point指向的有效包,同时point置NULL并更新有效包全局索引表位图。
[0058]如图3d所示,在一实施例中,所述有效包全局索引表位图占用64乘8字节的内存空间,用于记录有效包索引表中所有索引项的空闲信息,有效包全局索引表中的每一索引项对应与索引表位图中的I BH。如果索引表位图中的某一 Bit为0,则表示其对应的索引项为空索引项,如果为I则表示其对应的索引项为非空。采用单独的位图来记录全局索引表的空闲信息是为了提高空索引项的查找速度。
[0059]步骤S7:如果所有过滤规则都没有匹配成功,则删除该数据包。
[0060]在一实施例中,不匹配所有过滤规则的数据包不是我们感兴趣的数据包,直接将数据包从内核内存空间中删除。
[0061]不同于传统网络层协议栈对目的IP地址为非本机IP地址的数据包的处理方法,有效包捕获方法中网络层协议栈将数据包分成两类:目的IP地址为本机IP的数据包和目的IP地址为非本机IP地址的数据包,目的IP地址为本机IP地址的数据包按照传统协议栈的处理流程进行处理,目的IP地址为非本机IP地址的数据包不直接丢弃或路由转发而是进行数据包过滤以获取有效数据包。
[0062]如图4所示,本发明提供一种请求重定向服务器1,部分技术细节与上述方法类似,因此不再赘述;请求重定向服务器1主要组成部分包括:请求重定向服务器1上监听网卡11的数据包接收网口 111,有效数据报捕获模块12主要组成部分为经过特殊修改的网络层协议栈121及有效包分析引擎122,以及请求重定向模块13。数据包接收网口 111被设置成混杂模式使其可以接收所有进入网卡11的数据包并递交给网络层协议栈121进行处理。有效数据报捕获模块的网络层协议栈121经过了前述的修改使其对目的IP地址为非本机IP地址的数据包不丢弃或路由转发而是交给有效包分析引擎122来处理,有效包分析引擎122对数据包进行分析过滤将满足过滤条件的数据包内存地址缓存到该过滤规则对应的有效包缓冲区描述符环中,没有被任何过滤规则匹配的数据包从内存中删除,其中所述有效数据包可包括http get请求包、p2p get-peer请求包以及dns request数据包等。进而,请求重定向模块13从有效包缓存区描述符环中读取有效数据包并对有效包进行分析以此来产生其请求重定向数据包以达到将用户对资源的请求重定向到缓存服务器。
[0063]以重定向用户HTTP请求为例说明请求重定向服务器1的工作原理,首先包含用户HTTP请求的流量被导入到接收网口 111,接收网口 111接收所有的数据包并递交给网络层协议栈121处理,网络层协议栈121将目的IP地址为非本机IP地址的数据包交给有效包分析引擎122处理,其中这部分数据包就包括用户的HTTP请求。有效包分析引擎122对这部分数据包进行分析过滤,将HTTP请求数据包作为有效数据包并将其内存地址存储到有效包缓冲区描述符环中。请求重定向模块13从有效包缓冲区描述符环中读取HTTP请求包然后构造该请求包的HTTP 302重定向包并发送给HTTP请求的用户,其中302重定向数据包的locat1n字段指向缓存服务器,当用户接收到该HTTP 302重定向数据包后,用户的该HTTP请求被引导到缓存服务器,HTTP请求数据包以及HTTP 302重定向数据包的一个实例如图5所示。
[0064]综上所述,本发明提供了一种基于协议栈的有效数据包捕获方法及其应用实现的请求重定向服务器,该请求重定向服务器可以将互联网用户的网络资源请求引导到距离用户较近的边缘缓存服务器,以提高用户资源获取的速度,并降低运营商网间结算成本。该方法包括将包含有效数据包的数据流通过某种方法引导到请求重定向服务器的接收网口 ;请求重定向服务器的接收网口被设置为混杂模式以使驱动可以接收目的mac地址为非本网口 mac地址的数据包并将数据包递交给网络层协议栈来处理;网络层协议栈解析数据头部以获取数据包的目的IP地址,判断目的IP地址是否为本机IP地址,如果是本机IP地址则按照正常的协议栈流程处理该数据包,如果目的IP地址不是本机IP地址,则将该数据包交给有效包分析引擎来处理;有效包分析引擎获取数据包的相关特征值并组成特征值组合,将得到的特征值组合与过滤规则列表中每一项过滤规则的特征值组合匹配;如果匹配成功则将该数据包的内存地址存入规则指明的有效包缓冲区描述符环中,如果所有规则都没有匹配成功则删除该数据包;另外实现一组系统调用,来管理有效包分析引擎以及读取有效数据包;该发明解决了基于抓包的有效包捕获方法存在丢包以及影响系统性能的问题。
[0065]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属【技术领域】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【权利要求】
1.一种有效数据包捕获方法,其特征在于,包括: 将包含有效数据包的网络流量引导至请求重定向服务器的接收网口; 将所述接收网口设置为混杂模式以能接收目的MAC地址并非本网口 MAC地址的数据包,并递交给网络层协议栈处理; 网络层协议栈解析数据头部以获取数据包的目的IP地址,判断所述数据包的目的IP地址是否为本机IP地址; 若是,则将所述数据包按传统协议栈流程处理; 若否,则进行有效数据包捕获处理,包括:获取该数据包相关特征的值,将相关特征的值代入过滤规则列表中每一项过滤规则对应的特征逻辑运算表达式来进行计算,根据所述计算结果的值判断数据包是否匹配该过滤规则; 如果匹配成功,则将该数据包的内存地址存入过滤规则指明的有效包缓冲区描述符环中; 如果所有过滤规则都没有匹配成功,则删除该数据包。
2.根据权利要求1所述的有效数据包捕获方法,其特征在于,所述数据包的相关特征是相关于该数据包的至少一个命题,所述相关特征的值是该命题的真假值,所述特征逻辑运算表达式是数据包各相关命题的复合命题,所述特征逻辑运算表达式的计算结果是指该复合命题的真假值。
3.根据权利要求2所述的有效数据包捕获方法,其特征在于,所述数据包的相关特征包括:属性特征和字节特征;所述属性特征包括:数据包的属性信息值是否满足与预设值存在预定的运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系。
4.根据权利要求3所述的有效数据包捕获方法,其特征在于,所述属性特征包括:数据包头部内各项信息的值是否与预设值间存在预定的关系运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系。
5.根据权利要求1所述的有效数据包捕获方法,其特征在于,通过在相关网络链路上进行分光或者在出口路由做端口镜像的方式,将所述包含有效数据包的网络流量引导至请求重定向服务器的接收网口。
6.一种请求重定向服务器,其特征在于,包括: 请求重定向服务器网卡的接收网口,用于接收被引导至所述请求重定向服务器的网络数据流;所述接收网口设置为混杂模式,以能接收进入网口的所有数据包,并递交给网络层协议栈处理; 有效包捕获模块,包括网络层协议栈和有效包分析引擎;所述网络层协议栈用于解析数据包头部以获取数据包的目的IP地址,判断所述数据包的目的IP地址是否为本机IP地址;若是,则将所述数据包按传统协议栈流程处理;若否,则将所述数据包交给所述有效包分析引擎进行有效包捕获处理; 所述有效包分析引擎用于对数据包进行过滤并捕获有效数据包,包括:获取该数据包相关特征的值,将相关特征的值代入过滤规则列表中每一项过滤规则对应的特征逻辑运算表达式来进行计算,根据所述计算结果的值判断数据包是否匹配该过滤规则;如果匹配成功,则将该数据包的内存地址存入过滤规则指明的有效包缓冲区描述符环中;如果所有过滤规则都没有匹配成功,则删除该数据包; 请求重定向模块,用于将用户对网络资源的请求引导到缓存服务器,其读取、分析有效数据包,并构造相应的响应包发送给用户,以此实现对用户请求的引导。
7.根据权利要求6所述的请求重定向服务器,其特征在于,所述数据包的相关特征是相关于该数据包的至少一个命题,所述相关特征的值是该命题的真假值,所述特征逻辑运算表达式是数据包各相关命题的复合命题,所述特征逻辑运算表达的计算结果值是指该复合命题的真假值。
8.根据权利要求7所述的请求重定向服务器,其特征在于,所述数据包的相关特征包括:属性特征和字节特征;所述属性特征包括:数据包的属性信息值是否满足与预设值存在预定的运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系。
9.根据权利要求8所述的请求重定向服务器,其特征在于,所述属性特征包括:数据包头部内各项信息的值是否与预设值间存在预定的关系运算关系;所述字节特征包括:数据包内容在一定偏移量下得到的预定数量字节的值是否与预定值间存在预定的关系运算关系O
10.根据权利要求6所述的请求重定向服务器,其特征在于,通过在相关网络链路上进行分光或者在出口路由做端口镜像的方式,将所述包含有效数据包的网络流量引导至请求重定向服务器的接收网口。
【文档编号】H04L12/823GK104243344SQ201410532211
【公开日】2014年12月24日 申请日期:2014年10月11日 优先权日:2014年10月11日
【发明者】洪珂, 徐超 申请人:网宿科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1