TCP.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 2 TCP/IP Fundamentals.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transmission Control Protocol (TCP)
Transport Layer3-1 TCP. Transport Layer3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection.
1 Transport Layer Lecture 9 Imran Ahmed University of Management & Technology.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
CS3505 The Internet and Info Hiway transport layer protocols : TCP/UDP.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
TRANSPORT LAYER  Session multiplexing  Segmentation  Flow control (TCP)  Connection-oriented (TCP)  Reliability (TCP)
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
Transport Layer 3-1 outline r TCP m segment structure m reliable data transfer m flow control m congestion control.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Gursharan Singh Tatla Transport Layer 16-May
The Transport Layer.
1 Transport Layer Computer Networks. 2 Where are we?
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
TCP Transport Control Protocol Information management 2 Groep T Leuven – Information department 2/35 Introduction UDP provides the connection.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
TCP/IP. TCP/IP Protocol Suite (1) Physical layer Data-link layer –PPP, ARP, RARP Network layer – IP, ICMP, IGMP, BootP Transport layer _ TCP, UDP, RTP.
Copyright 2002, S.D. Personick. All Rights Reserved.1 Telecommunications Networking II Topic 20 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
1 TCP: Reliable Transport Service. 2 Transmission Control Protocol (TCP) Major transport protocol used in Internet Heavily used Completely reliable transfer.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
Transport Protocols.
CIS679: TCP and Multimedia r Review of last lecture r TCP and Multimedia.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
Computer Networks 1000-Transport layer, TCP Gergely Windisch v spring.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
TCP/IP.
Chapter 9: Transport Layer
09-Transport Layer: TCP Transport Layer.
(Kapitel 23: Congestion control and QoS översiktligt.)
DMET 602: Networks and Media Lab
TCP Lecture 4.
Internet Protocol (IP) / Transmission Control Protocol (TCP)
Instructor Materials Chapter 9: Transport Layer
COMP2322 Lab 6 TCP Steven Lee Mar 29, 2017.
ECE4605: IP & TCP.
Introduction to Networks
Transmission Control Protocol (TCP)
5. End-to-end protocols (part 1)
Transmission Control Protocol (TCP)
TCP Protocol Slides originally from Williamson at Calgary
TCP.
Process-to-Process Delivery
TCP.
PART 5 Transport Layer Computer Networks.
Magda El Zarki Professor, ICS UC, Irvine
Internet and Intranet Protocols and Applications
TCP - Part I Karim El Defrawy
Process-to-Process Delivery:
Chapter 17. Transport Protocols
PART V Transport Layer.
PART 5 Transport Layer.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Introduction to Computer Networks
Lecture 21 and 22 5/29/2019.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Process-to-Process Delivery: UDP, TCP
Transport Layer 9/22/2019.
Presentation transcript:

TCP

Transmission Control Protocol (TCP) End-to-end transport protocol Responsible for reliability, congestion control, flow control, and sequenced delivery Applications that use TCP: http (web), telnet, ftp (file transfer), smtp (email), chat Applications that don’t: multimedia (typically) – use UDP instead

Ports, End-points, & Connections IP Layer TCP UDP http ftp smtptelnet A1 A2 A3 Transport Port IP address Protocol ID Thus, an end-point is represented by (IP address,Port) Ports can be re-used between transport protocols A connection is (SRC IP address, SRC port, DST IP address, DST port) Same end-point can be used in multiple connections

TCP Connection Establishment Connection Maintenance Reliability Congestion control Flow control Sequencing Connection Termination

Active and Passive Open How do applications initiate a connection? One end (server) registers with the TCP layer instructing it to “accept” connections at a certain port The other end (client) initiates a “connect” request which is “accept”-ed by the server

Connection Establishment & Termination 3-way handshake used for connection establishment Randomly chosen sequence number is conveyed to the other end Similar FIN, FIN+ACK exchange used for connection termination Server does passive open Accept connection request Send acceptance Start connection Active open Send connection request SYN SYN+ACK ACK DATA

Fundamental Mechanism ack data data retx Simple stop and go protocol Timeout based reliability (loss recovery) Multiple unacknowledged packets (W) ack data Sliding Window Protocol: 1 2 3 4 5 6 7 8 9 10 11 12 ….

Congestion Control Slow Start Start with W=1 For every ACK, W=W+1 Congestion Avoidance (linear increase) For every ACK, W = W+1/W Congestion Control (multiplicative decrease) ssthresh = W/2 W = 1 Alternative: Fall to W/2 and start congestion avoidance directly

Why LIMD? (fairness) W=1 W=W/2 100 10 diff = 90 1 1 diff = 0 Problem? – inefficient W=W/2 50 5 diff = 45 51 6 diff = 45 52 7 diff = 45 .. 73 28 diff = 45 37.5 14 diff = 23.5 61.75 38.25 diff = 23.5 30.85 19.65 diff = 11.2

Reliability (Loss Recovery) ack data Sequence Numbers TCP uses cumulative Acknowledgments (ACKs) Next expected in-sequence packet sequence number Pros and cons? Piggybacking Timeout calculation Rttavg = k*Rttavg + (1-k)*Rttsample RTO = Rttavg + 4*Rttdeviation 5 1 2 3 4 3 1 2 4

Flow Control Prevent sender from overwhelming the receiver Receiver in every ACK advertises the available buffer space at its end Window calculation MIN(congestion control window, flow control window)

Sequencing Byte sequence numbers TCP receiver buffers out of order segments and reassembles them later Starting sequence number randomly chosen during connection establishment Why? 3 1 2 4 1 given to app 2 given to app Loss 4 buffered (not given to app) 3 & 4 given to app 4 discarded

TCP Segment Format 16 bit SRC Port 16 bit DST Port 32 bit sequence number 32 bit ACK number HL resvd flags 16 bit window size Flags: URG, ACK, PSH, RST, SYN, FIN 16 bit TCP checksum 16 bit urgent pointer Options (if any) Data

TCP Flavors TCP-Tahoe TCP-Reno TCP-newReno TCP-Vegas, TCP-SACK W=1 adaptation on congestion TCP-Reno W=W/2 adaptation on fast retransmit, W=1 on timeout TCP-newReno TCP-Reno + fast recovery TCP-Vegas, TCP-SACK

TCP Tahoe Slow-start Congestion control upon time-out or DUP-ACKs When the sender receives 3 duplicate ACKs for the same sequence number, sender infers a loss Congestion window reduced to 1 and slow-start performed again Simple Congestion control too aggressive

TCP Reno Tahoe + Fast re-transmit Packet loss detected both through timeouts, and through DUP-ACKs Sender reduces window by half, the ssthresh is set to half of current window, and congestion avoidance is performed (window increases only by 1 every round-trip time) Fast recovery ensures that pipe does not become empty Window cut-down to 1 (and subsequent slow-start) performed only on time-out

TCP New-Reno TCP-Reno with more intelligence during fast recovery In TCP-Reno, the first partial ACK will bring the sender out of the fast recovery phase Results in timeouts when there are multiple losses In TCP New-Reno, partial ACK is taken as an indication of another lost packet (which is immediately retransmitted). Sender comes out of fast recovery only after all outstanding packets (at the time of first loss) are ACKed

User Datagram Protocol (UDP) Simpler cousin of TCP No reliability, sequencing, congestion control, flow control, or connection management! Serves solely as a labeling mechanism for demultiplexing at the receiver end Use predominantly by protocols that do no require the strict service guarantees offered by TCP (e.g. real-time multimedia protocols) Additional intelligence built at the application layer if needed

UDP Header Src Port Dst Port Length: length of header + data (min = 8) Checksum

Puzzle Two great mathematicians S & P S knows the sum of two positive integers (> 1) x and y P knows the product of x and y S calls P and says “You cannot find the two numbers” P replies “I know the two numbers” S responds “I know the two numbers too” What are the two numbers?!!