CSCI 342: Networks

Semester: Spring 2013
Room: King 227
Class Time: Mon/Wed/Fri 2:30pm-3:20pm
Office Hours: Monday,  3:30-4:30pm
Thursday, 4:30-5:30pm
or by appointment
Professor: Cynthia Taylor
email: ctaylor AT oberlin edu
Please include "cs342" in the subject.
Office: King 229
Phone: x58424

Homework 4 - BitTorrent


In this assignment, we create our own BitTorrent client. The template already does much of the heavy lifting. However, the template is multi-threaded, and can only leech.

Your job is to:

You'll find the template here. Details of the bittorrent protocol can be found here: https://wiki.theory.org/BitTorrentSpecification.

Performance Expectations

For full points, your solution should produce a correct file for a given .torrent. It must not rely only on seeds: its should download pieces from many peers, and it should finish significantly faster than simply getting all the pieces from the seed.

Turn-in Requirements

Check in the source code and Makefile in a directory named hw4 in your turn-in directory. Here is an example run:
make
./hw4 cs342files.torrent

Grading

There's no testing script for this homework. Points will be for:

Handin

We will be using Handin to turn in all assignments. Turn this in for class 342, assignment 4.