基于SDN拓扑集中更新的NDN路由策略
尹弼柏, 刘江, 张然, 黄韬, 刘韵洁     
北京邮电大学 信息与通信工程学院, 北京 100876
摘要

基于软件定义网络(SDN)拓扑集中更新的命名数据网络(NDN)路由策略,将路由的2个关键功能分离,拓扑更新功能集中置于SDN控制器中,而路由计算功能分布式地置于NDN内容节点中.同时,对网络拓扑进行负载加权预处理,在考虑网络状态的前提下,可优化路由计算.仿真结果表明,在基于SDN拓扑集中更新的NDN路由策略中,内容请求数据流的首包时延平均降低了90%,SDN控制器的负荷平均降低了10%~30%,全网实现了有效的负载均衡.

关键词: 软件定义网络     命名数据网络     拓扑更新     路由计算    
中图分类号:TN915.02 文献标志码:A 文章编号:1007-5321(2018)04-0001-08 DOI:10.13190/j.jbupt.2018-027
NDN Routing Strategy Based on SDN Centralized Topology Update
YIN Bi-bai, LIU Jiang, ZHANG Ran, HUANG Tao, LIU Yun-jie     
School of Information and Communication Engineering, Beijing University of Posts and Telecommunications, Beijing 100876, China
Abstract

Named data networking (NDN) routing strategy based on software defined network (SDN) centralized topology update separates the two key functions of routing. The topology update function is centralized in the SDN controller, while the route calculation function is distributed in the NDN content nodes. In addition, in this strategy, load-weighted preprocessing of the network topology can be performed under the premise of considering the state of the network. Simulation results show that in the NDN routing strategy based on the SDN centralized topology update, the delay of the first packet of the content request data stream is reduced by an average of 90%, the load of the SDN controller is reduced by an average of 10% to 30%, and the entire network realizes an effective load balancing.

Key words: software defined network     named data networking     topology update     route calculation    

命名数据网络(NDN, named data networking)作为内容中心网络的一种实现[1-2],至今仍缺少一种相对完善的路由策略[3].目前在纯NDN环境中,基于开放式最短路径优先(OSPF, open shortest path first)协议提出的命名数据OSPF (OSPFN, OSPF for named-data)协议[4]和命名数据链路状态路由协议(NLSR, named-data link state routing protocol)[5]往往是将内容请求数据包——兴趣包广播到网络中寻找内容,这不仅增大了网络的负担,而且浪费了通信资源,降低了整体性能.

与此同时,软件定义网络(SDN, software defined network)在学术界和产业界也都有了长足的发展[6]. SDN将网络的控制平面从数据平面的路由器中解耦出来,集中到SDN控制器中. SDN控制器集中进行拓扑更新,然后进行路由计算,指导数据平面进行转发. OpenFlow协议是SDN网络的标准通信协议,提供数据平面转发设备和控制平面SDN控制器之间的通信服务[7].

NDN网络满足未来网络内容传输越来越大的需求,但是缺少相对成熟的路由策略.而SDN网络对路由策略的智能性和新型网络的易部署性提供了极大的帮助.因此引起了研究者们对NDN网络与SDN网络结合后路由策略的研究兴趣[8].目前,基于SDN的NDN路由策略的关注更多的是架构上的问题,包括内容名的存储以及NDN内容节点的配置等,而对路由策略本身的关注度有所欠缺,也没有完全发掘SDN技术在路由策略方面能带来的更多优势.

针对以上问题,笔者提出一种基于SDN拓扑集中更新的NDN路由策略(拓扑集中更新策略),通过将拓扑更新和路由计算分离,解决了诸多问题.

1 相关工作

Torres等[9-10]提出了一种基于控制器的NDN路由策略,通过控制器集中存储和路由计算,并将路径下发给各个NDN内容节点.网络规模的可拓展性通过更多的控制器实行分域控制来实现.该方案达到了75%的信号传输效率,具有更快的收敛速率.

Aubry等[11]提出了一种基于SDN的CCN(NDN的前身)路由策略(SRSC, SDN-based routing scheme for CCN),在控制器和NDN内容节点之间直接使用兴趣包和内容包进行纯CCN通信.在NS-3模拟器上的仿真结果表明,SRSC不仅减轻了网络的负载,而且还改善了CCN缓存的性能.

Adrichem等[12]提出在OpenFlow控制下的SDN网络中实现NDN路由策略.该策略允许OpenFlow网络利用NDN网络的内容缓存等优势,识别网络中的内容流,并基于自行设定的规则实行路由策略和流量工程.

Cha等[13]提出了一种基于SDN定长内容名的NDN路由架构.通过将NDN数据包压缩进一个IPv6数据包来实现NDN路由和IP路由的结合. Mininet的仿真结果表明,该架构可以与已有的SDN网络轻松兼容.

Minlan Yu等[14]在SDN控制器的可拓展性研究方面提出DIFANE架构,将SDN控制器的部分功能从控制平面下放至数据平面来增强SDN控制器的可拓展性.这减轻了SDN交换机的负荷,代价是大大降低了SDN的灵活性.

2 核心思想

众所周知,路由分为拓扑更新和路由计算两部分.在纯NDN环境中,已有的OSPFN协议和NLSR协议都将拓扑更新和路由计算2部分全部置于分布式的各个NDN内容节点中.而在众多已有基于SDN的NDN路由策略中,拓扑更新和路由计算工作则全部集中式地置于控制器中.如果是在非移动场景中,拓扑更新的工作比较少,但路由计算的工作无论在什么场景中都非常多.这大大增加了控制器的负荷,间接限制了网络规模的可拓展性.特别是,集中的路由计算导致下面这种结果:所有不知如何转发的内容请求都被上报给SDN控制器,经过SDN控制器的路由计算,再将结果下发给对应的NDN内容节点.内容请求上传一次,路由计算结果下发一次,将明显增加内容请求的首包时延.除此以外,已有的基于SDN的NDN路由策略并没有最大化地发挥SDN在路由策略上的可编程优势.

在拓扑集中更新策略中,选择将路由的拓扑更新功能集中地放在SDN控制器中,而路由计算功能则分布式地留在NDN内容节点中.这样既可以保证全网同步快速更新拓扑,同时内容请求数据流的首包时延得以降低,而且SDN控制器的负荷不会太重,可拓展性也更好.

此外,集中式地更新全网拓扑之后,在SDN控制器中基于SDN可编程的特性,可以智能地采取负载均衡思想对更新的完整拓扑进行进一步优化,为NDN内容节点中分布式的路由计算提供预处理.这样具有2个优势:一是最终路径的选取结果可以更加优化;二是NDN内容节点不用等待SDN控制器下发路由策略,而是可以使用NDN网络中原生的转发信息库(FIB, forwarding information base)表进行转发.

3 架构设计

拓扑集中更新策略架构主要由NDN内容节点和SDN控制器2部分组成,NDN内容节点和SDN控制器之间由各自的NDN代理和NetConf代理负责与NDN网络有关的通信,如图 1所示.

图 1 拓扑集中更新策略架构
3.1 NDN内容节点

NDN内容节点部分主要包括传统NDN内容节点应有的内容存储(CS, content store)表、待定兴趣表(PIT, pending interest table)和FIB表,但是对于FIB表做了一些结构上的调整.

CS用于记录经过该NDN内容节点后被缓存的内容包的内容. PIT记录所有该NDN内容节点已经转发的但仍未处理完全的兴趣包. FIB提供所有内容的路由转发策略[2].

在传统NDN内容节点中,FIB表的更新是通过全网各个NDN内容节点对外广播的方式进行,广播的内容包括自己的命名前缀和所提供的内容.而在拓扑集中更新策略中,FIB表不需要再通过这种繁琐且同步性较差的方式来进行更新,而是通过本地路由计算模块查询和反馈进行更新.

NDN内容节点的DataBase中,主要存储Content-Address映射表和优化拓扑图.这里的Content与传统NDN网络中的内容命名保持一致,并且采用哈希表的方式进行压缩存储. Address可以采用SDN网络中针对OpenFlow交换机标识使用的DPID进行唯一表示,摆脱了TCP/IP网络中对于IP地址的依赖.每一个NDN内容节点的Content-Address映射表均与SDN控制器的Content-Address映射表保持同步.优化拓扑图由NetConf代理进行更新,包含网络拓扑以及各链路负载权值信息.

本地路由计算模块为FIB表提供了计算服务,其工作流程分为以下2步:

1) 根据所要请求的目标内容查询Content-Address映射表,找到对应的目的地址;

2) 根据目的地址,在优化拓扑图中进行计算.采用有权Dijkstra算法选取最优路径,然后将计算结果提供给FIB表制定转发策略,简要过程见文献[15].

开放式虚拟交换机(OVS, open vswitch)模块可提供基本的SDN网络相关服务,主要包括对链路拓扑信息的监测等.

3.2 NDN代理

NDN代理引用并改善了参考文献[12]中的NDN代理.

每当NDN内容节点的本地内容库注册登记新的内容信息时,NDN内容节点端的NDN代理会将该变动记录到本地内容更新日志中.每隔一个短时间段,NDN内容节点端的NDN代理会与SDN控制器端的NDN代理建立连接,实现NDNFlow通信.短时间段的设定可以避免每次有新的内容变动就立即更新通知SDN控制器,浪费大量的控制消息开销,也不会影响用户的体验.在NDNFlow通信过程中,NDN代理仅根据上一个短时间段内的内容更新日志信息,将更新的内容上报给SDN控制器,而不是将本地所有内容再次上报.同时,对于本地的其他信息,如Address等,若有变化,也会通过NDN代理进行上报.每经过一个长时间段,NDN代理会自动挑选一个网络轻负载的时间点将NDN内容节点本地内容库的所有内容进行一次上报,以确保SDN控制器记录的NDN内容节点信息准确无误.

SDN控制器端的NDN代理负责实时监听NDN内容节点端NDN代理的动向,接受NDN内容节点端NDN代理的连接请求,并建立连接.当接收并处理完NDN内容节点的更新内容信息后,将信息递交给拓扑管理模块进行处理.

拓扑集中更新策略与文献[12]中NDN代理功能的不同点主要在于其是否负责处理NDN内容节点的内容请求消息.

3.3 SDN控制器

SDN控制器针对NDN网络主要增加了拓扑管理模块和拓扑负载处理模块.同时在数据库中增加了Content-Address映射表和全局拓扑图.

拓扑管理模块在拓扑信息接收上有2个功能:一方面,接收SDN控制器端NDN代理传递的NDN内容节点更新内容信息,将该更新内容与地址的映射关系更新到数据库中的Content-Address映射表中;另一方面,接收SDN控制器自带链路监听模块提供的实时链路监测信息,包括全局拓扑、链路最大带宽以及链路实时带宽等,将该实时信息存入数据库全局拓扑图中.

基于SDN网络可编程的能力,在拓扑更新完之后,拓扑管理模块将全局拓扑图传递给拓扑负载处理模块进行处理.在仅考虑链路负载,而不考虑其他影响因素的前提下,拓扑负载处理模块采用如下公式计算出各条链路负载权值[16]

$ w = \frac{t}{b} \times 100\% $ (1)

其中:t表示链路实时带宽负载;b表示链路最大带宽,由链路两端端口最大速率和链路带宽三者最小值决定;w表示链路负载权值百分比,w越小,负载越低,在使用有权Dijkstra算法进行路径选择时,链路使用优先级越高.

使用链路负载权值,而不是空闲链路带宽绝对值(b-t)来确定链路使用优先级,是为了保证网络中各条链路和网络节点不至于被闲置,而使其他链路尤其是网络节点的负载过高.例如,链路A总带宽只有100 Mbit/s,链路B总带宽有1 Gbit/s.如果以链路带宽空闲绝对值来进行选路,则前900 Mbit/s的流量都会选择从链路B经过.虽然链路B的总带宽相比链路A的总带宽大很多,足够支撑,但是在这种情况下,前900 Mbit/s的流量均由链路B两端的网络节点进行处理,这会导致链路B两端的网络节点负荷很大.而链路A两端的网络节点可能负荷很小,甚至闲置,造成负载不均衡的现象.而使用链路负载权值则不会出现该情况.因此链路负载权值更适合路径选择.

拓扑负载处理模块将全局拓扑图处理完之后,传递给SDN控制器端的NetConf代理.

3.4 NetConf代理

SDN控制器端的NetConf代理收到负载处理后的全局拓扑图,将其作为优化拓扑图,与Content-Address映射表一起传输给NDN内容节点端的NetConf代理.

各NDN内容节点对全网拓扑图的一致性保证采用如下方案:每隔一个短时间段进行一次优化拓扑图和映射表的增量更新,每隔一个长时间段进行一次完整的更新,从而在尽可能小的开销下保证各NDN内容节点对全网拓扑认识的同步,兼顾了高效性和有效性.

NetConf协议是基于XML的网络配置协议[17],安全性高,兼容性好.作为一种面向连接的网络协议,它要求通信端口之间保证永久可靠的连接,而SDN控制器和NDN内容节点之间的连接正是如此. NetConf代理继承了这种特点,并在此基础上提供了SDN节点与NDN节点信息同步高效和有效性的保障,因此非常适用于拓扑信息的实时下发.

在一次拓扑更新过程中,由SDN控制器端NetConf代理发起连接请求. NDN内容节点端NetConf代理接收请求后,将传输的Content-Address映射表和优化拓扑图更新至本地数据库中,保证与SDN控制器端的同步.

4 仿真及分析

根据拓扑集中更新策略的核心思想,通过将其与已有的基于SDN的NDN路由策略的一般实现方式(一般实现方式),即拓扑更新与路由计算均简单集中在SDN控制器中的方式进行对比设计了仿真实验.

仿真环境如下:32G、8网卡的Dell R720服务器;使用ESXi 5.1构建虚拟机环境,所有虚拟机安装Ubuntu 14.04系统,其中SDN控制器采用ONOS 1.5版本;7个NDN内容节点使用自主开发的简化NDN内容节点功能模块,提供NDN内容节点能力,与SDN控制器进行NDNFlow通信和NetConf通信;各NDN内容节点的OVS模块使用OVS 2.3.0,与控制器建立SDN通信,提供拓扑收集的信息;全部节点均部署在4G内存的虚拟机中.

4.1 首包时延

首包时延指数据流的第1个数据包.从该数据包的第1个字节进入NDN内容节点开始到处理完,获得路由策略后,最后一个字节转发离开NDN内容节点为止,所经过的时间称为首包时延[18].

在一般实现方式中,数据流的第1个数据包进入NDN内容节点中,经过CS表、PIT表和FIB表的处理后,发现仍不知如何转发,则会上交给SDN控制器进行处理. SDN控制器根据全网拓扑,通过相应的路由算法计算出转发策略,再下发给NDN内容节点,于是该数据流的首包据此路由计算结果进行相应的转发.

在拓扑集中更新策略中,路由的拓扑更新功能集中地放在SDN控制器中,并每隔很短的一段时间就通过NetConf代理同步到NDN内容节点中,因此,路由计算功能得以分布式地留在NDN内容节点中.首包只需在NDN内容节点中进行处理即可获得转发策略.

一般实现方式与拓扑集中更新策略的首包时延对比仿真实验结果如图 2所示.

图 2 首包时延对比

图 2可以看出,一般实现方式的首包时延主要集中在10~80 ms,而拓扑集中更新策略的首包时延主要集中在1 ms左右,平均相差10~100倍.可以明显看出,拓扑集中更新策略的首包时延平均可降低90%.

分析2种路由策略可知,首包时延的降低归功于拓扑集中更新策略中首包只在NDN内容节点中进行路由计算即可获得转发策略,而无须像一般实现方式那样再通过SDN控制器进行路由计算决策.

4.2 SDN控制器负荷

SDN控制器的负荷承载能力决定了其所辖网络的规模大小.因此,在网络要求不变的前提下,尽可能减小SDN控制器的负荷,这样有助于提高其可拓展的网络规模.

仿真使用SDN控制器所在虚拟机的CPU占用率和内存占用率来反映SDN控制器的负荷.一般实现方式和拓扑集中更新策略的CPU及内存占用率的仿真结果如图 3图 4所示.

图 3 SDN控制器CPU占用率对比

图 4 SDN控制器内存占用率对比

图 3图 4可以看出,对于SDN控制器,一般实现方式的CPU占用率主要集中在75%~85%,内存占用率主要集中在74%~78%,而拓扑集中更新策略的CPU占用率主要集中在45%~55%,内存占用率主要集中在62%~64%.

仿真过程中NDN内容节点功能模块所在虚拟机的CPU占用率和内存占用率如图 5图 6所示.

图 5 NDN内容节点CPU占用率对比

图 6 NDN内容节点内存占用率对比

图 5图 6可以看出,对于NDN内容节点,一般实现方式的CPU占用率主要集中在25%~27%,内存占用率主要集中在36%~37.5%,而拓扑集中更新策略的CPU占用率主要集中在26%~40%,内存占用率主要集中在37%~39. 5%.

分析可知,在一般实现方式中,SDN控制器会几乎不停歇地收到来自全网各个NDN内容节点提交的路由决策请求,需要进行大量的路由计算,消耗SDN控制器的计算资源,因此CPU占用率很高.而在拓扑集中更新策略中,SDN控制器只负责拓扑的更新和下发,而不用进行大量的路由计算,节约了计算资源,因此,CPU占用率基本保持在相对较低的水平.这为实行拓扑集中更新策略后网络规模的拓展奠定了基础.

可以发现,在拓扑集中更新策略中,NDN内容节点的CPU占用率和内存占用率都比一般实现方式中的占用率略高一些,这是因为原来由SDN控制器负责的高强度全网路由计算被分派到对应的各个节点上,这样各个节点的负荷确实会有所增加,但所增加的幅度非常小,而对于SDN控制器负荷的减少却是非常显著的.这从侧面验证了拓扑集中更新策略有助于提高网络规模的可拓展性.

4.3 拓扑更新及负载权值处理

路由分为拓扑更新和路由计算2个部分,各部分独立进行.拓扑更新是路由计算的基础,拓扑更新的策略优劣将直接影响路由计算的结果.从宏观角度来看,各节点路由计算的结果最终将影响整个网络的拥塞状况.

一般实现方式往往未发挥SDN网络全局视野和可编程特性在改善路由算法方面的优势.只在SDN控制器中使用最短路径算法进行路由计算.

拓扑集中更新策略采用SDN控制器提供全局视野,集中式地进行全网拓扑信息收集.除了各节点连通性信息以外,还可以获得链路带宽使用情况的信息.在NDN内容节点中,可基于有权Dijkstra算法[19],针对含链路权值的拓扑进行路由计算.

仿真采用的拓扑如图 7所示,其中的数字表示各链路总带宽.初始时各链路只有背景流量,可以忽略不计.其中A、B、C为内容请求发起节点,分别会对内容源节点G发起不同的内容请求.请求顺序及请求内容预计所占用带宽如下(为了保证实验效果,任何节点请求内容后将持续占用链路带宽至实验结束):

图 7 实验拓扑

第1步  A节点请求内容占用带宽为300 Mbit/s;

第2步  B节点请求内容占用带宽为100 Mbit/s;

第3步  C节点请求内容占用带宽为1 Gbit/s;

第4步  B节点请求内容占用带宽为100 Mbit/s.

在上述实验背景下,一般实现方式和拓扑集中更新策略中全网各链路的链路带宽占用情况变化如图 8图 9所示.

图 8 一般实现方式下链路带宽占用率

图 9 拓扑集中更新策略下链路带宽占用率

图 8图 9可以看出,在前述内容请求顺序和链路带宽占用设置下,一般实现方式中,路由计算的结果是:A→D→G,B→D→G,C→D→G,B→E→F→G;而拓扑集中更新策略路由计算的结果是:A→D→G,B→E→F→G,C→E→F→G,B→D→G.一般实现方式中,链路带宽整体变化情况是部分链路快速达到堵塞状态,如CD、DG链路,而部分链路长时间处于闲置状态,如CE、EF、FG链路,链路带宽使用非常不均衡;而拓扑集中更新策略中,链路带宽整体变化情况是所有链路的带宽利用率都相对比较合理地增长,链路带宽使用比较均衡.

分析可知,在一般实现方式中,更新的拓扑只记录有连通性,因此只能使用最短路径算法进行路由计算. A、B、C前3次请求内容都是选择了路径最短的D节点进行转发.而在拓扑集中更新策略下,更新的拓扑除连通性外还记录了链路带宽使用情况,因此可以使用有权Dijkstra算法进行路由计算.在A节点请求内容之后,B节点根据自己更新的拓扑信息,发现向E节点转发的路由效果会比向D节点转发更好,整体路径开销更低,于是选择从E节点转发.拓扑集中更新策略充分发挥了SDN网络全局视野的能力和网络可编程的特色,为路由计算使用更好的算法提供了可能,从而实现了整体网络链路的负载均衡.

如果A、B、C三者请求的内容相同,路由计算策略不改变,并且遵循NDN网络的转发机制:在兴趣包向内容源节点转发的过程中,如果在路径节点上缓存所请求的内容或者是请求可以聚合,则通过缓存的内容或者是聚合请求的方式来服务用户;如果没有遇到所请求内容的缓存,则继续按照原有的路由计算结果进行转发.

5 结束语

针对一般实现方式中将拓扑更新和路由计算全部置于SDN控制器中产生的不足,提出了拓扑集中更新策略.将路由的拓扑更新功能集中式地置于SDN控制器中,而路由计算功能分布式地置于NDN内容节点中.仿真结果表明,拓扑集中更新策略可以将内容请求的首包时延平均降低90%,将SDN控制器的负荷平均降低10%~30%.除此以外,拓扑集中更新策略充分利用了SDN网络的全局视野和可编程特性,对更新的全局拓扑进行负载权值预处理,从而允许NDN内容节点在进行路由计算时可以使用更加优化的路由算法,保证网络的负载均衡.

参考文献
[1] Jacobson V L, Smetters D K, Thornton J D, et al. Networking named content[C]//Conference on Emerging Network Experiment and Technology. Rome: [s.n.], 2009: 1-12.
[2] Zhang L, Afanasyev A, Burke J, et al. Named data networking[J]. Acm Special Interest Group on Data Communication, 2014, 44(3): 66–73.
[3] Bari M F, Chowdhury S R, Ahmed R, et al. A survey of naming and routing in information-centric networks[J]. IEEE Communications Magazine, 2012, 50(12): 44–53. doi: 10.1109/MCOM.2012.6384450
[4] Wang L, Hoque A, Yi C, et al. OSPFN:an OSPF based routing protocol for named data networking[J]. Technical Report NDN-0003, 2012: 1–15.
[5] Hoque A K M, Amin S O, Alyyan A, et al. NLSR: named-data link state routing protocol[C]//Proceedings of the 3rd ACM SIGCOMM Workshop on Information-Centric Networking. New York: [s.n.], 2013: 15-20.
[6] Kreutz D, Ramos F M, Verissimo P, et al. Software-defined networking:a comprehensive survey[J]. Proceedings of the IEEE, 2015, 103(1): 14–76.
[7] Mckeown N, Anderson T E, Balakrishnan H, et al. OpenFlow:enabling innovation in campus networks[J]. Acm Special Interest Group on Data Communication, 2008, 38(2): 69–74.
[8] Shiva R, Mohammad R P, Keshtgari M. Implementing NDN using SDN: a review of methods and applications[C]//ⅡUM Engineering Journal. 2016, 17(2): 11-20.
[9] Torres J, Ferraz L, Duarte O. Controller-based routing scheme for named data network[J]. Technical Report, Electrical Engineering Program, COPPE/UFRJ, 2012: 1–6.
[10] Torres J, Duarte O. CRoS-NDN:controller-based routing strategy for named data networking[J]. Technical report, Electrical Engineering Program, COPPE/UFRJ, 2014: 1–7.
[11] Aubry E, Silverston T, Chrisment I. SRSC: SDN-based routing scheme for CCN[C]//IEEE NetSoft. Londres, United Kingdom: [s.n.], 2015: 1-5.
[12] Adrichem N L M V, Kuipers F A. NDNFlow: software-defined named data networking[C]//Network Softwarization.[S.l.]: IEEE, 2015: 1-5.
[13] Cha J H, Han Y H, Min S G. Named data networking over a software-defined network using fixed-size content names[J]. IEICE Transactions on Communications, 2016, 99(7): 1455–1463.
[14] Yu M, Rexford J, Freedman M J, et al. Scalable flow-based networking with DIFANE[J]. Acm Special Interest Group on Data Communication, 2010, 40(4): 351–362.
[15] Skiena S. Dijkstra's algorithm[J]. Implementing Discrete Mathematics:Combinatorics and Graph Theory with Mathematica, 1990: 225–227.
[16] Yang Y, Wang J, Kravets R. Load-balanced routing for mesh networks[J]. ACM SIGMOBILE Mobile Computing and Communications Review, 2006, 10(4): 3–5. doi: 10.1145/1215976
[17] Enns R, Bjorklund M, Schoenwaelder J. Network configuration protocol (NETCONF)[R]. San Jose: [s.n.], 2011.
[18] Bolot J. End-to-end packet delay and loss behavior in the internet[J]. Acm Special Interest Group on Data Communication, 1993, 23(4): 289–298.
[19] Knuth D E. A generalization of Dijkstra's algorithm[J]. Information Processing Letters, 1977, 6(1): 1–5.