Swarthmore College Department of Computer Science

Windowmancy: Modifying the Receive Window to Control Transfer Rate

Bradley J. Carter and Kevin Webb

The increasing popularity of the Internet has expanded the scope of devices present in modern home networks. While technological capabilities have become more advanced, the home routing architecture used has remained largely unchanged over the past decade. The goal of windowmancy is to use the resources present in modern home routers to provide greater control over local network traffic than current practices give.

Windowmancy is built atop two preexisting and ubiquitous protocols. These are the Transmission Control Protocol (TCP) and Network Address Translation (NAT). TCP provides reliability by a client sending acknowledgments (ACKs) to a server as confirmation that the server's data was received. In the ACK is a field called the receive window which prevents the server from sending the client more data than the client can handle. NAT connects a local home network to the Internet under the guise of being a singular device. This device is typically the router.

In windowmancy, we modify this window value to be even lower to thus represent not the most the client can handle, but rather the most the user wants the client to receive at once. At the router, windowmancy modifies the receive window value for different connections depending on what the user's desired rates are. Thus, the user can control the network traffic rates.

The windowmancy system was implemented on a TP-LINK N750, a typical home router that is widely available and a good representation of the standard hardware that can be found in modern commercial routers. OpenWRT, an open source embedded operating system for routers, was loaded onto the router so the code for windowmancy could be run. To test windowmancy, a simulated home network was set up. On one end was a client connected to the router. On the other end was a server connected to another machine connected to the router capable of simulating network delay. At the router, windowmancy read information regarding the transfer rates of all network connections. To make these rates closer to target rates, windowmancy modified the receive windows the client gives in its ACKs to the server to influence the rate of data transfer.

Though its development is still ongoing, results so far have been extremely positive. Windowmancy is able to read and modify traffic at the router with good efficiency and high reliability. Most importantly, it does not change the frameworks of the NAT or TCP protocols themselves. Rather, windowmancy uses them in slightly different than intended ways. Thus, this system of controlling network traffic could be easily adapted by most home networks.