QualNet 2014/05/13 602430017 尉遲仲涵. Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming.

Slides:



Advertisements
Similar presentations
Network Simulation One tool to simulation network protocols for the Internet is the network simulator (NS) The simulation environment needs to be set-
Advertisements

,< 資 管 Lee 附錄 A0 IGMP vs Multicast Listener Discovery.
6.033: Intro to Computer Networks Layering & Routing Dina Katabi & Sam Madden Some slides are contributed by N. McKewon, J. Rexford, I. Stoica.
MANETs Routing Dr. Raad S. Al-Qassas Department of Computer Science PSUT
Emulatore di Protocolli di Routing per reti Ad-hoc Alessandra Giovanardi DI – Università di Ferrara Pattern Project Area 3: Problematiche di instradamento.
20 03 TASTE OF RESEARCH SUMMER SCHOLARSHIPS Author: Wei Zhang Supervisor: Tim Moors Efficient Voice Over Wireless Network Abstract The objective of this.
What's inside a router? We have yet to consider the switching function of a router - the actual transfer of datagrams from a router's incoming links to.
PROTOCOLS AND ARCHITECTURE Lesson 2 NETS2150/2850.
Random Access MAC for Efficient Broadcast Support in Ad Hoc Networks Ken Tang, Mario Gerla Computer Science Department University of California, Los Angeles.
Performance Comparison of Routing Protocols for Ad Hoc Networks PATTERN ENDIF Ferrara.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
NCKU CSIE CIAL1 Principles and Protocols for Power Control in Wireless Ad Hoc Networks Authors: Vikas Kawadia and P. R. Kumar Publisher: IEEE JOURNAL ON.
1 Link Layer & Network Layer Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans Kaashoek, Hari Balakrishnan, and Sam Madden Prof. Dina Katabi.
William Stallings Data and Computer Communications 7 th Edition Chapter 2 Protocols and Architecture.
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara Chapter 2: Protocols and Architecture.
Chapter 2 Network Models.
Lecturer: Tamanna Haque Nipa
Process-to-Process Delivery:
EstiNet Network Simulator & Emulator 2014/06/ 尉遲仲涵.
OMNET++. Outline Introduction Overview The NED Language Simple Modules.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
NetSim ZigBee Simulation Code Walkthrough in 10 steps
Protocol Layering Chapter 10. Looked at: Architectural foundations of internetworking Architectural foundations of internetworking Forwarding of datagrams.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
1 Video traffic optimization in mobile wireless environments using adaptive applications Phd Forum UBICOMM 2008 David Esteban.
Protocols and the TCP/IP Suite
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
William Stallings Data and Computer Communications 7 th Edition Data Communications and Networks Overview Protocols and Architecture.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Introduction Slide 1 A Communications Model Source: generates.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
10/8/2015CST Computer Networks1 IP Routing CST 415.
Design and Implementation of a Multi-Channel Multi-Interface Network Chandrakanth Chereddi Pradeep Kyasanur Nitin H. Vaidya University of Illinois at Urbana-Champaign.
QualNet Tutorial Yi Zheng.
© 2002, Cisco Systems, Inc. All rights reserved. 1 Determining IP Routes.
Hyung-Min Lee ©Networking Lab., 2001 Chapter 8 ARP and RARP.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 03_b Protocol Layering Instructor: Dr. Li-Chuan Chen Date: 09/15/2003 Based in part upon slides of Prof.
Univ. of TehranAdv. topics in Computer Network1 Advanced topics in Computer Networks University of Tehran Dept. of EE and Computer Engineering By: Dr.
Wireless Software R&D Group, IITP RAS Kirill Andreev, Aleksey Kovalenko, Dmitriy Lakontsev Realization of IEEE802.11s draft standard in NS-3.3 Institute.
1 CHAPTER 8 TELECOMMUNICATIONSANDNETWORKS. 2 TELECOMMUNICATIONS Telecommunications: Communication of all types of information, including digital data,
COP 4930 Computer Network Projects Summer C 2004 Prof. Roy B. Levow Lecture 3.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
Implementation of Collection Tree Protocol in QualNet
Packet switching network Data is divided into packets. Transfer of information as payload in data packets Packets undergo random delays & possible loss.
TCP/IP Protocol Architecture CSE 3213 – Fall
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Connecting Devices CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL Department of Electronics and.
Group Management in Mobile Ad Hoc Networks Revathi Ranganathan Preeti Venkateswaran.
1 Installing QualNet Install QualNet 5.0 package on hoek.eecis Obtain the license file Note: for successful license check, QualNet must be installed on.
Linux Operations and Administration Chapter Eight Network Communications.
Computer Simulation of Networks ECE/CSC 777: Telecommunications Network Design Fall, 2013, Rudra Dutta.
ISDS 4120 Project 1 DWAYNE CARRAL JR 3/27/15. There are seven layers which make up the OSI (Open Systems Interconnection Model) which is the model for.
SYSTEM ADMINISTRATION Chapter 2 The OSI Model. The OSI Model was designed by the International Standards Organization (ISO) as a structural framework.
An Efficient Gigabit Ethernet Switch Model for Large-Scale Simulation Dong (Kevin) Jin.
Delay in packet switched network. Circuit switching In Circuit switched networks the resources needed along a path (buffers and link transmission rate)
CS 5991 Presentation Ptolemy: A Framework For Simulating and Prototyping Heterogeneous Systems.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Network Models. The OSI Model Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO). Model for understanding.
LonWorks Introduction Hwayoung Chae.
1. Layered Architecture of Communication Networks: Circuit Switching & Packet Switching.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
TrueTime.
Module 9 Writing Protocols
Data and Computer Communications by William Stallings Eighth Edition
Chapter 3: Open Systems Interconnection (OSI) Model
Network Core and QoS.
Process-to-Process Delivery:
Implementing an OpenFlow Switch on the NetFPGA platform
Network Core and QoS.
Presentation transcript:

QualNet 2014/05/ 尉遲仲涵

Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming –Application Layer –Transport Layer –Network Layer –Queue & Scheduler 2

DIRECTORY STRUCTURE 3

Directory Structure 4 Qualnet kernel binaries & libraries Qualnet kernel binaries & libraries model sources & headers global headers

Directory Structure 5 DirectoryContains addonsComponents developed as custom addons for specific customers binExecutable and other runtime files such as DLLs contributedModels contributed by QualNet or EXata customers. dataData files for the Wireless library: antenna configurations, modulation schemes and sample terrain documentationUser Guide, release notes, etc. guiGraphical components including icons, Java class files, and GUI configuration. includeQualNet or EXata kernel header files. interfacesCode to interface QualNet or EXata to 3 rd party tools or external networks, such as HLA, STK, or IP networks. kernelQualNet or EXata kernel objects used during the build process. lib3 rd party software libraries used during the build process. librariesSource code for model libraries such as Developer, Multimedia & Enterprise, & Wireless. license_dirLicense files and license libraries required for the build process. mainKernel source files and Makefiles. scenariosSample scenarios.

QUALNET BASIC 6

Discrete Event Simulation Event –arrival of packet –periodic alarm Action –sending packet –updating system state –starting/restarting timer event1 event2 … eventN event Event Queue register event Handle Event Take Action Changing System State 7

QualNet Protocol Stack 8 Layer Based Architecture & Organization Events & Messages –Events: Essential Concepts –Lifecycle –Event Handling –Packets –Timers –API: Raw Message API and Layer Specific

Protocol Stack Layered architecture Data moves from layer to layer APIs were used can skip layer when data is transmitted 9

Layer Function 10 ApplicationTransportNetworkLink/MACPhysical Communication Medium traffic generation End-to-End data transmission data forwarding link transmission bit level data transmission to/from medium signaling between nodes App-level routing receive from App, forward to Network queuing & scheduling between Transport and MAC layer signal propagation model, environments model rely on Transport layer include IP layer function path loss, fading, shadowing,

How to send packet 11 Node 1 Node 2 Node 1 needs to send a packet to Node 2 Packet Sent Event: Packet Received message

MESSAGE & EVENT 12

Message Events are implemented using Message –HOME/include/message.h –HOME/include/main.h 13 affect transmission time not affect transmission time

Message APIs HOME/include/message.h HOME/main/message.cpp –MESSAGE_Alloc –MESSAGE_Free –MESSAGE_PacketAlloc –MESSAGE_AddInfo –MESSAGE_AddHeader –MESSAGE_RemoveHeader –MESSAGE_GetLayer –MESSAGE_GetProtocol –MESSAGE_GetEvent –MESSAGE_Send 14

Event Type Packet –exchange of data packet between layers or nodes –communication between entities at the same layer Timer –act as a trigger An event is identified by the following: –Node –Layer –Protocol –Event ID 15

Packet Event to simulate transmission of packets across the network –using packet field of Message structure –at each layer, packet header is attached/removed –to send packet to another layer, MESSAGE_Send() 16

Timer Event periodic alarms for event scheduling trigger the event types are defined in –HOME/include/api.h 17 ★ The delay time 0 means “immediate event”.

18 A node with CBR application AODV routing wireless A node with CBR application AODV routing wireless HOME/libraries/wireless/src/ HOME/libraries/developer/ src/ application.cpp transport.cpp network.cpp network_ip.cpp mac.cpp phy_connectivity.cpp app_cbr.cpp transport_udp.cpp routing_aodv.cpp mac_dot11.cpp phy.cpp phy_802_11.cpp Node HOME/main/node.cpp /partition.cpp Layers Protocols

19 Node Which Layer’s Event? QualNet Kernel Which Node’s Event? node = 4 QualNet EventQueue Application Transport Which Protocol? Network LINK/MAC Physical layerType = Transport UDP Which Event? protocolType = UDP call event handler function MESSAGE Node / Layer / Protocol / Event

QUALNET SIMULATION ARCHITECTURE 20

QualNet Simulator Architecture Initialization Event Handling Finalization 21 ★ Each of these functions is performed hierarchically. Node Layer Protocol

Protocol Life Cycle 22 Three main functions that are called by Simulator: Initialization –Called at Time 0 –Initialization of variables Event Processing –Called as needed –Creation –Scheduling –Handling Finalization –Called at end of simulation –Printing Statistics

Protocol Life Cycle 23 Initialization Function Message (Packet or Timer) Processing Function Finalization Function Event Handling: Packets, timers etc Event Handling: Packets, timers etc Modify State Variables Increment Local Statistics Generate / Forward Packets QualNet

Initialization node creation & initialization initialization of each layer, protocol 24 HOME/main/partition.cpp /application.cpp /mac.cpp /network.cpp /node.cpp /transport.cpp HOME/main/partition.cpp /application.cpp /mac.cpp /network.cpp /node.cpp /transport.cpp

Event Handling call a dispatcher function of appropriate node, layer, protocol when a event occurs handle & scheduling event, change system states 25

Finalization call finalization function for each protocol running at that layer print the statistics to output free all instances and terminate simulation 26

Adding a Network Layer Unicast Routing Protocol

How To … 28

29

Register Protocol Name HONE/include/network.h 30

Register Protocol Administrative Distance value HOME/include/network.h 31

Defining Data Structure for Protocol In user’s Protocol.h –Protocol parameters –Protocol state –Statistics variables –Routing table 32 AODV data structure in routing_aodv.h

Initialization Function Call 33

Network Layer Initialization 34

IP callback functions Network Layer routing protocol interacts with IP to route packets and to handle protocol events. Routing protocol registers the functions with IP as part of initialization. 35 Home/libraries/developer/src/network_ip.cpp

Event Dispatcher 36

APIs for MAC Layer Communication APIs to communicate with MAC Layer for Network Layer Routing Protocols to handle an event (transmitting packets to a node’s peers using MAC Layer services) 37

Registering Protocol Event Type All event types must be registered in –HOME/include/api.h 38

Event Dispatcher of AODV 39

40

Modifying IP Function NetworkRoutingGetAdminDistance() –definition of the priority of routing protocol HOME/libraries/developer/src/network_ip.cpp 41

Processing Routing Packets Define IP Protocol Number for user’s protocol –HOME/libraries/developer/src/network_ip.h 42

DeliverPacket() –IP Protocol Number from IP header based switching –checking packet’s routing protocol type interface –call routing protocol’s packet handler function 43

AODV Protocol Packet Handler 44

Queuing Protocols

Data Structures HOME/include/if_queue.h QueueOperation –lists of the different types of dequeue operations 46

PacketArrayEntry –an entry in the array of stored messages 47

Queue –the base class that is used to derive specific queue classes –queue variables –interface functions for queue operations –refer to Programmer’s Guide (p.207) Figure 4-99, Figure 4-100, Figure

Interface Functions HOME/libraries/developers/src/if_queue.cpp 49

QUEUE_Setup() create & initialize an object of –the base Queue class –a class derived from the base Queue class –HOME/include/if_queue.h /libraries/developers/src/if_queue.cpp 50

QUEUE_Setup Example Messenger Application Queue –HOME/libraries/developers/src/app_messenger.h /app_messenger.cpp 51

Queue Operations Example 52

Adding a New Queue Model a new queuing model derived from the base Queue Class additionally –queue-specific parameters –implementing interface functions 53

queue_myqueue.h –constant definitions –data structure definitions –class definition for new model derived from Queue Class –prototypes for additional interface functions queue_myqueue.cpp –include “if_queue.h”, “api.h” –functions to read parameters from configuration file –interface functions for myqueue model 54

Example of RED Queue Model Data Structure Queue Configuration Parameters 55

Reading Parameters from configuration file –NetworkIpInitOutputQueueConfiguration  ReadRedConfigurationParameters 56

ReadRedConfigurationParameters 57

Deriving new Queue Class from base Queue Class –inherited variables & interface functions from Queue Class –additionally, model specific variables override interface functions 58

Modifying QUEUE_Setup Function 59

Scheduler 60

Data Structure HOME/include/if_scheduler.h QueueData –information for one Queue 61

Scheduler –the base class that is used to derive specific scheduler classes –scheduler variables –interface functions for scheduler operations –refer to Programmer’s Guide (p.225) Figure 4-110, Figure 4-111, Figure

Interface Functions HOME/libraries/developers/src/if_scheduler.cpp 63

64 SCHEDULER_Setup() create & initialize an object of –the base Scheduler class –a class derived from the base Scheduler class –HOME/include/if_scheduler.h /libraries/developers/src/if_scheduler.cpp

SCHEDULER_Setup Example IP function –HOME/libraries/developers/src/network_ip.h /network_ip.cpp 65

Scheduler Operations Example 66

Adding a New Scheduler Model a new scheduler model derived from the base Scheduler Class 67

Example of StrictPriorityStat Model Data Structure 68

Deriving new Scheduler Class from base Scheduler Class –inherited variables & interface functions from Scheduler Class –additionally, model specific variables override interface functions 69

Modifying SCHEDULER_Setup Function 70