EE122: Introduction to Computer Networks — Fall 2007Project 2: Design a Reliable Transfer Protocol∗Phase 1 — Due Tue Nov 13, 2007 11PMPhase 2 — Due Sat Dec 8, 2007 11PMProf. Vern Paxson / Lisa Fowler / Daniel Killebrew / Jorge OrtizIntroductionIn Project 1, you built a functional Web applications that could interact with other Web servers and clientsin the world at large. Building these in an interoperable fashion required adherence to application-layerspecifications such as RFCs, but leveraged the Internet’s underlying, standard TCP transport service.In this project, you will apply the networking principles you learned in this course to design your own pro-tocol for reliable data transport. You will deepen your understanding of design issues concerning reliabilityand congestion control by building this protocol on top of the unreliable, datagram-oriented service providedby UDP. To evaluate the effectiveness of your custom protocol, you will implement programs to use yourprotocol to transfer a file from a sender to a receiver (and, optionally, “port” the Project 1 Web server andclient to use your custom protocol instead of TCP).Project StructureThis project consists of the following two phases:Phase Due Date Overview of Tasks Deliverable % Grade1 Nov 1311pmDesign a reliable transport protocol on top ofUDP.Design Report 20%2 Dec 811pmImplement your reliable transport protocol asdesigned in Project 2 Phase 1. Develop pro-grams to use your protocol to transfer files.Optionally revise your preferred Project 1Web client and server to use your new reliabletransport protocol.Workingimplementation80%∗Version 3: Tue Nov 20 – Porting Project #1 client/server is now optional for extra credit. This changes the specifics of whatprograms you turn in for the main credit (they are now simple file transfer programs.) Version 2: Fri Nov 2 – Clarified abstractedsystem calls.1Team WorkYou can work in teams of 2 for this project. You are free to choose your own partner. You may also workon your own (no extra credit or additional time granted for working alone.) Since this project involves asignificant amount of design and implementation, you are encouraged to work with a partner. Be prudent inyour choice of partner, as you will each rely significantly on the other in order to effectively divide up thework. If you choose to have one, you should select your teammate by the Phase 1 deadline, and turn in asingle writeup with both of your names on it.1 Phase 1: Designing a Reliable Transport ProtocolTCP is the workhorse of today’s Internet, carrying the majority of today’s Internet traffic. TCP provides a re-liable, in-order, byte-stream abstraction. It employs flow control to prevent fast senders from overwhelmingslow receivers, and congestion control mechanisms to react to network congestion by lowering the sendingrate. In Project 1, you used TCP to reliably transfer data between your Web server and your Web client.In this project, you will design and implement your own reliable transport protocol on top of an unreliabletransport protocol, namely UDP. In Phase 1, you will design this protocol.Your protocol should have the following features:1. Reliable Data Transfer: The protocol should reliably transfer data from a sender to a receiver. Theunderlying packets containing your data (e.g., UDP packets) may be lost, re-ordered, replicated, ordelayed inside the network. Your protocol must handle these conditions.2. High Performance Data Transfer: The protocol should transfer data quickly by using an approachsuch as Sliding Window.3. Congestion Control: Your protocol should “play nice” with the network world at large by modifyingits behavior in response to network congestion as indicated by packet drops. This, along with the needfor high-performance data transfer, means you need to adopt an appropriate response to the state ofnetwork congestion or its absence, such as AIMD.4. Flow Control: The receiver should be able to limit the rate at which the sender sends it data, i.e., afast sender should not overwhelm a slow receiver.1.1 Additional Considerations• You do NOT have to implement all the features of TCP. You may borrow mechanisms from TCP toimplement the features described above.• TCP is a symmetric protocol; a single TCP connection can simultaneously transfer data in both direc-tions. Your protocol should transfer data in a single direction only—from sender (connection origina-tor) to receiver (connection responder). You should optimize the protocol (and the headers associatedwith it) for unidirectional data transfer.This means that your design should differ somewhat from TCP.Optional: If you wish to support bidirectional transfers, note this in your design writeup. In addition,when doing so, you still must use a design other than copying TCP.2• TCP was standardized more than 25 years ago. Do not feel you must restrict yourself to the stylesused in TCP! If you have a method that can improve on TCP’s approaches, use it!1.2 Phase 1 DeliverablesDue Nov 13 2007 11PMPhase 1 is worth 40 points.You need to submit a design report that contains the following information:• A description of your proposed protocol, including any extra messages or headers that you might use.Sketch the headers, including the size of different fields and their format/representation.• A finite-state machine description or diagram illustrating the operation of your proposed protocolfrom both the sender’s and the receiver’s perspectives.• Describe how your protocol achieves reliability. Briefly discuss how your protocol deals with:1. Lost data.2. Corrupted data.3. Reordered data.4. Replicated/duplicated data.5. Delayed data.• Discuss any limitations imposed by your design, including (but not limited to):1. How does your protocol deal with extreme loss?2. How well can your protocol take advantage of a very high bandwidth path?• To what degree is your congestion control scheme fair?Keep the report short and concise. If you think you need more than 5 pages (12 point font, single or doublecolumn), contact Lisa in advance. You do not need to fill 5 pages if you can express your design adequatelyin less.The report must be in one of the following formats: doc, pdf, ps, html or txt. You can structurethe report in any way you deem fit, but clarity and presentation will be valued during grading.We will aim to return feedback and grades for your design within 3 days after the Phase 1
View Full Document