Broadband Communications Systems and Architectures Research Group

Documentation

General Description: The NetMeter Project

The NetMeter, as a network performance measurement tool, is based on active measures. That kind of measures are based on inserting synthetic traffic into the network in order to analyze its performance. This synthetic traffic is used to evaluate and to compare the expected results with the empiric ones.

NetMeter is a GPL (General Public License) application designed for UNIX systems and developed within the CCABA research group (Centre de Comunicacions Avançades de Banda Ample) of the UPC (Universitat Politècnica de Catalunya). The main aim of this tool is to provide automatization and ease or use for the traffic generation and monitoritzation processes. This goal is achieved with a design based on a control station (the one that executes NetMeter) that gathers all the desired traffic properties through a GUI (that can be executed in another station) and uses management interfaces in order to apply them on other stations

NetMeter uses a client-server architecture. The client part (NetMeterGUI) is implemented as a GUI (Graphical User Interface) that inter-actuates with the user. This client sends all the data gathered to a server (NetMeter) that will apply the changes and configure all the stations in order to perform the tests. This architecture allows the user to run the client and server application in different stations in order to gain flexibility and performance. All the communications and storage formats within plugins are based on the XML language.
NetMeter is designed as a collection of plugins and that provides flexibility (load or unload plugins) and efficient resource utilization. In some cases the GUI can perform analytical activities without the cooperation of the server part, such as graphical and statistical tasks.
The source code is divided in three parts:

LibNetMeter

Is the API (Application Programming Interface) and gives a range of tools to the programmer in order to build the plugins. This API is widely used among the NetMeter code because it extracts facilities such as file management and remote controlling via the Secure Shell Protocol (SSH).

NetMeter

It is the server implementation, it receives the NetMeterGUI petitions and it's divided into different plugins. This plugins interact with the helper applications such as mgen, netperf, etc in order to automatize the tests and provide the set of low level functionalities to perform the different tasks.

NetMeterGUI

It's the graphical user interface of the NetMeter project. It is designed using the QT 4.4 libraries from QT Software. It is also divided in different plugins like the NetMeter core. In this case the goal of the plugins is to present a friendly user interface that interacts with the lower level functionalities of the core.
The most relevant plugins are classified into three different categories: Traffic Generation, Network Management and Result extraction.

Plugin List

  • Traffic Generation

    Traffic Generation Plugins

    Traffic generator: plugin based on the Mgen traffic generator. This tool is specially useful in real-time traffic generation (unicast and multicast UDP) and has also some support for RSVP [1]. The basic information that Mgen collects is the transmission and reception timestamps, the packet size and the sequence number. This data is very useful in order to get the QoS metrics like One-Way Delay (OWD) [2], Inter Packet Delay Variation (IPDV) [3], and Packet Loss Ratio (PLR) [4].

    Throughput: plugin based on the NetPerf tool that allows you to measure the performance of a link measuring its Bulk Transport Capacity (BTC) [5] and bandwidth. This tool can perform unidirectional tests or point-to-point tests in different types of architectures. NetPerf tries to generate as much traffic as the link can manage for a single flow to extract its maximum capacity.

  • Network management

    Network Management Plugins

    Network Simulator: beside active traffic generation facilities, to broaden the scope of the tool, NetMeter provides a framework to setup a series of different network conditions. This plugin uses two Linux-based traffic administration tools (iptables and traffic control tc). These well-known applications allow the user to change the behavior (e.g. queuing delays, packet loss ratio, jitter, etc.) over a previously specified criteria, based on station selection or other traffic properties such as source/destination ports, transport protocol UDP/TCP.

  • Result extraction

    Graphic and Statistic Analysis

    Statistic: this plugin is used to extract useful data from the tests performed with the test plugins (e.g. Traffic Generator). This results (IPDV, OWD, sent packets, received packets, duration, lost ratio...) can be exported or saved in different formats (XML, XHTML, TXT) and can be presented per flow or aggregated.

    Graphic Analysis: this plugin is used in order to present the graphical analysis of the result files from the tests performed with the test plugins. Graphs can be exported to .png (Portable Network Graphics), .jpg (Joint Photographics Experts Group), .svg (Scalable Vector Graphics) and .pdf (Portable Document Format).

  • On going work

    On going work

    • Suport for OWAMP
    • Integrated GPS synchronization
    • And, as always, bug fixes and testing
  • Future work

    Future work

    • Database storage for tests
    • Enhanced graphical plotting capabilities
    • Support for new network measurement applications, specifically to provide a passive network measurement framework
  • References

    References

    • [1] - R. Braden, L. Zhang, S. Berson, S. Herzog, S. Jamin, RFC2205 - Resource ReSerVation Protocol (RSVP), September 1997.
    • [2] – G. Almes, S. Kalidindi, M. Zekauskas, RFC2679 - A One-way Delay Metric for IPPM, September 1999.
    • [3] – C. Demichelis, P. Chimento, RFC3393 - IP Packet Delay Variation Metric for IP Performance Metrics (IPPM), November 2002.
    • [4] – R. Koodli, R. Ravikanth, RFC3357 - One-way Loss Pattern Sample Metrics, August 2002.
    • [5] – M. Mathis, M. Allman, RFC3148 A Framework for Defining Empirical Bulk Transfer Capacity Metrics, July 2001.

Comunicacions de Banda Ampla © 2009