Reti di calcolatori Lezione 1 Problema Costruire una rete di calcolatori dimensioni planetarie applicazioni diversificate Quali tecnologie? Che tipo di architettura software? (efficienza, affidabilità, requisiti per le applicazioni) Soluzione al problema: Cos’è una rete di calcolatori? Perché costruirla? Cos’è ? Rete di calcolatori – – – Sistema di dispositivi programmabili interconnessi tra loro I dispositivi possono gestire una varietà di tipi di traffico (testo, voce, immagini) Sistema non ottimizzato per un particolare tipo di traffico Perché ? (scopi delle reti) Supporto di applicazioni di rete Applicazioni aziendali – Condivisione delle risorse Applicazioni domestiche – – – – Accesso a info remote Comunicazione da persona a persona Intrattenimento interattivo Commercio elettronico Prospettive Utenti della rete: servizi di cui le loro applicazioni hanno bisogno (ad esempio, invio garantito senza errori entro limite di tempo) Progettisti della rete: progetto economicamente effettivo (ad esempio, utilizzo efficiente ed equo delle risorse) Fornitori della rete: sistema facile da amministrare e da gestire (ad esempio, facilità di isolare i guasti) Requisiti: connessione Strumenti base: collegamenti: cavo coassiale, fibra ottica... nodi: computer di uso generale... – – host switch Collegamenti diretti punto-punto accesso multiplo (a) (b) Classificazione delle reti tecnologia trasmissiva b) dimensioni Si osserva una correlazione tra dimensioni e modalità di scambio dell’informazione Nel caso a) parleremo di a) Reti broadcast Reti punto-punto Nel caso b) di: reti locali (LAN), reti metropolitane (MAN), reti geografiche (WAN) Classificazione in base alle dimensioni: Distanza tra nodi Ambito 10 m. Stanza 100 m. Edificio 1 km. Campus 10 km. Città 100 km. Nazione 1000 km. Continente 10 000 km. Pianeta Tipo di rete Rete locale Rete metropolitana Rete geografica Internet Come è fatta Internet? Connessione indiretta Reti commutate: Due o più nodi connessi da un link – – Host Switch Connessione indiretta Una rete può essere definita ricorsivamente... Due o più nodi connessi da un link, o Due o più reti connesse da un nodo Strategie di commutazione: commutazione di circuito circuito dedicato per inviare/ricevere un flusso di bit commutazione di pacchetto store-and-forward per inviare/ricevere messaggi (pacchetti) Indirizzi ed instradamento indirizzo – parola che identifica un nodo instradamento – determinare come inviare i messaggi a destinazione in base al suo indirizzo tipo di indirizzi: – unicast: specifico nodo broadcast: tutti i nodi sulla rete multicast: sottoinsieme di nodi sulla rete Requisiti: condivisione risorse Problema: condivisione di risorse (nodi e collegamenti) da parte di più utenti L1 R1 L2 R2 Switch 1 L3 Switch 2 R3 Ogni switch trasmette un pò alla volta parte dei dati di ciascun host mittente Ogni host mittente che vuole trasmettere ne ha la possibilità Requisiti: condivisione risorse Strategie comuni di multiplexing: – – – a divisione di tempo (TDM) a divisione di frequenza (FDM) a divisione di tempo ma su richiesta (statistical TDM) L1 R1 L2 R2 Switch 1 L3 Switch 2 R3 Statistical TDM Suddivisione del tempo su richiesta Turno per la trasmissione basata su pacchetto Pacchetti da diverse sorgenti si alternano Bufferizzazione di pacchetti in attesa coda di pacchetti gestita come coda (FIFO) congestione: saturazione del buffer di pacchetti ■■■ Funzionalità Le applicazioni eseguite sui nodi connessi alla rete devono poter comunicare in modo da comprendersi nodo nodo applicazione nodo applicazione canale astratto nodo nodo La rete comunemente supporta canali applicazione-applicazione come: Richiesta/Risposta: accesso a file, librerie digitali – Garanzia di ricezione e integrità Flusso di messaggi: applicazioni video – Ordine dei messaggi Cos’è un protocollo? Protocolli umani: –Che ore sono? –Piacere sono tizio –Buongiorno cercavo… Messaggi specifici vengono trasmessi/ricevuti Azioni specifiche sono conseguenza dei msg trasmessi/ricevuti Protocolli di rete: Tutte le comunicazioni di rete sono gesite da protocolli –Formato dei msg –Ordine in cui questi devono essere inviati/ricevuti dalle componenti di rete –Azioni da intraprendere in seguito a trasmissione/ricezione di msg Architettura di protocolli Software di comunicazione strutturato gerarchicamente Astrazione identifica un modello unificante in grado di cogliere aspetti importanti del sistema conduce ad una struttura a livelli nasconde la complessità fornisce un’interfaccia di accesso Problemi Errori a livello di bit (interferenze) Errori a livello di pacchetti (congestione) Mal funzionamento di nodi e collegamenti Messaggi ritardati Messaggi consegnati in ordine sbagliato Ascolto da parte di estranei Problema chiave: mettere d’accordo ciò che l’applicazione si aspetta con ciò che la tecnologia soggiacente fornisce Prestazioni: unità di misura Attenzione alle unità di misura: gli stessi prefissi possono indicare multipli dell’unità diversi a seconda di ciò che stiamo considerando velocità di una linea, cicli di un clock dimensione di una memoria 1012 Tera 240 109 Giga 230 106 Mega 220 103 Kilo 210 100 - 20 Quindi 1KB = 1024 byte, 1 MB = 1024*1024 = 1048576 byte … Prestazioni Larghezza di banda Quantità di dati che possono essere trasmessi in un’unità di tempo Esempio: 1Mbps 106 bit al secondo Collegamento vs canale astratto Tempo di elaborazione Larghezza di banda collegata a “larghezza di un bit” 1Mbps corrisponde a bit di larghezza 1µs 2Mbps corrisponde a bit di larghezza 0.5µs latenza Tempo richiesto per inviare un messaggio da A a B Dipende da: – Tempo di trasmissione dei dati – Tempo di propagazione nel mezzo fisico – Tempo di accodamento ad ogni switch Velocità della luce 3.0 x 108 metri/secondo nel vuoto 2.3 x 108 metri/secondo in un cavo 2.0 x 108 metri/secondo in una fibra Latenza Latenza = Propagazione + Trasmissione + Coda Propagazione = Distanza / VelocitàLuce Trasmissione = Dimensione / LarghezzaBanda Talvolta conta il tempo andata-ritorno (RTT) Osservazioni non ci sono ritardi di coda in collegamenti diretti larghezza di banda non significativa se Dimensione è 1 bit latenza applicazione-applicazione include ritardo dovuto al software che può essere significativo se Distanza è piccola Larghezza di banda vs ritardo di trasmissione messaggi piccoli (ad es., 1 byte): passare da 1ms a 100ms è più significativo che passare da 1Mbps (Trasmissione = 8µs) a 100Mbps (Trasmissione = 0.08µs) messaggi grandi (ad es., 25 MB): passare da 1Mbps (Trasmissione = 209s) a 100Mbps (Trasmissione = 2s) è più significativo che passare da 1ms a 100ms Prodotto latenza x larghezza di banda Quantità di dati in “viaggio” latenza larghezza di banda ad es., 100ms e 45Mbps = 560KB di dati (circa) Larghezza di banda infinita – RTT domina 1-MB file su un collegamento a 1-Gbps è come 1-KB pacchetto su un collegamento a 1-Mbps Throughput = TransferSize / TransferTime TransferTime = RTT + 1/Bandwidth x TransferSize Architettura di rete Astrazione identifica un modello unificante in grado di cogliere aspetti importanti del sistema conduce ad una struttura a livelli – ogni strato definisce un modello Ogni modello è incapsulato in un oggetto dotato di una interfaccia – – nasconde la complessità fornisce accesso esterno all’oggetto Protocolli Ogni protocollo ha due interfacce interfaccia di servizio: definisce come usarlo interfaccia tra entità: definisce come comunica con l’entità corrispondente nell’altro nodo nodo nodo oggetto di alto livello protocollo interfaccia di servizio interfaccia tra entità oggetto di alto livello protocollo L’insieme dei livelli e dei relativi protocolli è chiamato architettura di rete La specifica dell’architettura deve essere sufficientemente dettagliata da renderne possibile l’implementazione I dettagli implementativi di ciascun livello, così come la definizione di ciascuna interfaccia tra livelli, NON fanno parte dell’architettura di rete Comunicazione multistrato Vantaggi della stratificazione : Scomposizione del problema in sottoproblemi Progettazione modulare: aggiungere un servizio modificando le funzionalità di un solo livello Implementazioni diverse per uno strato in host diversi Applicazione Canale astratto Connessione nodo-nodo Hardware diverse astrazioni ad ogni livello Applicazione Canale richiesta/ risposta Canale flusso di messaggi Connessione nodo-nodo Hardware Grafo dei protocolli insieme di protocolli con le loro dipendenze Host 1 File application – – Digital library application Video application Host 2 File application Digita llibrary application Video application maggior parte della comunicazione tra entità indiretta comunicazione tra entità diretta solo al livello hardware Incapsulamento Applicazione Applicazione dati RRP dati RRP RRP dati HHP verso la rete RRP dati HHP HHP RRP dati dal la rete HHP RRP dati Architettura di rete Una architettura di rete può essere: proprietaria, standard de facto o standard de iure. Una architettura proprietaria • si basa su scelte indipendenti ed arbitrarie di un costruttore • è generalmente incompatibile con architetture differenti • rende raramente pubbliche le proprie specifiche Esempi: IBM SNA (Systems Network Architecture), Digital Decnet Phase IV, Novell IPX, Appletalk Una architettura standard de facto • è basata su specifiche di pubblico dominio • e largamente adottate a livello mondiale Esempio: Internet Protocol Suite (TCP/IP) Una architettura standard de iure: • è basata su specifiche pubbliche • è approvata da enti internazionali di standardizzazione Esempi: standard IEEE 802 (LAN), architettura OSI (Open Systems Interconnection), Decnet Phase V Architetture Standard Architettura OSI (Open Systems Interconnect) International Standards Organization (ISO) International Telecommunications Union (ITU), precedentemente CCITT serie “X.”: X.25, X.400, X.500 modello di riferimento OSI: principi del progetto 1. Ogni livello deve avere un diverso livello di astrazione 2. Ogni livello deve avere una funzione ben definita 3. I livelli devono essere isolati quanto più possibile 4. La scelta dei livelli deve: - minimizzare il passaggio delle informazioni fra livelli - evitare troppe funzioni in un livello e troppi livelli Livello fisico Gestisce la trasmissione di flussi di bit non strutturati attraverso la linea di comunicazione Gli aspetti di progetto sono: - garantire che la comunicazione avvenga in modo corretto (es. se viene inviato un 1, venga ricevuto un 1 e non uno 0) - caratteristiche meccaniche, elettriche e procedurali delle interfacce di rete (componenti che connettono l'elaboratore al mezzo fisico) e le caratteristiche del mezzo fisico Si caratterizzano: - tensioni scelte per rappresentare 0 ed 1 - durata (in microsecondi) di un bit - trasmissione simultanea in due direzioni oppure no - forma dei connettori Livello DataLink Il suo scopo principale è controllare gli errori di trasmissione ed evitare che tali errori, se riconosciuti, siano passati al livello superiore Deve quindi: • raggruppare i bit da inviare in frame e aggiungere delimitatori al frame (framing) • inviare i frame in sequenza • aspettare un acknowledgment frame (ack) per i frame inviati Lunghezza del frame: dal centinaio al migliaio di byte (1 byte = 8 bit) Livello rete Gestisce l’instradamento dei pacchetti. Altre funzioni: • gestione della congestione • accounting (contabilizzazione) del traffico (gli operatori possono far pagare l’uso della rete in base al traffico effettuato) • conversione di dati nel passaggio fra due reti diverse (indirizzi da rimappare, pacchetti da frammentare, protocolli diversi da gestire, . . . ) Livello trasporto Realizza il canale tra processi e isola i livelli superiori dai cambiamenti della tecnologia di rete sottostante crea connessioni di livello network per ogni connessione di livello end-to-end offerta di vari servizi al livello superiore: - canale punto a punto affidabile, che consegna dati in ordine e senza errori (il servizio più diffuso, connection oriented) - invio di messaggi isolati, con o senza garanzia di consegna (connectionless) Livello sessione • Permette agli utenti su diversi calcolatori di stabilire sessioni di lavoro tra di loro • Permette di collegare flussi diversi che fanno parte della stessa applicazione (es. flussi video e audio in una videoconferenza) Livello presentazione Si occupa della: • conversione dei dati • compressione dei dati • codifica crittografica dei dati Livello applicazione Fornisce tutti i protocolli utilizzati dalle applicazioni comunemente usate dall’utente. Ad esempio: • Posta elettronica • Terminale virtuale • Trasferimento di file • World Wide Web Attraverso l’uso di questi protocolli si possono scrivere e gestire applicazioni che offrono i servizi agli utenti finali. Tipologie di servizi Servizi connection-oriented: - modellati sul servizio telefonico - hanno bisogno di - stabilire una connessione - scambiare informazioni per mezzo della connessione - rilasciare la connessione 01 0 1 host1 0 0 01 0 1 1 11 1 1 0 0 0 1 10 1 host2 Tipologie di servizi Servizi connectionless: - modellati sul servizio postale - non hanno bisogno di una fase di allocazione delle risorse - ogni pacchetto viaggia indipendentemente dagli altri 0 00 01 0 0 0 1 host1 1 1 0 1 1 0 0 1 1 0 1 host2 Servizi affidabili e non affidabili Un servizio affidabile permette di non perdere i dati senza che il mittente ne sia informato: • il ricevente invia un acknowledgment (conferma) al mittente per ogni pacchetto ricevuto • in caso di errori transienti di trasmissione, il mittente può rispedire automaticamente i dati non giunti a destinazione Un servizio non affidabile non offre alcuna certezza al mittente che i dati inviati siano stati effettivamente ricevuti dal destinatario Servizio affidabile non affidabile connectionoriented trasmissione di un file voce digitalizzata connectionless posta raccomandata email spazzatura se un livello non offre affidabilità del servizio, qualora questa sia richiesta, dovrà essere fornita dai livelli superiori. Confronto OSI-TCP/IP Architettura Internet Internet Engineering Task Force (IETF) FTP HTTP NV TFTP Applicazione TCP UDP TCP UDP IP IP Rete rete rete ... Caratteristiche non implica una struttura strettamente a livelli forma a clessidra progetto e sviluppo procedono insieme rete Livello trasporto Protocollo TCP – – – – Definito in RFC793 (Postel 1981c) è orientato alla connessione e affidabile controlla la congestione non permette una comunicazione “leggera” Protocollo UDP – – Definito in RFC768 (Postel 1980) Non è orientato alla connessione e non è affidabile Livello rete Protocollo IP (definito in RFC791 Postel 1981c) – – – – – Fornisce un servizio di consegna di pacchetti a destinazione Best effort Consente di suddividere pacchetti Non controlla se un pacchetto è danneggiato Non garantisce la consegna