Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introductions of SDN in NS-3

Similar presentations


Presentation on theme: "Introductions of SDN in NS-3"— Presentation transcript:

1 Introductions of SDN in NS-3
张庆安 19/5/2016

2 Motivations for ns-3 project
Develop an extensible simulation environment for networking research 1) a tool aligned with the experimentation needs of modern networking research 2) a tool that elevates the technical rigor of network simulation practice 3) an open-source project that encourages community contribution, peer review, and long-term maintenance and validation of the software

3 Network performance evaluation options
ns-3 enables researchers to more easily move between simulations, test beds, and experiments ns-3 core Direct Code Execution Emulation modes Test and evaluation options Pure simulation Simulation cradles Virtual/Physical test beds Field experiments Live networks Increasing realism Increasing complexity

4 ns history 1990 2000 2010 1988: REAL (Keshav) regular releases
1990s: ns-1 1996: ns-2 : DARPA VINT : DARPA SAMAN, NSF CONSER 2006: NSF CISE CRI Awards Inputs: yans, GTNetS, ns-2 ns-3 core development ( ) June 2008: ns-3.1 May 2015: ns-3.23

5 Relationship to ns-2 ns-3 is a new simulator, without backward compatibility Similarities to ns-2: C++ software core GNU GPLv2 licensing ported ns-2 models: random variables, error models, OLSR, Calendar Queue scheduler Differences: Python scripting (or C++ programs) replaces OTcl most of the core rewritten new animators, configuration tools, etc. are in work ns-2 is no longer actively maintained/supported

6 Acknowledgment of support

7 Software overview

8 ns-3 main website Project home:

9 Software overview ns-3 is written in C++, with bindings available for Python simulation programs are C++ executables or Python programs ~350,000 lines of C++ (estimate based on cloc source code analysis) ns-3 is a GNU GPLv2-licensed project ns-3 is mainly supported for Linux, OS X, and FreeBSD Windows Visual Studio port available ns-3 is not backwards-compatible with ns-2

10 Discrete-event simulation basics
Simulation time moves in discrete jumps from event to event C++ functions schedule events to occur at specific simulation times A simulation scheduler orders the event execution Simulation::Run() executes a single-threaded event list Simulation stops at specific time or when events end

11 Simulator and Schedulers
The Simulator class holds a scheduler, and provides the API to schedule events, start, stop, and cleanup memory Several scheduler data structures (calendar, heap, list, map) are possible "RealTime" simulation implementation aligns the simulation time to wall-clock time two policies (hard and soft limit) available when the simulation and real time diverge

12 Nodes and Devices ns-3

13 Node basics A Node is a shell of a computer to which applications, stacks, and NICs are added Application Application Application “DTN” ns-3

14 NetDevices and Channels
NetDevices are strongly bound to Channels of a matching type ns-3 Spectrum models relax this assumption Nodes are architected for multiple interfaces WifiChannel WifiNetDevice ns-3

15 The basic ns-3 architecture
Application Application Application Application Sockets-like API Protocol stack Protocol stack Packet(s)‏ Node Node NetDevice NetDevice NetDevice Channel NetDevice Channel ns-3

16 Current models flow-monitor BRITE topology- read utilities stats
config- store netanim visualizer bridge csma emu point-to- point spectrum tap-bridge virtual- net-device wifi lte wimax devices uan mesh lr-wpan nix-vector- routing aodv dsdv olsr click protocols openflow Node class NetDevice ABC Address types (Ipv4, MAC, etc.) Queues Socket ABC Ipv4 ABCs Packet sockets applications internet (IPv4/v6) propagation mobility mpi energy Packets Packet Tags Packet Headers Pcap/ascii file writing Smart pointers Dynamic types Attributes Callbacks Tracing Logging Random Variables Events Scheduler Time arithmetic network core 16

17 The ns-3 build tool, called 'waf', can be used to run programs
ns-3 programs ns-3 programs are C++ executables that link the needed shared libraries or Python programs that import the needed modules The ns-3 build tool, called 'waf', can be used to run programs waf will place headers, object files, libraries, and executables in a 'build' directory

18 Structure of an ns-3 program
int main (int argc, char *argv[]) { // Set default attribute values // Parse command-line arguments // Configure the topology; nodes, channels, devices, mobility // Add (Internet) stack to nodes // Configure IP addressing and routing // Add and configure applications // Configure tracing // Run simulation } ns-3

19 Visualization

20 Pyviz screenshot (Graphviz layout)

21 Pyviz and FlowMonitor src/flow-monitor/examples/wifi-olsr-flowmon.py

22 NetAnim "NetAnim" by George Riley and John Abraham pyviz

23 SDN Overview 作为网络核心的路由器,承载功能不断扩展,如分组过滤、区分服务、多播、服务质量(QoS)、流量工程等,路由器最初定义的“哑的、简单的”数据转发单元已经变得臃肿不堪.

24 Top Five Ethernet Switch Vendors

25 SDS, SDDC, SDCar… Software Defined X, SDX
频带、空中接口协议和功能可通过软件下载和更新来升级,而不用完全更换硬件。 用普通话说就是软件独立于硬件,让硬件标准化,软件平台化,信息中心化。 SDS, SDDC, SDCar…

26 SDN (Software Defined Network)
SDN originates from OpenFlow OpenFlow is a fish in the sea of SDN SDN is an architecture, ideology. 当前各种SDN的标准化组织

27 From device supplier programmable turn to user programmable
Three Targets by SDN From device supplier programmable turn to user programmable From device programmable turn to network programmable Integrated network with IT applications

28 OpenFlow User Controller Switch Applications Control software Openflow
Protocol OpenFlow仅仅是SDN中控制器控制转发面设备的协议而已,控制器本身的架构、网络拓扑算法、运行环境、编程工具,以及和上层应用的集成技术都是SDN的一部分,并且是架构上更为核心的部分。 Controller Switch

29 OpenFlow

30 SDN in NS-3 Circuit/Packet Hybrid Data Center Network Simulator
Topology aware Circuit Schedule Algorithms Routing RYU Controller RYU由日本NTT公司负责设计研发的一款开源SDN控制器,同POX一样,也是完全由Python语言实现,使用者可以在Python语言的基础上实现自己的应用,采用Apache License开源协议标准,目前支持协议OpenFlow1.0、1.2、1.3,同时支持在OpenStack上的部署应用。提供逻辑上的集中化管理,通过提供API使网络管理更加方便。 POX是由斯坦福使用Python语言开发的基于OpenFlow的一种控制器,是NOX的兄弟,它具有能将交换机送上来的协议包交给指定软件模块的功能。 Data Plane Circuit/Packet Hybrid Data Center Network Simulator

31 Realize and simulate the delay of different circuits’ switch
Data Plane Realize and simulate the delay of different circuits’ switch Layer2P2MPChannel Class m_delay传输延时 m_reconfigureDalay 链路切换延时 m_src源节点, m_dst目的端网卡集合 如果m_mask包含多个数据,则表示有多个网卡接收该channel发送的数据,即表示物理层的组播

32 Control Plane Support Openflow 1.0 set_topology() get_topology()
update_topology() set_flowtable() get_flowstatus() 为应用提供编程接口

33 Application Plane Topology Aware Route Computing Traffic Demand Estimation Circuit Schedule Algorithms Reconfigure Circuit/Flow Table

34 NS3 is discrete-event simulator and written by C++ SDN≠Openflow
Summary NS3≠NS2 NS3 is discrete-event simulator and written by C++ SDN≠Openflow Architecture of Openflow Application plane Control plane Data plane Hybrid Data Center Network Simulator

35 Questions?


Download ppt "Introductions of SDN in NS-3"

Similar presentations


Ads by Google