CN107241222B - 一种网络拓扑校准方法 - Google Patents

一种网络拓扑校准方法 Download PDF

Info

Publication number
CN107241222B
CN107241222B CN201710418326.XA CN201710418326A CN107241222B CN 107241222 B CN107241222 B CN 107241222B CN 201710418326 A CN201710418326 A CN 201710418326A CN 107241222 B CN107241222 B CN 107241222B
Authority
CN
China
Prior art keywords
nodes
node
link
decoding
difference
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710418326.XA
Other languages
English (en)
Other versions
CN107241222A (zh
Inventor
郭得科
罗来龙
秦煜东
程葛媱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201710418326.XA priority Critical patent/CN107241222B/zh
Publication of CN107241222A publication Critical patent/CN107241222A/zh
Application granted granted Critical
Publication of CN107241222B publication Critical patent/CN107241222B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种网络拓扑校准方法,包括:查找得到给定原始拓扑中的差异节点;得到与差异节点相连接的链路,并在两个原始拓扑中删除差异节点及与差异节点相连接的链路,得到具有相同节点的优化拓扑;采用预设的图过滤器结构来表示优化拓扑结构中的拓扑信息;对于每个节点,通过对优化拓扑中的idSum进行异或运算、对拓扑中的Count进行相减运算得到对应的抽取结果;抽取结果用于消除两个优化拓扑中的共同链路而保留差异链路;采用预设的解码算法对抽取结果进行解码运算,得到差异链路,并且通过差异节点和差异链路进行网络拓扑校准。所述网络拓扑校准方法能够在缺乏先验知识的条件下实现高效率的网络拓扑校准,并能降低存储成本及通信开销。

Description

一种网络拓扑校准方法
技术领域
本发明涉及网络拓扑校准技术领域,特别是指一种网络拓扑校准方法。
背景技术
在网络通讯中,当网络中产生链路错位、硬件故障或者软件崩溃等异常状况时,网络拓扑会随之发生动态变化。但对许多拓扑使能的协议或应用程序来说,它们必须精确地知道底层网络当前的拓扑情况,由此引出了拓扑校准问题。
考虑一对给定的拓扑GA和GB,拓扑校准问题的任务是推导出GA和GB之间不同的节点和链路。实际上,拓扑校准是各种网络系统和分布式应用中常见且基本的任务。在配置阶段,连线错误或其他人为错误都可能导致实际建立的网络拓扑与设计蓝图之间的不匹配。举例来说,对于DCell、BCube等增强数据中心的网络性能的新型拓扑来说,错误的连线将破坏拓扑的对称或层次结构,因此必须进行拓扑校准。此外,许多基本应用程序或协议,例如:源路由、多播、incast、单播,必须了解底层网络的确切拓扑;源路由要求每个主机记录网络拓扑以推导出正确的路由路径。因此,一旦网络拓扑发生变化,主机就必须追踪和更新它的拓扑视图。如果过时的拓扑不能被及时更新,就会对路由性能造成负面影响。多播、Incast和单播协议沿着基于当前网络拓扑生成的最小代价树或路径传送数据包。此外,在软件定义网络(SDN)的模式下,多个控制器以分层或分布式方式部署。每个控制器负责及时维护整个网络的拓扑,以便能够立即地为每一个新的流生成正确的路由路径。最后,在计算机网络社区之外,在图形被用作一种高层次抽象(例如图形数据挖掘,知识图谱,社交网络)的其他领域中,推导出生成的图形之间的差异对于揭示演变模式或识别其拓扑相似性是至关重要的。
对于两种给定的拓扑结构,拓扑校准的任务是推导出它们之间所有不同的节点和链路。实际上,可以通过用新型的数据结构表示每个拓扑中的所有节点,例如BloomFilter,哈希表,搜索树,来有效地搜索那些不同的节点。然而,网络中的链路数量远远大于节点的数量。用上述数据结构来表示链路将会导致巨大的存储成本和通信开销。
综上,在实现本申请的过程中,发明人发现现有技术至少存在以下问题:现有数据结构及校准方法无法在缺乏先验知识的条件下实现高效率的校准。
发明内容
有鉴于此,本发明的目的在于提出一种网络拓扑校准方法,能够在缺乏先验知识的条件下实现高效率的网络拓扑校准,并能降低存储成本及通信开销。
基于上述目的本发明提供的一种网络拓扑校准方法,包括:
采用现有算法查找得到给定两个原始拓扑中的差异节点;
基于差异节点得到与差异节点相连接的链路,并且在两个原始拓扑中删除差异节点以及与差异节点相连接的链路,得到具有相同节点的两个优化拓扑;
采用预设的图过滤器结构来表示两个优化拓扑结构中的拓扑信息;其中,所述预设的图过滤器包括与n个节点对应且相互独立的n个单元,每个单元分别采用idSum表示对应节点的所有邻居节点的id进行异或操作得到的聚合信息、采用Count表示对应节点的邻居节点的个数;
对于每个节点,通过对两个优化拓扑中的idSum进行异或运算、对两个优化拓扑中的Count进行相减运算得到两个优化拓扑对应的抽取结果;所述抽取结果用于消除两个优化拓扑中的共同链路而保留差异链路;
采用预设的解码算法对抽取结果进行解码运算,得到差异链路,并且通过差异节点和差异链路进行网络拓扑校准。
可选的,所述预设的解码算法包括:
对抽取结果进行遍历并且搜索得到锚单元;其中,所述锚单元为两个优化拓扑中具有不同数量的邻居节点且至少有1个不同的邻居节点对应的单元;
通过锚单元中的节点信息得到锚单元对应的链路信息;
将上述锚单元中得到的链路加入到差异链路集合中并且在抽取结果中删除该链路;
重复上述过程,直到无法找到锚单元,则退出算法,得到差异链路集合。
可选的,所述通过锚单元中的节点信息得到锚单元对应的链路信息的步骤包括:判断选定的锚单元所指向的单元是否为空单元;若是,则该选定的锚单元为非法锚单元,重新选取锚单元。
可选的,所述预设的解码算法还包括:
解码后得到剩余拓扑结构,包括剩余节点和剩余链路;
构建一条与剩余节点连接的链路;
对剩余拓扑结构生成一个剩余拓扑结构副本;
在剩余拓扑结构副本中删除构建的链路,并且执行解码过程,获得新的差异链路以及参与解码过程的单元;
判断所有参与解码过程的单元是否均为相应节点具有相同数量的邻居界节点对应的单元;
若是,则将差异链路添加到差异链路集合中,并退出算法;
否则,重新构建一条不同的链路并且重复上述过程。
可选的,针对于多个独立的闭环链路,通过对应多次执行破环算法将所有闭环链路进行破解并解码。
从上面所述可以看出,本发明提供的网络拓扑校准方法通过在现有算法获取差异节点的基础上,采用预设的图过滤器结构来表示两个给定的拓扑结构优化得到的拓扑结构,进而通过编码、抽取以及解码的过程得到差异链路。因此,本申请所述网络拓扑校准方法能够在缺乏先验知识的条件下实现高效率的网络拓扑校准,并能降低存储成本及通信开销。
附图说明
图1为本发明提供的网络拓扑校准方法的一个实施例的流程图;
图2为本发明提供的网络拓扑校准中解码算法的一个实施例的流程图;
图3为本发明提供的网络拓扑校准方法中抽取操作示意图;
图4为本发明提供的网络拓扑校准方法中解码操作示意图;
图5为本发明提供的闭环链路无法解码的一个实施例的示意图;
图6a为本发明提供的图过滤器与其他数据结构进行比较时传销开销示意图;
图6b为本发明提供的图过滤器与其他数据结构进行比较且|V1|变化时的时间开销示意图;
图6c为本发明提供的图过滤器与其他数据结构进行比较且|D1|变化时的时间开销示意图;
图6d为本发明提供的图过滤器与其他数据结构进行比较且p0变化时的时间开销示意图;
图7a为本发明提供的节点从200-3000且|V1|变化时的假阳性比例示意图;
图7b为本发明提供的节点从200-3000且|V1|变化时的假阴性比例示意图;
图8a为本发明提供的链路从20-280个且|V1|变化时的假阳性比例示意图;
图8b为本发明提供的链路从20-280个且|V1|变化时的假阴性比例示意图;
图9a为本发明提供的p0变化时的假阳性比例示意图;
图9b为本发明提供的p0变化时的假阴性比例示意图;
图10a为本发明提供的网络规模和差异边数量增加且K变化时的时间开销示意图;
图10b为本发明提供的网络规模和差异边数量增加且|D1|变化时的时间开销示意图;
图11a为本发明提供的网络规模和差异边数量增加且K变化时的假阳性比例示意图;
图11b为本发明提供的网络规模和差异边数量增加且|D1|变化时的假阳性比例示意图;
图12a为本发明提供的网络规模和差异边数量增加且K变化时的假阴性比例示意图;
图12b为本发明提供的网络规模和差异边数量增加且|D1|变化时的假阴性比例示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
拓扑校准需要有效推导出两种给定拓扑之间不同的节点和链路。实际上,推导出不同的节点是相对简单的。然而,从大规模链路中挑选出不同的链路却需要花费很大的代价。因此,本申请提出了一种根据以下理念定位不同的链路的方法:1)高效率,耗费较低的存储成本与通信开销;2)没有先验知识,由于没有支持信息,因此不同的链路需要能被反向解码。现有的基于Bloom filter、哈希表或搜索树的策略无法同时实现这两个理念。因此,本申请提出图过滤器,即一种高空间效率的数据结构,它能以可逆的方式来表示和推导出不同的链路。并且本申请提出了相关的编码、抽取和原始解码算法。注意到,编码阶段的异或陷阱可能导致解码时的计算错误。因此,进一步提出了解码增强算法,通过终止一些非法解码过程来缓和异或陷阱的影响。此外,本申请也设计了一种破环算法来处理不同链路连接成环的情况。综合评估表明,与其他数据结构相比,图过滤器消耗的空间开销最少,并且能以可接受的错误率为代价,进行合理的可逆解码。本申请对应的校准方法为拓扑使能的协议和应用程序带来前所未有的好处,特别是能够确保其服务质量(QoS)。
参照图1所示,为本发明提供的网络拓扑校准方法的一个实施例的流程图。所述网络拓扑校准方法包括:
步骤101,采用现有算法查找得到给定两个原始拓扑中的差异节点;其中,所述现有算法包括基于Bloom filter、哈希表或搜索树等策略实现的校准方法;这是由于现有方法中查找差异节点属于较为容易的过程,而本申请主要在于查找差异链路的改进。
步骤102,基于差异节点得到与差异节点相连接的链路,并且在两个原始拓扑中删除差异节点以及与差异节点相连接的链路,得到具有相同节点的两个优化拓扑;基于差异节点,那么与差异节点连接的链路也应该是差异链路,进而可以在原始拓扑结构中删除这些差异节点以及与差异节点相连接的链路,得到具有相同节点的优化拓扑结构,进而将校准问题转化为在优化拓扑中查找差异链路的问题,你个优化校准准确性和效率。需要说明的是,本申请中所述链路通常是指在拓扑结构中不同节点之间连接形成的边,也即链路等同于边。
步骤103,采用预设的图过滤器结构来表示两个优化拓扑结构中的拓扑信息;其中,所述预设的图过滤器包括与n个节点对应且相互独立的n个单元,每个单元分别采用idSum表示对应节点的所有邻居节点的id进行异或操作得到的聚合信息、采用Count表示对应节点的邻居节点的个数;本申请提出一种新的数据结构来表示拓扑中的信息,尤其是针对于节点id进行聚合得到的信息以及邻居节点的数目。同样,对于拓扑信息的处理也为本申请中对信息的编码过程。
步骤104,对于每个节点,通过对两个优化拓扑中的idSum进行异或运算、对两个优化拓扑中的Count进行相减运算得到两个优化拓扑对应的抽取结果;所述抽取结果用于消除两个优化拓扑中的共同链路而保留差异链路;其中,所述异或运算是指相同则取1,不同则取0;通过运算实现信息提取,使得后续能够消除共同链路保留差异链路。
步骤105,采用预设的解码算法对抽取结果进行解码运算,得到差异链路,并且通过差异节点和差异链路进行网络拓扑校准。通过对提取信息的解码,可以得到拓扑中的差异链路。
由上述实施例可知,本申请提供的网络拓扑校准方法通过在现有算法获取差异节点的基础上,采用预设的图过滤器结构来表示两个给定的拓扑结构优化得到的拓扑结构,进而通过编码、抽取以及解码的过程得到差异链路。因此,本申请所述网络拓扑校准方法能够在缺乏先验知识的条件下实现高效率的网络拓扑校准,并能降低存储成本及通信开销。
参照图2所示,为本发明提供的网络拓扑校准中解码算法的一个实施例的流程图。所述预设的解码算法包括:
步骤201,对抽取结果进行遍历并且搜索得到锚单元;其中,所述锚单元为两个优化拓扑中具有不同数量的邻居节点且至少有1个不同的邻居节点对应的单元;
步骤202,通过锚单元中的节点信息得到锚单元对应的链路信息;
步骤203,将上述锚单元中得到的链路加入到差异链路集合中并且在抽取结果中删除该链路;
步骤204,重复上述过程,直到无法找到锚单元,则退出算法,得到差异链路集合。
这样,通过上述递归解码的过程,能够将链路集合均解码出来,通过锚单元的选取及删除,能够使得更多的锚单元进一步暴露出来。因此,上述解码算法既高效又稳定。
在本申请一些可选的实施例中,所述通过锚单元中的节点信息得到锚单元对应的链路信息的步骤包括:判断选定的锚单元所指向的单元是否为空单元;若是,则该选定的锚单元为非法锚单元,重新选取锚单元。这样,通过排除非法的锚单元,可以一定程度上减缓或者消除异或陷阱,提高校准精度。
在本申请一些可选的实施例中,所述预设的解码算法还包括:
解码后得到剩余拓扑结构,包括剩余节点和剩余链路;
构建一条与剩余节点连接的链路;
对剩余拓扑结构生成一个剩余拓扑结构副本;
在剩余拓扑结构副本中删除构建的链路,并且执行解码过程,获得新的差异链路以及参与解码过程的单元;
判断所有参与解码过程的单元是否均为相应节点具有相同数量的邻居界节点对应的单元;
若是,则将差异链路添加到差异链路集合中,并退出算法;
否则,重新构建一条不同的链路并且重复上述过程。
这样,通过对假设链路的尝试可以将闭环链路打破,进而实现对闭环链路的解码,提高网络拓扑校准的准确性。
在本申请的一些可选的实施例中,为了更加清楚的显示本申请所述网络拓扑校准方法的具体原理,还公开了本申请网络拓扑校准方法的实现、研究过程。具体内容如下:
首先,需要对拓扑校准相关问题进行建模:在许多情况下,确定两个给定拓扑之间不同的节点和链路是一项基本任务。其中,两个给定拓扑为检测到的物理拓扑和设计网络的蓝图或者当前实际拓扑和SDN控制器保存的拓扑。
用GA(VA,EA)与GB(VB,EB)来分别表示两个给定的拓扑。VA、VB是节点,即网络设备的集合,EA、EB是网络设备之间链路的集合。拓扑校准的任务是及时地提取出GA和GB之间增删的链路和节点。用ΔV和ΔE分别表示不同的节点与不同的链路。显然,当以GA作为参照时,
Figure BDA0001314272310000071
其中,
Figure BDA0001314272310000072
Figure BDA0001314272310000073
分别记录了增加和删除的节点。同样地,
Figure BDA0001314272310000074
其中,
Figure BDA0001314272310000075
Figure BDA0001314272310000076
分别记录了增加和删除的链路。
虽然广泛研究的子图匹配算法能够解决网络拓扑校准问题。然而,这些算法是计算密集型的,且这些被设计应用的子图匹配问题被证明是NP-hard问题。但发明人发现,在给定的网络中,每个节点都与唯一的地址相关联,其中,地址为IP地址或MAC地址。基于这一观察,子图匹配算法不再需要进行复杂的比较。此外,这也使得给定的拓扑能够用巧妙的数据结构来表示,例如BloomFilter及其变种、哈希表、树等等。举例来说,Bloom Filter可以将VA中所有的节点记录下来,它将每个节点的IP地址或MAC地址映射到对应的一个位向量中。
注意到,将ΔV中节点导出的方法有很多。一个简单有效的方案是将VA和VB中所有节点的IP地址或MAC地址映射到Bloom Filter或其变体之中。如果使用的是Bloom Filter,则可以通过查询VA中所有的元素是否被BFB记录,进而得出
Figure BDA0001314272310000081
其中,BFB记录了VB中所有的节点。同样可以通过查询VB中所有的元素是否被BFA记录来得出
Figure BDA0001314272310000082
其中BFA记录了VA中所有的节点。这个算法的时间复杂度是O(N),其中,N表示GA和GB之间节点数的最大值。然而,现有策略无法有效地识别ΔE中的链路。主要原因是在高度连接的网络中,链路的数量远远高于节点的数量。特别是在某些超额认购的网络设计中,为了保证可靠的连通性以及容错性,链路数目甚至高达O(N2)。因此,利用Bloom Filter或其他数据结构来表示链路将会导致更多的存储成本和时间开销。基于现有方法在导出ΔE时的低效表现,本申请提出一种新型的数据结构来表示每个拓扑中的所有链路,然后识别出ΔE中不同的链路。
由于找出两个拓扑之间的差异节点ΔV可以通过现有的数据结构来有效解决。本申请主要聚焦于解决找出差异连边ΔE上,也即本申请关键在于操作差异链路。需要注意的是,通过查找ΔV,ΔV中与差异节点相连的边也能被一起推导出。从给出的原有拓扑GA和GB中将ΔV中所有节点及与之相连的边删除,进而分别得到优化拓扑
Figure BDA0001314272310000083
Figure BDA0001314272310000084
事实上,以上操作所得到
Figure BDA0001314272310000085
Figure BDA0001314272310000086
具有完全相同的节点,但是可能会拥有不同的边。如此一来,就将拓扑校准问题简化为寻找
Figure BDA0001314272310000087
Figure BDA0001314272310000088
之间差异边
Figure BDA0001314272310000089
问题。n表示
Figure BDA00013142723100000810
Figure BDA00013142723100000811
中的节点个数,为了方便计算,用1到n之间的整数来标记
Figure BDA00013142723100000812
Figure BDA00013142723100000813
中的每个节点。这一全局标记策略可以通过对网络中每个节点的IP地址或MAC地址建立字典序来得到。隐藏,每条边可以标记为<i,j>,其中,i和j分别代表与这条边相连的两个节点。
为了计算出
Figure BDA00013142723100000814
本申请首先设计了一种内存友好的数据结构,即图过滤器,用于表示任意的拓扑结构。然后,基于图过滤器来实现计算出
Figure BDA00013142723100000815
Figure BDA00013142723100000816
之间差异边
Figure BDA00013142723100000817
的目的。
具体的,一个图过滤器由n个相互独立的单元组成,其中第i个单元记录拓扑中标记为i的节点的所有邻居节点信息。每个单元包含两个域,即idSum域和Count域。其中,Count域用于记录该节点的邻居节点个数,而idSum域则对将该节点所有邻居节点的id进行异或操作从而实现邻居节点信息聚合。注意到,节点的id实际上是其对应标记的二进制形式。因此,每个id消耗的字节数为
Figure BDA00013142723100000819
n+1表明节点的标号从1开始而不是0。
参照图3所示,为本发明提供的网络拓扑校准方法中抽取操作示意图。图3描述了一个使用图过滤器表示拓扑结构的例子。具体的,给定拓扑
Figure BDA00013142723100000818
中有5个节点,因此节点的标记为1到5之间的整数,而节点的id则需要3个比特位。在最终的图过滤器
Figure BDA0001314272310000091
中,需要5个单元来分别记录每个节点的邻居信息。
Figure BDA0001314272310000092
中,节点1有两个邻居(节点2和节点3),因此
Figure BDA0001314272310000093
Figure BDA0001314272310000094
同样的,其他单元也以此种方式记录相应节点的邻居信息。对于
Figure BDA0001314272310000095
Figure BDA0001314272310000096
中相同位置的单元如果得到相同的idSum和Count,则表示
Figure BDA0001314272310000097
Figure BDA0001314272310000098
中该节点具有相同的邻居节点的概率很高。
基于提出的图过滤器结构,相应的需要三种操作来计算出
Figure BDA0001314272310000099
中所包含的边,即编码,抽取和解码。首先,分别用图过滤器将
Figure BDA00013142723100000910
Figure BDA00013142723100000911
分别表示为
Figure BDA00013142723100000912
Figure BDA00013142723100000913
然后,抽取操作将
Figure BDA00013142723100000914
Figure BDA00013142723100000915
中共同的边消除,得到记录
Figure BDA00013142723100000916
中边信息的
Figure BDA00013142723100000917
最后,将
Figure BDA00013142723100000918
中所包含的边进行反向解码,得到差异边或差异链路。
编码操作的基本原则是第i个单元记录标号为i的节点的邻居信息。当一个邻居节点被录入时,相应单元的Count域加1,而idSum域则执行异或运算。所以,idSum域将所有邻居信息进行融合,而Count域则记录邻居节点数量。
抽取操作的主要任务是消除两个拓扑之间的共同边,但保留差异边。为实现这一 目的,需要遍历
Figure BDA00013142723100000919
Figure BDA00013142723100000920
并推断出
Figure BDA00013142723100000921
可选的,对于
Figure BDA00013142723100000922
中的任意第i个单元,推导 算法为
Figure BDA00013142723100000923
Figure BDA00013142723100000924
大多数情况下,
Figure BDA00013142723100000925
均能正确记录
Figure BDA00013142723100000926
中的边,然而,由于抽取过程中的异或陷阱,可能会导致计算错误。其原因是,不同邻居节点的组合经过异或运算会得到相同的idSum。例如,001⊙101和110⊙011的结果都是100。在
Figure BDA00013142723100000927
中,如果001和101正好是节点i的邻居,而110和011是
Figure BDA00013142723100000928
中节点i的邻居。在此种情况下,抽取操作的结果为
Figure BDA00013142723100000929
因而会将所有邻居节点的信息都消除。本申请称此种情况为异或陷阱。但是,在没有发生异或陷阱时,如果
Figure BDA00013142723100000930
Figure BDA00013142723100000931
Figure BDA00013142723100000932
中节点i必然具有不同的邻居。另外,若
Figure BDA00013142723100000933
Figure BDA00013142723100000934
Figure BDA00013142723100000935
中节点i必然具有不同数量的邻居节点。因此,经过抽取操作,
Figure BDA00013142723100000936
中可能存在以下四种类型的单元。
类型1:idSum≠0并且Count≠0。
Figure BDA00013142723100000937
Figure BDA00013142723100000938
中的相应节点拥有不同数量的邻居,并且至少有Count个不同的邻居节点。
类型2:idSum≠0并且Count=0。
Figure BDA00013142723100000939
Figure BDA00013142723100000940
中的相应节点有相同数量的邻居,但这些邻居节点并不完全相同。
类型3:idSum=0并且Count≠0。
Figure BDA0001314272310000101
Figure BDA0001314272310000102
中的相应节点拥有不同数量的邻居,抽取过程中出现了异或陷阱,导致将不同邻居节点的信息隐藏。
类型4:idSum=0并且Count=0。
Figure BDA0001314272310000103
Figure BDA0001314272310000104
中的相应节点有相同数量的邻居,但不能断定这些邻居节点是否完全相同。
图3完整展示了给定两个拓扑的抽取操作,其计算所得
Figure BDA0001314272310000105
中包含三种类型的单元,即类型1、类型2和类型4。由于
Figure BDA0001314272310000106
Figure BDA0001314272310000107
中标号为1的节点都有两个邻居节点,但这些邻居节点并不完全相同,因此,所得到的
Figure BDA0001314272310000108
Figure BDA0001314272310000109
Figure BDA00013142723100001010
Count域的正负属性则代表从
Figure BDA00013142723100001011
中增加(负)或删除(正)了Count条边。
更具挑战性的任务是从抽取结果中还原出其中记录的不同的边,从而完成拓扑校准任务。为完成这一任务,本申请将
Figure BDA00013142723100001013
中那些idSum≠0并且Count=1的单元设定为锚单元。利用loc表示所选取的锚单元在
Figure BDA00013142723100001014
中所在位置,tag表示id为
Figure BDA00013142723100001015
的节点标号。则锚单元中记录的是边<loc,tag>的概率很高。基于此观察,本申请以一种递归的方式将
Figure BDA00013142723100001016
Figure BDA00013142723100001017
中反向还原出来。算法1中阐述了解码操作的具体实现细节,主要包含以下内容:
Figure BDA00013142723100001018
对应的,解码操作包括以下步骤:
步骤1:扫描。算法对当前的
Figure BDA0001314272310000111
进行遍历并搜索出一个合适的锚单元,对应算法1中的第2行到第7行。如果当前
Figure BDA0001314272310000112
中无法找到锚单元,则算法退出,否则进入步骤2。
步骤2:转录。这一步将推断出锚单元里记录的边信息。为达到这一目的,必须计算出边的两端节点。注意到,锚单元中记录的边一端节点正好是锚单元所在位置对应的节点,而另一个节点则是锚单元中idSum所描述的节点。因此,将
Figure BDA0001314272310000113
转换为整数,便得到另一端节点,对应算法1中的第8行到第9行。
步骤3:记录。将步骤2中所得边加入到ΔD中对应算法1中的第11行。
步骤4:删除。在推断出一条边信息之后,需要将这条边从当前
Figure BDA0001314272310000114
中删除,以便暴露出更多锚单元。为此,需要将
Figure BDA0001314272310000115
中的idSum域和Count域都置为0。相应地,
Figure BDA0001314272310000116
中原本存储的节点loc的信息也要删除,具体操作是使用异或操作删除
Figure BDA0001314272310000117
中loc节点的id,并将
Figure BDA0001314272310000118
进行重置对应算法1中的第12行到第18行。最后,返回到步骤1重复运算。
实际上,在图过滤器中,任一条边<i,j>的信息均存储在
Figure BDA0001314272310000119
Figure BDA00013142723100001110
中。因此,当两者中任意一个单元被选作锚单元时,边<i,j>都能从
Figure BDA00013142723100001111
解码出来。另外,将解码出的边从
Figure BDA00013142723100001112
中删除,能暴露出更多的锚单元,从而使得解码算法能持续迭代运行。图4中展示了将图3所得
Figure BDA00013142723100001113
进行解码的过程。首先,算法遍历
Figure BDA00013142723100001114
并确定
Figure BDA00013142723100001115
为锚单元。之后,运行步骤2,计算出loc和tag的值分别为2和1。所得的边<2,1>在步骤3中被加入ΔD中。之后,
Figure BDA00013142723100001116
删除节点1的信息,而
Figure BDA00013142723100001117
则删除节点2的信息。如此一来,新的锚单元将会出现,即
Figure BDA00013142723100001118
通过多次执行以上步骤,所有
Figure BDA00013142723100001119
中的边将会以较高概率被成功解码出来,也即差异边被以递归的方式逐个解码。
虽然由于存在异或陷阱,图过滤器可能会错过一些
Figure BDA00013142723100001120
中的边,或者解码算法可能会提前停止,使得
Figure BDA00013142723100001121
中留下一些没有被解码的边。但是,本申请的校验方法能在没有先验知识的条件下,以高概率成功解码
Figure BDA00013142723100001122
特别是当拓扑之间差异边数量较少时,准确率已足够满足要求。此外,网络中大量边同时失效的概率是微乎其微的。假设任何一条边在某一时间窗口内失效的概率为p0,k表示某个时间窗口内失效的边数量。对于任意整数0≤x≤|E1|,其中|E1|表示
Figure BDA00013142723100001123
中边的总数,则:
Figure BDA0001314272310000121
也就是说,p(k=x)服从典型的二项分布,因此,网络中大量边同时失效的概率非常小。也即,本申请中的校准方法是实际有效的。
进一步,针对于一旦出现异或陷阱,以上解码算法就可能导致假阳性误判和假阴性误判的情形。例如:假设
Figure BDA0001314272310000122
中节点e的邻居节点的id为0101,1100和1011,其对应的
Figure BDA0001314272310000123
为0010。而在
Figure BDA0001314272310000124
中,如果节点e的邻居节点的id为1001和0110,则将会在抽取过程中出现异或陷阱,因为在节点e在
Figure BDA0001314272310000125
中的邻居节点0101和1100异或的值为1001,而1001正好是e在
Figure BDA0001314272310000126
中的一个邻居节点。所以,经过抽取操作而得到的
Figure BDA0001314272310000127
Figure BDA0001314272310000128
在计算出的
Figure BDA0001314272310000129
中,节点e在
Figure BDA00013142723100001210
中的邻居节点1001和0110,以及节点e在
Figure BDA00013142723100001211
中的邻居节点1001信息将会由于异或陷阱的存在而被消除。如此一来,解码过程中将会出现假阴性误判,也即漏掉几条边。另外,计算出的
Figure BDA00013142723100001212
满足作为锚单元的条件,一旦
Figure BDA00013142723100001213
被选中作为锚单元,则将会引入一条额外的边进入ΔD,即从节点e到节点1101的边。而这无疑会导致假阳性误判。
需要注意的是,一旦抽取操作被执行完毕,潜在的异或陷阱将会被嵌入所得的
Figure BDA00013142723100001214
之中并且不能被消除。本申请可以通过执行调整后的解码算法来减缓异或陷阱的负面影响。在上面提到的例子中,如果正好选中
Figure BDA00013142723100001215
作为锚单元,则将会引入一条额外的边进入ΔD,即从节点e到节点1101的边。然后,解码算法将会根据步骤4把
Figure BDA00013142723100001216
中节点e的信息通过异或的方式删除。类似地,
Figure BDA00013142723100001217
有可能也能满足作为锚单元的条件,如此一来,当
Figure BDA00013142723100001218
被选作锚单元时,又会引入一条额外的从节点1101到其他节点的边。也就是说,异或陷阱可能会导致级联的错误解码操作,并引入一系列假阳性误判。换句话说,必须想办法阻止级联错误出现,从而减轻异或陷阱的负面影响。
一般地,在
Figure BDA00013142723100001219
中,大多数单元都是空的,也就是说其idSum域为0…00,而其Count域值为0。因此,上述级联的错误解码很可能指向一个原本为空的单元。假设一个指向空单元的候选锚单元被判定为不合法,并且不执行后续的解码操作,则能从一定程度上减轻异或陷阱带来的影响。基于此观察,本申请重新设计了图过滤器的解码算法,并严格对选定的锚单元的约束。具体而言,在算法1的转录过程中,即步骤2,如果
Figure BDA00013142723100001220
Figure BDA0001314272310000131
Figure BDA0001314272310000132
将被认为不是合法的锚单元,后续的步骤3和步骤4将不会被执行。这样一来,某些潜在的错误解码将会被有效杜绝。
上面所述策略,能减少解码的假阳性误判,但是一定程度上会增加假阴性误判。通过终止某些潜在的会引起假阳性误判的解码操作,此种策略同时也会漏掉那些第4类单元所存储的边。实际上,对于第4类单元而言,其dSum=00…0且Count=0,意味着该节点在
Figure BDA0001314272310000133
Figure BDA0001314272310000134
中具有相同个数的邻居节点,但是不能断定这些邻居节点是否一样,因为可能存在异或陷阱。比如,标号为6的节点在
Figure BDA0001314272310000135
Figure BDA0001314272310000136
中有不同的邻居节点,
Figure BDA0001314272310000137
记录节点1100和0101的信息,而
Figure BDA0001314272310000138
则由节点0100和1101聚合而成。则经过抽取操作后,所得
Figure BDA0001314272310000139
将是一个典型的第4类单元。当
Figure BDA00013142723100001310
(节点12是
Figure BDA00013142723100001311
中节点6的一个邻居)被选作候选的锚单元时,根据上面的对解码算法的改进策略,由于
Figure BDA00013142723100001312
是第4类单元,解码操作将会被终止,便不能成功解码出从节点6到节点12的边,从而导致遗漏。因此,需要对假阳性和假阴性进行权衡,相应调整算法。
更进一步,图过滤器将拓扑中节点的邻居节点信息通过异或操作进行聚合,但是在解码操作执行之后,
Figure BDA00013142723100001313
仍然有可能会存在一些无法被反向解码的边。例如,一旦
Figure BDA00013142723100001314
Figure BDA00013142723100001315
中的一些差异边组成若干闭环,这些闭环中的边则不能通过以上解码方法从
Figure BDA00013142723100001316
中反向解码。如图5所示,
Figure BDA00013142723100001317
Figure BDA00013142723100001318
中一共有5个节点,但是
Figure BDA00013142723100001319
Figure BDA00013142723100001320
之间一共有4条不同的边,即<1,2>,<2,3>,<3,4>和<4,1>。这四条边正好形成一个闭环,因此,无论是原始的解码算法1还是经过改进的解码算法都无法从
Figure BDA00013142723100001321
中找出合法的锚单元。为了解决这一困境,必须想办法将形成的闭环打破,以便暴露出更多合法的锚单元。然而,直接将闭环打破并不可行,因为没有关于闭环中边的任何先验信息。并且不知道究竟存在多少个闭环,更致命的是,一个节点或者边可能参与构建多个闭环。
为此,本申请提出算法2,用于解决单个闭环的解码问题。其基本思想是假设与剩下的节点相连的某条边为该闭环中的一条边,并将该边从
Figure BDA00013142723100001322
中删除,以便使能更多的锚单元。特别地,让
Figure BDA00013142723100001323
表示经过解码操作之后剩余下的
Figure BDA00013142723100001324
版本,U表示
Figure BDA00013142723100001325
中未被解码的单元数量,而locj(1≤j≤U)表示
Figure BDA00013142723100001326
中未被解码的单元的位置。注意到,形成闭环的节点度都为2,因此只需要删除其中任何一条边,都可以使整个闭环变得可解。
算法2具体包括:
Figure BDA0001314272310000141
算法2试图删除以loc1位置的节点为端点且指向任何可能节点的一条边。因此,逐一尝试的话,需要尝试U-1种可能的边。在每次尝试时,都生成一个
Figure BDA0001314272310000142
的副本,记为
Figure BDA0001314272310000143
后续的操作将在这个副本上进行对应算法2的第5行。在算法2的第6行中,一个假设的边Test被实体化。然后,将Test从
Figure BDA0001314272310000144
中删除,以此来使能更多锚单元,对应算法2的第7行到第10行。在选定一个锚单元之后,将执行解码操作以计算出存储在
Figure BDA0001314272310000145
中的边,对应算法2的第11行。如果所有参与解码过程的单元都被最终置为类型4的单元,则认为Test为闭环中的一条边这一假设成立,对应算法2的第12行到第13行。如此一来,解码出来的边将被加入ΔD中并终止算法2,对应算法2的第14行到第15行。否则,进入下一轮尝试。实际上,此种策略尝试的次数服从集合分布,其概率参数
Figure BDA0001314272310000146
所以,其期望值为
Figure BDA0001314272310000147
同时,以上的假设-检验策略也可以用于解决当
Figure BDA0001314272310000148
中出现多个相互独立的闭环时解码算法不可用的问题。通过执行算法2多次,
Figure BDA0001314272310000149
中的多个独立闭环可以逐一被破解,从而将
Figure BDA00013142723100001410
中记录的边信息解码。让C表示
Figure BDA00013142723100001411
中独立闭环的个数,
Figure BDA00013142723100001412
表示
Figure BDA00013142723100001413
中未被解码的单元数量,其中ui是第i个闭环所包含的边数。则算法2执行次数的期望值便为:
Figure BDA0001314272310000151
值得注意的是,由于闭环相互独立,对某个闭环的解码操作将不会影响其他闭环。当解码第一个闭环时,在U-1个节点中只有2个是
Figure BDA0001314272310000152
节点的邻居。因此,算法2执行次数的期望值为
Figure BDA0001314272310000153
类似地,当解码第i个闭环时,
Figure BDA0001314272310000154
节点将会有
Figure BDA0001314272310000155
个可能的邻居,所以算法2执行次数的期望值为
Figure BDA0001314272310000156
也就意味着,算法2执行次数与
Figure BDA0001314272310000157
中未解码的单元个数U和相互独立的闭环个数C成正比。
实际上,当多个闭环公用某些边或者节点时,算法2也不能成功解码
Figure BDA0001314272310000158
中未解码的单元。然而,一方面,这种特殊情况在大型数据中心里出现的概率是极小的。另一方面,那些参与多个闭环的节点信息仍然存储在
Figure BDA0001314272310000159
中,因此,可以直接对比
Figure BDA00013142723100001510
Figure BDA00013142723100001511
中相应节点来确定出差异边。
此外,本申请实施例还对异或陷阱的概率进行了分析。对于拓扑中的任意节点,图过滤器通过异或操作聚合其邻节点的信息。这种压缩思想可以降低存储成本,减少通信开销,但是在解码过程中会出现计算错误的风险。因此,本申请将量化异或陷阱的概率。对于异或陷阱,不同的节点对会产生相同的异或结果,导致对后续解码操作的负面影响。令l为常数并表示id的位数,n表示给定拓扑中的节点数。为了简化分析,考虑n等于2l-1的情况。要注意的是,l位的id可以用以识别21个节点,但是不使用00…00来表示节点,因此节点数量为2l-1。
对于拓扑
Figure BDA00013142723100001512
中的任意节点e,使λ为e的度数,即节点e具有λ个邻节点。e的邻节点已被记录在
Figure BDA00013142723100001513
中。注意到,
Figure BDA00013142723100001514
通过异或操作记录了它的λ个邻节点的id。将λ个邻节点可能的组合的异或结果称为中间结果。令α表示中间结果的数量。因此,不同的邻节点会导致不同的α值。例如,如果e具有三个邻居,即101,111和011,那么异或操作将有四个中间结果,包括由101和111异或得到的010,由101和011得到的110,由111和011得到的100,以及由它全部三个邻节点101,111和011进行异或得的001。注意,对于任何节点,不同的邻节点将导致不同数量的中间结果。邻节点的id或中间结果都可能遇到GFB产生的异或陷阱,导致解码时的计算错误。
经过以上分析,可以得到定理1:用pλ与pα分别表示λ个邻节点中任意一个节点与α个中间结果中任意一个中间结果遇到GB中异或陷阱的概率。那么有:
Figure BDA0001314272310000161
Figure BDA0001314272310000162
证明:注意到,当计算pα时,一个中间结果只会遇到GB中一个邻节点导致的异或陷阱。例如,在GFA[i]中的中间结果1100会被GB中的邻节点1100消除。但是对于记录在GFA[i]中的邻节点1010来说,如果GFB[i]中也记录有1010,那么它就不是一个异或陷阱。因此,pλ的分子比pα大1。在接下来的内容中,只计算pα,而pλ能够以相同的方式计算得出。
给定一个记录在GFA[i]中的中间结果,记作inter。令X表示GFB[i]中异或结果正好等于inter的邻节点的数目。令C(X=x)表示当X=x时inter引起异或陷阱的组合的数目。这时有:
Figure BDA0001314272310000163
实际上,当X=1时,中间结果inter只有在当GFB[i]中恰好保存了id与inter相等的节点时才会遇到异或陷阱。因此,C(X=1)=1。当X=x并且2≤x≤λ时,假设inter=id1⊙id2⊙…⊙idx,其中idi(1≤i≤x)表示包含在这个异或陷阱中的邻节点。为了正确求出C(X=x),需要确定idi可能存在的情况。注意到id1,id2,…,idx彼此间需要进行区分。因此,id1共有2l-2种选择,不包含00…00与inter本身。而id2除了00…00与inter本身以外,id1选择的值也不能再次选择。因此id2共有21-3种可能的选择。以此类推,idi共有2l-i-1种选择。等式可以利用数学归纳法证明。
根据上述等式,GFA[i]中的inter会引起异或陷阱的情况共有
Figure BDA0001314272310000167
Figure BDA0001314272310000164
种。注意到,对于GFA[i],它的邻节点共有
Figure BDA0001314272310000165
种可能的组合,其中λ表示GA中节点e的邻节点的总数。因此,pα可以计算为
Figure BDA0001314272310000166
同样地,pλ也能够被合理地计算出来。因此定理1得证。
根据定理1,能够确定GFA[i]中不发生异或陷阱的概率,记其为pc。简要来说,本申请认为λ个邻节点或α个中间结果中的任意一个发生异或陷阱的事件都是独立的。因此,pc能够被计算为(1-pα)α×(1-pλ)λ。并且,令Y表示没有发生异或陷阱的单元数目。那么p(Y=y)服从典型的二项分布,即
Figure BDA0001314272310000171
其中0≤y≤n。并且Y值得期望为n×pc。显然,更大的pc会导致更多的异或陷阱,并因此降低解码操作的准确性。在图过滤器的框架中,异或陷阱不可避免。但是只有当
Figure BDA0001314272310000172
中的链路遇到异或陷阱时,才会影响到图过滤器解码操作的准确性。
在本申请的另一些可选的实施例中,本申请对提出的图过滤器进行综合评估。通常情况下,在存储成本、解码精度和时间消耗方面将图过滤器与其他数据结构(包括相邻矩阵、相邻表和搜索树)进行比较。在不失一般性的情况下,首先生成不同规模的ER随机图作为输入拓扑。拓扑的连通性由给定的概率p0确定,其定量了给定节点对之间互连的概率。此后,使用两个代表性的数据中心拓扑:Fat-Tree和Scafida对图过滤器的性能进行进一步的测试。最后,本申请提出了破环算法,并通过不同的参数设置对其进行了评估。注意,解码精度由解码结果中的假阳性率和假阴性率二者共同确定。可选的,所有算法和方法都在2.6GHz CPU和16GB RAM的测试台上实现。
除了图过滤器,一般的数据结构,如相邻矩阵、相邻表和搜索树,也有能力记录给定拓扑的信息。因此,本申请在通信开销、解码精度和时间消耗方面将图过滤器与其他数据结构进行比较。考虑的参数包括
Figure BDA0001314272310000173
Figure BDA0001314272310000174
中的节点数,即|V1|,
Figure BDA0001314272310000175
Figure BDA0001314272310000176
之间保留的不同链路的数量,即|D1|,以及ER随机图中的概率p0
首先,比较了采用图过滤器、相邻矩阵、相邻表和搜索树引起的存储或通信开销。图6a描述了当
Figure BDA0001314272310000177
Figure BDA0001314272310000178
中的节点数量从100增加到1500时的结果。给定ER随机图的参数p=0.1,计算使用上述数据结构来表示拓扑所产生的存储成本。为了增加可读性,用10的对数值而不是实际值来进行绘制。无论在何种情况下,相邻表消耗最多的存储空间,这是因为在相邻表的一个节点需要两个数据域。相比之下,图过滤器需要最少的存储空间。原因表述如下:相邻表和搜索树都需要大量的存储空间来进行构造,但是相邻矩阵并不是存储友好的,因为它可能相当稀疏。因此,图过滤器在存储成本方面优于其他数据结构。
当|V1|,|D1|和p0分别变化时,推导
Figure BDA0001314272310000179
过程中的时间消耗在图6b,图6c和图6d中进行了比较。依旧以10的对数值进行图形绘制。请注意,图例中的“Matrix”和“Table”分别表示相邻矩阵和相邻表的方法引起的时间消耗。“GF-o”表示图过滤器初始解码操作的时间消耗。相比之下,“GF-o”记录扩展解码操作的时间消耗,这种解码操作将任何指向空单元的候选单元认作是非法的锚单元。
显然,给定相同的参数设置,所有方法导致的时间消耗随|V1|的增长而增加。可以清楚看到,当|V1|的值从200增加到3000,|D1|和p0分别给定为100和0.1,基于相邻表的方法效果最差,而通过比较两个相邻矩阵导出
Figure BDA0001314272310000181
的方法所需时间最少。通过图过滤器反向解码
Figure BDA0001314272310000182
中的链路比基于相邻矩阵的方案稍慢,但比基于邻接表的方法快得多。然而,图过滤器支持可逆解码,而其他方法则不支持。这种特性将图过滤器的使用扩展到更多的先验知识不可用的场景。并且,针对图过滤器所设计的初始和增强的解码操作以推断
Figure BDA0001314272310000183
的剩余链路花费了相似的时间。为减少假阳性率,扩展解码操作并终止了对空单元的解码处理。但是,在影响需要的总解码时间方面,非法锚单元的数量可以忽略不计。
给定|V1|和p0分别为2000和0.1。图6c描述了|D1|从20增加到280时所引起的时间消耗。显然,相邻矩阵和相邻表都消耗了恒定的时间(分别约7.3ms和3.4s)以得出两个拓扑之间的不同链路。由于它们通过运行矩阵或表来推导出不同的链路,因此它们的时间复杂度都是O(|V1|)。相比之下,当|D1|增加时,图过滤器的时间消耗显着增加(从2.1ms到34.7ms)。图过滤器逐一解码不同的链路,因此其时间消耗与不同链路的数量|D1|成正比。并且,“GF-o”和“GF-a”之间的差距很小。
此外,当|V1|时和|D1|固定为2000和200,设置p0从0.05变化到0.5,并记录其所引起的时间消耗。结果如图6d所示。当p0增加时,更多的链路被引入网络。通常,ER图中链路数量的期望可以被计算为|V1|*(|V1|-1)*p0/2。注意,与相邻矩阵不同,相邻表基于每个拓扑中的链路来进行构造。因此,“Table”曲线迅速上升,而“Matrix”曲线只在8ms左右波动。对于图过滤器,更多的链路意味着解码期间XOR陷阱和错误计算的可能性更高。随着p0的增加,初始和增强的图过滤器需要更多轮的解码操作。因此,图6d中的“GF-a”和“GF-o”都显示出缓慢增长的趋势。实际上,与“GF-o”相比,“GF-a”花费更多的时间来识别非法的锚点。这种现象表明,当p0增长时,增加的XOR陷阱将显着增大“GF-a”和“GF-o”之间的差距。
通过比较相关联的相邻矩阵或相邻表,两个给定拓扑之间的不同链路可以被正确计算得出。因此,不管是相邻矩阵还是相邻表,其精度都为100%。因此,本申请量化了用于图过滤器的初始和扩展解码操作的假阳性比例和假阴性比例。图7a、图7b、图8a、图8b、图9a、图9b分别记录了不同参数设置下的假阳性率和假阴性率。其中,“Missed-o”和“Missed-a”分别表示初始和扩展解码操作的假阳性率。类似地,“Added-o”和“Added-a”分别表示初始和扩展解码操作的假阴性率。
首先,图7a、图7b分别描述了
Figure BDA0001314272310000191
Figure BDA0001314272310000192
的节点数从200变为3000时的假阳性率和假阴性率。随着|V1|的增加,“Missed-o”和“Missed-o”中的值都急剧下降。在图7b中的“Added-a”呈类似的下降趋势。理论上说,当|V1|随着固定|D1|的增加,图过滤器的解码会受到较少的XOR陷阱的影响,因此假阳性率和假阴性率都会下降。但是,如图7b所示,“Added-o”有不稳定的表现。还可以看出,以假阳性率的微小增加为代价,扩展解码操作的假阴性率大大降低。
然后将两个拓扑结构中不同链路数量从20个变为280个,并在图8a、图8b中记录所得到的假阳性率和假阴性率。图8a、图8b中展示了当|D1|增加时,假阳性率以及假阴性率都会显着上升。内在的原因是,对于图过滤器的解码,更多不同的链路导致XOR陷阱的风险增加。此外,当|D1|增加时,扩展的解码策略在假阳性率和假阴性率方面都优于初始解码操作。
最后,当ER图模型中的参数p0从0.05增加到0.5时,得到的假阳性率和假阴性率如图9a、图9b所示。较大的p0意味着更多的拓扑链路和更高的XOR陷阱风险。如图9a、图9b所示,图过滤器解码更多的错过的和新加入的边。显然,扩展解码算法在假阴性率方面胜过初始解码策略。
总结图7a、图7b、图8a、图8b、图9a、图9b,扩展解码算法可以显著地减少图过滤器的假阴性率,但是存在丢失一些不同链路的风险。
除一般的ER随机图之外,本申请还进一步评估了其他两个典型数据中心拓扑结构,如Fat-Tree和Scafida的图过滤器的性能。考虑Fat-Tree中的交换机端口数量K,以及网络中不同链路的数量|D1|。指标包括解码时间消耗,假阳性率和假阴性率。结果如图10a、图10b、图11a、图11b、图12a、图12b所示。为了简单起见,在Fat-Tree和Scafida中实现了图过滤器的扩展解码操作。作为代表性的结构化数据中心拓扑,Fat-Tree由与K3/4个服务器互连的5K2/4个商品交换机组成。Fat-Tree中的链路数可以计算为3K3/4个。相反,Scafida是数据中心中典型的随机或不规则拓扑。为了公平起见,在实验中,Fat-Tree中的链路和节点的总数都设置相同。但是它们适用不同的规则,因此具有完全不同的拓扑特征(例如,网络直径,度分布和平分带宽)。
当K从10变化到24,并且|D1|给定为400时,图10a、图11a、图12a描述了Fat-Tree和Scafida的性能。如图10a所示,比起在Fat-Tree拓扑,在Scafida拓扑中,图过滤器需要多一点点的时间来完成解码操作。事实上,Scafida是一个高度偏度的拓扑,网络中的大多数节点与几个巨型节点相连。因此,这些巨型节点可能涉及多个不同的链路。然而,这种链路不能直接从巨型节点解码,因为巨型节点不会被选定为锚单元。图过滤器必须等到这种链路的另一端被搜索为合法的锚单元。这就是Scafida中的解码更耗时的原因。
根据图11a、图12a所示,当K增加时,图过滤器的假阳性率和假阴性率都迅速下降。注意,当K=10时,假阳性率和假阴性率都非常高,这意味着在这种情况下图过滤器是不适用的。然而,本申请认为K=10意味这网络中有750条边。同时改变750个链路中的400个链路是不切实际的,因为数据中心网络规模是增量演进而不是断崖式增长的。此外,与Scafida相比,Fat-Tree中的解码导致较高的假阴性率以及较低的假阳性率。原因在于,在实验中,不同的链路是(添加的链路或删除的链路)随机生成的。在Fat-Tree中删除的链路比在Scafida中的更加分散。这是因为Scafida中的巨型节点有更大的删除链路的可能性。也就是说,在Scafida中,较少节点的链路被删除,而在解码时,图过滤器将处理较少的节点。因此,对Scafida中删除的链路进行解码将会错过更多的链路,也会使更少的链路被加入到ΔD中去。
此后,图10b、图11b、图12b一起揭示了当K=20时|D1|在Fat-Tree和Scafida中的影响。毫无疑问的是,当网络中引入了更多不同的链路时,图过滤器需要更多的时间去进行推导。如图10b所示,在Scafida中的解码比在Fat-Tree中要耗费更多的时间。此外,根据图11b和图12b,Scafida中的解码导致了较高的假阳性率以及较低的假阴性率。其基本原因是,与Fat-tree不同,在Scafida中,不同的链路主要聚集在巨型节点周围。此外,当|D1|增长时,图过滤器有着较高的假阳性率和假阴性率。但实际中,为了确保可用性,数据中心在一段时间内不允许遇到大量而同时的链路故障。这保证了图过滤器在数据中心中的实用性。
基于图10a、图10b、图11a、图11b、图12a、图12b,可以得出结论:图过滤器在不同的数据中心拓扑中显示出不同的性能。图过滤器可以在数据中心中实现,因为数据中心是增量演进的。
进一步,本申请实施例还对破环算法进行评估:当不同的链路在拓扑中形成环路时,必须使用算法2来通过假设-检查策略来破坏潜在的环路。如果没有节点或边参与多个闭环,那么算法2可以在没有假阳性率和假阴性率的情况下对链路进行解码。因此,只在表1中描述了算法2的时间开销。
表1算法2在不同参数场景下的时间开销
闭环个数 3 6 9 12 15 18 21 24
耗时(秒) 0.43 0.89 1.131 1.61 2.21 2.42 3.00 3.23
|D<sub>C</sub>| 50 60 70 80 90 100 110 120
耗时(秒) 0.97 1.14 1.26 1.57 1.84 2.21 2.34 2.63
|V<sub>1</sub>| 0.5 1 1.5 2 2.5 3 3.5 4
耗时(秒) 0.80 1.36 1.31 1.73 2.21 2.95 3.30 3.43
通常情况下,考虑闭环数量C、节点数量和环路中不同链路数量的影响,|V1|和|DC|。表1记录了当C、|V1|和|DC|变化时,破坏环路所需的时间开销。算法2的预期执行次数与节点总数U(U=|DC|)和闭环数量C成正比。因此,如表1所示。当C和|DC|增加时,造成的时间开销明显增加。此外,给定C和|DC|分别为15和100,设置
Figure BDA0001314272310000211
中的单元总数|V1|从500改变到5500。表1展示了更大的|V1|将减慢解码进度,因为搜索锚单元必须检查所有单元。也就是说,通过遵循假设-检查策略,算法2可以以额外的时间开销为代价来正确地破坏
Figure BDA0001314272310000212
中的环路。
终上所述,图过滤器比其他数据结构节省空间,并且其所得到的时间开销是可以接受的。扩展解码操作以较高的假阳性率为代价,显著降低了假阴性率。此外,图过滤器在不同的数据中心拓扑中具有不同的性能。最后,设计的环路破坏算法确实可以破坏潜在的环路并解码底层的链路。因此,本申请的图过滤器对于不允许大量而同时的故障的数据中心是实用的。
在本申请另一些可选的实施例中,针对于一些空间高效的数据结构,例如BloomFilter及其变种,虽然能够推断出GA和GB之间不同的节点,但是无法有效地从大量链路中识别出不同的链路。为了解决拓扑校准问题,本申请首先使用Bloom Filter来查找不同的节点。此后,设计了一种叫作图过滤器的新型数据结构来表示每个拓扑,并识别出两个拓扑之间不同的链路。通常,图过滤器由n个单元组成,每个单元映射拓扑中一个特定的节点。通过维护标签机制可实现这种一一映射。一个单元通过两个域(即idSum和Count)记录映射节点的相关链路。具体来说,对于第i个单元,其idSum将第i个节点的所有邻节点的id通过异或操作组合在一起,而Count计录了它的邻节点的数目。此外,针对图过滤器提出了三种操作(编码,抽取和解码),以便推导出两种拓扑之间不同的链路。在编码过程中,用图过滤器聚合表示每个拓扑中的所有链路。然后,用抽取操作消除两个拓扑中相同的链路,同时保留下不同的链路。最后,可以递归地从抽取结果中解码得到不同的链路。基于锚单元(idSum≠0并且Count=1的单元)的定义,对于任意一条链路<i,j>,只要抽取后的图过滤器的第i个单元或者第j个单元能够作为锚单元,这条链路就有较高概率被反向解码出来。
本申请提出了两种解码算法来推导出底层不同的链路,即原始解码算法和增强解码算法。原始解码算法递归地搜索锚单元,并删除与锚单元相关联的链路。然而,在解码时,潜在的异或陷阱(不同的节点在编码时产生相同的异或结果)可能会导致假阳性和假阴性错误。因此,增强解码算法通过消除一些非法的锚单元来减少异或陷阱的影响。此外,在极端情况下,一些不同的链路会连成环,并且不会暴露锚单元来解码这些链路。因此,进一步设计一个破环算法来分解环并推导出这些链路。所提出的破环算法按照假设检验策略来选择和删除环中的链路,使得更多合法的锚单元暴露出来。
虽然图过滤器是概率数据结构,但对于只有部分链路可能同时改变的情况,它是有效和高效的。综合实验表明,图过滤器比其他数据结构都要节省空间,并且所耗费的时间开销是可以接受的。增强的解码操作可以显著降低假阴性率,但这会导致稍高的假阳性率。此外,图过滤器在不同的数据中心拓扑中具有不同的性能。最后,设计的破环算法可以切实有效地分解潜在的环并解码底层的链路。因此,本申请所述网络拓扑校准方法能够在缺乏先验知识的条件下实现高效率的网络拓扑校准,并能降低存储成本及通信开销。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种网络拓扑校准方法,其特征在于,包括:
采用现有算法查找得到给定两个原始拓扑中的差异节点;
基于差异节点得到与差异节点相连接的链路,并且在两个原始拓扑中删除差异节点以及与差异节点相连接的链路,得到具有相同节点的两个优化拓扑;
采用预设的图过滤器结构来表示两个优化拓扑结构中的拓扑信息;其中,所述预设的图过滤器包括与n个节点对应且相互独立的n个单元,每个单元分别采用idSum表示对应节点的所有邻居节点的id进行异或操作得到的聚合信息、采用Count表示对应节点的邻居节点的个数;
对于每个节点,通过对两个优化拓扑中的idSum进行异或运算、对两个优化拓扑中的Count进行相减运算得到两个优化拓扑对应的抽取结果;所述抽取结果用于消除两个优化拓扑中的共同链路而保留差异链路;
采用预设的解码算法对抽取结果进行解码运算,得到差异链路,并且通过差异节点和差异链路进行网络拓扑校准;
其中,所述预设的解码算法包括:
对抽取结果进行遍历并且搜索得到锚单元;其中,所述锚单元为两个优化拓扑中具有不同数量的邻居节点且至少有1个不同的邻居节点对应的单元;
通过锚单元中的节点信息得到锚单元对应的链路信息;
将上述锚单元中得到的链路加入到差异链路集合中并且在抽取结果中删除该链路;
重复上述过程,直到无法找到锚单元,则退出算法,得到差异链路集合;
所述预设的解码算法还包括:
解码后得到剩余拓扑结构,包括剩余节点和剩余链路;
构建一条与剩余节点连接的链路;
对剩余拓扑结构生成一个剩余拓扑结构副本;
在剩余拓扑结构副本中删除构建的链路,并且执行解码过程,获得新的差异链路以及参与解码过程的单元;
判断所有参与解码过程的单元是否均为相应节点具有相同数量的邻居界节点对应的单元;
若是,则将差异链路添加到差异链路集合中,并退出算法;
否则,重新构建一条不同的链路并且重复上述过程。
2.根据权利要求1所述的网络拓扑校准方法,其特征在于,所述通过锚单元中的节点信息得到锚单元对应的链路信息的步骤包括:判断选定的锚单元所指向的单元是否为空单元;若是,则该选定的锚单元为非法锚单元,重新选取锚单元。
3.根据权利要求1所述的网络拓扑校准方法,其特征在于,针对于多个独立的闭环链路,通过对应多次执行权利要求1中的算法步骤将所有闭环链路进行破解并解码。
CN201710418326.XA 2017-06-06 2017-06-06 一种网络拓扑校准方法 Active CN107241222B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710418326.XA CN107241222B (zh) 2017-06-06 2017-06-06 一种网络拓扑校准方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710418326.XA CN107241222B (zh) 2017-06-06 2017-06-06 一种网络拓扑校准方法

Publications (2)

Publication Number Publication Date
CN107241222A CN107241222A (zh) 2017-10-10
CN107241222B true CN107241222B (zh) 2022-06-07

Family

ID=59985375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710418326.XA Active CN107241222B (zh) 2017-06-06 2017-06-06 一种网络拓扑校准方法

Country Status (1)

Country Link
CN (1) CN107241222B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111740851B (zh) * 2019-03-25 2023-05-09 华为技术有限公司 配置报文生成方法、设备以及系统
CN115134248A (zh) * 2022-05-23 2022-09-30 奇安信科技集团股份有限公司 网络拓扑差异检测方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2518940A1 (en) * 2011-04-29 2012-10-31 Tektronix, Inc. Automatic network topology detection and modeling
CN105634953A (zh) * 2015-12-30 2016-06-01 中国人民解放军国防科学技术大学 一种基于可见光通信的混合数据中心组网与路由方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2518940A1 (en) * 2011-04-29 2012-10-31 Tektronix, Inc. Automatic network topology detection and modeling
CN105634953A (zh) * 2015-12-30 2016-06-01 中国人民解放军国防科学技术大学 一种基于可见光通信的混合数据中心组网与路由方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Compound Graph based Hybrid Data Center Topologies;L. Luo,etc.;《Frointers of Computer Science》;20151231;第9卷(第6期);第860-874页 *
Internet-Enabled Calibration: An Analysis of Different Topologies and a Comparison of Two Different Approaches;Asmund Sand,etc.;《IEEE Transactions on Instrumentation and Measurement》;20070917;第1986-1991页 *
面向云计算的数据中心网络拓扑研究;丁泽柳等;《国防科技大学学报》;20111231;第33卷(第6期);第1-6页 *

Also Published As

Publication number Publication date
CN107241222A (zh) 2017-10-10

Similar Documents

Publication Publication Date Title
JP7441582B2 (ja) データ侵害を検出するための方法、装置、コンピュータ可読な記録媒体及びプログラム
Sun et al. Data poisoning attack against unsupervised node embedding methods
Su et al. Redundant rule detection for software-defined networking
CN105721207A (zh) 电力通信网中通信节点重要度的确定方法和装置
Sundareisan et al. Hidden hazards: Finding missing nodes in large graph epidemics
US20160232161A1 (en) Method to maximize message spreading in social networks and find the most influential people in social media
CN107241222B (zh) 一种网络拓扑校准方法
Xiong et al. kbf: A bloom filter for key-value storage with an application on approximate state machines
CN112261052A (zh) 基于流规则分析的sdn数据平面异常行为检测方法及系统
Zhu et al. Expanding a complex networked system for enhancing its reliability evaluated by a new efficient approach
Kolluri et al. LPGNet: Link private graph networks for node classification
Dong et al. Fakeedge: Alleviate dataset shift in link prediction
US8553587B2 (en) System and method for finding important nodes in a network
CN108965287B (zh) 一种基于有限临时删边的病毒传播控制方法
Roy et al. Gad-nr: Graph anomaly detection via neighborhood reconstruction
Wehmuth et al. Distributed location of the critical nodes to network robustness based on spectral analysis
Šimon et al. Combined heuristic attack strategy on complex networks
Milling et al. Distinguishing infections on different graph topologies
Chan et al. Where graph topology matters: the robust subgraph problem
Chang et al. Community detection in signed networks: An error-correcting code approach
Kumar et al. Disrupting diffusion: Critical nodes in network
CN107409124A (zh) 基于模体分析检测对移动无线网络的攻击的系统和方法
Zhang et al. Structural vulnerability analysis in complex networks based on core theory
Bachmann et al. Miuz: measuring the impact of disconnecting a node
Xu et al. Discovering the influences of complex network effects on recovering large scale multiagent systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220321

Address after: No.109, Deya Road, Kaifu District, Changsha City, Hunan Province 410003

Applicant after: National University of Defense Technology

Address before: 410003 1002, building 6, district D3, Beichen Delta, Kaifu District, Changsha City, Hunan Province

Applicant before: Guo Deke

GR01 Patent grant
GR01 Patent grant