对点对点应用进行限流的方法

文档序号:7625192阅读:218来源:国知局
专利名称:对点对点应用进行限流的方法
技术领域
本发明涉及网络通讯领域,尤其涉及一种对P2P(点对点)应用进行限流的方法。
背景技术
P2P技术是近年来兴起的一种用户之间共享和下载数据的新应用。P2P技术的主要特点是不同PC用户之间、不经过中继设备直接交换数据或服务。P2P打破了传统的Client/Server模式,在对等网络中,每个节点的地位都是相同的,具备客户端和服务器双重特性,可以同时作为服务使用者和服务提供者。P2P允许Internet用户直接使用对方的文件,每个人可以直接连接到其他用户的计算机,并进行文件的交换,而不需要连接到服务器上再进行浏览与下载。
由于P2P技术的飞速发展,互联网的存储模式将由目前的“内容位于中心”模式转变为“内容分散存储”模式,P2P将改变Internet上以大网站为中心的流量状态。传统的Internet流量模型和P2P的流量模型的差别示意图如图1所示。
P2P技术主要提供了分布式交换数据的能力,由于个人用户PC的处理能力和硬盘空间逐步增大,资源分布存储已经变为可能,通过集中资源服务器来存放资源已经不再是资源存放的唯一途径。现在Internet上70%的流量都是P2P应用的流量,而传统的HTTP流量已经不是Internet上的主要流量。以前个人用户的下行流量(从Internet到个人用户)远远大于上行流量,而由于P2P技术的出现,导致个人用户的下行流量和上行流量都很大。因此,P2P技术也同时增加了网络的拥塞。
现在网络最常用的P2P软件主要有如下几种1、BT(BitTorrent,变态下载)。BitTorrent是一个多点下载的源码公开的P2P软件,使用非常方便,就像一个浏览器插件,很适合新发布的热门资源的下载。BT流量占Internet上所有流量的50%。
2、eDonkey(电驴)。eDonkey是一个公开源代码的P2P下载软件,eDonkey流量占Internet上所有流量的20%。
3、eMule(电骡)。eMule是一个公开源代码的P2P下载软件,eMule流量占Internet上所有流量的20%。
现有技术中一种对P2P应用进行限流的方法为通过过滤P2P应用的知名端口来进行P2P流量的限制。
在BT实现中,BT客户端之间的连接有一个知名端口范围(6881~6889)。在Emule/Edonkey实现中,Emule/Edonkey的知名端口如下默认情况下,客户机连接服务器在TCP端口4661(refer as port-s),客户机访问每一个其它的客户机在TCP端口4662(refer as port-c)和UDP端口4665(refer as port-c-u)。这些端口还可以根据所使用软件的不同,设置为其它的值。该方法通过上述端口范围来识别P2P会话,并对识别出来的会话进行流量限制。
上述对P2P应用进行限流的方法的缺点为该方法在前期一定程度上是可用的,但是,该方法通过端口范围来识别P2P报文并不准确。
比如,以BT实现为例,虽然BT的官方网站提供了一个默认的监听端口范围(6881~6889)。但是用户通过一定的技术手段可以改变这个端口范围,另外,BT的客户端较多,它们所采用的端口范围及实现方式各不相同,如表1所示。
表1BT客户端的实现方式和端口范围的关系的示意图

以Emule/Edonkey实现为例,该软件除了提供上述知名端口外,其本身还提供了一种HilD技术让用户可以自己设置端口。而且以上P2P应用都是开放源码的,因此,要更新P2P应用的端口并不困难。因此,由于P2P应用的端口范围并不固定,通过端口范围来识别P2P报文并不准确。
现有技术中另一种对P2P应用进行限流的方法为通过解析P2P软件握手信息的特征字来识别P2P会话,并对识别出来的会话进行流量限制。
以BT应用为例,BT报文的识别是通过BT对等协议的握手过程提取出来的,握手的过程是先发送19,接着发送字符串“BitTorrent protocol”,19就是“Bittorrent protocol”的长度。即标识BT报文的特征字是数字“19”和字符串“BitTorrent protocol”的组合。通过该特征字就可以识别BT会话。
以Emule/Edonkey应用为例,emule/edonkey的协议报文都遵循标准的报文头(数据报文因为有可能产生应用层分片,因此数据报文只有第一个报文有报文头),该报文头上有一个字节的特征字(E3或C5),因此可以检查tcp(传输控制协议)数据的前几个报文是否都包含该特征字(E3或C5),通过该特征字来识别emule/edonkey会话。
上述对P2P应用进行限流的方法的缺点为该方法具有很大的局限性。
该方法要求路由设备支持会话表,要求路由设备必须在握手阶段对P2P会话进行识别,因此如果路由设备不支持会话表,或者路由设备不做Nat(地址转换协议)就很难对其后续报文进行控制。
由于目前的P2P软件其特征实现差异很大,该方法需要对不同的P2P软件进行不同的识别,也就是对每种P2P软件都需要增加相应的识别方法,因此,该方法无法智能地应付将来出现的新P2P应用,如果将来演进的P2P应用没有特征码,或特征码很难识别,该方法就不适用了。
现有技术中另一种对P2P应用进行限流的方法为根据报文的地址来对报文进行限流操作。如根据报文的源地址对报文作CAR(流控方式的一种)等操作,或者对报文进行连接数限制等。
上述对P2P应用进行限流的方法的缺点为该方法没有对报文进行识别,因此,该方法并不精确,也无法对不同的应用报文进行不同的流量限制。

发明内容
本发明的目的是提供一种对P2P应用进行限流的方法,从而可以根据流量模型来识别P2P会话,并对识别出来的P2P会话进行流量限制。
本发明的目的是通过以下技术方案实现的一种对点对点应用进行限流的方法,包括A、对报文进行流量统计;B、根据所述流量统计的结果,识别报文为点对点P2P应用报文,并对该P2P应用报文进行限流操作。
所述的步骤A具体包括在设定的时间内,统计报文访问的目的地址的变化速率;和/或,
在设定的时间内,统计报文的每秒新建会话数;和/或,在设定的时间内,统计报文保存连接的目的地址数;和/或,在设定的时间内,统计报文保持连接的会话数。
所述的步骤A还包括建立基于报文的源地址的统计表,将所述报文流量统计的结果保存在该统计表中,并根据设定的时间,对保存的统计结果进行更新。
所述的步骤B具体包括B1、根据所述流量统计的结果,对报文进行流量模型匹配,将匹配命中的报文确定为P2P应用报文;B2、按照指定的限制策略,对所述P2P应用报文进行限流操作。
所述的步骤B1具体包括当统计的报文访问的目的地址变化速率达到设定的域值时;和/或,当统计的报文每秒新建会话数达到设定的域值时;和/或,当统计的报文保存连接的目的地址达到设定的域值时;和/或,当统计的报文保持连接的会话数达到设定的域值时,则判定报文的流量模型匹配命中,确定报文为P2P应用报文。
所述的步骤B1还包括建立基于报文的源地址的P2P限流表,将所述流量模型匹配命中的P2P应用报文的源地址和对应的动作保存在该P2P限流表中。
所述的方法还包括
在接收到报文后,如果在所述P2P限流表中查询到该报文的源地址,则对报文执行相应的动作;否则,对报文进行流量统计,将统计的结果保存在所述统计表中,根据统计表中保存的统计结果对报文进行流量模型匹配,对匹配命中的P2P应用报文进行限流操作。
所述的步骤B2还包括将所述指定的限制策略和访问控制列表ACL相结合,对P2P应用报文进行各种限流操作。
所述的步骤B2还包括将所述指定的限制策略和访问控制列表ACL相结合,根据P2P应用报文的源地址或目的地址对报文进行限流操作;或者,在接收或发送P2P应用报文的方向进行限流操作;或者,对P2P应用报文的总报文数进行限制;或者,对P2P应用报文的连接数进行限制。
由上述本发明提供的技术方案可以看出,本发明通过根据流量模型来识别P2P会话,可以有效地对P2P会话进行流量限制。本发明不仅对当前的P2P应用有效,而且对将来有可能出现的新P2P应用同样有效。本发明解决了逐包分析P2P特征而使效率降低的问题。本发明可以和ACL(接入控制列表)结合,根据不同的组网和客户需求来制定不同的P2P限流方案,满足限流方案的多样性,适应面比较广。


图1为传统的Internet流量模型和P2P的流量模型的差别示意图;
图2为本方法所述方法的处理流程图。
具体实施例方式
本发明提供了一种P2P应用进行限流的方法,本发明的核心为根据流量模型来识别P2P会话,对识别出来的P2P会话进行流量限制。
下面结合附图来详细描述本发明,本方法所述方法的处理流程如图2所示,包括如下步骤步骤2-1、接收到数据报文。
目前消耗带宽型的P2P应用都具有如下的流量模型特征1、其短时间内访问的地址特别多,保持连接的地址总数也特别多。以BT应用为例,其访问的地址数很容易超过20个目的IP/秒。
2、同时保持的会话数特别多。以EDonkey/Emule应用为例,平均每个文件的会话数在60个左右,当下载的文件比较多时,一个用户很容易达到上千会话数。
将来有可能出现的新的P2P应用如果需要通过分布的客户间共享资源来提供高带宽的下载,也将不可避免地符合上述流量模型特征。
当在指定的入域,比如报文的收接口、接口集或管理概念的区域,收到需要进行处理的报文后,执行步骤2-2。
步骤2-2、在P2P限流表中是否查到该报文的源地址。
本发明需要建立基于报文的源地址的P2P限流表,在该限流表中保存P2P应用报文的源地址和对应的动作。
在上述P2P限流表的表项中查询该报文的源地址,如果查询到该报文的源地址,执行步骤2-3;否则,执行步骤2-4。
步骤2-3、是否需要限流。
如果在P2P限流表中查询到该报文的源地址,则继续查询和该源地址对应的动作,如果查询到的动作为进行限流处理,执行步骤2-5;如果查询到的动作为不进行限流处理,执行步骤2-10。
步骤2-4、在源地址统计表中是否查到该报文的源地址。
本发明还需要建立基于报文的源地址的统计表,在该统计表中保存报文流量统计的结果,并且统计表的每个表项对应一个定时器。
当在P2P限流表的表项中没有查询到报文的源地址,则继续在上述统计表的表项中查到该报文的源地址,如果查询到该报文的源地址,执行步骤2-6;否则,执行步骤2-7。
步骤2-5、进行限流处理。
按照指定的限制策略,对接收到的P2P应用报文进行限流处理。
如果从步骤2-3过来的,在进行限流处理之前,还可以对接收到的P2P应用报文进行步骤2-6所述的流量统计。
步骤2-6、进行流量统计。
在基于报文源地址的统计表项对应的定时器设定的时间内,对接收到的报文进行流量统计,统计的项目包括如下几种1、统计报文访问的目的地址的变化速率;2、统计报文的每秒新建会话数;3、统计报文保存连接的目的地址数;4、统计报文保持连接的会话数。
将流量统计的结果保存在统计表的相应表项中,包括统计到的新目的地址、新会话等信息。并根据该表项对应的定时器设定的时间,对表项中保存的统计结果及时进行更新。然后,执行步骤2-8。
步骤2-7、建立统计表项,创建定时器。
在统计表中建立基于该报文的源地址的表项,该表项中包括报文的源地址信息以及会话信息等信息,并生成一个和该表项对应的定时器,执行步骤2-6。
步骤2-8、进行流量模型匹配。
根据上述统计表的表项中保存的统计结果对报文进行流量模型匹配,即判断该报文的流量是否具备P2P应用的特征,判断的依据包括如下几种1、判断记录的报文访问的目的地址变化速率是否达到设定的域值;2、判断记录的报文每秒新建会话数是否达到设定的域值;3、判断记录的报文保存连接的目的地址是否达到设定的域值;4、判断记录的报文保持连接的会话数是否达到设定的域值。
上述四种判断依据可以单独判断报文的流量是否符合P2P应用的特征,也可以进行自由组合作为复合的条件判断。如果判断报文的流量符合P2P应用的特征,则执行步骤2-9;否则,在上述统计表中删除该报文的源地址对应的表项,执行步骤2-10。
步骤2-9、在P2P限流表中创建限流表项。
在P2P限流表中建立基于该报文的源地址的相应表项,执行步骤2-5。
步骤2-10、进行正常转发。
对接收到的报文进行正常的转发处理。
在实际应用中,上述基于流量模型的限流方案还可以和ACL(AccessControl List,访问控制列表)配合使用,对用户进行各种不同的P2P限流操作。比如可以根据ACL,对网段为110.10.10.0、掩码为24位的用户进行P2P限流操作;可以根据ACL控制P2P限流的方向,即可以根据报文的源IP来进行P2P限流操作,也可以根据报文的目的IP来进行限流操作,可以在接收报文的方向进行限流操作,也可以在发送报文的方向进行限流操作;可以对报文的总报文数进行限制,也可以对报文的连接数进行限制等。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种对点对点应用进行限流的方法,其特征在于,包括A、对报文进行流量统计;B、根据所述流量统计的结果,识别报文为点对点P2P应用报文,并对该P2P应用报文进行限流操作。
2.根据权利要求1所述对点对点应用进行限流的方法,其特征在于,所述的步骤A具体包括在设定的时间内,统计报文访问的目的地址的变化速率;和/或,在设定的时间内,统计报文的每秒新建会话数;和/或,在设定的时间内,统计报文保存连接的目的地址数;和/或,在设定的时间内,统计报文保持连接的会话数。
3.根据权利要求2所述对点对点应用进行限流的方法,其特征在于,所述的步骤A还包括建立基于报文的源地址的统计表,将所述报文流量统计的结果保存在该统计表中,并根据设定的时间,对保存的统计结果进行更新。
4.根据权利要求1、2或3所述对点对点应用进行限流的方法,其特征在于,所述的步骤B具体包括B1、根据所述流量统计的结果,对报文进行流量模型匹配,将匹配命中的报文确定为P2P应用报文;B2、按照指定的限制策略,对所述P2P应用报文进行限流操作。
5.根据权利要求4所述对点对点应用进行限流的方法,其特征在于,所述的步骤B1具体包括当统计的报文访问的目的地址变化速率达到设定的域值时;和/或,当统计的报文每秒新建会话数达到设定的域值时;和/或,当统计的报文保存连接的目的地址达到设定的域值时;和/或,当统计的报文保持连接的会话数达到设定的域值时,则判定报文的流量模型匹配命中,确定报文为P2P应用报文。
6.根据权利要求5所述对点对点应用进行限流的方法,其特征在于,所述的步骤B1还包括建立基于报文的源地址的P2P限流表,将所述流量模型匹配命中的P2P应用报文的源地址和对应的动作保存在该P2P限流表中。
7.根据权利要求6所述对点对点应用进行限流的方法,其特征在于,所述的方法还包括在接收到报文后,如果在所述P2P限流表中查询到该报文的源地址,则对报文执行相应的动作;否则,对报文进行流量统计,将统计的结果保存在所述统计表中,根据统计表中保存的统计结果对报文进行流量模型匹配,对匹配命中的P2P应用报文进行限流操作。
8.根据权利要求6所述对点对点应用进行限流的方法,其特征在于,所述的步骤B2还包括将所述指定的限制策略和访问控制列表ACL相结合,对P2P应用报文进行各种限流操作。
9.根据权利要求8所述对点对点应用进行限流的方法,其特征在于,所述的步骤B2还包括将所述指定的限制策略和访问控制列表ACL相结合,根据P2P应用报文的源地址或目的地址对报文进行限流操作;或者,在接收或发送P2P应用报文的方向进行限流操作;或者,对P2P应用报文的总报文数进行限制;或者,对P2P应用报文的连接数进行限制。
全文摘要
本发明提供了对点对点应用进行限流的方法,该方法主要包括对报文进行流量统计;根据所述流量统计的结果,识别报文为P2P(点对点)应用报文,并对该P2P应用报文进行限流操作。利用本发明所述方法,可以根据流量模型来识别P2P会话,并对识别出来的P2P会话进行流量限制。
文档编号H04L12/56GK1863154SQ20051010912
公开日2006年11月15日 申请日期2005年10月18日 优先权日2005年10月18日
发明者雷奕康 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1