WiFu

The research community has invested considerable effort on improving TCP performance in wireless networks, but very few of these solutions have been evaluated experimentally in a wireless network testbed. WiFu makes this easier by allowing user-space development of a transport protocol. WiFu uses a composable, modular architecture, so that the researcher can rapidly plug-and-play with new designs. The toolkit has two major pieces: WiFu Transport for end-to-end transport functionality and WiFu Core for per-hop interception of packets and cross-layer functionality. Currently WiFu has an implementation of TCP Tahoe, with additional protocols in development.

Basic operation of the WiFu toolkit

Features

Flexibility
Protocols are built out of components, so it is easy to plug-and-play with new reliability or congestion control protocols

Code Reuse
WiFu comes with event handling, timers, packet formats, and other functionality so you get the convenience of a simulator with the reality of an implementation

Performance
WiFu TCP is as fast as the kernel in wireless networks and on 100 Mbps Ethernet, while having identical fairness among flows

Easy Porting
WiFu implements the standard BSD socket API, so it is simple to port any application for use with WiFu

Network Debugging
WiFu comes with a mock network object and Wireshark packet traces, greatly simplifying the process of debugging a network protocol

Scalability
Support for multiple applications, built with threading, written entirely in C++

Papers

  • Randy Buck, Rich Lee, Philip Lundrigan, and Daniel Zappala. WiFu: A Composable Toolkit for Experimental Wireless Transport Protocols. In IEEE Ninth International Conference on Mobile Ad-Hoc and Sensor Systems, 2012. doi:http://dx.doi.org/10.1109/MASS.2012.6502529
  • Xingang Zhang, Randy Buck, and Daniel Zappala. 2011. “Experimental Performance Evaluation of ATP in a Wireless Mesh Network.” In 2011 IEEE Eighth International Conference on Mobile Ad-Hoc and Sensor Systems, 122–131. IEEE. doi:http://dx.doi.org/10.1109/MASS.2011.25

Code

Code is available at Github: WiFu

Sponsors

This project is supported by the National Science Foundation under Grant No. 0917240.