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

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

Info

Publication number
CN102882703B
CN102882703B CN201210320169.6A CN201210320169A CN102882703B CN 102882703 B CN102882703 B CN 102882703B CN 201210320169 A CN201210320169 A CN 201210320169A CN 102882703 B CN102882703 B CN 102882703B
Authority
CN
China
Prior art keywords
http
server
client
content
port
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
CN201210320169.6A
Other languages
English (en)
Other versions
CN102882703A (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.)
CERNET Corp
Original Assignee
CERNET Corp
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 CERNET Corp filed Critical CERNET Corp
Priority to CN201210320169.6A priority Critical patent/CN102882703B/zh
Publication of CN102882703A publication Critical patent/CN102882703A/zh
Application granted granted Critical
Publication of CN102882703B publication Critical patent/CN102882703B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于HTTP分析的URL自动分类分级的系统和方法,该系统包括用于分发HTTP请求/响应报文镜像数据流的HTTP请求/响应报文预处理器、用于对HTTP请求报文镜像数据流进行重组的HTTP请求报文解析服务器、用于对HTTP响应报文镜像数据流进行重组的HTTP响应报文解析服务器、交换机、用于存储报文信息的HTTP存储关联服务器和用于对URL进行自动分类分级的HTTP分级分类服务器。该方法包括以下步骤:预处理HTTP报文镜像数据流得到HTTP请求/响应报文镜像数据流,并对其进行分发;对请求/响应报文镜像数据流进行重组,将从重组数据中提取到的报文信息存储起来;对存储的信息进行关联;根据关联信息对URL分类分级。本发明能够实现对URL的高效的分类分级。

Description

一种基于HTTP分析的URL自动分类分级的系统及方法
技术领域
本发明涉及网络行为监控与网络行为管理技术领域,更具体地,涉及一种基于HTTP分析的URL自动分类分级的系统及方法。
背景技术
据互联网追踪机构Netcraft在2011年10月9日的统计报告显示:全球网站总量约5亿,其中真正处于活动状态的仅为1.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协议进行解析。这样做的缺点是:(1)HTTP/1.1标准中,一个TCP流中可以包含多次的HTTP的Request与Response,对HTTP解析提取增加的判断复杂性。(2)HTTP Response报文可能承载着音视频数据,造成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自动分类分级方法,其特征在于,该方法包括以下步骤:
步骤S1,在骨干网的路由器上获取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进行分类分级。
根据上述本发明的技术方案,本发明的有益效果为:(1)只针对已识别的HTTP报文的第一个TCP分片建立流表表项,以client_ip、server_ip、client_port、server_ip、ack_seqno为索引,后续TCP分片根据索引查找对应的表项,并根据seqno进行排列重组;(2)以HTTP报首和数据的分隔符为重组结束标志,对于HTTP Response报文,由于只关注报首的重组,从而对于持续时间长的TCP流,大大地节省了系统时间与空间的开销。
附图说明
图1为本发明基于HTTP分析的URL自动分类分级系统结构图。
图2为本发明基于HTTP分析的URL自动分类分级方法流程图。
图3为本发明HTTP Request报文报首重组解析逻辑图。
图4为本发明HTTP Response报文报首重组解析逻辑图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。
图1为本发明基于HTTP分析的URL自动分类分级系统结构图,如图1所示,根据本发明的一方面,提出一种基于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报文解析服务器。具体地,所述HTTP Request/Response报文预处理器具有4个网络接口,网络接口1用于接收HTTP报文镜像数据流,并对其进行预处理:根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP Request报文镜像数据流,将源端口号为80、8080、443的HTTP报文镜像数据流标识为HTTPResponse报文镜像数据流;网络接口2用于将所述HTTP Request报文镜像数据流发送给所述HTTP Request报文解析服务器;网络接口3用于将所述HTTP Response报文镜像数据流发送给所述HTTP Response报文解析服务器;网络接口4与所述交换机连接,用于对HTTP Request/Response报文预处理器及运行其上的程序进行配置管理。
所述HTTP Request报文解析服务器与所述HTTP Request/Response报文预处理器连接,用于对所接收的HTTP Request报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上;所述HTTPRequest报文解析服务器具有2个网络接口,网络接口1与HTTPRequest/Response报文预处理器的网络接口2相连,用于接收所述HTTPRequest报文镜像数据流,并对其进行重组处理,然后将重组处理后的所述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存储关联服务器上;所述HTTPResponse报文解析服务器具有2个网络接口,网络接口1与HTTPRequest/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)等报文信息,并将提取出的上述报文信息以HTTPResponse文件记录的形式通过与所述交换机相连的网络接口2存储到所述HTTP存储关联服务器上,另外,还可通过所述网络接口2对HTTPResponse报文解析服务器及运行其上的程序进行远程配置管理;
所述交换机进一步为通讯千兆交换机,所述通讯千兆交换机与HTTPRequest/Response报文预处理器、HTTP Request报文解析服务器、HTTPResponse报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器的配置管理网络接口相连,用于使系统维护人员对HTTPRequest/Response报文预处理器、HTTP Request报文解析服务器、HTTPResponse报文解析服务器及运行其上的程序进行远程配置管理,另外也作为HTTP Request报文解析服务器、HTTP Response报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器之间的数据传输通道。
所述HTTP存储关联服务器与所述交换机相连,用于根据所述报文信息中的client_ip、server_ip、client_port、server_port、rel_seqno五元组信息,将所述HTTP Request文件记录与所述HTTP Response文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件。所述HTTP存储关联服务器具有1个网络接口,所述HTTP存储关联服务器通过该网络接口与所述交换机连接,用于与HTTP Request报文解析服务器、HTTPResponse报文解析服务器、HTTP分类分级服务器之间进行数据传输,并可通过该网络接口对HTTP存储关联服务器及运行其上的程序进行远程配置管理。
所述HTTP分类分级服务器与所述交换机相连,用于根据用户定制的策略,通过所述交换机访问所述HTTP关联存储服务器中的记录信息,对URL进行分类分级,HTTP分类分级服务器具有1个网络接口,所述HTTP分类分级服务器通过该网络接口与所述交换机连接,用于与HTTP存储关联服务器之间进行数据传输,并可通过该网络接口对HTTP分类分级服务器及运行其上的程序进行远程配置管理。
图2为本发明基于HTTP分析的URL自动分类分级方法流程图,如图2所示,根据本发明的另一方面,还提出一种基于HTTP分析的URL自动分类分级方法,该方法包括以下步骤:
步骤S1,在骨干网的路由器上获取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报文镜像数据流标识为HTTPResponse报文镜像数据流。
步骤S3,所述HTTP Request报文解析服务器对所接收的HTTPRequest报文镜像数据流进行重组处理,然后将重组处理后的所述HTTPRequest报文进行解析,提取出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_port,服务器端口号server_port,ack序列号ack_seqno等信息,根据获取的这些信息计算出下一报文序列号next_seqno和关联序列号rel_seqno;根据HTTP Request报文的报首特征,判断该TCP分片是否为HTTP Request报文报首的第一个TCP分片,若是,则继续判断HTTPRequest报文的报首是否完整,如果完整则进入步骤S320,否则进入步骤S330;如果该TCP分片不是HTTP Request报文报首的第一个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版本号HTTP Version,请求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为索引,新建一个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<TcpSegment>链表的尾部,并且遍历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地址src_ip,并进一步从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报文解析服务器对所接收的HTTPResponse报文镜像数据流进行重组处理,然后将重组处理后的所述HTTPResponse报文进行解析,并提取出client_ip、server_ip、client_port、server_port、rel_seqno、Content-Type、Content-Encoding、Content-Language、Content-Length等信息,将提取出的信息以HTTP Response文件记录的形式存储到所述HTTP存储关联服务器中;
该步骤中,所述HTTP Response报文解析服务器对所述HTTPResponse报文镜像流进行重组处理进一步包括以下步骤(如图4所示):
步骤S400,获取所述HTTP Response报文镜像数据流的当前TCP分片,进入步骤S410;
步骤S410,解析所述HTTP Response报文镜像数据流的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_port,服务器端口号server_port,ack序列号ack_seqno等信息,根据获取的这些信息计算下一报文序列号next_seqno和关联序列号rel_seqno;根据HTTP Response报文的报首特征,判断该TCP分片是否为HTTPResponse报文报首的第一个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-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等信息以HTTPResponse文件记录的形式写入HTTP关联存储服务器,并删除所述步骤S410中匹配的HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程;
步骤S430,以client_ip,server_ip,client_port,server_port,ack_seqno为索引,新建一个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文件记录与所述HTTP Response文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件;
该步骤中,在将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等属性信息,从HTTP Response文件记录中可以提取出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及相关信息的记录。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于HTTP分析的URL自动分类分级系统,其特征在于,该系统包括HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器、交换机、HTTP存储关联服务器和HTTP分级分类服务器,其中:
所述HTTP请求/响应报文预处理器用于接收HTTP报文镜像数据流并对其进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发给所述HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发给所述HTTP响应报文解析服务器,其中,所述预处理为:根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP请求报文镜像数据流,将源端口号为80、8080、443的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.根据权利要求1所述的系统,其特征在于,所述五元组信息包括:客户端IP地址client_ip、服务器IP地址server_ip、客户端端口号client_port、服务器端口号server_port和关联序列号rel_seqno。
3.一种基于HTTP分析的URL自动分类分级方法,其特征在于,该方法包括以下步骤:
步骤S1,在骨干网的路由器上获取HTTP报文镜像数据流;
步骤S2,HTTP Request/Response报文预处理器对所述HTTP报文镜像数据流进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发送给HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发送给HTTP响应报文解析服务器,其中,所述预处理为:根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP请求报文镜像数据流,将源端口号为80、8080、443的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为索引查找预先存储的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为索引,新建一个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_port,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为索引查找预先存储的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为索引,新建一个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进行分级和分类。
CN201210320169.6A 2012-08-31 2012-08-31 一种基于http分析的url自动分类分级的系统及方法 Active CN102882703B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210320169.6A CN102882703B (zh) 2012-08-31 2012-08-31 一种基于http分析的url自动分类分级的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210320169.6A CN102882703B (zh) 2012-08-31 2012-08-31 一种基于http分析的url自动分类分级的系统及方法

Publications (2)

Publication Number Publication Date
CN102882703A CN102882703A (zh) 2013-01-16
CN102882703B true CN102882703B (zh) 2015-08-19

Family

ID=47483857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210320169.6A Active CN102882703B (zh) 2012-08-31 2012-08-31 一种基于http分析的url自动分类分级的系统及方法

Country Status (1)

Country Link
CN (1) CN102882703B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532796B (zh) * 2013-10-31 2017-01-04 赛尔网络有限公司 大型isp间互联口统计系统及方法
CN103595576B (zh) * 2013-10-31 2017-05-03 赛尔网络有限公司 一种基于内容提供商标识的互联口icp流量统计系统及方法
CN104767835B (zh) * 2014-01-03 2019-05-31 上海携程商务有限公司 Url地址的配置系统及方法
CN105577620B (zh) * 2014-10-16 2019-12-03 中兴通讯股份有限公司 一种超文本传输协议数据还原方法及装置
CN105743728A (zh) * 2014-12-11 2016-07-06 杭州迪普科技有限公司 一种保证数据块顺序的方法及装置
CN105991369B (zh) * 2015-03-23 2020-03-06 杭州迪普科技股份有限公司 报文信息提取方法及装置
CN106453207B (zh) * 2015-08-07 2021-01-29 北京奇虎科技有限公司 广告物料数据网址验证方法和装置
CN106453208A (zh) * 2015-08-07 2017-02-22 北京奇虎科技有限公司 广告物料数据网址验证方法和装置
CN107798013A (zh) * 2016-09-05 2018-03-13 广州市动景计算机科技有限公司 热点内容提供方法、设备、浏览器、电子设备及服务器
CN106453016A (zh) * 2016-11-11 2017-02-22 北京经纬恒润科技有限公司 报文匹配关系的生成方法及装置
CN107566453B (zh) * 2017-08-03 2021-02-09 广州视源电子科技股份有限公司 服务发现方法、装置、计算机可读存储介质和计算机设备
CN107770188B (zh) * 2017-10-31 2020-04-21 北京亚鸿世纪科技发展有限公司 一种高效的基于通用服务器的报文自动镜像的方法
CN108346297A (zh) * 2018-03-30 2018-07-31 合肥城市泊车投资管理有限公司 一种基于智能管理系统的违章停车管理控制方法
CN109413114B (zh) * 2018-12-28 2021-08-10 安徽长泰信息安全服务有限公司 一种网络入侵防御系统
CN111740996B (zh) * 2020-06-22 2021-06-22 四川长虹电器股份有限公司 一种流量解析场景下快速拆分http请求与响应的方法
CN112311789B (zh) * 2020-10-28 2023-02-28 北京锐安科技有限公司 深度报文处理方法、装置、电子设备及存储介质
CN113704770B (zh) * 2021-08-27 2023-12-08 北京天融信网络安全技术有限公司 一种漏洞的验证方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453424A (zh) * 2009-01-06 2009-06-10 中国人民解放军信息工程大学 一种网络信息资源访问控制方法和系统
CN101872347A (zh) * 2009-04-22 2010-10-27 富士通株式会社 判断网页类型的方法和装置
CN102055620A (zh) * 2009-10-27 2011-05-11 中国移动通信集团浙江有限公司 监控用户体验的方法和系统
CN102394885A (zh) * 2011-11-09 2012-03-28 中国人民解放军信息工程大学 基于数据流的信息分类防护自动化核查方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099688A1 (en) * 2001-06-07 2002-12-12 An Na Choi System for certifying web site and method therefor
US20060159068A1 (en) * 2005-01-20 2006-07-20 Nokia Corporation Supporting service requests during media data transfer
US7693865B2 (en) * 2006-08-30 2010-04-06 Yahoo! Inc. Techniques for navigational query identification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453424A (zh) * 2009-01-06 2009-06-10 中国人民解放军信息工程大学 一种网络信息资源访问控制方法和系统
CN101872347A (zh) * 2009-04-22 2010-10-27 富士通株式会社 判断网页类型的方法和装置
CN102055620A (zh) * 2009-10-27 2011-05-11 中国移动通信集团浙江有限公司 监控用户体验的方法和系统
CN102394885A (zh) * 2011-11-09 2012-03-28 中国人民解放军信息工程大学 基于数据流的信息分类防护自动化核查方法

Also Published As

Publication number Publication date
CN102882703A (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
CN102882703B (zh) 一种基于http分析的url自动分类分级的系统及方法
CN103281213B (zh) 一种网络流量内容提取和分析检索方法
CN104516892B (zh) 关联富媒体信息的用户生成内容的发布方法、系统和终端
KR101548444B1 (ko) 바이트 범위 요청들을 이용한 비디오 데이터의 네트워크 스트리밍
CN103826159B (zh) 一种m3u8格式视频的本地离线播放方法和终端
CN102282825B (zh) 内容传送网络中流媒体请求地址映射的方法及装置、缓存节点
CN104077341B (zh) 即时通讯中生成关键词自动回复映射关系的方法和装置
CN100595765C (zh) 基于媒体播放器的关键词内容发布方法及系统
CN104580121B (zh) 寻人/人员信息匹配推送的方法、系统、客户端和服务器
CN103595576B (zh) 一种基于内容提供商标识的互联口icp流量统计系统及方法
US20110125748A1 (en) Method and Apparatus for Real Time Identification and Recording of Artifacts
CN103118007B (zh) 一种用户访问行为的获取方法和系统
CN102156734B (zh) 一种基于语义隐藏标引的视频内容管理方法
CN102740159A (zh) 媒体文件存储格式和自适应传送系统
CN104506493A (zh) 一种实现hls内容回源和缓存的方法
CN104378331A (zh) 网络媒介信息的播放及响应处理方法、装置和系统
CN100527704C (zh) 一种流媒体服务器以及流媒体传送和存储方法
CN110489484A (zh) 数据同步方法、装置、可读存储介质及电子设备
CN103870574A (zh) 基于h.264密文云视频存储的标签制作及索引方法
CN102523296B (zh) 无线网页浏览资源优化方法、装置及系统
CN100466549C (zh) 一种基于SIP协议过程特征识别VoIP流量的方法
CN101635831B (zh) 一种p2p直播视频节点数据共享的方法、装置及代理系统
CN103139607B (zh) 一种实时网络监控系统及其方法
CN103152340B (zh) 一种跨资源访问的协议识别方法
CN104469538A (zh) 面向画面画质较小损失的rtp视频流数据包重组方法

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