Capitolo 3 Livello di trasporto



Documenti analoghi
Capitolo 3 Livello di trasporto

Livello di trasporto:

Reti di Telecomunicazione Lezione 8

Reti di Calcolatori:

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...


Capitolo 3 Livello di trasporto

Strato di Trasporto Multiplazione a livello di trasporto

Transmission Control Protocol

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

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

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

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

Livello di trasporto: meccanismi trasferimento dati affidabile

Reti di Calcolatori in Tecnologia IP

Livello di trasporto: TCP, controllo flusso, controllo congestione

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Parte II: Reti di calcolatori Lezione 13

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Introduzione (parte III)

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Livello di Rete. Gaia Maselli

CW = 3MSS Base = Y Next = Y + 3MSS

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

4 - Il livello di trasporto

Reti di Calcolatori. Il software

Gestione della Connessione in TCP

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Programmazione in Rete

Il protocollo TCP. Obiettivo. Procedura

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 1

Reti di Calcolatori:

Elementi sull uso dei firewall

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 1

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

ARCHITETTURA DI RETE FOLEGNANI ANDREA

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

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

Il livello trasporto Protocolli TCP e UDP

IP Internet Protocol

Transmission Control Protocol: TCP

I protocolli UDP e TCP

Reti di Calcolatori:

Livello di Trasporto

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Parte II: Reti di calcolatori Lezione 13 (37)

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

Servizi orientati alla connessione

Approfondimento di Marco Mulas

Reti di Calcolatori:

Standard di comunicazione

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Reti diverse: la soluzione nativa

Lezione n.3 LIVELLO TRASPORTO

Inizializzazione degli Host. BOOTP e DHCP

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Esercizi su strati di trasporto e di rete

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

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

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Cenni di programmazione distribuita in C++ Mauro Piccolo

Informatica per la comunicazione" - lezione 8 -

Reti di Telecomunicazione Lezione 6

Capitolo 10 Lo Strato di Trasporto in Internet

DA SA Type Data (IP, ARP, etc.) Padding FCS

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

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Dipartimento di Ingegneria dell Informazione e Metodi Matematici Laboratorio di Reti Prof. Fabio Martignon

Capitolo 3 Livello di trasporto

Dal protocollo IP ai livelli superiori

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

Programmazione in Rete

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

LIVELLO DATA LINK (DI LINEA)

Svantaggi della Commutazione di Circuito. Commutazione di Pacchetto. Struttura di un Pacchetto

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

Telematica II 12. Esercitazione/Laboratorio 4

L architettura di TCP/IP

Transport Layer & TCP/UDP

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Reti di Telecomunicazione Lezione 7

P2-11: BOOTP e DHCP (Capitolo 23)

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 4

Capitolo 3 Livello di trasporto

Reti di calcolatori e Internet

Prof. Filippo Lanubile

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 14 Settembre 2005, ore 9.00

Transcript:

Capitolo 3 Livello di trasporto Nota per l utilizzo: Abbiamo preparato queste slide con l intenzione di renderle disponibili a tutti (professori, studenti, lettori). Sono in formato PowerPoint in modo che voi possiate aggiungere e cancellare slide (compresa questa) o modificarne il contenuto in base alle vostre esigenze. Come potete facilmente immaginare, da parte nostra abbiamo fatto un sacco di lavoro. In cambio, vi chiediamo solo di rispettare le seguenti condizioni: se utilizzate queste slide (ad esempio, in aula) in una forma sostanzialmente inalterata, fate riferimento alla fonte (dopo tutto, ci piacerebbe che la gente usasse il nostro libro!) se rendete disponibili queste slide in una forma sostanzialmente inalterata su un sito web, indicate che si tratta di una adattamento (o che sono identiche) delle nostre slide, e inserite la nota relativa al copyright. Thanks and enjoy! JFK/KWR All material copyright 1996-2007 J.F Kurose and K.W. Ross, All Rights Reserved Reti di calcolatori e Internet: Un approccio top-down 4 a edizione Jim Kurose, Keith Ross Pearson Paravia Bruno Mondadori Spa 2008 3-1

Capitolo 3: Livello di trasporto Obiettivi: Capire i principi che sono alla base dei servizi del livello di trasporto: multiplexing/demultiplexing trasferimento dati affidabile controllo di flusso controllo di congestione Descrivere i protocolli del livello di trasporto di Internet: UDP: trasporto senza connessione TCP: trasporto orientato alla connessione controllo di congestione TCP 3-2

Capitolo 3: Livello di trasporto 3.1 Servizi a livello di trasporto 3.2 Multiplexing e demultiplexing 3.3 Trasporto senza connessione: UDP 3.4 Principi del trasferimento dati affidabile 3.5 Trasporto orientato alla connessione: TCP struttura dei segmenti trasferimento dati affidabile controllo di flusso gestione della connessione 3.6 Principi sul controllo di congestione 3.7 Controllo di congestione TCP 3-3

Servizi e protocolli di trasporto Forniscono la comunicazione logica tra processi applicativi di host differenti I protocolli di trasporto vengono eseguiti nei sistemi terminali lato invio: scinde i messaggi in segmenti e li passa al livello di rete lato ricezione: riassembla i segmenti in messaggi e li passa al livello di applicazione Più protocolli di trasporto sono a disposizione delle applicazioni Internet: TCP e UDP applicaz. trasporto rete collegam. fisico rete collegam. fisico Trasporto logico punto-punto rete collegam. fisico rete collegam. fisico rete collegam. fisico rete collegam. fisico applicaz. trasporto rete collegam. fisico 3-4

Relazione tra livello di trasporto e livello di rete livello di rete: comunicazione logica tra host livello di trasporto: comunicazione logica tra processi si basa sui servizi del livello di rete Analogia con la posta ordinaria: 12 ragazzi inviano lettere a 12 ragazzi processi = ragazzi messaggi delle applicazioni = lettere nelle buste host = case protocollo di trasporto = Anna e Andrea protocollo del livello di rete = servizio postale 3-5

Protocolli del livello di trasporto in Internet Affidabile, consegne nell ordine originario (TCP) controllo di congestione controllo di flusso setup della connessione Inaffidabile, consegne senz ordine: UDP estensione senza fronzoli del servizio di consegna a massimo sforzo Servizi non disponibili: garanzia su ritardi garanzia su ampiezza di banda applicaz. trasporto rete collegam. fisico rete collegam. fisico Trasporto logico punto-punto rete collegam. fisico rete collegam. fisico rete collegam. fisico rete collegam. fisico applicaz. trasporto rete collegam. fisico 3-6

Capitolo 3: Livello di trasporto 3.1 Servizi a livello di trasporto 3.2 Multiplexing e demultiplexing 3.3 Trasporto senza connessione: UDP 3.4 Principi del trasferimento dati affidabile 3.5 Trasporto orientato alla connessione: TCP struttura dei segmenti trasferimento dati affidabile controllo di flusso gestione della connessione 3.6 Principi sul controllo di congestione 3.7 Controllo di congestione TCP 3-7

Multiplexing/demultiplexing Demultiplexing nell host ricevente: consegnare i segmenti ricevuti alla socket appropriata Multiplexing nell host mittente: raccogliere i dati da varie socket, incapsularli con l intestazione (utilizzati poi per il demultiplexing) = socket = processo applicazione P3 P1 P1 applicazione P2 P4 applicazione trasporto trasporto trasporto rete rete rete collegamento collegamento collegamento fisico fisico host 1 host 2 host 3 fisico 3-8

Come funziona il demultiplexing L host riceve i datagrammi IP ogni datagramma ha un indirizzo IP di origine e un indirizzo IP di destinazione ogni datagramma trasporta 1 segmento a livello di trasporto ogni segmento ha un numero di porta di origine e un numero di porta di destinazione L host usa gli indirizzi IP e i numeri di porta per inviare il segmento alla socket appropriata N porta origine 32 bit N porta destinazione Altri campi dell intestazione Dati dell applicazione (messaggio) Struttura del segmento TCP/UDP 3-9

Demultiplexing senza connessione Crea le socket con i numeri di porta: DatagramSocket mysocket1 = new DatagramSocket(9111); DatagramSocket mysocket2 = new DatagramSocket(9222); La socket UDP è identificata da 2 parametri: (indirizzo IP di destinazione, numero della porta di destinazione) Quando l host riceve il segmento UDP: controlla il numero della porta di destinazione nel segmento invia il segmento UDP alla socket con quel numero di porta I datagrammi IP con indirizzi IP di origine e/o numeri di porta di origine differenti vengono inviati alla stessa socket 3-10

Demultiplexing senza connessione (continua) DatagramSocket serversocket = new DatagramSocket(6428); P2 P3 P1P1 SP: 6428 DP: 9157 SP: 6428 DP: 5775 SP: 9157 SP: 5775 client IP: A DP: 6428 server IP: C DP: 6428 client IP: B SP fornisce l indirizzo di ritorno 3-11

Demultiplexing orientato alla connessione La socket TCP è identificata da 4 parametri: indirizzo IP di origine numero di porta di origine indirizzo IP di destinazione numero di porta di destinazione L host ricevente usa i quattro parametri per inviare il segmento alla socket appropriata Un host server può supportare più socket TCP contemporanee: ogni socket è identificata dai suoi 4 parametri I server web hanno socket differenti per ogni connessione client con HTTP non-persistente si avrà una socket differente per ogni richiesta 3-12

Demultiplexing orientato alla connessione (continua) P1 P4 P5 P6 P2 P1P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 SP: 9157 client IP: A DP: 80 S-IP: A D-IP:C server IP: C DP: 80 S-IP: B D-IP:C client IP: B 3-13

Capitolo 3: Livello di trasporto 3.1 Servizi a livello di trasporto 3.2 Multiplexing e demultiplexing 3.3 Trasporto senza connessione: UDP 3.4 Principi del trasferimento dati affidabile 3.5 Trasporto orientato alla connessione: TCP struttura dei segmenti trasferimento dati affidabile controllo di flusso gestione della connessione 3.6 Principi sul controllo di congestione 3.7 Controllo di congestione TCP 3-14

UDP: User Datagram Protocol [RFC 768] Protocollo di trasporto senza fronzoli Servizio di consegna a massimo sforzo, i segmenti UDP possono essere: perduti consegnati fuori sequenza all applicazione Senza connessione: no handshaking tra mittente e destinatario UDP ogni segmento UDP è gestito indipendentemente dagli altri Perché esiste UDP? Nessuna connessione stabilita (che potrebbe aggiungere un ritardo) Semplice: nessuno stato di connessione nel mittente e destinatario Intestazioni di segmento corte Senza controllo di congestione: UDP può sparare dati a raffica 3-15

UDP: altro Utilizzato spesso nelle applicazioni multimediali tollera piccole perdite sensibile alla frequenza Altri impieghi di UDP DNS SNMP Trasferimento affidabile con UDP: aggiungere affidabilità al livello di applicazione Recupero degli errori delle applicazioni! Lunghezza in byte del segmento UDP, inclusa l intestazione N porta origine lunghezza 32 bit N porta destinazione checksum Dati dell applicazione (messaggio) Struttura del segmento UDP 3-16

Checksum UDP Obiettivo: rilevare gli errori (bit alterati) nel segmento trasmesso Mittente: Tratta il contenuto del segmento come una sequenza di interi da 16 bit checksum: somma (complemento a 1) i contenuti del segmento Il mittente pone il valore della checksum nel campo checksum del segmento UDP Ricevente: calcola la checksum del segmento ricevuto controlla se la checksum calcolata è uguale al valore del campo checksum: No - errore rilevato Sì - nessun errore rilevato. Ma potrebbero esserci errori nonostante questo? Altro più avanti 3-17

Esempio di checksum Nota Quando si sommano i numeri, un riporto dal bit più significativo deve essere sommato al risultato Esempio: sommare due interi da 16 bit 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 a capo somma checksum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 3-18

Capitolo 3: Livello di trasporto 3.1 Servizi a livello di trasporto 3.2 Multiplexing e demultiplexing 3.3 Trasporto senza connessione: UDP 3.4 Principi del trasferimento dati affidabile 3.5 Trasporto orientato alla connessione: TCP struttura dei segmenti trasferimento dati affidabile controllo di flusso gestione della connessione 3.6 Principi sul controllo di congestione 3.7 Controllo di congestione TCP 3-19

TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581 punto-punto: un mittente, un destinatario flusso di byte affidabile, in sequenza: pipeline: nessun confine ai messaggi il controllo di flusso e di congestione TCP definiscono la dimensione della finestra buffer d invio e di ricezione full duplex: flusso di dati bidirezionale nella stessa connessione MSS: dimensione massima di segmento (maximum segment size) orientato alla connessione: l handshaking (scambio di messaggi di controllo) inizializza lo stato del mittente e del destinatario prima di scambiare i dati flusso controllato: il mittente non sovraccarica il destinatario 3-20

Struttura dei segmenti TCP URG: dati urgenti (generalmente non usato) ACK: numero di riscontro valido PSH: invia i dati adesso (generalmente non usato) RST, SYN, FIN: comandi per impostare e chiudere la connessione Checksum Internet (come in UDP) 32 bit N porta origine N porta destinazione Lung. Non intestusato U A P checksum Numero di sequenza Numero di riscontro R S F Dati (lunghezza variabile) Finestra di ricezione Puntatore ai dati urgenti Opzioni (lunghezza variabile) Conteggio per byte di dati (non segmenti!) Numero di byte che il destinatario desidera accettare 3-21

Numeri di sequenza e ACK di TCP Numeri di sequenza: numero del primo byte del segmento nel flusso di byte ACK: numero di sequenza del prossimo byte atteso dall altro lato ACK cumulativo D: come gestisce il destinatario i segmenti fuori sequenza? R: la specifica TCP non lo dice dipende dall implementatore L utente digita C L host riscontra la ricezione della C reinviata Host A Host B Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Seq=43, ACK=80 L host riscontra la ricezione di C e reinvia C Una semplice applicazione Telnet tempo 3-22

TCP: tempo di andata e ritorno e timeout D: come impostare il valore del timeout di TCP? Più grande di RTT ma RTT varia Troppo piccolo: timeout prematuro ritrasmissioni non necessarie Troppo grande: reazione lenta alla perdita dei segmenti D: come stimare RTT? SampleRTT: tempo misurato dalla trasmissione del segmento fino alla ricezione di ACK ignora le ritrasmissioni SampleRTT varia, quindi occorre una stima più livellata di RTT media di più misure recenti, non semplicemente il valore corrente di SampleRTT 3-23

TCP: tempo di andata e ritorno e timeout EstimatedRTT = (1 - α)*estimatedrtt + α*samplertt Media mobile esponenziale ponderata L influenza dei vecchi campioni decresce esponenzialmente Valore tipico: α = 0,125 3-24

Esempio di stima di RTT: RTT: gaia.cs.umass.edu e fantasia.eurecom.fr 350 300 RTT (millisecondi) 250 200 150 100 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 tempo (secondi) Campione RTT Stime di RTT 3-25

TCP: tempo di andata e ritorno e timeout Impostazione del timeout EstimtedRTT più un margine di sicurezza grande variazione di EstimatedRTT -> margine di sicurezza maggiore Stimare innanzitutto di quanto SampleRTT si discosta da EstimatedRTT: DevRTT = (1-β)*DevRTT + β* SampleRTT-EstimatedRTT (tipicamente, β = 0,25) Poi impostare l intervallo di timeout: TimeoutInterval = EstimatedRTT + 4*DevRTT 3-26

Capitolo 3: Livello di trasporto 3.1 Servizi a livello di trasporto 3.2 Multiplexing e demultiplexing 3.3 Trasporto senza connessione: UDP 3.4 Principi del trasferimento dati affidabile 3.5 Trasporto orientato alla connessione: TCP struttura dei segmenti trasferimento dati affidabile controllo di flusso gestione della connessione 3.6 Principi sul controllo di congestione 3.7 Controllo di congestione TCP 3-27

TCP: controllo di flusso Il lato ricevente della connessione TCP ha un buffer di ricezione: Il processo applicativo potrebbe essere rallentato dalla lettura nel buffer Controllo di flusso Il mittente non vuole sovraccaricare il buffer del destinatario trasmettendo troppi dati, troppo velocemente Servizio di corrispondenza delle velocità: la frequenza d invio deve corrispondere alla frequenza di lettura dell applicazione ricevente 3-28

TCP: funzionamento del controllo di flusso (supponiamo che il destinatario TCP scarti i segmenti fuori sequenza) Spazio disponibile nel buffer = RcvWindow = RcvBuffer - [LastByteRcvd - LastByteRead] Il mittente comunica lo spazio disponibile includendo il valore di RcvWindow nei segmenti Il mittente limita i dati non riscontrati a RcvWindow garantisce che il buffer di ricezione non vada in overflow 3-29

Capitolo 3: Livello di trasporto 3.1 Servizi a livello di trasporto 3.2 Multiplexing e demultiplexing 3.3 Trasporto senza connessione: UDP 3.4 Principi del trasferimento dati affidabile 3.5 Trasporto orientato alla connessione: TCP struttura dei segmenti trasferimento dati affidabile controllo di flusso gestione della connessione 3.6 Principi sul controllo di congestione 3.7 Controllo di congestione TCP 3-30

Gestione della connessione TCP Ricordiamo: mittente e destinatario TCP stabiliscono una connessione prima di scambiare i segmenti di dati inizializzano le variabili TCP: numeri di sequenza buffer, informazioni per il controllo di flusso (per esempio, RcvWindow) client: avvia la connessione Socket clientsocket = new Socket("hostname","portnumber"); server: contattato dal client Socket connectionsocket = welcomesocket.accept(); Handshake a tre vie: Passo 1: il client invia un segmento SYN al server specifica il numero di sequenza iniziale nessun dato Passo 2: il server riceve SYN e risponde con un segmento SYNACK il server alloca i buffer specifica il numero di sequenza iniziale del server Passo 3: il client riceve SYNACK e risponde con un segmento ACK, che può contenere dati 3-31

Gestione della connessione TCP (continua) Chiudere una connessione: client server Il client chiude la socket: clientsocket.close(); chiudi FIN Passo 1: il client invia un segmento di controllo FIN al server. ACK FIN chiudi Passo 2: il server riceve il segmento FIN e risponde con un ACK. Chiude la connessione e invia un FIN. Attesa temporizzata chiusa ACK 3-32

Gestione della connessione TCP (continua) Passo 3: il client riceve FIN e risponde con un ACK. inizia l attesa temporizzata - risponde con un ACK ai FIN che riceve chiusura client FIN ACK FIN server chiusura Passo 4: il server riceve un ACK. La connessione viene chiusa. Nota: con una piccola modifica può gestire segmenti FIN simultanei. Attesa temporizzata chiusa ACK chiusa 3-33

Principi sul controllo di congestione Congestione: informalmente: troppe sorgenti trasmettono troppi dati, a una velocità talmente elevata che la rete non è in grado di gestirli differisce dal controllo di flusso! manifestazioni: pacchetti smarriti (overflow nei buffer dei router) lunghi ritardi (accodamento nei buffer dei router) tra i dieci problemi più importanti del networking! 3-34

Cause/costi della congestione: scenario 1 due mittenti, due destinatari un router con buffer illimitati nessuna ritrasmissione Ritardo grandi ritardi se congestionati throughput massimo 3-35

Cause/costi della congestione: scenario 2 un router, buffer finiti il mittente ritrasmette il pacchetto perduto Host A λ in : dati originari λ' in : dati originari più dati ritrasmessi λ out Host B Buffer finiti e condivisi per i collegamenti in uscita 3-36

Cause/costi della congestione: scenario 2 Sempre: λ = λ (goodput) in out Ritrasmissione perfetta solo quando la perdita: λ > λ in out La ritrasmissione del pacchetto ritardato (non perduto) rende più grande (rispetto al caso perfetto) per lo stesso λ out λ in R/2 R/2 R/2 R/3 λ out λ out λ out R/4 λ in R/2 λ in R/2 λ in R/2 a. Costi della congestione: Più lavoro (ritrasmissioni) per un dato goodput Ritrasmissioni non necessarie: il collegamento trasporta più copie del pacchetto b. c. 3-37

Cause/costi della congestione: scenario 3 Quattro mittenti Percorsi multihop timeout/ritrasmissione D: Che cosa accade quando e aumentano? λ in λ in Host A λ in : dati originari λ' in : dati originari più dati ritrasmessi Buffer finiti e condivisi per i collegamenti in uscita λ out Host B 3-38

Cause/costi della congestione: scenario 3 H o s t A λ o u t H o s t B Un altro costo della congestione: Quando il pacchetto viene scartato, la capacità trasmissiva utilizzata sui collegamenti di upstream per instradare il pacchetto risulta sprecata! 3-39