DOC PREVIEW
Berkeley ELENG 122 - Project 2 - Design a Reliable Transfer Protocol

This preview shows page 1-2-3-4 out of 11 pages.

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

Unformatted text preview:

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

Berkeley ELENG 122 - Project 2 - Design a Reliable Transfer Protocol

Documents in this Course
Lecture 6

Lecture 6

22 pages

Wireless

Wireless

16 pages

Links

Links

21 pages

Ethernet

Ethernet

10 pages

routing

routing

11 pages

Links

Links

7 pages

Switches

Switches

30 pages

Multicast

Multicast

36 pages

Switches

Switches

18 pages

Security

Security

16 pages

Switches

Switches

18 pages

Lecture 1

Lecture 1

56 pages

OPNET

OPNET

5 pages

Lecture 4

Lecture 4

16 pages

Ethernet

Ethernet

65 pages

Models

Models

30 pages

TCP

TCP

16 pages

Wireless

Wireless

48 pages

Load more
Download Project 2 - Design a Reliable Transfer Protocol
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 Project 2 - Design a Reliable Transfer Protocol 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 Project 2 - Design a Reliable Transfer Protocol 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?