Strato di Trasporto Romeo Giuliano romeo.giuliano@uniroma2.it 1



Documenti analoghi
Reti di Telecomunicazione Lezione 8

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

Reti di Calcolatori. Il software

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

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

ARCHITETTURA DI RETE FOLEGNANI ANDREA

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

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

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

Transmission Control Protocol

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

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

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

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

Inizializzazione degli Host. BOOTP e DHCP

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Introduzione alle applicazioni di rete

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

Coordinazione Distribuita

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

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

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

Cenni di programmazione distribuita in C++ Mauro Piccolo

Reti di Telecomunicazione Lezione 6

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

Gestione della Connessione in TCP

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è

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

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

LIVELLO DATA LINK (DI LINEA)

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

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

Lo scenario: la definizione di Internet

Livello di Rete. Gaia Maselli

Esercizi su: Ritardi di trasferimento Commutazione Sorgenti di Traffico

Parte II: Reti di calcolatori Lezione 13

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

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

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Esempio: aggiungere j

Reti diverse: la soluzione nativa

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8)

P2-11: BOOTP e DHCP (Capitolo 23)

Informatica per la comunicazione" - lezione 8 -

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Introduzione alle Ret e i t di d Cal a c l o c l o a l t a o t r o i

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

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Strato di Col o l l e l g e a g m a e m n e t n o

STRUTTURE DEI SISTEMI DI CALCOLO

Elementi di Informatica e Programmazione

Dal protocollo IP ai livelli superiori

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

3. Introduzione all'internetworking

Reti di Telecomunicazione Lezione 7

La creazione di una connessione fra due utenti del livello di trasporto non è un

HTTP adaptation layer per generico protocollo di scambio dati

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Introduzione (parte III)

Page 1. Elementi Base del Modello OSI. Il modello di riferimento ISO/OSI OSI: Open Systems Interconnection. Struttura a Livelli.

I COMPONENTI DI UNA RETE

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

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

Elementi di Informatica e Programmazione

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8

Quanto sono i livelli OSI?

Le reti. Introduzione al concetto di rete. Classificazioni in base a

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

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

Applicazioni distribuite

MODELLI ISO/OSI e TCP/IP

Introduzione alle Reti Telematiche

esales Forza Ordini per Abbigliamento

Reti di Calcolatori:

Reti LAN. IZ3MEZ Francesco Canova

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Principi fondamentali

Pronto Esecuzione Attesa Terminazione

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Architettura di un calcolatore

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Guida di Pro PC Secure

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

DMA Accesso Diretto alla Memoria

26 Febbraio 2015 Modulo 2

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Hardware delle reti LAN

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

Sistemi Operativi (modulo di Informatica II)

Il livello trasporto Protocolli TCP e UDP

CAPITOLO 7 - SCAMBIO DI MESSAGGI

ROM Upgrade Utility (RUU) Prima dell aggiornamento fare attenzione se

CONTROLLO DELL' ANTICIPO TEMPORALE

Approfondimento di Marco Mulas

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

Transcript:

Strato di Trasporto Romeo Giuliano romeo.giuliano@uniroma2.it 1

Argomenti Il servizio di trasporto Servizi forniti agli strati superiori Perché un altro strato Primitive del servizio di trasporto Socket Berkeley Esempio di programmazione con socket Elementi del protocollo di trasporto Protocollo di trasporto Indirizzamento Stabilire una connessione Rilascio di una connessione Controllo di flusso e buffering Multiplazione Ripristino dopo un crash Controllo della congestione Esempio di un semplice protocollo di trasporto Primitive di servizio Entità di trasporto di esempio Macchina a stati finiti Problemi di prestazioni Prestazioni nelle reti di computer Misurazioni delle prestazioni di rete Progettazione del sistema per aumentare le prestazioni Problemi e nuovi protocolli per le reti gigabit 2

Obiettivi Conoscere il servizio di trasporto Presentazione di alcuni esempi Descrivere gli elementi del protocollo di trasporto Analizzare e comprendere un semplice protocollo di trasporto Conoscere e analizzare i problemi legati alle prestazioni dei sistemi 3

Strato di Trasporto Servizio e protocollo di trasporto Romeo Giuliano romeo.giuliano@uniroma2.it 4

Argomenti Servizio di trasporto Servizio, primitive, socket, esempio Elementi del protocollo di trasporto Indirizzamento, stabilire e rilasciare una connessione, multiplazione, controllo di flusso e buffering 5

Il servizio di trasporto Obiettivo: Fornire il trasporto dati affidabile, efficiente dal computer di origine al computer destinazione, indipendentemente dalla rete o dalle reti fisiche utilizzate Servizi forniti agli strati superiori Perché un altro strato Primitive del servizio di trasporto Socket Berkeley Esempio di programmazione con socket Un file server Internet 6

Servizi forniti agli strati superiori Per raggiungere il suo obiettivo, lo strato di trasporto utilizza i servizi forniti dallo strato di rete Relazione logica tra strato di rete, di trasporto e applicazione (in figura) 7

Perché un altro strato Similitudini con lo strato di rete Servizio di trasporto orientato alla connessione o senza connessione Indirizzamento Controllo di flusso Perché serve un altro strato oltre quello di rete? Lo strato di trasporto è end-to-end (codice sulle macchine utente), mentre nello strato di rete, il codice è sui router Per servizi di rete degradati, l unica soluzione è uno strato superiore che ne controlli e ne migliori la qualità del servizio affidabilità Servizi offerti da reti differenti (per es. LAN e sistema telefonico) sono nascosti dallo strato di trasporto no gestione delle interfacce tra le reti Confine tra fornitori del servizio di trasporto e fruitori del servizio di trasporto strato di trasporto è in posizione chiave 8

Primitive del servizio di trasporto Due processi di strato 4 sono connessi da un pipe UNIX: la trasmissione dei dati deve essere affidabile al 100% lo strato di trasporto deve fornire un servizio affidabile (orientato alla connessione) su una rete inaffidabile Primitive del servizio di trasporto: nella tabella ci sono le primitive essenziali per instaurare, utilizzare e rilasciare la connessione 9

Primitive del servizio di trasporto (2) Transport Protocol Data Unit, TPDU: messaggi inviati tra due entità di strato 4 I messaggi dello strato di trasporto sono comunemente chiamati segmenti TPDU sono incapsulate nei pacchetti di strato 3 I pacchetti di strato 3 sono incapsulati nelle trame di strato2 10

Primitive del servizio di trasporto (3) Instaurazione della connessione Il server esegue LISTEN: lo blocca fino a che un processo cerca di connettersi Quando il client desidera comunicare con il server esegue CONNECT: invia un pacchetto TPDU di CONNECTION REQUEST per attivare la connessione Alla ricezione di questo pacchetto, il server viene sbloccato e invia un pacchetto TPDU di CONNECTION ACCEPTED al client Il client riceve tale pacchetto e la connessione è stabilita Utilizzo della connessione: cliente e server si scambiano i dati Il server esegue RECEIVE in attesa dell arrivo di un pacchetto. Il cliente esegue SEND per trasmettere dati. Poi invertono i ruoli finché hanno dei dati da trasmettere Abbattimento della connessione Asimmetrica: una entità esegue DISCONNECT Simmetrica: ogni entità esegue DISCONNECT e le connessioni nei due versi vengono chiuse 11

Primitive del servizio di trasporto (4) Diagramma di stato: semplice schema per la gestione della connessione Ogni transizione è innescata da un evento: avvio di una primitiva (non in corsivo) o arrivo di un pacchetto (in corsivo) Sequenza stati del client (linee continue) Sequenza stati del server (linee tratteggiate) 12

Socket Berkeley Primitive utilizzate per TCP in Berkeley UNIX frequentemente utilizzate in Internet SOCKET + BIND crea punto finale con un indirizzo ci si può connettere a tale server Le primitive SOCKET permettono di creare un servizio orientato alla connessione chiamato reliable byte stream: può essere usato per ogni 13 applicazione

Esempio di programmazione con Socket: File Server Internet Un client richiede un file da un server Codice server SERVER_PORT: numero tra 1024 e 65535 BUF_SIZE: dimensione del blocco dati trasmesso QUEUE_SIZE: numero massimo ammeso di connessioni pendenti WRITE SEND READ RECEIVE 14

Esempio di programmazione con Socket: File Server Internet (2) Codice client Chiamata del client: client flits.cs.vu.nl/usr/tom/nomefile >f Nome del server Nome del file 15

Elementi del protocollo di trasporto Protocollo di trasporto Indirizzamento Stabilire una connessione Rilascio di una connessione Controllo di flusso e buffering Multiplazione Ripristino dopo un crash 16

Protocollo di trasporto Il servizio di trasporto è implementato da un protocollo di trasporto tra due entità nello strato di trasporto Similitudini con lo strato di collegamento (controllo errori, ordinamento in sequenza, controllo di flusso). Differenza sostanziale: (a) nel data link la connessione è su un canale fisico diretto; (b) nello strato di trasporto il canale fisico è l intera rete Altre differenze: Necessità esplicita di indirizzamento Maggiore complicazione nell instaurazione della connessione iniziale Potenzialmente la rete può immagazzinare dei pacchetti Gestione del buffer e del controllo di flusso è eseguito su diverse conness. 17

Indirizzamento Un processo applicativo deve specificare a quale processo applicativo remoto vuole connettersi: si definiscono indirizzi di trasporto su cui i processi possono restare in ascolto delle richieste di connessione Indirizzi di strato di trasporto = Transport Service Access Point, TSAP Si chiamano porte in Internet e AAL-SAP in ATM In figura, relazione tra TSAP e NSAP (Network SAP). Esempio: 1. Server 1 (es. di posta) su host 2 si mette in ascolto sull indirizzo TSAP 1522: primitiva LISTEN 2. Client su host 1 prende il TSAP 1208 per instaurare la connessione (e spedire una mail: primitiva CONNECT con source_addr=1208, dest_addr=1522 3. Trasmissione dati (e.g. mail) e disconnessione 18

Indirizzamento (2) Domanda. Come fa il client a conoscere il TSAP del processo a cui vuole connettersi? Indirizzi stabili: funzionano bene per i servizi che non cambiano mai ma è dispendioso mantenerli tutti attivi Il client si connette ad un portmapper (con un TSAP ben conosciuto) per conoscere il TSAP del servizio richiesto. Il portmapper risponde indicandogli il TSAP di tale servizio Protocollo di connessione iniziale: anziché avere ogni server in ascolto su uno TSAP noto, un process server ascolta un insieme di porte contemporaneamente, attendendo una richiesta di connessione: a. Connessione con il process server se nessun altro server è in ascolto b. Dopo la richiesta, il process server crea il server richiesto, che eredita la connessione 19

Stabilire una connessione Un entità di trasporto invia un messaggio TPDU CONNECTION REQUEST alla destinazione, che risponde con un messaggio TPDU CONNECTION ACCEPTED Problema se i pacchetti sono corrotti, persi, duplicati o ritardati (rete congestionata). Soluzioni: Utilizzo di indirizzi di trasporto monouso: chiusi al termine della connessione; il client come conosce l indirizzo nuovo? Connessione con identificatore: connessione = [entità di trasporto, identificatore]; cosa se un server subisce un crash (perdita di memoria)? Limitare la durata di vita di un pacchetto Sottoreti limitate: evita i cicli, riduce il tempo massimo di ritardo Numero limitato di salti ammissibili: quando tale valore è nullo, la rete scarta il pacchetto Applicazione di un timestamp: inserisce l ora in ogni pacchetto, trascorso un certo intervallo i pacchetti vengono eliminati (server sincronizzati) 20

Stabilire una connessione (2) Occorre garantire che per un pacchetto eliminato lo siano anche i suoi ack Si definisce un tempo T, come l intervallo temporale che si deve attendere per essere sicuri che il pacchetto e i suoi ack e duplicati siano tutti eliminati Metodo dell orologio giornaliero: assicura che non siano in circolazione due TPDU con lo stesso numero Ogni host ha un orologio (non sincr.), il cui contatore aumenta ad ogni istante e che non perde il conteggio anche se si verifica un crash dell host I k bit inferiori del contatore dell orologio sono anche il numero di sequenza iniziale dei segmenti trasmessi (init_seq) Una volta concordato con init_seq, si implementa un protocollo di sliding window per il controllo di flusso NOTA: esiste un massimo ritmo di trasmissione dei segmenti (vedi fig.(b) ) 21

Stabilire una connessione (3) L orologio giornaliero risolve la trasmissione dei segmenti (e.g. duplicazione) ma non quello di delle CONNECTION_REQUEST (CR) Strategia di handshake a tre vie. Tre possibili scenari a. Operazioni normali b. Una vecchia CONNECTION REQUEST duplicata appare dal nulla c. La presenza di CONNECTION REQUEST e ACK duplicati 22

Rilascio di una connessione Rilascio asimmetrico: Basta che una delle due parti richieda una disconnessione (DISCONNECTION REQUEST, DR) affinché la connessione venga chiusa È improvvisa, con perdita di dati (vedi figura) 23

Rilascio di una connessione (2) Rilascio simmetrico: Tratta la connessione come se ci fossero due connessione unidirezionali (disconnessione di entrambe separatamente) Entrambi gli host devono aver finito di trasmettere i dati per non perderli nella disconnessione: ma si ha il problema dei due eserciti 24

Rilascio di una connessione (3) Quattro scenari per il rilascio della connessione a. Caso normale di handshake a tre vie 1. L host 1 invia una TPDU DR (DR = disconnection request) per iniziare il rilascio della connessione 2. Alla sua ricezione l host 2 invia una TPDU DR e attiva un timer 3. Alla sua ricezione l host 1 trasmette una TPDU ACK e rilascia la connessione 4. Alla ricezione dell ACK, l host 2 rilascia la connessione b. ACK finale perduto 1. Se l ACK è perso, l host 2 rilascia la connessione allo scadere del timer 25

Rilascio di una connessione (4) Quattro scenari per il rilascio della connessione (2) c. Risposta perduta d. Risposta perduta e DR successive perdute 26

Controllo di flusso e buffering Come nello strato 2, protocolli di sliding window; a differenza dello strato 2, ogni host ha numerose connessioni rispetto alle poche linee di uscita dei router Buffering sul mittente: deve conservare i TPDU finché non sono stati accettati Buffering sul ricevitore: presente e con che organizzazione? a. Dimensione identica b. Dimensione variabile c. Singolo buffer circolare per ogni connessione Dimensioni dei buffer origine/destinazione: dipende dal traffico Traffico intermittente buffer dinamico (nel mittente) Trasferimento di file intera window di buffer (nel ricevitore) 27

Controllo di flusso e buffering (2) Connessioni aperte e chiuse allocazione dei buffer variabile. Il destinatario comunica alla sorgente ack dei segmenti ricevuti e buffer rimanente in un campo apposito (e.g. window size nel TCP) Funzionamento della gestione dinamica delle window in sottoreti con numeri di sequenza di 4 bit 28

Controllo di flusso e buffering (3) Se lo spazio dei buffer non limita la connessione, il collo di bottiglia è la capacità di trasmissione della rete Schema di controllo del flusso basato su sliding window: Il mittente regola dinamicamente la dimensione della window Il mittente dovrebbe monitorare i parametri per la regolazione ottimale della finestra (capacità = numero di TPDU ricevute con ACK per unità di tempo) sliding window dinamica usata per controllo di flusso e per controllo della congestione 29

Multiplazione a. Multiplazione upward: tutte le connessioni di trasporto usano lo stesso indirizzo di rete b. Multiplazione downward: per limiti di trasmissione imposti dalla rete, lo strato di trasporto può aprire più connessioni contemporaneamente in parallelo 30

Ripristino dopo un crash Scenario: il client trasmette TPDU al server che le passa agli strati superiori Se va in crash un server, il client si può trovare in due stati: TPDU in circolazione ovvero senza aver ricevuto l ACK (stato S1) e senza TPDU in circolazione (stato s0) Il passaggio della TPDU (scrittura in un database) e l invio dell ACK sono due eventi distinti non contemporanei il crash può verificarsi tra l ACK e la scrittura o tra la scrittura e l ACK Il server può essere programmato in due modi: prima invia l ACK e poi scrivi o viceversa (ellisse rossa) Il client può essere programmato in 4 modi (ellisse blu) Nella tabella sono riportati i tre eventi del server: invio ACK (A), scrittura dell output (W) e crash (C) il crash e il ripristino devono essere risolti dagli 31 strati superiori

Strato di Trasporto Controllo della congestione e prestazioni Romeo Giuliano romeo.giuliano@uniroma2.it 32

Argomenti Controllo della congestione Problemi di prestazioni 33

Controllo della congestione: argomenti Regolazione del ritmo di trasmissione Problemi nel wireless 34

Controllo della congestione Lo strato di trasporto (congiuntamente allo strato di rete) deve evitare congestioni nella rete (i.e. pacchetti persi o ritardati) L unico modo è immettere meno pacchetti nella rete Allocazioni delle risorse Efficienza: tutte le risorse della rete sono utilizzate. A causa della variabilità del traffico, si può arrivare a congestione (figura sx) Fairness: dare a tutti gli utenti la stessa frazione di banda Converganza: l algoritmo di controllo della congestione deve convergere velocemente ad un punto stabile di allocazione delle risorse (figura dx) Variazione allocazione banda nel tempo del flow 1 Flow 1: banda max Flow 2: banda max Flow 3: banda 20% 35

Regolazione del ritmo di trasmissione Ritmo di trasmissione limitato da (fig.): (a) capacità ridotta del ricevitore; (b) congestione interna alla rete In entrambi i casi, lo strato di trasporto deve ridurre i pacchetti trasmessi eseguire il controllo di flusso e il controllo della congestione Il controllo della congestione si esegue in base a: Feedback della rete espliciti (e.g. explicit congestion notification) Informazioni implicite (e.g. round-trip-time o perdita di pacchetti nel RED) 36

Regolazione del ritmo di trasmissione (2) I feedback per la regolazione del ritmo di trasmissione indicano alla sorgente di decrementare il proprio bit rate legge del controllo di trasmissione Scopo della legge: giungere all uso efficiente ed equo delle risorse Si usa l incremento additivo e il decremento moltiplicativo (AIMD) Legge AIDM 37

Problemi nel wireless Protocolli dello strato di trasporto dovrebbero essere indipendenti dallo strato fisico. Tuttavia Nel wireless ci sono molti errori (perdita di pacchetti) Lo strato di trasporto considera come congestione riduzione dei pacchetti trasmessi Lo strato di collegamento considera come errori di trasmissioni ritrasmissioni e aumento dei pacchetti trasmessi Soluzioni: I. Nessuna, perché i due protocolli lavoro con scale temporali diverse; II. Per collegamenti molto lunghi (e.g. satellitari) Uso del FEC e non delle ritrasmissioni L a congestione si ha per segnalazioni esplicite e non per la perdita di pacchetti 38

Problemi nel wireless (2) Il controllo della congestione prevede che sia usata la massima capacità disponibile (efficienza) lo strato di trasporto deve adattare la trasmissione Nel wireless la capacità è variabile (a causa di e.g. numero di nodi connessi, variabilità del canale, variabilità del traffico offerto) Soluzioni: I. Nessuna, il protocollo di strato di trasporto deve comunque adattare il ritmo di trasmissione alla variabilità del traffico offerto nel wireless solo meno performante ma funzionante II. Progetto del protocollo ad hoc per collegamenti wireless 39

Problemi di prestazioni Prestazioni nelle reti di computer Misurazioni delle prestazioni di rete Progettazione del sistema per aumentare le prestazioni Problemi e nuovi protocolli per le reti gigabit 40

Prestazioni nelle reti di computer Prestazioni degradate per sovraccarichi momentanei della rete Ma anche dovuti a squilibri strutturali delle risorse Linee veloci su PC lenti ritrasmissioni Sovraccarichi sincroni Segmenti con parametri errati inviati a molte macchine broadcast storm Mancanza di energia elettrica: al ritorno della corrente elettrica inizio simultaneo delle macchine affette da black out Risorse sufficienti ma gestite male Buffer non congruo alla finestra di ricezione rallentamenti Timeout non ottimizzati: compromesso time out lunghi o brevi Gestione delle connessioni real time: prestare attenzione alla banda ma anche al jitter Finestra del controllo di flusso nelle reti con elevato prodotto bandaritardo (vedi dopo) 41

Misurazioni delle prestazioni di rete Ciclo di base per migliorare le prestazione di rete Misurare i parametri di rete rilevanti e le loro prestazioni Cercare di capire cosa sta accadendo Cambiare un parametro Assicurarsi che la dimensione del campione sia sufficientemente elevata Assicurarsi che i campioni siano rappresentativi Fare attenzione quando si usa un orologio grossolano Assicurarsi che non accada nulla di imprevisto durante i test Le cache possono disturbare le misurazioni Comprendere cosa si sta misurando Prestare attenzione all estrapolazione dei risultati (vedi slide successiva) 42

Misurazioni delle prestazioni di rete (2) Prestare attenzione all estrapolazione dei risultati Misurazione tra 0 (rete scarica) e 40% del carico rispetto alla capacità comportamento lineare L estrapolazione per un carico ρ > 40% prevede una crescita lineare del tempo di risposta della rete Tuttavia molti risultati di accodamento implicano un fattore 1/(1- ρ) la curva reale è quella con crescita maggiore 43

Progettazione del sistema per aumentare le prestazioni: regole La velocità della CPU è più importante della velocità della rete Il collo di bottiglia è nel software degli host Ridurre il numero di pacchetti per ridurre l overhead del software Pacchetti piccoli comportano maggiore overhead e interrupt (usare il buffering) La riduzione dell overhead riduce il consumo di potenza (utile nei terminali mobili Minimizzare le copie nelle memorie interne alla macchina Buffer hardware, kernel, buffer di rete, buffer di trasporto, buffer applicativo Impletare il processamento congiunto tra gli strati (es. TCP/IP) Minimizzare i cambi di contesto Provocano sprechi nel tempo della CPU (vedi slide successiva) È possibile comprare più banda ma non diminuire il ritardo Riduzione del ritardo richiede il miglioramento del software di gestione (protocollo, sist. op., interfaccia di rete) Evitare la congestione è meglio che correggere il problema Evitare i timeout Impostare i timer i modo leggermente conservativo ma non troppo 44

Progettazione del sistema per aumentare le prestazioni (2) Regola 4: Minimizzare i cambi di contesto Quattro cambi di contesto per gestire un pacchetto con un gestore di rete nello spazio utente 1. Cambio di contesto dall utente al kernel all arrivo di un pacchetto 2. Cambio dal kernel al gestore della rete 3. Cambio da gestore al ritorno al kernel 4. Cambio da kernel al processo ricevente (utente) 45

Problemi e nuovi protocolli per le reti con un elevato prodotto banda-ritardo (long fat netw) 1. Molti protocolli utilizzano numeri di sequenza a 32 bit: con linee gigabit vi è la possibilità di avere pacchetti in rete con lo stesso numero di sequenza 2. Le velocità di comunicazione sono migliorate più in fretta delle velocità per l elaborazione: il collo di bottiglia diventa il PC non la rete 3. La dimensione della finestra del controllo di flusso: troppo piccola per reti con elevato prodotto banda-ritardo (vedi figura) La finestra deve essere almeno grande quanto il prodotto banda-ritardo per riempire la linea di trasmissione Es. invio burst dati da San Diego a Boston (a) A t=0, (b) Dopo 500µs (c) Dopo 20 ms, (d) Dopo 40 ms Efficienza bassa perchè utilizzo del canale non completo 46

Problemi e nuovi protocolli per le reti con un elevato prodotto banda-ritardo (2) 4. Protocolli torna indietro di n hanno prestazioni scadenti in reti con elevato prodotto banda-ritardo: eventuali ritrasmissioni creano un enorme spreco di banda 5. Nelle reti veloci il ritardo di round-trip (trasferimento del file e ricezione dell ack) domina sul tempo di trasferimento del semplice dato (vedi figura: file da 1Mb su linea di 4000km) 6. Per applicazioni multimediali è importante garantire bassa varianza dei tempi di arrivo dei pacchetti 47

Problemi e nuovi protocolli per le reti con un elevato prodotto banda-ritardo (3) Progettare veloci interfacce di rete in hardware: tuttavia l hardware potrebbe avere una seconda CPU con cui la CPU principale deve sincronizzarsi Evitare la controreazione Come nei protocolli sliding window: si trasmette al massimo fino alla velocità concordata senza che il ricevente debba aggiornare la dimensione della finestra Come nei protocolli ad avvio lento per sondare le caratteristiche della rete: riservare le risorse al momento dell instaurazione della connessione Intestazione dei pacchetti piccola per ridurre il tempo di elaborazione Il checksum dell intestazione e dei dati calcolato separatamente Posso evitare di calcolare il chechsum dei dati Verifico l esattezza dell intestazione e poi eventualmente copio i dati Dimensione dei pacchetti molto grande per l efficienza Trasmettere dati insieme alla richiesta di connessione Software del protocollo deve: Concentrarsi sul caso normale (ridurre il tempo di elaborazione quando la trasmissione è senza errori) Ridurre il tempo o il numero di copie dei pacchetti nelle memorie locali 48