RVS-Seminar Implementation and Evaluation of WinJTAP Interface Milan Nikolic Universität Bern
Overview > Short introduction > TAP interface on Win32 OS > Implementation of WinJTAP interface > Test of WinJTAP: JTAPHub P2P Ethernet application > Performance evaluation > Conclusion and outlook > Questions 2
Short Introduction > Motivation Access to a virtual network interface on Win32 platform Used by Multicast Middleware (EuQoS) > Goals of the project: Implementation of an interface between Java Virtual Machine and a TAP device on Win32 Implementation of a test application Evaluation of performance 3
TAP Interface > What is TAP interface? TAP is a virtual Ethernet network device Seen by OS as normal ethernet device Ability to capture all traffic from OSI layer 2 on > Where can TAP interface be used? Virtual Private Network (VPN) Interception of multicast traffic > Why TAP interface? No modifications of the kernel required Implementing layer 2 protocols in user space 4
TAP Interface Overview 5
Implementation of WinJTAP Interface > Overview WinJTAP Interface implemented in C Implementation of WinJTAP used by Java applications using JNI > Problems Concurrent reading/writing Performance is critical (multimedia streaming) > Solution Using asynchronous (overlapped) I/O Syncronization using semaphores and buffers Using a separate thread for asynchronous reading 6
Implementation of WinJTAP Interface cont. 7
Asynchronous I/O > Thread sends I/O request to kernel > Thread continues processing another job if the request is accepted by the kernel > Thread stops when kernel signals that I/O oper. is complete Source: http://msdn2.microsoft.com 8
Testing WinJTAP interface implementation with JTAPHub > Implemented JTAPHub application A virtual ethernet hub using a P2P overlay network Implemented in Java Uses WinJTAP interface to capture and send Ethernet packets 9
Performance Evaluation > Testing stability of an implemented Interface Using JTAPHub test application Streaming multimedia content using Video Lan Client (VLC) > Testing performance Generating and capturing IP traffic using MGEN Statistical analysis of the measurements > Results Maximum achieved throughput on tested systems: 19 Mbps Tests performed with : P4 3.0 Ghz, 1 Gb ram P4 1.7 Ghz, 768 Mb ram P-M Centrino 1.6 Ghz, 1 Gb ram 10
Performance Evaluation: Dropped Packets 11
Performance Evaluation: Throughput 12
Conclusion / Outlook > Achievements Implementation of an Interface to access TAP on Win32 completed Implemented test application Performance evaluation done > Conclusion Tested implementation with JTAPHub and MGEN Implementation is usable for Multicast Middleware regarding performance (max. 19 Mbps) and dropped packets JTAPHub not yet optimized (Garbage Collector, one object per packet) > Outlook Improve JTAPHub application Vista compatibility? Additional tests (different machines, optimized implementation) 13
Questions??? 14
References > [1] Microsoft Developer Network (MSDN) http://msdn2.microsoft.com/. 15