一种网络监测方法及装置转让专利

申请号 : CN201910142910.6

文献号 : CN109818804B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 潘恬黄韬史倩倩宋恩格张娇杨帆刘江谢人超刘韵洁

申请人 : 北京邮电大学

摘要 :

本发明实施例提供了一种网络监测方法、系统、装置及电子设备,包括获取末端节点发送的探测包,探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机,并且提取探测包中被写入的各P4交换机的属性信息,以及基于各P4交换机的属性信息,确定待监测网络的网络状态,由于只需在每个相邻的连通域之间部署一台P4交换机即可实现对待监测网络的监测,节约了成本。

权利要求 :

1.一种网络监测方法,其特征在于,包括:

获取末端节点发送的探测包,所述探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,所述待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机;

提取所述探测包中被写入的各P4交换机的属性信息;

基于所述各P4交换机的属性信息,确定所述待监测网络的网络状态。

2.根据权利要求1所述的方法,其特征在于,采用如下步骤将所述待监测网络划分为多个连通域:获取所述待监测网络的网络拓扑图和所述待监测网络中各相邻节点之间的流量大小;

依据所述网络拓扑图和所述各相邻节点之间的流量大小,确定所述待监测网络的无向图;

基于图划分策略,将所述无向图划分为多个第一子区域,所述多个第一子区域中的每个第一子区域在所述待监测网络中对应一个连通域。

3.根据权利要求2所述的方法,其特征在于,所述依据所述网络拓扑图和所述各相邻节点之间的流量大小,确定所述待监测网络的无向图,包括:将所述网络拓扑图中的各节点和各节点间的连接关系,映射为对应的各顶点和各顶点之间的连接边;

将所述待监测网络中各相邻节点之间的流量大小,作为对应各顶点之间的连接边的边权重;

将具有同一顶点的各连接边的边权重相加,作为对应顶点的顶点权重;

将映射后的各顶点和各顶点间的连接边,以及各顶点的顶点权重和各连接边的边权重,作为所述待监测网络的无向图。

4.根据权利要求3所述的方法,其特征在于,当所述无向图中各顶点和各连接边的总数量大于第一预设数量时,所述基于图划分策略,将所述无向图划分为多个第一子区域,包括:基于轻点匹配算法,对所述无向图进行粗化处理,所述粗化处理用于将所述无向图简化为各顶点和各连接边的总数量小于第二预设数量的简单无向图;

将所述简单无向图初始划分为多个第二子区域;

基于KL细化算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域;和/或,基于全局KL算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域;和/或,基于贪心细化算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域。

5.根据权利要求1所述的方法,其特征在于,所述属性信息包括:P4交换机的设备ID、所述探测包经过P4交换机的入口端口编号、出口端口编号、入口时间戳和出口时间戳;

所述基于所述各P4交换机的属性信息,确定所述待监测网络的网络状态,包括:基于所述探测包中记录的各P4交换机的设备ID、入口端口编号和出口端口编号,确定各P4交换机之间的相邻关系;

基于所述探测包中记录经过各P4交换机的入口时间戳和出口时间戳,确定各相邻P4交换机之间探测包传输的时延;

基于所述各P4交换机之间的相邻关系和所述各相邻P4交换机之间探测包传输的时延,确定所述待监测网络的网络状态。

6.一种网络监测装置,其特征在于,包括:

探测包获取模块,用于获取末端节点发送的探测包,所述探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,所述待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机;

信息提取模块,用于提取所述探测包中被写入的各P4交换机的属性信息;

状态确定模块,用于基于所述各P4交换机的属性信息,确定所述待监测网络的网络状态。

7.根据权利要求6所述的装置,其特征在于,所述装置还包括:

流量大小获取模块,用于获取所述待监测网络的网络拓扑图和所述待监测网络中各相邻节点之间的流量大小;

无向图确定模块,用于依据所述网络拓扑图和所述各相邻节点之间的流量大小,确定所述待监测网络的无向图;

第一子区域划分模块,用于基于图划分策略,将所述无向图划分为多个第一子区域,所述多个第一子区域中的每个第一子区域在所述待监测网络中对应一个连通域。

8.根据权利要求7所述的装置,其特征在于,所述无向图确定模块,具体用于将所述网络拓扑图中的各节点和各节点间的连接关系,映射为对应的各顶点和各顶点之间的连接边,并且将所述待监测网络中各相邻节点之间的流量大小,作为对应各顶点之间的连接边的边权重,以及将具有同一顶点的各连接边的边权重相加,作为对应顶点的顶点权重,以及将映射后的各顶点和各顶点间的连接边,以及各顶点的顶点权重和各连接边的边权重,作为所述待监测网络的无向图。

9.根据权利要求8所述的装置,其特征在于,所述无向图确定模块,具体用于当所述无向图中各顶点和各连接边的总数量大于第一预设数量时,基于轻点匹配算法,对所述无向图进行粗化处理,所述粗化处理用于将所述无向图简化为各顶点和各连接边的总数量小于第二预设数量的简单无向图,并且将所述简单无向图初始划分为多个第二子区域,以及基于KL细化算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域;以及和/或,基于全局KL算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域;以及和/或,基于贪心细化算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域。

10.根据权利要求6所述的装置,其特征在于,所述属性信息包括:P4交换机的设备ID、所述探测包经过P4交换机的入口端口编号、出口端口编号、入口时间戳和出口时间戳;

所述状态确定模块,具体用于基于所述探测包中记录的各P4交换机的设备ID、入口端口编号和出口端口编号,确定各P4交换机之间的相邻关系,并且基于所述探测包中记录经过各P4交换机的入口时间戳和出口时间戳,确定各相邻P4交换机之间探测包传输的时延,以及基于所述各P4交换机之间的相邻关系和所述各相邻P4交换机之间探测包传输的时延,确定所述待监测网络的网络状态。

说明书 :

一种网络监测方法及装置

技术领域

[0001] 本发明涉及网络建设技术领域,特别是涉及一种网络监测方法及装置。

背景技术

[0002] 传统的网络环境中,仅仅有路由器和交换机之间的接口和协议是标准化的,网络设备内部的数据平面和控制平面是耦合在一起的,当网络业务需求变动后,都需要对网络中的路由器等设备进行重新部署和配置,在现如今企业内部网络环境愈来愈复杂,大量异构的网络设备、复杂的组织架构、竞争日趋激烈的市场环境的背景下,传统的网络架构中网络的部署和配置不够灵活的弊端越来越明显。
[0003] 为了解决传统网络部署和配置不够灵活的问题,提出来SDN(SoftwareDefined Network,软件定义网络)技术,SDN技术的核心是通过OpenFlow协议实现数据平面和控制平面的分离,但是OpenFlow协议存在编程能力不足、拓展性差、网络的部署和管理困难等问题。于是,在OpenFlow协议基础上,Nick教授等人提出了P4(Programming Protocol-Independent Packet Processors,与协议无关的数据包处理编程语言)语言。P4可以灵活地定义网络设备的数据包处理流程,支持协议无关转发,支持屏蔽网络设备差异的与目标无关的网络编程。不同于OpenFlow,P4不仅是一种更灵活的实现控制器与网络设备通信的南向协议,也可以实现数据平面的可编程。
[0004] P4语言可编程性与协议无关性启发了P4语言联盟提出了INT(In-bandNetwork Telemetry,带内网络遥测)的概念。INT技术依赖于信息采集探测包和具有特定功能的P4交换机,这种探测包由处于网络边缘的交换机或安装了INT代理的主机周期性生成,并注入网络中,并与普通的数据包一起排队转发,每经过一台P4交换机,探测包可以采集设备内的时延、队列长度等信息,探测包到达末端P4交换机或安装了INT代理的末端主机后被转发到远程的控制器,远程控制器可以对数据包的信息进行提取分析并做出决策。
[0005] 发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
[0006] INT的实现依赖P4交换机,这种P4交换机需要配备可编程的高速芯片。由INT设计的初衷,给定一条由P4交换机组成的链路,INT可以方便地实现对整条链路流量状况的监测,若要实现全网监测,则必须将整个网络中的传统交换机全部替换为P4交换机,所需成本过高。

发明内容

[0007] 本发明实施例的目的在于提供一种网络监测方法,以相比于将传统交换机全部更换为P4交换机,节约成本。具体技术方案如下:
[0008] 本发明实施例提供一种网络监测方法,包括:
[0009] 获取末端节点发送的探测包,所述探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,所述待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机;
[0010] 提取所述探测包中被写入的各P4交换机的属性信息;
[0011] 基于所述各P4交换机的属性信息,确定所述待监测网络的网络状态。
[0012] 进一步的,采用如下步骤将所述待监测网络划分为多个连通域:
[0013] 获取所述待监测网络的网络拓扑图和所述待监测网络中各相邻节点之间的流量大小;
[0014] 依据所述网络拓扑图和所述各相邻节点之间的流量大小,确定所述待监测网络的无向图;
[0015] 基于图划分策略,将所述无向图划分为多个第一子区域,所述多个第一子区域中的每个第一子区域在所述待监测网络中对应一个连通域。
[0016] 进一步的,所述依据所述网络拓扑图和所述各相邻节点之间的流量大小,确定所述待监测网络的无向图,包括:
[0017] 将所述网络拓扑图中的各节点和各节点间的连接关系,映射为对应的各顶点和各顶点之间的连接边;
[0018] 将所述待监测网络中各相邻节点之间的流量大小,作为对应各顶点之间的连接边的边权重;
[0019] 将具有同一顶点的各连接边的边权重相加,作为对应顶点的顶点权重;
[0020] 将映射后的各顶点和各顶点间的连接边,以及各顶点的顶点权重和各连接边的边权重,作为所述待监测网络的无向图。
[0021] 进一步的,当所述无向图中各顶点和各连接边的总数量大于第一预设数量时,所述基于图划分策略,将所述无向图划分为多个第一子区域,包括:
[0022] 基于轻点匹配算法,对所述无向图进行粗化处理,所述粗化处理用于将所述无向图简化为各顶点和各连接边的总数量小于第二预设数量的简单无向图;
[0023] 将所述简单无向图初始划分为多个第二子区域;
[0024] 基于KL细化算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域;和/或,
[0025] 基于全局KL算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域;和/或,
[0026] 基于贪心细化算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域。
[0027] 进一步的,所述属性信息包括:P4交换机的设备ID、所述探测包经过P4交换机的入口/出口的端口编号和入口/出口时间戳;
[0028] 所述基于所述各P4交换机的属性信息,确定所述待监测网络的网络状态,包括:
[0029] 基于所述探测包中记录的各P4交换机的设备ID和入口/出口的端口编号,确定各P4交换机之间的相邻关系;
[0030] 基于所述探测包中记录经过各P4交换机的入口/出口时间戳,确定各相邻P4交换机之间探测包传输的时延;
[0031] 基于所述各P4交换机之间的相邻关系和所述各相邻P4交换机之间探测包传输的时延,确定所述待监测网络的网络状态。
[0032] 本发明实施例还提供一种网络监测装置,包括:
[0033] 探测包获取模块,用于获取末端节点发送的探测包,所述探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,所述待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机;
[0034] 信息提取模块,用于提取所述探测包中被写入的各P4交换机的属性信息;
[0035] 状态确定模块,用于基于所述各P4交换机的属性信息,确定所述待监测网络的网络状态。
[0036] 进一步的,所述装置还包括:
[0037] 流量大小获取模块,用于获取所述待监测网络的网络拓扑图和所述待监测网络中各相邻节点之间的流量大小;
[0038] 无向图确定模块,用于依据所述网络拓扑图和所述各相邻节点之间的流量大小,确定所述待监测网络的无向图;
[0039] 第一子区域划分模块,用于基于图划分策略,将所述无向图划分为多个第一子区域,所述多个第一子区域中的每个第一子区域在所述待监测网络中对应一个连通域。
[0040] 进一步的,所述无向图确定模块,具体用于将所述网络拓扑图中的各节点和各节点间的连接关系,映射为对应的各顶点和各顶点之间的连接边,并且将所述待监测网络中各相邻节点之间的流量大小,作为对应各顶点之间的连接边的边权重,以及将具有同一顶点的各连接边的边权重相加,作为对应顶点的顶点权重,以及将映射后的各顶点和各顶点间的连接边,以及各顶点的顶点权重和各连接边的边权重,作为所述待监测网络的无向图。
[0041] 进一步的,所述无向图确定模块,具体用于当所述无向图中各顶点和各连接边的总数量大于第一预设数量时,基于轻点匹配算法,对所述无向图进行粗化处理,所述粗化处理用于将所述无向图简化为各顶点和各连接边的总数量小于第二预设数量的简单无向图,并且将所述简单无向图初始划分为多个第二子区域,以及基于KL细化算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域;以及和/或,基于全局KL算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域;以及和/或,基于贪心细化算法,将所述简单无向图的多个第二子区域还原成所述无向图中多个第一子区域。
[0042] 进一步的,所述属性信息包括:P4交换机的设备ID、所述探测包经过P4交换机的入口/出口的端口编号和入口/出口时间戳;
[0043] 所述状态确定模块,具体用于基于所述探测包中记录的各P4交换机的设备ID和入口/出口的端口编号,确定各P4交换机之间的相邻关系,并且基于所述探测包中记录经过各P4交换机的入口/出口时间戳,确定各相邻P4交换机之间探测包传输的时延,以及基于所述各P4交换机之间的相邻关系和所述各相邻P4交换机之间探测包传输的时延,确定所述待监测网络的网络状态。
[0044] 本发明实施例还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0045] 存储器,用于存放计算机程序;
[0046] 处理器,用于执行存储器上所存放的程序时,实现上述任一网络监测方法的步骤。
[0047] 本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一网络监测方法的步骤。
[0048] 本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一网络监测方法。
[0049] 本发明实施例提供的一种网络监测方法及装置,方案中,获取末端节点发送的探测包,探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机,并且提取探测包中被写入的各P4交换机的属性信息,以及基于各P4交换机的属性信息,确定待监测网络的网络状态,由于不需要将待监测网络中的全部传统交换机更换成P4交换机,只需在每个相邻的连通域之间部署一台P4交换机即可实现对待监测网络的监测,节约了成本。
[0050] 当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0051] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0052] 图1为本发明一个实施例提供的一种网络监测方法的流程图;
[0053] 图2为本发明一个实施例提供的一种将待监测网络划分为多个连通域的方法的流程图;
[0054] 图3为本发明一个实施例提供的一种网络监测装置的结构示意图;
[0055] 图4为本发明一个实施例提供的一种将待监测网络划分为多个连通域的装置的结构示意图;
[0056] 图5为本发明实施例提供的电子设备的结构示意图;
[0057] 图6为本发明实施例提供的一条待监测网络链路的结构示意图;
[0058] 图7为本发明实施例提供的一种探测包示意图;
[0059] 图8为本发明实施例提供的一种未划分前待监测网络的的网络拓扑图;
[0060] 图9为本发明实施例提供的一种未划分前待监测网络的无向图;
[0061] 图10为本发明实施例提供的一种未划分前待监测网络的包含权重的无向图;
[0062] 图11为本发明实施例提供的一种经过粗划分的简单无向图;
[0063] 图12为本发明实施例提供的一种划分三个第一子区域的无向图;
[0064] 图13为本发明实施例提供的一种加入P4交换机的无向图;
[0065] 图14为本发明实施例提供的一种加入P4交换机的待监测网络的网络拓扑图。

具体实施方式

[0066] 为了给出节约成本的网络监测的实现方案,本发明实施例提供了一种网络监测方法、系统、装置及电子设备,以下结合说明书附图对本发明的实施例进行说明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0067] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0068] 在本发明的一个实施例中,提供一种网络监测方法,如图1所示,该方法包括以下步骤:
[0069] S101:获取末端节点发送的探测包,其中探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机。
[0070] 本步骤中,执行主体可以是整个待监测网络的控制中心,在一个实施例中,执行主体可以是控制器,末端节点可以是待监测网络中的任意一个节点,在一个实施例中,末端节点与控制器相互连接,其中末端节点与控制器的连接方式可以是多样的,例如,可以是有线连接、无线连接、蓝牙连接等任意可以进行数据交换的连接方式,本发明实施例在此不做具体地限定,在一个实施例中,控制器还可以是待监测网络中指定的节点,该节点同时还可以充当其他角色,例如该节点同时还可以是一个末端节点,当该末端节点接收到探测包时,即可同时理解为控制器获取到了该末端节点发送的探测包。
[0071] 本步骤中的源节点可以是待监测网络中任意一个安装有INT代理软件的主机节点,在一个实施例中,源节点可以是处于待监测网络边缘位置安装有INT代理软件的边缘主机。在一个实施例中,根据待监测网络的复杂程度,待监测网络中可以包含一个或多个源节点或末端节点,当待监测网络中存在多个源节点和末端节点时,同一个节点主机可以是源节点,也可以是末端节点,即该节点主机在负责发送探测包给其他末端节点的同时,也负责接收和转发其他源节点发送的探测包,在一个实施例中,如图6所示,主机h1为安装了INT代理软件的源节点,主机h2为末端节点。
[0072] 本步骤中,探测包可以在待监测网络中被源节点周期性地生成,在一个实施例中,源节点可以采用UDP协议(User Datagram Protocol,用户数据报协议)生成并发送探测包,如图7所示,是采用UDP协议生成的探测包的首部格式,包括ethemet(以太网)头、IP(Internet Protocol,互联网协议)头、UDP头、payload(有效载荷)字段,其中payload字段分为option(选择)字段和int(integer,整型)字段,option字段定义option字段之后的字段的类型,在一个实施例中,type(类型)值为31,表示payload字段携带的为P4交换机写入的属性信息,length(长度)字段记录payload字段的总长度。int字段记录P4交换机写入的属性信息,如图7所示,包括:设备ID、探测包经过P4交换机的入口/出口的端口编号、入口/出口时间戳和入口/出口队列长度。
[0073] 在上述探测包被源节点周期性地生成后,探测包可以按照随机路径被从源节点传输到末端节点,在一个实施例中,可以通过ecmp方式将探测包随机的从源节点传输到末端节点,当探测包被源节点生成后,被源节点随机地发送给待监测网络中,与该源节点相连接的下一个节点,当该节点接收到源节点发送的探测包时,继续随机地将该探测包发送给待监测网络中,与该节点相连接的下一个节点,重复上述接收发送的过程,直至探测包被传输到了待监测网络中的任意末端节点,在如图6所示的实施例中,探测包被作为源节点的主机h1周期性生成,经过P4交换机S1、传统交换机S2、传统交换机S3和P4交换机S4到达作为末端节点的主机h2,在探测包经过P4交换机S1和P4交换机S4时,探测包被P4交换机S1和P4交换机S4写入了自身的属性信息。通过将探测包按照随机的路径从源节点传输到末端节点,并且源节点周期性地生成数量足够多的探测包的情况下,保证了待监测网络中每一个传输路径和节点都能被探测包访问,从而保证从探测包中能够获取完整的待监测网络中的信息。
[0074] 在一个实施例中,在探测包在被随机地传输过程中,当探测包被传输到达的节点是P4交换机时,该P4交换机可以将自身的属性信息写入探测包中,在一个实施例中,写入探测包中的属性信息可以是P4交换机的设备ID、探测包经过P4交换机的入口/出口的端口编号和入口/出口时间戳等信息。
[0075] S102:提取探测包中被写入的各P4交换机的属性信息。
[0076] 本步骤中,可以提取出探测包中被写入的各P4交换机的属性信息,在如图6所示的实施例中,可以获取探测包中被写入的P4交换机S1和P4交换机S4的属性信息。
[0077] S103:基于各P4交换机的属性信息,确定待监测网络的网络状态。
[0078] 本步骤中,可以根据各P4交换机的属性信息,确定待监测网络的网络状态,在一个实施例中,获取的属性信息可以包括P4交换机的如下信息:P4交换机的设备ID、探测包经过P4交换机的入口/出口的端口编号和入口/出口时间戳。
[0079] 在一个实施例中,可以基于探测包中记录的各P4交换机的设备ID和入口/出口的端口编号,确定各P4交换机之间的相邻关系,例如,在图6所示的实施例中,通过探测包中记录的P4交换机S1和P4交换机S4的设备ID入口/出口的端口编号,可以确定P4交换机S1和P4交换机S4的相邻关系,在一个实施例中,相邻关系可以不是物理意义上的连接关系,而是针对于整个待监测网络中的P4交换机来说,两个P4交换机相邻可以表示为两个P4交换机之间可以不经过其他P4交换机即可相互间进行数据交换。相邻的P4交换机可以确定一条链路,如图6所示的实施例中,P4交换机S1和P4交换机S4的相邻,可以表示主机h1、P4交换机S1、传统交换机S2、传统交换机S3、P4交换机S4和主机h2这一条链路。
[0080] 当确定两个P4交换机之间存在相邻关系时,可以通过探测包中记录的两个P4交换机的入口/出口时间戳,确定相邻P4交换机之间探测包传输的时延,其中针对每一个P4交换机,其入口/出口时间戳分别为探测包进入\离开该P4交换机的时间,在一个实施例中,可以将后进入的P4交换机的入口时间戳减去探测包先进入的P4交换机的入口时间戳的时间差值作为探测包传输的时延,在一个实施例中,相邻P4交换机之间探测包传输的时延可以通过探测包后进入的P4交换机的出口时间戳减去探测包先进入的P4交换机的入口时间戳来获得,从而得到探测包在整个链路中传输所需的时间,即得到该链路的传输的时延。在如图6所示的实施例中,可以使用探测包中记录的P4交换机S4的出口时间戳减去P4交换机S1的入口时间戳,从而得到探测包进入P4交换机S1和离开P4交换机S4所用的时间,即可以理解为探测包在主机h1和主机h2之间的时延。
[0081] 通过综合各P4交换机之间的相邻关系和各相邻P4交换机之间探测包传输的时延,确定待监测网络中各条链路的时延,从而确定了待监测网络的网络状态。
[0082] 本发明实施例提供的上述网络监测方法中,通过获取末端节点发送的探测包,其中探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机,并且提取探测包中被写入的各P4交换机的属性信息,以及基于各P4交换机的属性信息,确定待监测网络的网络状态,由于不需要将待监测网络中的全部传统交换机更换成P4交换机,只需在每个相邻的连通域之间部署一台P4交换机即可实现对待监测网络的监测,从而可以节约网络监测的成本。
[0083] 本申请实施例还提供了一种将待监测网络划分为多个连通域的方法示例,具体步骤如下:
[0084] S201:获取待监测网络的网络拓扑图和待监测网络中各相邻节点之间的流量大小。
[0085] 本步骤中,可以获取待监测网络的网络拓扑图和待监测网络中各相邻节点之间的流量大小,在一个实施例中,待监测网络的网络拓扑图和各相邻节点之间的流量大小可以是已知的信息,例如,在对采用传统网络监测方法的网络系统进行升级时,待监测网络中各相邻节点之间的流量大小可以为升级前各相邻节点之间的流量大小,当搭建新的网络时,其各相邻节点之间的流量大小可以是预设的流量大小。如图8所示为待监测网络未划分前的网络拓扑图,并且已知图8所示网络划分前各交换机之间的流量为:交换机a和交换机b为5个单位流量,交换机a和交换机c为1个单位流量,交换机b和交换机c为6个单位流量,交换机b和交换机d为2个单位流量,交换机b和交换机e为5个单位流量,交换机c和交换机d为4个单位流量,交换机d和交换机e为3个单位流量。
[0086] S202:依据网络拓扑图和各相邻节点之间的流量大小,确定待监测网络的无向图。
[0087] 本步骤中,无向图的定义为边没有方向的图,通过将待监测网络的网络拓扑图映射为无向图可以更加简洁、方便地对整个待监测网络的进行划分。
[0088] 在一个实施例中,可以采取以下步骤实现确定待监测网络的无向图,具体包括:
[0089] 第一步骤:将待监测网络的网络拓扑图中的各节点和各节点间的连接关系,映射为对应的各顶点和各顶点之间的连接边。例如,针对图8所示实施例,各主机和各交换机作为待监测网络中的网络节点,节点h1和交换机a相互连接,节点h2和交换机b相互连接,节点h3和交换机c相互连接,节点h4和交换机d相互连接,节点h5和交换机e相互连接,交换机a、交换机b和交换机c两两之间相互连接,交换机b、交换机d和交换机e两两之间相互连接,交换机c和交换机d之间相互连接,针对上述的节点,映射为顶点,节点间的连接关系,映射为顶点和顶点的连接边,得到如图9所示的连接图,在一个实施例中,可以将对待监测网络划分没有影响的节点去除,从而进一步的简化无向图,例如图9可以去除与各交换机连接的主机,进一步的简化连接图。
[0090] 第二步骤:将待监测网络中各相邻节点之间的流量大小,作为对应各顶点之间的连接边的边权重。在一个实施例中,由前述描述的内容可知,针对图8所示的实施例,各交换机之间的流量为:交换机a和交换机b为5个单位流量,交换机a和交换机c为1个单位流量,交换机b和交换机c为6个单位流量,交换机b和交换机d为2个单位流量,交换机b和交换机e为5个单位流量,交换机c和交换机d为4个单位流量,交换机d和交换机e为3个单位流量,简化流量单位后,可得到,各连接边的边权重为:ab=5,ac=1,bc=6,bd=2,be=5,cd=4,de=3。
[0091] 第三步骤:将具有同一顶点的各连接边的边权重相加,作为对应顶点的顶点权重。在如图8所示的实施例中,各顶点的顶点权重为:a=ab+bc=6,b=ab+bc+bd+be=18,c=ac+cb+cd=11,d=cd+bd+de=9,e=be+de=8。
[0092] 第四步骤:将映射后的各顶点和各顶点间的连接边,以及各顶点的顶点权重和各连接边的边权重,作为待监测网络的无向图。在一个实施例中,如图10所示,为图8所示待监测网络的简化后的无向图。
[0093] S203:基于图划分策略,将无向图划分为多个第一子区域,多个第一子区域中的每个第一子区域在待监测网络中对应一个连通域。
[0094] 本步骤中,可以基于不同的图划分策略,将无向图划分为多个第一子区域,例如,可以基于均衡性,将无向图划分为多个流量相同第一子区域或各第一子区域的流量相互间差值最小的,还可以基于待监测网络中各节点实际物理距离对无向图进行划分,在一个实施例中,在保证划分后的各第一子区域的均衡性和最小化边切割的同时,需要同时考虑各第一子域内的之间的连通性,避免出现某一台或多台P4交换机负责监测过多节点之间的数据交换,而剩余P4交换机负责监测的节点过少,同时最小化边切割保证了划分后的各连通域之间最小化边切割可尽量减少各个子域之间的关联性,保证划分后,各连通域之间部署的P4交换机工作时的流量不会过大或者过小,尽量避免P4交换机成为网络中的流量瓶颈。
[0095] 在一个实施例中,当无向图过于复杂,不容易对无向图进行划分时,可以在判断无向图中各顶点和各连接边的总数量大于第一预设数量时,基于轻点匹配算法,对无向图进行粗化处理,粗化处理用于将无向图简化为各顶点和各连接边的总数量小于第二预设数量的简单无向图,粗化处理通过匹配算法实现,对于非规则图来说,其匹配算法有随机匹配、重边匹配、改进的重边匹配、轻边匹配、轻点匹配、改进的轻点匹配等,在一个实施例中,可以通过轻点匹配算法实现,步骤如下:
[0096] 第一步骤:随机选择一个尚未访问过的顶点X,在一个实施例中,可以优先选择顶点权重最小的顶点。例如,在图10中,顶点a的顶点权重最小,故选择顶点a。
[0097] 第二步骤:判断与顶点X相邻的顶点是否存在未被访问过的顶点,若存在,一个或多个尚未访问过的顶点X1、X2……Xi,则在这i个顶点中,确定出顶点权重最小的顶点Xk,将连接边顶点X、顶点Xk和连接边XXk作为粗化后的无向图的顶点M,并标记顶点X和Xk为已访问顶点,若不存在未被访问过的顶点,则标记顶点X为已访问顶点。例如,在图10中,与顶点a相邻的顶点b和顶点c中,顶点c的顶点权重最小,将顶点a,顶点c和连接边ac作为一个顶点M1,并标记顶点a和顶点c为已访问的顶点。
[0098] 第三步骤:重复第一步骤,直至无向图中所有的顶点都被标记为已访问顶点。例如,在图10中,经过第二步骤后,在剩余尚未访问的顶点当中,顶点e的顶点权重最小,与顶点e相邻的顶点b和顶点d中,顶点d的顶点权重最小,将顶点e,顶点d和连接边de作为一个顶点M2,并标记顶点e和顶点d为已访问的顶点,且与剩余尚未访问的顶点b相邻的顶点不存在未被访问过的顶点,故顶点b自己作为一个顶点M3。如图11所示,为图10经过粗化处理后得到的粗化后的简单无向图。
[0099] 在上述得到的粗化后的简单无向图的基础上,将简单无向图初始划分为多个第二子区域。在一个实施例中,在保证均衡性和最小化边切割的同时为了避免一台P4交换机监测多个节点,将图11中的M1、M2和M3各作为单独的第二子区域。
[0100] 在一个实施例中,在确定了简单无向图的第二子区域的基础上,需要将第二子区域进行还原,从而在无向图中还原出与第二子区域对应的第一子区域。在一个实施例中,可以基于KL细化算法、和/或基于全局KL算法、和/或贪心细化算法,将简单无向图的多个第二子区域还原成无向图中多个第一子区域。在一个实施例中,还可以基于k路细化算法将简单无向图的多个第二子区域还原成无向图中多个第一子区域,可采用如下步骤实现:
[0101] 第一步骤:确定节点v的邻域N(v)。
[0102] N(v)=∪u∈Adj(v)Pi[u];
[0103] 式中,Adj(v)为与节点v相邻的节点,Pi[u]为节点u所在的第一字区域分区,由上述公式可知,节点v的邻域N(v)为与节点v相邻节点所在第一子区域的并集。
[0104] 第二步骤,确定节点v的外部度ED[v]。
[0105] 节点v的外部度ED[v]为节点v连接到第一子区域X的各连接边的边权重之和,其中第一子区域X为存在某一节点与节点v相邻的且非节点v所在第一子区域的第一子区域,即第一子区域X∈N(v)。
[0106] 第三步骤:确定节点v的内部度ID[v]。
[0107] 节点v的内部度ID[v]定义为节点v所在第一子区域中与节点v相邻的节点的连接边的边权重之和。
[0108] 第四步骤,确定节点v从所在第一子区域移动到第一子区域X的获益g[v],其中g[v]X=ED[v]X-ID[v],获益越大,说明节点v移动的效果就越好。
[0109] 注意,这种细化算法,把一个节点从一个第一子区域移动到另一第一时,既要做到减少边切割,又要做到不产生分区不平衡现象。因此一个节点可以从第一子区域a移动到第一子区域b必须满足的平衡条件是:
[0110] Wi[b]+W(v)≤Wmax和Wi[a]-W(v)≥Wmin;
[0111] 上述式中,Wi[a]是第一子区域a对应简单无向图中对应的第二子区域的权重,Wi[b]是第一子区域b对应简单无向图中对应的第二子区域的权重,W(v)是节点v的权重,其中,Wmin=0.9|V1|/k1,k1为第一子区域a中节点个数,V1是第一子区域a中各节点的顶点权重之和,k2为第一子区域b中节点个数,V2是第一子区域b中各节点的顶点权重之和。调整c值,可以使第一子区域内的不平衡程度得以改变。如果c=1,每一个第一子区域的权重将相等。如果令c大于1,将使划分质量得以改进。在一个实施例中,为了达到负载不平衡的最小化,一般取c=1.03;这可以保证负载不平衡不至于超过上限3%,通过平衡条件,保证了各个第一子区域中包含的节点不致过少。遍历每个节点,将满足条件的顶点重新划分第一子区域,确定划分后的多个第一子区域中的每个第一子区域在待监测网络中对应的连通域。
[0112] 如图12所示,为对图10无向图采取上述步骤划分得到的三个第一子区域,分别为,顶点a和顶点c、顶底b、顶点d和顶点e。在一个实施例中,在对应第一子区域之间插入P4交换机,得到如图13所示的插入P4交换机的无向图,图中顶点p1、p2和p3的位置为P4交换机增量部署的位置。根据图13,在图8的基础上,增量部署P4交换机得到如图14所示的划分后的待监测网络的网络拓扑图。
[0113] 本发明实施例提供的上述图2所示的将待监测网络划分为多个连通域的方法中,通过获取待监测网络的网络拓扑图和待监测网络中各相邻节点之间的流量大小,并且依据网络拓扑图和各相邻节点之间的流量大小,确定待监测网络的无向图,以及基于图划分策略,将无向图划分为多个第一子区域,多个第一子区域中的每个第一子区域在待监测网络中对应一个连通域。可以在待监测网络中均衡地增量间隔部署P4交换机,且可最大化P4交换机的效益。
[0114] 基于同一发明构思,根据本发明实施例提供的网络监测方法,本发明实施例还提供了一种网络监测装置,如图3所示,该装置包括:
[0115] 探测包获取模块301,用于获取末端节点发送的探测包,探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机;
[0116] 信息提取模块302,用于提取探测包中被写入的各P4交换机的属性信息;
[0117] 状态确定模块303,用于基于各P4交换机的属性信息,确定待监测网络的网络状态。
[0118] 进一步的,属性信息包括:P4交换机的设备ID、探测包经过P4交换机的入口/出口的端口编号和入口/出口时间戳;
[0119] 状态确定模块303,具体用于基于探测包中记录的各P4交换机的设备ID和入口/出口的端口编号,确定各P4交换机之间的相邻关系,并且基于探测包中记录经过各P4交换机的入口/出口时间戳,确定各相邻P4交换机之间探测包传输的时延,以及基于各P4交换机之间的相邻关系和各相邻P4交换机之间探测包传输的时延,确定待监测网络的网络状态。
[0120] 基于同一发明构思,根据本发明实施例提供的将待监测网络划分为多个连通域的方法,本发明实施例还提供了一种将待监测网络划分为多个连通域的装置,如图4所示,装置还包括:
[0121] 流量大小获取模块401,用于获取待监测网络的网络拓扑图和待监测网络中各相邻节点之间的流量大小;
[0122] 无向图确定模块402,用于依据网络拓扑图和各相邻节点之间的流量大小,确定待监测网络的无向图;
[0123] 第一子区域划分模块403,用于基于图划分策略,将无向图划分为多个第一子区域,多个第一子区域中的每个第一子区域在待监测网络中对应一个连通域。
[0124] 进一步的,无向图确定模块402,具体用于将网络拓扑图中的各节点和各节点间的连接关系,映射为对应的各顶点和各顶点之间的连接边,并且将待监测网络中各相邻节点之间的流量大小,作为对应各顶点之间的连接边的边权重,以及将具有同一顶点的各连接边的边权重相加,作为对应顶点的顶点权重,以及将映射后的各顶点和各顶点间的连接边,以及各顶点的顶点权重和各连接边的边权重,作为待监测网络的无向图。
[0125] 进一步的,无向图确定模块402,具体用于当无向图中各顶点和各连接边的总数量大于第一预设数量时,基于轻点匹配算法,对无向图进行粗化处理,粗化处理用于将无向图简化为各顶点和各连接边的总数量小于第二预设数量的简单无向图,并且将简单无向图初始划分为多个第二子区域,以及基于KL细化算法,将简单无向图的多个第二子区域还原成无向图中多个第一子区域;以及和/或,基于全局KL算法,将简单无向图的多个第二子区域还原成无向图中多个第一子区域;以及和/或,基于贪心细化算法,将简单无向图的多个第二子区域还原成无向图中多个第一子区域。
[0126] 本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
[0127] 存储器503,用于存放计算机程序;
[0128] 处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
[0129] 获取末端节点发送的探测包,探测包在待监测网络中被源节点周期性地生成,并且按照随机路径,从源节点传输到末端节点,以及在传输过程中,被经过的每台P4交换机写入对应P4交换机的属性信息,待监测网络预先被划分为多个连通域,其中相邻的两个连通域之间部署有一台P4交换机;
[0130] 提取探测包中被写入的各P4交换机的属性信息;
[0131] 基于各P4交换机的属性信息,确定待监测网络的网络状态。
[0132] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0133] 通信接口用于上述电子设备与其他设备之间的通信。
[0134] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0135] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0136] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一网络监测方法的步骤。
[0137] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一网络监测方法。
[0138] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0139] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0140] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0141] 以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。