Reliable File Transfer

Size: px
Start display at page:

Download "Reliable File Transfer"

Transcription

1 Due date Wednesday, Mar 14, 11:59pm Reliable File Transfer CS 5565 Spring 2012, Project 2 This project is worth 100 points. You may form teams of up to two students for this project. You are not required to team with the same student as in 1, but you may not switch partners after you started this project. Please update your group status at Introduction Reliable data transmission forms the basis of data communication. In this project, you will implement a reliable transport protocol that runs on top of an unreliable network layer. You will perform a set of experiments to evaluate the performance of the protocol you developed. Network Architecture The network architecture for this project consists of two bidirectional links with a forwarding router in between. dl_client dl_server Reliable Transport UDP 1rx UDP Router 2tx Reliable Transport UDP Host A 1tx Host B 2rx Host C The UDP Router (or forwarder) is implemented as a piece of software that can be run on Linux (on the rlogin cluster); the source is available for download from the class website also. It forwards regular UDP packets received from 1rx to 2tx and UDP packets received from 2rx to 1tx. The underlying LAN connecting hosts A, B, and C determines bandwidth, latency and loss rates for all links except 2tx, whose characteristics is under software control. This control allows us to introduce variable bandwidth, delay and loss rates to evaluate the performance of the reliable data transmission protocol you will implement. Link 2tx s output queue is limited to 32 packets. The router will drop packets as the traffic intensity approaches 1, that is, if it receives packets from 1rx faster than it can send them using the specified bottleneck bandwidth along 2tx. The maximum packet size that can pass through link 2rx is 500 bytes. The maximum 1/8

2 Goal bandwidth across 2tx is 4Mbps. Link 2tx adds a transmission delay which can be specified with 1 millisecond accuracy. This delay is in addition to the delay imposed by the LAN over which the UDP packets travel. Link 2tx has a programmable packet loss rate that ranges from 0 to 100% in steps of 0.1%. Your reliable transmission protocol should ensure that messages sent by the client are successfully received at the server. For the purposes of this project, you may implement any of the sliding window protocols (go back N, selective acknowledgement) discussed in class, or any other equivalent sliding window scheme such as TCP, or a protocol representing a subset of it. As a last resort, you may implement a stop and wait protocol for partial credit. Your reliable transmission protocol should ensure that messages sent by the client are successfully received at the server in the same order that they were transmitted. Since the router will drop packets if packets are injected too fast, you must also implement a form of congestion control. You may assume that you are the only user of the network, hence congestion control amounts to controlling the flow of packets to avoid queuing losses at the router. How to run the Router The router is controlled using the following parameters: The UDP port on which it is should listen for packets from 1rx, also referred to as local port The hostname and UDP port to which it should forward packets along 2tx, also referred to as remote host/remote port. The hostname is the name of host C where you run dl_server. The router learns the host address and source port number of link 1tx after it receives the first UDP packet on link 1rx. See the Router Options section for additional parameters used to control the packet loss, delay, and bandwidth along 2tx. As an example, suppose dl_server runs on host ghestal, the router runs on host strago, and dl_client runs on host celes. You start dl_server on ghestal first 1 : [you@ghestal> dl_server 9999 Then you start the router on strago, connecting it to the server running on ghestal: [you@strago> router C 9998:ghestal:9999 This will create a router instance with the default values for bandwidth and delay on 2tx and with no packet loss. On celes, you ll then run 1 I m using 9999 as port number, but you should use the same number p as in project 1. 2/8

3 dl_client strago 9998 input.dat After the file has been transmitted, use the Unix command cmp to compare the contents of input.dat and output.dat 2. Router Options Running the router with h gives the following help. Usage: router -C <localport:remotehost:remoteport> localport is the port on which router is receiving packets from Link 1 remotehost/port is the host/port to which Link 2 connects -B <bandwidth> link bandwidth in bps -D <delay> link delay in microseconds -L <tx_loss_prob> transmit loss probability, in fractions of b introduce bandwidth variation -t introduce link delay variation -u use plain udp forwarding, this overrides L, -b, and -t flags -v vary random sequence for bandwidth/rtt variations The DROPS field shown in the statistics has the format m(+n) m is the number of packets intentionally lost along Link 2 or dropped for bad length n is the number of UDP packets dropped by this machine since the router program started, as shown in /proc/net/snmp Udp: InErrors. The latter is a host-wide indicator, so it may not show loss due to this instance of router if other students are running another router instance on the same machine. Only the C switch is required. When you start the router, it will print the values that are used for the current run. Pay attention to the units used for the B, D, and L switches. To test your project s basic functionality, we will run it with L 100 (10% packet loss) and transfer an 8Mbit file. Important: Since the router learns the source address and port number of Link 1 from the first packet it receives, be sure to restart your router for every run! 3 On a related note, you must use the same UDP socket in your client to send and receive packets to ensure the router learns the correct port number. The u switch turns off any artificial delay and bandwidth bottleneck, making the router forward packets in both directions as fast as it can. 2 I used port numbers 9998 and 9999 for illustrative purposes above, but you should use your assigned port number p in both cases, or use p and p+1 if you wish to run A and C on the same lab machine. 3 It may appear as though this is not necessary when you re testing your project, but this appearance is only created because the OS on host A immediately reuses the same number when binding a socket to any unused port. 3/8

4 The v switch is related to the L, b, and t switches. When given, the random number generator is seeded with the current time, which creates a different sequence of random numbers every time. Otherwise, the random sequence is the same every time the router is run. This means that the same packets are dropped every time when using the L switch without the v switch. The b and t switches are not used in the standard portion of the assignment. Read the extra credit section for possibilities for extra credit. Router Statistics The router will output transfer statistics similar to the following while it is running: LINK 1 RX: 0XX TX: 0XX LINK 2 RX: 0XX TX: 0XX DROPS: 9 (+ 3) QUEUE 4 The numbers 0XX shown after RX:, TX:, etc. are the number of bytes the router received and sent across the respective link. The number after DROPS: (here: 9) is the number of packets dropped when the L switch is given. The number after QUEUE (here: 4) is the number of packets currently waiting in the output queue of 2tx. The number inside the parentheses (here: +3) is an estimate of the number of packets that were dropped because the router s input queue overflowed. Because of the implementation of the router, the input queue for 1rx is the receive buffer of the UDP socket on which the router receives packets from Link 1. While sending across Link 2, the router does not service that socket, possibly causing the OS to drop packets if they arrive faster than packets can be sent out Link 2tx. Linux keeps a global counter for all packets that were dropped because they couldn t be added to their socket s queue 4. Unfortunately, Linux does not provide a way to extract queue capacity related per socket packet drop information. Therefore, the value shown here includes UDP packets dropped for any reasons across all applications and all users of the machine. The router program will display the change in this value from when it was started to the current point in time. If you share the machine with other students, losses you see there may or may not be yours. Use another machine if you have doubts. (For most purposes, there is no need for you to distinguish packet losses due to queuing in the router s input queue from losses artificially introduced by the router after all, an end system in a network also has no way of telling what causes the packet losses it experiences. I added this option mainly as a debugging help. Experiment 4 is an exception where you need to prevent queuing losses to avoid affecting the accuracy of the experiment.) 4 This counter can be read from /proc/net/snmp, look for Udp: InErrors. 4/8

5 Deliverables When developing a reliable transport protocol, reliability is paramount. Therefore, you should first make sure your protocol handles packet losses well (use v in connection with L). Only after your protocol works reliably should you think about tuning its performance. Reliably means that your protocol works every time we run it. We will stress test your submission to check for race conditions, and we reserve the right to use dynamic race condition detection tools (where available.) For full credit, you should be able to achieve a throughput that is at least 70% of the nominal link bandwidth of link 2tx. You should exploit the layered architecture you developed in project 1. You will replace the transport layer on top of which dl_client and dl_server are running with a reliable one. You may have to extend the service model of your layer and the interface used to access your layer for this purpose. Make sure that your code is protocol independent and supports both IPv4 and IPv6 addresses. The machines on our cluster have global IPv6 addresses, and there are DNS AAAA records provided by the local name server. Be sure to test both IPv4 and IPv6. You do not need to worry about connection setup/tear down, or transport layer multiplexing or demultiplexing. However, you must ensure that your client does not exit until it has received an acknowledgement for the last packet it sent. The client may assume the server is running and ready to receive packets when it starts. Handle all errors that might occur, such as illegal port numbers or IP addresses, nonexisting hostnames, and or non existing input files gracefully. Do not send UDP packets larger than 500 bytes. In other words, your MTU (maximum transmission unit) should be 500 bytes, which includes file data as well as any headers your protocol may add. Instructions for all Experiments Once your protocol works reliably, you should perform a set of experiments to evaluate its performance. For each experiment, record the throughput as reported by dl_server and take the average of at least 3 runs (3 runs would not be acceptable in a publication, I m suggesting 3 runs here to limit your workload. Feel free to measure 5 or more runs.) You may use a 4Mbit input file for experiments 1, 2, and 3. Use an 8Mbit input file for experiment 4. Report the results of the experiments in your report. For each experiment, include all settings you used for the adjustable parameters of your protocol, if your protocol has any statically adjustable parameters. Include the raw measured data in a table, and include the required plot. Include an interpretation of your results for each experiment. If you do not understand the results of an experiment, explain the steps you took to diagnose them and discuss if they failed or succeeded. 5/8

6 Experiment 1: Window Size vs Throughput In this experiment, you will evaluate the impact of window size on throughput. Use a bandwidth of 1Mbps ( B ) and a delay of 50ms ( D 50000) for this experiment. Measure the throughput for the following window sizes W: W=1, 2, 4, 8, 10, 12, 16, 20, 24, 28, 30, 32. Finally, use the highest window size your implementation supports (based on your header format). Explain your results! What is the highest throughput you achieved? Use the window size that provided the highest throughput for the following experiments! Experiment 2: Bandwidth vs. Throughput Use a delay of 150ms for this experiment. Plot the throughput you achieve for the following bottleneck bandwidths B: B=100, 200, 300,, 1000 Kbps! Experiment 3: Delay vs. Throughput Now fix the bandwidth at 1 Mbps and vary the delay. Plot the throughput you achieve for at least the following delays D: D=0, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600ms. Experiment 4: Packet Loss vs. Throughput Hints Now use a bandwidth of 1Mbps and a delay of 0ms. Plot the throughput for at least the following loss rates L, expressed as fractions of 1000: L=10,20,40,60,80,100,150,200,250, and 300. Note: depending on how your mechanism for acknowledgement and retransmission works, you may need to reduce the window size here to avoid queuing losses at the router these losses would perturb the accuracy of your L setting. In other words, reduce the window size if you see any losses in the (+ ) output of the router. To test your protocol without the router, point your client directly at the server as in project 1 this must still work. Use the u switch to test without artificial bottleneck bandwidth and delay. Keep in mind that a lower bound of the total round trip time is 2x the round trip time introduced by the UDP layer between two hosts, plus the delay specified by D at the router, plus the processing delay at the router. Use ping s 500 to get an estimate for the first component, the round trip time between two machines. If you wish, you may pass a suitable retransmission timeout to your client as an optional command line switch or environment variable that overrides a hardwired default or implement round trip time estimation as in TCP for extra credit. Submission You must ensure that your project runs on the Linux rlogin cluster reachable via rlogin.cs.vt.edu. 6/8

7 Submit your source code along with instructions on how to build your project. Use the zip archive format. Do not include object file or executables or other intermediary files in your submission. If you use a graphical IDE, be sure to include instructions on how to build and run your programs from the command line. Include a Makefile as appropriate. You must include a detailed project report that describes the results of your experiments, as outlined in the section Deliverables. The report must be in PDF format. Please also include the source format you used (such as MS Word, Open Office, or others.) Include the report in your submission s zip archive. Your submission should include the names and addresses of all team members in all source files and in the project report. The majority of the credit for this project will come from your report; simply providing a reliable protocol will account for less than 50% of your total score. The project must be submitted using the web based submission form linked from the class website, or submitted as p2 via ~cs5565/bin/submit.pl. Extra Credit Opportunities There are numerous ways in which you could improve your protocol. The following list is intended to give you suggestions and in no way limits what you may do. Tune your protocol s performance and see how close you can get to TCP s performance on a point to point link. Use the ttcp benchmark to measure TCP throughput. Implement a TCP style round trip time estimation scheme. (Perform experiment 4 with and without it.) Implement TCP style fast retransmit. (Perform experiment 4 with and without it.) Implement TCP style delayed acknowledgement. Implement a bidirectional transport. Implement variable sized windows that adapt to packet loss rates and/or receiver buffer capacity. (Turn this off for experiment 1.) Implement transport layer multiplexing and demultiplexing. Implement connection setup and teardown. Note: simply exchanging additional packets at the beginning does not implement setup & teardown. Change the router so it occasionally reorders packets and develop a protocol that can handle reordered packets. Tune your protocol for variable bandwidth and delay (use the b and t switches for that.) 7/8

8 Your own idea. For any extra credit extension, you must demonstrate the set of experiments you used to test it, and, if applicable, the results of the experiments you used to demonstrate its effectiveness. You will not receive extra credit if you do not prove experimentally that you improved your protocol in some way. A Final Comment If you have any questions about the project, please do not hesitate to ask us either by or drop by during office hours or schedule appointments. Do not procrastinate on this project keep in mind that just to get the numbers for your final report, you will have to time well over 100 runs, and this will have to happen after you get your protocol working and tuned. While not extremely difficult, this project wants to be taken seriously, especially with respect to the concurrency prevalent in the implementation of the sender s state machine. Happy hacking! 8/8

Reliable Data Transmission

Reliable Data Transmission Reliable Data Transmission CS5516: Project 1 Spring 2003 Deadline: Midnight March 13 th, 2003 Score: 100 points Introduction Reliable data transmission protocols form the basis of data communication. The

More information

CS 344/444 Computer Network Fundamentals Final Exam Solutions Spring 2007

CS 344/444 Computer Network Fundamentals Final Exam Solutions Spring 2007 CS 344/444 Computer Network Fundamentals Final Exam Solutions Spring 2007 Question 344 Points 444 Points Score 1 10 10 2 10 10 3 20 20 4 20 10 5 20 20 6 20 10 7-20 Total: 100 100 Instructions: 1. Question

More information

CS 421: COMPUTER NETWORKS SPRING FINAL May 24, minutes. Name: Student No: TOT

CS 421: COMPUTER NETWORKS SPRING FINAL May 24, minutes. Name: Student No: TOT CS 421: COMPUTER NETWORKS SPRING 2012 FINAL May 24, 2012 150 minutes Name: Student No: Show all your work very clearly. Partial credits will only be given if you carefully state your answer with a reasonable

More information

CS 421: COMPUTER NETWORKS SPRING FINAL May 16, minutes

CS 421: COMPUTER NETWORKS SPRING FINAL May 16, minutes CS 4: COMPUTER NETWORKS SPRING 03 FINAL May 6, 03 50 minutes Name: Student No: Show all your work very clearly. Partial credits will only be given if you carefully state your answer with a reasonable justification.

More information

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP CS 5520/ECE 5590NA: Network Architecture I Spring 2008 Lecture 13: UDP and TCP Most recent lectures discussed mechanisms to make better use of the IP address space, Internet control messages, and layering

More information

Network Management & Monitoring

Network Management & Monitoring Network Management & Monitoring Network Delay These materials are licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported license (http://creativecommons.org/licenses/by-nc/3.0/) End-to-end

More information

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control Chapter 6 What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control OSI Model Hybrid Model Software outside the operating system Software inside

More information

An RPC based Distributed Simulator

An RPC based Distributed Simulator Due date Wednesday, Apr 4, 11:59pm An RPC based Distributed Simulator CS 5565 Spring 2012, Project 3 This project is worth 75 points. You may form teams of up to two students for this project. You are

More information

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 CS 375: Computer Networks Thomas C. Bressoud 1 Goals for Todayʼs Lecture Principles underlying transport-layer services (De)multiplexing Detecting

More information

CS457 Transport Protocols. CS 457 Fall 2014

CS457 Transport Protocols. CS 457 Fall 2014 CS457 Transport Protocols CS 457 Fall 2014 Topics Principles underlying transport-layer services Demultiplexing Detecting corruption Reliable delivery Flow control Transport-layer protocols User Datagram

More information

User Datagram Protocol

User Datagram Protocol Topics Transport Layer TCP s three-way handshake TCP s connection termination sequence TCP s TIME_WAIT state TCP and UDP buffering by the socket layer 2 Introduction UDP is a simple, unreliable datagram

More information

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 CE443 - Fall 1390 Acknowledgments: Lecture slides are from Computer networks course thought by Jennifer Rexford at Princeton University. When slides

More information

Lab 1 - Reliable Data Transport Protocol

Lab 1 - Reliable Data Transport Protocol Lab 1 - Reliable Data Transport Protocol Handout: March 8, 2018 Deadline: March 18 23:00, 2018 (No extension) Assignment overview: In this assignment, you will be implementing the sending and receiving

More information

Lecture 13: Transport Layer Flow and Congestion Control

Lecture 13: Transport Layer Flow and Congestion Control Lecture 13: Transport Layer Flow and Congestion Control COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016,

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

EE122 MIDTERM EXAM: Scott Shenker, Ion Stoica

EE122 MIDTERM EXAM: Scott Shenker, Ion Stoica EE MITERM EXM: 00-0- Scott Shenker, Ion Stoica Last name Student I First name Login: ee- Please circle the last two letters of your login. a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e

More information

Reliable Transport I: Concepts and TCP Protocol

Reliable Transport I: Concepts and TCP Protocol Reliable Transport I: Concepts and TCP Protocol Brad Karp UCL Computer Science CS 3035/GZ01 29 th October 2013 Part I: Transport Concepts Layering context Transport goals Transport mechanisms 2 Context:

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 20 MIDTERM EXAMINATION #1 - B COMPUTER NETWORKS : 03-60-367-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Fall 2008-75 minutes This examination document

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 20 MIDTERM EXAMINATION #1 - A COMPUTER NETWORKS : 03-60-367-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Fall 2008-75 minutes This examination document

More information

CS519: Computer Networks. Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control

CS519: Computer Networks. Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control : Computer Networks Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control TCP performance We ve seen how TCP the protocol works Sequencing, receive window, connection setup and teardown And

More information

Homework 1. Question 1 - Layering. CSCI 1680 Computer Networks Fonseca

Homework 1. Question 1 - Layering. CSCI 1680 Computer Networks Fonseca CSCI 1680 Computer Networks Fonseca Homework 1 Due: 27 September 2012, 4pm Question 1 - Layering a. Why are networked systems layered? What are the advantages of layering? Are there any disadvantages?

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 11 MIDTERM EXAMINATION #1 OCT. 13, 2011 COMPUTER NETWORKS : 03-60-367-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Fall 2011-75 minutes This examination

More information

CS4700/CS5700 Fundamentals of Computer Networks

CS4700/CS5700 Fundamentals of Computer Networks CS4700/CS5700 Fundamentals of Computer Networks Lecture 14: TCP Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang Alan Mislove amislove at ccs.neu.edu Northeastern

More information

Computer Science 461 Midterm Exam March 14, :00-10:50am

Computer Science 461 Midterm Exam March 14, :00-10:50am NAME: Login name: Computer Science 461 Midterm Exam March 14, 2012 10:00-10:50am This test has seven (7) questions, each worth ten points. Put your name on every page, and write out and sign the Honor

More information

Basic Reliable Transport Protocols

Basic Reliable Transport Protocols Basic Reliable Transport Protocols Do not be alarmed by the length of this guide. There are a lot of pictures. You ve seen in lecture that most of the networks we re dealing with are best-effort : they

More information

ECE697AA Lecture 3. Today s lecture

ECE697AA Lecture 3. Today s lecture ECE697AA Lecture 3 Transport Layer: TCP and UDP Tilman Wolf Department of Electrical and Computer Engineering 09/09/08 Today s lecture Transport layer User datagram protocol (UDP) Reliable data transfer

More information

The Transmission Control Protocol (TCP)

The Transmission Control Protocol (TCP) The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, e-mail, WWW) Reliable Stream Transport (TCP) Unreliable Transport Service (UDP) Connectionless Packet Delivery Service (IP) Goals

More information

Sequence Number. Acknowledgment Number. Data

Sequence Number. Acknowledgment Number. Data CS 455 TCP, Page 1 Transport Layer, Part II Transmission Control Protocol These slides are created by Dr. Yih Huang of George Mason University. Students registered in Dr. Huang's courses at GMU can make

More information

School of Engineering Department of Computer and Communication Engineering Semester: Fall Course: CENG415 Communication Networks

School of Engineering Department of Computer and Communication Engineering Semester: Fall Course: CENG415 Communication Networks School of Engineering Department of Computer and Communication Engineering Semester: Fall 2012 2013 Course: CENG415 Communication Networks Instructors: Mr Houssam Ramlaoui, Dr Majd Ghareeb, Dr Michel Nahas,

More information

Network Management & Monitoring Network Delay

Network Management & Monitoring Network Delay Network Management & Monitoring Network Delay These materials are licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported license (http://creativecommons.org/licenses/by-nc/3.0/) End-to-end

More information

CS 640 Introduction to Computer Networks Spring 2009

CS 640 Introduction to Computer Networks Spring 2009 CS 640 Introduction to Computer Networks Spring 2009 http://pages.cs.wisc.edu/~suman/courses/wiki/doku.php?id=640-spring2009 Programming Assignment 3: Transmission Control Protocol Assigned: March 26,

More information

Short answer (35 points)

Short answer (35 points) CPSC 360 Fall 2017 Exam 1 Version 2 Solutions (last updated 10/19/2017) This exam is closed book, closed notes, closed laptops. You are allowed to have one 8.5x11 sheet of paper with whatever you like

More information

Page 1. Goals for Today" Discussion" Example: Reliable File Transfer" CS162 Operating Systems and Systems Programming Lecture 11

Page 1. Goals for Today Discussion Example: Reliable File Transfer CS162 Operating Systems and Systems Programming Lecture 11 Goals for Today" CS162 Operating Systems and Systems Programming Lecture 11 Reliability, Transport Protocols" Finish e2e argument & fate sharing Transport: TCP/UDP Reliability Flow control October 5, 2011

More information

Problem 7. Problem 8. Problem 9

Problem 7. Problem 8. Problem 9 Problem 7 To best answer this question, consider why we needed sequence numbers in the first place. We saw that the sender needs sequence numbers so that the receiver can tell if a data packet is a duplicate

More information

CS 5565 Spring CS 5565 Midterm

CS 5565 Spring CS 5565 Midterm CS 5565 This is a closed-book, closed-internet, closed-cellphone and closed-computer exam. However, you may refer to your sheet of prepared notes. Your exam should have 11 pages with 5 questions totaling

More information

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING ECE361 Computer Networks Midterm March 06, 2017, 6:15PM DURATION: 80 minutes Calculator Type: 2 (non-programmable calculators) Examiner:

More information

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

Transmission Control Protocol. ITS 413 Internet Technologies and Applications Transmission Control Protocol ITS 413 Internet Technologies and Applications Contents Overview of TCP (Review) TCP and Congestion Control The Causes of Congestion Approaches to Congestion Control TCP Congestion

More information

QUIZ: Longest Matching Prefix

QUIZ: Longest Matching Prefix QUIZ: Longest Matching Prefix A router has the following routing table: 10.50.42.0 /24 Send out on interface Z 10.50.20.0 /24 Send out on interface A 10.50.24.0 /22 Send out on interface B 10.50.20.0 /22

More information

MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E

MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS 03-60-367-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Intersession 2008 Last Name: First Name: Student ID: PLEASE

More information

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 COS 461: Computer Networks Spring 2006 (MW 1:30-2:50 in Friend 109) Jennifer Rexford Teaching Assistant: Mike Wawrzoniak http://www.cs.princeton.edu/courses/archive/spring06/cos461/

More information

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri Department of Computer and IT Engineering University of Kurdistan Transport Layer By: Dr. Alireza Abdollahpouri TCP/IP protocol suite 2 Transport Layer The transport layer is responsible for process-to-process

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 11 MIDTERM EXAMINATION #1 OCT. 16, 2013 COMPUTER NETWORKS : 03-60-367-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Fall 2013-75 minutes This examination

More information

Congestion control in TCP

Congestion control in TCP Congestion control in TCP If the transport entities on many machines send too many packets into the network too quickly, the network will become congested, with performance degraded as packets are delayed

More information

Student ID: CS457: Computer Networking Date: 3/20/2007 Name:

Student ID: CS457: Computer Networking Date: 3/20/2007 Name: CS457: Computer Networking Date: 3/20/2007 Name: Instructions: 1. Be sure that you have 9 questions 2. Be sure your answers are legible. 3. Write your Student ID at the top of every page 4. This is a closed

More information

ICS 451: Today's plan. Sliding Window Reliable Transmission Acknowledgements Windows and Bandwidth-Delay Product Retransmission Timers Connections

ICS 451: Today's plan. Sliding Window Reliable Transmission Acknowledgements Windows and Bandwidth-Delay Product Retransmission Timers Connections ICS 451: Today's plan Sliding Window Reliable Transmission Acknowledgements Windows and Bandwidth-Delay Product Retransmission Timers Connections Alternating Bit Protocol: throughput tied to latency with

More information

Last Time. Internet in a Day Day 2 of 1. Today: TCP and Apps

Last Time. Internet in a Day Day 2 of 1. Today: TCP and Apps Internet in a Day Day 2 of 1 Carnegie Mellon University 15-440, Distributed Systems Last Time Modularity, Layering, and Decomposition Example: UDP layered on top of IP to provide application demux ( ports

More information

Programming Assignment 3: Transmission Control Protocol

Programming Assignment 3: Transmission Control Protocol CS 640 Introduction to Computer Networks Spring 2005 http://www.cs.wisc.edu/ suman/courses/640/s05 Programming Assignment 3: Transmission Control Protocol Assigned: March 28,2005 Due: April 15, 2005, 11:59pm

More information

NT1210 Introduction to Networking. Unit 10

NT1210 Introduction to Networking. Unit 10 NT1210 Introduction to Networking Unit 10 Chapter 10, TCP/IP Transport Objectives Identify the major needs and stakeholders for computer networks and network applications. Compare and contrast the OSI

More information

CS 326: Operating Systems. Networking. Lecture 17

CS 326: Operating Systems. Networking. Lecture 17 CS 326: Operating Systems Networking Lecture 17 Today s Schedule Project 3 Overview, Q&A Networking Basics Messaging 4/23/18 CS 326: Operating Systems 2 Today s Schedule Project 3 Overview, Q&A Networking

More information

Reliable Transport I: Concepts and TCP Protocol

Reliable Transport I: Concepts and TCP Protocol Reliable Transport I: Concepts and TCP Protocol Stefano Vissicchio UCL Computer Science COMP0023 Today Transport Concepts Layering context Transport goals Transport mechanisms and design choices TCP Protocol

More information

Applied Networks & Security

Applied Networks & Security Applied Networks & Security TCP/IP Protocol Suite http://condor.depaul.edu/~jkristof/it263/ John Kristoff jtk@depaul.edu IT 263 Spring 2006/2007 John Kristoff - DePaul University 1 ARP overview datalink

More information

EECS 3214: Computer Network Protocols and Applications. Final Examination. Department of Computer Science and Engineering

EECS 3214: Computer Network Protocols and Applications. Final Examination. Department of Computer Science and Engineering Department of Computer Science and Engineering EECS 3214: Computer Network Protocols and Applications Final Examination Instructor: N. Vlajic Date: April 9, 2016 Instructions: Examination time: 180 min.

More information

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data ELEX 4550 : Wide Area Networks 2015 Winter Session UDP and TCP is lecture describes the two most common transport-layer protocols used by IP networks: the User Datagram Protocol (UDP) and the Transmission

More information

CS 421: COMPUTER NETWORKS SPRING FINAL May 21, minutes

CS 421: COMPUTER NETWORKS SPRING FINAL May 21, minutes CS 421: COMPUTER NETWORKS SPRING 2015 FINAL May 21, 2015 150 minutes Name: Student No: Show all your work very clearly. Partial credits will only be given if you carefully state your answer with a reasonable

More information

Transport Layer Protocols TCP

Transport Layer Protocols TCP Transport Layer Protocols TCP Gail Hopkins Introduction Features of TCP Packet loss and retransmission Adaptive retransmission Flow control Three way handshake Congestion control 1 Common Networking Issues

More information

TCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli)

TCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli) TCP CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli) 1 Sources Fall and Stevens, TCP/IP Illustrated Vol. 1, 2nd edition Congestion Avoidance

More information

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections Application / Transport Interface Application requests service from transport layer Transport Layer Application Layer Prepare Transport service requirements Data for transport Local endpoint node address

More information

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link. Internet Layers Application Application Transport Transport Network Network Network Network Link Link Link Link Ethernet Fiber Optics Physical Layer Wi-Fi ARP requests and responses IP: 192.168.1.1 MAC:

More information

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology Transport Over IP CSCI 690 Michael Hutt New York Institute of Technology Transport Over IP What is a transport protocol? Choosing to use a transport protocol Ports and Addresses Datagrams UDP What is a

More information

Multiple unconnected networks

Multiple unconnected networks TCP/IP Life in the Early 1970s Multiple unconnected networks ARPAnet Data-over-cable Packet satellite (Aloha) Packet radio ARPAnet satellite net Differences Across Packet-Switched Networks Addressing Maximum

More information

Introduction to Networks and the Internet

Introduction to Networks and the Internet Introduction to Networks and the Internet CMPE 80N Announcements Project 2. Reference page. Library presentation. Internet History video. Spring 2003 Week 7 1 2 Today Internetworking (cont d). Fragmentation.

More information

Computer Networks Spring 2017 Homework 2 Due by 3/2/2017, 10:30am

Computer Networks Spring 2017 Homework 2 Due by 3/2/2017, 10:30am 15-744 Computer Networks Spring 2017 Homework 2 Due by 3/2/2017, 10:30am (please submit through e-mail to zhuoc@cs.cmu.edu and srini@cs.cmu.edu) Name: A Congestion Control 1. At time t, a TCP connection

More information

UNIT IV TRANSPORT LAYER

UNIT IV TRANSPORT LAYER Transport Layer UNIT IV TRANSPORT LAYER Congestion Control and Quality of Service Ref: Data Communication & Networking, 4 th edition, Forouzan IV-1 DATA TRAFFIC The main focus of congestion control and

More information

Solution to Question 1: ``Quickies'' (25 points, 15 minutes)

Solution to Question 1: ``Quickies'' (25 points, 15 minutes) Solution to Question : ``Quickies'' (25 points, 5 minutes) What is meant by the term statistical multiplexing? Answer: In statistical multiplexing, data from multiple users (senders) is sent over a link.

More information

Intro to LAN/WAN. Transport Layer

Intro to LAN/WAN. Transport Layer Intro to LAN/WAN Transport Layer Transport Layer Topics Introduction (6.1) Elements of Transport Protocols (6.2) Internet Transport Protocols: TDP (6.5) Internet Transport Protocols: UDP (6.4) socket interface

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START MIDTERM EXAMINATION #2 NETWORKING CONCEPTS 03-60-367-01 U N I V E R S I T Y O F W I N D S O R - S c h o o l o f C o m p u t e r S c i e n c e Fall 2011 Question Paper NOTE: Students may take this question

More information

IIP Wireless. Presentation Outline

IIP Wireless. Presentation Outline IIP Wireless Improving Internet Protocols for Wireless Links Markku Kojo Department of Computer Science www.cs cs.helsinki.fi/research/.fi/research/iwtcp/ 1 Presentation Outline Project Project Summary

More information

Section 1 Short Answer Questions

Section 1 Short Answer Questions CPSC 3600 section 002 HW #1 Fall 2017 Last revision: 9/7/2017 You must work on this homework individually!! Submission: You are to submit your written answers to turnitin. Also, you are to submit your

More information

CSCI Computer Networks

CSCI Computer Networks CSCI-1680 - Computer Networks Chen Avin (avin) Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti, Peterson & Davie, Rodrigo Fonseca Administrivia Sign and hand in Collaboration

More information

Lecture 15 Networking Fundamentals. Today s Plan

Lecture 15 Networking Fundamentals. Today s Plan Lecture 15 Networking Fundamentals Slides attributed to Neil Spring Today s Plan Talk about networking in general Layers, Routing Specifically about IP and TCP Service model, what TCP provides Work our

More information

PRACTICE QUESTIONS ON RESOURCE ALLOCATION

PRACTICE QUESTIONS ON RESOURCE ALLOCATION PRACTICE QUESTIONS ON RESOURCE ALLOCATION QUESTION : Internet Versus Station Wagon A famous maxim, sometimes attributed to Dennis Ritchie, says Never underestimate the bandwidth of a station wagon full

More information

ECE 697J Advanced Topics in Computer Networks

ECE 697J Advanced Topics in Computer Networks ECE 697J Advanced Topics in Computer Networks Network Measurement 12/02/03 Tilman Wolf 1 Overview Lab 3 requires performance measurement Throughput Collecting of packet headers Network Measurement Active

More information

Question Points Score total 100

Question Points Score total 100 CS457: Computer Networking Date: 3/21/2008 Name: Instructions: 1. Be sure that you have 8 questions 2. Be sure your answers are legible. 3. Write your Student ID at the top of every page 4. This is a closed

More information

CS 349/449 Internet Protocols Final Exam Winter /15/2003. Name: Course:

CS 349/449 Internet Protocols Final Exam Winter /15/2003. Name: Course: CS 349/449 Internet Protocols Final Exam Winter 2003 12/15/2003 Name: Course: Instructions: 1. You have 2 hours to finish 2. Question 9 is only for 449 students 3. Closed books, closed notes. Write all

More information

ETSF10 Internet Protocols Transport Layer Protocols

ETSF10 Internet Protocols Transport Layer Protocols ETSF10 Internet Protocols Transport Layer Protocols 2012, Part 2, Lecture 2.1 Kaan Bür, Jens Andersson Transport Layer Protocols Process-to-process delivery [ed.4 ch.23.1] [ed.5 ch.24.1] Transmission Control

More information

Data Communication Networks Final

Data Communication Networks Final Data Communication Networks Final Saad Mneimneh Visiting Professor Hunter College of CUNY NAME: This final test is take home... There are 8 Problems (but each problem has multiple parts, possibly on separate

More information

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 23-1 PROCESS-TO-PROCESS DELIVERY 23.2 The transport

More information

Communication Networks

Communication Networks Communication Networks Spring 2018 Laurent Vanbever nsg.ee.ethz.ch ETH Zürich (D-ITET) April 30 2018 Materials inspired from Scott Shenker & Jennifer Rexford Last week on Communication Networks We started

More information

Lecture 7: Sliding Windows. CSE 123: Computer Networks Geoff Voelker (guest lecture)

Lecture 7: Sliding Windows. CSE 123: Computer Networks Geoff Voelker (guest lecture) Lecture 7: Sliding Windows CSE 123: Computer Networks Geoff Voelker (guest lecture) Please turn in HW #1 Thank you From last class: Sequence Numbers Sender Receiver Sender Receiver Timeout Timeout Timeout

More information

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 23-1 PROCESS-TO-PROCESS DELIVERY The transport

More information

Kent State University

Kent State University CS 4/54201 Computer Communication Network Kent State University Dept. of Computer Science www.mcs.kent.edu/~javed/class-net06f/ 1 A Course on Networking and Computer Communication LECT-10, S-2 IP- Internet

More information

CSCD 330 Network Programming Winter 2015

CSCD 330 Network Programming Winter 2015 CSCD 330 Network Programming Winter 2015 Lecture 11a Transport Layer Reading: Chapter 3 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright 1996-2007 1 Chapter 3 Sections

More information

Data Link Control Protocols

Data Link Control Protocols Protocols : Introduction to Data Communications Sirindhorn International Institute of Technology Thammasat University Prepared by Steven Gordon on 23 May 2012 Y12S1L07, Steve/Courses/2012/s1/its323/lectures/datalink.tex,

More information

Flow and Congestion Control

Flow and Congestion Control CE443 Computer Networks Flow and Congestion Control Behnam Momeni Computer Engineering Department Sharif University of Technology Acknowledgments: Lecture slides are from Computer networks course thought

More information

Exercises TCP/IP Networking With Solutions

Exercises TCP/IP Networking With Solutions Exercises TCP/IP Networking With Solutions Jean-Yves Le Boudec Fall 2009 3 Module 3: Congestion Control Exercise 3.2 1. Assume that a TCP sender, called S, does not implement fast retransmit, but does

More information

Reliable Byte-Stream (TCP)

Reliable Byte-Stream (TCP) Reliable Byte-Stream () Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout Simple Demultiplexer (UDP) Header format Note 16 bit port number (so only 64K

More information

The Transport Layer Multiplexing, Error Detection, & UDP

The Transport Layer Multiplexing, Error Detection, & UDP CPSC 852 Internetworking The Transport Layer Multiplexing, Error Detection, & UDP Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc852

More information

CCNA R&S: Introduction to Networks. Chapter 7: The Transport Layer

CCNA R&S: Introduction to Networks. Chapter 7: The Transport Layer CCNA R&S: Introduction to Networks Chapter 7: The Transport Layer Frank Schneemann 7.0.1.1 Introduction 7.0.1.2 Class Activity - We Need to Talk Game 7.1.1.1 Role of the Transport Layer The primary responsibilities

More information

! " Lecture 5: Networking for Games (cont d) Packet headers. Packet footers. IP address. Edge router (cable modem, DSL modem)

!  Lecture 5: Networking for Games (cont d) Packet headers. Packet footers. IP address. Edge router (cable modem, DSL modem) Lecture 5: Networking for Games (cont d) Special Send case: to NAT 123.12.2.10 network 192.168.1.101 17.4.9.33 192.168.1.100 123.12.2.[0-128] IP address 23.11.3.10 Edge router (cable modem, DSL modem)

More information

CMPE 257: Wireless and Mobile Networking

CMPE 257: Wireless and Mobile Networking CMPE 257: Wireless and Mobile Networking Katia Obraczka Computer Engineering UCSC Baskin Engineering Lecture 10 CMPE 257 Spring'15 1 Student Presentations Schedule May 21: Sam and Anuj May 26: Larissa

More information

Chapter 3 Review Questions

Chapter 3 Review Questions Chapter 3 Review Questions. 2. 3. Source port number 6 and destination port number 37. 4. TCP s congestion control can throttle an application s sending rate at times of congestion. Designers of applications

More information

Review problems (for no credit): Transport and Network Layer

Review problems (for no credit): Transport and Network Layer Review problems (for no credit): Transport and Network Layer V. Arun CS 653, Fall 2018 09/06/18 Transport layer 1. Protocol multiplexing: (a) If a web server has 100 open connections, how many sockets

More information

CPSC 3600 HW #4 Solutions Fall 2017 Last update: 12/10/2017 Please work together with your project group (3 members)

CPSC 3600 HW #4 Solutions Fall 2017 Last update: 12/10/2017 Please work together with your project group (3 members) CPSC 3600 HW #4 Solutions Fall 2017 Last update: 12/10/2017 Please work together with your project group (3 members) Name: Q 1 Kurose chapter 3, review question R14 (20 points) Solution: a) false b) false

More information

CPSC 4240/6240 Spring 2017 HW # 3 v1 Last update: 3/22/2017

CPSC 4240/6240 Spring 2017 HW # 3 v1 Last update: 3/22/2017 CPSC 4240/6240 Spring 2017 HW # 3 v1 Last update: 3/22/2017 You can work individually or with a partner (we won t allow groups > 2). Note that the grading will be identical if you work on your own or with

More information

Operating Systems and Networks. Network Lecture 8: Transport Layer. Adrian Perrig Network Security Group ETH Zürich

Operating Systems and Networks. Network Lecture 8: Transport Layer. Adrian Perrig Network Security Group ETH Zürich Operating Systems and Networks Network Lecture 8: Transport Layer Adrian Perrig Network Security Group ETH Zürich I was going to tell you a joke about UDP, but I wasn t sure if you were going to get it

More information

Operating Systems and Networks. Network Lecture 8: Transport Layer. Where we are in the Course. Recall. Transport Layer Services.

Operating Systems and Networks. Network Lecture 8: Transport Layer. Where we are in the Course. Recall. Transport Layer Services. Operating Systems and s Lecture 8: Transport Layer I was going to tell you a joke about UDP, but I wasn t sure if you were going to get it Adrian Perrig Security Group ETH Zürich 2 Where we are in the

More information

Lecture 5: Flow Control. CSE 123: Computer Networks Alex C. Snoeren

Lecture 5: Flow Control. CSE 123: Computer Networks Alex C. Snoeren Lecture 5: Flow Control CSE 123: Computer Networks Alex C. Snoeren Pipelined Transmission Sender Receiver Sender Receiver Ignored! Keep multiple packets in flight Allows sender to make efficient use of

More information

CSE 422 Jeopardy. Sockets TCP/UDP IP Routing Link $100 $200 $300 $400. Sockets - $100

CSE 422 Jeopardy. Sockets TCP/UDP IP Routing Link $100 $200 $300 $400. Sockets - $100 CSE 422 Jeopardy Sockets TCP/UDP IP Routing Link $100 $100 $100 $100 $100 $200 $200 $200 $200 $200 $300 $300 $300 $300 $300 $400 $400 $400 $400 $400 $500 $500 $500 $500 $500 Sockets - $100 True or False:

More information

2. Traffic. Contents. Offered vs. carried traffic. Characterisation of carried traffic

2. Traffic. Contents. Offered vs. carried traffic. Characterisation of carried traffic Contents characterisation Telephone traffic modelling Data traffic modelling at packet level Data traffic modelling at flow level lect.ppt S-8.5 - Introduction to Teletraffic Theory Spring 6 Offered vs.

More information

Outline. CS5984 Mobile Computing

Outline. CS5984 Mobile Computing CS5984 Mobile Computing Dr. Ayman Abdel-Hamid Computer Science Department Virginia Tech Outline Review Transmission Control Protocol (TCP) Based on Behrouz Forouzan, Data Communications and Networking,

More information