专利名称:基于固定存储空间的网络流实时自适应测量方法
技术领域:
本发明涉及用于网络流量的自适应测量方法,尤其是一种在高速大规模网络中基于固定存储空间 的网络流实时自适应测量方法。
背景技术:
网络流在网络中应用非常广泛,基于网络流的行为分析和异常检测是热点研究问题,在IETF组 织中有二个工作组专门研究网络流的有关问题,实时流测量工作组RTFM和网络流信息输出工作组 IPFIX,他们的工作是建立网络流测量的相关通用标准。由于互联网的"更大、更快、突变"的特性, 使得基于抽样的近似测量技术成为目前网络流测量的重点研究问题。由于测量资源的限制,测量系统难以记录所有通过被测量链路的流量,因此采用抽样的方法测量 部分通过链路的报文。测量系统一般是由按照具有相同的流标识的报文组合在一起,由于网络流数量 和报文数量之间没有对应关系,以及流量的突发特性,测量系统无法在测量开始的时刻设定抽样参数, 使得同时固定一个测量时间区间和测量网络流的存储空间。如果抽样参数设置太少,则测量结果的估 计精度较低,在测量时间区间结束的时候,大量存储空间没有使用,浪费测量资源的消耗。而如果抽 样参数设置过大,在测量时间区间没有结束的时候,网络流存储空间已经用完,无法继续测量剩余时 间中的流量。由于网络流数据具有重要应用和研究价值,现代路由器中都提供了网络流测量功能,如Cisco路 由器中提供了NetFlow功能,NetFlow在路由器中提供了网络流测量功能,由于路由器难以提供足够 的资源测量所有通过其的所有网络流,Cisco在NetFlow基础上增加了抽样功能,抽样的NetFlow可 以通过抽取部分网络流量进行网络流测量,但是在测量过程中NetFlow的测量抽样概率需要用户调 整,另外无法适应网络流量的突变情况。Estan提出了具有自适应抽样能力的NetFlow,该NetFlow算 法能够适应网络流量的突变情况,但最终不能充分发挥路由器的测量资源,测量精度较低,在网络流 重抽样过程中也消耗较多的CPU资源,因此设计更有效、更精确的自适应抽样算法就更为重要。目前为了解决抽样参数设置过大问题, 一般采取两种方法(l)抽样参数在测量开始的时候设置, 整个测量过程中采用相同的抽样参数,测量空间的满了,就将所有的流量输出,如Sampled Netflow 中采用的方法;(2)采用自适应测量方法,当测量时间没有结束的时候,而测量空间满了,就采用自 适应的方法调整抽样参数,并调整流量缓存中的记录信息,移除不符合新的抽样参数条件下的流量记 录,腾出空间继续测量剩余时间区间中的流量信息,如Estan的自适应抽样方法。第一种方法由于在 整个测量过程中不能调整测量参数,无法适应于网络流量的不稳定性和突发性。第二种方法虽然能够 调整抽样参数,但是在自适应过程中需要浪费测量资源调整网络流缓存中的流量信息,并且调整空间 是以牺牲已经测量的流量信息为代价。综合这两种方法,第一种方法本质是固定网络流存储空间和时间区间, 一旦网络流空间满了或者 测量时间区间到达,可以将当前时间区间结束,然后进行下一个时间区间的测量;但是在新的时间区 间中,这种方法不调整测量参数,使得测量参数不能适应网络流量和测量资源的协同需求。第二种方法是固定时间区间,如果测量时间区间没有结束,而网络流存储空间满了,则调整网络流存储空间和 测量参数,继续进行测量,直到测量时间结束。发明内容本发明提出一种基于固定存储空间的网络流实时自适应测量方法,该方法设定一个期望测量区间 持续时间、网络流存储空间和抽样测量参数,期望测量区间持续时间用于作为抽样测量参数调整的指 标,网络流存储空间大小作为当前测量区间结束的依据,抽样测量参数是控制测量资源和网络流量之 间的关系;在测量过程中设定一个固定网络流存储空间大小阀值作为一个测量循环结束的依据,如果 存储空间网络流流数超过阀值,则当前测量区间结束,输出所有的流量记录信息估计值;根据当前测 量区间的时间间隔、期望测量区间持续时间和当前的抽样测量参数计算下一个测量区间内的抽样测量 参数。将出现的期望测量区间持续时间用于控制测量资源,如果当前测量区间持续时间小于期望测量 区间持续时间,而网络流存储空间已经满了,需要将网络流存储空间的流量记录信息输出,则说明测 量系统需要消耗更多测量资源用于网络流量信息的处理和存储,因而测量抽样参数设置过大,加大了 测量系统的负担;而如果当前测量区间持续时间超过期望测量区间持续时间,而网络流存储空间没有 满,说明测量抽样参数设置过小,浪费了测量资源,降低了测量网络流量的精度。本发明的具体技术步骤如下 第l步设置参数设置期望测量时间区间T,测量抽样比率为l/m,网络流存储空间K的大小为N,测量结束时间End;第2步设置当前测量区间初始值设置当前测量系统时间为Current—tl,网络流存储空间中的流记录数量为n=0,设置当前报文读 数为i=0;第3步判断测量结束时间如果当前测量系统时间大于测量结束时间End,则将网络流存储空间中的流记录全部输出,测量 结束;否则等待报文到达测量器,如果一个报文A到达测量器,设置当前报文计数器i的数量增加l, 即i-i+l,进入到第4步; 第4步抽样报文使用抽样比率1/m抽样当前报文A,即如果报文计数器中报文的数量i等于抽样比率1/m的倒数 m时,则抽样报文A,并设置当前报文计数器i的值为O,进入到第5步;如果报文计数器中报文的 数量i小于抽样比率1/m的倒数m时,则报文A被丢弃,回到第3步; 第5步更新网络流存储空间信息在网络流存储空间K中査找这个被抽样报文A的网络流a,如果网络流存储空间中査找到该网络 流a,则将该网络流a的报文数K[a]累加抽样概率l/m的倒数m, B卩K[a] = K[a]+m,回到第3步;如 果在网络流存储空间K中没有查找到被抽样报文A的网络流a,则在网络流存储空间中增加一条记录 用于存储网络流a,设置其初始报文数为抽样概率1/m的倒数m,即K[a] = m,设置网络流存储空间 K中的流记录数量n累加1,即11=11+1,进入到第6步 第6步判断当前测量区间结束如果当前网络流存储空间K中流的记录数量n等于网络流存储空间K的大小为N,则当前测量区间结束,记录当前测量区间结束时间为current—t2,将当前网络流存储空间K中的N个网络流记录 信息从内存输出,进入第7步;否则当前测量区间没有结束,回到第3步; 第7步调整下一个测量区间中的抽样参数当前测量区间总共持续时间t为当前测量区间结束时间current—t2和当前测量时间区间开始时间 currentjl之间的差值,即t=current_t2-current_tl,测量系统初始期望的测量时间区间为T,当前测量 区间中使用的抽样比率为l/m,则下一个测量时区间内抽样比率1/m的倒数计算公式为<formula>formula see original document page 6</formula>附"l表示大于(i + (7—0〃)'w的最小正整数,回到第2步。与现有技术相比,本发明具有如下优点及有益效果(1) 本发明使用固定网络流存储空间大小作为测量区间结束判断的触发指标,并使用期望测量时间区间作为抽样测量参数的自适应调整的依据;实现不同测量区间内抽样测量参数自适应调整,并且在 自适应调整过程中避免对网络流存储空间中记录信息的重调整,节省自适应过程中测量资源的消耗和 保留网络流量信息的精度;(2) 在测量报文数据过程中,在网络流存储空间中记录网络流报文数量的估计值代替测量值,使得 不同测量区间内使用不同的抽样参数的测量结果可以直接进行相互比较和计算,提高了测量数据的通 用性;
图1是本发明方法的示意图; 图2是本发明方法的流程图。
具体实施方式
参看图l、图2, 设一个报文序列A ABCDAEFBECEF AHND,每个时间单位到达一个报文1 (第l步)设置参数设置期望测量时间区间6,测量抽样比率为1/2,网络流存储空间K的大小为2,测量结束时间 15,进入2 (第2步);2 (第2步)设置当前测量区间初始值设置当前测量系统时间为0,网络流存储空间中的流记录数量为n=0,设置当前报文读数为i=0;进入3 (第3步);3 (第3步)判断测量结束时间当前测量器时间是l,小于测量结束时间15等待报文到达测量器, 一个报文A到达测量器,设置 当前报文计数器i的数量增加1,即1=1+1=1,进入到4(第4步);4 (第4步)抽样报文使用抽样比率1/2抽样当前报文A,报文计数器中报文的数量1不等于抽样比率1/2的倒数2时, 则报文A被丢弃,回到5 (第3步);5 (第3步)判断测量结束时间当前测量器时间是2,小于测量结束时间15等待报文到达测量器, 一个报文A到达测量器,设置 当前报文计数器i的数量增加1,即i=i+l=2,进入到6 (第4步);6 (第4步)抽样报文使用抽样比率1/2抽样当前报文A,报文计数器中报文的数量i=2等于抽样比率1/2的倒数2时, 则抽样报文A,并设置当前报文计数器i的值为O,进入到7 (第5步);7 (第5步)更新网络流存储空间信息在网络流存储空间K中査找这个被抽样报文A的网络流a,在网络流存储空间K中没有査找到 被抽样报文A的网络流a,则在网络流存储空间中增加一条记录用于存储网络流a,设置其初始报文 数为抽样概率1/2的倒数2,即K[a] = 2,设置网络流存储空间K中的流记录数量n累加1 ,即n=n+l=l , 进入到8 (第6步);8 (第6步)判断当前测量区间结束当前网络流存储空间K中流的记录数量n=l小于网络流存储空间K的大小N=2,当前测量区间 没有结束,回到9 (第3步);9 (第3步)判断测量结束时间当前测量器时间是3,小于测量结束时间15等待报文到达测量器, 一个报文B到达测量器,设置 当前报文计数器i的数量增加1,即i=i+l=l,进入到10 (第4步);10 (第4步)抽样报文使用抽样比率1/2抽样当前报文B,报文计数器中报文的数量1不等于抽样比率1/2的倒数2时, 则报文B被丢弃,回到ll (第3步);11 (第3步)判断测量结束时间当前测量器时间是4,小于测量结束时间15等待报文到达测量器, 一个报文C到达测量器,设置 当前报文计数器i的数量增加1,即;=1+1=2,进入到12 (第4步);12 (第4步)抽样报文使用抽样比率1/2抽样当前报文C,报文计数器中报文的数量i=2等于抽样比率1/2的倒数2时, 则抽样报文C,并设置当前报文计数器i的值为O,进入到13 (第5步);13 (第5步)更新网络流存储空间信息在网络流存储空间K中查找这个被抽样报文C的网络流c,在网络流存储空间K中没有查找到 被抽样报文C的网络流c,则在网络流存储空间中增加一条记录用于存储网络流c,设置其初始报文 数为抽样概率1/2的倒数2,即K[c] = 2,设置网络流存储空间K中的流记录数量n累加1,即n=n+l=2, 进入到14 (第6步);14 (第6步)判断当前测量区间结束如果当前网络流存储空间K中流的记录数量n=2等于网络流存储空间K的大小N=2,则当前测 量区间结束,记录当前测量区间结束时间为4,将当前网络流存储空间K中的2个网络流记录信息从 内存输出,输出的结果为A2C2进入15 (第7步);15 (第7步)调整下一个测量区间中的抽样参数当前测量区间总共持续时间t为当前测量区间结束时间current—t2=4和当前测量时间区间开始时 间current—tl=0之间的差值,即t=current—t2-current—t 1=4-0=4,测量系统初始期望的测量时间区间为 T=6,当前测量区间中使用的抽样比率为l/m=l/2,则下一个测量时区间内抽样比率1/m的倒数计算公式为m-「(l + (r-0〃).w"^「(l + (6-4)/4).2"^3,回到16 (第2步);16 (第2步)设置当前测量区间初始值设置当前测量系统时间为4,网络流存储空间中的流记录数量为n=0,设置当前报文读数为i=0; 进入17 (第3步);17 (第3步)判断测量结束时间当前测量器时间是5,小于测量结束时间15等待报文到达测量器, 一个报文D到达测量器,设置当前报文计数器i的数量增加1,即i=i+l=l,进入到18 (第4步);18 (第4步)抽样报文使用抽样比率1/3抽样当前报文D,报文计数器中报文的数量1不等于抽样比率1/3的倒数3时, 则报文D被丢弃,回到19 (第3步);19 (第3步)判断测量结束时间当前测量器时间是6,小于测量结束时间15等待报文到达测量器, 一个报文A到达测量器,设置 当前报文计数器i的数量增加1,即i=i+l=2,进入到20 (第4步);20 (第4步)抽样报文使用抽样比率1/3抽样当前报文A,报文计数器中报文的数量2不等于抽样比率1/3的倒数3时, 则报文A被丢弃,回到21 (第3步);21 (第3步)判断测量结束时间当前测量器时间是7,小于测量结束时间15等待报文到达测量器, 一个报文E到达测量器,设置 当前报文计数器i的数量增加1,即1=1+1=3,进入到22 (第4步);22 (第4步)抽样报文使用抽样比率1/3抽样当前报文E,报文计数器中报文的数量3等于抽样比率1/3的倒数3时, 则抽样报文E,并设置当前报文计数器i的值为0,进入到23 (第5步);23 (第5步)更新网络流存储空间信息在网络流存储空间K中査找这个被抽样报文E的网络流e,在网络流存储空间K中没有査找到 被抽样报文E的网络流e,则在网络流存储空间中增加一条记录用于存储网络流e,设置其初始报文 数为抽样概率1/3的倒数3,即K[e] == 3,设置网络流存储空间K中的流记录数量n累加1 ,即n=n+l=l, 进入到24 (第6步);24 (第6步)判断当前测量区间结束当前网络流存储空间K中流的记录数量n-l小于网络流存储空间K的大小N=2,当前测量区间 没有结束,回到25 (第3步);25 (第3步)判断测量结束时间当前测量器时间是8,小于测量结束时间15等待报文到达测量器, 一个报文F到达测量器,设置 当前报文计数器i的数量增加1,即i=i+l=l,进入到26 (第4步);26 (第4步)抽样报文使用抽样比率1/3抽样当前报文F,报文计数器中报文的数量1不等于抽样比率1/3的倒数3时, 则报文F被丢弃,回到27 (第3步);27 (第3步)判断测量结束时间当前测量器时间是9,小于测量结束时间15等待报文到达测量器, 一个报文B到达测量器,设置 当前报文计数器i的数量增加1,即1=1+1=2,进入到28 (第4步);28 (第4步)抽样报文使用抽样比率1/3抽样当前报文B,报文计数器中报文的数量2不等于抽样比率1/3的倒数3时, 则报文B被丢弃,回到29 (第3步)29 (第3步)判断测量结束时间当前测量器时间是0,小于测量结束时间15等待报文到达测量器, 一个报文E到达测量器,设 置当前报文计数器i的数量增加1,即i=i+l=3,进入到30 (第4步);30 (第4步)抽样报文使用抽样比率1/3抽样当前报文E,报文计数器中报文的数量3等于抽样比率1/3的倒数3时, 则抽样报文E,并设置当前报文计数器i的值为O,进入到31 (第5步);31 (第5步)更新网络流存储空间信息在网络流存储空间K中査找这个被抽样报文E的网络流e,在网络流存储空间K中査找到被抽 样报文E的网络流e,将该网络流a的报文数K[e]累加抽样概率1/3的倒数3,即K[e] = K[e]+3=6, 回到32 (第3步);32 (第3步)判断测量结束时间当前测量器时间是ll,小于测量结束时间15等待报文到达测量器, 一个报文C到达测量器,设 置当前报文计数器i的数量增加1,即i=i+l=l ,进入到33 (第4步);33 (第4步)抽样报文使用抽样比率1/3抽样当前报文C,报文计数器中报文的数量1不等于抽样比率1/3的倒数3时, 则报文C被丢弃,回到34 (第3步);34 (第3步)判断测量结束时间当前测量器时间是12,小于测量结束时间15等待报文到达测量器, 一个报文E到达测量器,设 置当前报文计数器i的数量增加1,即1=1+1=2,进入到35 (第4步);35 (第4步)抽样报文使用抽样比率1/3抽样当前报文E,报文计数器中报文的数量2不等于抽样比率1/3的倒数3时, 则报文E被丢弃,回到36 (第3步);36 (第3步)判断测量结束时间当前测量器时间是13,小于测量结束时间15等待报文到达测量器, 一个报文F到达测量器,设 置当前报文计数器i的数量增加1,即;=1+1=3,进入到37 (第4步);37 (第4步)抽样报文使用抽样比率1/3抽样当前报文F,报文计数器中报文的数量3等于抽样比率1/3的倒数3时, 则抽样报文F,并设置当前报文计数器i的值为0,进入到38 (第5步);38 (第5步)更新网络流存储空间信息在网络流存储空间K中査找这个被抽样报文F的网络流f,在网络流存储空间K中没有查找到被 抽样报文F的网络流f,则在网络流存储空间中增加一条记录用于存储网络流f,设置其初始报文数为 抽样概率l/3的倒数3,即K[f]:3,设置网络流存储空间K中的流记录数量n累加1,即n=n+l=2, 进入到39 (第6步);39 (第6步)判断当前测量区间结束如果当前网络流存储空间K中流的记录数量n=2等于网络流存储空间K的大小N=2,则当前测 量区间结束,记录当前测量区间结束时间为13,将当前网络流存储空间K中的2个网络流记录信息 从内存输出,输出的结果为E6F3进入40 (第7步);40 (第7步)调整下一个测量区间中的抽样参数当前测量区间总共持续时间t为当前测量区间结束时间current—12=13和当前测量时间区间开始时 间current—tl-4之间的差值,即t=current—t2-current—tl=l3-4=9,测量系统初始期望的测量时间区间为 T=6,当前测量区间中使用的抽样比率为l/m=l/3,则下一个测量时区间内抽样比率1/m的倒数计算公式为w^「(l + (r —0〃).w"|=「(l + (6 —9)/9)'2]=2,回到41 (第2步);41 (第2步)设置当前测量区间初始值设置当前测量系统时间为13,网络流存储空间中的流记录数量为n-O,设置当前报文读数为ii; 进入42 (第3步);42 (第3步)判断测量结束时间当前测量器时间是14,小于测量结束时间15等待报文到达测量器, 一个报文A到达测量器,设 置当前报文计数器i的数量增加1,即1—+1=1,进入到43 (第4步);43 (第4步)抽样报文使用抽样比率1/2抽样当前报文A,报文计数器中报文的数量1不等于抽样比率1/2的倒数2时, 则报文A被丢弃,回到44(第3步);44 (第3步)判断测量结束时间当前测量器时间是15,等于测量结束时间15等待报文到达测量器, 一个报文H到达测量器,设 置当前报文计数器i的数量增加1,即i=i+l=2,进入到44 (第4步);44 (第4步)抽样报文使用抽样比率1/2抽样当前报文H,报文计数器中报文的数量2等于抽样比率1/2的倒数2时, 则抽样报文H,并设置当前报文计数器i的值为0,进入到45 (第5步);45 (第5步)更新网络流存储空间信息在网络流存储空间K中查找这个被抽样报文H的网络流h,在网络流存储空间K中没有査找到 被抽样报文H的网络流h,则在网络流存储空间中增加一条记录用于存储网络流h,设置其初始报文 数为抽样概率1/2的倒数2,即K[h] = 2,设置网络流存储空间K中的流记录数量n累加1 ,即n=n+l=l, 进入到46 (第6步); 46(第6步)判断当前测量区间结束如果当前网络流存储空间K中流的记录数量1小于网络流存储空间K的大小2,则当前测量区间 没有结束,回到47 (第3步); 47 (第3步)判断测量结束时间当前测量系统时间16大于测量结束时间15,则将网络流存储空间中的流记录全部输出,H 2 测量结束。在这个例子中,测量系统输出的结果为-A 2C 2E 6F 3H 2 。
权利要求
1.基于固定存储空间的网络流实时自适应测量方法,其特征是设定一个期望测量区间持续时间、网络流存储空间和抽样测量参数,期望测量区间持续时间用于作为抽样测量参数调整的指标,网络流存储空间大小作为当前测量区间结束的依据,抽样测量参数是控制测量资源和网络流量之间的关系,具体过程是在测量过程中设定一个固定网络流存储空间作为一个测量循环结束的依据,如果网络流存储空间满了,则当前测量区间结束,输出所有的流量记录信息估计值;根据当前测量区间的时间间隔、期望测量区间持续时间和当前的抽样测量参数计算下一个测量区间内的抽样测量参数。
2. 根据权利要求1所述基于固定存储空间的网络流实时自适应测量方法,其特征是具体技术步 骤如下第l步设置参数设置期望测量时间区间T,测量抽样比率为l/m,网络流存储空间K的大小为N,测量结束时间End;第2步设置当前测量区间初始值设置当前测量系统时间为Current—tl,网络流存储空间中的流记录数量为n=0,设置当前报文读数为i=0;第3步判断测量结束时间如果当前测量系统时间大于测量结束时间End,则将网络流存储空间中的流记录全部输出,测量 结束;否则等待报文到达测量器,如果一个报文A到达测量器,设置当前报文计数器i的数量增加1, 即1=1+1,进入到第4步; 第4步抽样报文使用抽样比率1/m抽样当前报文A,即如果报文计数器中报文的数量i等于抽样比率1/m的倒数 m时,则抽样报文A,并设置当前报文计数器i的值为O,进入到第5步;如果报文计数器中报文的 数量i小于抽样比率1/m的倒数m时,则报文A被丢弃,回到第3步; 第5步更新网络流存储空间信息在网络流存储空间K中査找这个被抽样报文A的网络流a,如果网络流存储空间中查找到该网络 流a,则将该网络流a的报文数K[a]累加抽样概率l/m的倒数m,即K[a] = K[a]+m,回到第3步;如 果在网络流存储空间K中没有查找到被抽样报文A的网络流a,则在网络流存储空间中增加一条记录 用于存储网络流a,设置其初始报文数为抽样概率l/m的倒数m,即K[a]-m,设置网络流存储空间 K中的流记录数量n累加1,即11=11+1,进入到第6步; 第6步判断当前测量区间结束如果当前网络流存储空间K中流的记录数量n等于网络流存储空间K的大小为N,则当前测量 区间结束,记录当前测量区间结束时间为currentj2,将当前网络流存储空间K中的N个网络流记录 信息从内存输出,进入第7步;否则当前测量区间没有结束,回到第3步; 第7步调整下一个测量区间中的抽样参数当前测量区间总共持续时间t为当前测量区间结束时间current一t2和当前测量时间区间开始时间 current—tl之间的差值,艮P t=current—t2-current—tl ,测量系统初始期望的测量时间区间为T,当前测量区间中使用的抽样比率为l/m,则下一个测量时区间内抽样比率1/m的倒数计算公式为m = 「(i + (r—「(i + (r— )〃).附"i表示大于(i + (r—f)〃).附的最小正整数,回到第2步。
全文摘要
一种基于固定存储空间的网络流实时自适应测量方法,设定一个期望测量区间持续时间、网络流存储空间和抽样测量参数,在测量过程中设定一个固定网络流存储空间大小阀值作为一个测量循环结束的依据,如果存储空间网络流流数超过阀值,则当前测量区间结束,输出所有的流量记录信息估计值;根据当前测量区间的时间间隔、期望测量区间持续时间和当前的抽样测量参数计算下一个测量区间内的抽样测量参数。本方法节省自适应过程中测量资源的消耗和保留网络流量信息的精度;在不同测量区间内使用不同的抽样参数的测量结果可以直接进行相互比较和计算。
文档编号H04L12/56GK101257415SQ20081001927
公开日2008年9月3日 申请日期2008年1月18日 优先权日2008年1月18日
发明者伟 丁, 史海涛, 桦 吴, 江洁欣, 光 程, 俭 龚 申请人:东南大学