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

Size: px
Start display at page:

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

Transcription

1 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 c) true d) false e) true f) false g) false Q 2 Kurose chapter 3, review question R15 (20 points) Solution: a) 20 bytes b) ack number = 90 1

2 Q 3 Kurose chapter 3, review question R17 (10 points) Solution: R/2 2

3 Q4 (20 pts) As a group, you will repeat Exercise 5. This time, see if you can view a 4K content. If you can t, just chose any video your group agrees to watch. In your writeup, make sure to note the content you chose and the time of day that you viewed the video. Repeat exercise 5, although capture a bit more data- at least 15 minutes of a video. Make sure to capture the very beginning of the video. Have everyone in your group watch the video at the same time (using the same laptop). Everyone at the end of the session should give an overall assessment of the video quality - poor, acceptable, good, excellent. During the viewing, everyone should look for any specific artifacts such as glitches, strange distortions, or rebuffering events. In your writeup, everyone should include their overall assessment and a list of any observed artifacts. In a manner similar to Exercise 5, o Summarize the tcpdump trace file- Number of packets, number of tcp and udp sessions, total trace time. o What was the aggregate bandwidth consumed by the video session (in the time you viewed and traced it)- show the DS and US result separately. o Provide the DS.flowcounts file sorted by the IP addresses that were involved in the most number of flows. In addition please do the following o Identify the 10 flows that consumed the most DS bandwidth. o Plot the aggregate bandwidth consumed for the viewing session plot the 1 sec and 10 sec bandwidth sample output files produced by timeslice. Overlay the two curves please label each curve. Note: a 15 minute packet trace of a video can be very large (approaching 1 Gbyte). Make sure to use a computer with sufficient disk space. You might need to do this on a department Linux machine. Solution: (5 points for each of these 4 components): Captured a video as required (duration at least 10 minutes, includes beginning of video session) Team submitted an assessment of the quality? Did this include a list of specific artifacts (if the quality assessment reflects quality was not ideal)? Ex 5 results - o Trace file summarized: #packets, #tcp and udp sessions, total trace time? o Aggregate bandwidth- DS and US shown separately? o DS flowcounts file provided? Beyond Ex 5, o Id the top 10 flows that consumed the most DS bandwidth? o Plot of the aggregated BW for the session? This is a plot of the two data files produced by timeslice (named something like BW1SEC.dat and BW10SEC.dat). A plot for EACH of the data sets should be on the same graph. 3

4 Q5 (30 points with an additional 10 points extra credit possible) Programming question. You should use the code HW4.tar.gz as the starting point for this program. We will build upon the latest UDPEcho program, adding a third mode of operation that implements a simple window-based rate control algorithm. The mode of operation emulates an application with infinite demand and that attempts to use all available bandwidth over the path between the two socket endpoints. The mode implements a simplified version of TCP s slow start congestion control. It adapts the window in two ways. First, it grows the window in an effort to allow the flow to utilize all available bandwidth. Specifically, it initializes the window to a value equivalent to 1 message and increases the window by a value of 1 with each NEW ACK that arrives. A NEW ACK is an ACK message that conveys a Rx Sequence Number that the sender has not yet seen. An ACK message is either a NEW ACK or a DUPLICATE ACK. The latter implies the receiver has issues the same Rx Sequence Number one or more times. Second, the new mode will reduce the window in response to observed network congestion. We adopt TCP/IP s method of using packet loss as implicit indicators of network congestion. The protocol implements an adaptive sliding window protocol that deals with loss recovery using a go-back-n policy. To briefly illustrate the error recovery imagine the sender s window at a given point in time to be 10 packets (or messages). Messages with sequence numbers are in flight. If packet loss does not occur, the sender will receive 10 ACK messages with Rx Sequence Numbers of If the very first message is lost (seq number 100), the sender will receive 9 ACK messages all with an Rx Sequence Number of 100. Once the sender deduces that packet sequence number 100 was dropped, it will reduce the window to 1 and begin retransmitting beginning with sequence number 100. The go-back-n in this case refers to a loss recovery that requires the sender to effectively slide the window backwards to retransmit everything beginning with the first packet that was dropped. Clearly this is not the most efficient, as in our example, the retransmissions of sequence numbers are not necessary. But, this is a very simple protocol to implement and serves as a good example of a widely used protocol. We use the term message to mean a transmission from either the client or server. We can assume the term is synonymous with the terms packet or segment. There are two messages. The client (which we will call the sender) sends DATA messages. The server (which we will call the receiver) sends ACK messages. A DATA message is similar to what is used in the other modes, but it adds the time the message is sent to the message. DATA send by the client in Mode 2 Sequence number (32 bit unsigned int) : The sequence number of this message. Mode : (16 bit unsigned int) as with all modes, this indicates the session mode. For mode 2, this is set to a value of 2. 4

5 Timestamp seconds (32 bit unsigned int) : The timestamp when the data msg is sent. This first field represents the seconds. Timestamp microseconds (32 bit unsigned int). the second field of the timestamp contains the microseconds of the timestamp. Data- char [] - the client s message size specifies how many octets of data are contained in a DATA message Note: you can modify the data message format as you see fit. The messages.c code released as a part of ExtraCredit2 has an internal representation of a DataMsg through a structure and then this code laid out the DataMessage in a network buffer slightly differently (Sequence number, Mode, MsgType, Timestamps seconds/useconds, MsgSize, DataSize, and then the octets representing the message data. ACK- this is sent by the server in response to DATA messages from clients in Mode 2. It includes the Rx Sequence number, the mode of operation, and the timestamp from the most recent DATA Message. Rx Sequence number (32 bit unsigned int) : Reflects the sequence number the server side expects next. For example, if a data message with sequence number 100 arrives, the server should issue an ACK with an Rx Sequence Number of 101. Mode : (16 bit unsigned int) should be a value of 2 to reflect window mode Timestamp seconds (32 bit unsigned int): Echoes back the timestamp in the data message that triggers this ACK. Timestamp microseconds (32 bit unsigned int) As noted above, you can modify the ACK message as you see fit. The messages.c code arranged the network buffer in the same manner as the DataMsg but without the DataSize and data octets. We introduce several terms and concepts relevant to how the receiver generates ACK messages. A duplicate ACK is an ACK sent by the receiver that contains an Rx Sequence Number that has already been sent in a previous ACK message. Similarly, a new ACK is an ACK received by the sender that acknowledges a DATA message that has not been acknowledged before. This allows the window to advance. ACKs are cumulative in the sense that an ACK might contain a Rx Sequence number that acknowledges multiple packets. This also makes ACKs tolerant to loss (i.e., a dropped ACK message might not make any difference). The ACK strategy specifies how frequently the receiver issues an ACK. Your program will assume that the receiver is to issue an ACK with each new DATA message that arrives. It is possible to change this behavior and to reduce the number of ACKs by implementing a delayed ACK. The receiver will wait for a configured number of DATA messages to arrive, and then issue one ACK that 5

6 acknowledges all of the messages received. Your program does NOT have to support a delayed ACK. The receiver sends an ACK message for each data message that is received. The ACK message contains the Sequence Number that it expects next, consequently we refer to the sequence number in an ACK message as the Rx Sequence Number. Both DATA and ACK messages might be dropped in the network. When the receiver detects loss, it discards any data that arrives that is NOT the DATA message containing the next expected sequence number. This go-back-n behavior is not exactly what TCP does but it simplifies our protocol. When the sender deduces that a DATA message has been dropped, it simulates retransmission of the DATA message that was dropped by sending a DATA message with the sequence number of the packet that was dropped. The sender maintains a window variable (W) that specifies the number of messages that can be outstanding in the network. Once W messages have been sent, the sender waits for ACKs. The sender must maintain a retransmission timeout on only one message at a time. If the sender s window is 10 and DATA messages with sequence numbers of are in flight, the sender s timeout is based on the transmission of sequence number of 50. The sender deduces loss has occurred when one of two events occurs. The retransmission timer pops. The sender retransmits the message that has the lowest sequence number. For example, if the sender s window is 5 and it sends messages with sequence numbers of 10, 11, 12, 13, 14 but all 5 are dropped in the network. The sender stalls meaning no new data will be clocked out until the retransmission timer pops. When the timer pops, the sender should retransmit DATA message sequence number 10 and the window is reduced to 1. A duplicate ACK event - if the sender observes a duplicate ACK, it assumes the DATA message that has the lowest sequence number of all messages in the current window was dropped. This DATA message is retransmit and the window is reduced to 1. (NOTE: TCP waits until 3 duplicate ACKs arrive, and the loss event is referred to as a triple duplicate ack ) As explained below, either loss event will cause the sender to reduce the cwnd to 1. If the same DATA message is retransmitted a total of five consecutive times (i.e., the same message is attempted to be sent a total of 6 times), the sender should assume the session has failed and it should terminate the program. The sender maintains a variable called the congestion window (cwnd). It is in units of packets. It is initialized to 1 packet. The client program is variable called maximum window (maintained as variable maxw) This is in units of packets. The parameter allows us to limit the sending rate of the sender. If the value is 0, there is no limit to the sending rate. You can implement this in different ways you can ignore the maxw if it s 0 or if the configured maxw is 0, you can set the internal value very large, like 10,000,000. The cwnd would be reduced in response to packet loss well before the window approached a very large maxw. 6

7 The slow start algorithm involves the following variables: cwnd: the current congestion window maxw : the max allowed Window (a program parameter) W: The current window in use by the sender. It is updated each time a new ACK arrives: W= min(cwnd, maxw). RTO : Retransmission Timeout the duration of the retransmission timeout. This is defined to be twice the average of the 3 most recent RTT samples RTT the round trip time sample based on the currect Rx Sequence Number in an ACK message. It should be calculated based on the difference between the current time and the timestamp contained in the ACK. This must NOT be computed if the ACK is a duplicate. avgrtt the average RTT based on the most recent 3 samples. nextseqnumber the next seq number to be used highestseqnumberinflight tracks the upper edge of the window lowestseqnumberinflight tracks the lower edge of the window. This would be the next expected Rx Sequence Number. highestmsgacked the sequence number most recently ACKed. The simplified slow start algorithm is summarized as follows (note- this is incomplete it is meant just to illustrate the main points of slow start). At init time, nextseqnumber=1 highestseqnumberinflight=1 lowestseqnumberinflight=1 Cwnd=1 maxw initialized to the program parameter. If 0, it is set to 10,000,000 W=1 Init the initial RTO to 1 seconds Client sends the first message Each time an ACK arrives, Retrieve Rx Sequence Number from the message If it is a new ACK: o Adjust the seq number pointers to slide the window forward o cwnd++ o W=min(cwnd,maxW) o Send as many messages allowed (based on the updated W) o Retrieve the timestamp from the ACK. Compute a RTT sample by taking the difference from Timestamp in the ACK message from the current time. If it is a duplicate ACK o cwnd=1 o W=1 7

8 o Restart the timer, retransmit the DATA message that was dropped o Do not obtain an RTT sample when the sending side is in a recovery mode (i.e., it has detected one or more duplicate ACKs). 3 When a timeout occurs cwnd=1 W=1 Restart the timer, retransmit the message that was dropped. The server is a very simple extension to the current server. We are adding one new parameter (the third parameter) to the server that specifies the value of a random loss process that will be used for testing purposes. The parameter range is and represents the average loss rate the server should apply in the form of a random packet loss process. If a data segment arrives with a mode value of 2, it must respond by sending an ACK message that contains 4 bytes of data representing the sequence number of the data that is being acknowledged (i.e., the sequence number of the data just received). The server must continue to maintain per session statistics and display a summary of each session when the program terminates. The client parameters are as follows. : 1. Server IPv4 address as a domain name or in dotted quad format 2. Server port : specifies the server port 3. Message size: specifies the number of application bytes to place in each message. In order to ensure a message fits in one IP packet, you should assume a message size can not exceed 1472 bytes. 4. Number iterations: specifies the number of iterations (i.e., data samples) to perform (or obtain). If 0, the client should run forever (or until a CNT-C). 5. Debug flag - Same as the server parameter except the sample log file is RTT.dat. 6. Mode : 0 is RTT_MODE (original ECHO mode), 1 is CBR mode, 2 is the new windowed protocol mode. 7. This parameter depends on the Mode parameter a. Mode 0 : Iteration delay: Number of microseconds between iterations b. Mode 1 : Target send rate: The target client sending rate in bits per seconds c. Mode 2 : Maximum Window size allowed. This is in units of packets. A value of 0 indicates there is no maximum. Output monitoring : If the traceflag parameter is set to 1 for either the client or the server, the results of a monitoring process is to be displayed to standard out. The client and server monitor will be almost identical. This applies ONLY when running the new window mode of operation. The traceflag is set with the debugflag parameter on both the client and server. The debugflag contains two pieces of information - If the 8 th bit of 8

9 the lowest byte is set, the traceflag is set. The remaining 7 bits represent the debuglevel. For example, the debugflag value of 1 corresponds to a traceflag clear and a debuglevel of 1 (which is minimum debug info sent to standard out). A debugflag parameter of 129 corresponds to the traceflag set and a debuglevel of 1. The output monitoring idea is similar to how iperf works it periodically shows the average throughput at periodic time interval (which is 1 second by default and can be set by a program parameter). We will assume a monitor interval (we call the value monitortimeperiod) of 1 second. You are to maintain statistics for each interval. The results displayed each monitortimeperiod are based on observed behavior in the last interval time period. Please format the monitor output to something that is brief, all numeric. The client and server can use similar formats but there are important differences. The client should show the following lines every interval time. ClientIP clientport Timestamp avgrtt avgsendrate We define each field as follows: Client IP: The clients IP address in dotted decimal format Client port: The clients port number Timestamp: the current time of the update avgrtt : the average RTT based on the average of all RTT samples that were obtained in the current monitor interval. Please show in units of seconds with a precision of 6 digits after the decimal (i.e., microsecond precision). avgthroughput : the average sending rate during the interval. The server is to behave with no changes for mode 0 or mode 1 sessions. For mode 2 sessions, the server should create and maintain entries in the session state list as currently done. If the server is invoked with the traceflag set (e.g., debugflag of 129 ), it should maintain a subset of the monitor statistics shown by the client. The monitor stats should be based on the aggregate of all session traffic. Timestamp (seconds with microsecond precision): the current time of the update. avgthroughput (bps) : The average throughput observed by the receiver during an interval. During each interval, the server counts the total number of bytes received by all sessions. The avgthroughput is simply the interval byte count (multiplied by 8) divided by the time since the last statistic update. End of program summary information: For Mode 2, the client and server should display appropriate summary information upon termination. Client displays the following based on the results of session from start to end: o SessionDuration TotalPkts TotalBytes avgsendrate avgrtt avglossrate Server displays the same information displayed for mode 1 sessions. 9

10 Test and Validation: You are to create a set of test cases to validate the program functionality works. Your validation must involve the use of tcpdump and the netem/tc tools. Netem/tc is to be used to create test scenarios involving realistic levels of latency and loss. NEW. Let s look at how our protocol s loss recovery is to work. The sender s window is. Let s say seq number 1 is dropped by the 3 other packets are received. Let s also assume the sender sent sequence number 0 and received the RxSeqnumber 1 before line 1 occurs.let s say that the sender has No more data to send. Once it receives the ACK for all 4 packets, it is finished. Sender Cwnd=4 receiver seq number XXXX seq number seq number seq number RTT delay Cwnd= RxseqNumber 1 (first dup) seq number Rx ed seq RxseqNumber RxseqNumber RTT delay =============RxSeqNumber 2 (new ack) Cwnd= seq number Rx ed seq seq number Rx ed seq RTT delay

11 Cwnd= RxseqNumber seq number RxseqNumber seq number RxseqNumber seq number seq number RxseqNumber Lines 1-5 represent the sender sending 5 packets. safely. The first is dropped, the next 4 arrive Line 6 is representing the Round Trip Time we can assume that the time it takes to send the 5 packets is tiny compared to the RTT Line7 is when the first duplicate ACK arrives. Our sender sets cwnd to 1 and retransmits Seq Number 1 and ignores the three other ACK msgs that arrive. Line 12 illustrates the relatively long RTT before the sender might see a response from the receiver (for the retransmit of seq number 1) Solution : Refer to HW4V3-sol.tar.gz (if not currently on our web page, it will be soon) Grading: The grading will reflect that this programming assignment was quite challenging. The base grading will be designed to assess the team made a decent effort. Extra credit (added to this homework grade) will be used to reward the teams that worked extremely hard to get a solution that has partially working functions (described below) Base grading: (30 points) 1. (5) Team submitted code that clearly reflects they added code to the starting HW4 code. 2. (5) Team submitted a writeup that attempts to describe what they have implemented and what works and what does not work. 3. (5) Testing/validation the team included in their writeup the approach to test/validation. o Identifies specific test cases o Includes results for at least one test case (did not need to successfully use netem in a test case for these points) 11

12 4. (15) Base grade that is based on their code and writeup o (5) Running the code submission in modes 0, 1: After a download, the standard make clean, make creates two executables. The client and server support modes 0 and 1 as before Test mode 0 on a VM: should run and give a result at the client, server and produces two output files; RTT.dat and EchoServer.dat o./server o./client localhost Test mode 1 on a VM run for 30 seconds or so, cnt-c both server and client. Just check the client standard out that reflects an actual send rate of about (lots of variability in what you might see but should be at least ). o./server o./client localhost o Run in the new mode: (5 points for each of the three tests) Test 1 run 10 iterations :./server /client localhost Grading items : o Produce output monitoring to standard out at both the client and server o While running, does it appear the client/server are exchanging messages? o Does it stop after 10 iterations? o After it stops, does it appear like the cwnd/currentwindow starts at 1 and increases with each ACK? Grading items for misc. errors: o Seg faults but nothing appears to work o Runs, appears to do something, ends in seg fault. o Runs, appears to do something, ends possibly with an error Test 2 run with iterations 0 :./server /client localhost Grading items : o Produce output monitoring to standard out at both the client and server o While running, does it appear the client/server are exchanging messages? o Does it stop after 10 iterations? Test 3 run with maxw set to 1 :./server

13 ./client localhost Grading items : o Does it appear to operate correctly in this stop-andwait mode of operation? o Code inspection - Only necessary if the above tests are not sufficient to determine how much of mode 2 was implemented and successfully tested. To calibrate the base grading, it is possible to get a 30 (full credit) if a subset of the full mode 2 protocol is successfully implemented. Note that none of the mode 2 tests involved loss. Beyond Base grading: If the submission clearly exceeds the base grading, we will allocate up to 10 points extra credit. So the following should apply only for those implementations that have come close to satisfying tests 1,2,3. So the extra credit can still be allocated if the base grade is let s say at least If the implementation successfully passes tests 1,2,3 AND if we can determine that Data and ACK messages are correctly sent/received, AND we see that the cwnd/window correctly grows, AND the group submitted a good writeup - allocate 5 extra credit points. 2. Independent of the extra credit test 1 above, if the submission appears to correctly handle loss in a reasonable manner, allocate 5 extra credit points. The basic result to look for is that the output monitor should show the client sending at a rate that oscillates from something low to something high. And after several minutes after a CNT-C, the client should show an average sending rate of something that seems to make sense o./server //Adds 10% artificial loss o./client localhost For projects that have satisfied both #1 and #2 extra credit options allocate 10 points extra credit 13

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

CPSC 3600 HW #4 Fall 2017 Last update: 11/9/2017 Please work together with your project group (3 members) CPSC 3600 HW #4 Fall 2017 Last update: 11/9/2017 Please work together with your project group (3 members) Name: Q 1 Kurose chapter 3, review question R14 Q 2 Kurose chapter 3, review question R15 Q 3 Kurose

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

When the ACK message arrives at the client, it computes an RTT sample and then immediately sends the next message.

When the ACK message arrives at the client, it computes an RTT sample and then immediately sends the next message. CPSC 3600 HW #2 s Fall 2017 Last update: 10/12/2017 Please submit your written answers as a PDF using canvas And your modified UDPEcho.tar.gz using handin Please work independently Name: 1 (10) Two nodes

More information

TCP: Flow and Error Control

TCP: Flow and Error Control 1 TCP: Flow and Error Control Required reading: Kurose 3.5.3, 3.5.4, 3.5.5 CSE 4213, Fall 2006 Instructor: N. Vlajic TCP Stream Delivery 2 TCP Stream Delivery unlike UDP, TCP is a stream-oriented protocol

More information

Transport Protocols and TCP: Review

Transport Protocols and TCP: Review Transport Protocols and TCP: Review CSE 6590 Fall 2010 Department of Computer Science & Engineering York University 1 19 September 2010 1 Connection Establishment and Termination 2 2 1 Connection Establishment

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

Transport Protocols & TCP TCP

Transport Protocols & TCP TCP Transport Protocols & TCP CSE 3213 Fall 2007 13 November 2007 1 TCP Services Flow control Connection establishment and termination Congestion control 2 1 TCP Services Transmission Control Protocol (RFC

More information

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment

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

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

CPSC 424/624 HW #2 version 1 Solution Spring 2017 Last revision: 3/4/2017

CPSC 424/624 HW #2 version 1 Solution Spring 2017 Last revision: 3/4/2017 CPSC 424/624 HW #2 version 1 Solution Spring 2017 Last revision: 3/4/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

More information

Topics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput

Topics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput Topics TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput 2 Introduction In this chapter we will discuss TCP s form of flow control called a sliding window protocol It allows

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

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

ECE 435 Network Engineering Lecture 10

ECE 435 Network Engineering Lecture 10 ECE 435 Network Engineering Lecture 10 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 28 September 2017 Announcements HW#4 was due HW#5 will be posted. midterm/fall break You

More information

UNIT IV -- TRANSPORT LAYER

UNIT IV -- TRANSPORT LAYER UNIT IV -- TRANSPORT LAYER TABLE OF CONTENTS 4.1. Transport layer. 02 4.2. Reliable delivery service. 03 4.3. Congestion control. 05 4.4. Connection establishment.. 07 4.5. Flow control 09 4.6. Transmission

More information

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP Transport layer Review principles: Reliable data transfer Flow control Congestion control Instantiation in the Internet UDP TCP 1 UDP: User Datagram Protocol [RFC 768] No frills, bare bones Internet transport

More information

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control Transport layer Review principles: Reliable data transfer Flow control Congestion control Instantiation in the Internet UDP TCP 1 UDP: User Datagram Protocol [RFC 768] No frills, bare bones Internet transport

More information

ECE 610: Homework 4 Problems are taken from Kurose and Ross.

ECE 610: Homework 4 Problems are taken from Kurose and Ross. ECE 610: Homework 4 Problems are taken from Kurose and Ross. Problem 1: Host A and B are communicating over a TCP connection, and Host B has already received from A all bytes up through byte 248. Suppose

More information

CS321: Computer Networks Congestion Control in TCP

CS321: Computer Networks Congestion Control in TCP CS321: Computer Networks Congestion Control in TCP Dr. Manas Khatua Assistant Professor Dept. of CSE IIT Jodhpur E-mail: manaskhatua@iitj.ac.in Causes and Cost of Congestion Scenario-1: Two Senders, a

More information

TCP Performance. EE 122: Intro to Communication Networks. Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim

TCP Performance. EE 122: Intro to Communication Networks. Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim TCP Performance EE 122: Intro to Communication Networks Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim http://inst.eecs.berkeley.edu/~ee122/ Materials with thanks

More information

Transport Layer: outline

Transport Layer: outline Transport Layer: outline Transport-layer services Multiplexing and demultiplexing Connectionless transport: UDP Principles of reliable data transfer Connection-oriented transport: TCP Segment structure

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

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015 1 Congestion Control In The Internet Part 2: How it is implemented in TCP JY Le Boudec 2015 Contents 1. Congestion control in TCP 2. The fairness of TCP 3. The loss throughput formula 4. Explicit Congestion

More information

Fall 2012: FCM 708 Bridge Foundation I

Fall 2012: FCM 708 Bridge Foundation I Fall 2012: FCM 708 Bridge Foundation I Prof. Shamik Sengupta Instructor s Website: http://jjcweb.jjay.cuny.edu/ssengupta/ Blackboard Website: https://bbhosted.cuny.edu/ Intro to Computer Networking Transport

More information

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014 1 Congestion Control In The Internet Part 2: How it is implemented in TCP JY Le Boudec 2014 Contents 1. Congestion control in TCP 2. The fairness of TCP 3. The loss throughput formula 4. Explicit Congestion

More information

TCP : Fundamentals of Computer Networks Bill Nace

TCP : Fundamentals of Computer Networks Bill Nace TCP 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross Administrivia Lab #1 due now! Reminder: Paper Review

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

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014 1 Congestion Control In The Internet Part 2: How it is implemented in TCP JY Le Boudec 2014 Contents 1. Congestion control in TCP 2. The fairness of TCP 3. The loss throughput formula 4. Explicit Congestion

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

Lecture 15: Transport Layer Congestion Control

Lecture 15: Transport Layer Congestion Control Lecture 15: Transport Layer Congestion Control COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016, J.F Kurose

More information

Congestion Control. Brighten Godfrey CS 538 January Based in part on slides by Ion Stoica

Congestion Control. Brighten Godfrey CS 538 January Based in part on slides by Ion Stoica Congestion Control Brighten Godfrey CS 538 January 31 2018 Based in part on slides by Ion Stoica Announcements A starting point: the sliding window protocol TCP flow control Make sure receiving end can

More information

CSCD 330 Network Programming

CSCD 330 Network Programming CSCD 330 Network Programming Lecture 10 Transport Layer Continued Spring 2018 Reading: Chapter 3 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright 1996-2007 1 Last Time.

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

Answers to Sample Questions on Transport Layer

Answers to Sample Questions on Transport Layer Answers to Sample Questions on Transport Layer 1) Which protocol Go-Back-N or Selective-Repeat - makes more efficient use of network bandwidth? Why? Answer: Selective repeat makes more efficient use of

More information

ETSF05/ETSF10 Internet Protocols Transport Layer Protocols

ETSF05/ETSF10 Internet Protocols Transport Layer Protocols ETSF05/ETSF10 Internet Protocols Transport Layer Protocols 2016 Jens Andersson Transport Layer Communication between applications Process-to-process delivery Client/server concept Local host Normally initialiser

More information

file:///c:/users/hpguo/dropbox/website/teaching/fall 2017/CS4470/H...

file:///c:/users/hpguo/dropbox/website/teaching/fall 2017/CS4470/H... 1 of 9 11/26/2017, 11:28 AM Homework 3 solutions 1. A window holds bytes 2001 to 5000. The next byte to be sent is 3001. Draw a figure to show the situation of the window after the following two events:

More information

Transport Layer: Outline

Transport Layer: Outline Transport Layer: Outline Transport-layer services Multiplexing and demultiplexing Connectionless transport: UDP Principles of reliable data transfer Connection-oriented transport: TCP Segment structure

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

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

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste Outline 15-441 Computer Networking Lecture 18 TCP Performance Peter Steenkiste Fall 2010 www.cs.cmu.edu/~prs/15-441-f10 TCP congestion avoidance TCP slow start TCP modeling TCP details 2 AIMD Distributed,

More information

EECS 122, Lecture 19. Reliable Delivery. An Example. Improving over Stop & Wait. Picture of Go-back-n/Sliding Window. Send Window Maintenance

EECS 122, Lecture 19. Reliable Delivery. An Example. Improving over Stop & Wait. Picture of Go-back-n/Sliding Window. Send Window Maintenance EECS 122, Lecture 19 Today s Topics: More on Reliable Delivery Round-Trip Timing Flow Control Intro to Congestion Control Kevin Fall, kfall@cs cs.berkeley.eduedu Reliable Delivery Stop and Wait simple

More information

Transport Protocols and TCP

Transport Protocols and TCP Transport Protocols and TCP Functions Connection establishment and termination Breaking message into packets Error recovery ARQ Flow control Multiplexing, de-multiplexing Transport service is end to end

More information

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers Overview 15-441 Computer Networking TCP & router queuing Lecture 10 TCP & Routers TCP details Workloads Lecture 10: 09-30-2002 2 TCP Performance TCP Performance Can TCP saturate a link? Congestion control

More information

Networked Systems and Services, Fall 2017 Reliability with TCP

Networked Systems and Services, Fall 2017 Reliability with TCP Networked Systems and Services, Fall 2017 Reliability with TCP Jussi Kangasharju Markku Kojo Lea Kutvonen 4. Transmission Control Protocol (TCP) RFC 793 + more than hundred other RFCs TCP Loss Recovery

More information

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015 Congestion Control In The Internet Part 2: How it is implemented in TCP JY Le Boudec 2015 1 Contents 1. Congestion control in TCP 2. The fairness of TCP 3. The loss throughput formula 4. Explicit Congestion

More information

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline CPSC 360 Network Programming The Transport Layer Reliable data delivery & flow control in TCP Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc360

More information

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24 Lecture 20 Overview Last Lecture Transport Control Protocol (1) This Lecture Transport Control Protocol (2) Source: chapters 23, 24 Next Lecture Internet Applications Source: chapter 26 COSC244 & TELE202

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

Lecture 7: Flow Control"

Lecture 7: Flow Control Lecture 7: Flow Control" CSE 123: Computer Networks Alex C. Snoeren No class Monday! Lecture 7 Overview" Flow control Go-back-N Sliding window 2 Stop-and-Wait Performance" Lousy performance if xmit 1 pkt

More information

CSC 8560 Computer Networks: TCP

CSC 8560 Computer Networks: TCP CSC 8560 Computer Networks: TCP Professor Henry Carter Fall 2017 Project 2: mymusic You will be building an application that allows you to synchronize your music across machines. The details of which are

More information

CSCI Topics: Internet Programming Fall 2008

CSCI Topics: Internet Programming Fall 2008 CSCI 491-01 Topics: Internet Programming Fall 2008 Transport Layer Derek Leonard Hendrix College October 20, 2008 Original slides copyright 1996-2007 J.F Kurose and K.W. Ross 1 Chapter 3: Roadmap 3.1 Transport-layer

More information

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline CPSC 852 Internetworking The Transport Layer Reliable data delivery & flow control in TCP Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc852

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

More information

Computer Communication Networks Midterm Review

Computer Communication Networks Midterm Review Computer Communication Networks Midterm Review ICEN/ICSI 416 Fall 2018 Prof. Aveek Dutta 1 Instructions The exam is closed book, notes, computers, phones. You can use calculator, but not one from your

More information

DualRTT: Enhancing TCP Performance During Delay Spikes

DualRTT: Enhancing TCP Performance During Delay Spikes DualRTT: Enhancing TCP Performance During Delay Spikes Ph.D. School of Computer Science University of Oklahoma. Email: atiq@ieee.org Web: www.cs.ou.edu/~atiq Presentation at Tohoku University, Sendai,

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

CNT 6885 Network Review on Transport Layer

CNT 6885 Network Review on Transport Layer CNT 6885 Network Review on Transport Layer Jonathan Kavalan, Ph.D. Department of Computer, Information Science and Engineering (CISE), University of Florida User Datagram Protocol [RFC 768] no frills,

More information

CSCI Topics: Internet Programming Fall 2008

CSCI Topics: Internet Programming Fall 2008 CSCI 491-01 Topics: Internet Programming Fall 2008 Transport Layer Derek Leonard Hendrix College October 15, 2008 Original slides copyright 1996-2007 J.F Kurose and K.W. Ross 1 Chapter 3: Roadmap 3.1 Transport-layer

More information

RSC Part III: Transport Layer 3. TCP

RSC Part III: Transport Layer 3. TCP RSC Part III: Transport Layer 3. TCP Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part of the companion slides to the book Computer Networking: A Top Down

More information

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols Outline Development of reliable protocol Sliding window protocols Go-Back-N, Selective Repeat Protocol performance Sockets, UDP, TCP, and IP UDP operation TCP operation connection management flow control

More information

Lecture 8. TCP/IP Transport Layer (2)

Lecture 8. TCP/IP Transport Layer (2) Lecture 8 TCP/IP Transport Layer (2) Outline (Transport Layer) Principles behind transport layer services: multiplexing/demultiplexing principles of reliable data transfer learn about transport layer protocols

More information

Networked Systems and Services, Fall 2018 Chapter 3

Networked Systems and Services, Fall 2018 Chapter 3 Networked Systems and Services, Fall 2018 Chapter 3 Jussi Kangasharju Markku Kojo Lea Kutvonen 4. Transport Layer Reliability with TCP Transmission Control Protocol (TCP) RFC 793 + more than hundred other

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

Bandwidth Allocation & TCP

Bandwidth Allocation & TCP Bandwidth Allocation & TCP The Transport Layer Focus Application Presentation How do we share bandwidth? Session Topics Transport Network Congestion control & fairness Data Link TCP Additive Increase/Multiplicative

More information

COMP 431 Internet Services & Protocols. Transport Layer Protocols & Services Outline. The Transport Layer Reliable data delivery & flow control in TCP

COMP 431 Internet Services & Protocols. Transport Layer Protocols & Services Outline. The Transport Layer Reliable data delivery & flow control in TCP COMP 431 Internet Services & Protocols Transport Layer Protocols & Services Outline The Transport Layer Reliable data delivery & flow control in TCP Jasleen Kaur Fundamental transport layer services» Multiplexing/Demultiplexing»

More information

Documents. Configuration. Important Dependent Parameters (Approximate) Version 2.3 (Wed, Dec 1, 2010, 1225 hours)

Documents. Configuration. Important Dependent Parameters (Approximate) Version 2.3 (Wed, Dec 1, 2010, 1225 hours) 1 of 7 12/2/2010 11:31 AM Version 2.3 (Wed, Dec 1, 2010, 1225 hours) Notation And Abbreviations preliminaries TCP Experiment 2 TCP Experiment 1 Remarks How To Design A TCP Experiment KB (KiloBytes = 1,000

More information

COMP/ELEC 429/556 Introduction to Computer Networks

COMP/ELEC 429/556 Introduction to Computer Networks COMP/ELEC 429/556 Introduction to Computer Networks The TCP Protocol Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang T. S. Eugene Ng eugeneng at cs.rice.edu

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

More information

Network Protocols. Transmission Control Protocol (TCP) TDC375 Autumn 2009/10 John Kristoff DePaul University 1

Network Protocols. Transmission Control Protocol (TCP) TDC375 Autumn 2009/10 John Kristoff DePaul University 1 Network Protocols Transmission Control Protocol (TCP) TDC375 Autumn 2009/10 John Kristoff DePaul University 1 IP review IP provides just enough connected ness Global addressing Hop by hop routing IP over

More information

TCP: Transmission Control Protocol UDP: User Datagram Protocol TCP - 1

TCP: Transmission Control Protocol UDP: User Datagram Protocol   TCP - 1 TCP/IP Family of Protocols (cont.) TCP: Transmission Control Protocol UDP: User Datagram Protocol www.comnets.uni-bremen.de TCP - 1 Layer 4 Addressing: Port Numbers To talk to another port, a sender needs

More information

CSE 123A Computer Networks

CSE 123A Computer Networks CSE 123A Computer Networks Winter 2005 Lecture 14 Congestion Control Some images courtesy David Wetherall Animations by Nick McKeown and Guido Appenzeller The bad news and the good news The bad news: new

More information

CSC 4900 Computer Networks: TCP

CSC 4900 Computer Networks: TCP CSC 4900 Computer Networks: TCP Professor Henry Carter Fall 2017 Project 2: mymusic You will be building an application that allows you to synchronize your music across machines. The details of which are

More information

Transport Protocols. Raj Jain. Washington University in St. Louis

Transport Protocols. Raj Jain. Washington University in St. Louis Transport Protocols Raj Jain Washington University Saint Louis, MO 63131 Jain@cse.wustl.edu These slides are available on-line at: http://www.cse.wustl.edu/~jain/cse473-05/ 16-1 Overview q TCP q Key features

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

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Transport Layer Connection Oriented Transport: TCP Sec 3.5 Prof. Lina Battestilli Fall 2017 Transport Layer Chapter 3 Outline 3.1 Transport-layer Services

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

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

Transport Layer PREPARED BY AHMED ABDEL-RAOUF Transport Layer PREPARED BY AHMED ABDEL-RAOUF TCP Flow Control TCP Flow Control 32 bits source port # dest port # head len sequence number acknowledgement number not used U A P R S F checksum Receive window

More information

Reliable Transport II: TCP and Congestion Control

Reliable Transport II: TCP and Congestion Control Reliable Transport II: TCP and Congestion Control Stefano Vissicchio UCL Computer Science COMP0023 Recap: Last Lecture Transport Concepts Layering context Transport goals Transport mechanisms and design

More information

Homework 3 50 points. 1. Computing TCP's RTT and timeout values (10 points)

Homework 3 50 points. 1. Computing TCP's RTT and timeout values (10 points) Homework 3 50 points 1. Computing TCP's RTT and timeout values (10 points) Suppose that TCP's current estimated values for the round trip time (estimatedrtt) and deviation in the RTT (DevRTT) are 400 msec

More information

Problem Set 7 Due: Start of Class, November 2

Problem Set 7 Due: Start of Class, November 2 CS242 Computer Networks Handout # 14 Randy Shull October 26, 2017 Wellesley College Problem Set 7 Due: Start of Class, November 2 Reading: Kurose & Ross, Sections 3.6, 3.7, 3.8 Wireshark Lab [26] In these

More information

Flow and Congestion Control Marcos Vieira

Flow and Congestion Control Marcos Vieira Flow and Congestion Control 2014 Marcos Vieira Flow Control Part of TCP specification (even before 1988) Goal: not send more data than the receiver can handle Sliding window protocol Receiver uses window

More information

Computer Communications and Networks (COMN), 2017/18, Semester 1

Computer Communications and Networks (COMN), 2017/18, Semester 1 Computer Communications and Networks (COMN), 2017/18, Semester 1 Assignment Overview The overall goal of this assignment is to implement and evaluate different protocols for achieving end to end reliable

More information

Chapter III: Transport Layer

Chapter III: Transport Layer Chapter III: Transport Layer UG3 Computer Communications & Networks (COMN) Mahesh Marina mahesh@ed.ac.uk Slides thanks to Myungjin Lee and copyright of Kurose and Ross Principles of congestion control

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

Impact of transmission errors on TCP performance. Outline. Random Errors

Impact of transmission errors on TCP performance. Outline. Random Errors Impact of transmission errors on TCP performance 1 Outline Impact of transmission errors on TCP performance Approaches to improve TCP performance Classification Discussion of selected approaches 2 Random

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

Computer Networking Introduction

Computer Networking Introduction Computer Networking Introduction Halgurd S. Maghdid Software Engineering Department Koya University-Koya, Kurdistan-Iraq Lecture No.11 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and

More information

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 ocket door point-to-point: one sender, one receiver reliable, in-order byte steam: no message boundaries pipelined: TCP congestion and flow control set window

More information

NWEN 243. Networked Applications. Layer 4 TCP and UDP

NWEN 243. Networked Applications. Layer 4 TCP and UDP NWEN 243 Networked Applications Layer 4 TCP and UDP 1 About the second lecturer Aaron Chen Office: AM405 Phone: 463 5114 Email: aaron.chen@ecs.vuw.ac.nz Transport layer and application layer protocols

More information

Congestion. Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets limited resources

Congestion. Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets limited resources Congestion Source 1 Source 2 10-Mbps Ethernet 100-Mbps FDDI Router 1.5-Mbps T1 link Destination Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets

More information

a) Adding the two bytes gives Taking the one s complement gives

a) Adding the two bytes gives Taking the one s complement gives EE33- solutions for homework #3 (3 problems) Problem 3 Note, wrap around if overflow One's complement = To detect errors, the receiver adds the four words (the three original words and the checksum) If

More information

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure Correcting mistakes Go-back-N: big picture: sender can have up to N unacked packets in pipeline rcvr only sends cumulative acks doesn t ack packet if there s a gap sender has r for oldest unacked packet

More information

Internet Networking recitation #10 TCP New Reno Vs. Reno

Internet Networking recitation #10 TCP New Reno Vs. Reno recitation #0 TCP New Reno Vs. Reno Spring Semester 200, Dept. of Computer Science, Technion 2 Introduction Packet Loss Management TCP Reno (RFC 258) can manage a loss of at most one packet from a single

More information

8. TCP Congestion Control

8. TCP Congestion Control 8. TCP Congestion Control 1 TCP Congestion Control Slow-start increase Multiplicative decrease Congestion avoidance Measurement of variation Exponential timer backoff 2002 Yanghee Choi 2 Congestion Control

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

User Datagram Protocol (UDP):

User Datagram Protocol (UDP): SFWR 4C03: Computer Networks and Computer Security Feb 2-5 2004 Lecturer: Kartik Krishnan Lectures 13-15 User Datagram Protocol (UDP): UDP is a connectionless transport layer protocol: each output operation

More information

TCP/IP Protocol Suite 1

TCP/IP Protocol Suite 1 TCP/IP Protocol Suite 1 Stream Control Transmission Protocol (SCTP) TCP/IP Protocol Suite 2 OBJECTIVES: To introduce SCTP as a new transport-layer protocol. To discuss SCTP services and compare them with

More information

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, steam: r Development of reliable protocol r Sliding window protocols

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, steam: r Development of reliable protocol r Sliding window protocols Outline r Development of reliable protocol r Sliding window protocols m Go-Back-N, Selective Repeat r Protocol performance r Sockets, UDP, TCP, and IP r UDP operation r TCP operation m connection management

More information

Suprakash Datta. Office: CSEB 3043 Phone: ext Course page:

Suprakash Datta. Office: CSEB 3043 Phone: ext Course page: CSE 3214: Computer Networks Protocols and Applications Suprakash Datta datta@cse.yorku.ca Office: CSEB 3043 Phone: 416-736-2100 ext 77875 Course page: http://www.cse.yorku.ca/course/3214 These slides are

More information