CN107276780A - 一种用于拓扑不完全可测网络的动态生成树方法 - Google Patents
一种用于拓扑不完全可测网络的动态生成树方法 Download PDFInfo
- Publication number
- CN107276780A CN107276780A CN201610212805.1A CN201610212805A CN107276780A CN 107276780 A CN107276780 A CN 107276780A CN 201610212805 A CN201610212805 A CN 201610212805A CN 107276780 A CN107276780 A CN 107276780A
- Authority
- CN
- China
- Prior art keywords
- node
- child
- network
- topology
- initial
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种用于拓扑不完全可测网络的动态生成树方法,包括:在初始化时,设置根节点和低复杂度节点加入方法的启动阈值;等待节点加入或退出的信令,若检测到信令,则转到下一步;判断所检测到的信令的类型,若信令类型为节点退出,则实现节点从树中的退出,否则,判断当前树形节点的总数是否达到低复杂度节点加入方法的启动阈值,若成立,启用低复杂度节点加入方法实现节点在树中的加入;否则采用高精度节点加入方法启动节点加入树的过程,并在节点加入过程中验证所需的拓扑信息是否完全可测,一旦遇到所需的拓扑不完全可测,启用低复杂度节点加入方法实现节点在树中的加入,否则用高精度节点加入方法完成节点加入。
Description
技术领域
本发明涉及网络通信领域,特别涉及一种用于拓扑不完全可测网络的动态生成树方法。
背景技术
所谓拓扑不完全可测,是指在实际网络中存在一些这样的网络节点,它们之间的拓扑关系是不可测的,或者不能在给定时间内通过现有的网络测量手段来获得的。要想对拓扑不完全可测的网络进行树形节点管理,通常的生成树方法是行不通的。首先,现有的生成树方法,比如prime算法和kruskal算法,大都是静态的。应用这些静态生成树方法的前提是,必须知道所有网络节点之间的拓扑关系,而且要求这些拓扑关系保持不变。但是,大部分实际网络的拓扑结构都是动态的,当不断地有新节点加入和旧节点退出时,或者当拓扑结构随时间发生变化时,只能通过现有的网络测量手段来不断更新这些拓扑变化。而且,对于非结构化网络的节点管理而言,包括prime算法在内的静态生成树方法,优化后的时间复杂度为O(ElogV),其中E为边的总数,V为节点总数。当节点间的拓扑关系随着网络搅动而发生变化时,就需要重新生成,受到这一高时间复杂度的限制,而使得节点规模难以扩展。当实际网络存在大规模的拓扑不完全可测的网络节点时,完全保持逻辑生成树和物理网络拓扑一致性变得不可能,从而进一步增加了设计高精度和低复杂度生成树方法的难度。总之,如何高效地组织和管理一个拓扑不完全可测的大规模高搅动网络是一个亟需解决问题。
随着计算机、网络和通信技术的不断发展,互联网中的接入设备不断增多,尤其是移动设备的爆发式增长,大大增加了网络动态性。随着互联网规模的扩展,可以为用户提供的服务种类也不断丰富,同时用户对服务的质量和体验也提出了更高的要求。如何通过网络感知技术获取到网络实时数据,及时了解当前网络状况,并利用这些数据调整资源分配以及服务策略,提高资源利用率,为用户提供一种智能化、个性化的服务也显得尤为重要。如果能有效提高节点管理策略的实时性和动态性,不仅能为服务提供商提高管理效率和节约运营成本,还可以极大地提高用户体验和服务质量。而在实际网络中,用于网络节点管理的拓扑结构通常呈树形,在大规模网络节点不断加入和退出的动态环境下,如何高效地对大规模节点进行寻址、定位和管理,是提高服务质量的一个关键问题。而现有的节点管理方法,已经很难满足大规模网络节点的高移动性和高动态性的要求。因此,针对在复杂多变的大规模网络中不同用户的个性化需求,有必要提出一种适用于拓扑不完全可测网络的低复杂度、高动态性的生成树方法。
另一方面,随着对等网络(P2P)技术的迅猛发展,很多公司和运营商都将内容分发网络(CDN)与P2P技术融合,将CDN的管理机制和服务能力扩展到P2P网络,而形成了以CDN为内容核心和以P2P为服务边缘的混合架构,以提高用户体验和降低CDN服务器的压力。CDN的本质是为了降低网络资源的消耗和减轻用户查找信息的负担,将各种内容以文件形式预先分发到作为分布式缓存的智能路由器或业务服务器上,其目的是通过将内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容。而用P2P来扩展CDN的混合模式可以有效地提高流媒体服务能力,节约带宽资源,节省骨干网流量,提高响应速度,同时也对高效的、可扩展、低成本、适用于大规模网络的节点管理方法提出了更高的要求。P2P技术提高了资源共享的利用率,可充分利用空闲资源进行内容分发,避免网络拥塞,从而提高了流媒体业务的实时性和容错能力,有效地提高系统运行效率和节约运营成本。而P2P技术要解决的首要问题,就是大规模P2P节点的有序管理问题,因为网络节点的无序管理,不仅仅增加了查找和定位时间,而且对系统的扩展性、服务性能有很大影响,尤其是在节点频繁加入、频繁退出的高搅动网络环境中。
因此,有必要提议一个易于实现和维护的动态生成树方法,用于降低现有节点管理方法的复杂度,根据网络节点间的跳数关系,结合网络感知技术获取的网络状态实时数据,在保证一定比例的物理拓扑和逻辑网络匹配的条件下,构建一种低复杂度、高可靠性、高可扩展性的节点管理方法,以解决动态网络环境下的拓扑不完全可测问题、大规模扩展问题和高搅动问题。
发明内容
本发明的目的在于克服动态网络环境下的拓扑不完全可测问题、大规模扩展问题和高搅动问题,从而提供一种能有效降低时间复杂度与空间复杂度的动态生成树方法。
为了实现上述目的,本发明提供了一种用于拓扑不完全可测网络的动态生成树方法,包括:
步骤1)、在初始化时,设置根节点和低复杂度节点加入方法的启动阈值Ninitial;
步骤2)、等待节点加入或退出的信令,若检测到信令,则转到下一步;
步骤3)、判断所检测到的信令的类型,若信令类型为节点退出,则转到下一步,否则直接转到步骤5);
步骤4)、实现节点从树中的退出,完成退出后,返回步骤2);
步骤5)、判断当前树形节点的总数Nsum是否达到低复杂度节点加入方法的启动阈值Ninitial,即判断Nsum≥Ninitial是否成立,若不成立,则转到下一步,否则直接转到步骤7);
步骤6)、采用高精度节点加入方法启动节点加入树的过程,并在节点加入过程中验证所需的拓扑信息是否完全可测,一旦遇到所需的拓扑不完全可测,则直接转到下一步,否则用高精度节点加入方法完成节点加入,并返回步骤2);其中,
所述高精度节点加入方法基于物理拓扑与优先级别实现动态节点加入,所述优先级别从高到低依次为:(1)跳数小优先;(2)子节点多的优先;(3)时延小或带宽大的优先,其中时延和带宽的优先级相同;(4)若优先等级相同,则随机选择;
步骤7)、启用低复杂度节点加入方法实现节点在树中的加入,完成节点加入后,返回步骤2);其中,
所述低复杂度节点加入方法基于网络状况和节点规模确定当前节点探测个数,进而得到当前已探测节点,比较待加入节点与当前已探测节点间的网络状态参数,根据该网络状态参数实现待加入节点的加入;所述网络状态参数为跳数、时延与带宽中的一种。
上述技术方案中,所述低复杂度节点加入方法的启动阈值Ninitial根据生成树的精度和速度的要求在[10,100000]的取值范围内调整,Ninitial取值越大精度越高,Ninitial取值越小速度越快。
上述技术方案中,在步骤4)中,实现节点从树中退出的过程包括:
步骤401)、将待退出节点记为Vs,获取Vs的相关信息,并在Vs的父节点处缓存节点Vs的相关信息,所述Vs的相关信息包括其子节点个数、子节点列表、父节点信息;
步骤402)、设Vs的子节点个数为Cs,若Cs大于零,则转到下一步,否则说明Vs为叶子节点,直接在Vs的父节点Vsp处将Vs的信息删除,同时更新Vsp的子节点个数和子节点列表,即可完成退出;
步骤403)、判断Vs是否存在同父兄弟节点,若Vs存在同父兄弟节点,则转到下一步,否则,在Vs的子节点中随机选择一个离Vs跳数最小的子节点作为Vs的替换节点,如果离Vs跳数最小的子节点有多个,则选择时延最小或带宽最大的子节点作为Vs的替换节点,将选中的替换节点记为Vsc;同时更新Vs的父节点的子节点个数和子节点列表信息,并将Vs的其他子节点的父节点修改为选中的替换节点Vsc,完成退出;
步骤404)、在同父兄弟节点中选择替换节点,Vs的父节点记为Vsp,被选中的同父兄弟节点记为Vsb,将Vs的所有子节点的父节点修改为Vsb,并更新Vs的父节点Vsp、Vsb的子节点个数和子节点列表,完成退出。
上述技术方案中,所述步骤6)中的高精度节点加入方法具体包括:
步骤601)、将待加入的节点记为Vs,当前根节点记为Vo,任意两节点Vs和Vo之间的物理跳数记为hso,检测节点Vo的子节点列表,记为{Vpi},其中Vpi表示当前根节点Vo的子节点;
步骤602)、判断子节点列表{Vpi}是否为空,若{Vpi}为空,节点Vs作为Vo的子节点加入树,节点加入过程结束,否则转到下一步;
步骤603)、测量Vs和Vo间以及Vs与子节点集合{Vpi}中各子节点间在实际网络中的物理跳数,并判断所需跳数是否完全可测,若不完全可测,则直接转到步骤7)用低复杂度节点加入方法来完成加入,否则转到下一步;
步骤604)、判断有多少个Vpi满足hso+hspi=hopi,其中hspi为待加入的节点Vs与子节点Vpi之间的物理跳数,hopi为当前根节点Vo与子节点Vpi之间的物理跳数,若有多个Vpi满足该公式,则将所有满足公式的Vpi都作为Vs的子节点,完成节点加入;若只有单个Vpi满足,则将节点Vs加入到Vo和Vpi之间,完成节点加入;否则转到下一步;
步骤605)、判断是否所有Vpi满足hspi≥hso,若是,则节点Vs作为Vo的子节点加入,完成节点加入;否则转到下一步;
步骤606)、判断是否存在多个Vpi满足hspi<hso:若否,则将该唯一的Vpi作为动态根节点Vo,然后返回步骤601),否则转到下一步;
步骤607)、有多个Vpi满足hspi<hso,则选择满足hspi<hso中hspi最小的节点作为动态根节点Vo;若有多个节点最小值相等,则选择子节点多的那个Vpi作为Vo;若子节点个数也相等,则选择满足hspi<hso的第一个节点作为Vo,返回步骤601)。
上述技术方案中,所述步骤7)中的低复杂度节点加入方法具体包括:
步骤701)、把待加入节点记为Vs,根据Ninitial来设置节点探测个数Ndt的范围为[Ndtmin,Ndtmax]和自适应节点探测个数步长,自适应节点探测个数步长默认值记为S;
步骤702)、先利用网络感知技术,探测当前网络状况,获取当前网络状态参数,包括节点间的带宽、延时、跳数,再根据当前的网络状况和节点规模Nsum,查找自适应调整步长表,在网络状况较好情况下,适当增加节点的探测个数,反之,在网络状况较坏情况下,适当降低节点的探测个数,从而将当前自适应节点探测个数步长S调整为Sat;
步骤703)、计算当前节点探测个数Ndt=Ndt+Sat;
步骤704)、判断Ndt的范围,若属于[Ndtmin,Ndtmax],则保持Ndt的值不变;若Ndt<Ndtmin,则Ndt=Ndtmin;若Ndt>Ndtmin,则Ndt=Ndtmax;
步骤705)、若由高精度节点加入方法切换至当前方法,则把已经探测过的节点个数记为Npn,并将原来长度为Ndt的跳数表或时延表或带宽表的长度临时增加到Npn+Ndt;
步骤706)、利用网络探测技术,获取Vs和当前已探测的Ndt个节点间的跳数或时延或带宽,得到一张长度为Ndt或Npn+Ndt的跳数表或时延表或带宽表;
步骤707)、从跳数表中选择跳数最小的节点Vhmin作为Vs的父节点,或从时延表中选择时延最小的节点Vhmin作为Vs的父节点,或从带宽表中选择带宽的倒数最小的节点Vhmin作为Vs的父节点,更新Vs的父节点指针,更新Vhmin的子节点个数和子节点列表,节点加入结束。
上述技术方案中,在步骤701)中,在满足条件Ninitial≥Ndt的前提下,Ninitial、Ndt和S的范围都是能调节的,随着节点规模和当前网络状态而变化,默认的参数范围如下:Ndt的范围为[1,64],Ninitial的范围为[10,100000],S的范围为[-8,8]。
上述技术方案中,在步骤701)中,节点探测个数Ndt范围以及自适应节点探测个数步长S的初始化设置方法如下:(1)若Ndtmax>Ninitial,则让Ndtmax=Ninitial;否则让Ndtmax=64;(2)若Ninitial<1000,则让Ndtmin=8和S=1;(3)若1000<=Ninitial<10000,则让Ndtmin=4和S=0;(4)若Ninitial>=10000,则让Ndtmin=2和S=-1。
上述技术方案中,在步骤702)中,调整自适应调整步长的方法如下:
(1)若Nsum<100:当网络状况好时Sat=1,否则Sat=-1;(2)若100<=Nsum<1000:当网络状况好时,Sat=2,否则Sat=-2;(3)若1000<=Nsum<10000:当网络状况好时,Sat=3,否则Sat=-3;(4)若10000<=Nsum<20000:当网络状况好时,Sat=4,否则Sat=-4;(5)若20000<=Nsum<30000:当网络状况好时,Sat=5,否则Sat=-5;(6)若30000<=Nsum<40000:当网络状况好时,Sat=6,否则Sat=-6;(7)若40000<=Nsum<50000:当网络状况好时,Sat=7,否则Sat=-7;(8)若Nsum>=50000:当网络状况好时,Sat=8,否则Sat=-8;其中的网络状况的好坏由当前的测量手段是否超过一半顺利返回结果来决定。
本发明的优点在于:
本发明的方法解决了复杂多变的网络环境下的拓扑不完全可测问题、大规模扩展问题和高搅动问题,将现有节点管理方法的时间复杂度降为O(V),空间复杂度降为O(V),这里的V是节点总数,并且可保持一定比例的物理拓扑和逻辑网络的一致性,克服了基于DHT的节点管理方法中难以保持节点位置信息的缺点。
附图说明
图1是本发明的用于拓扑不完全可测网络的动态生成树方法的流程图;
图2是本发明的用于拓扑不完全可测网络的动态生成树方法中节点退出流程的示意图;
图3是本发明的用于拓扑不完全可测网络的动态生成树方法中高精度节点加入方法的流程图;
图4是本发明的用于拓扑不完全可测网络的动态生成树方法中低复杂度节点加入方法的流程图。
具体实施方式
现结合附图对本发明作进一步的描述。
参考图1,本发明的用于拓扑不完全可测网络的动态生成树方法包括以下步骤:
步骤1)、在初始化时,设置根节点和低复杂度节点加入方法的启动阈值Ninitial。其中,所述启动阈值Ninitial的默认值为1000,在实际应用中可以根据生成树的精度和速度的要求,在[10,100000]的取值范围内调整Ninitial的大小,取值越大精度越高,反之,取值越小速度越快。
步骤2)、等待节点加入或退出的信令,若检测到信令,则转到下一步。
步骤3)、判断所检测到的信令的类型,若信令类型为节点退出,则转到下一步,否则直接转到步骤5)。
步骤4)、启用节点退出方法实现节点从树中的退出,完成退出后,返回步骤2)。
步骤5)、判断当前树形节点的总数Nsum是否达到低复杂度节点加入方法的启动阈值Ninitial,即判断Nsum≥Ninitial是否成立,若不成立,则转到下一步,否则直接转到步骤7)。
步骤6)、采用高精度节点加入方法启动节点加入树的过程,并在节点加入过程中验证所需的拓扑信息是否完全可测,一旦遇到所需的拓扑不完全可测,则直接转到下一步,否则用高精度节点加入方法完成节点加入,并返回步骤2)。
步骤7)、启用低复杂度节点加入方法实现节点在树中的加入,完成节点加入后,返回步骤2)。
参考图2,所述步骤4)中的节点退出方法进一步包括:
步骤401)、将待退出节点记为Vs,获取Vs的相关信息,并在Vs的父节点处缓存节点Vs的相关信息,包括其子节点个数、子节点列表、父节点信息。
步骤402)、设Vs的子节点个数为Cs,若Cs大于零,则转到下一步,否则说明Vs为叶子节点,直接在Vs的父节点Vsp处将Vs的信息删除,同时更新Vsp的子节点个数和子节点列表,即可完成退出。
步骤403)、判断Vs是否存在同父兄弟节点,若Vs存在同父兄弟节点,则转到下一步,否则,在Vs的子节点中随机选择一个离Vs跳数最小的子节点作为Vs的替换节点,如果离Vs跳数最小的子节点有多个,则选择时延最小或带宽最大的子节点作为Vs的替换节点,将选中的替换节点记为Vsc;同时更新Vs的父节点的子节点个数和子节点列表信息,并将Vs的其他子节点的父节点修改为选中的替换节点Vsc,完成退出。
步骤404)、在同父兄弟节点中选择替换节点,Vs的父节点记为Vsp,被选中的同父兄弟节点记为Vsb,将Vs的所有子节点的父节点修改为Vsb,并更新Vs的父节点Vsp、Vsb的子节点个数和子节点列表,退出完成。
上述节点退出方法与现有技术相比其不同之处在于给替换节点设置了一个优先级别,按照从高到低的顺序具体包括:(1)兄弟节点优先,子节点其次;(2)跳数小的节点优先;(3)若跳数相等,则时延小或带宽大的节点优先;(4)若优先等级相同,则随机选择(注:当节点退出时,子节点多的节点不优先,即:无论子节点多少,优先等级都相同)。
参考图3,所述步骤6)中的高精度节点加入方法进一步包括:
步骤601)、将待加入的节点记为Vs,当前根节点记为Vo,任意两节点Vs和Vo之间的跳数记为hso,检测节点Vo的子节点列表,记为{Vpi},其中Vpi表示当前根节点Vo的子节点。
步骤602)、判断子节点列表{Vpi}是否为空,若{Vpi}为空,节点Vs作为Vo的子节点加入树,节点加入过程结束,否则转到下一步。
步骤603)、测量Vs和Vo间以及Vs与子节点集合{Vpi}中各子节点间在实际网络中的物理跳数,并判断所需跳数是否完全可测,若不完全可测,则直接转到步骤7)用低复杂度节点加入方法来完成加入,否则转到下一步。
步骤604)、判断有多少个Vpi满足hso+hspi=hopi,其中hspi为待加入的节点Vs与子节点Vpi之间的物理跳数,hopi为当前根节点Vo与子节点Vpi之间的物理跳数,若有多个Vpi满足该公式,则将所有满足公式的Vpi都作为Vs的子节点,完成节点加入;若只有单个Vpi满足,则将节点Vs加入到Vo和Vpi之间,完成节点加入;否则转到下一步。
步骤605)、判断是否所有Vpi满足hspi≥hso,若是,则节点Vs作为Vo的子节点加入,完成节点加入;否则转到下一步。
步骤606)、判断是否存在多个Vpi满足hspi<hso:若否,则将该唯一的Vpi作为动态根节点Vo,然后返回步骤601),否则转到下一步。
步骤607)、说明有多个Vpi满足hspi<hso,则选择满足hspi<hso中hspi最小的节点作为动态根节点Vo;若最小值相等,则选择子节点多的那个Vpi作为Vo;若子节点个数也相等,则选择满足hspi<hso的第一个节点作为Vo,返回步骤601)。
上述高精度节点加入方法与现有技术相比其不同之处在于节点加入的优先等级,按照从高到低的顺序具体包括:(1)跳数小优先;(2)子节点多的优先(当节点加入时,这个优先等级直接影响逻辑拓扑和物理拓扑的一致性);(3)时延小或带宽大的优先(时延和带宽的优先级相同);(4)若优先等级相同,则随机选择。
参考图4,所述步骤7)中的低复杂度节点加入方法进一步包括:
步骤701)、把待加入节点记为Vs,根据Ninitial来设置节点探测个数Ndt的范围为[Ndtmin,Ndtmax]和自适应节点探测个数步长,自适应节点探测个数步长默认值记为S。
在满足条件Ninitial≥Ndt的前提下,Ninitial、Ndt和S的范围都是可调节的,可以随着节点规模和当前网络状态而变化,系统默认的参数范围如下:Ndt的范围为[1,64],Ninitial的范围为[10,100000],S的范围为[-8,8]。其中,在一个实施例中,节点探测个数Ndt范围以及自适应节点探测个数步长S的初始化设置方法如下:(1)若Ndtmax>Ninitial,则让Ndtmax=Ninitial;否则让Ndtmax=64;(2)若Ninitial<1000,则让Ndtmin=8和S=1;(3)若1000<=Ninitial<10000,则让Ndtmin=4和S=0;(4)若Ninitial>=10000,则让Ndtmin=2和S=-1。
步骤702)、先利用网络感知技术,探测当前网络状况,获取当前网络状态参数,包括节点间的带宽、延时、跳数等,再根据当前的网络状况和节点规模Nsum,查找自适应调整步长表,在网络状况较好情况下,可适当增加节点的探测个数,反之,在网络状况较坏情况下,可适当降低节点的探测个数,从而将当前自适应节点探测个数步长S调整为Sat。
其中,所述自适应调整步长表可由用户自定义,在一个实施例中,自适应调整步长的调整方法如下:(1)若Nsum<100:当网络状况好时Sat=1,否则Sat=-1;(2)若100<=Nsum<1000:当网络状况好时,Sat=2,否则Sat=-2;(3)若1000<=Nsum<10000:当网络状况好时,Sat=3,否则Sat=-3;(4)若10000<=Nsum<20000:当网络状况好时,Sat=4,否则Sat=-4;(5)若20000<=Nsum<30000:当网络状况好时,Sat=5,否则Sat=-5;(6)若30000<=Nsum<40000:当网络状况好时,Sat=6,否则Sat=-6;(7)若40000<=Nsum<50000:当网络状况好时,Sat=7,否则Sat=-7;(8)若Nsum>=50000:当网络状况好时,Sat=8,否则Sat=-8。其中的网络状况的好坏一般由当前的测量手段(如Traceroute)是否超过一半顺利返回结果来决定。
步骤703)、计算当前节点探测个数Ndt=Ndt+Sat。
步骤704)、判断Ndt的范围,如下:若属于[Ndtmin,Ndtmax],则保持Ndt的值不变;若Ndt<Ndtmin,则Ndt=Ndtmin;若Ndt>Ndtmin,则Ndt=Ndtmax。
步骤705)、若由高精度节点加入方法切换至当前方法,则把已经探测过的节点个数记为Npn,并将原来长度为Ndt的跳数表的长度临时增加到Npn+Ndt。
步骤706)、利用网络探测技术,获取Vs和当前已探测的Ndt个节点间的跳数,得到一张长度为Ndt或Npn+Ndt的跳数表,这里的跳数也可以用时延或带宽来代替,即跳数表可以用时延表或带宽表代替。
步骤707)、从跳数表中选择跳数最小的节点Vhmin作为Vs的父节点,更新Vs的父节点指针,更新Vhmin的子节点个数和子节点列表,节点加入结束。
若在之前的步骤中,用时延表或带宽表代替跳数表,则在此步骤中,需从时延表中选择时延最小的节点Vhmin作为Vs的父节点,或从带宽表中选择带宽的倒数最小的节点Vhmin作为Vs的父节点。
上述低复杂度节点加入方法与现有技术相比其不同之处在于:(1)探测个数范围的设置;(2)自适应调整步长表的设置;(3)节点加入的优先等级和高精度节点加入方法相同。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1.一种用于拓扑不完全可测网络的动态生成树方法,包括:
步骤1)、在初始化时,设置根节点和低复杂度节点加入方法的启动阈值Ninitial;
步骤2)、等待节点加入或退出的信令,若检测到信令,则转到下一步;
步骤3)、判断所检测到的信令的类型,若信令类型为节点退出,则转到下一步,否则直接转到步骤5);
步骤4)、实现节点从树中的退出,完成退出后,返回步骤2);
步骤5)、判断当前树形节点的总数Nsum是否达到低复杂度节点加入方法的启动阈值Ninitial,即判断Nsum≥Ninitial是否成立,若不成立,则转到下一步,否则直接转到步骤7);
步骤6)、采用高精度节点加入方法启动节点加入树的过程,并在节点加入过程中验证所需的拓扑信息是否完全可测,一旦遇到所需的拓扑不完全可测,则直接转到下一步,否则用高精度节点加入方法完成节点加入,并返回步骤2);其中,
所述高精度节点加入方法基于物理拓扑与优先级别实现动态节点加入,所述优先级别从高到低依次为:(1)跳数小优先;(2)子节点多的优先;(3)时延小或带宽大的优先,其中时延和带宽的优先级相同;(4)若优先等级相同,则随机选择;
步骤7)、启用低复杂度节点加入方法实现节点在树中的加入,完成节点加入后,返回步骤2);其中,
所述低复杂度节点加入方法基于网络状况和节点规模确定当前节点探测个数,进而得到当前已探测节点,比较待加入节点与当前已探测节点间的网络状态参数,根据该网络状态参数实现待加入节点的加入;所述网络状态参数为跳数、时延与带宽中的一种。
2.根据权利要求1所述的用于拓扑不完全可测网络的动态生成树方法,其特征在于,所述低复杂度节点加入方法的启动阈值Ninitial根据生成树的精度和速度的要求在[10,100000]的取值范围内调整,Ninitial取值越大精度越高,Ninitial取值越小速度越快。
3.根据权利要求1所述的用于拓扑不完全可测网络的动态生成树方法,其特征在于,在步骤4)中,实现节点从树中退出的过程包括:
步骤401)、将待退出节点记为Vs,获取Vs的相关信息,并在Vs的父节点处缓存节点Vs的相关信息,所述Vs的相关信息包括其子节点个数、子节点列表、父节点信息;
步骤402)、设Vs的子节点个数为Cs,若Cs大于零,则转到下一步,否则说明Vs为叶子节点,直接在Vs的父节点Vsp处将Vs的信息删除,同时更新Vsp的子节点个数和子节点列表,即可完成退出;
步骤403)、判断Vs是否存在同父兄弟节点,若Vs存在同父兄弟节点,则转到下一步,否则,在Vs的子节点中随机选择一个离Vs跳数最小的子节点作为Vs的替换节点,如果离Vs跳数最小的子节点有多个,则选择时延最小或带宽最大的子节点作为Vs的替换节点,将选中的替换节点记为Vsc;同时更新Vs的父节点的子节点个数和子节点列表信息,并将Vs的其他子节点的父节点修改为选中的替换节点Vsc,完成退出;
步骤404)、在同父兄弟节点中选择替换节点,Vs的父节点记为Vsp,被选中的同父兄弟节点记为Vsb,将Vs的所有子节点的父节点修改为Vsb,并更新Vs的父节点Vsp、Vsb的子节点个数和子节点列表,完成退出。
4.根据权利要求1所述的用于拓扑不完全可测网络的动态生成树方法,其特征在于,所述步骤6)中的高精度节点加入方法具体包括:
步骤601)、将待加入的节点记为Vs,当前根节点记为Vo,任意两节点Vs和Vo之间的物理跳数记为hso,检测节点Vo的子节点列表,记为{Vpi},其中Vpi表示当前根节点Vo的子节点;
步骤602)、判断子节点列表{Vpi}是否为空,若{Vpi}为空,节点Vs作为Vo的子节点加入树,节点加入过程结束,否则转到下一步;
步骤603)、测量Vs和Vo间以及Vs与子节点集合{Vpi}中各子节点间在实际网络中的物理跳数,并判断所需跳数是否完全可测,若不完全可测,则直接转到步骤7)用低复杂度节点加入方法来完成加入,否则转到下一步;
步骤604)、判断有多少个Vpi满足hso+hspi=hopi,其中hspi为待加入的节点Vs与子节点Vpi之间的物理跳数,hopi为当前根节点Vo与子节点Vpi之间的物理跳数,若有多个Vpi满足该公式,则将所有满足公式的Vpi都作为Vs的子节点,完成节点加入;若只有单个Vpi满足,则将节点Vs加入到Vo和Vpi之间,完成节点加入;否则转到下一步;
步骤605)、判断是否所有Vpi满足hspi≥hso,若是,则节点Vs作为Vo的子节点加入,完成节点加入;否则转到下一步;
步骤606)、判断是否存在多个Vpi满足hspi<hso:若否,则将该唯一的Vpi作为动态根节点Vo,然后返回步骤601),否则转到下一步;
步骤607)、有多个Vpi满足hspi<hso,则选择满足hspi<hso中hspi最小的节点作为动态根节点Vo;若有多个节点最小值相等,则选择子节点多的那个Vpi作为Vo;若子节点个数也相等,则选择满足hspi<hso的第一个节点作为Vo,返回步骤601)。
5.根据权利要求1所述的用于拓扑不完全可测网络的动态生成树方法,其特征在于,所述步骤7)中的低复杂度节点加入方法具体包括:
步骤701)、把待加入节点记为Vs,根据Ninitial来设置节点探测个数Ndt的范围为[Ndtmin,Ndtmax]和自适应节点探测个数步长,自适应节点探测个数步长默认值记为S;
步骤702)、先利用网络感知技术,探测当前网络状况,获取当前网络状态参数,包括节点间的带宽、延时、跳数,再根据当前的网络状况和节点规模Nsum,查找自适应调整步长表,在网络状况较好情况下,适当增加节点的探测个数,反之,在网络状况较坏情况下,适当降低节点的探测个数,从而将当前自适应节点探测个数步长S调整为Sat;
步骤703)、计算当前节点探测个数Ndt=Ndt+Sat;
步骤704)、判断Ndt的范围,若属于[Ndtmin,Ndtmax],则保持Ndt的值不变;若Ndt<Ndtmin,则Ndt=Ndtmin;若Ndt>Ndtmin,则Ndt=Ndtmax;
步骤705)、若由高精度节点加入方法切换至当前方法,则把已经探测过的节点个数记为Npn,并将原来长度为Ndt的跳数表或时延表或带宽表的长度临时增加到Npn+Ndt;
步骤706)、利用网络探测技术,获取Vs和当前已探测的Ndt个节点间的跳数或时延或带宽,得到一张长度为Ndt或Npn+Ndt的跳数表或时延表或带宽表;
步骤707)、从跳数表中选择跳数最小的节点Vhmin作为Vs的父节点,或从时延表中选择时延最小的节点Vhmin作为Vs的父节点,或从带宽表中选择带宽的倒数最小的节点Vhmin作为Vs的父节点,更新Vs的父节点指针,更新Vhmin的子节点个数和子节点列表,节点加入结束。
6.根据权利要求5所述的用于拓扑不完全可测网络的动态生成树方法,其特征在于,在步骤701)中,在满足条件Ninitial≥Ndt的前提下,Ninitial、Ndt和S的范围都是能调节的,随着节点规模和当前网络状态而变化,默认的参数范围如下:Ndt的范围为[1,64],Ninitial的范围为[10,100000],S的范围为[-8,8]。
7.根据权利要求6所述的用于拓扑不完全可测网络的动态生成树方法,其特征在于,在步骤701)中,节点探测个数Ndt范围以及自适应节点探测个数步长S的初始化设置方法如下:(1)若Ndtmax>Ninitial,则让Ndtmax=Ninitial;否则让Ndtmax=64;(2)若Ninitial<1000,则让Ndtmin=8和S=1;(3)若1000<=Ninitial<10000,则让Ndtmin=4和S=0;(4)若Ninitial>=10000,则让Ndtmin=2和S=-1。
8.根据权利要求5所述的用于拓扑不完全可测网络的动态生成树方法,其特征在于,在步骤702)中,调整自适应调整步长的方法如下:
(1)若Nsum<100:当网络状况好时Sat=1,否则Sat=-1;(2)若100<=Nsum<1000:当网络状况好时,Sat=2,否则Sat=-2;(3)若1000<=Nsum<10000:当网络状况好时,Sat=3,否则Sat=-3;(4)若10000<=Nsum<20000:当网络状况好时,Sat=4,否则Sat=-4;(5)若20000<=Nsum<30000:当网络状况好时,Sat=5,否则Sat=-5;(6)若30000<=Nsum<40000:当网络状况好时,Sat=6,否则Sat=-6;(7)若40000<=Nsum<50000:当网络状况好时,Sat=7,否则Sat=-7;(8)若Nsum>=50000:当网络状况好时,Sat=8,否则Sat=-8;其中的网络状况的好坏由当前的测量手段是否超过一半顺利返回结果来决定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610212805.1A CN107276780B (zh) | 2016-04-07 | 2016-04-07 | 一种用于拓扑不完全可测网络的动态生成树方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610212805.1A CN107276780B (zh) | 2016-04-07 | 2016-04-07 | 一种用于拓扑不完全可测网络的动态生成树方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107276780A true CN107276780A (zh) | 2017-10-20 |
CN107276780B CN107276780B (zh) | 2019-10-22 |
Family
ID=60052818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610212805.1A Expired - Fee Related CN107276780B (zh) | 2016-04-07 | 2016-04-07 | 一种用于拓扑不完全可测网络的动态生成树方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107276780B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020062097A1 (en) * | 2018-09-28 | 2020-04-02 | Nokia Shanghai Bell Co., Ltd. | Managed object instance identification for object management |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216954A (zh) * | 2008-01-21 | 2008-07-09 | 浙江大学 | 一种基于分级层次化深度网格的森林绘制方法 |
CN101299708A (zh) * | 2007-09-20 | 2008-11-05 | 上海寰创通信科技有限公司 | 一种动态广播路由方法 |
CN101310482A (zh) * | 2005-10-11 | 2008-11-19 | 艾利森电话股份有限公司 | 生成生成树的方法 |
CN101478801A (zh) * | 2008-12-23 | 2009-07-08 | 华南理工大学 | 基于动态源树的无线自组织网络组播路由方法 |
CN102571417A (zh) * | 2011-12-15 | 2012-07-11 | 江苏亿通高科技股份有限公司 | 动态拓扑的实现方法 |
CN103178516A (zh) * | 2013-01-25 | 2013-06-26 | 哈尔滨工业大学 | 基于节点合并法网络动态拓扑分析方法 |
CN103532861A (zh) * | 2013-09-30 | 2014-01-22 | 清华大学 | 基于生成树的域内动态多路径生成方法 |
CN105007225A (zh) * | 2015-07-31 | 2015-10-28 | 东北大学 | 一种网络动态拓扑控制系统及方法 |
-
2016
- 2016-04-07 CN CN201610212805.1A patent/CN107276780B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101310482A (zh) * | 2005-10-11 | 2008-11-19 | 艾利森电话股份有限公司 | 生成生成树的方法 |
CN101299708A (zh) * | 2007-09-20 | 2008-11-05 | 上海寰创通信科技有限公司 | 一种动态广播路由方法 |
CN101216954A (zh) * | 2008-01-21 | 2008-07-09 | 浙江大学 | 一种基于分级层次化深度网格的森林绘制方法 |
CN101478801A (zh) * | 2008-12-23 | 2009-07-08 | 华南理工大学 | 基于动态源树的无线自组织网络组播路由方法 |
CN102571417A (zh) * | 2011-12-15 | 2012-07-11 | 江苏亿通高科技股份有限公司 | 动态拓扑的实现方法 |
CN103178516A (zh) * | 2013-01-25 | 2013-06-26 | 哈尔滨工业大学 | 基于节点合并法网络动态拓扑分析方法 |
CN103532861A (zh) * | 2013-09-30 | 2014-01-22 | 清华大学 | 基于生成树的域内动态多路径生成方法 |
CN105007225A (zh) * | 2015-07-31 | 2015-10-28 | 东北大学 | 一种网络动态拓扑控制系统及方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020062097A1 (en) * | 2018-09-28 | 2020-04-02 | Nokia Shanghai Bell Co., Ltd. | Managed object instance identification for object management |
CN112805679A (zh) * | 2018-09-28 | 2021-05-14 | 上海诺基亚贝尔股份有限公司 | 用于对象管理的被管理对象实例标识 |
CN112805679B (zh) * | 2018-09-28 | 2024-04-16 | 上海诺基亚贝尔股份有限公司 | 用于对象管理的被管理对象实例标识 |
Also Published As
Publication number | Publication date |
---|---|
CN107276780B (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
He et al. | Green resource allocation based on deep reinforcement learning in content-centric IoT | |
US10516577B2 (en) | Graceful scaling in software driven networks | |
Liao et al. | Density cluster based approach for controller placement problem in large-scale software defined networkings | |
US10002141B2 (en) | Distributed database in software driven networks | |
Chen et al. | Minimizing inter-server communications by exploiting self-similarity in online social networks | |
Rosensweig et al. | Breadcrumbs: Efficient, best-effort content location in cache networks | |
CN109379230B (zh) | 一种基于广度优先搜索的服务功能链部署方法 | |
Scherb et al. | Resolution strategies for networking the IoT at the edge via named functions | |
CN104917659B (zh) | 一种基于虚拟网络连接特性的虚拟网络映射方法 | |
Araujo et al. | Energy efficient content distribution | |
Rout et al. | Energy efficiency in software defined networking: A survey | |
CN103916327A (zh) | 一种hp2p网络负载平衡的方法 | |
Mohammadi et al. | Data replication mechanisms in the peer‐to‐peer networks | |
Zhao et al. | Flow aggregation through dynamic routing overlaps in software defined networks | |
CN107276780A (zh) | 一种用于拓扑不完全可测网络的动态生成树方法 | |
CN102075582A (zh) | 一种可信的云存储系统数据存储模型的存储方法 | |
Lin et al. | Scheduling algorithms for time-constrained big-file transfers in the Internet of Vehicles | |
Chen et al. | Optimal transport on supply-demand networks | |
CN107203554A (zh) | 一种分布式检索方法及装置 | |
CN112131142B (zh) | 一种数据集快速缓存的方法、系统、设备及介质 | |
Busch et al. | Quality of routing congestion games in wireless sensor networks | |
CN106612298B (zh) | 一种基于大规模网络节点的内容分发方法及系统 | |
Bach et al. | Knowledge is at the edge! How to search in distributed machine learning models | |
JP5595342B2 (ja) | 複数経路探索方法及び装置 | |
Cao et al. | An ant colony optimization algorithm for virtual network embedding |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191022 |