基于NS3的BCube数据中心网络仿真
来源:用户上传
作者:
摘 要:为了解决复杂数据中心网络仿真难题,在对NS3仿真工具的研究基础上,对NS3的路由协议进行扩充,研究使用NS-3网络仿真软件自动生成BCube网络拓扑,实现BSR路由协议,通过NetAnim可视化模块直观展示网络仿真结果,并通过Tracing系统收集、统计与分析网络丢包情况、端到端时延以及吞吐量等性能指标。与传统RIP协议、OSPF协议进行对比,证明了BSR路由的优越性。该研究可为数据中心网络提供有效的参考信息,有利于简化数据中心网络仿真工作,使数据中心网络能更快地投入使用。
关键词:NS3;网络仿真;BCube;数据中心;网络性能指标
DOI:10. 11907/rjdk. 192104 开放科学(资源服务)标识码(OSID):
中图分类号:TP393 文献标识码:A 文章编号:1672-7800(2020)005-0190-05
0 引言
近年来,随着云计算和计算机密集型网络技术的快速发展,作为其基础设施的数据中心网络再次成为研究热点。在当前的云计算与大数据环境下,数据中心网络中的服务器节点数呈指数级增长,而传统多根树型数据中心网络结构[1]由于具有造价昂贵、容错性差等缺点,很难满足实际需求。因此,学术界与企业界研究出很多新的数据中心网络结构,例如BCube[2]、DCell[3]、RCube[4]等以服务器为中心的数据中心网络结构,以期解决现有问题。
每种数据中心网络都有其对应的路由协议。本文重点研究了BCube数据中心网络中的BSR路由算法,其相比传统RIP协议与OSPF协议有着很大不同。BSR是一种基于函数计算的路由协议,无需维护庞大的路由信息,路由负载能力较强,配置相对简单,适用于大规模数据中心网络[5]。
但由于受到数据中心网络的服务器节点数量庞大、拓扑结构复杂及实验成本高等现实因素限制,目前大多仅停留在理论研究阶段[6]。一般来说,科研人员经过研究提出的新数据中心网络及路由协议不会立即部署使用,在此之前,必须进行大量复杂的测试与分析工作,而如何更好地测试与验证新提出的数据中心网络,是一个亟待解决的难题。
一种有效的解决方案是运用仿真方法对新提出的数据中心网络进行初步实现与验证,有助于对新结构作出及时调整与改进。当前有许多优秀的网络仿真软件(如NS-2[7]、OPNET[8])都具备很强的模拟仿真功能。NS3在完备性、开源性、易扩展性等方面的特色使其优于现有大多数主流网络仿真软件。NS3功能非常强大,其可以对各种网络协议和各个层次进行模拟与研究,并提供灵活的扩展支持[9]。
本文主要对NS3网络仿真软件的点到点通信模块进行分析,重点介绍网络设备节点和网络链路仿真特性,并以此为基础给出BSR路由协议扩展方法,并构建BCube结构的数据中心网络。
1 BCube数据中心网络特点
BCube是一种基于集装箱的模块化数据中心新型网络架构[10]。BCube架构核心是以服务器为中心的网络结构,其中具有多个网络端口的服务器连接到多层COTS(商品货架式)小型交换机。BCube是递归定义的结构。BCube0只是连接到 n 端口交换机的n个服务器。一个BCube1由 n 个 BCube0与n个n端口交换机构成。以此类推,BCubek(k≥1)由n个BCubek-1和nk个n端口交换机构成。BCubek中的每个服务器都有k + 1个端口,并从0级到k级编号。由此可知,BCubek有N = nk +1个服务器和k + 1级交换机,每个级别都有 nk个n端口交换机,如图1所示。
BCube采用BSR路由协议提供高效的路由策略[11]。BSR可以充分利用BCube的高网络容量,并自动均衡通信负载,同时具有良好的容错性能。BSR将服务器分为起始服务器、中继服务器和目的服務器[12]。其通过起始服务器控制路由路径,而不需要中继服务器的协调。中继服务器不需要路由,只需要根据报文头文件进行转发。起始服务器负责选取可达的最优路径,即最小剩余带宽最大的路径,若其相同时则选取最短路径[13]。中继服务器向起始服务器返回错误信息,并报告各条路径的带宽信息,目的服务器返回含有路径中最小带宽的探测信息,从而一方面避免了全局路由状态播报,另一方面使BCube具有动态均匀负载能力,且路由效率极高[14]。
2 BCube网络拓扑仿真过程
NS3不是NS2的扩展,而是一款全新的网络模拟软件[15],是由美国华盛顿大学的Thomas教授及其研究小组开发的。其广泛汲取了当前主流仿真器NS2、YANS 和GTNets的特点,目前已经发展到3.29版本。
NS3本质上是一款离散事件仿真器,从上到下每个模块都依赖于其底层模块[16]。内核模块位于最底层,实现了NS3最核心的功能,如事件调度器、智能指针、回调机制等,为不同网络类型提供一般性的网络仿真服务,其它模块功能都建立在该底层模块之上。Network是网络数据分组模块,主要定义了数据包、Pcap文件操作以及网卡等抽象基类。
2.1 点到点通信模型
NS3的点到点通信模型是一个非常简单的点到点数据链路,通过一个PointToPointChannel正好连接两个PointToPointNetDevice装置,可以看作是一个全双工RS-232或RS-422链路。PointToPointChannel模拟了点到点通信模型,并能以指定速率进行通信,且提供以下属性:Delay: NS3::Time用于指定信道的光传输延迟速度,而PointToPointNetDevice提供Address/DataRate/TxQueue等属性。
通过实例化PointToPointHelper对象连接PointToPoint网络设备,并配置信道属性,构建点到点通信网络。 2.2 BSR路由协议实现
NS3中的所有路由协议都是继承自Ipv4RoutingProtocol类,其实现了路由协议最基本的函数RouteOutput()和RouteInput(),且其中默认了一个基本的静态路由。首先通过函数RouteOutput()将应用层(application)产生的数据包进行层层封装然后发送,直到到达网卡(device),再通过路由规则LookupStatic()转发给其它节点,到达目的节点后通过函数RouteInput()接收数据包,并层层剥离数据包首部,一直发送到应用层(application)。本文模拟的BCube网络是一种以服务器为中心的互连结构,服务器兼具路由功能,报文在具有多个网络接口的服务器中转发,交换机仅在第二层执行报文转发功能。其连接方式是在B0, n以外的层次采用普通交换机实现连接。BCube在任一级都具有相同的单元数n(基数),因此Bk, n拥有nk+1台服务器(B0,n中的服务器数为n)[17]。
BCube网络采用BSR(BCube Source Routing)路由协议,其是一种基于函数计算的路由方法,采用路径自适应协议,使用k+1进制的地址组对每个服务器节点编号,通过任意两节点编号之间的函数关系,自动生成路由,而不需要向局域网中广播报文获取相邻路由信息,每个节点只需存储目的节点编号,从而减少了内存需求,提高了带宽利用率[18]。BSR能很好地构造网络中最长路径较短的多条不相交路径,并实现可靠数据传输[19]。以下将详述BSR路由协议在NS3中的实现过程。
为了能在NS3环境下模拟运行BSR路由协议,首先生成一个代理类,该类继承于Ipv4RoutingProtocol类,同时继承了两个基本功能函数RouteOutput()和RouteInput(),用于转发与接收经过该节点的数据包;其次需要实现Bcube的路由转发规则,先对每个主机(node)编号,当网络中的某个服务器节点发送数据时,该节点便会自动获取本节点地址数组与目的地址数组,并进行对比计算,记录数据传输经过的每一个节点,最终得到整条路由路径。核心代码如下:
BCube数据中心网络的任意两个服务器节点之间存在k+1条路径,通过for循环随机产生不同的array数组,生成k+1条不相交路径。本文将源节点生成的路径存放在报文头中,每转发一次报文,发送端便从数据包的path数组中向后遍历一位,作为下一跳节点,直到遍历结束。
3 BCube示例仿真实现
本文将构建一个2层4端口的BCube拓扑(见图2),并进行简单的性能测试。仿真实验环境在虚拟机上构建,在VMware上创建一台Ubuntu虚拟机,并安装NetAnim可视化软件与NS3仿真软件。
搭建BCube数据中心网络拓扑,在scratch/bcube.cc文件中编辑脚本。首先通过NodeContainer节点容器类的Create()方法创建24个节点,其中16个为服务器,另外8个为交换机。PointToPointHelper类负责连接网络设备以及设置网络信道属性。通过实例化PointTopointHelper对象设置信道速率及时延等属性,并通过InStall()方法安装到每个节点。以上便完成了设备与信道配置,接下来通过InternetStackHelper类为每台设备安装一个网络协议栈,主要是IP层。通过类Ipv4AddressHelper的SetBase()为节点上的设备配置IP地址和子网掩码。至此,一个安装了协议栈、配置了IP地址的点到点BCube网络便搭建完成。核心代码如下:
在成功建立拓扑后,可以通过NetAnim模块显示该网络拓扑的效果。NS3中的NS3::AnimationInterface类负责追踪节点间的数据分组流轨迹,并生成XML跟踪文件[20]。在NetAnim中读取statistics文件夾下生成的XML文件,生成如图3所示的BCube拓扑,可以动态显示数据流向以及经过的节点。
创建好的网络并不会自己产生流量,需要选择合适的网络应用模型产生数据通信。首先选择一个节点作为客户端发送数据(0号节点),另一个节点作为服务器端,负责接收数据(8号节点),客户端节点以TCP流量发送数据包给服务器节点。本实验仿真该拓扑网络的TCP拥塞窗口机制,通过加入错误机制制造数据丢失,最终引起拥塞窗口的改变。主要代码如下:
通过对NS3中Tracing文件的处理可以对整个网络进行性能分析,计算出整个网络的数据传输延迟、丢包率和吞吐量,并通过Gnuplot工具生成相应实验结果图,以反映各种网络性能参数随时间变化的趋势。
4 实验结果及分析
仿真分为3组实验进行,分别针对端到端时延、网络吞吐量和丢包情况,并与RIP协议及OSPF协议进行对比。
图4给出了BSR协议、RIP协议和OSPF协议下网络吞吐量随时间的变化关系。BCube网络吞吐量随时间变化呈近似线性增长,当数据流变大时,网络吞吐量的增长率都有所降低,且趋于平稳。在相同的网络流量下,BSR协议吞吐量略高于OSPF协议,也高于RIP协议。
由仿真结果可知,BSR协议不涉及中间路由,避免了链路状态广播,其网络结构提供了大量并行不相交路径,且网络中更多服务器的平均长度小于3,可以有效减少路由产生的拥堵,增加网络吞吐量,缩短网络时延,减少网络的丢包情况。
5 结语
本文通过实例介绍如何使用NS3快速、便捷地创建一个数据中心网络拓扑,并对其进行简单的性能测试与调整,以便其更符合实验环境,且更贴近真实网络。本文还在NS3中重点实现了适用于BCube架构的BSR路由协议,并与RIP及OSPF路由协议进行了比较。今后将对NS3模拟软件的其它模块进行研究及改进,同时对其它数据中心网络拓扑下的各类应用性能及可行性进行验证。 参考文献:
[1] DIEGO K, FERNANDO M V R, PAULO V,et al. Software-defined networking: a comprehensive survey[J]. Proceedings of the IEEE, 2015, 103(1): 14-76.
[2] GUO C, LU G, LI D, et al. BCube: a high performance,server-centric network architecture for modular data centers[J]. ACM SIGCOMM Computer Communication Review, 2009, 39(4): 63-74.
[3] LI Z, YANG Y. RCube: a power efficient and highly available network for data centers[C]. Parallel and Distributed Processing Symposium (IPDPS), 2017 IEEE International. IEEE, 2017: 718-727.
[4] GUO C, WU H, TAN K, et al. DCell: a scalable and fault-tolerant network structure for data centers[C]. ACM SIGCOMM Computer Communication Review. ACM, 2008, 38(4): 75-86.
[5] HAN Z, YU L. A survey of the BCube data center network topology[C]. 2018 IEEE 4th International Conference on Big Data Security on Cloud (BigDataSecurity), 2018: 229-231.
[6] 茹新宇,劉渊. 网络仿真器 NS3 的剖析与探究[J]. 计算机技术与发展, 2018, 28(3): 72-77.
[7] KASHYAP V K,ASTYA R, NAND P, et al. Comparative study of AODV and DSR routing protocols in wireless sensor network using NS-2 simulator[C]. 2017 International Conference on Computing, Communication and Automation (ICCCA). IEEE, 2017: 687-690.
[8] BISWAS S. Simulation model of beacon enabled 802.15. 4 networks with OPNET modeler[C]. 2017 International Electrical Engineering Congress (iEECON). IEEE, 2017: 1-4.
[9] COUDRON M, SECCI S. An implementation of multipath TCP in ns3[J]. Computer Networks, 2017, 116: 1-11.
[10] PAN T, CHENG B, FAN J, et al. Toward the completely independent spanning trees problem on BCube[C]. 2017 IEEE 9th International Conference on Communication Software and Networks (ICCSN). IEEE, 2017: 1103-1106.
[11] ASGHARI V, MOGHADDAM R F, CHERIET M. Performance analysis of modified BCube topologies for virtualized data center networks[J]. Computer Communications, 2016, 96: 52-61.
[12] KUMAR A R A, RAO S V, GOSWAMI D. Ns3 simulator for a study of data center networks[C]. 2013 IEEE 12th International Symposium on Parallel and Distributed Computing (ISPDC),2013: 224-231.
[13] SINGH A, ONG J, AGARWAL A, et al. Jupiter rising: a decade of clos topologies and centralized control in google's datacenter network[C]. ACM SIGCOMM Computer Communication Review,ACM, 2015, 45(4): 183-197.
[14] GUO D. Aggregating uncertain incast transfers in BCube-like data centers[J]. IEEE Transactions on Parallel and Distributed Systems, 2017, 28(4): 934-946. [15] ZARRAD A, ALSMADI I. Evaluating network test scenarios for network simulators systems[J]. International Journal of Distributed Sensor Networks, 2017, 13(10): 6-8.
[16] 孫永胜,贺珊珊,王维. 基于 NS-3 的核电 DCS 网络仿真框架[J]. 电子技术与软件工程, 2018 (5): 17-18.
[17] LI Z, YANG Y. Permutation generation for routing in BCube connected crossbars[C]. 2015 IEEE International Conference on Communications. IEEE, 2015.
[18] WANG S, LUO J, LO Y H, et al. Forwarding and optical indices in an all-optical BCube networks[C]. 2018 IEEE 37th International Performance Computing and Communications Conference (IPCCC). IEEE, 2018.
[19] KLIAZOVICH D, BOUVRY P, KHAN S U. Simulation and performance analysis of data intensive and workload intensive cloud computing data centers[M]. Optical Interconnects for Future Data Center Networks. Springer, New York, NY, 2013: 47-63.
[20] ALDALBAHI A,RAHAIM M,KHREISHAH A,et al. Extending ns3 to simulate visible light communication at network-level[C]. 2016 23rd International Conference on Telecommunications (ICT), 2016.
(责任编辑:黄 健)
转载注明来源:https://www.xzbu.com/8/view-15252222.htm