Windowmancy - Modifying the Receive Window to Control Transfer Rate
Windowmancy - Modifying the Receive Window to Control Transfer Rate
Kevin Webb, Emilio Garza, and Randall Doyle
As the consumer demand for devices with internet connection capabilities has grown, the world has seen a dramatic increase in the number of multi-device homes. In this setting, multiple devices, from smart televisions and game consoles to refrigerators and toasters, spread bandwidth so thin that high-bandwidth applications like media streaming cannot be maintained while updates and file downloads may receive more bandwidth than the user would prefer. This would cause the average home user to believe his internet package is slow lowering customer satisfaction when, in fact, it is the division of bandwidth that is lowering the quality of the service. The solution to this issue is to create router tools to intelligently allocate bandwidth according to user preferences in order to achieve maximum quality of service and customer satisfaction within the constraints of the consumer's bandwidth package.
Our research involved the development of an experimental toolset to allow the user to control their bandwidth allocation on a per-application basis across multiple devices. We provide this functionality by repurposing an existing field of the ubiquitous Transmission Control Protocol called the receive window. The receive window's original purpose was to inform the sending device that the receiving device was getting close to exceeding its memory. Today, most devices have enough memory that this field rarely limits transmission rates in practice, and thus the field can be carefully carefully repurposed to lie to the sender by sending a smaller value. The sender will limit its sending to prevent overloading the receiver, which limits the bandwidth that the data transfer requires.
During the course of our research, we improved the project's ability to perform under less rigid testing conditions that more closely reflect that of a home network environment. The project will now allow for the dynamic identification of traffic from multiple devices and edit the receive window efficiently. We have also shown during tests that the program can be used under less than ideal internet conditions with moderate amounts of latency, the time it takes for data to travel between the two hosts, and jitter, how much the latency varies while the data is being sent.