CN101510843A - 基于NetFlow流实时分离出P2P流的方法 - Google Patents
基于NetFlow流实时分离出P2P流的方法 Download PDFInfo
- Publication number
- CN101510843A CN101510843A CNA2009100251333A CN200910025133A CN101510843A CN 101510843 A CN101510843 A CN 101510843A CN A2009100251333 A CNA2009100251333 A CN A2009100251333A CN 200910025133 A CN200910025133 A CN 200910025133A CN 101510843 A CN101510843 A CN 101510843A
- Authority
- CN
- China
- Prior art keywords
- netflow
- stream
- value
- flow
- list item
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于NetFlow流实时分离出P2P流的方法,包括下列步骤:A.接收P2P应用流步骤;B.散列寻址步骤;C.接收NetFlow流步骤;D.比对步骤,根据C生成的散列值在B中相同的散列表空间进行寻址;若该表项中的值非0,则该流为P2P流,其类型的编码为该表项中的值;E.分离处理步骤,对于寻址到某表项其值不为0的NetFlow流记录,取出表项中的值后将其追加到该NetFlow流记录的特定位置中,并在内存或在文件中保留该NetFlow流记录;否则删除该NetFlow流记录。本发明能够实时在线、低成本地从网络流中分离出P2P流。
Description
技术领域
本发明属于网络数据通信领域,具体地讲是一种实时分离出P2P流信息的方法。
背景技术
在计算机网络中实现对各种网络应用流量的统计分析,可以帮助人们实现按流量计费、规划与设计网络系统以及提高网络安全与网络管理的水平,并有助于认识网络发展规律。在高速网络中,基于每个分组记录统计相关信息的方法因信息泛滥而无法实用。目前通常采用基于网络“流(flow)”的方法对网络中的分组进行分析统计。流通常是指按分组的五元信息{源IP地址,源端口号,目的IP地址,目的端口号,时间范围}进行单向聚合的一种逻辑抽象方法,而流表则是用来收集网络链路上所有流的关键信息的一种数据结构,所有网络应用的一个实例都会在流表中至少留有一条流记录。不过,由于流表是一种复杂的数据结构,用软件基于它实现流计算对计算机CPU和内存等资源的消耗很大。
在另一方面,各种P2P应用的流量目前已经占了因特网整体流量的60~80%,因特网服务提供商和网络用户都非常关心各种各样P2P应用使用网络资源的情况。为此,首先要搞清在网络流中哪些流分别属于哪种类型的P2P流,然后设法将这些P2P流从网络流中分离出来,最后通过分析统计P2P流来掌握有关P2P应用的情况。然而,目前还没有一种从网络流中有效分离出P2P流信息的方法。这是因为在P2P体系结构中,应用程序对总是打开的服务器有最小的(或者根本没有)依赖。这些应用程序在间断连接的主机对之间进行直接的通信,这些主机对被称为对等方。因为这种对等方通信不必通过专门的服务器,该体系结构而被称为P2P。不同于采用固定周知端口的传统应用,P2P应用采用的是动态申请端口的方法,因此很难确定某条流是否属于哪种P2P应用。即使我们能够通过某种技术方法途径实时识别出某流属于某种P2P应用,通常也要用该流的关键信息逐项与网络流量分组的信息进行匹配,最终才能从网络流中分离出P2P流来。如果考虑流形成和P2P流匹配任务,必须采用计算能力强大的高档计算机,并且要通过离线方式才可能完成。因此,实时在线、低成本地从网络流中分离出P2P流是当前急需解决的技术难题。
发明内容
本发明的目的旨在提供一种能够解决从NetFlow网络流信息中实时在线地分离出各种P2P流信息的高性能价格比的方法。
本发明是通过以下技术方案实现的:
一种基于NetFlow流实时分离出P2P流的方法,其特征在于,包括下列步骤:
A.接收P2P应用流步骤,用于接收检测到的P2P应用流的相关信息,该信息包括所述P2P应用流的六元组,即源IP地址、源端口号、目的IP地址、目的端口号,、运输协议类型、P2P应用类型编码,并且对每条P2P应用流仅发送一个P2P应用流信息;
B.散列寻址步骤,以接收到的上述六元组中的前五个元素根据散列函数得到的散列值为地址,在相应散列表空间的表项进行寻址,表项初始值均为0,并在该表项中写入对应的P2P应用流六元组中第六个元素即非0值类型编码;当这些非0值的生存期大于NetFlow流的生成周期的值时,就被置为0;
C.接收NetFlow流步骤,用于接收网络流中的NetFlow流信息,并使用步骤B中相同的散列函数根据NetFlow流记录的五元组,即源IP地址,、源端口号,、目的IP地址,、目的端口号、运输协议类型,得到散列值;
D.比对步骤,针对NetFlow流中的每条记录,根据步骤C生成的散列值在步骤B中相同的散列表空间进行寻址;若该表项中的值非0,则该流为P2P流,其类型的编码为该表项中的值;并将这些非0值的生存期重置为1;
E.分离处理步骤,对于寻址到某表项其值不为0的NetFlow流记录,取出表项中的值后将其追加到该NetFlow流记录的特定位置中,并在内存或在文件中保留该NetFlow流记录;否则删除该NetFlow流记录。
其中,所述步骤B中,非0值的生存期初始值为1,并随着时间的推移将不断增大,当这些非0值的生存期大于NetFlow流的生成周期的值时,就被置为0。
所述NetFlow流由路由器或交换机或专用NetFlow产生器产生。
本发明相对于现有技术具有以下优点:
1、为了做到实时在线,要求解决方案的计算复杂性较低,即当识别出某流属于某种P2P应用信息后,系统能够及时处理完(不会积压)网络链路上所有分组,分离出其中的P2P流信息。为了做到低成本,本发明利用当前市售PC机完成该任务,并设法利用网上其他可用资源如NetFlow流信息来分担繁重的计算负担。这是因为NetFlow是美国CISCO公司定义的有关流的一种重要产业标准,主流网络设备厂商(如CISCO、华为等)生产的路由器和交换机都具备了产生NetFlow流(或类似的)的功能。也可以通过廉价的专用NetFlow产生器产生NetFlow流。通过适当配置,所有应用包括P2P应用都将在NetFlow流信息中留有记录;本发明在已知P2P流信息后,通过PC机的高效比对和处理,就能够从NetFlow流信息中实时分离出P2P流信息了。
2、本发明提出的基于NetFlow流分离出P2P流的方法还利用了散列表技术,大大降低了搜索匹配大量流信息的复杂性,使得原来需要用计算能力强大的计算机以离线方式才能完成的计算,能够使用普通PC机硬件、开放的Linux操作系统(或嵌入式系统)和普通网络设备实时在线完成,因此本发明为广泛使用基于P2P流信息的功能提供了可能。
附图说明
图1为本发明实施例对应的方法流程图。
图2为本发明实施例提供的系统框图。
图3为本发明实施例提供的系统与其他系统的关系示意图。
具体实施方式
下边结合附图和具体实施方式对本发明作进一步地说明。
首先需要将本发明提供的系统与其他系统按下列配置,如图3所示:
1)在Intel-Linux架构的PC机上安装并运行具有的本发明方法(图1所示)架构的软件,将该PC机的100/1000Mb/s以太网卡连接到接入网络主干的局域网交换机上,使之能够与网络上的其他机器通信。
2)将网络主干设备(如交换机或路由器)配置为产生NetFlow流或者使用专用NetFlow生成器,并将输出的NetFlow流指向本系统。
3)一台识别P2P流的系统处理网络主干上的网络流量,并将识别出的P2P流信息发送给本系统。
如图2所示,本发明提供的分离P2P流的系统配置如下:
在Intel-Linux架构的PC机上安装并运行基于本发明方法架构(图1所示)的软件,PC机的100/1000Mb/s以太网卡与网络交换机相连。产生NetFlow流的可以是网络交换设备或专用NetFlow生成器,并将NetFlow流发送给本系统的NetFlow流接收模块;具有识别P2P流功能的程序可运行在其他机器上,并要将识别的P2P流信息通过网络发送给本系统的P2P流信息接收模块,通过在比对模块中进行一系列的处理后得到该网络主干上的所有基于NetFlow的P2P流记录,最后通过分离处理模块就能够从NetFlow流信息中实时分离出P2P流信息了。这些PC机硬件的主频3.0GHz及以上的Pentium双核CPU的PC机(个人计算机),内存≥2GB,硬盘80GB,运行Fedora10操作系统。
图1给出了本发明实施例的流程图,该流程开始于步骤S101,然后在步骤S102中,系统通过P2P流信息接收模块接收P2P识别模块即时发送的P2P流的相关信息,该信息包括所述P2P应用流的六元组,即源IP地址、源端口号、目的IP地址、目的端口号、运输协议类型、P2P应用类型编码,并且对每条P2P应用流仅发送一个P2P应用流信息;
在步骤S103中进行散列寻址操作,以接收到的上述六元组中的前五个元素根据散列函数得到的散列值为地址,在相应散列表空间的表项进行寻址,表项初始值均为0,并在该表项中写入对应的P2P应用流六元组中第六个元素即非0值类型编码;非0值的生存期初始值为1,并随着时间的推移将不断增大,当这些非0值的生存期大于NetFlow流的生成周期的值时,就被置为0。
步骤S104用来接收NetFlow流,并使用步骤S103中相同的散列函数根据NetFlow流记录的五元组,即源IP地址,源端口号,目的IP地址,目的端口号,运输协议类型,得到散列值;
步骤S105-S107完成针对NetFlow流中的每条记录,根据步骤S104生成的散列值在步骤S103中相同的散列表空间进行寻址;若该表项中的值非0,则该流为P2P流,其类型的编码为该表项中的值;并将这些非0值的生存期重置为1;
步骤S108完成P2P流的分离处理,对于寻址到某表项其值不为0的NetFlow流记录,取出表项中的值后将其追加到该NetFlow流记录的特定位置中,并在内存或在文件中保留该NetFlow流记录;否则删除该NetFlow流记录。然后本系统继续进行P2P流和NetFlow流的接收。
本系统可以通过中断方式退出。
所述NetFlow流由路由器或交换机或专用NetFlow产生器产生。
实施例
本实施例给出了应用基于本发明的系统以较低的成本对某企业网中的P2P流进行统计分析,以掌握该本企业网中P2P应用(如文件下载BT、视频点播PPLive)使用网络资源情况的示例。
假定该企业网经100/1000Mb/s速率的以太网链路与某因特网服务提供商的网络相连。运行本发明的系统,将该系统的100/1000Mb/s以太网卡连接到与因特网服务提供商网络连接的局域网交换机上,并将该交换机配置为下列形式:将与主干网相连的端口中的流量信息转换为NetFlow格式的信息,并且该NetFlow流信息导向本系统;同时,还将识别出来的P2P流信息导向本系统。
例如,当系统的P2P流信息接收模块接收到检测的BT P2P流的六元组{175.43.210.81,4798,63.133.10.195,4551,6,7}时,将这些元素作为参数传给散列函数CreateHashID(dstIP,dPort,srcIP,srcPort,type)(该函数提供了先用异或和位移运算合并这6个参数然后再进行散列的功能),得到此流对应的散列值38894;在比对模块中由该值对散列表空间进行寻址,找到38894对应的表项,并将表项设置为7(BT的P2P应用类型编码为7)。在另一方面,当系统的NetFlow流接收模块接收到局域网交换机发送的NetFlow流信息之后,比对模块也使用CreateHashID函数计算每条流对应的散列值,并由此对散列表空间寻址。分离处理模块进行下列工作,如果某次计算得到的散列值为38894,并取出在散列表中对应的表项为7,则将当前的NetFlow流记录的proto字段设置为7,并将该记录追加存储到某文件系统中。如果散列值寻址到某表项为0,则删除当前的流记录。根据同样的原理和工作过程,当系统的P2P流信息接收模块接收到检测到的PPLive P2P流的六元组{143.201.33.98,9894,210.49.127.10,7892,17,4},使用相同的方法,计算出此流对应的散列值是15775,并将15775对应的表项中设置为4。当接收到NetFlow流信息之后,该流信息必定会出现在其中,其计算得到的散列值一定是15775,并且散列表中查得其值为4,则将此NetFlow流记录的proto字段改为为4,同时将该记录追加存储到文件系统。这样,本系统就可以基于NetFlow流信息分离出所关注的BT和PPLive流信息了。由此,就能够对这两种P2P应用进行统计分析,从而得到网络资源的使用情况了。
Claims (3)
1、一种基于NetFlow流实时分离出P2P流的方法,其特征在于,包括下列步骤:
A.接收P2P应用流步骤,用于接收检测到的P2P应用流的相关信息,该信息包括所述P2P应用流的六元组,即源IP地址、源端口号、目的IP地址、目的端口号、运输协议类型、P2P应用类型编码,并且对每条P2P应用流仅发送一个P2P应用流信息;
B.散列寻址步骤,以接收到的上述六元组中的前五个元素根据散列函数得到的散列值为地址,在相应散列表空间的表项进行寻址,表项初始值均为0,并在该表项中写入对应的P2P应用流六元组中第六个元素即非0值类型编码;当这些非0值的生存期大于NetFlow流的生成周期的值时,就被置为0;
C.接收NetFlow流步骤,用于接收网络流中的NetFlow流信息,并使用步骤B中相同的散列函数根据NetFlow流记录的五元组,即源IP地址、源端口号、目的IP地址、目的端口号、运输协议类型,得到散列值;
D.比对步骤,针对NetFlow流中的每条记录,根据步骤C生成的散列值在步骤B中相同的散列表空间进行寻址;若该表项中的值非0,则该流为P2P流,其类型的编码为该表项中的值;并将这些非0值的生存期重置为1;
E.分离处理步骤,对于寻址到某表项其值不为0的NetFlow流记录,取出表项中的值后将其追加到该NetFlow流记录的特定位置中,并在内存或在文件中保留该NetFlow流记录;否则删除该NetFlow流记录。
2、根据权利要求1所述的基于NetFlow流实时分离出P2P流的方法,其特征在于,所述步骤B中,非0值的生存期初始值为1,并随着时间的推移将不断增大,当这些非0值的生存期大于NetFlow流的生成周期的值时,就被置为0。
3、根据权利要求2所述的基于NetFlow流实时分离出P2P流的系统,其特征在于,所述NetFlow流由路由器或交换机或专用NetFlow产生器产生。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100251333A CN101510843B (zh) | 2009-02-24 | 2009-02-24 | 基于NetFlow流实时分离出P2P流的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100251333A CN101510843B (zh) | 2009-02-24 | 2009-02-24 | 基于NetFlow流实时分离出P2P流的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101510843A true CN101510843A (zh) | 2009-08-19 |
CN101510843B CN101510843B (zh) | 2011-04-06 |
Family
ID=41003109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100251333A Expired - Fee Related CN101510843B (zh) | 2009-02-24 | 2009-02-24 | 基于NetFlow流实时分离出P2P流的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101510843B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101909077A (zh) * | 2010-07-09 | 2010-12-08 | 北京邮电大学 | 一种对等业务的识别方法、装置及接入网 |
CN103141058A (zh) * | 2010-09-23 | 2013-06-05 | 思科技术公司 | 用于虚拟分布式业务的网络接口控制器 |
CN104272657A (zh) * | 2012-05-01 | 2015-01-07 | 思科技术公司 | 用于向网络流提供租户信息的方法和装置 |
CN105939229A (zh) * | 2016-03-28 | 2016-09-14 | 杭州迪普科技有限公司 | 计算网络流量的速率的方法及装置 |
CN106713806A (zh) * | 2016-12-20 | 2017-05-24 | 北京竞业达数码科技有限公司 | 一种用于研讨型教室的装置 |
-
2009
- 2009-02-24 CN CN2009100251333A patent/CN101510843B/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101909077A (zh) * | 2010-07-09 | 2010-12-08 | 北京邮电大学 | 一种对等业务的识别方法、装置及接入网 |
CN103141058A (zh) * | 2010-09-23 | 2013-06-05 | 思科技术公司 | 用于虚拟分布式业务的网络接口控制器 |
CN103141058B (zh) * | 2010-09-23 | 2016-05-04 | 思科技术公司 | 用于虚拟分布式业务的网络接口控制器 |
CN104272657A (zh) * | 2012-05-01 | 2015-01-07 | 思科技术公司 | 用于向网络流提供租户信息的方法和装置 |
CN104272657B (zh) * | 2012-05-01 | 2018-03-27 | 思科技术公司 | 用于向网络流提供租户信息的方法和装置 |
CN105939229A (zh) * | 2016-03-28 | 2016-09-14 | 杭州迪普科技有限公司 | 计算网络流量的速率的方法及装置 |
CN105939229B (zh) * | 2016-03-28 | 2019-02-19 | 杭州迪普科技股份有限公司 | 计算网络流量的速率的方法及装置 |
CN106713806A (zh) * | 2016-12-20 | 2017-05-24 | 北京竞业达数码科技有限公司 | 一种用于研讨型教室的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101510843B (zh) | 2011-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106936667B (zh) | 一种基于应用程序流量分布式分析的主机实时识别方法 | |
US9065767B2 (en) | System and method for reducing netflow traffic in a network environment | |
CN104488231B (zh) | 用于有选择地监视流量的方法、设备和系统 | |
Kumar et al. | Sketch Guided Sampling-Using On-Line Estimates of Flow Size for Adaptive Data Collection. | |
US7623466B2 (en) | Symmetric connection detection | |
Inacio et al. | {YAF}: Yet another flowmeter | |
CN101510843B (zh) | 基于NetFlow流实时分离出P2P流的方法 | |
CN102571946B (zh) | 一种基于对等网络的协议识别与控制系统的实现方法 | |
CN104778042B (zh) | 一种基于事件流处理和插件式开发框架的流数据处理方法 | |
CN107465690B (zh) | 一种基于流量分析的被动式异常端口实时检测方法及系统 | |
CN104378264A (zh) | 一种基于sFlow的虚拟机进程流量监控方法 | |
CN106375157B (zh) | 一种基于相空间重构的网络流关联方法 | |
CN101335686A (zh) | 一种在网络设备上进行数据流量分析管理的方法 | |
KR20110070464A (ko) | 트래픽 수집장치, 트래픽 분석장치, 시스템 및 그 분석방법 | |
CN103685058B (zh) | 控制流数据的服务质量的方法和OpenFlow控制器 | |
CN104572416A (zh) | 一种运维数据的处理方法及装置 | |
TWI455529B (zh) | 在電腦網路中傳送資料之方法、系統、伺服器、裝置、電腦程式及電腦程式產品 | |
CN109144837B (zh) | 一种支持精准服务推送的用户行为模式识别方法 | |
CN113328956B (zh) | 一种报文处理方法及装置 | |
CN101753456B (zh) | 一种对等网络流量检测方法及其系统 | |
Wolf et al. | An architecture for distributed real-time passive network measurement | |
CN102480503B (zh) | P2p流量识别方法和装置 | |
KR20220029142A (ko) | Sdn 컨트롤러 서버 및 이의 sdn 기반 네트워크 트래픽 사용량 분석 방법 | |
CN1842011A (zh) | 一种基于流量进行计费的改进方法和系统 | |
CN101984635A (zh) | P2p协议流量识别方法及系统 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110406 Termination date: 20140224 |