FlowMonitor a network monitoring framework for the Network Simulator 3 (NS-3)



Similar documents
FlowMonitor - a network monitoring framework for the Network Simulator 3 (NS-3)

NS-3 Advanced Tutorial: Visualization and Data Collection

Assignment #3 Routing and Network Analysis. CIS3210 Computer Networks. University of Guelph

IP SLAs Overview. Finding Feature Information. Information About IP SLAs. IP SLAs Technology Overview

Performance Evaluation of AODV, OLSR Routing Protocol in VOIP Over Ad Hoc

Internet Infrastructure Measurement: Challenges and Tools

CCNA R&S: Introduction to Networks. Chapter 5: Ethernet

Mobile IP Network Layer Lesson 02 TCP/IP Suite and IP Protocol

4 Internet QoS Management

On real-time delay monitoring in software-defined networks

Establishing How Many VoIP Calls a Wireless LAN Can Support Without Performance Degradation

Additional Information: A link to the conference website is available at:

Subnetting,Supernetting, VLSM & CIDR

Chapter 9. IP Secure

Exam 1 Review Questions

PANDORA FMS NETWORK DEVICES MONITORING

C-GEP 100 Monitoring application user manual

Transport Layer Protocols

Requirements for Simulation and Modeling Tools. Sally Floyd NSF Workshop August 2005

Technical Bulletin. Enabling Arista Advanced Monitoring. Overview

PANDORA FMS NETWORK DEVICE MONITORING

Chapter 4. VoIP Metric based Traffic Engineering to Support the Service Quality over the Internet (Inter-domain IP network)

EXTENDING NETWORK KNOWLEDGE: MAKING OLSR A QUALITY OF SERVICE CONDUCIVE PROTOCOL

Internet Protocol: IP packet headers. vendredi 18 octobre 13

Internet Architecture and Philosophy

QoS Strategy in DiffServ aware MPLS environment

Procedure: You can find the problem sheet on Drive D: of the lab PCs. Part 1: Router & Switch

CHAPTER 6. VOICE COMMUNICATION OVER HYBRID MANETs

CROSS LAYER BASED MULTIPATH ROUTING FOR LOAD BALANCING

Smart Queue Scheduling for QoS Spring 2001 Final Report

Ethernet. Ethernet Frame Structure. Ethernet Frame Structure (more) Ethernet: uses CSMA/CD

Chapter 46 Link Layer Discovery Protocol (LLDP)

A Summary of Network Traffic Monitoring and Analysis Techniques

Quality of Service (QoS) on Netgear switches

Planeamento e Gestão de Redes. Análise de Requisitos

Voice over IP. Demonstration 1: VoIP Protocols. Network Environment

Network layer: Overview. Network layer functions IP Routing and forwarding

Software Defined Networking (SDN) - Open Flow

VoIP over MANET (VoMAN): QoS & Performance Analysis of Routing Protocols for Different Audio Codecs

A Transport Protocol for Multimedia Wireless Sensor Networks

SBSCET, Firozpur (Punjab), India

CMA5000 SPECIFICATIONS Gigabit Ethernet Module

STANDPOINT FOR QUALITY-OF-SERVICE MEASUREMENT

Ethernet. Ethernet. Network Devices

Contents. Connection Guide. What is Dante? Connections Network Set Up System Examples Copyright 2015 ROLAND CORPORATION

Solution of Exercise Sheet 5

Choosing Tap or SPAN for Data Center Monitoring

TCP over Multi-hop Wireless Networks * Overview of Transmission Control Protocol / Internet Protocol (TCP/IP) Internet Protocol (IP)

batman-adv scalability

APPLICATION NOTE 211 MPLS BASICS AND TESTING NEEDS. Label Switching vs. Traditional Routing

Internet Packets. Forwarding Datagrams

CONTROL MICROSYSTEMS DNP3. User and Reference Manual

RARP: Reverse Address Resolution Protocol

A Simple Methodology for Constructing Extensible and High-Fidelity TCP/IP Network Simulators

Frequently Asked Questions

VoIP QoS. Version 1.0. September 4, AdvancedVoIP.com. Phone:

REDUCING PACKET OVERHEAD IN MOBILE IPV6

Network Layer IPv4. Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS. School of Computing, UNF

NetFlow/IPFIX Various Thoughts

Tomás P. de Miguel DIT-UPM. dit UPM

Network Monitoring and Traffic CSTNET, CNIC

Encapsulating Voice in IP Packets

Network Management and Monitoring Software

Cisco IOS Flexible NetFlow Command Reference

NETWORK LAYER/INTERNET PROTOCOLS

packet retransmitting based on dynamic route table technology, as shown in fig. 2 and 3.

Network Layer: Network Layer and IP Protocol

APPLICATION NOTE 209 QUALITY OF SERVICE: KEY CONCEPTS AND TESTING NEEDS. Quality of Service Drivers. Why Test Quality of Service?

Security in IPv6. Basic Security Requirements and Techniques. Confidentiality. Integrity

10CS64: COMPUTER NETWORKS - II

ns-3 Tutorial (Part IV) Wireless & Tracing System and Visualizing Results

WAN Data Link Protocols

Network Simulation Traffic, Paths and Impairment

LIST OF FIGURES. Figure No. Caption Page No.

Final for ECE374 05/06/13 Solution!!

Chapter 2 Lab 2-2, EIGRP Load Balancing

Joint ITU-T/IEEE Workshop on Next Generation Optical Access Systems. DBA & QoS on the PON - Commonalities with Switching & Routing

Using a Generic Plug and Play Performance Monitor for SoC Verification

CHAPTER 3 STATIC ROUTING

Optimization of AODV routing protocol in mobile ad-hoc network by introducing features of the protocol LBAR

Layer Four Traceroute (and related tools) A modern, flexible path-discovery solution with advanced features for network (reverse) engineers

Network traffic monitoring and management. Sonia Panchen 11 th November 2010

Effect of Packet-Size over Network Performance

VXLAN: Scaling Data Center Capacity. White Paper

4m. MONITORING OF ETHERNET/IP NETWORK TRAFFIC.

Introduction VOIP in an Network VOIP 3

Network Discovery Protocol LLDP and LLDP- MED

Large-Scale TCP Packet Flow Analysis for Common Protocols Using Apache Hadoop

A Quality of Experience based Approach for Wireless Mesh Networks*

Link Layer Discovery Protocol

Three Key Design Considerations of IP Video Surveillance Systems

Dynamic Congestion-Based Load Balanced Routing in Optical Burst-Switched Networks

APPENDIX 1 USER LEVEL IMPLEMENTATION OF PPATPAN IN LINUX SYSTEM

Lecture Computer Networks

Service and Resource Discovery in Smart Spaces Composed of Low Capacity Devices

Outline. Institute of Computer and Communication Network Engineering. Institute of Computer and Communication Network Engineering

to-end Packet Loss Estimation for Grid Traffic Monitoring

Transcription:

FlowMonitor a network monitoring framework for the Network Simulator 3 (NS-3) Gustavo Carneiro Pedro Fortuna Manuel Ricardo INESC Porto Unidade de Telecomunicações e Multimédia Faculdade de Engenharia da Universidade do Porto 2009-10-19 / NSTools 2009

Outline 1 Introduction Network Monitoring Simulation Overview NS-3 2 The FlowMonitor NS-3 module Requirements Architecture Flow Data Structures Basic Metrics 3 Example 4 Validation and Results Validation Performance Results 5 Conclusions Conclusions Future Work

Outline 1 Introduction Network Monitoring Simulation Overview NS-3 2 The FlowMonitor NS-3 module Requirements Architecture Flow Data Structures Basic Metrics 3 Example 4 Validation and Results Validation Performance Results 5 Conclusions Conclusions Future Work

Network Monitoring Traditional network monitoring issues: strategy: passive (just measures) or active (injects traffic to be measured) In simulation, the researcher is already injecting flows, we just need to measure them monitoring points: not every network element can be easily monitored (lack of SNMP) In simulation, every node is monitorable monitoring duration: must be large enough to enable the gathering of statistically sound results In simulation, this can be easily controlled synchronization: events to monitor must be ordered among a set of nodes Usually a time stamp in messages is required Problem: synchronizing the clocks In simulation, the clocks are always synchronized transparency: monitoring control traffic affects results In simulation, monitoring data is reported via method calls, not packets

Simulation Overview Writing simulations is a complex task Write a model Define a topology Add flows Debug... Measure the flows (tracing plus pre-processing) Write the flow statistics to a file for post-processing Significant portion of time dedicated to write code to measure flows and collect statistics Solution: Flow Monitor for NS-3 Just a few lines of code Measures all flows in the simulation, no questions asked Provides flow statistics as 1 Simple in-memory data structures 2 Serialized to an XML file

NS-3 Routing: olsr,global-routing common node helper Internet-stack (ipv4 impl.) core Devices: csma wifi... simulator mobility core base runtime system: attributes, tracing, smart pointers, callbacks common packets, buffers, and packet headers simulator event scheduler, high precision time class node network simulator fundamentals: Node, NetDevice, addresses mobility mobility models (describe the trajectory of a node) olsr the OLSR routing protocol (adhoc) global-routing GOD routing internet-stack UDP/TCP/IPv4/6 implementation csma, wifi, etc. actual implementations of the NetDevice class helper a façade that keeps scripting nice and neat

Outline 1 Introduction Network Monitoring Simulation Overview NS-3 2 The FlowMonitor NS-3 module Requirements Architecture Flow Data Structures Basic Metrics 3 Example 4 Validation and Results Validation Performance Results 5 Conclusions Conclusions Future Work

Requirements ease of use: It must be easy to use Activate with just a few lines of code Detect passing flows automatically Little or no configuration required amount of data to capture: Balanced amount of data Too much captured data: Incurs disk I/O bandwidth Slows down simulations Makes data transfer and manipulation painfully slow Too little and we may miss something important Often we do not realize it is important until too late support python: fire-and-forget approach, no callbacks NS-3 s Config::Connect uses callbacks to process per-packet events In Python, per-packet processing is unpractical, way too slow

Requirements output data format: must be easy to process Candidates: binary files (e.g. HDF): disk efficient, fast, difficult to read, difficult to extend ASCII traces: verbose, difficult to extend, potentially slow to read XML files: verbose, easy to extend, slow but easy to read SQL database: efficient and fast, difficult to read (table format is hidden away), difficult to extend Chosen method: XML Runner up (future work): SQL database Besides, in-memory data structures always available!

Requirements extensible: allow extension to monitor different kinds of flows The concept of flow is not set in stone We usually mean TCP-or-UDP L4 flows The five-tuple filter: (source IP, destination IP, protocol, source port, destination port) Sometimes we want other kinds of flows, e.g.: L2 flows: (source mac, destination mac, ethertype) The way to detect flows may vary Overlay networks Tunnels minimize overhead: monitoring adds time/memory overhead

Architecture

Architecture FlowId: 32-bit identifier of a flow PacketId: 32-bit identifier of a packet within a flow The class FlowMonitor remains unaware of whether it is monitoring IPv4, IPv6, or MAC, flows Only abstract identifiers are used, not packet headers Most of the flow monitoring design, data structures, and code is reused when extending to monitor different kinds of flows

Flow Data Structures

Flow Data Structures Per-probe flow statistics can answer: Which hop accounts for most of the packet losses? Which hop accounts for most of the end-to-end delay?

Flow Data Structures timefirsttxpacket, timelasttxpacket begin and end times of the flow from the point of view of the receiver timefirstrxpacket, timelastrxpacket begin and end times of the flow from the point of view of the receiver delaysum, jittersum sum of delay and jitter values txbytes, txpackets number of transmitted bytes and packets rxbytes, rxpackets number of received bytes and packets lostpackets number of definitely lost packets timesforwarded the number of times a packet has been reportedly forwarded, summed for all packets in the flow

Flow Data Structures delayhistogram, jitterhistogram, packetsizehistogram Histogram versions for the delay, jitter, and packet sizes, respectively packetsdropped, bytesdropped discriminates the losses by a reason code DROP NO ROUTE no IPv4 route found for a packet DROP TTL EXPIRE a packet was dropped due to an IPv4 TTL field decremented and reaching zero DROP BAD CHECKSUM a packet had a bad IPv4 header checksum and had to be dropped

Flow Data Structures Other metrics can be derived from the basic metrics: mean delay: delay = delaysum mean jitter: jitter = jittersum rxpackets rxpackets 1 mean transmitted packet size (byte): S tx = txbytes txpackets mean received packet size (byte): S rx = rxbytes rxpackets mean transmitted bitrate (bit/s): B tx = mean received bitrate (bit/s): B rx = 8 txbytes timelasttxpacket timefirsttxpacket 8 rxbytes timelastrxpacket timefirstrxpacket mean hop count: hopcount = 1 + timesforwarded rxpackets packet loss ratio: q = lostpackets rxpackets+lostpackets

Outline 1 Introduction Network Monitoring Simulation Overview NS-3 2 The FlowMonitor NS-3 module Requirements Architecture Flow Data Structures Basic Metrics 3 Example 4 Validation and Results Validation Performance Results 5 Conclusions Conclusions Future Work

flowmon helper = ns3. FlowMonitorHelper ( ) monitor = flowmon helper. I n s t a l l A l l ( ) monitor. S e t A t t r i b u t e ( DelayBinWidth, ns3. DoubleValue ( 0. 0 0 1 ) ) monitor. S e t A t t r i b u t e ( J i t t e r B i n W i d t h, ns3. DoubleValue ( 0. 0 0 1 ) ) monitor. S e t A t t r i b u t e ( PacketSizeBinWidth, ns3. DoubleValue ( 2 0 ) ) ns3. Simulator. Run ( ) monitor. S e r i a l i z e T o X m l F i l e ( r e s u l t s. xml, True, True ) 1 Create a new FlowMonitorHelper object; 2 Call the method InstallAll on this object FlowMonitor is created IPv4 probes are installed in all nodes 3 Configure some histogram attributes 4 Run the simulation, as before, calling ns3.simulator.run() 5 Finally, write the flow monitored results to a XML file

Outline 1 Introduction Network Monitoring Simulation Overview NS-3 2 The FlowMonitor NS-3 module Requirements Architecture Flow Data Structures Basic Metrics 3 Example 4 Validation and Results Validation Performance Results 5 Conclusions Conclusions Future Work

Validation Point-to-point links connecting the nodes Link capacities alternating between 100kbit/s and 50kbit/s Maximum queue size: 100 packets Every other nodes sends a 100 kbit/s flow to node two hops away Half the packets expected to be lost

Validation C 1 = 100000 bit/s S = (512 + 20 + 8 + 2) 8 = 4336 bit d 1 = S C 1 = 0.04336 s C 2 = 50000 bit/s d 2 = 101 S C 2 = 8.75872 s d total = d 1 + d 2 = 8.80208 s B tx = 512 + 20 + 8 512 + 20 + 8 + 2 C 1 = 99631.00 bit/s B rx = 512 + 20 + 8 512 + 20 + 8 + 2 C 2 = 49815.50 bit/s Metric Measured Value (95% C. I.) Expected Value Mean Error Tx. bitrate 99646.06 ± 2.68 10 5 99631.00 +0.015 % Rx. bitrate 49832.11 ± 7.83 10 5 49815.50 +0.033 % Delays 8.8005 ± 8.8 10 9 8.80208-0.018 % Losses 0.4978 ± 1.5 10 6 0.5000-0.44 % Table: Validation results

Performance Results Run series of simulations, validation scenario Increasing the network size between 16 and 1024 nodes Measure time and memory taken to simulate scenario Compare three variants: 1 Without collecting any results 2 With flow monitoring 3 With ascii tracing to a file

Performance Results Memory (MiB) Time (s) 80 75 70 65 60 55 50 45 Base Flow Monitor Trace File 40 0 200 400 600 800 1000 1200 Number of Nodes 350 300 250 200 150 100 50 Base Flow Monitor Trace File 0 0 200 400 600 800 1000 1200 Number of Nodes Memory Overhead (%) Time Overhead (%) 30 25 20 15 10 5 Flow Monitor Trace File 0 0 200 400 600 800 1000 1200 Number of Nodes 800 700 600 500 400 300 200 100 Flow Monitor Trace file 0 0 200 400 600 800 1000 1200 Number of Nodes Figure: Performance results of the flow monitor

Outline 1 Introduction Network Monitoring Simulation Overview NS-3 2 The FlowMonitor NS-3 module Requirements Architecture Flow Data Structures Basic Metrics 3 Example 4 Validation and Results Validation Performance Results 5 Conclusions Conclusions Future Work

Conclusions A common problem was identified how to easily extract flow metrics from arbitrary simulations? Existing solutions do not solve this problem effectively The Flow Monitor solves the problem Requires significant less programming time than NS-3 callback based tracing A lot more efficient than ascii tracing

Future Work More data output methods (e.g. database and binary file) More options to control level of detail stored in memory Monitor multicast/broadcast flows Closer integration with NetDevices, Monitor packet drop from NetDevice s transmission queue Handle transmission errors from layer 2 Record how flow metrics evolve over time By saving a periodic snapshot of the flows metrics to a file Add convenience methods to the Histogram class to compute the values N (number of samples) µ (mean) s (standard error)