Assignment 1: Packet Capture and Analysis

Due: Friday, 5 October, 2007

Introduction

In this assignment, your tasks are to capture some packet traces, analyze them, and compare the performance of TCP under a variety of scenarios.

Requirements

Run tcpdump to capture the packet headers of TCP packets belonging to a large HTTP transfer a between a host C and video.google.com. You can run tcpdump on C itself.

Repeat this multiple times. You should do this under at least SIX different network conditions, and for each network conditions, you should collect at least THREE traces. To get different network conditions, you should repeat the experiments use both wired connection and wireless connection and collect the traces using different service provider (from home, campus, Wireless@SG etc.). You may also try different time of the day (off-peak and peak), or WiFi connection with different signal strength. To generate large enough traces for each run, you should pick videos that are at least 30 minutes (try the technical talks video posted by "Google engEDU").

From the traces, estimate the average throughput and loss rate under different network conditions. Throughput is easier to calculate. Packet loss rate is a bit trickier. You are free to use any available tools out there to help you to estimate them -- but you will need to explain how the estimation is done by the tools. Modern PC should be fast enough so there should be zero packet drops by kernel. So in calculating packet loss rate, you only need to consider the case where all packets are captured in the traces (If you keep encountering loss packets due to kernel drop, try to figure out why and where the bottleneck is).

Compare the performances of TCP under these different network conditions.

Deliverable

You should submit a 10-page (single spacing, 11pt font) report giving

  • details the experiments you conducted (when, where, network configuration (e.g., using VPN? NAT?)).
  • the methods you use to estimate the average throughput and loss rate. If you have tried different methods to estimate loss rate, report the methods and compare them.
  • your findings regarding the TCP performance under different network conditions. Report any interesting anomaly that you encounter. If you find nothing interesting (e.g., zero packet loss under all conditions), report that as well.

You need not submit the traces but you should keep them until the course is over. I might ask for the traces, or you might want to refer back to them, in case some clarifications are needed during evaluation.

Team

You should work in team of two for this assignment.

Assessment

I will evaluate the assignment based on the following.

  • Completeness (30%) -- collect sufficient traces under different conditions.
  • Analysis (40%) -- thought through carefully how throughput and (especially) packet loss can be estimated based on receiver's packet traces.
  • Comparison (30%) -- report of findings after comparing TCP performance under different conditions.

Tools

Here are some tools that could be helpful in this assignment.

  • tcpdump -- The primary tool you will use in this assignment.
  • tcptrace -- A tool for analyzing tcpdump files.
  • wireshark -- A tool for visualizing tcpdump files (can capture packets as well).
  • tcpslice -- Extracting/merging packet traces.

Extra Fun

Besides the requirement above, you are free to collect additional data, connect to other websites (e.g. YouTube), analyze other packet dynamics (e.g. any packet reordering?).