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.
Protocols are built out of components, so it is easy to plug-and-play with new reliability or congestion control protocols
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
WiFu TCP is as fast as the kernel in wireless networks and on 100 Mbps Ethernet, while having identical fairness among flows
WiFu implements the standard BSD socket API, so it is simple to port any application for use with WiFu
WiFu comes with a mock network object and Wireshark packet traces, greatly simplifying the process of debugging a network protocol
Support for multiple applications, built with threading, written entirely in C++
Code is available at Github: WiFu
This project is supported by the National Science Foundation under Grant No. 0917240.