一种基于http分析的url自动分类分级的系统及方法

文档序号:7859439阅读:151来源:国知局
专利名称:一种基于http分析的url自动分类分级的系统及方法
技术领域
本发明涉及网络行为监控与网络行为管理技术领域,更具体地,涉及一种基于HTTP分析的URL自动分类分级的系统及方法。
背景技术
据互联网追踪机构Netcraft在2011年10月9日的统计报告显示全球网站总量约5亿,其中真正处于活动状态的仅为I. 5亿。根据数据分析目前全球网站总数庞大,“垃圾网站”超过50%,并且处于增长态势,互联网环境有待于清理及净化。在中国社会科学院2011年发布的《新媒体蓝皮书》中显示2010年中国互联网站总数达191万,网页数量600亿。 众所周知,互联网上的网页和所有其他资源都是通过URL标识的,而网络资源访问的一半以上是通过HTTP协议承载的。面对如此众多的URL,仅凭人工标识达到分类分级的目的显然是不现实的。现有常用的HTTP报文的TCP分片重组算法是将HTTP协议的TCP分片按照src_ip、dst_ip、src_port、server_ip四元组匹配,并且以SYN报文的seqno作为起始序号,以FIN报文的seqno作为结束序号,进行TCP流的跟踪和重组,得到一个完整的TCP流后,再对上层的HTTP协议进行解析。这样做的缺点是(DHTTP/1. I标准中,一个TCP流中可以包含多次的HTTP的Request与Response,对HTTP解析提取增加的判断复杂性。(2)HTTPResponse报文可能承载着音视频数据,造成TCP流的持续时间很长,增加了系统的时间与空间的开销。

发明内容
为了解决上述现有技术存在的缺陷,本发明提出一种基于HTTP分析的URL自动分类分级的系统及方法。该方法可以独立对URL进行分类分级,也可以结合人工标识对URL进行分类分级,并且还可以作为预处理阶段的方法。根据本发明的一方面,提出一种基于HTTP分析的URL自动分类分级系统,其特征在于,该系统包括HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器、交换机、HTTP存储关联服务器和HTTP分级分类服务器,其中所述HTTP请求/响应报文预处理器用于接收HTTP报文镜像数据流并对其进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发给所述HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发给所述HTTP响应报文解析服务器;所述HTTP请求报文解析服务器与所述HTTP请求/响应报文预处理器连接,用于对所接收的HTTP请求报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上;所述HTTP响应报文解析服务器与所述HTTP请求/响应报文预处理器连接,用于对所接收的HTTP响应报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP响应文件记录的形式存储到所述HTTP存储关联服务器上;所述交换机与HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器相连,用于对HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器及运行其上的程序进行远程配置管理,同时也作为HTTP请求报文解析服务器、HTTP响应报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器之间的数据传输通道;所述HTTP存储关联服务器与所述交换机相连,用于根据所述报文信息中的五元组信息,将所述HTTP请求文件记录与所述HTTP响应文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件;所述HTTP分类分级服务器与所述交换机相连,用于根据用户定制的策略,通过所述交换机访问所述HTTP关联存储服务器中的记录信息,对URL进行分类 分级。根据本发明的另一方面,提出一种基于HTTP分析的URL自动分类分级方法,其特征在于,该方法包括以下步骤步骤SI,在骨干网的路由器上获取HTTP报文镜像数据流;步骤S2,HTTP Request/Response报文预处理器对所述HTTP报文镜像数据流进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发送给HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发送给HTTP响应报文解析服务器;步骤S3,所述HTTP请求报文解析服务器对所接收的HTTP请求报文镜像数据流进行重组处理,并将从重组后的数据流中提取到的报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上;步骤S4,所述HTTP响应报文解析服务器对所接收的HTTP响应报文镜像数据流进行重组处理,并将从重组后的数据流中提取到的报文信息以HTTP响应文件记录的形式存储到所述HTTP存储关联服务器上;步骤S5, HTTP 存储关联服务器根据由 client_ip、server_ip、client_port>server_port、rel_seqno组成的五元组信息,将所述HTTP请求文件记录与所述HTTP响应文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件;步骤S6,HTTP分类分级服务器根据用户定制的策略,访问所述HTTP关联存储服务器中的记录信息,将URL进行分类分级。根据上述本发明的技术方案,本发明的有益效果为(I)只针对已识别的HTTP报文的第一个 TCP 分片建立流表表项,以 client_ip、server_ip、client_port、server_ip、ack_seqno为索引,后续TCP分片根据索引查找对应的表项,并根据seqno进行排列重组;
(2)以HTTP报首和数据的分隔符为重组结束标志,对于HTTP Response报文,由于只关注报首的重组,从而对于持续时间长的TCP流,大大地节省了系统时间与空间的开销。


图I为本发明基于HTTP分析的URL自动分类分级系统结构图。图2为本发明基于HTTP分析的URL自动分类分级方法流程图。
图3为本发明HTTP Request报文报首重组解析逻辑图。图4为本发明HTTP Response报文报首重组解析逻辑图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。图I为本发明基于HTTP分析的URL自动分类分级系统结构图,如图I所示,根据本发明的一方面,提出一种基于HTTP分析的URL自动分类分级系统,该系统包括HTTP请求/响应Request/Response报文预处理器、HTTP请求Request报 文解析服务器、HTTP响应Response报文解析服务器、交换机、HTTP存储关联服务器和HTTP分级分类服务器,其中所述HTTP Request/Response报文预处理器用于接收所述HTTP报文镜像数据流并对其进行预处理得到HTTP Request报文镜像数据流和HTTPResponse报文镜像数据流,并将所述HTTP Request报文镜像数据流发给HTTP Request报文解析服务器,将HTTP Response报文镜像数据流发给HTTP Response报文解析服务器。具体地,所述HTTPRequest/Response报文预处理器具有4个网络接口,网络接口 I用于接收HTTP报文镜像数据流,并对其进行预处理根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP Request报文镜像数据流,将源端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP Response报文镜像数据流;网络接口 2用于将所述HTTP Request报文镜像数据流发送给所述HTTP Request报文解析服务器;网络接口 3用于将所述HTTPResponse报文镜像数据流发送给所述HTTP Response报文解析服务器;网络接口 4与所述交换机连接,用于对HTTP Request/Response报文预处理器及运行其上的程序进行配置管理。所述HTTP Request报文解析服务器与所述HTTP Request/Response报文预处理器连接,用于对所接收的HTTP Request报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上;所述HTTP Request报文解析服务器具有2个网络接口,网络接口 I与HTTP Request/Response报文预处理器的网络接口 2相连,用于接收所述HTTP Request报文镜像数据流,并对其进行重组处理,然后将重组处理后的所述HTTP Request报文进行解析,提取出客户端IP地址(client_ip)、服务器IP地址(server_ip)、客户端端口号(client_port)、服务器端口号(server_port)、关联序列号(rel_seqno)、主机(Host)、请求URL(Request-URL)等报文信息,并将提取出的上述报文信息以HTTP Request文件记录的形式通过与所述交换机相连的网络接口 2存储到所述HTTP存储关联服务器上,另外,还可通过所述网络接口 2对HTTP Request报文解析服务器及运行其上的程序进行远程配置管理;所述HTTP Response报文解析服务器与所述HTTP Request/Response报文预处理器连接,用于对所接收的HTTP Response报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP响应文件记录的形式存储到所述HTTP存储关联服务器上;所述HTTP Response报文解析服务器具有2个网络接口,网络接口 I与HTTP Request/Response报文预处理器的网络接口 3相连,用于接收所述HTTPResponse报文镜像数据流,并对其进行重组处理,然后将重组处理后的所述HTTP Response报文进行解析,提取出客户端IP地址(client_ip)、服务器IP地址(server_ip)、客户端端口号(client_port)、服务器端口号(server_port)、关联序列号(rel_seqno)、内容类型(Content-Type)、内容编码(Content-Encoding)、内容语言(Content-Language)、内容长度(Content-Length)等报文信息,并将提取出的上述报文信息以HTTP Response文件记录的形式通过与所述交换机相连的网络接口 2存储到所述HTTP存储关联服务器上,另外,还可通过所述网络接口 2对HTTP Response报文解析服务器及运行其上的程序进行远程配置管理;所述交换机进一步为通讯千兆交换机,所述通讯千兆交换机与HTTPRequest/Response报文预处理器、HTTP Request报文解析服务器、HTTPResponse报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器的配置管理网络接口相连,用于使系统维护人员对HTTP Request/Response报文预处理器、HTTP Request报文 解析服务器、HTTPResponse报文解析服务器及运行其上的程序进行远程配置管理,另外也作为HTTP Request报文解析服务器、HTTP Response报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器之间的数据传输通道。所述HTTP存储关联服务器与所述交换机相连,用于根据所述报文信息中的client_ip、server_ip> client_port、server_port> rel_seqno 五兀组信息,将所述 HTTPRequest文件记录与所述HTTP Response文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件。所述HTTP存储关联服务器具有I个网络接口,所述HTTP存储关联服务器通过该网络接口与所述交换机连接,用于与HTTP Request报文解析服务器、HTTPResponse报文解析服务器、HTTP分类分级服务器之间进行数据传输,并可通过该网络接口对HTTP存储关联服务器及运行其上的程序进行远程配置管理。所述HTTP分类分级服务器与所述交换机相连,用于根据用户定制的策略,通过所述交换机访问所述HTTP关联存储服务器中的记录信息,对URL进行分类分级,HTTP分类分级服务器具有I个网络接口,所述HTTP分类分级服务器通过该网络接口与所述交换机连接,用于与HTTP存储关联服务器之间进行数据传输,并可通过该网络接口对HTTP分类分级服务器及运行其上的程序进行远程配置管理。图2为本发明基于HTTP分析的URL自动分类分级方法流程图,如图2所示,根据本发明的另一方面,还提出一种基于HTTP分析的URL自动分类分级方法,该方法包括以下步骤步骤SI,在骨干网的路由器上获取HTTP报文镜像数据流;步骤S2,HTTP Request/Response报文预处理器对所述HTTP报文镜像数据流进行预处理得到HTTP Request报文镜像数据流和HTTPResponse报文镜像数据流,并将所述HTTP Request报文镜像数据流发送给HTTP Request报文解析服务器,将HTTP Response报文镜像数据流发送给HTTP Response报文解析服务器;所述预处理进一步为根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP Request报文镜像数据流,将源端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP Response报文镜像数据流。
步骤S3,所述HTTP Request报文解析服务器对所接收的HTTP Request报文镜像数据流进行重组处理,然后将重组处理后的所述HTTP Request报文进行解析,提取出client_ip、server_ip> client_port、server_port、rel_seqno、Host、Request-URI 等报文信息,并将提取出的上述报文信息以HTTP Request文件记录的形式存储到HTTP存储关联服务器中;该步骤中,所述HTTP Request报文解析服务器对所述HTTP Request报文镜像数据流进行重组处理进一步包括以下步骤(如图3所示)步骤S300,获取所述HTTP Request报文镜像数据流的当前TCP分片,进入步骤S310 ;步骤S310,解析所述HTTP Request报文镜像数据流的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_p ort,服务器端口号server_po;rt, ack序列号ack_seqno等信息,根据获取的这些信息计算出下一报文序列号next_seqno和关联序列号rel_seqno ;根据HTTP Request报文的报首特征,判断该TCP分片是否为HTTP Request报文报首的第一个TCP分片,若是,则继续判断HTTPRequest报文的报首是否完整,如果完整则进入步骤S320,否则进入步骤S330 ;如果该TCP分片不是HTTPRequest 报文报首的第一个 TCP 分片,则以 client_ip, server_ip, client_port, server_port,ack_seqno为索引查找预先存储的HTTP流表,判断所述HTTP流表中是否有与所述索引匹配的流表表项,如果是则进入步骤S340,否则结束本次流程,回到步骤S300进入下一次流程;对于HTTP报首的开始与结束的判断方法,可参考RFC2068标准文档。其中,采用如下公式根据获取的client_ip, server_ip, client_port, server_port, ack_seqno 等信息计算出 next_seqno, rel_seqno next_seqno = seqno+payload_length, rel_seqno = next_seqno,其中,seqno为TCP分片报首中的序列号,payload_length为TCP有效载荷长度。所述根据HTTP Request报文的报首特征,判断该TCP分片是否为HTTP Request报文报首的第一个TCP分片进一步为以"\r\n"为行结束符,从TCP分片的数据段中提取首行数据,将其与HTTP Requset报文的请求行的正则表达式"GET. *HTTP./."进行匹配,若匹配成功,则判断该TCP分片是HTTP Request报文报首的第一个TCP分片;若否,则不是。步骤S320,解析所述HTTP Request报文的报首,从中提取出HTTP版本号HTTPVersion,请求URI Request-URI,主机Host等信息;将所述步骤S310得到的client_ip,server_ip, client_port, server_port, rel_seqno 以及主机 Host、Request-URI 等信息以HTTP Request文件记录的形式写入HTTP关联存储服务器,并删除所述步骤S310中匹配的HTTP流表表项,结束本次流程,回到步骤S300进入下一次流程;步骤 S330,以 client_ip, server_ip, client_port, server_port, ack_seqno 为索弓I,新建一个HTTP流表表项,结束本次流程,回到步骤S300进入下一次流程;每个HTTP流表表项包含两个数据结构一个链表List〈TcpSegment>和一个搜索二叉树Tree〈seqno,TcpSegment>。所述链表用于存放已重组好的TCP分片;所述搜索二叉树用于存放未重组的TCP分片,并且以TCP分片的seqno作为搜索二叉树的键值key。
在步骤S330中,新建一个HTTP流表表项时,链表List〈TcpSegment>和搜索二叉树Tree〈seqno, TcpSegmet〉均为空,将该TCP分片放入链表List〈TcpSegment>的首部,并回到步骤S300。步骤S340,对与所述索引匹配的HTTP流表表项进行TCP重组,重组后再判断所述HTTP Request报文的报首是否完整,若完整则返回步骤S320,否则结束本次流程,回到步骤S300进入下一次流程。步骤S340中,对与索引匹配的HTTP流表表项进行TCP重组进一步为如果找到一个与该TCP分片的索引匹配的HTTP流表表项,则判断该TCP分片的seqno是否等于List〈TcpSegment>链表尾部的TCP分片的下一报文序列号next_seqno :如果二者相等,那么就将该TCP分片加入List〈TcpSegmen t>链表的尾部,并且遍历Tree〈seqno, TcpSegmet)搜索二叉树,对搜索二叉树中的每一个TCP分片重复上述比较,直至遍历完整个Tree〈seqno, TcpSegmet〉搜索二叉树或者在相应的TCP分片的数据段中匹配到字符串"\r\n\r\n",如果是匹配到字符串"\r\n\r\n",那么就将链表中存储的TCP分片的数据段重组为完整的HTTP Request报文,并删除相应的HTTP流表表项,返回步骤S320 ;如果直至遍历完整个Tree〈seqno, TcpSegmet〉搜索二叉树也没有匹配到字符串"\r\n\r\n",则直接回到步骤S300 ;如果二者不等,则直接回到步骤S300。所述从重组处理后的数据流中提取出client_ip、server_ip、client_port>server_port、rel_seqno、Host、Request-URI 等信息进一步为从重组处理后的数据流中提取出源IP地址srcjp,并进一步从src_ip中得到client_ip,提取出目的IP地址dst_ip,并进一步从dst_ip中得到server_ip,提取出源端口号src_port,并进一步从src_port中得到client_port,提取出目的端口号dst_port,并进一步从dst_port中得到server_port,将最后一个TCP分片的序列号seqno加上TCP有效载荷长度 payload_length 得到 rel_seqno。步骤S4,所述HTTP Response报文解析服务器对所接收的HTTP Response报文镜像数据流进行重组处理,然后将重组处理后的所述HTTP Response报文进行解析,并提取出 client_ip、server_ip> client_port、server_port> rel_seqno、Content-Type、Content-Encoding、Content-Language> Content-Length 等信息,将提取出的信息以 HTTPResponse文件记录的形式存储到所述HTTP存储关联服务器中;该步骤中,所述HTTP Response报文解析服务器对所述HTTP Response报文镜像流进行重组处理进一步包括以下步骤(如图4所示)步骤S400,获取所述HTTP Response报文镜像数据流的当前TCP分片,进入步骤S410 ;步骤S410,解析所述HTTP Response报文镜像数据流的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_port,服务器端口号server_po;rt, ack序列号ack_seqno等信息,根据获取的这些信息计算下一报文序列号next_seqno和关联序列号rel_seqno ;根据HTTP Response报文的报首特征,判断该TCP分片是否为HTTP Response报文报首的第一个TCP分片,若是,则继续判断HTTP Response报文的报首是否完整,如果完整则进入步骤S420,否则进入步骤S430 ;如果该TCP分片不是 HTTP Response 报文报首的第一个 TCP 分片,则以 client_ip, server_ip, client_port,server_port,ack_seqno为索引查找预先存储的HTTP流表,判断所述HTTP流表中是否有与所述索引匹配的流表表项,如果是则进入步骤S440,否则结束本次流程,回到步骤S400进入下一次流程;其中,计算下一报文序列号next_seqno和关联序列号rel_seqno的公式、对于第一个TCP分片的判断方法均与步骤S310类似,在此不做赘述。步骤S420,解析所述HTTP Response报文的报首,从中提取出状态码 Status-Code,内容类型 Content-Type,内容长度 Content-Lengt h,内容编码Content-Encoding,内容语言Content-Language等信息,并将所述步骤S410得到的client_ip, server_ip, client_port, server_port, rel_seqno 以及状态石马 Status-Code,内容类型Content-Type,内容长度Content-Length,内容编码Content-Encoding,内容语言Content-Language等信息以HTTPResponse文件记录的形式写入HTTP关联存储服务器,并删除所述步骤S410中匹配的HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程;步骤 S430,以 client_ip, server_ip, client_port, server_port, ack_seqno 为索弓I,新建一个HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程;在步骤S430中,新建一个HTTP流表表项时,链表List〈TcpSegment>和搜索二叉树Tree〈seqno, TcpSegmet)均为空,将该TCP分片放入链表List〈TcpSegment>的首部,并回到步骤S400。步骤S440,对与所述索引匹配的HTTP流表表项进行TCP重组,重组后再判断所述HTTP Response报文的报首是否完整,若完整则返回步骤S420,否则结束本次流程,并回到步骤S400进入下一次流程。步骤S440中,对与索引匹配的HTTP流表表项进行TCP重组进一步为如果找到一个与该TCP分片的索引匹配的HTTP流表表项,则判断该TCP分片的seqno是否等于List〈TcpSegment>链表尾部的TCP分片的下一报文序列号next_seqno :如果二者相等,那么就将该TCP分片加入List〈TcpSegment>链表的尾部,并且遍历Tree〈seqno, TcpSegmet)搜索二叉树,对搜索二叉树中的每一个TCP分片重复上述比较,直至遍历完整个Tree〈seqno, TcpSegmet〉搜索二叉树或者在相应的TCP分片的数据段中匹配到字符串"\r\n\r\n",如果是匹配到字符串"\r\n\r\n",那么就将链表中存储的TCP分片的数据段重组为完整的HTTPResponse报文,并删除相应的HTTP流表表项,返回步骤S420 ;如果直至遍历完整个Tree〈seqno, TcpSegmet〉搜索二叉树也没有匹配到字符串"\r\n\r\n",则直接回到步骤S400 ;如果二者不等,则直接回到步骤S400。所述从重组处理后的数据流中提取出client_ip、server_ip、client_port>server_port、rel_seqno、Content—Type、Content-Encoding、Content-LanguageΛContent-Length等信息进一步为从重组处理后的数据流中提取出目的IP地址dst—ip,并进一步从dst—ip中得到client—ip,提取出源IP地址src—ip,并进一步从src—ip中得到server—ip,提取出目的端口号dst—port,并进一步从dst—port中得到client—port,提取出源端口号src—port,并进一步从src—port中得到server—port,提取出确认序列号ack—seqno,并进一步从ack—seqno 中得到 rel_seqno。
步骤S5, HTTP 存储关联服务器根据由 client_ip、server_ip> client_port>server_port> rel_seqno组成的五元组信息,将所述HTTP Request文件记录与所述HTTPResponse文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件;该步骤中,在将HTTP Request文件记录与HTTP Response文件记录进行关联时,首先过滤掉状态码Status-Code不等于200的数据,然后再将Host, Request-URI拼接成完整的URL,并将关联上的数据以记录格式按行存入存储文件,记录格式包含如下字段client_ip, server_ip, Host, URL, Content-Type, Content-Length, Content-Encoding,Content-Language。步骤S6,HTTP分类分级服务器根据用户定制的策略,访问所述HTTP关联存储服务器中的记录信息,将URL进行分类分级。匹配成功的HTTP Request文件记录和HTTP Response文 件记录对应一次完整的HTTP交互。从HTTP Request文件记录中可以提取出URL、Host等属性信息,从HTTPResponse 文件记录中可以提取出 Content-Type、Content-Encoding、Content-Language>Content-Length 等属性信息,通过根据 Content-Type、Content-Encoding、Content-Language、Content_Length、Host等属性信息可以对URL进行分级、分类。而HTTP报文报首的解析与文件记录关联、属性提取、根据属性分级分类都可以在人为制定策略后由计算机程序完成,从而达到自动化的目的。根据对一段时间内HTTP报文报首的解析与关联结果的数据分析,可以得到不同纬度的URL分级与分类,并对URL打上相应的标签比如,可以根据Host将URL按照所在网站分类;根据Content-Type将URL按照内容类型分类;根据Content-Encoding将URL按压缩类型分类;根据Content-Language将URL按照语言类型分类;根据server_ip将URL按照所处网段分类;根据Content-Length将URL按照内容大小分级;根据单位时间内URL被访问次数,将URL按照热点程度分级;或结合以上的一种或多种进行多维度的分类分级。比如URL按照网站分类的标签可能有sina. com、google, com、bupt. edu.cn 等,URL 按 Content-Type 分类的标签可能有 text、video、audio、image 等,URL 按Content-Languague 分类的标签可能有 English、Chinese、Japanese 等,URL 按照访问次数分级的标签可能有每天被访问10次以下、10-100次、100-1000次、1000-10000次、10000次以上,当用户希望搜索热点为每天被访问10000次以上的语言为中文的热点帖子时,就可以通过定制Content-Type标签为text、Content-Languague标签为Chinese、访问次数在10000次以上,HTTP分类分级服务器就会根据这些标签条件从存储文件中搜索出符合的URL及相关信息的记录。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于HTTP分析的URL自动分类分级系统,其特征在于,该系统包括HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器、交换机、HTTP存储关联服务器和HTTP分级分类服务器,其中 所述HTTP请求/响应报文预处理器用于接收HTTP报文镜像数据流并对其进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发给所述HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发给所述HTTP响应报文解析服务器; 所述HTTP请求报文解析服务器与所述HTTP请求/响应报文预处理器连接,用于对所接收的HTTP请求报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上; 所述HTTP响应报文解析服务器与所述HTTP请求/响应报文预处理器连接,用于对所接收的HTTP响应报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP响应文件记录的形式存储到所述HTTP存储关联服务器上; 所述交换机与HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器相连,用于对HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器及运行其上的程序进行远程配置管理,同时也作为HTTP请求报文解析服务器、HTTP响应报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器之间的数据传输通道; 所述HTTP存储关联服务器与所述交换机相连,用于根据所述报文信息中的五元组信息,将所述HTTP请求文件记录与所述HTTP响应文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件; 所述HTTP分类分级服务器与所述交换机相连,用于根据用户定制的策略,通过所述交换机访问所述HTTP关联存储服务器中的记录信息,对URL进行分类分级。
2.根据权利要求I所述的系统,其特征在于,所述五元组信息包括客户端IP地址client_ip、服务器IP地址server_ip、客户端端口号client_port、服务器端口号server_port和关联序列号rel_seqno。
3.一种基于HTTP分析的URL自动分类分级方法,其特征在于,该方法包括以下步骤 步骤SI,在骨干网的路由器上获取HTTP报文镜像数据流; 步骤S2,HTTP Request/Response报文预处理器对所述HTTP报文镜像数据流进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发送给HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发送给HTTP响应报文解析服务器; 步骤S3,所述HTTP请求报文解析服务器对所接收的HTTP请求报文镜像数据流进行重组处理,并将从重组后的数据流中提取到的报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上; 步骤S4,所述HTTP响应报文解析服务器对所接收的HTTP响应报文镜像数据流进行重组处理,并将从重组后的数据流中提取到的报文信息以HTTP响应文件记录的形式存储到所述HTTP存储关联服务器上; 步骤 S5, HTTP 存储关联服务器根据由 client_ip、server_ip、client_port、server_port、rel_seqno组成的五元组信息,将所述HTTP请求文件记录与所述HTTP响应文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件; 步骤S6,HTTP分类分级服务器根据用户定制的策略,访问所述HTTP关联存储服务器中的记录信息,将URL进行分类分级。
4.根据权利要求3所述的方法,其特征在于,所述步骤S3中提取的报文信息包括客户端IP地址client_ip、月艮务器IP地址server_ip、客户端端口号client_port、服务器端口号server_port、关联序列号rel_seqno、主机Host、请求URL请求-URL ;所述步骤S4中提取的报文信息包括客户端IP地址client_ip、服务器IP地址server_ip、客户端端口号client_port、服务器端口号server_port、关联序列号rel_seqno、内容类型 Content-Type、内容编码 Content-Encoding、内容语言 Content-Language、内容长度Content-Length。
5.根据权利要求3所述的方法,其特征在于,所述步骤S3中,所述HTTP请求报文解析 服务器对所述HTTP请求报文镜像数据流进行重组处理进一步包括以下步骤 步骤S300,获取所述HTTP请求报文镜像数据流的当前TCP分片; 步骤S310,解析所述HTTP请求报文的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_port,服务器端口号server_port,ack序列号ack_seqno,根据获取的这些信息计算出下一报文序列号next_seqno和关联序列号rel_Seqno ;根据HTTP请求报文的报首特征,判断该TCP分片是否为HTTP请求报文报首的第一个TCP分片,若是,则继续判断HTTP请求报文的报首是否完整,如果完整则进入步骤S320,否则进入步骤S330 ;如果该TCP分片不是HTTP请求报文报首的第一个TCP分片,则以 client_ip, server_ip, client_port, server_port, ack_seqno 为索弓I查找预先存储的HTTP流表,判断所述HTTP流表中是否有与所述索引匹配的流表表项,如果是则进入步骤S340,否则结束本次流程,回到步骤S300进入下一次流程; 步骤S320,解析所述HTTP请求报文的报首,从中提取出HTTP版本号HTTP Version,请求 URI Request-URI,主机 Host ;将所述步骤 S310 得到的 client_ip, server_ip, client_port, server_port, rel_seqno, Host, Request-URI 以 HTTP 请求文件记录的形式写入 HTTP关联存储服务器,并删除所述匹配的HTTP流表表项,结束本次流程,回到步骤S300进入下一次流程;步骤 S330,以 client_ip, server_ip, client_port, server_port, ack_seqno 为索弓I,新建一个HTTP流表表项,结束本次流程,回到步骤S300进入下一次流程; 步骤S340,对与所述索引匹配的HTTP流表表项进行TCP重组,然后再判断所述HTTP请求报文的报首是否完整,若完整则返回步骤S320,否则结束本次流程,回到步骤S300进入下一次流程。
6.根据权利要求3所述的方法,其特征在于,所述步骤S4中,所述HTTP响应报文解析服务器对所述HTTP响应报文镜像流进行重组处理进一步包括以下步骤 步骤S400,获取所述HTTP响应报文镜像数据流的当前TCP分片,进入步骤S410 ; 步骤S410,解析所述HTTP响应报文镜像数据流的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_port,服务器端端口号server_po;rt, ack序列号ack_seqno,根据获取的这些信息计算下一报文序列号next_seqno和关联序列号rel_seqno ;根据HTTP响应报文的报首特征,判断该TCP分片是否为HTTP响应报文报首的第一个TCP分片,若是,则继续判断HTTP响应报文的报首是否完整,如果完整则进入步骤S420,否则进入步骤S430 ;如果该TCP分片不是HTTP响应报文报首的第一个 TCP 分片,则以 client_ip, server_ip, client_port, server_port, ack_seqno 为索弓I查找预先存储的HTTP流表,判断所述HTTP流表中是否有与所述索引匹配的流表表项,如果是则进入步骤S440,否则结束本次流程,回到步骤S400进入下一次流程; 步骤S420,解析所述HTTP响应报文的报首,从中提取出状态码Status-Code,内容类型 Content-Type,内容长度 Content-Length,内容编码 Content-Encoding,内容语言 Content-Language,并将所述步骤 S410 得到的 client_ip, server_ip, client—port, server_port, rel_seqno, Status-Code, Content-Type, Content-Length,Content-Encoding, Content-Language以HTTP响应文件记录的形式写入HTTP关联存储服务器,并删除所述匹配的HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程; 步骤 S430,以 client_ip, server_ip, client_port, server_port, ack_seqno 为索弓I,新建一个HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程; 步骤S440,对与所述索引匹配的HTTP流表表项进行TCP重组,然后再判断所述HTTP响应报文的报首是否完整,若完整则返回步骤S420,否则结束本次流程,回到步骤S400进入下一次流程。
7.根据权利要求3所述的方法,其特征在于,所述记录格式包含如下字段client_ip, server_ip, Host, URL, Content-Type, Content-Length, Content-Encoding,Content-Language。
8.根据权利要求4所述的方法,其特征在于,所述步骤S6进一步包括以下步骤 步骤S61,从HTTP请求文件记录中提取出属性信息URL、Host ; 步骤S62,从HTTP响应文件记录中提取出属性信息Content-Type、Content_Encoding、Content—Language、Content-Length; 步骤 S63,根据属性信息 Content-Type、Content-Encoding、Content-Language、Content-Length> Host对URL进行分级和分类。
全文摘要
本发明公开了一种基于HTTP分析的URL自动分类分级的系统和方法,该系统包括用于分发HTTP请求/响应报文镜像数据流的HTTP请求/响应报文预处理器、用于对HTTP请求报文镜像数据流进行重组的HTTP请求报文解析服务器、用于对HTTP响应报文镜像数据流进行重组的HTTP响应报文解析服务器、交换机、用于存储报文信息的HTTP存储关联服务器和用于对URL进行自动分类分级的HTTP分级分类服务器。该方法包括以下步骤预处理HTTP报文镜像数据流得到HTTP请求/响应报文镜像数据流,并对其进行分发;对请求/响应报文镜像数据流进行重组,将从重组数据中提取到的报文信息存储起来;对存储的信息进行关联;根据关联信息对URL分类分级。本发明能够实现对URL的高效的分类分级。
文档编号H04L12/26GK102882703SQ201210320169
公开日2013年1月16日 申请日期2012年8月31日 优先权日2012年8月31日
发明者何旭, 李威, 黄友俊, 李星, 吴建平 申请人:赛尔网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1