On Porting iperf to Windows Mobile and Adding BlueTooth Support



Similar documents
Measure wireless network performance using testing tool iperf

CREW - FP7 - GA No Cognitive Radio Experimentation World. Project Deliverable D7.5.4 Showcase of experiment ready (Demonstrator)

Measuring Wireless Network Performance: Data Rates vs. Signal Strength

Iperf Bandwidth Performance Testing

Wireless N 300 Mini USB Adapter. Model # AWLL6086 User s Manual. Rev. 1.0

TamoSoft Throughput Test

Internet and Intranet Calling with Polycom PVX 8.0.1

Golden N Wireless Mini USB Adapter. Model # AWLL6075 User s Manual. Rev. 1.2

Lab Configuring Access Policies and DMZ Settings

Performance of Host Identity Protocol on Nokia Internet Tablet

Wireless N 150 USB Adapter with 10dBi High Gain Antenna. Model # AWLL5055 User s Manual. Rev. 1.0

2X SecureRemoteDesktop. Version 1.1

EView/400i Management Pack for Systems Center Operations Manager (SCOM)

EINTE LAB EXERCISES LAB EXERCISE #5 - SIP PROTOCOL

Quantifying the Performance Degradation of IPv6 for TCP in Windows and Linux Networking

Frequently Asked Questions

Using the DNP3.0 Protocol via Digi Device Servers and Terminal Servers

Microsoft Labs Online

Developing Wireless GPIB Test Systems Using the GPIB-ENET/100

Viking VPN Guide Linux/UNIX

CT LANforge WiFIRE Chromebook a/b/g/n WiFi Traffic Generator with 128 Virtual STA Interfaces

Application Discovery Manager User s Guide vcenter Application Discovery Manager 6.2.1

Performance Evaluation of an IPv6-capable H323 Application

Microsoft Labs Online

Networking Best Practices Guide. Version 6.5

300Mbps. Wi-Fi Range Extender TL-WA855RE. Highlights. Description

Sharp Remote Device Manager (SRDM) Server Software Setup Guide

Position Aware Firewall

How To Create An Easybelle History Database On A Microsoft Powerbook (Windows)

Wireless Troubleshooting

Lab 6: Wireless Networks

NetComm Wireless NP920 Dual Band WiFi USB Adapter. User Guide

Practice Fusion API Client Installation Guide for Windows

Lab Configuring Access Policies and DMZ Settings

Performance Measurement of Wireless LAN Using Open Source

Product Introduction and Setup Examples. RS232 to WIFI Converter

The next generation of knowledge and expertise Wireless Security Basics

Support Guide: Managing the Subject machine s Firewall.

RTX41xx. Wi-Fi Module

Using RADIUS Agent for Transparent User Identification

BLUETOOTH SERIAL PORT PROFILE. iwrap APPLICATION NOTE

A Division of Cisco Systems, Inc. GHz g. Wireless-G. USB Network Adapter with RangeBooster. User Guide WIRELESS WUSB54GR. Model No.

Chapter 6 Using Network Monitoring Tools

General Questions Requesting Access Client Support Downloading Issues Installation Issues Connectivity Issues...

VIA CONNECT PRO Deployment Guide

ITL Lab 5 - Performance Measurements and SNMP Monitoring 1. Purpose

How To Set Up A Network Map In Linux On A Ubuntu 2.5 (Amd64) On A Raspberry Mobi) On An Ubuntu (Amd66) On Ubuntu 4.5 On A Windows Box

ebus Player Quick Start Guide

PMS. Energy management and monitoring software. Installation and operation instructions. BMR trading Horní lán Olomouc Czech Republic

PCMCIA Wireless LAN Card User s Manual

Enabling NetFlow on Virtual Switches ESX Server 3.5

WIRELESS SECURITY. Information Security in Systems & Networks Public Development Program. Sanjay Goel University at Albany, SUNY Fall 2006

LifeCyclePlus Version 1

RDS Directory Synchronization

Performance Tuning Guide for ECM 2.0

On the Deficiencies of Active Network Discovery Systems

Connecting your Aiki phone to a network

COPYRIGHT RESERVED TEAM MYSTERIOUS MANIACS HOME AUTOMATION via BLUETOOTH (Using ANDROID PLATFORM)

SmartDiagnostics Application Note Wireless Interference

Introduction To Computer Networking

AutoDownload: SQL Server and Network Trouble Shooting

ICS 351: Today's plan. IP addresses Network Address Translation Dynamic Host Configuration Protocol Small Office / Home Office configuration

Chapter 6 Using Network Monitoring Tools

Veeam Backup Enterprise Manager. Version 7.0

Chapter 3 Safeguarding Your Network

ProCurve Networking. Troubleshooting WLAN Connectivity. Technical White paper

Monitoring Android Apps using the logcat and iperf tools. 22 May 2015

FAQs: MATRIX NAVAN CNX200. Q: How to configure port triggering?

How To Check If Your Router Is Working Properly

Special Note Ethernet Connection Problems and Handling Methods (CS203 / CS468 / CS469)

Chapter 4 Rate Limiting

Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago

Attack Lab: Attacks on TCP/IP Protocols

Option nv, Gaston Geenslaan 14, B-3001 Leuven Tel Fax Page 1 of 14

ThinPoint Quick Start Guide

ALL0237R. Wireless N 300Mbit Access Point/Repeater. User s Manual

Deploy the ExtraHop Discover Appliance with Hyper-V

Using hp OpenView Omniback II GUI Via Slow Remote Connections

HP Device Manager 4.6

Quick Start Guide. Cerberus FTP is distributed in Canada through C&C Software. Visit us today at

What you don t know about industrial GSM/GPRS modem communications

File Transfer Examples. Running commands on other computers and transferring files between computers

Performance Analysis of IPv4 v/s IPv6 in Virtual Environment Using UBUNTU

Computer Networks/DV2 Lab

Gigabit Ethernet Packet Capture. User s Guide

Network Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper

During your session you will have access to the following lab configuration. CLIENT1 (Windows XP Workstation) /24

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Port Scanning. Objectives. Introduction: Port Scanning. 1. Introduce the techniques of port scanning. 2. Use port scanning audit tools such as Nmap.

NAS 224 Remote Access Manual Configuration

Digi Connect WAN Application Guide Using the Digi Connect WAN and Digi Connect VPN with a Wireless Router/Access Point

7 6.2 Windows Vista / Windows IP Address Syntax Mobile Port Windows Vista / Windows Apply Rules To Your Device

Passive Network Traffic Analysis: Understanding a Network Through Passive Monitoring Kevin Timm,

Lab 1: Packet Sniffing and Wireshark

Chapter 2 Configuring Your Wireless Network and Security Settings

54M/150M/300Mbps USB WIRELESS ADAPTER. User s Manual Version 2.0

Quality of Service (QoS): Managing Bandwidth More Effectively on the Series 2600/2600-PWR and Series 2800 Switches

VMWARE WHITE PAPER 1

Transcription:

On Porting iperf to Windows Mobile and Adding BlueTooth Support Alex Kogan Department of Computer Science Technion, Israel sakogan@cs.technion.ac.il Abstract This paper presents high-level details of two contributions to iperf, a modern tool for testing network performance. The first contribution is a port of the tool to the Windows Mobile operating system, while the second one is the extension of the tool to support BlueTooth communication. The paper also includes results of experiments carried out by the modified tool in various configurations of real networks created by laptops and mobile phones. 1 Introduction iperf [5] is a modern tool for testing network performance, widely adopted by industry and academia (e.g., [1, 3, 6, 7]). It carries performance measurements by creating TCP and/or UDP data streams and measures the throughput of the underlying network. It is an open-source project written in C and C++ and was developed originally by the National Laboratory for Applied Network Research (NLANR). Dealing with OS-specific networking APIs, the latest official iperf sources 1 can be compiled for Unix-like (i.e., Unix flavors, including Linux) and Windows operating systems. This paper reports on the work done to port the iperf tool to the Windows Mobile operating system (OS) and extend the tool to support the BlueTooth communication stack. The extended tool can be found at http://www.cs.technion.ac.il/~sakogan/iperf. The capabilities of the original and extended tool are summarized in Table 1. The paper also reports on the evaluation of network performance carried 1 At the time of writing, the latest official version is 2..4. 1

OS TCP/UDP BlueTooth Unix-like N/A Windows Windows Mobile Table 1: The capabilities of the original and extended tool. states the feature supported in both the original and extended tool, states the feature supported only in the extended tool. with the extended tool on mobile phones running Windows Mobile and on devices equipped with a BlueTooth radio. 2 Technical details 2.1 Windows Mobile porting The port consists of two separate applications: iperfwm the original iperf tool compiled for Windows Mobile.Net Compact Framework. The source was modified to redirect all the output (standard error and output streams) to files instead of a console, and to use appropriate APIs available in.net Compact Framework instead of those available exclusively in.net Framework. runnerwm a GUI tool written in C#, which actually runs the iperfwm tool and displays the produced output. The user interacts directly only with the runnerwm application. Its screenshots are shown in Figure 1. The runnerwm application allows a user to choose the executable file of the iperfwm tool, specify any standard command line parameters and, finally, run the tool. runnerwm starts the iperfwm tool as a separate process and spawns a thread that periodically checks whether the output files produced by iperfwm have been changed; if yes, the thread displays the updated log in the main application window. In order to avoid frequent context switching between the iperfwm and runnerwm tools, the log refresh period was set to 1 second. This log can also be saved for further investigation. In addition, the run of the iperfwm tool can be stopped at any moment from the runnerwm application (this feature is particularly useful when running iperfwm in the server mode). 2

Figure 1: Screenshots of the runnerwm application. Due to the lack of support for multi-colored lines in UI text boxes, the log lines extracted from standard output stream are preceded by +++ signs, while the lines extracted from standard error stream are preceded by!!! signs. It should be noted that, although written specifically for the purpose of iperf s porting, the runnerwm application can be easily generalized to run any console executable and display its logs in a convenient way. Command line interface The ported version supports the same set of options recognized by the original iperf tool, with one exception: since the output of the tool is already redirected into a file to be read and displayed by the runnerwm application, the user is not allowed to specify the -o option, which instructs iperf to redirect its output into a file. 2.2 BlueTooth support The iperf tool was extended to support Microsoft BlueTooth communication stack provided natively by Microsoft starting from the introduction of Service Pack 2 to Windows XP. The choice of this particular stack was mainly motivated by the need to enable iperf on devices running Windows Mobile OS, which features native support for this stack as well. This choice limits the portability of the provided extension, limiting its usage to Windows XP or higher and Windows Mobile 6 or higher. In addition, Microsoft s stack supports only one BlueTooth transport protocol, namely 3

Radio Frequency Communications (RFCOMM), out of at least four protocols available in other stacks [4]. Nevertheless, adding support for another BlueTooth stack, e.g., a popular Broadcomm BlueTooth stack [2], should be similar and a relatively simple technical task. Additionally, RFCOMM being a robust general-purpose and reliable protocol, is the primary choice for any application requiring BlueTooth communication [4]. The BlueTooth API provided by Microsoft extends the Windows Sockets 2 API, used by iperf for TCP/UDP programming. In particular, it includes all standard operations required for creating sockets, establishing a connection, sending/receiving data and closing the socket. The main differences are, essentially, at the syntactic details (e.g., the address family being AF NET and the protocol being RFCOMM) and at the layout of basic data structures, such as a socket address structure (for more technical details, refer to the excellent book on BlueTooth programming by Huang and Rudolph [4]). As a result, adding BlueTooth support required intervention in a very limited number of places in the original source, fitting the parameters in the calls for socket creations and casting to/from appropriate data structures to handle information on sockets, such as network address and port number. BlueTooth support is controlled by a special #define HAVE BLUETOOTH directive, which is currently enabled for Windows and Windows Mobile platforms. Command line interface In order to specify that BlueTooth communication is required, a special command line flag -z was introduced. This flag should be used in conjunction with other standard flags, such as -c for the client mode and -s for the server mode. An iperf user has several options to specify the server for BlueTooth communication when running the tool in the client mode. First, there is the usual option of giving the full address of the corresponding server as a parameter for -c option. In the case of BlueTooth, this is an 48-bits address, which should be given in the XX:XX:XX:XX:XX:XX format. Sometimes, however, the address might not be available or require non-trivial operations to be discovered. For this purpose, the iperf tool can be invoked to perform the BlueTooth server discovery by specifying zero for the server address (i.e., -c option). In this case, the client will make an inquiry for any available BlueTooth devices around and display their addresses and assigned names. In case only one device is found, the client will try to connect to it; otherwise, it will finish the discovery and exit. Finally, the last option to identify 4

the server is to specify some portion of the server s address, e.g., the middle (or last) five digits in the format X:XX:XX. In this case, the client will run server discovery and will try to connect to the server with the address containing the given portion. It is worth mentioning that the discovery process takes a few seconds to complete, and although it is not counted for network performance, it prolongs the duration of experiments. Note also that since the RFCOMM protocol has only 3 ports available, running iperf with BlueTooth communication will normally require to specify a port from the allowed range, instead of using the default one (51). To summarize, the common invocation of iperf in a BlueTooth server mode would be: iperf -z -s -p 15 while in a BlueTooth client mode it would be: or: or: iperf -z -c :9:dd:1:6e:2f -p 15 iperf -z -c -p 15 iperf -z -c 6e:2f -p 15 3 Performance evaluation In this section, we detail some results achieved by the modified iperf tool when run on Windows Mobile-enabled phones and on Windows devices equipped with BlueTooth radio. 3.1 Setup The measurements were taken in networks consisting of two devices placed roughly one meter one from another, in the same room on the same surface without obstacles in between. The networks were configured in one of three settings: (1) WiFi network configured in ad-hoc mode, where two devices communicate directly; (2) WiFi network configured in access-point (AP) mode, where two devices communicate through a wireless router; (3) Blue- Tooth network, where two devices communicate directly through BlueTooth 5

radio. All experiments were opted to avoid any interference from other WiFi or BlueTooth radios by using WiFi radio channels free of any communication and by performing the actual measurements only during night hours. In addition, only the radio under measurements was on during the experiments, and the GSM radio of the mobile phones was always switched off. For the WiFi networks, we experimented with both UDP and TCP transport protocols. For the BlueTooth network, we experimented with (the only supported) RFCOMM protocol. In all experiments with UDP, iperf was configured to send packets at a rate of 6Mb/s, which exceeds the link bandwidth (54Mb/s). This is in order to achieve the maximal available link throughput (the sending rate in TCP or RFCOMM protocols cannot be controlled, and iperf always strives to achieve the highest possible rate). We used two Lenovo T61 laptops and two Samsung i9 (Omnia) mobile phones. All these devices are equipped with built-in WiFi 82.11b/g and BlueTooth 2. radios. In the AP network configuration, we also used a Linksys WRT54GL wireless router. The length of each experiment was 6 seconds. Each reported throughput was calculated based on the average of 1 experiments run in exactly the same configuration. All throughput numbers are in Mb/s units. We also report the minimum and maximum throughput. The standard deviation for throughput in experiments with WiFi was below.7mb/s (with the majority of results having standard deviation below.1mb/s). In experiments with BlueTooth, the standard deviation was below.7mb/s. In our figures, means that the report is for a network consisting of one laptop and one mobile phone, and the laptop serves as an iperf client (i.e., sends data) while the mobile phone serves as an iperf server (i.e., receives data). 3.2 Results WiFi ad-hoc network Figures 2(a) and 2(b) present results achieved in a WiFi-based network configured to operate in ad-hoc mode with TCP and UDP, respectively. For the former, it can be seen that configurations involving mobile phones achieve only 53 61% of the throughput that can be achieved when two laptops communicate, while all configurations are far from the theoretical throughput that can be provided by the 82.11g standard (54Mb/s). The UDP protocol exposes two interesting phenomena. First, its performance in any configuration was lower than that of TCP. This is opposite to 6

Throughput (Mb/s) 2 15 1 5 (a) TCP Throughput (Mb/s) 2 15 1 5 (b) UDP Figure 2: Throughput of the WiFi-based ad-hoc network. the common expectation that an unreliable protocol should trade reliability for performance. This is the outcome of the limitations of APIs provided by Windows OS, and not caused by the work done in the scope of this paper. More specifically, iperf requires to specify the desired bandwidth for UDP communication and tries to control the rate at which UDP packets are sent by putting the sending thread into sleep for (short) periods of time. The length of these periods is carefully calculated, and, depending on the rate specified by the user, can be as short as a few microseconds. While Unix-like systems, complying with POSIX standards, have a special function for handling such a high resolution for the sleeping interval (nanosleep), Windows API lacks such a function and allows only intervals of whole milliseconds. This leads to sub-optimal performance of UDP protocol in iperf on Windows systems since the sending thread spends more time sleeping than actually required. We currently investigate how this limitation can be overtaken. We should also note that when experimenting with Linux, the throughput of UDP reported by iperf in the same network configuration was clearly higher than that of TCP. A second phenomenon is exposed by UDP in the configuration of laptopmobile, where the throughput is drastically lower than that of any other configuration. This can be explained by the fact that the WiFi card of the laptop can send data at a higher sustainable speed than the card of the mobile phone is capable of receiving. Thus, many transmitted packets are dropped by the phone. Figure 3(a) shows the average number of lost messages as reported by iperf, and confirms this explanation. 7

Lost messages (%) 8 7 6 5 4 3 2 1 (a) Ad-hoc Lost messages (%) 8 7 6 5 4 3 2 1 (b) AP Figure 3: Percentage of sent messages that were lost by the receiver in UDP communication in WiFi-based ad-hoc (a) and AP (b) networks. Throughput (Mb/s) 2 15 1 5 (a) TCP WiFi AP network Throughput (Mb/s) 2 15 1 5 (b) UDP Figure 4: Throughput of the WiFi-based AP network. Figures 4(a) and 4(b) present results achieved in a WiFi-based network configured to operate in the access point mode with TCP and UDP, respectively. Here, the TCP performance is generally lower than in the ad-hoc case due to the fact that each packet now traverses two wireless links as opposite to one direct wireless link in the ad-hoc mode. The results for UDP show a reduction in throughput in configuration, which can be attributed to the presence of the additional physical wireless link. Other configurations achieve the same or even higher throughput, which can be the outcome of the imprecision of UDP measurements in Windows, as explained in the previous section. The packet loss (see Figure 3(b)) follows the pattern seen in the ad-hoc network configuration. 8

Throughput (Mb/s) 1.4 1.2 1.8.6.4.2 Figure 5: Throughput of the BlueTooth-based network operating with the RFCOMM transport protocol. BlueTooth network Figure 5 shows the performance of a BlueTooth-based network as measured by the extended iperf tool. It is interesting to note that the throughput between two laptops is almost half of the throughput in any other configuration, which is completely the opposite of the results in WiFi-based networks. Understanding this phenomenon is a part of our future research. Acknowledgement The author would like to thank Oran Barak for providing initial information and sources of iperf, including various bug fixes and extended porting to Windows. Also, the author would like to thank Roy Friedman for fruitful discussions. References [1] S. Bhandarkar, S. Jain, and A. L. N. Reddy. LTCP: improving the performance of TCP in highspeed networks. SIGCOMM Comput. Commun. Rev., 36(1):41 5, 26. [2] Broadcomm Corporation. http://www.broadcom.com/support/ bluetooth. [3] L. Cherkasova, D. Gupta, and A. Vahdat. When virtual is harder than real: Resource allocation challenges in virtual machine based IT environments. Technical report HPL-27-25, HP Laboratories Palo Alto, 27. 9

[4] A. S. Huang and L. Rudolph. Bluetooth Essentials for Programmers. Cambridge University Press, 27. [5] NLANR/DAST. Iperf. Available at http://sourceforge.net/ projects/iperf. [6] H. Sivakumar, S. Bailey, and R. L. Grossman. PSockets: the case for application-level network striping for data intensive applications using high speed wide area networks. In Proc. of the 2 ACM/IEEE conference on Supercomputing, page 37, 2. [7] B.-A. Yassour, M. Ben-Yehuda, and O. Wasserman. Direct device assignment for untrusted fully-virtualized, virtual machines. IBM Research Report H-263, IBM Research Labs, 28. 1