The traffic management of IP networks faces increasing challenges, due to the occurrence of sudden and deep traffic variations in the network, which can be mainly attributed to the large diversity of supported applications and services, to the drastic differences in user behaviors, and to the complexity of traffic generation and control mechanisms. In this context, active traffic measurements are particularly important since they allow characterizing essential aspects of network operation, namely the quality of service measured in terms of packet delays and losses.


J-OWAMP is a Java implementation of the One-Way Active Measurement Protocol (OWAMP). OWAMP is a recent proposal of the Internet2 group and is currently being standardized by IETF under the scope of the IPPM group. OWAMP is an architecture to perform active measurements of one-way delays and losses between hosts.


The current version of J-OWAMP (version 2.1a) implements the December 2004 draft proposal of OWAMP (http://www.internet2.edu/~shalunov/ippm/draft-ietf-ippm-owdp-14.txt). The previous versions of J-OWAMP (versions 1.0 to 1.2a) implement the May 2004 draft proposal of OWAMP (http://www.internet2.edu/~shalunov/ippm/draft-ietf-ippm-owdp-08.txt). To learn more details on J-OWAMP click here. To download the code and the users manual click here.


We have carried out extensive conformance tests between J-OWAMP versions 1.0 and 1.2 and the Internet2 implementation of the May 2004 draft proposal of OWAMP. No conformance tests were carried out yet for J-OWAMP version 2.1.


With J-OWAMP it is possible to accomplish two kinds of test sessions: single test sessions and confidence interval test sessions. The single test session corresponds to the configuration of one single test between two machines. The user can define the number of packets, the packet interarrivals, the packet length and the start time of the session. The results obtained with this type of session are the estimation performance metrics such as mean delay, losses, duplication and throughput. The confidence interval test session allows splitting the complete session period in a number of smaller test intervals and to perform a set of tests in each interval to enable the construction of 90% confidence intervals. For example, if the session period is set at 24 hours, the user can define 24 intervals (of one hour duration), and define also that in each interval a total of 10 tests should be performed in order to calculate the 90% confidence interval. In this case, the interval between the start of consecutive session can also be defined (say 2 minutes).


We also developed  a web interface for  J-OWAMP, which provides a friendly user interface. To download the code and the users manual click here.


If you need some help please contact Hélder Veiga.







OWAMP requires a synchronized clock for measurements to be meaningful. But, more importantly, the clock needs to be stable. If the system clock is stepped during an OWAMP session, the results can be misleading. OWAMP requires that GPS or NTP are used to synchronize the system clock. More details on configuring NTP can be found at http://www.eecis.udel.edu/~mills/ntp/html/notes.html.


J-OWAMP requires the J2SE Java Runtime Environment (JRE) (http://java.sun.com/j2se/1.5.0/download.jsp) that allows end-users to run Java applications. The J2SE Java Runtime Environment (JRE) 5.0 is needed for IPv6 support on Microsoft Windows. With the J2SDK/JRE 1.4 release, there is IPv6 support on Linux.


You must also save a MySQL Connector/J file (http://dev.mysql.com/downloads/) in the "<jre_diretory>\lib\ext" directory to allows interaction between J-OWAMP and a MySQL database. MySQL Connector/J is used for connecting to MySQL from Java.






J-OWAMP has been tested most extensively on Windows and Linux.







J-OWAMP does not have any strict hardware requirements. More tasking packet send schedules will of course require more capable hardware but low bandwidth schedules with small packets can be done on fairly modest hardware.





Additional remarks


The time synchronization, accuracy and resolution are some of the most important requirements of OWAMP. Better accuracy and resolution can be obtained by using performance counters in conjunction with the system time, in order to calculate accurate and smaller time increments. To do so, a time reference should be defined. In any instant the current time can be determined as follows: currentTime = timeReference + (currentCounterValue - referenceCounterValue)/counterFrequency. The time reference can be defined by using the system time, in which case the system should be synchronized, or directly from a NTP server. J-OWAMP allows these two approaches. For the second approach, J-OWAMP includes a NTP client which can be used to get the time reference directly from a NTP server, without the requirement of a synchronized clock on the machine hosting J-OWAMP. This approach can lead to even better results than the first one. On both approaches, time reference should be frequently synchronized. Therefore, an update interval should be defined.


When using J-OWAMP on Windows platforms with the system time approach, we should be aware that the timestamps obtained from Windows are limited to a maximum resolution of 10 to 15 milliseconds, depending on the underlying hardware. As previously said, a better resolution can be obtained by using performance counters in conjunction with the system time (in order to calculate smaller time increments). But, even in this solution it is necessary to have an accurate time reference obtained from the system time, which does not happen on Windows. Thus, results can be misleading even when the machines used in the measurement setup are synchronized. Therefore, we advise the use of J-OWAMP in Linux platforms whenever a resolution better than a few milliseconds is required.


Number of visitors:  

site stats