Chapter 3 Transport Layer

Documenti analoghi
Chapter 3 Transport Layer

Telematica di Base. IL Livello di Trasporto TCP

Livello trasporto. Controllo del flusso e della congestione

TCP: apertura della connessione. Apertura connessione (handshake)

Controllo della congestione

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

Telematica di Base. Il livello di trasporto

Lo sniffer. questo sconosciuto! Corso di Reti di Calcolatori Architetture e Servizi A.A. 2010/11. Introduzione allo sniffing TCP

Reti di Calcolatori:

Reti e Protocolli rassegna (II)

MOS-oriented design of the VoIP service

I protocolli UDP e TCP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 3

Transport Layer & TCP/UDP

Livello di trasporto e TSAP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581

Livello di trasporto: TCP, controllo flusso, controllo congestione

TCP: generalità RFCs: 793, 1122, 1323, 2018, 2581

TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581

Riferimenti. I protocolli TCP e UDP. Sorgente TCP. Principi Fondamentali. TCP header. Ricevitore TCP

Il livello trasporto: controllo di congestione in TCP

Single-rate three-color marker (srtcm)

Accesso Mul*plo - modelli

Programmazione in Rete

Il livello 4: TCP, UDP

Controllo di congestione

Transmission Control Protocol: TCP

Corso di Reti di Telecomunicazioni

Scheduling. Scheduler. Class 1 Class 2 Class 3 Class 4. Scheduler. Class 1 Class 2 Class 3 Class 4. Scheduler. Class 1 Class 2 Class 3 Class 4

Il Livello Trasporto III 3. Corso di RETI DI CALCOLATORI (9 CFU) a.a II anno / II semestre. Il Livello Trasporto. Il Livello Trasporto

TCP over wireless Sistemi Wireless, a.a 2011/2012

Finite Model Theory / Descriptive Complexity: bin

Reti di Calcolatori in Tecnologia IP

Il livello di trasporto

Reti di Calcolatori:

URG: dati urgenti (solitam. non usato) ACK: ACK # valido PSH: push data now (solitam. non usato)

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Funzioni del protocollo TCP

TCP e UDP: il livello trasporto dell'architettura TCP/IP. OSI vs. TCP/IP. Transport layer. A.Lioy - Politecnico di Torino ( ) A-1

TCP e UDP: il livello trasporto dell'architettura TCP/IP

Valutazione del TCP con NS2. Gaia Maselli

Protocollo TCP. politiche di trasmissione e di controllo della congestione

Constant Propagation. A More Complex Semilattice A Nondistributive Framework

Appunti del corso di PROF. G. BONGIOVANNI

Livello trasporto in Internet

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano

Lo strato di Trasporto

Livello trasporto in Internet

TCP/IP: una breve introduzione

Livello trasporto in Internet

TCP/IP: una breve introduzione

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Livello trasporto. Servizi del livello trasporto

Il livello di trasporto

Capitolo 3 - parte 4. Corso Reti ed Applicazioni Mauro Campanella

Livello trasporto in Internet

Livello trasporto in Internet

Livello trasporto in Internet

Controllo di congestione

IL LIVELLO TRASPORTO Protocolli TCP e UDP

UNIVERSITÀ DEGLI STUDI DI TORINO

Livello trasporto in Internet

Il livello trasporto: controllo di flusso in TCP

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Reti di Comunicazione e Internet

OSI vs. TCP/IP. TCP e UDP: il livello trasporto dell'architettura TCP/IP. Transport layer. Transport layer. Cosa misuriamo?

Il livello trasporto: Introduzione e protocollo UDP

API Socket di Berkeley

protocollo TCP versioni e implementazioni

IM-IU v0.1. alternata e continua. pag. 1 / 5

Network Address Translation (NAT)

Livello trasporto in Internet

Probability Distributions T O P I C # 1

Reti di Calcolatori. IL LIVELLO TRASPORTO Protocolli TCP e UDP

Two-rate three-color marker (trtcm)

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

TCP e UDP: il livello trasporto dell'architettura TCP/IP. OSI vs. TCP/IP. Transport layer. A.Lioy - Politecnico di Torino ( ) 1

R. Cusani - F. Cuomo, Telecomunicazioni - Data link layer: Protocolli, Maggio 2010

Livello di trasporto: TCP

Tecnologie e Protocolli per Internet 1 Introduzione al NAT Network Address Translation

IL GIOVANE HOLDEN FRANNY E ZOOEY NOVE RACCONTI ALZATE LARCHITRAVE CARPENTIERI E SEYMOUR INTRODUZIONE BY JD SALINGER

Strato di trasporto in Internet

Argomenti: ! Servizi dello strato di trasporto! multiplexing/demultiplexing! Servizio senza connessione: UDP

PARTE 5 LIVELLO TRASPORTO. - Protocolli UDP e TCP. Parte 5. Modulo 1: Servizi del livello trasporto

Trusted Intermediaries

agenda Transport Layer in Internet protocolli TCP / UDP Scopi TCP - UDP Francesco Dalla Libera

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

Analisi dell avvio del TCP su canali satellitari a larga banda. Candidato Giovanni Verrecchia

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Lezione n.3 LIVELLO TRASPORTO

Capitolo 3 Livello di trasporto

4 - Il livello di trasporto

Reti di Calcolatori I. Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

College Algebra. Logarithms: Denitions and Domains. Dr. Nguyen November 9, Department of Mathematics UK

TCP. Università di Palermo TCP 1

Implementazioni tipiche del protocollo TCP

Transcript:

Chapter 3 Transport Layer Reti degli Elaboratori Canale AL Prof.ssa Chiara Petrioli a.a. 2013/2014 We thank for the support material Prof. Kurose-Ross All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Transport Layer 3-1

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 structure reliable data transfer flow control connection management 3.6 principles of congestion control 3.7 TCP congestion control Transport Layer 3-2

TCP flow control application may remove data from TCP socket buffers. slower than TCP receiver is delivering (sender is sending) application process TCP socket receiver buffers TCP code application OS flow control receiver controls sender, so sender won t overflow receiver s buffer by transmitting too much, too fast from sender IP code receiver protocol stack Transport Layer 3-3

TCP flow control v receiver advertises free buffer space by including rwnd value in TCP header of receiver-to-sender segments RcvBuffer size set via socket options (typical default is 4096 bytes) many operating systems autoadjust RcvBuffer v sender limits amount of unacked ( in-flight ) data to receiver s rwnd value v guarantees receive buffer will not overflow RcvBuffer rwnd to application process buffered data free buffer space TCP segment payloads receiver-side buffering Transport Layer 3-4

Dynamic window - example TCP CONN SETUP sender receiver Rec. Buffer Exchanged param: MSS=2K, sender ISN=2047, WIN=4K (carried by receiver SYN) 0 4K EMPTY Application does a 2K write 2K, seq=2048 0 4K Ack=4096, win=2048 2K Application does a 3K write Sender blocked A 2K, seq=4096 Ack=6144, win=0 B 0 4K FULL Application does a 2K read Transport Layer 3-5

Dynamic window - example TCP CONN SETUP sender receiver Rec. Buffer Exchanged param: MSS=2K, sender ISN=2047, WIN=4K (carried by receiver SYN) 0 4K EMPTY Application does a 2K write 2K, seq=2048 0 4K Ack=4096, win=2048 2K Application does a 3K write Sender blocked Sender unblocks may send last 1K A 2K, seq=4096 Ack=6144, win=0 Ack=6144, win=2048 1K, seq=6144 B 0 4K FULL Application does a 2K read 0 4K 2K Piggybacked in a packet sent from B to A Transport Layer 3-6 Window thus source rate limited by reading speed and buffer size at the receiver

Blocked sender deadlock problem BLOCKED REMAINS BLOCKED FOREVER!! sender receiver Rec. Buffer ACK=X, WIN=2K Since ACK does not carry data, no ack from sender expected. 0 4K FULL Application read 0 4K 2K Transport Layer 3-7

Solution: Persist timer When win=0 (blocked sender), sender starts a persist timer Initially 500ms (but depends on implementation) When persist timer elapses AND no segment received during this time, sender transmits probe Probe = 1byte segment; makes receiver reannounce next byte expected and window size this feature necessary to break deadlock if receiver was still full, rejects byte otherwise acks byte and sends back actual win Persist time management (exponential backoff): Doubles every time no response is received Maximum = 60s Transport Layer 3-8

The silly window syndrome Fill up buffer until win=0 Buffer FULL Network loaded with tinygrams (40bytes header + 1 payload!!) Ack=X, win=1 1 byte Ack=X+1, win=0 1 byte read Buffer FULL Forever! Anche se il ricevitore e veloce A passare i dati al livello applicativo inviare segmenti piccoli in un bulk di dati ha questo effetto Ack=X+1, win=1 1 byte Ack=X+2, win=0 1 byte read Buffer FULL Transport Layer 3-9

Silly window solution v Problem discovered by David Clark (MIT), 1982 v easily solved, by preventing receiver to send a window update for 1 byte v rule: send window update when: receiver buffer can handle a whole MSS or half received buffer has emptied (if smaller than MSS) v sender also may apply rule by waiting for sending data when win low Transport Layer 3-10

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 structure reliable data transfer flow control connection management 3.6 principles of congestion control 3.7 TCP congestion control Transport Layer 3-11

Connection Management before exchanging data, sender/receiver handshake : v agree to establish connection (each knowing the other willing to establish connection) v agree on connection parameters application connection state: ESTAB connection variables: seq # client-to-server server-to-client rcvbuffer size at server,client network application connection state: ESTAB connection Variables: seq # client-to-server server-to-client rcvbuffer size at server,client network Socket clientsocket = newsocket("hostname","port number"); Socket connectionsocket = welcomesocket.accept(); Transport Layer 3-12

Connection establishment: simplest approach (non TCP) Connection request Connection granted Transmit data time time Transport Layer 3-13

Delayed duplicate problem USER REQ BANK Data duplicate REQ Application: transactional (sell 100000$ stocks) What is this? Oh my God! Too late!!! ACK duplicate Data Selling other 100000$ stocks!!!!! Transport Layer 3-14

Solution: three way handshake Tomlinson 1975 SRC Connection request (seq=x) DEST Connection granted (seq=y,ack=x+1) Acknowledge + data (seq=x+1, ack=y+1) time time Transport Layer 3-15

Delayed duplicate detection USER SEQ X BANK SEQ Y, ACK X+1 What is this? Not too late: Data SEQ X+1, ACK Y+1 duplicate SEQ X duplicate Data SEQ X+1, ACK Y+1 SEQ Z, ACK X+1 Reject SEQ X+1, ACK Z+1 Application: transactional (selling stocks)??? What a case: request with same indicator X? anyway... What is this??? Should be SEQ X, ACK Z!!!! STOP... Ah ah! Got the problem! Disaster could not be avoided with a two-way handshake Transport Layer 3-16

Three way handshake in TCP SRC Connection request (SYN, ISN=100) DEST ACTIVE OPEN Connection granted (SYN, ISN=350, ACK=101) Data segment (seq=101, ACK=351) PASSIVE OPEN time Full duplex connection: opened in both ways SRC: performs ACTIVE OPEN DEST: Performs PASSIVE OPEN time Transport Layer 3-17

Initial Sequence Number v Should change in time RFC 793 (but not all implementations are conforming) suggests to generate ISN as a sample of a 32 bit counter incrementing at 4µs rate (4.55 hour to wrap around Maximum Segment Lifetime much shorter) v transmitted whenever SYN (Synchronize sequence numbers) flag active note that both src and dest transmit THEIR initial sequence number (remember: full duplex) v Data Bytes numbered from ISN+1 necessary to allow SYN segment ack Transport Layer 3-18

v Forbidden Region Obiettivo: due sequence number identici non devono trovarsi in rete allo stesso tempo Sequence numbers T Forbidden region v v v v v Time Aging dei pacchettià dopo un certo tempo MSL (Maximum Segment Lifetime) i pacchetti eliminati dalla rete Initial sequence numbers basati sul clock Un ciclo del clock circa 4 ore; MSL circa 2 minuti. à Se non ci sono crash che fanno perdere il valore dell ultimo initial sequence number usato NON ci sono problemi (si riusa lo stesso initial sequence number ogni 4 ore circa, quando il segmento precedentemente trasmesso con quel sequence number non è più in rete) e non si esauriscono in tempo <MSL i sequence number à Cosa succede nel caso di crash? RFC suggerisce l uso di un periodo di silenzio in cui non vengono inviati segmenti dopo il riavvio pari all MSL (per evitare che pacchetti precedenti connessioni siano in giro). Transport Layer 3-19

TCP Connection Management:Summary Recall: TCP sender, receiver establish connection before exchanging data segments v initialize TCP variables: seq. #s buffers, flow control info (e.g. RcvWindow) MSS v client: connection initiator Socket clientsocket = new Socket("hostname","port v number"); server: contacted by client Socket connectionsocket = welcomesocket.accept(); Three way handshake: Step 1: client host sends TCP SYN segment to server specifies initial seq # no data Step 2: server host receives SYN, replies with SYNACK segment server allocates buffers specifies server initial seq. # Step 3: client receives SYNACK, allocates buffer and variables,replies with ACK segment, which may contain data Per chiudere la connessione uno dei due estremi invia un messaggio con FIN flag a 1 a cui l altro estremo della connessione risponde con ACK Transport Layer 3-20

Problema dei due eserciti v L esercito rosso e globalmente più debole. Se le due pattuglie verdi attaccano insieme lo sconfiggono, altrimenti perdono. Possono scambiarsi messaggi relativi all orario in cui attaccheranno e di ACK di un messaggio ricevuto. I messaggeri che li portano possono pero essere catturati e quindi il messaggio può non arrivare correttamente a destinazione. Come fanno a mettersi d accordo per attaccare insieme? Transport Layer 3-21

Problema dei due eserciti v L esercito rosso e globalmente più debole. Se le due pattuglie verdi attaccano insieme lo sconfiggono, altrimenti perdono. Possono scambiarsi messaggi relativi all orario in cui attaccheranno e di ACK di un messaggio ricevuto. I messaggeri che li portano possono pero essere catturati e quindi il messaggio può non arrivare correttamente a destinazione. Come fanno a mettersi d accordo per attaccare insieme? Pattuglia 1 Attacco alle 6 Pattuglia 2 Senza ACK 1 non Attacchera perche Non sa se 2 ha ricevuto Il messaggio Transport Layer 3-22

Problema dei due eserciti v L esercito rosso e globalmente più debole. Se le due pattuglie verdi attaccano insieme lo sconfiggono, altrimenti perdono. Possono scambiarsi messaggi relativi all orario in cui attaccheranno e di ACK di un messaggio ricevuto. I messaggeri che li portano possono pero essere catturati e quindi il messaggio può non arrivare correttamente a destinazione. Come fanno a mettersi d accordo per attaccare insieme? Pattuglia 1 Pattuglia 2 Attacco alle 6 OK Attacco alle 6 Senza ACK del secondo Messaggio 2 non attacchera perche Non sa se 1 ha ricevuto il messaggio e sa che senza ACK del primo messaggio 1 non Attacchera Transport Layer 3-23

Problema dei due eserciti v v In generale: se N scambi di messaggi /Ack etc. necessari a raggiungere la certezza dell accordo per attaccare allora cosa succede se l ultimo messaggio necessario va perso? à E impossibile raggiungere questa certezza. Le due pattuglie non attaccheranno mai!! Transport Layer 3-24

Problema dei due eserciti: cosa ha a che fare con le reti e TCP?? v Chiusura di una connessione. Vorremmo un accordo tra le due peer entity o rischiamo di perdere dati. A Connection Request B connected Accept Data connected Data Disconnection Request (FIN) A pensa che il secondo pacchetto sia stato ricevuto. La connessione e Stata chiusa da B prima che ciò avvenisse secondo pacchetto perso!!! Transport Layer 3-25

Quando si può dire che le due peer entity abbiano raggiunto un accordo??? v Problema dei due eserciti!!! A B Connection Request connected Accept Data connected Data Disconnection Request Ack Ma se l ACK va perso???? Soluzione: si e disposti a correre piu rischi quando si butta giu una connessione di quando si attacca un esercito nemico. Possibili malfunzionamenti. Soluzioni di recovery in questi casi Transport Layer 3-26

TCP Connection Management (cont.) Since it is impossible to solve the proble use simple solution: two way handshake Closing a connection: client server client closes socket: clientsocket.close(); close FIN Step 1: client end system sends TCP FIN control segment to server ACK FIN closing Step 2: server receives FIN, replies with ACK. Closes connection, sends FIN. timed wait closed ACK Transport Layer 3-27

TCP Connection Management (cont.) Step 3: client receives FIN, replies with ACK. Enters timed wait - will respond with ACK to received FINs Step 4: server, receives ACK. Connection closed. closing client FIN ACK FIN server closing timed wait ACK closed closed Transport Layer 3-28

TCP Connection Management (examples) client server client server closing FIN closing FIN ACK FIN closing FIN ACK closing ACK timed wait closed FIN closed ACK FIN ACK closed Transport Layer 3-29

Connection states - Client Transport Layer 3-30

Connection States - Server Transport Layer 3-31

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 structure reliable data transfer flow control connection management 3.6 principles of congestion control 3.7 TCP congestion control Transport Layer 3-32

Principles of congestion control congestion: v informally: too many sources sending too much data too fast for network to handle v different from flow control! v manifestations: lost packets (buffer overflow at routers) long delays (queueing in router buffers) v a top-10 problem! Transport Layer 3-33

Causes/costs of congestion: scenario 1 v two senders, two receivers v one router, infinite buffers v no retransmission Host B Host A λ in : original data unlimited shared output link buffers λ out v large delays when congested v maximum achievable throughput Transport Layer 3-34

Causes/costs of congestion: scenario 2 v one router, finite buffers v sender retransmission of lost packet Host A λ in : original data λ' in : original data, plus retransmitted data λ out Host B finite shared output link buffers Transport Layer 3-35

Causes/costs of congestion: scenario 2 v always we want: λ = λ (goodput) in out v Second step retransmission only when loss: λ > λ in out v retransmission of delayed (not lost) packet makes larger λ (than second in case) for same λ out costs of congestion: more work (retrans) for given goodput Caso in cui ciascun pacchetto instradato Sia trasmesso mediamente due volte dal router unneeded retransmissions: link carries multiple copies of pkt Transport Layer 3-36

Causes/costs of congestion: scenario 3 v v v four senders multihop paths timeout/retransmit Q: what happens as λ in and increase? λ in Host A λ in : original data λ' in : original data, plus retransmitted data finite shared output link buffers D Host B λ out D-B traffic high Transport Layer 3-37

Causes/costs of congestion: scenario 3 H o st A λ o u t H o st B Another cost of congestion: when packet dropped, any upstream transmission capacity used for that packet was wasted! Transport Layer 3-38

Approaches towards congestion control two broad approaches towards congestion control: end-end congestion control: v no explicit feedback from network v congestion inferred from end-system observed loss, delay v approach taken by TCP network-assisted congestion control: v routers provide feedback to end systems single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) explicit rate for sender to send at Transport Layer 3-39

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 structure reliable data transfer flow control connection management 3.6 principles of congestion control 3.7 TCP congestion control Transport Layer 3-40

TCP congestion control: additive increase multiplicative decrease v approach: sender increases transmission rate (window size), probing for usable bandwidth, until loss occurs additive increase: increase cwnd by 1 MSS every RTT until loss detected multiplicative decrease: cut cwnd in half after loss AIMD saw tooth behavior: probing for bandwidth cwnd: TCP sender congestion window size additively increase window size. until loss occurs (then cut window in half) time Transport Layer 3-41

TCP Congestion Control: details sender sequence number space cwnd last byte ACKed sent, notyet ACKed ( inflight ) last byte sent v sender limits transmission: LastByteSent- LastByteAcked < cwnd TCP sending rate: v roughly: send cwnd bytes, wait RTT for ACKS, then send more bytes rate ~ cwnd RTT bytes/sec v cwnd is dynamic, function of perceived network congestion Transport Layer 3-42

TCP Slow Start v when connection begins, increase rate exponentially until first loss event: initially cwnd = 1 MSS double cwnd every RTT done by incrementing cwnd for every ACK received v summary: initial rate is slow but ramps up exponentially fast Host A RTT one segment two segments four segments Host B time Transport Layer 3-43

TCP: detecting, reacting to loss v loss indicated by timeout: cwnd set to 1 MSS; window then grows exponentially (as in slow start) to threshold, then grows linearly v loss indicated by 3 duplicate ACKs: TCP RENO dup ACKs indicate network capable of delivering some segments cwnd is cut in half window then grows linearly v TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks) Transport Layer 3-44

TCP: switching from slow start to CA Q: when should the exponential increase switch to linear? A: when cwnd gets to 1/2 of its value before timeout. Implementation: v variable ssthresh v on loss event, ssthresh is set to 1/2 of cwnd just before loss event Transport Layer 3-45

Summary: TCP Congestion Control Λ cwnd = 1 MSS ssthresh = 64 KB dupackcount = 0 timeout ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 retransmit missing segment dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment duplicate ACK dupackcount++ slow start New ACK! new ACK cwnd = cwnd+mss dupackcount = 0 transmit new segment(s), as allowed cwnd > ssthresh Λ timeout ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 retransmit missing segment timeout ssthresh = cwnd/2 cwnd = 1 dupackcount = 0 retransmit missing segment fast recovery duplicate ACK new ACK cwnd = cwnd + MSS (MSS/cwnd) dupackcount = 0 transmit new segment(s), as allowed cwnd = ssthresh dupackcount = 0 congestion avoidance New ACK! New ACK cwnd = cwnd + MSS transmit new segment(s), as allowed. New ACK! duplicate ACK dupackcount++ dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment Transport Layer 3-46

TCP throughput v avg. TCP thruput as function of window size, RTT? ignore slow start, assume always data to send v W: window size (measured in bytes) where loss occurs avg. window size (# in-flight bytes) is ¾ W avg. thruput is 3/4W per RTT avg TCP thruput = 3 4 W RTT bytes/sec W W/2 Transport Layer 3-47

TCP Fairness fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1 TCP connection 2 bottleneck router capacity R Transport Layer 3-48

Why is TCP fair? two competing sessions: v additive increase gives slope of 1, as throughout increases v multiplicative decrease decreases throughput proportionally R equal bandwidth share Connection 2 throughput Connection 1 throughput loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase R Transport Layer 3-49

Fairness (more) Fairness and UDP v multimedia apps often do not use TCP do not want rate throttled by congestion control v instead use UDP: send audio/video at constant rate, tolerate packet loss Fairness, parallel TCP connections v application can open multiple parallel connections between two hosts v web browsers do this v e.g., link of rate R with 9 existing connections: new app asks for 1 TCP, gets rate R/10 new app asks for 11 TCPs, gets R/2 Transport Layer 3-50

Chapter 3: summary v principles behind transport layer services: multiplexing, demultiplexing reliable data transfer flow control congestion control v instantiation, implementation in the Internet UDP TCP next: v leaving the network edge (application, transport layers) v into the network core Transport Layer 3-51