面向混合可编程网络环境的协同网络测量方法及系统转让专利

申请号 : CN202011083581.1

文献号 : CN112202644B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 文梅时洋费佳伟张春元

申请人 : 中国人民解放军国防科技大学

摘要 :

本发明公开了一种面向混合可编程网络环境的协同网络测量方法及系统,本发明包括根据可编程网络设备发送计数值或不可编程网络设备发送报文副本来判断目标流是否为潜在大流,获取目标流可能经过的路径并从可编程网络设备中拉取目标流的计数值;针对每一条目标流可能经过的路径,将可编程网络设备拉取的计数值、不可编程网络设备发送目标流的报文副本的计数值中的最大值作为计数值;将目标流所有路径的计数值求和得到总计数值,若总计数值超过全局大流阈值则上报全局大流。本发明能够实现混合可编程网络中大流的高效检测,并做到资源占用少,运行速度快,可采用参数化的限定方法,以满足不同网络管理人员的不同资源与性能需求。

权利要求 :

1.一种面向混合可编程网络环境的协同网络测量方法,所述混合可编程网络环境包括中央控制端、一个或多个可编程网络设备以及一个或多个不可编程网络设备,其特征在于,包括中央控制端的下述执行步骤:

1)根据某个可编程网络设备发送目标流的计数值或不可编程网络设备基于采样率P发送目标流的报文副本来判断目标流是否为潜在大流,若判定为潜在大流,则跳转执行下一步;

2)查询路由表,获取目标流可能经过的路径,并从每一条路径中的可编程网络设备中拉取针对目标流的计数值;

3)针对每一条目标流可能经过的路径,从该路径对应的各个可编程网络设备拉取的目标流的计数值、各个不可编程网络设备发送目标流的报文副本的计数值中的最大值作为目标流该路径中的计数值;

4)将所有目标流可能经过的路径的计数值求和得到目标流的总计数值;

5)判断目标流的总计数值是否超过预设的全局大流阈值,若超过预设的全局大流阈值,则上报发现全局大流;

步骤1)之前还包括初始化设置各个不可编程网络设备的采样率P的下述步骤:B1)初始化设置总采样开销为最大采样开销C,初始化设置最小采样率为S,对混合可编程网络环境中的网络内所有的链路进行统计,统计经过每个链路的没有被可编程设备覆盖的网络路径的计数数目,将计数数目为0的链路剔除掉;

B2)基于计数数目按大到小的顺序对于这些剩下的链路进行排序,得带链路列表,初始化设置链路列表中各个链路的采样率P为0;

B3)计数数目按大到小的顺序从链路列表中取出一个链路作为当前链路;

B4)为当前链路分配最小采样率为S,使得当前链路的采样率P为原值与分配的最小采样率为S之和,并根据当前链路的采样率P计算当前链路的采样开销,当前链路的采样开销为当前链路的采样率P乘以当前链路的物理带宽,将总采样开销扣除当前链路的采样开销;

B5)判断尚未到达链路列表的尾端、且总采样开销大于0是否成立,若成立则跳转执行步骤B3);否则将各条链路的采样率P作为该链路上各不可编程网络设备的采样率P。

2.根据权利要求1所述的面向混合可编程网络环境的协同网络测量方法,其特征在于,步骤1)中根据某个可编程网络设备发送目标流的计数值或不可编程网络设备发送目标流的报文副本来判断目标流是否为潜在大流的步骤包括:若收到可编程网络设备发送目标流的计数值,则直接判定目标流为潜在大流;若收到不可编程网络设备发送目标流的报文副本,则根据收到的报文副本对目标流进行计数更新采样计数值,并将更新后的采样计数值乘以该不可编程网络设备对应的采样率P得到计数值,若计数值超过预设的潜在大流阈值则判定目标流为潜在大流,否则判定目标流非潜在大流。

3.根据权利要求1所述的面向混合可编程网络环境的协同网络测量方法,其特征在于,所述可编程网络设备包含一个由d×w的矩阵组成统计数据结构并每一个附带一个hash函数,某个可编程网络设备发送目标流的计数值的步骤包括:该可编程网络设备等待某一个流的报文进入,当有某一个流的报文进入后,该可编程网络设备将这个流的标识与每一个hash函数计算出d个独立的索引,然后把这些索引值当做坐标,对应统计数据结构中的每一行在对应的位置计数加一或这个报文的字节数完成计数值更新,若更新后的计数值达到预设的潜在大流阈值,则可编程网络设备就将这个流的标识与计数值上报到中央控制端。

4.根据权利要求1所述的面向混合可编程网络环境的协同网络测量方法,其特征在于,步骤1)中不可编程网络设备发送目标流的报文副本的步骤包括:该不可编程网络设备等待某一个流的报文进入,当有某一个流的报文进入后,该不可编程网络设备基于预设的采样率P选择是否对该报文进行采样,若该报文未被选中则不作操作,否则发送一个这个报文的报文副本至中央控制端,原报文保持它的传输不变。

5.根据权利要求1所述的面向混合可编程网络环境的协同网络测量方法,其特征在于,步骤5)之后还包括调节全局大流阈值的步骤:若指定长度的时间内上报发现全局大流的次数少于设定下限门槛值,则调低全局大流阈值;若指定长度的时间内上报发现全局大流的次数大于设定上限门槛值,则调高全局大流阈值。

6.根据权利要求1所述的面向混合可编程网络环境的协同网络测量方法,其特征在于,步骤1)之前还包括确定可编程网络设备的部署位置并部署可编程网络设备的步骤:A1)对混合可编程网络环境中的网络节点进行顺序编号,根据路由规则确定混合可编程网络环境中任意源节点A与目的节点B之间的可行的路径数目以及每条路径经过的网络节点信息,每一条路径中使用0或者1来标记是否经过某个网络节点,将所有路径的0、1表示排列成一个矩阵,得到任意源节点A与目的节点B之间的网络路由路径表;

A2)根据可用的可编程网络设备数量,在混合可编程网络环境中根据覆盖最多网络路径的目标,确定各个可编程网络设备的部署位置;

A3)根据确定的各个可编程网络设备的部署位置部署可编程网络设备。

7.根据权利要求1所述的面向混合可编程网络环境的协同网络测量方法,其特征在于,步骤5)之后还包括基于指定大小的检测窗进行流量预测的步骤:统计当前检测窗内上报的全局大流的数量,根据全局大流的数量和全局大流阈值计算得到当前检测窗的检测流量v2,通过v=(1‑α)v1+αv2计算下一检测窗内的预测流量v,其中v1为上一检测窗的检测流量,α为衰减系数。

8.根据权利要求7所述的面向混合可编程网络环境的协同网络测量方法,其特征在于,所述基于指定大小的检测窗进行流量预测的步骤之后还包括动态调节各个不可编程网络设备的采样率P的步骤:

C1)初始化设置总采样开销为最大采样开销C,初始化设置最小采样率为S,对混合可编程网络环境中的网络内所有的链路进行统计,统计经过每个链路的没有被可编程设备覆盖的全局大流的计数数目,将计数数目为0的链路剔除掉;对于某个预测全局大流是否经过某条链路的判定依据是这个链路是否出现在这个大流的可能路由路径上,若出现则判定为经过;反之则判定为不经过;

C2)基于计数数目按大到小的顺序对于这些剩下的链路进行排序,得带链路列表,初始化设置链路列表中各个链路的采样率P为0;

C3)计数数目按大到小的顺序从链路列表中取出一个链路作为当前链路;

C4)为当前链路分配最小采样率为S,使得当前链路的采样率P为原值与分配的最小采样率为S之和,并根据当前链路的采样率P计算当前链路的采样开销,当前链路的采样开销为当前链路的采样率P乘以当前检测窗的检测流量v2,将总采样开销扣除当前链路的采样开销;

C5)判断尚未到达链路列表的尾端、且总采样开销大于0是否成立,若成立则跳转执行步骤C3);否则将各条链路的采样率P作为该链路上各不可编程网络设备的采样率P。

9.一种面向混合可编程网络环境的协同网络测量系统,包括相互连接的微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~8中任意一项所述面向混合可编程网络环境的协同网络测量方法的步骤,或该存储器中存储有被编程或配置以执行权利要求1~8中任意一项所述面向混合可编程网络环境的协同网络测量方法的计算机程序。

说明书 :

面向混合可编程网络环境的协同网络测量方法及系统

技术领域

[0001] 本发明涉及网络流量测量技术,具体涉及一种面向混合可编程网络环境的协同网络测量方法及系统。

背景技术

[0002] 当某一个流的总字节数或者报文数目超过一定的阈值之后,就被认为是一个大流。及时准确的检测大流是进行有效的流量工程、路由规划以及异常检测等网络任务的必
备条件。伴随着新型可编程网络设备的不断推出,研究人员基于这种新的设备设计了不同
的大流检测算法。但是,在实际网络环境中,由于多种原因,通常不能将所有的网络设备一
次升级替换为可编程设备,更加通用的升级方法是增量升级。这种升级方法就会形成一个
由可编程与不可编程网络设备组成的混合可编程网络环境。在这种混合可编程网络环境
下,如何完成大流的有效监测仍然是一个亟待解决的关键技术问题。

发明内容

[0003] 本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向混合可编程网络环境的协同网络测量方法及系统,本发明能够实现混合可编程网络中大流的高效检
测,并做到资源占用少,运行速度快,可采用参数化的限定方法,以满足不同网络管理人员
的不同资源与性能需求。
[0004] 为了解决上述技术问题,本发明采用的技术方案为:
[0005] 一种面向混合可编程网络环境的协同网络测量方法,所述混合可编程网络环境包括中央控制端、一个或多个可编程网络设备以及一个或多个不可编程网络设备,包括中央
控制端的下述执行步骤:
[0006] 1)根据某个可编程网络设备发送目标流的计数值或不可编程网络设备基于采样率P发送目标流的报文副本来判断目标流是否为潜在大流,若判定为潜在大流,则跳转执行
下一步;
[0007] 2)查询路由表,获取目标流可能经过的路径,并从每一条路径中的可编程网络设备中拉取针对目标流的计数值;
[0008] 3)针对每一条目标流可能经过的路径,从该路径对应的各个可编程网络设备拉取的目标流的计数值、各个不可编程网络设备发送目标流的报文副本的计数值中的最大值作
为目标流该路径中的计数值;
[0009] 4)将所有目标流可能经过的路径的计数值求和得到目标流的总计数值;
[0010] 5)判断目标流的总计数值是否超过预设的全局大流阈值,若超过预设的全局大流阈值,则上报发现全局大流。
[0011] 可选地,步骤1)中根据某个可编程网络设备发送目标流的计数值或不可编程网络设备发送目标流的报文副本来判断目标流是否为潜在大流的步骤包括:若收到可编程网络
设备发送目标流的计数值,则直接判定目标流为潜在大流;若收到不可编程网络设备发送
目标流的报文副本,则根据收到的报文副本对目标流进行计数更新采样计数值,并将更新
后的采样计数值乘以该不可编程网络设备对应的采样率P得到计数值,若计数值超过预设
的潜在大流阈值则判定目标流为潜在大流,否则判定目标流非潜在大流。
[0012] 可选地,所述可编程网络设备包含一个由d×w的矩阵组成统计数据结构并每一个附带一个hash函数,某个可编程网络设备发送目标流的计数值的步骤包括:该可编程网络
设备等待某一个流的报文进入,当有某一个流的报文进入后,该可编程网络设备将这个流
的标识与每一个hash函数计算出d个独立的索引,然后把这些索引值当做坐标,对应统计数
据结构中的每一行在对应的位置计数加一或这个报文的字节数完成计数值更新,若更新后
的计数值达到预设的潜在大流阈值,则可编程网络设备就将这个流的标识与计数值上报到
中央控制端。
[0013] 可选地,步骤1)中不可编程网络设备发送目标流的报文副本的步骤包括:该不可编程网络设备等待某一个流的报文进入,当有某一个流的报文进入后,该不可编程网络设
备基于预设的采样率P选择是否对该报文进行采样,若该报文未被选中则不作操作,否则发
送一个这个报文的报文副本至中央控制端,原报文保持它的传输不变。
[0014] 可选地,步骤5)之后还包括调节全局大流阈值的步骤:若指定长度的时间内上报发现全局大流的次数少于设定下限门槛值,则调低全局大流阈值;若指定长度的时间内上
报发现全局大流的次数大于设定上限门槛值,则调高全局大流阈值。
[0015] 可选地,步骤1)之前还包括确定可编程网络设备的部署位置并部署可编程网络设备的步骤:
[0016] A1)对混合可编程网络环境中的网络节点进行顺序编号,根据路由规则确定混合可编程网络环境中任意源节点A与目的节点B之间的可行的路径数目以及每条路径经过的
网络节点信息,每一条路径中使用0或者1来标记是否经过某个网络节点,将所有路径的0、1
表示排列成一个矩阵,得到任意源节点A与目的节点B之间的网络路由路径表;
[0017] A2)根据可用的可编程网络设备数量,在混合可编程网络环境中根据覆盖最多网络路径的目标,确定各个可编程网络设备的部署位置;
[0018] A3)根据确定的各个可编程网络设备的部署位置部署可编程网络设备。
[0019] 可选地,步骤1)之前还包括初始化设置各个不可编程网络设备的采样率P的下述步骤:
[0020] B1)初始化设置总采样开销为最大采样开销C,初始化设置最小采样率为S,对混合可编程网络环境中的网络内所有的链路进行统计,统计经过每个链路的没有被可编程设备
覆盖的网络路径的计数数目,将计数数目为0的链路剔除掉;
[0021] B2)基于计数数目按大到小的顺序对于这些剩下的链路进行排序,得带链路列表,初始化设置链路列表中各个链路的采样率P为0;
[0022] B3)计数数目按大到小的顺序从链路列表中取出一个链路作为当前链路;
[0023] B4)为当前链路分配最小采样率为S,使得当前链路的采样率P为原值与分配的最小采样率为S之和,并根据当前链路的采样率P计算当前链路的采样开销,当前链路的采样
开销为当前链路的采样率P乘以当前链路的物理带宽,将总采样开销扣除当前链路的采样
开销;
[0024] B5)判断尚未到达链路列表的尾端、且总采样开销大于0是否成立,若成立则跳转执行步骤B3);否则将各条链路的采样率P作为该链路上各不可编程网络设备的采样率P。
[0025] 可选地,步骤5)之后还包括基于指定大小的检测窗进行流量预测的步骤:统计当前检测窗内上报的全局大流的数量,根据全局大流的数量和全局大流阈值计算得到当前检
测窗的检测流量v2,通过v=(1‑α)v1+αv2计算下一检测窗内的预测流量v,其中v1为上一检
测窗的检测流量,α为衰减系数。
[0026] 可选地,所述基于指定大小的检测窗进行流量预测的步骤之后还包括动态调节各个不可编程网络设备的采样率P的步骤:
[0027] C1)初始化设置总采样开销为最大采样开销C,初始化设置最小采样率为S,对混合可编程网络环境中的网络内所有的链路进行统计,统计经过每个链路的没有被可编程设备
覆盖的全局大流的计数数目,将计数数目为0的链路剔除掉;对于某个预测全局大流是否经
过某条链路的判定依据是这个链路是否出现在这个大流的可能路由路径上,若出现则判定
为经过;反之则判定为不经过;
[0028] C2)基于计数数目按大到小的顺序对于这些剩下的链路进行排序,得带链路列表,初始化设置链路列表中各个链路的采样率P为0;
[0029] C3)计数数目按大到小的顺序从链路列表中取出一个链路作为当前链路;
[0030] C4)为当前链路分配最小采样率为S,使得当前链路的采样率P为原值与分配的最小采样率为S之和,并根据当前链路的采样率P计算当前链路的采样开销,当前链路的采样
开销为当前链路的采样率P乘以当前检测窗的检测流量v2,将总采样开销扣除当前链路的
采样开销;
[0031] C5)判断尚未到达链路列表的尾端、且总采样开销大于0是否成立,若成立则跳转执行步骤C3);否则将各条链路的采样率P作为该链路上各不可编程网络设备的采样率P。
[0032] 此外,本发明还提供一种面向混合可编程网络环境的协同网络测量系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述面向混合可编程网络环
境的协同网络测量方法的步骤,或该存储器中存储有被编程或配置以执行所述面向混合可
编程网络环境的协同网络测量方法的计算机程序。
[0033] 和现有技术相比,本发明具有下述优点;
[0034] 1、本发明能够实现混合可编程网络中大流的高效检测,并做到资源占用少,运行速度快,可采用参数化的限定方法,以满足不同网络管理人员的不同资源与性能需求;
[0035] 2、本发明可有效利用不同网络设备的测量能力,使得不同的异构设备(可编程网络设备、不可编程网络设备)协同工作,并且对于其它的网络测量任务有启发意义。

附图说明

[0036] 图1为本发明实施例中混合可编程网络环境的示例。
[0037] 图2为本发明实施例中的中央控制端的执行步骤的流程图。
[0038] 图3为本发明实施例中可编程网络设备的统计数据结构示意图。
[0039] 图4为本发明实施例中不可编程网络设备的执行流程图。
[0040] 图5为本发明实施例中的中央控制端的工作流程图。
[0041] 图6为本发明实施例中的网络拓扑结构示例。
[0042] 图7为本发明实施例中的分配采样率的流程示意图。

具体实施方式

[0043] 本发明面向混合可编程网络环境的协同网络测量方法中,混合可编程网络环境包括中央控制端、一个或多个可编程网络设备以及一个或多个不可编程网络设备。图1所示为
实施例中混合可编程网络环境的示例,其中中央控制端负责数据收集、策略分发等控制性
的工作,可编程网络设备负责收集通过可编程设备的网络流量数据,不可编程网络设备与
可编程网络设备协同工作,补足前者没有收集的网络流量信息。
[0044] 如图2所示,本实施例方法包括中央控制端的下述执行步骤:
[0045] 1)根据某个可编程网络设备发送目标流的计数值或不可编程网络设备基于采样率P发送目标流的报文副本来判断目标流是否为潜在大流,若判定为潜在大流,则跳转执行
下一步;
[0046] 2)查询路由表,获取目标流可能经过的路径,并从每一条路径中的可编程网络设备中拉取针对目标流的计数值;
[0047] 3)针对每一条目标流可能经过的路径(可能为一条或多条),从该路径对应的各个可编程网络设备拉取的目标流的计数值、各个不可编程网络设备发送目标流的报文副本的
计数值中的最大值作为目标流该路径中的计数值;
[0048] 4)将所有目标流可能经过的路径的计数值求和得到目标流的总计数值;
[0049] 5)判断目标流的总计数值是否超过预设的全局大流阈值,若超过预设的全局大流阈值,则上报发现全局大流。
[0050] 本实施例中,步骤1)中根据某个可编程网络设备发送目标流的计数值或不可编程网络设备发送目标流的报文副本来判断目标流是否为潜在大流的步骤包括:若收到可编程
网络设备发送目标流的计数值,则直接判定目标流为潜在大流;若收到不可编程网络设备
发送目标流的报文副本,则根据收到的报文副本对目标流进行计数更新采样计数值,并将
更新后的采样计数值乘以该不可编程网络设备对应的采样率P得到计数值,若计数值超过
预设的潜在大流阈值则判定目标流为潜在大流,否则判定目标流非潜在大流。参见步骤1可
知,判断目标流是否为潜在大流的数据来源有两种,包括:某个可编程网络设备发送目标流
的计数值或不可编程网络设备基于采样率P发送目标流的报文副本。(a)对于可编程设备,
如前文对于可编程设备的介绍,当发现某个流的计数达到了阈值,就会把这个流以及对应
的计数值上报中央控制模块,这个流就是一个潜在大流;(b)对于不可编程设备模块,它们
通过采样来进行网络测量。因此,中央控制模块每收到某个链路对于某个流的采样报文,就
将这个流的计数加一(或增加报文大小)。而这个流的预期数目等于这个计数值除以这个链
路上的采样率。如果这个预期的真实值达到了潜在大流阈值,那么这个流就是一个潜在大
流。
[0051] 作为一种可选的实施方式,步骤2)查询路由表具体是指根据步骤1)收到某个可编程网络设备发送目标流的计数值或不可编程网络设备基于采样率P发送目标流的报文副本
所携带的源节点与目的节点,查询查询路由表,获得这一节点对之间的可能路径(1条或多
条),从而得到目标流可能经过的路径。
[0052] 步骤3)从该路径对应的各个可编程网络设备拉取的目标流的计数值时,发送一个查询去获取这个潜在大流在这些设备上的计数值。这个计数值作为这个潜在大流在这个可
编程设备上的测量值。各个不可编程网络设备发送目标流的报文副本的计数值则为中央控
制端本地保存的结果,可直接读取。
[0053] 步骤4)用于依据所有可能路径上的测量数据,综合确定这个潜在大流的计数。这里,对于每一条可能路径,我们的测量数据包括两部分,一部分是不可编程设备发送的采样
测量值,一部分是可编程设备上查询到的测量值。由于这些测量值都是针对同一链路,我们
取这些值中的最大值来作为这个可能链路的测量值。然后,由于对于这个潜在大流可能有
多条路径,我们将每个路径的测量值求和,作为这个潜在大流的总计数值。
[0054] 步骤5)判断目标流的总计数值是否超过预设的全局大流阈值,若超过预设的全局大流阈值,则上报发现全局大流,否则判定目标流不是全局大流。
[0055] 如图3所示,本实施例中可编程网络设备包含一个由d×w的矩阵组成统计数据结构并每一个附带一个hash函数,某个可编程网络设备发送目标流的计数值的步骤包括:该
可编程网络设备等待某一个流的报文进入,当有某一个流的报文(Packet)进入后,该可编
程网络设备将这个流的标识与每一个hash函数计算出d个独立的索引,然后把这些索引值
当做坐标,对应统计数据结构中的每一行在对应的位置计数加一或这个报文的字节数完成
计数值更新,若更新后的计数值达到预设的潜在大流阈值,则可编程网络设备就将这个流
的标识与计数值上报到中央控制端。本实施例中,流的标识采用源地址、目的地址、源端口、
目的端口、网络协议构成的五元组,此外也可以采用他类似的标识。本实施例中可编程网络
设备利用sketch算法实现网络流量统计的功能,每当有某一个流的报文进入可编程网络设
备,就利用这个流的标识(可以但不限于是五元组。即源地址、目的地址、源端口、目的端口、
网络协议)与每一个hash函数计算出d个独立的索引。然后把这些索引值当做坐标,对应矩
阵中的每一行,在对应的位置计数加一。这样就完成了这个流的这个报文的计数工作。当
然,如果大流的统计标准是字节数目,那么每一个位置上就需要加上这个报文的字节数目。
所以,sketch是一种占用存储资源很少的统计结构。然后,如果某一个流的某一个报文在一
次计数中,发现这些对应索引位置的计数达到了判定为大流的阈值,那么这个可编程网络
设备就将这个流的标识与具体的计数封装为一个新的报文,上报到中央控制端。
[0056] 如图4所示,本实施例步骤1)中不可编程网络设备发送目标流的报文副本的步骤包括:该不可编程网络设备等待某一个流的报文进入,当有某一个流的报文进入后,该不可
编程网络设备基于预设的采样率P选择是否对该报文进行采样,若该报文未被选中则不作
操作,否则发送一个这个报文的报文副本至中央控制端,原报文保持它的传输不变。采样工
具可以使用广泛被业界采用的sFlow或者NetFlow等标准采样工具。如果当前链路的采样率
为P,那么每一个由此链路进入不可编程设备的报文就有采样率P的概率被采样。当某一个
报文被采样的时候,就会发送一个这个报文的副本至中央控制模块,原报文保持它的传输
不变,这样不会影响网络的原始功能;如果这个报文没有被采样,那么就不会有副本产生与
发送。在每个测量周期的开始,不可编程设备就会接收中央控制模块的设定采样率,来对应
配置自己每一条链路上的采样率,这个配置过程可以通过网络管理员利用采样工具的标准
接口来实现。
[0057] 本实施例中,步骤1)之前还包括确定可编程网络设备的部署位置并部署可编程网络设备的步骤:
[0058] A1)对混合可编程网络环境中的网络节点进行顺序编号,根据路由规则确定混合可编程网络环境中任意源节点A与目的节点B之间的可行的路径数目以及每条路径经过的
网络节点信息,每一条路径中使用0或者1来标记是否经过某个网络节点,将所有路径的0、1
表示排列成一个矩阵,得到任意源节点A与目的节点B之间的网络路由路径表;
[0059] A2)根据可用的可编程网络设备数量,在混合可编程网络环境中根据覆盖最多网络路径的目标,确定各个可编程网络设备的部署位置;
[0060] A3)根据确定的各个可编程网络设备的部署位置部署可编程网络设备。
[0061] 本实施例中,步骤1)之前还包括初始化设置各个不可编程网络设备的采样率P的下述步骤:
[0062] B1)初始化设置总采样开销为最大采样开销C,初始化设置最小采样率为S,对混合可编程网络环境中的网络内所有的链路进行统计,统计经过每个链路的没有被可编程设备
覆盖的网络路径的计数数目,将计数数目为0的链路剔除掉;
[0063] B2)基于计数数目按大到小的顺序对于这些剩下的链路进行排序,得带链路列表,初始化设置链路列表中各个链路的采样率P为0;
[0064] B3)计数数目按大到小的顺序从链路列表中取出一个链路作为当前链路;
[0065] B4)为当前链路分配最小采样率为S,使得当前链路的采样率P为原值与分配的最小采样率为S之和,并根据当前链路的采样率P计算当前链路的采样开销,当前链路的采样
开销为当前链路的采样率P乘以当前链路的物理带宽,将总采样开销扣除当前链路的采样
开销;
[0066] B5)判断尚未到达链路列表的尾端、且总采样开销大于0是否成立,若成立则跳转执行步骤B3);否则将各条链路的采样率P作为该链路上各不可编程网络设备的采样率P。
[0067] 本实施例中,步骤5)之后还包括基于指定大小的检测窗进行流量预测的步骤:统计当前检测窗内上报的全局大流的数量,根据全局大流的数量和全局大流阈值计算得到当
前检测窗的检测流量v2,通过v=(1‑α)v1+αv2计算下一检测窗内的预测流量v,其中v1为上
一检测窗的检测流量,α为衰减系数。本实施例基于指定大小的检测窗进行流量预测采用对
于历史信息加权平均的方法来进行预测,衰减系数α(权重系数)采用0.7,这样可以将上一
检测窗的检测流量v1的权重调整为0.3,而当前检测窗的检测流量v2的权重为0.7,从而更
准确的预测下一检测窗内的预测流量v。对于大流的预测完全一致,也采用两个周期的历史
信息来对下一周期的数据进行预测。通过这个预测,我们可以对下一测量窗口的流量与大
流情况有个大致的预期,并且用来指导我们调整链路的采样率以适应动态的网络流量变
化。
[0068] 本实施例中,步骤5)之后还包括调节全局大流阈值的步骤:若指定长度的时间内上报发现全局大流的次数少于设定下限门槛值,则调低全局大流阈值;若指定长度的时间
内上报发现全局大流的次数大于设定上限门槛值,则调高全局大流阈值。采用上述手段,原
因是当我们发现大流过少时,可能原因是因为我们设置的全局大流阈值过高,这是可以相
对应的将大流阈值调低一些;同理,当发现大流上报过于频繁的时候,可以将大流的阈值适
当调高来提升大流检测的质量,通过上述调节全局大流阈值的步骤,可实现全局大流判断
准确性的自适应性调整。
[0069] 本实施例中,基于指定大小的检测窗进行流量预测的步骤之后还包括动态调节各个不可编程网络设备的采样率P的步骤:
[0070] C1)初始化设置总采样开销为最大采样开销C,初始化设置最小采样率为S,对混合可编程网络环境中的网络内所有的链路进行统计,统计经过每个链路的没有被可编程设备
覆盖的全局大流的计数数目,将计数数目为0的链路剔除掉;对于某个预测全局大流是否经
过某条链路的判定依据是这个链路是否出现在这个大流的可能路由路径上,若出现则判定
为经过;反之则判定为不经过;
[0071] C2)基于计数数目按大到小的顺序对于这些剩下的链路进行排序,得带链路列表,初始化设置链路列表中各个链路的采样率P为0;
[0072] C3)计数数目按大到小的顺序从链路列表中取出一个链路作为当前链路;
[0073] C4)为当前链路分配最小采样率为S,使得当前链路的采样率P为原值与分配的最小采样率为S之和,并根据当前链路的采样率P计算当前链路的采样开销,当前链路的采样
开销为当前链路的采样率P乘以当前检测窗的检测流量v2,将总采样开销扣除当前链路的
采样开销;
[0074] C5)判断尚未到达链路列表的尾端、且总采样开销大于0是否成立,若成立则跳转执行步骤C3);否则将各条链路的采样率P作为该链路上各不可编程网络设备的采样率P。
[0075] 中央控制模块是本实施例面向混合可编程网络环境的协同网络测量方法的核心模块,模块承担的任务较多,具体来说中央控制模块的工作流程如图5所示,包括:(1)提供
最大可编程设备数目、最大采样开销以及网络拓扑结构等信息;(2)依据网络路由信息表确
定可编程设备部署方案;(3)依据采样调整模块确定采样策略,调整链路采样率;(4)根据测
量计数信息检测大流与数目。这一采样窗口结束时,进行流量与大流预测,并返回(3),针对
性的调整链路采样率。
[0076] 在步骤(1)中,需要网络管理员提供整个网络系统中可编程设备的最大数目(个),以及最大采样开销(个/s)这两个预先指定的参数。其中,可编程设备的最大数目是基于经
济预算、网络功能考虑等所决定的,它限制了部署在网络中用于测量的可编程设备的最大
数目。而最大采样开销则限定了在所有不可编程网络设备上进行采样测量的开销之和的上
限。这个限制可以有效避免过多采样造成的网络负担加重、甚至网络拥塞、影响正常网络功
能等情况的出现。除此之外,管理员还需要提供网络拓扑结构信息。网络拓扑结构是整个网
络的一种抽象,包含网络内网络设备之间的连接信息。根据拓扑机构信息,我们可以确定从
网络中某个设备到另一设备的路由情况,不同网络节点间的连接情况等。在图6中,我们给
出了一个简单网络拓扑结构信息的示意图。图中包含5个网络设备节点以及6条连接链路。
[0077] 步骤(2)用于求解可编程网络设备的具体部署位置,其详细步骤包括:
[0078] (2.1)接收从步骤(1)中输入的可编程设备数目与网络拓扑结构两部分信息。
[0079] (2.2)根据路由规则,确定网络路由路径表。此路由表的确定与常规方法相同,对网络中一对节点,源节点A与目的节点B。依据2.1)中的网络拓扑信息,确定从A到B可行的路
径数目以及每条路径经过的节点信息。这里,为了避免重复,我们对网络节点进行顺序编
号,统计路径的时候由于对称性,我们只统计源节点序号比目的节点序号小的路径。每一条
路径中使用0或者1来标记是否经过某个网络节点。例如,在图4所示网络中,从1节点到5节
点的路径有三条,分别记为11001,10101与10011,依次表示1‑2‑5、1‑3‑5与1‑4‑5这三条路
径。然后,将所有路径的01表示排列成一个矩阵,就是网络路由路径表。例如,图6的网络路
由路径表如下所示:
[0080]
[0081] 路径表中每一行代表一个路径,每一列代表一个网络节点。由于图6中共有9条路径(1‑2,1‑3,1‑4,1‑2‑5,1‑3‑5,1‑4‑5,2‑5,3‑5与4‑5),因此路径表共9行。例如路径表中第
6行,就代表这个路径(4‑5)经过4号与5号节点。
[0082] (2.3)根据覆盖最多网络路径的目标,确定可编程设备部署位置。由于在网络中,每一条网络路径都可能经过一定量的报文,因此,我们需要将可编程设备部署在覆盖尽可
能多网络路径的位置上,这样才能统计到更多的网络报文。例如,如果我们需要在图6的网
络中部署两个可编程设备,那么根据路由路径表,我们部署在1号以及5号位置,就可以覆盖
所有的9条路径。作为对比,如果我们部署在2号与3号位置,那么就只能覆盖6条路径,路由
路径表中的第3、6与9号路径就不被覆盖,那么经过这3条路径的网络报文也就不会被可编
程设备统计。对于更大型的网络,它的路由路径表可能会很大,这样人工的去观察求解就会
非常困难。通常,设备的部署问题都是离线进行的,也就是说不会经常的进行更改。所以,可
以采用数学优化器(Gurobi等)进行模型的求解。
[0083] (2.4)依据求解,部署可编程设备。根据上一步的求解结果,将可编程设备部署到网络中对应的位置上,利用sketch算法来进行网络测量。例如,如果我们需要将2个可编程
设备部署到图6的网络中,我们就需要将1号位置与5号位置的网络设备替换为可编程设备。
[0084] 步骤(3)中,中央控制模块需要设定每个链路上的采样率。这里,设步骤1)中获取的最大采样开销为C,也就是说,预期的测量间隔内,采样的报文不能超过C个。这里,由于过
小的采样率对于数据收集没有什么实质性的作用。所以首先根据网络中部署的采样工具,
由网络管理员确定最小采样率为S。S即为我们分配采样率的最小单位,也就是每个链路上
的实际采样率是S的整数倍。采样率的确定有两种情况,第一个测量窗口与后续的测量窗
口。
[0085] 在第一个测量窗口,由于没有流量与大流信息的预测,我们只能根据路由路径信息以及可编程设备的部署情况来决定链路的采样率。因此,我们首先对于网络内所有的链
路进行统计,统计经过每个链路的没有被可编程设备覆盖的网络路径的数目。在图6中,如
果我们部署一个可编程交换机在2号位置,那么此时,链路1‑2的计数就为0,因为经过这条
链路的2个路由路径都被可编程交换机2覆盖;链路1‑3的计数就为2,因为经过这条链路的2
个路由路径均未被可编程交换机覆盖。在完成对于每条链路的统计之后,我们首先将计数
为0的链路剔除掉,因为这些链路上的流量都会被可编程设备统计,在这些链路上继续进行
采样就没有必要。然后我们基于这个计数按大到小的顺序对于这些剩下的链路进行排序。
排序完成之后,就可以进行分配采样率的过程。由于没有流量信息,我们假设每条链路的网
络流量大小即为链路的物理带宽。相应的,这条链路的采样开销就为分配的采样率乘以链
路的物理带宽。基于此,我们对于排序后的链路列表依次进行采样率分配:从第一个开始,
分配采样率S,然后计算采样开销,并且从总的采样开销C中扣除这一部分。然后继续分配下
一个采样率S,同样计算采样开销并且扣除。重复这个过程至没有可用的采样开销或者到达
列表尾端。此时,若没有采样开销,则分配过程终止;否则,返回列表开头,重复这一轮过程
即可,具体步骤可参见前述步骤B1)~B5)。通过这个过程,我们完成了对于第一个测量窗口
内的采样率确定任务。
[0086] 对于后续的测量窗口,我们在上一个窗口的最后预测了链路的流量大小以及大流的情况。基于此,我们对于前文中的采样率分配过程进行两点优化。第一,对于链路的排序
不再是基于经过这条链路的未被可编程交换机覆盖的路径数目,而是经过这条链路的未被
可编程交换机覆盖的预测大流数目。其统计方法基本一致。对于某个预测大流是否经过某
条链路的判定依据是这个链路是否出现在这个大流的可能路由路径上。若出现,则经过;反
之,不经过。第二点优化是对于采样开销的估计。我们不在适用采样率乘以链路物理带宽来
计算采样开销,而是适用采样率乘以预测流量大小计算采样开销。这样的计算方式会更加
准确。采样率分配的其它过程与上文中第一个测量窗口的过程完全一致,我们在图7中也展
示了这一过程的流程图,具体步骤可参见前述步骤C1)~C5)。
[0087] 综上所述,本实施例面向混合可编程网络环境的协同网络测量方法具有下述优点:
[0088] 1、本实施例面向混合可编程网络环境的协同网络测量方法针对于混合可编程网络环境中异构网络设备的特点,结合具体的大流测量任务,有效利用可编程网络设备、不可
编程网络设备两者不同的测量能力。相比于以往的测量方法,要么针对传统不可编程网络,
要么基于新型的可编程网络设备,在实际场景中都有很大的应用限制。相反,我们的方法在
实际场景中有更大的应用前景。
[0089] 2、本实施例面向混合可编程网络环境的协同网络测量方法采用模块化的设计,分工清晰明确,并且可根据实际场景以及测量任务的不同进行灵活的替换。同时,也更适应不
同的软硬件限制。因此,本发明方法对于其它混合可编程网络中的测量任务的设计也有启
发意义。
[0090] 综上所述,本实施例面向混合可编程网络环境的协同网络测量方法的结构清晰,针对性强。对于混合可编程网络的环境,设计不同的模块,协同利用不同的测量能力,高效
进行大流检测。同时,采取灵活可配置的参数化方法,网络管理员可以调整具体的框架开
销,提升资源的利用率。本实施例面向混合可编程网络环境的协同网络测量方法基于混合
可编程网络的软件架构设计,其主要的思想是利用不同网络设备的不同测量能力,协同工
作来完成大流检测的任务。关键点在于如何在限定条件下,制定合适的部署策略以及采样
策略。在此实例中,本实施例面向混合可编程网络环境的协同网络测量方法选择了最大化
路由路径覆盖率与采样收益的方法。本实施例面向混合可编程网络环境的协同网络测量方
法既可以利用可编程设备的高流量统计能力,同时利用不可编程设备上采样率的动态调
整,为系统提供了适应网络流量动态变化的能力。
[0091] 此外,本实施例还在上述方法的基础上提供一种大流检测框架,该大流检测框架针对混合可编程网络中的大流监测而设计。首先根据网络管理员的要求,确定要部署的可
编程网络设备的最大数目;然后根据网络的路由信息,确定这些可编程网络设备的最优部
署位置。在这些可编程网络设备上,可以部署各种新型的sketch算法来最大化利用它们的
测量能力。而对于不可编程的网络设备,本方案采用采样的方法来避免它们测量能力的浪
费。同时,基于管理员提出的最大采样开销要求,要灵活动态调整不同链路上的报文采样率
来满足资源要求。整个框架采用集中控制的架构设计,中央控制器从不同测量节点收取测
量数据,控制端分析大流,同时动态调整大流的阈值以及链路采样率,从而高效的检测网络
中的大流。所述框架功能单元包括:
[0092] 中央控制模块:这一模块的主要功能有(1)用于决策哪些位置的网络设备应当被替换为可编程的网络设备。包括输入输出以及具体的决策方法。输入有两个:整个网络的路
由信息表和需要替换为可编程网络设备的比例。输出有一个:每一个应当被替换为可编程
网络设备的位置。部署的策略是使得可编程网络设备覆盖的路由路径的数目最多。值得注
意的是,对于可编程设备已经部署完毕的情况,这一部分可以不进行重新部署。求解过程可
以采用通用数学优化求解器获得最优解;(2)为根据不同测量点的测量数据,判断出具体的
大流。这一模块部署在中央控制器。根据测量点当前周期内的数据以及历史数据,判定某一
个流是否为大流,并且给出它在下一个统计周期中的预测数目;(3)根据预测的大流及其具
体大小,调整采样的链路以及采样的频率。调整的根据是采样进行的网络测量是可编程部
分网络测量的一个补充,应当尽力补足可编程部分对于大流检测的缺失数据。为此,我们使
用既定算法在固定采样开销的条件下,最大化对于没有被可编程设备测量的大流的覆盖
率。
[0093] 可编程网络设备:这一模块的主要功能为在可编程网络设备中承担计数工作。具体采用某种sketch算法来实现(比如Count‑Min Sketch)。此外,为了应对不同大流的规模
不一样的问题,还需要一个查找表来实现流与规模的对应查找。可以利用设备里的SRAM或
者TCAM进行实现。当某个流的计数到达了预设的规模大小值的时候,这一模块则将这一个
流的识别信息以及对应的规模大小发送至控制端,也就是大流检测模块。
[0094] 不可编程网络设备:这一模块的主要功能是完成不可编程网络设备上的采样计数工作,可以采用对应设备上部署的商用采样协议。同时,在接收到采样调整模块发出的调整
采样率指令后,调整相应的采样率来进行下一周期的数据统计。
[0095] 本实施例面向混合可编程网络环境的协同网络测量方法针对混合编程网络中网络设备异构的特点而设计,有效利用可编程网络设备与传统网络设备的能力,进行网络中
heavy‑hitter的高效检测。本发明方法灵活可配置,网络管理人员可以设定整个检测系统
的最大检测开销来实现对于系统的精细控制。本协同测量方法同样可以稍加改动,适用于
其它的网络测量任务,有较大的启发意义。本实施例面向混合可编程网络环境的协同网络
测量方法协同使用一个网络中不同设备的测量能力,在资源的限制条件下,通过优化部署,
提升检测的效果。本实施例面向混合可编程网络环境的协同网络测量方法依据网络拓扑信
息,不依赖网络历史记录,根据网络路由信息表,优化目标是最大化覆盖的路由路径的数
目,采用数学优化工具求解。本实施例面向混合可编程网络环境的协同网络测量方法首先
确定所允许的采样率最大开销,然后对于特定的测量任务,结合可编程网络设备的部署情
况,可采用贪心策略求解,最大化限定采样开销下的采样测量收益。
[0096] 此外,本实施例还提供一种面向混合可编程网络环境的协同网络测量系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述面向混合可编程网络
环境的协同网络测量方法的步骤,或该存储器中存储有被编程或配置以执行前述面向混合
可编程网络环境的协同网络测量方法的计算机程序。
[0097] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机
可读存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程
图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个
方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其
他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读
存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流
程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算
机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤
以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在
流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0098] 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域
的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也
应视为本发明的保护范围。