Willi Ballenthin: Applying Artificial Intelligence for an Efficient Internet

Student's Name: 
Willi Ballenthin
wrb2102@columbia.edu
Advisor's Name: 
Katia Obraczka
Home University: 
Columbia University
AttachmentSize
PDF icon ballenthin_poster.pdf1.1 MB
Year: 
2009

Applying Artificial Intelligence for an Efficient Internet

The recent years have seen a drastic increase in the bandwidth requirements of the world wide web. Streaming media and 24 hour connectivity are beginning to strain available resources with no signs of abating. In contrast, the cost per CPU cycle continues to fall, encouraging increased per node computation. The Transmission Control Protocol (TCP) is one of the core algorithms driving today's internet despite its 40 year age. The goal of this project was to integrate modern machine learning techniques into the TCP. A successful implementation would enable faster internet connections, even on common household computers.

Early stages of the project involved developing implementations to be run on the Qualnet network simulator. The simulator used the BSD network stack, which required most code to be written in the C programming language. With a working simulator engine, days of simulations were run producing tens of gigabytes of output files. Significant time was spent parsing the output and transforming it into meaningful statistics and visualizations. Data analysis was accomplished by composing a suite of shell scripts. Matlab was used to generate a variety of plots.

With meaningful simulation results, focus shifted to real world testing. The machine learning code was ported to the Linux network stack running in kernelspace. This migration involved the development of a fixed point library to compute exponents and logarithms, the writing of dynamically loadable Linux kernel modules, and extensive memory management tracking. The result was a module that could be loaded into any modern Linux distribution and insert the machine learning modifications to the TCP. The last week of the program saw the first real-world experiments being run on UC Santa Cruz's networking hardware and testbed.