节点文献
NS3网络模拟器路由协议集成设计与实现
Integrated Design and Implementation of Routing Protocol in NS3 Network Simulator
【作者】 张云;
【导师】 于富财;
【作者基本信息】 电子科技大学 , 通信与信息系统, 2018, 硕士
【摘要】 网络模拟作为一种重要的现代技术,在网络组网、网络协议设计和网络性能优化等方面发挥了重大作用。随着网络技术的不断发展,研究人员也开发出了很多优秀的网络模拟器,NS3网络模拟器就是其中之一。NS3是一个离散事件网络模拟器,主要用于研究和教育用途。同时由于它是免费的开源软件,因此吸引了很多研究者加入到NS3的开发中来。目前,BGP/MPLS VPN组网以其优良的传输性能已被广泛研究与应用,然而,NS3并没有实现BGP/MPLS VPN组网所需的路由协议,无法对使用该协议的网络进行仿真。因此,在目前NS3网络模拟器的基础上,添加实现更多的网络协议就显得尤为重要。但是,目前对于NS3网络协议开发,国内外还鲜有人涉及。因此,本文旨在现有NS3网络模拟器的基础上,分别通过引入第三方软件包和自主设计开发,将BGP、MPLS等路由协议添加到NS3中。本文的主要工作及所取得的成果如下:1.通过引入第三方软件包Quagga将BGP协议添加到NS3网络模拟器中,仿真实现了不同自治域间的通信。并且对比了基于全连接、路由反射器和iBGP2的不同路由重分发策略下仿真效率。2.在NS3中完成了对MPLS协议的设计开发。本文参考MPLS协议的RFC文档,详细阐述了MPLS各个基本组件的设计与实现,包括转发等价类(FEC)、下一跳标签转发条目(NHLFE)、转发等价类FEC到NHLFE的映射(FTN)、输入标签映射(ILM)、标签(Label)等。并且设计了相应的用户接口类,完成协议在NS3网络节点中的配置。最后,通过静态配置标签转发表,仿真实现了私有网络间通过骨干网由MPLS转发实现通信的过程。3.在MPLS协议的基础上设计实现LDP协议,完成了标签的动态分发过程。本文设计实现了LDP协议的基本交互过程,包括LDP邻居发现消息、会话建立消息、标签分发消息和错误通知消息,并且详细阐述了不同消息的设计方法。在LDP协议的基础上,参考CR-LDP的实现机制,设计实现了CR-LDP协议的基本功能。最后,通过LDP协议动态分配标签,仿真实现了私有网络间通过骨干网由MPLS转发实现通信的过程。
【Abstract】 As an important modern technology,network simulation plays an important role in networking,network protocol design and network performance optimization.With the continuous development of network technology,researchers have developed a lot of excellent network simulators which include NS3.NS3 is a discrete event-based network simulator designed primarily for research and education purposes.As a free and open source software,it has attracted many researchers to join in the development of NS3.Currently,BGP/MPLS VPN networking has been widely studied and applied for its excellent transmission performance.However,NS3 does not implement the routing protocol required for BGP/MPLS VPN network simulation,so it can not simulate this network.Therefore,based on the current NS3 network simulator,designing and adding more network protocols into NS3 becomes particularly important.However,few people at home and abroad are involved in the development of NS3 network protocols.Basing on the existing NS3 network simulator,this thesis aims to add BGP and MPLS routing protocols into NS3 through the introduction of the third-party software packages and the independent design & development.The main work of this thesis and the results achieved are as follows:(1)The BGP protocol is added to the NS3 network simulator through the introduction of a third-party software package,Quagga.Simulation enables communication between different autonomous systems.In addition,the simulation efficiency under different route redistribution strategies based on full mesh,route reflector and i BGP2 is compared.(2)To complete MPLS protocol design in the NS3,this thesis refers to the RFC document of MPLS protocol,and elaborates on the design and implementation of each basic component of MPLS,including the forwarding equivalence class(FEC),next hop label forwarding entry(NHLFE),FEC to NHLFE mapping(FTN),incoming label map(ILM),Label,etc.The corresponding user interface is designed to complete the configuration of the protocol.Finally,by statically configuring the label forwarding table,the communication between private networks through the backbone network by MPLS forwarding is realized.(3)The LDP protocol is designed and implemented on the basis of the MPLS protocol to complete the dynamic label distribution process.This thesis designs and implements the basic interaction process of LDP protocol.LDP protocol uses different messages to interact,including LDP neighbor discovery message,session establishment message,label distribution message and error notification message.This thesis elaborates the design method of these messages.Based on the LDP protocol,referring to the CR-LDP implementation mechanism,we designed and implemented the basic functions of the CR-LDP protocol.Finally,though the LDP protocol,the simulation realizes the communication in between different private networks with the backbone network of MPLS forwarding.
【Key words】 NS3; Border Gateway Protocol(BGP); Multi-Protocol Label Switching(MPLS); Label Distribution Protocol(LDP);