Assignment 1: Network emulation

Physical machine sets are now ready - but the assignment is extended by one week. New deadline: September 15.

Background

The goal of this assignment is to learn how the performance of protocols as they are implemented in real operating system can be assessed by means of network emulation. The same approach to performance assessment is also valid for distributed systems that are not emulated, but deployed in the real world.

Motivation

One of the busiest research topics in the networking research community throughout the existance of the Internet has been the maximization of the goodput of TCP. Although the properties of the Internet, such as the dominant link layers in LANs and WANs, the available bandwidths, the speed of routers and many more things, have changed continuously changed, this research goal has stayed highly important. TCP Goodput in this context denotes the average speed in kilobit/second that is achieved by applications that perform download operations using TCP (in contrast to throughput, which can be interpreted as the bandwidth that is consumed, and which may included data that is sent more than once). This research has led to an abundance of TCP variants, several of which are implemented in the Linux kernel. While we can read the source code of Linux's TCP variants, several operating systems hide theirs; passive measurements --the technique used in this assignment-- can then be used to assess their performance and varying conditions.

Task

Compare the downloading performance of 2 of Linux's TCP variants

If you don't use our machine sets, you have to set up a testbed consisting of three computers or three virtual machines. Configure them as a server, a network emulator and a client. The network emulator runs Linux and the tool netem is used to control the emulation. The emulator machine does not have to run a routing demon; packet forwarding (e.g. using route add ...) is sufficient.

  1. Install programs on server and client that you want to use for performing download tests. You can choose, but keep in mind that a download operation is characterized by an application that tries to move data as quickly as possible.
  2. Configure the emulated networks. You must choose the bandwidth on both outgoing interfaces of the network emulator as 10 Mbps. The latency on both outgoing interfaces is fixed to 100ms. Do not introduce artificial packet loss of jitter.
  3. Parameter 1: Select the TCP same variant on server and client. You must test the variants New Reno (called "reno") and CUBIC (called "cubic").
  4. Parameter 2: For various tests, change the queue length on both outgoing interfaces. Papers indicate that a small concurrent TCP connections if necessary (but also required) to consume nearly the entire 10 Mbps of available bandwidth, and that CUBIC is better.
  5. Parameter 3: Measure the download performance between server and client with a varying number of concurrent TCP connection, which are used for separate concurrent downloads. Note that research indicates that you should expect interesting differences only if the number of concurrent connections is very small.
  6. Perform tests to answer the following 2 questions:
    • How is the throughput of each TCP connection influenced by these 3 parameters?
    • How is the round-trip time of these TCP connections influenced by these 3 parameters?
  7. Write a report. ?Choose appropriate means of presenting the answers to these questions graphically. It is generally not a good idea to simply plot one line for each experiment into a time-vs.-download-byte graph. The report must be no longer than 6 pages.

Assignment

Solve the task in a group of two (or alone). Present your experiences and results orally in the course INF507x on September 9, 8:15 (Changed to Friday September 16, 08.15). It is mandatory to write a report that in the specified format and deliver it by September 9, 8:15 (September 15), using Devilry. Keep in mind that (a) it is possible to update the report until November, and (b) you will be asked to choose 4 out of 6 reports for evaluation.

It is mandatory to present your group's results on September 9 (your group must present 5 out of 6 times). You should not prepare a formal presentation (like a Powerpoint foilset); however, you must show the measurement results that are included in your report and that you discuss in class. The discussions in class are supposed to help you improve your report for final delivery. It is recommended that you have a web page or a PDF document that is web-accessible from an arbitrary computer.

Machines

To approach this assignment, you need 3 machines. These can be virtual machines. The OS that is used on these machines should be Linux, since the assignment asks for 2 Linux variants. For your convenience, we make a small number of sets of 3 physical machines available. These machines are now available. You can reserve access to them through our booking system at http://booking.ndlab.net after receiving a user ID and password.

We do not have enough machines for everybody. These machines should be used exclusively by one group at a time. Send mail to espeak@ifi.uio.no to register your group and get a login for our machines. How to use and log in to the machines is described in the networking tools guide.

Report

The written report has up to 6 pages in ACM format (see right column). It is expect that such a report includes: a description of the assignment, a description of the testbed, an explanation of the metrics that were chosen to present the measurement results visually, graphs showing the results, an interpretation of the graphs.

The results must be based on the own tests.

The report is evaluated by writing quality, by the trustworthiness and correctness of the results. The evaluation does not consider whether related work (citations of other papers) is included. It is not necessary to cite existing work in this report.

Published Aug. 29, 2011 3:40 PM - Last modified Feb. 7, 2020 4:03 PM
Add comment

Log in to comment

Not UiO or Feide account?
Create a WebID account to comment