DOC PREVIEW
U of I CS 438 - Reliable Data Transfer

This preview shows page 1 out of 4 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 4 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 4 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS/ECE 438: Communication Networks Fall 2006Machine Problem 4 Due: December 8, 9pmReliable Data TransferPlease read all sections of this document before you begin coding.ObjectivesIn this MP, you will implement reliable data transfer. You will need to use the knowledge of the reliable data transferprinciples discussed in class to design and implement a sender and receiver that transfer a file across an unreliable link.GuidelinesFor this MP, you are encouraged to work with another student in the class, although you may work individually(however, you will be graded on the same scale and responsible for the same amount of work). Please find a partner assoon as possible in order to get a head start on the MP. If you cannot find a partner, post a message on the newsgroup.If this does not work, email the instructor.You may discuss interpretations of the MP with other people from the class, but any form of group work withpeople other than your partner is forbidden. This includes code-sharing, which will be checked electronically.You are required to make sure that your programs compile and run on the EWS Solaris machines (glsnXX anddclsnXX). Your programs will be tested on EWS machines only. Programs suffering compilation errors when testedby the course staff will earn no credit.You may find it useful to refer to the Unix man pages as necessary. You may also want to refer to the links postedon the course webpage. If you use code from another source, credit it in your README. Stevens book on UNIXProgramming may also prove helpful.If you are borrowing heavily from a single source, check with the TAs or professors to confirm that you are still inline with the class policies. When in doubt, get permission to use a source well before the due date.Please indent and document your code. Use meaningful names for variables and follow other style guidelines thatenhance the clarity of your code.Follow the guidelines in the “Hand In” section below when turning in this assignment.SpecificationThis MP will require you to create a sender and receiver that implement reliable transfer over the UDP protocol. Youwill be required to deal with dropped, corrupted, duplicated, and reordered packets in your data transfer. You will alsoneed to implement a sliding window protocol to support efficient data transfer over high-RTT links.SenderThe sender should be run as follows:sender filename listenport trollhost trollportThe sender will read the file specified by the filename and transfer it using a reliable transfer mechanism to thereceiver sitting behind a troll. After completing the transfer, the sender should terminate and exit.The sender will send data to a troll, sitting at trollhost:trollport, which will then forward data to thereceiver. The sender should bind to listenport to receive acknowledgments and other signaling from the receiver.You should only use a single UDP socket for both sending and receiving data.1ReceiverThe receiver should be run as follows:receiver filename listenport trollhost2 trollport2The receiver will need to bind to the UDP port specified on the command line and receive a file from the sendersent over the port. The file should be saved to filename. Note that you should make sure in your testing that thefilename used by the receiver is not the same as the one used by the sender, since otherwise the receiver will overwritethe file and interfere with the sender.The receiver will use the troll at trollhost:trollport to send acknowledgments and any other controlsignals to the sender The receiver should exit once the transfer is complete.TrollTo test your algorithm, use two trolls to connect the receiver and the sender. The troll can be found under ˜ece438/MP4/trollThe troll documentation may be found under ˜ece438/MP4/troll.pdf. You can set up your executable environ-ment by running the commands below. Note that you will need to start the receiver and both trolls before you run thesender. You may also choose to run all the programs on the same machine, which is fine for testing, but your senderand receiver must operate properly when run on different hosts.glsnXX> receiver outfile recvport glsnZZ trollport2glsnYY> troll -h glsnXX -i recvport trollportglsnZZ> troll -h glsnWW -i sendport trollport2glsnWW> sender infile sendport glsnYY trollportNote that although UDP will allow you to send large packets using IP fragmentation, we will configure the troll todiscard any packets larger than 1472 bytes (in payload), so you should make sure that you restrict your packets to thatsize.Design DocumentTo ensure that you are making sufficient progress on the project, you will be required to submit a design document aspart of your project. The document must be handed in in class on November 29th; feedback will be provided to youby the following lecture about any potential problems in your project. You will also submit a revised version of thisdocument with your project.The design document should include the following components:1. Algorithm OverviewDescribe the details of your reliable transfer algorithm. You are welcome to use any of the algorithms describedin class verbatim, or to combine ideas from the different algorithms we discussed. Draw the sender and thereceiver state machines.2. Message FormatsDescribe the message formats you will be using for sending the file segments and any other signaling betweenthe sender and the receiver. Describe any message types you will be using and the fields in them.3. Data StructuresDescribe the data structures you will use to buffer segments on the sending and receiving side. Describe somekey variables that are keeping track of state (in particular, explain any variables you reference in the statemachine). Also list any timers you will be using and what their purpose is.4. Work BreakdownDescribe who will be responsible for which component of the project. Include items such as design, implemen-tation, integration, debugging, testing, and documentation. Use the initial design document to plan the divisionof work and the final submitted one to document what was actually the case. (If you are working alone, youshould omit this section.)2Evaluation and StrategiesYour project will be evaluated along three criteria. First, we will evaluate your design documentation and code forquality. We will then test your project against a number of “adversaries” who will reorder, delay, drop, duplicate, andcorrupt packets in such a way as to make the reliable transfer


View Full Document

U of I CS 438 - Reliable Data Transfer

Documents in this Course
Routing

Routing

5 pages

TCP

TCP

26 pages

TROLL

TROLL

3 pages

Load more
Download Reliable Data Transfer
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Reliable Data Transfer and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Reliable Data Transfer 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?