Wide Area Network Monitoring using Java and the Web


Kent Fitch, Information Technology Services, CSIRO, Limestone Av, Canberra 2600 Australia. Phone: +61 6 276 6711 Fax: +61 6 276 6617 Email: kent.fitch@its.csiro.au Home Page: Kent Fitch[HREF 1]
Keywords: WorldWideWeb, Java, network monitoring, WAN

Introduction

This paper describes the architecture and implementation experiences of a project to collect Wide Area Network (WAN) traffic statistics and make them available in a rich GUI environment based around WWW and Java.

The main topics discussed are:

Background

CSIRO[HREF 2] is a large and geographically dispersed organisation employing over 7000 staff at research laboratories and administrative units at over 60 sites across Australia. As a founding member of the Australian arm of the Internet (AARNet), CSIRO has been using the Internet as its Wide Area Network (WAN) backbone for several years. The combination of:

have made it clear that we need to be able to understand and account for current network traffic and predict the need for further capacity.

This paper describes a system which collects information about Wide Area Network traffic, transports it to a central repository and makes it available for display through a WWW based Java GUI.

The need to collect detailed network usage statistics

CSIRO has an operational requirement to monitor and understand WAN usage because:

Previously, the extent of our WAN traffic volume statistics was raw port counts from our Cisco routers. They did not allow us to analyse traffic by protocol, source or destination, nor did they reveal individual flows between hosts contributing to congestion.

Collecting detailed network statistics

The natural point to collect WAN network statistics would seem to be the border (or tail) network routers which interface a single LAN to the WAN or a collection of LANs to each other and the WAN. Routers have traditionally been designed to minimise routing delays, and any collection of statistics has been provided merely as by-product.

We looked at the following means of collecting statistics:

RMON

The Remote Network Monitoring (RMON)[HREF 5] component of the Simple Network Management Protocol (SNMP) [HREF 6] has been designed to allow for the remote management of network monitoring devices. It is probable that RMON will eventually be a widely deployed, integrated, interoperable and capable tool for collecting network statistics of all kinds. However, until RMON evolves to the point where it is bundled in routers, an alternative approach based on general-purpose packet sniffing tools (which gather information from network packets as they pass by a network interface card) appears to be simpler and more pragmatic.

NeTraMet

NeTraMet[HREF 3] is a network statistics accumulation package which implements the Internet Accounting Architecture [HREF 7]. We considered NeTraMet for our purposes but decided to look further afield for these reasons:

Net-acct

We then looked at a very small, simple and fast network accounting package, net-acct written by Ulrich Callmeier [HREF 8] for Linux. Net-acct seemed focussed at collecting accounting statistics for the generation of customer accounts by Network Service Providers. Net-acct comprises:

We modified net-acct to make it even faster by:

As a result, net-acct running under Linux version 1.2.8 on a 486-33 with 8MB of memory and 16 bit ethernet card can cope with average prime-shift packet rates of 450 packets/second and regularly sustained rates of over 800 packets/second with an average CPU usage of only 12% and less than 0.05% of packets being dropped.

The output of net-acct is packet counts and bytes, sent and received over the last 60 seconds for each flow "tuple". A post-processing program called "gather" runs as a background task to read the file output by net-acct and produce:

The "gather" program then compresses these summary components and uses TCP/IP to send the compressed file to a network statistics collection facility described later.

The net-acct system has been tested on the CSIRO Corporate Centre network at Limestone Avenue in Canberra. The following diagram shows the physical positioning of the net-acct system in the network:


Figure 1. Where net-acct is positioned in the network.

It is envisaged that systems running net-acct will be installed at other nodes in the CSIRO WAN during 1996. Each system will send compressed network statistics to a central collection system.

The Central Network Statistics Collection and Server system

Storing network statistics in one place simplifies processing and retrieval. Rather than each client wanting to display statistics having to know about all collection points, the only network topology configuration required is for each collection point running net-acct to know the name of the central collection system, and for each client to know it also.


Figure 2. Topology.

The central network statistics collection system is written as a multi-threading Java application running on a UNIX server. As TCP/IP connections are received from net-acct systems, a Java thread is spawned to read the file, decompress it, and extract the collection point node name and timestamp which are used to generate the filename under which the statistics are stored. Eg, statistics from 15:24 on the 30th April 96 collection from the Limestone net-acct would be stored as:


		./limestone/detail/96/4/30/15/24

where the detail denotes detailed statistics. Each file decompresses to between 3K and 4K, generating 4MB per day per collection point. Asynchronous threads produce hourly, daily, weekly and monthly accumulations, and eventually, old detail files are deleted.

The serving of statistics to client programs has also been coded in Java, and in fact the serving system runs in the same address space as the collection system. These systems would traditionally have been programmed in C. So what benefits does Java bring?

The Network Statistics Client

The network statistics client connects to the central network statistics collection and server system to retrieve statistics which it displays graphically. Over two years ago we developed the TWEETY network response time system [HREF 9]. It graphically represents end-to-end response times at the TCP layer over our WAN, and has been a very handy tool, alerting us to outages and performance degradation. However, the TWEETY client was written in Visual Basic which limits the viewing platform to Intel hardware running Windows. Our aims for the network statistics client were:

It was decided to implement the client as a Java applet for these reasons:

The first step in developing the client was to implement a basic graphing library [HREF 10] for bargraphs, linegraphs and piecharts. This class library was designed to:

Once the graphic library was stable, the next step was to design the interface between the client and the server. The client sends the following information to the server to retrieve data:

The native Java TCP/IP socket services were used to establish a connection to the statistics server, and the Java datastream abstraction was used to hide details of TCP/IP. Since this work was done, Sun have released two Remote Procedure Call (RPC) type methods for Java:

By hiding network and communications specifics, both techniques allow programmers to improve used standard object programming techniques to invoke methods regardless of where the objects implementing those methods are located on the network.

Interfacing the statistics retrieval code with the graphing classes was simple. Here is a screen shot of a typical display of detailed statistics:


Figure 3. Typical current status display.

Mouse actions are interpreted as:

The "top flows" information is shown in a separate frame as a scrollable grid:


Figure 4. Typical current Top flows display.

Problems and Future Developments

Most Java developers would have these items on their wish-list for the Java enhancements:

In the application itself, some changes we would like to make are:

We also need to test the feasibility of maintaining a multitude of statistics gatherers over the end points of our WAN, and planning how we would support collection on 100Mbit/second network segments.

Conclusion

A great deal of useful planning and performance information can be gathered and effectively displayed using a modified packet-sniffer and a Java user interface. This project was used as a trial of the effectiveness of Java as a development language for both server and client components, and for testing the effectiveness of making Java applications available through a Web interface.

On all counts, Java demonstrated itself to be an excellent solution which extends the functionality of the Web. A demonstration [HREF 15] of the current system is available for viewing on the Web.


Hypertext References

HREF 1
http://www.csiro.au/itsb/staff/fit106.html - Kent Fitch's Home Page
HREF 2
http://www.csiro.au - the CSIRO home page
HREF 3
http://www.auckland.ac.nz/net/Accounting/ntm.Release.note - the NeTraMet home page
HREF 4
http://www.aarnet.edu.au/aarnet/pricelist.html - Tariff Schedule for Telstra Internet Services
HREF 5
http://ds.internic.net/rfc/rfc1271.txt - Remote Network Monitoring (RMON) RFC
HREF 6
http://www.outbackinc.com/Dev/SNMP/ - Simple Network Management Protocol (SNMP)
HREF 7
http://ds.internic.net/rfc/rfc1272.txt - Internet Accounting Architecture RFC
HREF 8
mailto:uc@brian.lunetix.de - Ulrich Callmei
HREF 9
ftp://ftp.csiro.au/csiro/sunos/tweety/tweety.doc - TWEETY network response time system
HREF 10
http://www.csiro.au:8000/kent/netstats/GraphDemo.html- CSIRO ITS Java basic graphing library
HREF 11
http://www.sun.com/sunsoft/neo/external/neo-joe.html - JOE
HREF 12
http://splash.javasoft.com/pages/intro.html - Remote Objects for Java
HREF 13
http://splash.javasoft.com/jdbc/ - JDBC
HREF 14
http://www.csiro.au:8000/kent/netstats/teststats.html - CSIRO Netstats application

Copyright

Kent Fitch ©, 1996. The author assigns to Southern Cross University and other educational and non-profit institutions a non-exclusive licence to use this document for personal use and in courses of instruction provided that the article is used in full and this copyright statement is reproduced. The author also grants a non-exclusive licence to Southern Cross University to publish this document in full on the World Wide Web and on CD-ROM and in printed form with the conference papers, and for the document to be published on mirrors on the World Wide Web. Any other usage is prohibited without the express permission of the author.

Pointers to Abstract and Conference Presentation
Abstract Conference Presentation Interactive Version Papers & posters in this theme All Papers & posters AusWeb96 Home Page

AusWeb96 The Second Australian WorldWideWeb Conference "ausWeb96@scu.edu.au"