Reliable Transport CS 3700 Project 3.

Slides:



Advertisements
Similar presentations
Guide to TCP/IP, Third Edition
Advertisements

IS333, Ch. 26: TCP Victor Norman Calvin College 1.
Fundamentals of Computer Networks ECE 478/578 Lecture #20: Transmission Control Protocol Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie Chapter 5 End-to-End Protocols Copyright © 2010, Elsevier Inc. All rights.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Chapter 7 – Transport Layer Protocols
The Transport Layer Chapter 6. The TCP Segment Header TCP Header.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Transport Layer TCP and UDP IS250 Spring 2010
Gursharan Singh Tatla Transport Layer 16-May
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
CS/EE 145A Reliable Transmission over Unreliable Channel Netlab.caltech.edu/course.
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
TCP Transport Control Protocol Information management 2 Groep T Leuven – Information department 2/35 Introduction UDP provides the connection.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
ECE453 – Introduction to Computer Networks Lecture 14 – Transport Layer (I)
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Data Link Layer Part I – Designing Issues and Elementary.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
1 Introduction to Computer Networks University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
Transport Protocols.
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
CS/EE 145A Reliable Transmission over Unreliable Channel II Netlab.caltech.edu/course.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
NUS.SOC.CS2105 Ooi Wei Tsang Application Transport Network Link Physical you are still here.
CS 145A Reliable Communication Netlab.caltech.edu/course.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Computer Networks 1000-Transport layer, TCP Gergely Windisch v spring.
Chapter 3: The Data Link Layer –to achieve reliable, efficient communication between two physically connected machines. –Design issues: services interface.
Distributed Systems 11. Transport Layer
Chapter 9: Transport Layer
Chapter 3 Transport Layer
Building Bridges CS 3700 Project 2.
Introduction to TCP/IP networking
Instructor Materials Chapter 9: Transport Layer
Introduction to Networks
Transport Control Protocol
5. End-to-end protocols (part 1)
Process-to-Process Delivery, TCP and UDP protocols
Process-to-Process Delivery
Chapter 6 The Transport Layer.
Building Bridges CS 3700 Project 2.
Today’s Agenda NOTE: Presentations will start 5:15PM vs 5PM – allow a little time to prep with team Cover Lecture 19 and 20 today SURPRISE: Will review.
TCP Transport layer Er. Vikram Dhiman LPU.
Magda El Zarki Professor, ICS UC, Irvine
Introduction of Transport Protocols
Transport Layer Unit 5.
CSCI-1680 Transport Layer I
CSCI-1680 Transport Layer I
TCP Sequence Number Plots
CS412 Introduction to Computer Networking & Telecommunication
CS4470 Computer Networking Protocols
Transport Control Protocol
Reliable Transport CS 3700 Project 3.
Advanced Computer Networks
Transport Layer Jennifer Rexford COS 461: Computer Networks
TRANSMISSION CONTROL PROTOCOL
Chapter 5 Transport Layer Introduction
Transportation Layer.
Chapter 5 Transport Layer Introduction
Introduction to Computer Networks
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Review of Internet Protocols Transport Layer
Error Checking continued
Computer network HW2 -Retransmission + Congest control
Transport Layer 9/22/2019.
Presentation transcript:

Reliable Transport CS 3700 Project 3

Goals You will write a program that implements reliable transport on top of UDP Think of it as TCP-lite Deliver a file reliably from a sender to a receiver Your program will be tested under various kinds of lossy network conditions Packet drops Packet reordering Packet duplication Network bandwidth and latency will also be varied Grade based on correctness, performance, style and documentation 10% of your total grade, not as hard as project 2

Command Line Syntax $ ./3700recv $ ./3700send <recv_host>:<recv_port> Receiver prints out its port Receiver’s IP and port are given to the sender Sender expects to read the input file from STDIN Helper script will automatically run the sender and receiver ./run [--size (small|medium|large|huge)] [--printlog] [--timeout <seconds>]

The Simulator Today’s networks are too fast and reliable to be interesting You’ll be testing your code in a simulator Available on cs3600tcp.ccs.neu.edu You must use this machine to test your code Configuring the simulated network $ /course/cs3700f16/bin/project3/netsim [--bandwidth <bw-in-mbps>] [--latency <latency-in-ms>] [--delay <percent>] [--drop <percent>] [--reorder <percent>] [-- duplicate <percent>]

The Protocol You can implement your packet headers however you see fit UDP gives you port numbers Everything else is up to you Things you may want Sequence and acknowledgement numbers? Flags (SYN, FIN, ACK)? Receive window size? Checksums? Cryptographic hashes? Selective ACK?

Other Considerations What about congestion control? You’ll be tested on network links with different maximum capacities You’ll need to manage tradeoffs between probing for additional capacity versus sending too fast and inducing packet drops Speed and efficiency matter You should try and cram as many bytes of data into each packet as you can, subject to MTU restrictions (plus IP and UDP overhead) Minimizing retransmissions is key How do you close the connection? FIN packets may drop

Performance Testing We provide a script that runs all test cases In addition to passing all tests (correctness), we will also be grading you based on performance How fast did you complete the file transfer? (Lower times are better) How many total bytes did you send? (Lower is better) Leaderboard showing everyone’s performance on the test cases $ /course/cs3700f16/bin/project3/printstats

Turning in Your Project Register your group All group members must run the script! Create a directory for your files All of your (well documented) code Makefile README Run the turn-in script

Grading 10% of your total grade, due Friday October 26 75% for program correctness, i.e. passing all test cases 15% for performance 10% for style and documentation