一种面向云计算网络的拓扑探测方法转让专利

申请号 : CN201410348943.3

文献号 : CN104158748A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王少辉董从翔肖甫韩志杰王汝传刘佳

申请人 : 南京邮电大学

摘要 :

本发明提供了一种基于云计算网络的拓扑探测方法,适用于云计算网络环境下对于网络拓扑进行探测,本发明将拓扑探测分为两层进行分别探测,在第一层中由路由器与计算节点构成,通过发送socket“三明治”包的方法探测出时延;第二层由云计算环境环境中计算节点下的虚拟机的分布构成,本发明采用MPI探测虚拟机间的通信时延,并通过相应的计算后采用并查集算法进行归并聚类,从而得到虚拟机的分布。通过本发明可以比较完整的探测出整个云计算网络环境下的完整拓扑结构。

权利要求 :

1.一种基于云计算网络的拓扑探测方法,其特征在于该方法包含以下的具体步骤:

步骤1.按照预先设定拓扑图进行搭建云平台管理项目Openstack的真实环境,步骤2.在进行第一层网络拓扑探测时对每个路由器下任意选择一个虚拟机进行编号并编入相应的套接字程序socket程序,通过路由器下的虚拟机为分别接收大数据包与两个小的数据包,对每对路由器与计算节点间的数据时延测量,得到每对小数据包的时间差,通过全局搜索拓扑探测MLT算法进行推断,

1)选择一个随机的开始状态s0=(T0+u0),

2)进入下一状态s1,得到最小值:

3)重复步骤1和步骤2的过程,直到建立一个拓扑图;

步骤3.在进行第二层网络拓扑探测时,对于每个路由器虚拟机进行安装信息通信接口库MPI,并写入对应的时间测试程序,由公式Tcomm=TS+mTW通过测量节点彼此间发送不同字节大小的数据包,得到不同数据包大小时对应的时间大小,其中Tcomm表示节点对间实际测量得到的传输时间;TS表示节点对间建立的时间;Tw表示节点对间的每单位字节的发送时间;m表示节点对间发送的字节大小;对于每一个节点对i,j,用矩阵实验室MATLAB将其

10个值根据上述线性公式拟合出该节点对在Tw矩阵下的值Twi,j;

使用并查集算法Union-Find进行节点聚类,并查集是通过树形结构来存储的,在合并操作时利用树的节点数或者利用一个排列数组来存储集合的启发式函数,在查找操作时进行路径压缩使后续的查找操作加速;并查集有三种操作:合并操作Union;把子集合Root2即根2和子集合Root1即根1合并,要求:Root1和Root2互不相交,否则不执行操作;

搜索操作Find;搜索单元素x所在的集合,并返回该集合的名字--根节点标示;

UFSets构造函数,将并查集中s个元素初始化为s个只有一个单元素的子集合,利用并查集的算法,将MPI测试数据进行划分聚类,number表示节点的数量;threshold表示定义的阈值范围;Tw[number][number]表示Tw矩阵;

1)得到“朋友关系矩阵”,设置一个阈值,遍历其余节点,其中有90%~98%比例的节点到两观测节点的时间差在阈值范围内,即认定两观测节点为“直接朋友”关系,否则不是,得到“直接朋友关系”矩阵;

2)初始化把每一节点当成一颗子树,该树只有自身一个节点,作为根节点;

3)合并子树若节点i,j,为直接朋友关系,对i,j为根节点的子树分别进行压缩路径,使其子树中所有非根节点直接指向根节点,并合并以i,j为根节点的子树,并把编号较小的节点作为新树的根节点,再对新树同样进行压缩路径;

4)差错检测,在合并子树的过程中,若节点i,j不为直接朋友关系,而遍历节点i,j的根时得到同一根节点,则说明出现差错;

5)显示划分结果,用map即示意图存储不同集合树当中的元素,每棵树的根节点编号作为map的下标,对应的内容是一个向量,用来存储该树所有非根节点,归并好的节点即是虚拟机的部署拓扑,从而得出云环境下第二层网络拓扑;

步骤4.在聚类好的虚拟机结构中,通过测试相互的时延,由于在同一路由器下的虚拟机间的通信时间肯定最短,随着经过的路由器与交换机的增多通信时延增加,根据这一原理,通过比较不同虚拟机间的时延相似度来验证之前的聚类分布;

步骤5.将第一层拓扑探测结构与第二层拓扑探测结构相结合构成完整的云计算环境下的网络拓扑结构。

说明书 :

一种面向云计算网络的拓扑探测方法

技术领域

[0001] 本发明是一种适用于云网络环境中,针对云环境网络的特点,采用将云环境拓扑结构分为由路由器与计算节点组成的第一层拓扑结构与虚拟机的分布组成的第二层拓扑结构,并采用相应的方法进行拓扑结构的探测。

背景技术

[0002] 随着网络与人们的生活联系越来越密切,网络用户也越来越关注网络的性能特征,关注他们通过网络得到的利益能有多大程度的保障。这一方面要求现代网络管理系统更完善地发展,更好地控制网络的行为。另一方面要求对网络性能参数进行精确地检测和方便地调控。为此,开发了各式各样的网络测量系统以测量和推断网络性能参数的变化。网络拓扑探测是这些网络测量系统的主要基础,同时也是现代网络管理系统的重要组成部分,在现代计算机网络科学发展中具有十分重要的地位。
[0003] 云计算是2007年底正式提出的一个新的概念,至今为止,几乎所有的IT行业巨头都将云计算作为未来发展的主要战略之一,相关商业媒体也将云计算视为计算机未来发展的主要趋势,随着时代的发展,其商业前景和应用需求已勿庸置疑。云计算是一种全新的商业模式,其核心部分依然是云后端的数据中心,它使用的硬件设备主要是成千上万的工业标准服务器,它们由英特尔或AMD生产的处理器以及其他硬件厂商的产品组成。企业和个人用户通过高速互联网得到计算能力,从而避免了大量的硬件投资。云计算的基本原理是,通过将计算分布在大量的分布式计算机上,使企业数据中心的运行更加类似于使用互联网。从而使企业能够将随时资源切换到需要的应用上,根据需求访问计算机和存储系统。
[0004] 在云计算系统的后端,有成千上万的服务器,如何将如此大量的服务器有效地组织是云计算系统高效稳定运行关键问题之一。然而云计算系统后端的网络拓扑有别于一般的网络拓扑特性:它的服务器节点分布广泛,数据流量大,服务等级区分度高,扩展性和可靠性要求较强,拓扑结构相对复杂,因此确实具有重新研究的必要性。Openstack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。Openstack是一个完全开源的云计算系统,使用者可以在需要的时候修改代码来满足需要并作为开源或商业产品发布、销售。Openstack是基于强大的社区开发模式,任何公司和个人都可以参与到项目中,参与测试开发,贡献代码,同时Openstack被专门基金会管理,可以说是一个真正开源的云计算项目;Openstack为组建云提供了必要的软件、控制台和API。本发明是基于Openstack平台搭建的云计算环境进行数据的测量与方法验证。

发明内容

[0005] 技术问题:本发明的目的是提供一种面向云计算网络的拓扑探测方法,在云环境下基于Openstack平台,进行拓扑探测,通过将拓扑图分为两层进行分别探测,第一层由各路由器与计算节点组成,第二层由各路由器下虚拟机的分布组成。通过本方法可以实现云环境下网络拓扑的全面探测。
[0006] 技术方案:本发明的方法采用在Openstack平台下,搭建云环境拓扑,在第一层由路由器与计算节点构成的拓扑中,采用发送socket“三明治”包的方法进行探测时延;在第二层由各路由器下虚拟机的分布构成的拓扑中,通过MPI探测时延,将所探测的数据进行一系列的计算后,通过并查集算法进行归并聚类。由聚类后的结果即为各虚拟机的分布,将第一层与第二层拓扑探测相结合即为整个云环境下网络拓扑结构。
[0007] 基于云计算网络的拓扑探测方法包含以下的具体步骤:
[0008] 步骤1.按照预先设定拓扑图进行搭建云平台管理项目Openstack的真实环境,[0009] 步骤2.在进行第一层网络拓扑探测时对每个路由器下任意选择一个虚拟机进行编号并编入相应的套接字程序socket程序,通过路由器下的虚拟机为分别接收大数据包与两个小的数据包,对每对路由器与计算节点间的数据时延测量,得到每对小数据包的时间差,通过全局搜索拓扑探测MLT算法进行推断,
[0010] 1)选择一个随机的开始状态s0=(T0+u0),
[0011] 2)进入下一状态s1,得到最小值:
[0012] 3)重复步骤1和步骤2的过程,直到建立一个拓扑图;
[0013] 步骤3.在进行第二层网络拓扑探测时,对于每个路由器虚拟机进行安装信息通信接口库MPI,并写入对应的时间测试程序,由公式Tcomm=TS+mTW通过测量节点彼此间发送不同字节大小的数据包,得到不同数据包大小时对应的时间大小,其中Tcomm表示节点对间实际测量得到的传输时间;TS表示节点对间建立的时间;Tw表示节点对间的每单位字节的发送时间;m表示节点对间发送的字节大小;对于每一个节点对i,j,用矩阵实验室MATLAB将其10个值根据上述线性公式拟合出该节点对在Tw矩阵下的值Twi,j;
[0014] 使用并查集算法Union-Find进行节点聚类,并查集是通过树形结构来存储的,在合并操作时利用树的节点数或者利用一个排列数组来存储集合的启发式函数,在查找操作时进行路径压缩使后续的查找操作加速;并查集有三种操作:
[0015] 合并操作Union;把子集合Root2即根2和子集合Root1即根1合并,要求:Root1和Root2互不相交,否则不执行操作;
[0016] 搜索操作Find(x);搜索单元素x所在的集合,并返回该集合的名字--根节点标示;UFSets(s)构造函数,将并查集中s个元素初始化为s个只有一个单元素的子集合,利用并查集的算法,将MPI测试数据进行划分聚类,number表示节点的数量;threshold表示定义的阈值范围;Tw[number][number]表示Tw矩阵;
[0017] 1)得到“朋友关系矩阵”,设置一个阈值,遍历其余节点,其中有90%~98%比例的节点到两观测节点的时间差在阈值范围内,即认定两观测节点为“直接朋友”关系,否则不是,得到“直接朋友关系”矩阵;
[0018] 2)初始化把每一节点当成一颗子树,该树只有自身一个节点,作为根节点;
[0019] 3)合并子树若节点i,j,为直接朋友关系,对i,j为根节点的子树分别进行压缩路径,使其子树中所有非根节点直接指向根节点,并合并以i,j为根节点的子树,并把编号较小的节点作为新树的根节点,再对新树同样进行压缩路径;
[0020] 4)差错检测,在合并子树的过程中,若节点i,j不为直接朋友关系,而遍历节点i,j的根时得到同一根节点,则说明出现差错;
[0021] 5)显示划分结果,用map即示意图存储不同集合树当中的元素,每棵树的根节点编号作为map的下标,对应的内容是一个向量,用来存储该树所有非根节点,归并好的节点即是虚拟机的部署拓扑,从而得出云环境下第二层网络拓扑;
[0022] 步骤4.在聚类好的虚拟机结构中,通过测试相互的时延,由于在同一路由器下的虚拟机间的通信时间肯定最短,随着经过的路由器与交换机的增多通信时延增加,根据这一原理,通过比较不同虚拟机间的时延相似度来验证之前的聚类分布;
[0023] 步骤5.将第一层拓扑探测结构与第二层拓扑探测结构相结合构成完整的云计算环境下的网络拓扑结构。
[0024] 有益效果:在云计算环境中,使用多层拓扑探测技术,将云环境拓扑探测分为两层分别进行,传统拓扑探测技术无法实现对云计算虚拟机分布的探测,通过分层拓扑探测可以完整的实现对云计算网络的拓扑探测。

附图说明

[0025] 图1是并查集算法处理流程图。
[0026] 图2是预设定拓扑图。

具体实施方式

[0027] 1.按照预先设定拓扑图进行搭建Openstack真实环境。
[0028] 2.在进行第一层网络拓扑探测时对每个路由器下任意选择一个虚拟机进行编号并编入相应的socket程序,通过路由器下的虚拟机为分别接收大数据包与两个小的数据包,对每对路由器与计算节点间的数据时延测量,得到每对小数据包的时间差。通过MLT算法进行推断,(1)选择一个随机的开始状态s0=(T0+u0);(2)进入下一状态s1,得到最小值:(3)重复步骤1和步骤2的过程,直到建立一个拓扑图。
[0029] 3.在进行第二层网络拓扑探测时,对于每个路由器虚拟机进行安装MPI,并写入对应的时间测试程序,由公式Tcomm=TS+mTW通过测量节点彼此间发送不同字节大小的数据包(其中Tcomm表示节点对间实际测量得到的传输时间;TS表示节点对间建立建立的时间;Tw表示节点对间的每单位字节的发送时间;m表示节点对间发送的字节大小)得到不同数据包大小时对应的时间大小,对于每一个节点对i,j,用MATLAB将其T1ij-T10ij的10个值根据上述线性公式拟合出该节点对在Tw矩阵下的值Twi,j。
[0030] 使用并查集算法进行节点聚类,并查集是通过树形结构来存储的,在合并操作时可以利用树的节点数或者利用一个rank数组来存储集合的深度下界,在查找操作时进行路径压缩使后续的查找操作加速。并查集有三种操作:Union(Root1,Root2)合并操作;把子集合Root2和子集合Root1合并.要求:Root1和Root2互不相交,否则不执行操作;Find(x)搜索操作;搜索单元素x所在的集合,并返回该集合的名字--根节点标示;
UFSets(s)构造函数。将并查集中s个元素初始化为s个只有一个单元素的子集合。利用并查集的算法,将MPI测试数据进行划分聚类。例如number表示节点的数量;threshold表示我们定义的阈值范围(此范围内两节点可归于同一路由下);Tw[number][number]表示Tw矩阵。(1)得到“朋友关系矩阵”,设置一个阈值,遍历其余节点,其中有一定比例的节点到两观测节点的时间差在阈值范围内,即认定两观测节点为“直接朋友”关系,否则不是,得到“直接朋友关系”矩阵。(2)初始化把每一节点当成一颗子树,该树只有自身一个节点,作为根节点。(3)合并子树若节点i,j,为直接朋友关系,对i,j为根节点的子树分别进行压缩路径,使其子树中所有非根节点直接指向根节点,并合并以i,j为根节点的子树,并把编号较小的节点作为新树的根节点,再对新树同样进行压缩路径(4)差错检测,在合并子树的过程中,若节点i,j不为直接朋友关系,而遍历节点i,j的根时得到同一根节点,则说明出现差错。(5)显示划分结果,用map存储不同集合树当中的元素。每棵树的根节点编号作为map的下标,对应的内容是一个vector,用来存储该树所有非根节点。归并好的节点即是虚拟机的部署拓扑,从而得出云环境下第二层网络拓扑。
[0031] 4.在聚类好的虚拟机结构中,通过ping相互的时延,由于在同一路由器下的虚拟机间的通信时间肯定最短,随着经过的路由器与交换机的增多通信时延增加,根据这一原理,通过比较不同虚拟机间的时延相似度来验证之前的聚类分布。
[0032] 5.将第一层拓扑探测结构与第二层拓扑探测结构相结合构成完整的云计算环境下的网络拓扑结构。