This sequence diagram was generated with EventStudio System Designer (

Similar documents
TCP Congestion Control 65KB W

Intro to LAN/WAN. Transport Layer

TCP over Wireless PROF. MICHAEL TSAI 2016/6/3

COMP/ELEC 429/556 Introduction to Computer Networks

Lecture 3: The Transport Layer: UDP and TCP

Transport Protocols and TCP

23-3 TCP. Topics discussed in this section: TCP Services TCP Features Segment A TCP Connection Flow Control Error Control 23.22

Transport Protocols and TCP: Review

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

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

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

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

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

Computer Networking Introduction

CS321: Computer Networks Congestion Control in TCP

TCP Congestion Control

TCP Congestion Control

Transport Protocols & TCP TCP

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

Reliable Transport II: TCP and Congestion Control

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018

ECE 461 Internetworking. Problem Sheet 6

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

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

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

Fast Retransmit. Problem: coarsegrain. timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission

cs/ee 143 Communication Networks

Fall 2012: FCM 708 Bridge Foundation I

a. (4pts) What general information is contained in a LSR-PDU update that A might send?

The Transport Layer: TCP & Congestion Control

Transmission Control Protocol (TCP)

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

Q23-5 In a network, the size of the receive window is 1 packet. Which of the follow-ing protocols is being used by the network?

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

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

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

Lecture 4: Congestion Control

CS3600 SYSTEMS AND NETWORKS

Internet Networking recitation #10 TCP New Reno Vs. Reno

TCP reliable data transfer. Chapter 3 outline. TCP sender events: TCP sender (simplified) TCP: retransmission scenarios. TCP: retransmission scenarios

ECE4110, Internetwork Programming, QUIZ 2 - PRACTICE Spring 2006

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

CS4700/CS5700 Fundamentals of Computer Networks

Name Student ID Department/Year. Midterm Examination. Introduction to Computer Networks Class#: 901 E31110 Fall 2007

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

Chapter III: Transport Layer

Bandwidth Allocation & TCP

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Chapter 24. Transport-Layer Protocols

Chapter 3 Transport Layer

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018

Transport Layer Review

Networked Systems and Services, Fall 2017 Reliability with TCP

Lecture (11) OSI layer 4 protocols TCP/UDP protocols

Managing Caching Performance and Differentiated Services

Advanced Computer Networks

CS4700/CS5700 Fundamentals of Computer Networks

Communication Networks

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

6. The Transport Layer and protocols

Midterm Review. EECS 489 Computer Networks Z. Morley Mao Monday Feb 19, 2007

Outline. CS5984 Mobile Computing

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

Computer Networks. Wenzhong Li. Nanjing University

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

9th Slide Set Computer Networks

ECE 435 Network Engineering Lecture 10

Outline. Connecting to the access network: DHCP and mobile IP, LTE. Transport layer: UDP and TCP

CSE 473 Introduction to Computer Networks. Midterm Exam Review

Recap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness

Chapter 3- parte B outline

TCP Review. Carey Williamson Department of Computer Science University of Calgary Winter 2018

Page 1. Review: Internet Protocol Stack. Transport Layer Services. Design Issue EEC173B/ECS152C. Review: TCP

TCP/IP Protocol Suite 1

Connectionless and Connection-Oriented Protocols OSI Layer 4 Common feature: Multiplexing Using. The Transmission Control Protocol (TCP)

TCP. Second phase of the project. Connection management. Flow control and congestion. Emphasizing on the followings: Three parameters: At any time

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

Networked Systems and Services, Fall 2018 Chapter 3

The Transport Control Protocol (TCP)

CSC 4900 Computer Networks: TCP

UNIT IV TRANSPORT LAYER

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

Transport Layer Protocols TCP

Flow and Congestion Control Marcos Vieira

Problem 7. Problem 8. Problem 9

CS457 Transport Protocols. CS 457 Fall 2014

TCP based Receiver Assistant Congestion Control

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

Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service

CS 356: Introduction to Computer Networks. Lecture 16: Transmission Control Protocol (TCP) Chap. 5.2, 6.3. Xiaowei Yang

8. TCP Congestion Control

Lecture 15: Transport Layer Congestion Control

PERFORMANCE COMPARISON OF THE DIFFERENT STREAMS IN A TCP BOTTLENECK LINK IN THE PRESENCE OF BACKGROUND TRAFFIC IN A DATA CENTER

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 30, 2018

Answers to Sample Questions on Transport Layer

Performance Analysis of TCP Variants

Advanced Computer Networks

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 10

Lecture 11. Transport Layer (cont d) Transport Layer 1

Transcription:

Net App This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio). We have already seen that TCP connection starts up in slow start mode, geometrically increasing the congestion window (cwnd) until it crosses the slow start threshold (ssthresh). Once cwnd is greater that ssthresh, TCP enters the congestion avoidance mode of operation. In this mode, the primary objective is to maintain high throughput without causing congestion. If TCP detects segment loss, it assumes that congestion has been detected over the internet. As a corrective action, TCP reduces its data flow rate by reducing cwnd. After reducing cwnd, TCP goes back to slow start. initialization awaits client socket connections. socket initialization create Application creates Closed The socket is created in the Closed state seq_num = 0 Initial sequence number is set to 0 Active_Open Application wishes to communicate with a destination server using a TCP connection. The application opens a socket for the connection in active mode. In this mode, a TCP connection will be attempted with the server. Typically, the client will use a well known port number to communicate with the remote. For example, HTTP uses port 80. initiated three way handshake to establish a TCP connection SYN src = _Port, dst = _Port, seq_num = 0 SYN Sent SYN+ src = _Port, dst = _Port, seq_num = 100, ack_num = 1, window = 65535 src = _Port, dst = _Port, ack_num = 101, window = 5000 Established sets the SYN bit in the TCP header to request a TCP connection. The sequence number field is set to 0. Since the SYN bit is set, this sequence number is used as the initial sequence number transitions to the SYN Sent state receives the "SYN+" TCP segment now acknowledges the first segment, thus completing the three way handshake. The receive window is set to 5000. Ack sequence number is set to 101, this means that the next expected sequence number is 101. At this point, the client assumes that the TCP connection has been established Slow start cwnd = 512 bytes (1 segment) TCP connection begins with a congestion window size of 1 segment

Net App ssthresh = 65535 bytes TCP session begins with 'Slow Start' Slow Start TCP congestion window grows from 512 bytes (1 segment) to 64947 The slow start threshold starts with 64 Kbytes as the threshold value. Click on the action title for a detailed description of the TCP slow start. Since cwnd < ssthresh, TCP state is slow start TCP congestion window grows at the start of the session if no segment losses are detected during slow start). During slow start the congestion window was being incremented by 1 segment for every TCP Ack from the other end. About to exit slow start seq_num = 100000, seq_num = 100512, ack_num = 101024, window = 80000 Application sends data for transmission over the TCP is split into s. The segments are sent over the Internet cwnd = 64947 + 512 = 65459 Since TCP is in slow start, every ack leads to the window growing by one segment. seq_num = 101024, At this point cwnd (=65459) > ssthresh (=65535) thus TCP changes state to congestion avoidance. Now TCP window growth will be much more conservative. If no segment or ack losses are detected, the congestion window will grow no more than one segment per roundtrip. (Compare this with geometric growth of 1 segment per TCP ack in slow start) More data is received from the client application data is split into TCP segments seq_num = 101536, ack_num = 102048, window = 80000 cwnd is incremented using the formula: cwnd = cwnd + (segment_size segment_size) / cwnd) cwnd = 65459 + [(512 * 512) / 65459] = 65459 + 4 = 65463 Now TCP is in congestion avoidance mode, so the TCP window advances very slowly. Here the window increased by only 4 bytes.

Net App to be sent to server seq_num = 102048, TCP session sends out the data as a single segment A TCP segment is lost AckTimer AckTimer ssthresh = 65463/2 = 32731 TCP session starts a ack timer, awaiting the TCP ack for this segment. Note: The above timer is started for every segment. The timer is not shown at other places as it does not play a role in our analysis. TCP times out for a TCP from the other end. This will be treated as a sign of congestion by TCP When TCP detects congestion, it stores half of the current congestion window in ssthresh variable. In this case, ssthresh has been reduced from 65535 to 32731. This signifies that TCP now has less confidence on the network's ability to support big window sizes. Thus if the window size falls due to congestion, rapid window size increases will be carried out only until the window reaches 32731. Once this lowered ssthresh value is reached, window growth will be much slower. Back to slow start cwnd = 512 bytes (1 segment) Slow Start seq_num = 102048, Since current congestion has been detected by timeout, TCP takes the drastic action of reducing the congestion window to 1. As you can see, this will have a big impact on the throughput. cwnd (=1) is now lower than ssthresh (=32731) so TCP goes back to slow start. ack_num = 102560 cwnd = 512 + 512 = 1024 Since TCP is in slow start, a TCP acknowledgement results in the window growing by one segment TCP window continues to grow exponentially until it reaches the ssthresh (=32731) value size = 3072 Six TCP segments are transmitted in the slow start mode

Net App cwnd = 32730 + 512 = 33242 Ack for the first two segments is received TCP is in slow start so the congestion window is increased by one segment Back to congestion avoidance cwnd = 33242 + (512*512)/33242 = 33242 + 8 = 33250 cwnd = 33250 + (512*512)/33250 = 33250 + 8 = 33258 Now cwnd (=33242") > ssthresh (=32731), thus the TCP session moves into congestion avoidance Ack for the next two segments is received Now the TCP window is growing very slowly by approximately 8 bytes per ack Ack for the last two segments is received Congestion window continues to advance at a slow rate closes TCP connection to server TCP connection release Close application wishes to release the TCP connection FIN Wait 1 FIN Wait 2 FIN sends a TCP segment with the FIN bit set in the TCP header changes state to FIN Wait 1 state receives the changes state to FIN Wait 2. In this state, the TCP connection from the client to server is closed. now waits close of TCP connection from the server end to client TCP connection release FIN receives FIN sends Close_Timer Time Wait Close_Timer starts a timer to handle scenarios where the last ack has been lost and server resends FIN waits in Time Wait state to handle a FIN retry Close timer has expired. Thus the client end connection can be closed too. Closed

App Net delete This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio).