Jeremy Blackburn

Masters of Computer Science Student

jhblackb at mail usf edu


Power Management for BitTorrent

BitTorrent is the world's most popular peer-to-peer file distribution system. One of the nice features of BitTorrent, and the feature that has caught the eye of the content distribution industry is that it removes the need for power hungry data centers. Instead of having centralized servers distribute content to consumers, the consumers distribute the content amongst themselves, possibly alleviating the 2.7 billion dollars or so a year in energy costs of volume servers. The CTO of BitTorrent, Inc., Eric Klinker has mentioned (@ about 2:10) that BitTorrent is a "green" technology due to this.

However, due to the nature of the protocol, BitTorrent requires clients to be awake 24/7 to attain its full potential. While some would argue that these computers are on anyways, we are of the opinion that this is unnecessary.

Thus, in the first ever study of the energy efficiency of BitTorrent we measured the potential energy savings possible with a modification to the BitTorrent application to allow seeds to go to sleep while not actively uploading and later be woken up on demand.

Power Management for BitTorrent won first place in the 2008 Computer Science Research Experience for Undergraduates Poster Competition at the University of South Florida.

A symposium abstract as well as a conference paper based on the work presented in the poster are planned.


gtelnet

A green telnet client/server.

gtelnet was designed to allow a client computer to go to sleep without losing its connection to the server. In order to achieve this goal, a telnet client and server were modified. When the client goes to sleep the connection to the server is closed. In a standard telnet server this would result in the session timing out, causing any running applications to terminate and data to be lost.

gtelnet, on the other hand, views a connection close from the client (i.e. a socket being closed) as an indication that the client is going to sleep. When this occurs, the telnet server begins buffering data in a temporary queue which is later sent to the client when it wakes up and reconnects. Due to the nature of the TCP/IP stack, a simple circular replay buffer is used to to ensure that any data the server sent over a socket but did not actually reach the client is not lost. (An explicit "exit" command from the client is required to terminate the session.)

An article about gtelnet should be published shortly in Dr. Dobb's Journal (online and print).

This material is based upon work supported by the National Science Foundation under Grant No. 0520081.