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

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

Telematica di Base. IL Livello di Trasporto TCP

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

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

Reti di Calcolatori:

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

Controllo della congestione

Reti di Calcolatori:

Livello di trasporto: TCP, controllo flusso, controllo congestione

Reti di Calcolatori in Tecnologia IP

Controllo di congestione

Transmission Control Protocol: TCP

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Controllo di congestione

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

Controllo di congestione

Livello di trasporto: meccanismi trasferimento dati affidabile (2), TCP

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

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

Livello di trasporto: TCP

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

Parte II: Reti di calcolatori Lezione 14 (38)

Strato di Trasporto Multiplazione a livello di trasporto

Reti e Protocolli rassegna (II)

Livello trasporto. Servizi del livello trasporto

Livello di Trasporto

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

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

Il livello trasporto: Introduzione e protocollo UDP

Capitolo 3 Livello di trasporto

Esercitazione. Livello di Trasporto [Capitolo 3]

Reti di Calcolatori e Laboratorio - Compito del 15 Gennaio 2013

Implementazioni tipiche del protocollo TCP

Capitolo 10 Lo Strato di Trasporto in Internet

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

Parte II: Reti di calcolatori Lezione 13

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

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

Reti di Comunicazione e Internet

Livello di trasporto e TSAP

Controllo di Congestione in Reti Internet Docente: Vincenzo Eramo

Il livello 4: TCP, UDP

Gestione della Connessione in TCP

Valutazione del TCP con NS2. Gaia Maselli


4 - Il livello di trasporto

IL LIVELLO TRASPORTO Protocolli TCP e UDP

IL LIVELLO TRASPORTO Protocolli TCP e UDP

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

Il livello trasporto: Introduzione e protocollo UDP

Prestazioni stop-and-wait. Prestazioni

Livello Trasporto. Liv. Applic. Liv. Transport. Transport Entity. Liv. Network. Trasporto

Introduzione (parte III)

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

Livello trasporto in Internet

Livello di trasporto: meccanismi trasferimento dati affidabile

Livello trasporto in Internet

Standard: OSi vs TCP/IP. Il livello di trasporto. TCP e UDP. TCP: Transmission Control Protocol. TCP: funzionalità

Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015

Il livello di trasporto

Protocollo TCP. politiche di trasmissione e di controllo della congestione

Transmission Control Protocol (TCP) Andrea Detti

Prof. Ing. Maurizio Casoni Dipartimento di Ingegneria dell Informazione Università degli Studi di Modena e Reggio Emilia

Il livello trasporto Protocolli TCP e UDP

1. Supponendo che il canale trasmissivo sia esente da errori, si determini il throughput di S1.

TCP/IP: una breve introduzione

II prova in itinere - Rete Internet (ing. Giovanni Neglia)

MODELLI ISO/OSI e TCP/IP

Controllo di flusso in TCP

Il Livello Trasporto. Multiplexing/demultiplexing. Multiplexing/demultiplexing. Multiplexing/demultiplexing: esempi. Servizi e protocolli di Trasporto

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

Livello 4 (trasporto): cosa vedremo

RETI DI CALCOLATORI Home Assignment protocollo TCP. Prima parte

ESERCIZIARIO. Risposte ai quesiti:

Politecnico di Milano Advanced Network Technologies Laboratory. Esercizi sul TCP

TCP/IP: una breve introduzione

Livello trasporto: TCP / UDP. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 14 TCP/UDP - 1/35.

Capitolo 3 Livello di trasporto

Homework assignment TCP. Maurizio Bonuccelli. Dipartimento di Informatica Università di Pisa

Parte II: Reti di calcolatori Lezione 12

Prova completa - Rete Internet (ing. Giovanni Neglia) Lunedì 25 Giugno 2007

Programmazione in Rete

- 5 - Controllo a finestra

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

Livello trasporto in Internet

Livello trasporto in Internet

4 - Il livello di trasporto

Reti di Calcolatori. IL LIVELLO TRASPORTO Protocolli TCP e UDP

Application Layer DNS, TELNET

Livello trasporto in Internet

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Internet (- working). Le basi.

RETI DI CALCOLATORI. TCP e UDP: Il Livello di Trasporto Internet

Esercizi: Telecomunicazioni parte Reti


Corso di Sistemi di Misura Distribuiti. Ing. Domenico Capriglione

Avoidance, Fast Retransmit, And Fast Recovery

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

Transcript:

socket door : Panoramica FC: 793, 1122, 1323, 2018, 2581 punto-punto: un mittente, un destinatario flusso di byte affidabile e ordinato protocollo pipeline: il controllo di flusso e di congestione definisce la dimensione della window buffer send & receive application writes data send buffer segment application reads data receive buffer socket door dati full duplex : Flusso bi-direzionale nella stessa connessione M: maximum segment size connection-oriented: handshaking per inizializzare lo stato del mittente e destinatario flusso controllato: Il mittente non sovraccarica il destinatario Il Livello Trasporto 3b-1 : struttura del segmento UG: dati urgenti (solitam. non usato) : # valido PH: push data now (solitam. non usato) T, YN, : connessione stabilita (comandi di setup, tear down) Internet checksum (come in UDP) 32 bits source port # dest port # sequence number acknowledgement number head not UA P rcvr window size len used F checksum ptr urgent data ptions (variable length) application data (variable length) counteggio dei byte di dati (non segmenti!) # bytes che dest. vuole accettare Il Livello Trasporto 3b-2 seq. # e 0 999, 1.000 1.999, 2.000 499.999 : fornisce riscontri cumulativi : non ci sono regole fisse nello standard per i segmenti fuori ordine. Il Livello Trasporto 3b-3 seq. # e eq. #: numero del primo byte nei dati del segmento (primo # scelto a caso) : seq # del prossimo byte atteso cumulativi D: come il destin tratta segm. fuori ordine? : le specifiche del non lo dicono, dipende dalla implementazione L utente digita C L host riscontra l eco Host A eq=42, =79, data = C Host B eq=79, =43, data = C eq=43, =80 L host riscontra C, fa eco Di C tempo Un semplice scenario telnet Il Livello Trasporto 3b-4 : trasferimento affidabile evento: ricezione dati dall applicazione crea e invia un segmento wait attesa for evento evento: ricevuto con # y Esamina evento: timeout per il segmento con seq # y ritrasmette segmento mittente semplice, assumendo trasferimento one way nessun controllo di flusso o congestione Il Livello Trasporto 3b-5 : trasferim affidabile mittente semplificato 00 sendbase = initial_sequence number 01 nextseqnum = initial_sequence number 02 03 loop (forever) { 04 switch(event) 05 event: data received from application above 06 create segment with sequence number nextseqnum 07 start timer for segment nextseqnum 08 pass segment to IP 09 nextseqnum = nextseqnum + length(data) 10 event: timer timeout for segment with sequence number y 11 retransmit segment with sequence number y 12 compue new timeout interval for segment y 13 restart timer for sequence number y 14 event: received, with field value of y 15 if (y > sendbase) { /* cumulative of all data up to y */ 16 cancel all timers for segments with sequence numbers < y 17 sendbase = y 18 } 19 else { /* a duplicate for already ed segment */ 20 increment number of duplicate s received for y 21 if (number of duplicate received for y == 3) { 22 /* fast retransmit */ 23 resend segment with sequence number y 24 restart timer for segment y 25 } 26 } /* end of loop forever */ Il Livello Trasporto 3b-6 1

: generaz. [FC 1122, FC 2581] : ritrasmissione Evento arrivo ordinato segmenti, non ci sono buchi, tutto il resto già riscontrato arrivo ordinato segmenti, non ci sono buchi, un ritardato sospeso azioni del destinatario ritardato. Attendi 500ms per prossimo segmento. e non arriva, Invia Invia immediatamente un singolo cumulativo t imeout Host A Host B eq=92, 8 bytes data X loss =100 eq=92, 8 bytes data eq=100 t imeout eq=92 t imeout Host A Host B eq=92, 8 bytes data eq=100, 20 bytes data =100 =120 eq=92, 8 bytes data arrivo segmento fuori ordine seq. # maggiore di quello atteso rilevato un buco (gap) invia duplicato che indica il seq. # del prossimo byte atteso =100 =120 arrivo di un segmento che colma partialmente o completamente il gap immediato se il segmento inizia all estremo inferiore del gap tempo cenario di perso tempo timeout prematuro, cumulativi Il Livello Trasporto 3b-7 Il Livello Trasporto 3b-8 : Controllo Flusso ound Trip Time e Timeout flow control il mittente non sovrac. il buffer del destin. transmettendo troppo, troppo in fretta cvbuffer = dimensione eceive Buffer cvwindow = quantità di spazio rimasto nel Buffer LastBytecvd Destinat.: informa esplicitam. mittente dello spazio disponibile (cambia dinamicam.) campo cvwindow nel segmento LastByteead <= cvbuffer Mittente: fa si che i dati trasmessi ma non riscontrati < del più recente cvwindow ricevuto D: come si stabilisce il valore del timeout? Maggiore di TT nota: TT varia Troppo breve: timeout prematuro itrasmissioni inutili Troppo lungo: reazione lenta allo smarrimento di segmenti D: Come stimare TT? amplett: misura del tempo dalla trasmissione del segmento fino alla ricezione dell ignora ritrasmissioni, cumulativi amplett varia, occorre stimare TT in maniera opportuna media di molte misure recenti e non solo del amplett corrente Buffer destinatario LastByteent LastByteAcked <= cvwindow Il Livello Trasporto 3b-9 Il Livello Trasporto 3b-10 ound Trip Time e Timeout EstimatedTT = (1-x)*EstimatedTT + x*amplett media variabile pesata esponenzialmente influenza di un dato campione diminuisce esponenzialm. Valore tipico di x: 0.1 Impostazione del timeout EstimatedTT più margine di sicurezza Ampie variazioni EstimatedTT -> margine di sicurezza maggiore Timeout = EstimatedTT + 4*Deviation Deviation = (1-x)*Deviation + x* amplett-estimatedtt Il Livello Trasporto 3b-11 : Connessione icordate: nel si stabilisce una connessione prima di scambiare segmenti dati initializzare variabili : seq. # info buffers, controllo flusso (es., cvwindow) : avvia connessione ocket ocket = new ocket("hostname","port number"); : contattato da ocket connectionocket = welcomeocket.accept(); Three way handshake: Passo 1: il invia un YN al YN=1, specifica il seq # iniziale Passo 2: il riceve YN, risponde YN alloca buffers del YN, specifica -> seq. # iniziale Passo 3: ric. YN alloca buffers invia riscontro (YN = 0, seq# =iniziale+1, del seq# +1) Il Livello Trasporto 3b-12 2

: Connessione (cont.) : Connessione (cont.) Chiusura connessione: closes socket: ocket.close(); Passo 1: il invia al Passo 2: il riceve, replica con. Chiude la connessione, invia. close t imed wait closed close Passo 3: il riceve, replica con. Entra in attesa risponde con ai ricevuti Passo 4:, riceve. chiude la connessione Nota: con poche modifiche, può gestire simultanei closing t imed wait closed closing closed Il Livello Trasporto 3b-13 Il Livello Trasporto 3b-14 : Connessione (cont) Principi di Controllo Congestione Ciclo di vita Ciclo di vita Il Livello Trasporto 3b-15 Congestione: informalmente: troppe sorgenti che inviano troppi dati troppo in fretta perché la rete sia in grado di gestirli È diverso dal controllo di flusso! effetti: Pacchetti persi (a causa dell overflow del buffer ai router) itardi lunghi (a causa delle code nei buffer dei router) Un problema nella top-10! Il Livello Trasporto 3b-16 Cause/costi congestione: scenario 1 Due mittenti, due destinatari un router, buffer infinito No ritrasmissioni Cause/costi congestione: scenario 2 un router, buffer finito itrasmissione dei pacchetti persi grossi ritardi in caso congestione massimo throughput ottenibile Il Livello Trasporto 3b-17 Il Livello Trasporto 3b-18 3

Cause/costi congestione: scenario 2 Cause/costi congestione: scenario 3 sempre: = (goodput) in out ritrasmissione perfetta solo quando: > in out ritrasmissione dei pacchetti ritardati (non persi) rende lungo (del caso perfetto) per alcuni out più in quattro mittenti Percorsi multihop timeout/retransmit D: cosa succede se e in aumentano? in costi della congestione: più lavoro (ritrasm) per un dato goodput ritrasmissioni non necessarie: più copie del pkt sul link Il Livello Trasporto 3b-19 Il Livello Trasporto 3b-20 Cause/costi congestione: scenario 3 Approcci per il controllo congestione Due approcci principali: Un altro costo della congestione: Quando un pacchetto viene scartato, ogni capacità di trasmissione upstream usata per il pacchetto viene sprecata! Il Livello Trasporto 3b-21 Controllo end-to-end : Non c è feedback esplicito dalla rete stato congestione ricavato dai livelli di perdita e ritardo osservati agli endsystem L approccio del Controllo network-assisted: I router forniscono feedback agli end system Un bit indica la congestione (NA, DECbit, /IP ECN, ATM) Viene specificato esplicitamente a quale velocità il mittente deve trasmettere Il Livello Trasporto 3b-22 tudio di un Caso: controllo congestione dell ATM (AB) tudio di un Caso: controllo congestione dell ATM (AB) AB: available bit rate: servizio elastico se il percorso del mittente è scarico : Il mittende deve usare la banda disponibile se il percorso mittente è congestionato : Il mittente viene riportata ad una velocità minima garantita celle di M (resource management) : Il mittente le mischia con le celle dati bits nella cella M scritti dagli switch ( network-assisted ) NI bit: non aumentare la velocità (mild congestion) CI bit: congestion indication Le celle M vengono restituite dal destinatario con i bit inalterati Il Livello Trasporto 3b-23 campo di due-byte E (explicit rate) nella cella M uno switch in congestione può diminuire il valore di E nelle celle dati c è il bit EFCI: posto a 1 negli switch congestionati se la cella dati che precede la cella M ha EFCI, il mittente pone il bit CI a 1 nella cella M di ritorno Il Livello Trasporto 3b-24 4

Controllo Congestione del Controllo Congestione del : controllo end-to-end (niente feedback da network) La velocità transmissiva è limitata dalla dimensione della finestra di congestione, Congwin, sui segmenti: Congwin w segmenti, ciascuno invia M bytes in un TT: throughput = w * M TT Bytes/sec sondando la disponibilità di banda: idealmente: trasmetti il più velocmente possibile (Congwin il più ampia possibile) senza perdite incrementa Congwin finché iniziano le perdite(congestione) congestione: decrementa Congwin, poi inizia a sondare di nuovo due fasi slow start congestion avoidance variabili importanti: Congwin threshold: definisce la soglia tra le due fasi di slow start e congestion control Il Livello Trasporto 3b-25 Il Livello Trasporto 3b-26 lowstart algoritmo lowstart initialize: Congwin = 1 for (each segment ed) Congwin++ until (loss event CongWin > threshold) Incremento esponenziale (per TT) nel window size (non è poi così lento!) evento loss : timeout (Tahoe ) and/or tre duplicati (eno ) TT Host A Host B one segment two segments four segments time Il Livello Trasporto 3b-27 Congestion Avoidance Congestion avoidance /* slowstart is over */ /* Congwin > threshold */ Until (loss event) { every w segments ed: Congwin++ } threshold = Congwin/2 Congwin = 1 1 perform slowstart 1: eno salta lo slowstart (fast recovery) dopo tre duplicati Il Livello Trasporto 3b-28 AIMD congestion avoidance: AIMD: additive increase, multiplicative decrease Aumenta la window di 1 per TT Decrementa la window di un fattore 2 se c è congestione : Equità (Fairness) obiettivi della Fairness: se N sessioni condividono lo stesso link, ciascuna deve ottenere 1/N della capacità del link connection 1 connection 2 bottleneck router capacity Il Livello Trasporto 3b-29 Perchè il è equo? Due sessioni in competizione: L additive increase da pendenza 1, se il throughput cresce Il multiplicative decrease riduce il throughput proporzionalmente t hr oughput Connessione 2 Equa condivisione della banda throughput Connessione 1 loss: riduce la window di un fattore 2 congestion avoidance: additive increase loss: riduce la window di un fattore 2 congestion avoidance: additive increase Il Livello Trasporto 3b-30 5

: modello di latenza latency Modeling K:= /W D: Quanto tempo occorre per ricevere un oggetto da un Web dopo aver inviato una richiesta? Notazioni, assunzioni: Un solo link tra e di velocità Window di congestione fissa, W segmenti : M (bits) : size (bits) no ritrasmissioni (no loss, no corruption) due casi da considerare: W/ > TT + /: del primo segmento nella window torna prima W/ < TT + /: aspetta dopo aver tabilire una connessione itardo trasferimento dati spedito il valore della finestra dati inviata Il Livello Trasporto 3b-31 Case 1: latency = 2TT + / Case 2: latency = 2TT + / + (K-1)[/ + TT - W/] Il Livello Trasporto 3b-32 Latency Modeling: low tart Now suppose window grows according to slow start. Will show that the latency of one of size is: Latency 2TT P TT (2 P 1) where P is the number of times stalls at : P min{ Q, K 1} - where Q is the number of times the would stall if the were of infinite size. Latency Modeling: low tart (cont.) Example: / = 15 segments K = 4 windows Q = 2 P = min{k-1,q} = 2 erver stalls P=2 times. initiate connection request first window = / TT second window = 2/ third window = 4/ fourth window = 8/ - and K is the number of windows that cover the. delivered complete transmission Il Livello Trasporto 3b-33 Il Livello Trasporto 3b-34 latency Latency Modeling: low tart (cont.) TT k 2 1 TT k 2 1 stall time after the kth window time from when starts to send segment until receives acknowledg ement time to transmit the kth window 2TT p P 1 stalltime 2TT k 1 [ TT 2 ] P k 1 2TT P[ TT P ] (2 1) p initiate connection request delivered TT first window = / second window = 2/ third window = 4/ fourth window = 8/ complete transmission Il Livello Trasporto 3b-35 Chapter 3: ummary principles behind transport layer services: multiplexing/demultiplexing reliable data transfer flow control congestion control instantiation and implementation in the Internet UDP Next: leaving the network edge (application transport layer) into the network core Il Livello Trasporto 3b-36 6

This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.