基于两级缓存的快速组流方法

文档序号:7766913阅读:123来源:国知局
专利名称:基于两级缓存的快速组流方法
技术领域
本发明涉及网络流量测量技术,特别是有利于高速网络流量的组流技术,测量方 法充分利用两级缓存的不同特性大大提高流量的组流效率技术。属于网络流量测量领域。
背景技术
网络流量是由报文构成,而每个TCP或UDP报文中都包括有源IP地址、宿IP地 址、协议、源端口和宿端口等五元组信息,将在一个测量时间段内具有相同的源IP地址、宿 IP地址、协议、源端口和宿端口等五元组信息的报文集合称为一个流记录。组流的就是在 测量过程中将所有具有相同五元组信息的报文聚合成一条记录,网络流量的组流是网络测 量、管理和网络安全领域非常重要的一项任务。现有的网络测量和管理系统中都具有组流运算,如Cisco路由器中提供的 NetFlow功能。NetFlow是Cisco公司提出的流实现版本,NetFlow以源宿IP、源宿端口和 协议5个属性相同的报文组合成一个流,NetFlow的路由器在DRAM中维护一个流缓存,它 保存了当前所有活跃流记录。由于网络流量的规模很大,因此特别在主干网络中五元组流 的数量也非常多,很难在测量器中维护所有的流记录。目前路由器和测量器中使用两种不同类型的缓存SRAM和DRAM,SRAM是静态随机 存储器,具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,SRAM的特 点是读取速度快,缺点是容量小,价格成本高,SRAM的高速读取速率适合对高速主干网络中 的组流操作,但是其容量小、价格高难以实现对主干网络中的所有流量进行组流操作。DRAM 即动态随机存储器最为常见的系统内存,DRAM的特点是读取速率较低,但容量大、价格低, 目前的随机存储设备大多使用DRAM。网络流量中的流长分布具有重尾特性,即极少数的流包括大量的报文,而大多数 流仅具有极少数报文,根据CERNET网络的一些实验表明,大约1.6%的流约占总流量的 80%,10%的流占总流量的94%。因此如果我们在将流记录分成两个部分长流和短流,长 流记录在高速缓存中,而低速流记录在低速缓存中,即只需要1. 6%的高速缓存中流记录空 间就可以记录80%的流量,而其它的短流由于访问的次数较少,就简单记录在低速缓存中。 如果高速缓存的访问速率是低速缓存的10倍,假设对于η个报文记录,每个报文记录低速 缓存读取时间是10个单位,高速缓存是1个单位,则如果全部采用低速缓存处理报文,则需 要IOn个时间单位。而如果采用高速缓存和低速缓存相结合,假设按照CERNET网络流量 的实验规律1. 6%的流约占总流量的80%,在高速缓存中采用1.6%流记录数量的内存空 间,则需要的时间单位是η+(1-0.8)η*10 = 3个时间单位进行测量。因此采用两级缓存的 组流算法,基于流量的重尾特性,可以大大提高网络流量的组流速率。

发明内容
本发明提供一种快速高效的基于两级缓存的快速组流方法。—种基于两级缓存的快速组流方法,其特征是测量期间测量器分别在低容量高速缓存和高容量低速缓存中各维护一个流表,对于每个到达的报文首先检查高速缓存中有无 其流记录,如果有记录,将该报文信息累加在该流记录中,如果没有记录,随机抽样该报文, 如果该报文被抽中,则在高速缓存中建立该流记录,否则将该报文记录在低速缓存中,其具 体步骤如下步骤1 设置参数设置报文抽样比率p,设置流记录为源IP地址、宿IP地址、协议、源端口和宿端口 等五元组,每个流记录中包括报文数和字节数两个信息,设置测量开始时间和测量结束时 间,测量开始,进入步骤2,步骤2:报文到达当一个报文到达测量器,测量器从报文头中提取其源IP地址、宿IP地址、协议、源 端口和宿端口等五元组信息,然后在高速缓冲中查找有无这五元组流记录信息,如果找到 该五元组流记录信息,则进入步骤3,否则进入步骤4,步骤3 高速缓存更新将包含这个五元组信息的流记录中的报文数累加1,字节数累加该报文的长度,进 入步骤6,步骤4:抽样流记录按照抽样概率ρ随机抽样该报文,如果该报文被抽样,则在高速缓存中产生一条 新的记录用于记录该报文的五元组的流记录信息,设置其报文数为1,字节数为该报文的长 度,进入步骤6,否则进入步骤5,步骤5:更新低速缓存在低速缓存中查找该五元组流记录,如果查找到该流记录,则将该流记录的报文 数累加1,字节数累加该报文的长度,如果在低速缓存中没有查找到该流记录,则在低速缓 存中产生一条新的流记录,并设置该流记录的报文数为1,字节数为报文的长度,进入步骤 6,步骤6:结束判断如果该时间段报文测量结束,则输出高速缓存和低速缓存中流记录信息,方法结 束,否则回到步骤2。与现有技术相比,本发明具有如下优点及有效效果(1)网络流量中的流长分布具有重尾特性,即极少数的流包括大量的报文,而大多 数流仅具有极少数报文,该方法将流分成长流和短流,将含有大量报文的长流信息记录在 高速缓存中,而低速流记录在低速缓存中,该方法充分利用了高速缓存低容量和低速缓存 高容量的特点,采用两级缓存的进行组流,大大提高网络流量的组流效率;(2)在长流和短流识别中,本发明采用随机抽样的方法进行等概率抽样每个通过 的报文,这种方法使得包含有多个报文的长流以很高的概率被记录在高速缓存中,而仅有 少量报文的短流被记录在高速缓存中的概率很低,通过简单的随机抽样方法实现将长流和 短流记录进行分离;(3)本发明的方法能够进行高速主干网络的组流操作,其组流结果能够用于网络 安全和网络管理。


图1 基于两级缓存的快速组流方法的报文数据查找方向图,其中实线箭头表示 所有的报文都必须在高速缓存中查找一次,虚线箭头表示没有在高速缓存中查到或抽样的 报文数据将在低速缓存中查找和记录。图2 基于两级缓存的快速组流方法的流程图。
具体实施例方式假设一组报文的五元组信息及其报文长度分别为{a,100},{b,50},{a, 200},{a, 500},{a, 100}, {c,100},{b,50},其中 a,b,c 分别标识不同的五元组标识,100、50、200、 500、100、100、50分别标识每个五元组标识报文的报文长度,—种基于两级缓存的快速组流方法,其特征是测量期间测量器分别在低容量高速 缓存和高容量低速缓存中各维护一个流表,对于每个到达的报文首先检查高速缓存中有无 其流记录,如果有记录,将该报文信息累加在该流记录中,如果没有记录,随机抽样该报文, 如果该报文被抽中,则在高速缓存中建立该流记录,否则将该报文记录在低速缓存中,其具 体步骤如下步骤1 设置参数设置报文抽样比率1/2,设置流记录为源IP地址、宿IP地址、协议、源端口和宿端 口等五元组,每个流记录中包括报文数和字节数两个信息,设置测量开始时间和测量结束 时间,测量开始,进入步骤2,步骤2 报文到达当一个报文{a,100}到达测量器,测量器从报文头中提取其源IP地址、宿IP地 址、协议、源端口和宿端口等五元组信息为a,其报文长度为100,然后在高速缓冲中查找有 无这五元组流记录信息,没有找到该标识,进入步骤4,步骤4 抽样流记录按照抽样概率1/2随机抽样该报文,该报文没有被抽样,进入步骤5,步骤5:更新低速缓存在低速缓存中查找该五元组流记录,在低速缓存中没有查找到该流记录,则在低 速缓存中产生一条新的流记录,并设置该流记录的报文数为1,字节数为报文的长度100, 进入步骤6,步骤6:结束判断该时间段报文测量没有结束,回到步骤2,步骤2 报文到达当一个报文{b,50}到达测量器,测量器从报文头中提取其源IP地址、宿IP地址、 协议、源端口和宿端口等五元组信息为b,其报文长度为50,在高速缓冲中查找五元组流记 录b信息,没有找到该五元组流记录信息,否则进入步骤4,步骤4 抽样流记录按照抽样概率1/2随机抽样该报文,没有抽样,进入步骤5,步骤5 更新低速缓存在低速缓存中查找该五元组流记录,没有查找到该流记录,则在低速缓存中产生一条新的b流记录,并设置该流记录的报文数为1,字节数为报文的长度50,进入步骤6,步骤6:结束判断该时间段报文测量没有结束,回到步骤2,步骤2 报文到达当一个报文{a,200}到达测量器,测量器从报文头中提取其源IP地址、宿IP地 址、协议、源端口和宿端口等五元组信息为a,其报文长度为200,然后在高速缓冲中查找有 无这五元组流记录信息,没有找到该五元组流记录信息,进入步骤4,步骤4 抽样流记录按照抽样概率1/2随机抽样该报文,该报文被抽样,在高速缓存中产生一条新的 记录用于记录该报文的五元组的流记录信息a,设置其报文数为1,字节数为该报文的长度 200,进入步骤6,步骤6:结束判断该时间段报文测量没有结束,回到步骤2。步骤2 报文到达当一个报文{a,500}到达测量器,测量器从报文头中提取其源IP地址、宿IP地 址、协议、源端口和宿端口等五元组信息为a,报文长度为500,然后在高速缓冲中查找有无 这五元组流记录信息,找到该五元组流记录信息,进入步骤3,步骤3:高速缓存更新将包含这个五元组信息的流记录中的报文数累加1,字节数累加该报文的长度 500,则a流报文数为2,字节数为700,进入步骤6,步骤6:结束判断该时间段报文测量没有结束,回到步骤2,步骤2 报文到达当一个报文{a,100}到达测量器,测量器从报文头中提取其源IP地址、宿IP地 址、协议、源端口和宿端口等五元组信息为a,报文长度为100,在高速缓冲中查找有无这五 元组流记录信息,找到该五元组流记录信息,进入步骤3,步骤3:高速缓存更新将包含这个五元组信息a的流记录中的报文数累加1,字节数累加该报文的长度 100,a流报文数为3,字节数为800,进入步骤6,步骤6:结束判断该时间段报文测量没有结束,回到步骤2,步骤2 报文到达当一个报文{c,100}到达测量器,测量器从报文头中提取其源IP地址、宿IP地 址、协议、源端口和宿端口等五元组信息为c,报文数为100,在高速缓冲中没有查找到这五 元组流记录信息,进入步骤4,步骤4 抽样流记录按照抽样概率1/2随机抽样该报文,报文没有被抽样,进入步骤5,步骤5:更新低速缓存在低速缓存中查找该五元组流记录,没有查找到该流记录,在低速缓存中产生一条新的c流记录,并设置该流记录的报文数为1,字节数为报文的长度100,进入步骤6,步骤6:结束判断该时间段报文测量没有结束,回到步骤2,步骤2 报文到达当一个报文{b,50}到达测量器,测量器从报文头中提取其源IP地址、宿IP地址、 协议、源端口和宿端口等五元组信息为b,报文长度为50,在高速缓冲中没有查找到这五元 组流记录信息,进入步骤4,步骤4 抽样流记录按照抽样概率1/2随机抽样该报文,该报文没有被抽样,进入步骤5,步骤5:更新低速缓存在低速缓存中查找该五元组流记录b,查找到该流记录,则将该流记录的报文数累 加1,字节数累加该报文的长度50,则流b的报文数为2,字节数为100,进入步骤6,步骤6:结束判断该时间段报文测量结束,则输出高速缓存和低速缓存中流记录信息,输出的结果为高速缓存中输出的结果为流a,报文数3,字节数800低速缓存中输出的结果为流a,报文数1,字节数100流b,报文数2,字节数100流C,报文数1,字节数100方法结束。
权利要求
一种基于两级缓存的快速组流方法,其特征是测量期间测量器分别在低容量高速缓存和高容量低速缓存中各维护一个流表,对于每个到达的报文首先检查高速缓存中有无其流记录,如果有记录,将该报文信息累加在该流记录中,如果没有记录,随机抽样该报文,如果该报文被抽中,则在高速缓存中建立该流记录,否则将该报文记录在低速缓存中,其具体步骤如下步骤1设置参数设置报文抽样比率p,流记录的标识设置为源IP地址、宿IP地址、协议、源端口和宿端口的五元组,每个流记录的属性值包括报文数和字节数,设置测量开始时间和测量结束时间,测量开始,进入步骤2,步骤2报文到达当一个报文到达测量器,测量器从报文头中提取其源IP地址、宿IP地址、协议、源端口和宿端口的五元组信息,然后在高速缓存中查找有无这五元组流记录信息,如果找到该五元组流记录信息,则进入步骤3,否则进入步骤4,步骤3更新高速缓存将在高速缓存中的这个五元组标识的流记录中的报文数累加1,字节数累加该报文的长度,进入步骤6,步骤4抽样流记录按照抽样概率p随机抽样该报文,如果该报文被抽样,则在高速缓存中产生一条新的记录用于记录该报文的五元组的流记录信息,设置其报文数为1,字节数为该报文的长度,进入步骤6,否则进入步骤5,步骤5更新低速缓存在低速缓存中查找该五元组流记录,如果查找到该流记录,则将该流记录的报文数累加1,字节数累加该报文的长度,如果在低速缓存中没有查找到该流记录,则在低速缓存中产生一条新的流记录,并设置该流记录的报文数为1,字节数为报文的长度,进入步骤6,步骤6结束判断如果该时间段报文测量结束,则输出高速缓存和低速缓存中流记录信息,方法结束,否则回到步骤2。
全文摘要
本发明提出一种基于两级缓存的快速组流方法,在测量期间测量器分别在低容量高速缓存和高容量低速缓存中各维护一个流表,对于每个到达的报文首先检查高速缓存中有无其流记录,如果有记录,将该报文信息累加在该流记录中,如果没有记录,随机抽样该报文,如果该报文被抽中,则在高速缓存中建立该流记录,否则将该报文记录在低速缓存中,本发明利用网络流量中的流长分布的重尾特性,将含有大量报文的长流信息记录在高速缓存中,而低速流记录在低速缓存中,采用两级缓存的进行组流,大大提高网络流量的组流效率,同时采用等概率抽样每个报文,使得长流以很高的概率被记录在高速缓存中,而仅有少量报文的短流被记录在高速缓存中的概率很低。
文档编号H04L12/26GK101986611SQ201010565669
公开日2011年3月16日 申请日期2010年11月30日 优先权日2010年11月30日
发明者程光 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1