CS144 Review Session 4 April 25, 2008 Ben Nham

Slides:



Advertisements
Similar presentations
CSCI-1680 Transport Layer II Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
Advertisements

Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
1 Transport Protocols & TCP CSE 3213 Fall April 2015.
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.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
1 Transport Layer Lecture 9 Imran Ahmed University of Management & Technology.
1 CS492B Project #2 TCP Tutorial # Jin Hyun Ju.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transport Layer3-1 Summary of Reliable Data Transfer Checksums help us detect errors ACKs and NAKs help us deal with errors If ACK/NAK has errors sender.
Winter 2008CS244a Handout #61 CS244a: An Introduction to Computer Networks Handout 6: The Transport Layer, Transmission Control Protocol (TCP), and User.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
1 TCP CSE May TCP Services Flow control Connection establishment and termination Congestion control 2.
Chapter 3 outline 3.1 transport-layer services
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Transport Layer Transport Layer: TCP. Transport Layer 3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
1 Announcement r Project 2 out m Much harder than project 1, start early! r Homework 2 due next Tuesday.
Announcement Project 2 out –Much harder than project 1, start early! Homework 2 due next Tu.
TDC375 Winter 03/04 John Kristoff - DePaul University 1 Network Protocols Transmission Control Protocol (TCP)
Transport Layer3-1 Data Communication and Networks Lecture 7 Transport Protocols: TCP October 21, 2004.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Ch 23 Ameera Almasoud Based on Data Communications and Networking, 4th Edition. by Behrouz A. Forouzan, McGraw-Hill Companies, Inc., 2007.
1 Transport Layer Computer Networks. 2 Where are we?
Network LayerII-1 RSC Part III: Transport Layer 3. TCP Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part.
Transport Layer1 Reliable Transfer Ram Dantu (compiled from various text books)
3: Transport Layer3b-1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection m MSS: maximum.
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
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 : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
TCP Lecture 13 November 13, TCP Background Transmission Control Protocol (TCP) TCP provides much of the functionality that IP lacks: reliable service.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
1 TCP: Reliable Transport Service. 2 Transmission Control Protocol (TCP) Major transport protocol used in Internet Heavily used Completely reliable transfer.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
CS244A Midterm Review Ben Nham Some slides derived from: David Erickson (2007) Paul Tarjan (2007)
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Copyright © Lopamudra Roychoudhuri
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
September 26 th, 2013 CS1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights.
ECE 4110 – Internetwork Programming
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
TCP as a Reliable Transport. How things can go wrong… Lost packets Corrupted packets Reordered packets …Malicious packets…
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
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.
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.
Chapter 3 Transport Layer
Chapter 3 outline 3.1 Transport-layer services
DMET 602: Networks and Media Lab
CS 1652 Jack Lange University of Pittsburgh
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 full duplex data:
Chapter 3 outline 3.1 transport-layer services
Introduction to Networks
TCP.
CS1652 TCP Jack Lange University of Pittsburgh
Review: UDP demultiplexing TCP demultiplexing Multiplexing?
Chapter 5 TCP Transmission Control
CS4470 Computer Networking Protocols
Transportation Layer.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transport Layer: Congestion Control
TCP flow and congestion control
Chapter 3 Transport Layer
Presentation transcript:

CS144 Review Session 4 April 25, 2008 Ben Nham TCP Review CS144 Review Session 4 April 25, 2008 Ben Nham

Announcements Upcoming dates Wed, 4/30: Lab 3 due, Lab 4 out Fri, 5/2: Midterm Review Mon, 5/5: In-class midterm Wed, 5/14: Lab 4 due Lab 3 is more complex than Lab 1 or Lab 2, so start now

TCP Overview Network layer protocol Properties Full-duplex connection Two-way communication between (IP, port)src and (IP, port)dst Connection setup before any transfer Connection teardown after transfer finishes Each connection creates state in sending and receiving hosts How is this different than with a VC network? Reliable: resends lost/corrupted segments In-order: buffers at sender and receiver Stream of bytes: looks like a file you can R/W to

TCP Segments IP Data Provide illusion of a stream of bytes, but we actually are going over a datagram network using packets (IP) Data is carried in TCP segments and placed into an IP packet TCP Hdr TCP Data IP Hdr 15 31 Src port Dst port Sequence # Ack Sequence # HLEN 4 RSVD 6 URG ACK PSH RST SYN FIN Window Size Checksum Urg Pointer (TCP Options) TCP Data Credit: CS244A Handout 8

Sequence Numbers ISN (initial sequence number) Host A Seq number = First byte of segment TCP Data TCP Hdr Ack seq number = next expected byte TCP Data TCP Hdr Host B Credit: CS244A Handout 8

Three-Way Handshake Exchange initial sequence numbers at connection startup Client’s ISN = x Server’s ISN = y Send a special segment with SYN bit set (“synchronize”) SYN takes up one “byte” SYN SEQ = x SYN/ACK SEQ = y, ACK = x+1 ACK = y+1 Client Server

Shutdown Either side can initiate shutdown Can shutdown only one side of connection, if desired TIME_WAIT state to handle case of whether last ACK was lost FIN SEQ = v ACK ACK = v+1 ACK = w+1 FIN SEQ = w

Sockets and TCP socket, bind socket, bind SYN connect listen SYN/ACK accept ACK send/recv send/recv … FIN shutdown (SHUT_RDWR) shutdown (SHUT_RDWR) ACK FIN ACK

Sender Window Window size: maximum amount of unacked bytes/segments Usually dynamically adjusted in response to congestion Must be smaller than receiver window Local state maintained at sender Window Size Round Trip Time Sender Receiver ACK ACK ACK Credit: CS244A Handout 8

Example: Ideal TCP Transfer Rate Assume an ideal TCP connection between two hosts A and B. What is the maximum transmission rate between the two hosts in terms of: W, the window size in bytes RTT, the round trip time R, the transmission rate of the link

Solution: Ideal TCP Transfer Rate ACK Window Size RTT Round-Trip Time Window Size Window Size Sender Receiver ACK ACK ACK (1) RTT > Window Size (2) RTT = Window Size So ideal transfer rate is W/RTT—independent of link BW! Credit: CS244A Handout 8

Receiver Window Advertised to sender in TCP header Amount of out-of-order bytes the receiver will buffer Sender window cannot be larger than advertised receiver window Example RecvWind = receiver window in bytes Last ack to sequence number x Then receiver will buffer any bytes in the sequence number range [x, x+RecvWind)

Example: TCP RST Attack Suppose we have a long-lived TCP connection (like a BGP session), and we want to maliciously terminate it Suppose we know the IP and port numbers for both sides of the connection Then sending a TCP RST packet will immediately terminate the session Given a receiver window size of 8K, what is the chance that a RST packet with a random sequence number will terminate the connection? How many RST packets are needed to span the entire sequence number space? Using 58 byte RST packets on a 10 Mbps link, how long does it take to generate this number of packets?

Solution: TCP RST Attack Given a receiver window size of 8K, what is the chance that a RST packet with a random sequence number will terminate the connection? 213/232 = 2-19 = 1 in half a million chance How many RST packets are needed to span the entire sequence number space? 219 packets Using 58 byte RST packets on a 10 Mbps link, how long does it take to generate this number of packets? 219 packets * 58 bytes/packet * 8 bits/byte / 10 Mbps = 24 seconds

Flow Control Don’t want to overwhelm the network or the receiver with packets Adjust cwnd (congestion window) dynamically in response to loss events Sender window = min(cwnd, rwnd) Congestion window resized using AIMD When connection starts, start with window size of 1 As long as segments are acked: Increase window size by 1 segment size every RTT (additive increase) If loss is detected: Halve window size (multiplicative decrease)

TCP Sawtooth Timeouts Window Size halved t Src Dest Credit: CS244A Handout 8

Optimizations Slow start initialization Increase cwnd by MSS for every ack (doubles cwnd for every RTT) Suppose we detect first loss at window size W Set ssthresh := W/2 Set cwnd := 1 Use slow start until our window size is ssthresh Then use AIMD (congestion avoidance mode) Fast retransmit and fast recovery if we get three duplicate acks during slow start Suppose we send 1, 2, 3, 4, 5, … , 8, 9, 10 Get acks 1, 2, 3, 4, 5, …, 8, 8, 8 Probably 9th segment has been lost, so: Resend it before retransmit timer expires (fast retransmit) Set cwnd := ssthresh rather than 1 and go into AIMD (fast recovery)

TCP Sawtooth With Optimizations halved Triple-Dup Ack t Window Size Loss Slow Start Slow Start Credit: CS244A Handout 8

Example: Reaching Maximum Congestion Window Size with Slow Start Assume this TCP implementation: MSS = 125 bytes RTT is fixed at 100 ms (even when buffers start filling) Uses slow start with AIMD Analyze one flow between A and B, where bottleneck link is 10 Mbps Ignore receiver window What is the maximum congestion window size? For one flow (ideally), W/RTT = rate W = (100 ms * 10 Mbps) / (8 bits/byte) = 125000 bytes How long does it take to reach this size? Slow start grows cwnd exponentially, starting from one MSS Find n s.t. 125 * 2n >= 125000 n = 10 Then it takes n * RTT = 1 s to reach the max cwnd size

Detecting Losses Each segment sent has a retransmit timer If a segment’s retransmit timer expires before ack for that segment arrive, assume loss Retransmission timeout (RTO) for timer based on exponential weighted moving average of the previous RTTs and variance between RTT samples EstRTTk = (1 − α) · EstRTTk-1 + α · SampleRTTk Recommended α is 0.125 EstRTT is an EWMA of the SampleRTT DevRTTk = (1 − β ) · DevRTTk-1 + β · |SampleRTTk − EstRTTk| Recommended β is 0.25 DevRTT is an EWMA of the difference between sampled and estimated RTT RTO = EstRTT + 4 · DevRTT

Lab 3 Operation ACK packets Client Server handle_ack STDIN STDOUT handle_pkt Send Buffer Receiver State timer handle_pkt Data packets