Reti di calcolatori • Una premessa: i sistemi di comunicazione • Le reti di calcolatori • Internet Il sistema di trasmissione E’ caratterizzato da alcuni aspetti. In particolare: • I mezzi di trasmissione • La tecnologia di trasmissione • Delle regole per comunicare (i protocolli) I mezzi di trasmissione Rappresentano il mezzo fisico utilizzato per realizzare il canale di trasmissione In base al supporto fisico usato si distinguono in: • Mezzi guidati • Mezzi non guidati Un esempio noto di mezzo non guidato: il GSM Centrale smistamento antenna antenna cella ... ... cella Un esempio noto di mezzo non guidato: il GSM Centrale smistamento antenna antenna Canale di aggancio cella ... ... cella Un esempio noto di mezzo non guidato: il GSM Centrale smistamento antenna antenna verifica Canale di aggancio cella ... ... cella Un esempio noto di mezzo non guidato: il GSM Centrale smistamento antenna antenna comunicazione Canale di trasmissione Canale di ricezione cella ... ... cella La tecnologia di trasmissione Protocollo di comunicazione • Insieme di regole (stabilite a priori) che determinano le operazioni da eseguire per far comunicare la sorgente con la destinazione Canale di comunicazione Le reti di calcolatori Uno specifico sistema di trasmissione può essere realizzato mediante una rete di calcolatori Rete di calcolatori: un insieme di calcolatori autonomi collegati tra loro mediante una rete di comunicazione Le reti di calcolatori non sono sistemi distribuiti Le reti di calcolatori Due parametri con cui classificare le reti di calcolatori: • La tipologia della connessione • L’estensione della rete La tipologia della connessione Due fondamentali tipologie di connessione: • Multipunto (broadcast) • Punto-a-punto Reti a connessione multipunto (broadcast) • I canali di trasmissione sono condivisi da tutti i calcolatori della rete • Ogni calcolatore viene identificato univocamente attraverso un indirizzo di rete • Ogni messaggio inviato deve contenere l’indirizzo del calcolatore destinatario (un messaggio almeno in linea di principio raggiunge tutti i calcolatori della rete, ma solo il calcolatore il cui indirizzo corrisponde a quello contenuto nel messaggio lo considererà) Reti a connessione punto a punto • Esistono connessioni individuali tra coppie di calcolatori • Nella forma più semplice la comunicazione avviene tra due dispositivi connessi da un canale di comunicazione diretto • In alcuni casi non è possibile avere un canale di comunicazione diretto tra due calcolatori (il canale di comunicazione passerà per calcolatori intermedi) Tipologia di connessione Estensione delle reti WAN (Wide Area Network: Una rete di trasmissione tra calcolatori fisicamente distanti tra loro, collegati attraverso mezzi di trasmissione dedicati Questo livello di rete si occupa del trasferimento delle informazioni tra nodi Rete = canali di trasmissione + IMP IMP (Interface Message Processor): sistemi che si occupano dell’instradamento e della verifica di correttezza dei messaggi Questo livello di rete consente l’esecuzione delle applicazioni Rete = Host (calcolatori) collegati agli IMP Questo livello di rete consente agli utenti di comunicare in modo trasparente alla struttura complessiva della rete Reti Geografiche • Adottano una tipologia di connessione punto a punto particolare detta a commutazione • È una connessione di tipo indiretto: infatti i dati sono immessi nella rete dall’host sorgente e raggiungono l’host destinatario passando da IMP a IMP Ad esempio... destinatario sorgente Ad esempio... destinatario sorgente Ad esempio... destinatario sorgente Ad esempio... destinatario sorgente Commutazione Esistono due tipologie di connessione a commutazione • a commutazione di circuito • a commutazione di pacchetto Commutazione di circuito • Deriva dalla modalità di trasmissione usata negli apparecchi telefonici (fissi) • Viene creato un canale logico temporaneo dedicato tra sorgente e destinatario • Il canale logico è costituito da una successione di connessioni tra i nodi della rete Commutazione di circuito La comunicazione si realizza in tre fasi: • Fase di attivazione (viene stabilito il cammino tra sorgente e destinatario) • Fase di trasferimento dati • Fase di chiusura della comunicazione (si rilasciano le risorse dedicate alla trasmissione) Esempio (fase di attivazione) sorgente destinatario Esempio (fase di attivazione) sorgente Rich conn con B destinatario Esempio (fase di attivazione) sorgente destinatario Esempio (fase di attivazione) sorgente destinatario Rich conn con B Esempio (fase di attivazione) sorgente destinatario Esempio (fase di attivazione) sorgente destinatario Rich conn con B Esempio (fase di attivazione) sorgente Cammino dedicato tra A e B destinatario Commutazione di circuito Questa tecnica è efficiente per comunicazioni telefoniche (il canale è sfruttato) Meno efficiente per la comunicazione dati tra calcolatori (il canale non è utilizzato continuativamente) La trasmissione è effettuata a velocità costante (quindi pari a quella del calcolatore più lento) Commutazione di pacchetto • Si basa sull’invio di pacchetti di dati di dimensioni ridotte (KByte) • Un messaggio è perciò costituito da uno o più pacchetti • Ogni pacchetto oltre ai dati contiene delle informazioni necessarie per l’invio (indirizzo del destinatario, posizione del pacchetto entro il messaggio) Commutazione di pacchetto • I pacchetti vengono spediti uno per volta entro la rete • Ogni nodo della rete che riceve il pacchetto lo memorizza, lo esamina, e se non è il destinatario, lo invia ad un nodo successivo nella direzione del destinatario Esistono due approcci per instradare un messaggio: • a datagrammi • a circuito virtuale Datagrammi I pacchetti (datagrammi) vengono trattati in modo indipendente l’uno dall’altro • Ogni pacchetto può seguire un cammino diverso per giungere a destinazione • Ogni nodo intermedio della rete deve prendere una decisione sull’instradamento dei singoli pacchetti Esempio datagrammi messaggio p1 destinatario p2 p3 sorgente Esempio datagrammi messaggio p2 p3 sorgente p1 destinatario Esempio datagrammi messaggio p2 p3 sorgente p1 destinatario Esempio datagrammi messaggio p3 sorgente p2 p1 destinatario Esempio datagrammi messaggio p3 sorgente p1 destinatario p2 Esempio datagrammi messaggio sorgente p3 p1 destinatario p2 Esempio datagrammi messaggio sorgente p1 destinatario p2 p3 Esempio datagrammi messaggio sorgente p1 destinatario p2 p3 Esempio datagrammi messaggio sorgente p2 p1 destinatario p3 Esempio datagrammi messaggio sorgente p3 p1 p2 destinatario Esempio datagrammi messaggio sorgente p3 p1 p2 destinatario Esempio datagrammi messaggio sorgente p3 p1 p2 destinatario Esempio datagrammi messaggio sorgente p3 p1 p2 destinatario Esempio datagrammi messaggio sorgente p3 p1 p2 destinatario Esempio datagrammi messaggio sorgente p3 p1 p2 destinatario Esempio datagrammi messaggio sorgente p1 p3 p2 destinatario Esempio datagrammi messaggio sorgente p1 p2 p3 destinatario Esempio datagrammi messaggio sorgente p1 p2 p3 destinatario Esempio datagrammi messaggio sorgente p2 p1 destinatario p3 Esempio datagrammi messaggio sorgente p2 p1 p3 destinatario Esempio datagrammi messaggio p1 sorgente p2 p3 destinatario Esempio datagrammi messaggio p1 sorgente p2 p3 destinatario Esempio datagrammi messaggio p1 sorgente p2 p3 destinatario Esempio datagrammi messaggio p1 sorgente p2 p3 destinatario Esempio datagrammi messaggio p1 p2 p3 destinatario sorgente Circuito virtuale • Simile a commutazione di circuito • Viene prima identificato un circuito logico virtuale tra il sorgente ed il destinatario • Una volta identificato tale circuito tutti i pacchetti seguiranno i nodi appartenenti al circuito identificato • Ogni nodo intermedio non deve prendere decisioni sull’instradamento dei singoli pacchetti, poichè tale decisione è già stata definita nel circuito virtuale Commutazione di circuito vs Comm di pacchetto • Comm di circuito sono più adatte per segnali che dovrebbero giungere al destinatario in modo continuo e regolare (tipo voce, video) • Comm di pacchetto gestisce meglio flussi di dati trasmessi non in modo continuo, garantendo una migliore gestione delle risorse condivise (ad es. i canali fisici) • Comm di pacchetto gestisce in modo efficiente collegamento tra calcolatori con velocità di trasmissione differente Le reti locali (LAN) • Consentono lo scambio di dati e la condivisione di risorse • Connettono dispositivi posti a distanza ridotta (e.g. entro lo stesso edificio) • Le LAN usano una tipologia di connessione broadcast: ogni nodo include un trasmettitore/ricevitore che comunica su un canale di trasmissione condiviso Reti di reti (Internetwork) • Collegano più reti differenti mediante opportuni elementi di interfaccia L’esempio più universalmente noto è Internet che è la rete di reti per eccellenza Internet 1. E’ un insieme di reti in cui tutti i nodi aderiscono (usano) agli stessi protocolli di comunicazione (i.e., stesso naming, routing, ecc.): una famiglia di protocolli detta TCP/IP 2. NON è il Web Internet – Storia • Nata negli anni ’60 col nome di Arpanet • Obiettivo: collegare i calcolatori di vari siti militari per: • • • • • – condividere in modo efficace/veloce le ricerche – riuscire a comunicare anche in caso di attacco nucleare (tanti cammini alternativi, decisi al momento, tra due calcolatori) All’inizio: 4 calcolatori negli USA 1973: connessioni all’Inghilterra e alla Norvegia Anni ’80: grandi reti accademiche e scientifiche 1982: TCP/IP (nome breve per individuare i protocolli Internet) diviene lo standard Ora: decine di migliaia di reti in tutto il mondo Struttura di Internet Internet è una rete di reti Dominio Dominio Gateway Routers + Firewall (opzionali) Dominio Dominio Elementi di Internet • Domini • Gateways • Routers • Firewalls • Protocolli Domini • Internet concettualmente è una collezione di gruppi di reti denominati domini (es: unimib.it, yahoo.it) • Ogni dominio consiste di una serie di reti gestite da una singola organizzazione che ne gestisce autonomamente la sua configurazione, ad es.: – topologia – creazione sotto-domini (es: disco.unimib.it, psicologia.unimib.it) – indirizzi logici e fisici delle singole macchine. I nodi in Internet sono individuati da un nome che è unico nel loro dominio. Es.: bbking è unico nel dominio disco.unimib.it Domini • La struttura dei domini è gerarchica: ogni dominio contiene altri sottodomini; ad es. dominio di primo livello it, dominio di secondo livello unimib e così via • Un ente internazionale è incaricato dei nomi/indirizzi dei domini (perché siano unici in tutto il mondo): Domain Name System • N.B. Con DNS si può intendere o il meccanismo, o il server/servizio Router, Firewall e Gateway • I router si occupano di smistare il traffico tra i diversi domini della rete • Il firewall si occupa di proteggere una “sotto”-rete da accessi indesiderati provenienti dall’esterno • Tutti i nodi di una rete devono essere in grado di dialogare secondo il protocollo della rete stessa; per dialogare tra reti con protocolli differenti è necessario un gateway (si occupa di tradurre la comunicazione) I protocolli di comunicazione • stabiliscono come deve avvenire lo scambio di messaggi – Come localizzare sulla rete il (nodo) destinatario/mittente di un messaggio – Quale percorso deve fare un messaggio tra due nodi non connessi in maniera diretta (nodi intermediari) – Quando un nodo può inviare un messaggio – Come controllare se un messaggio, durante la trasmissione, si è alterato Protocolli di Comunicazione (dettaglio) Naming: stabilisce come associare un nome logico (es. stampante Colori Aula 2) ed un indirizzo fisico sulla rete ad ogni nodo della rete • Sia il nome logico che l’indirizzo fisico devono essere unici all’interno di quella rete; gli utenti utilizzeranno il nome logico • Alcuni nodi mantengono le tabelle di associazione (nome logico indirizzo fisico): server DNS= Domain Name Server o Service; (vedi anche router) Protocolli di Comunicazione (dettaglio) • Routing o instradamento: scelta del percorso del messaggio entro la rete – fisso: deciso al momento dell’installazione della rete (veloce, non tollerante ai guasti) – variabile: è scelto all’inizio della sessione di lavoro (più tollerante ai guasti, basta ri-iniziare la sessione) – dinamico: è scelto al momento del passaggio del messaggio o del pacchetto (packet switching) in base alle condizioni della rete (traffico, nodi attivi, ecc.); i router sono quei nodi delegati a questo compito Protocolli di Comunicazione (dettaglio) • Conflitti di comunicazione: cosa fare quando più nodi tentano di comunicare sullo stesso arco contemporaneamente • Le tecniche per evitare i conflitti più “famose” sono: – Token ring o token passing: un nodo può trasmettere solo se è in possesso del token; c’è acknowledgment e obbligo di rilascio del gettone (tecnica equa) – CSMA/CD (Carrier Sense Multiple Access/Collision Detection) o prevenzione e correzione mediante ascolto – adottato in Ethernet Protocolli di Comunicazione in Internet • Internet non usa solo un protocollo di comunicazione, ma un insieme di protocolli detta anche suite di protocolli • Tale suite di protocolli è chiamata TCP/IP • La suite di protocolli TCP/IP opera per livelli gerarchici Livelli gerarchici di rete • Il SW per la comunicazione in rete, in generale non solo in Internet, è organizzato in moduli ben distinti e organizzati in una gerarchia di livelli (pila) tali che ogni modulo: – Svolge solo un sotto-insieme dei passi/compiti necessari per la comunicazione in rete – Dialoga solo (si interfaccia) con i moduli del livello direttamente superiore e inferiore Livelli gerarchici di comunicazione amm. delegato amm. delegato assistente pers. assistente pers. segretaria segretaria posta interna posta interna U.R.P. U.R.P. ufficio postale ufficio postale postino postino Gerarchia di livelli Internet sorgente destinazione HTTP, SMTP, FTP, ... Application Layer Application Layer Transport Layer Transport Layer TCP, UDP Network Layer Network Layer IP Link Layer Link Layer Percorso dei messaggi Compiti dei livelli - sorgente • Application Layer: (naming) trasforma l’indirizzo del destinatario (passato dalla particolare applicazione) in un indirizzo adatto per il livello sottostante (usa il DNS) • Transport Layer: divide il messaggio in pacchetti aggiungendogli un numero sequenziale (perchè il destinatario possa ricostruire il messaggio) • Network Layer: (routing) aggiunge ai pacchetti un indirizzo intermedio, cioè l’indirizzo del router se deve uscire dalla rete locale (usa la tabella di instradamento), e un contatore-hop count • Link Layer: tratta i dettagli della particolare rete (es: aspetta il token in una rete token ring) Compiti dei livelli - destinazione Nella fase di ricezione del messaggio i vari livelli effettuano il lavoro contrario, ad esempio il protocollo IP (Network Layer): – Toglie l’indirizzo intermedio (il suo) e considera l’indirizzo finale: 1. se è il proprio indirizzo passa il pacchetto al livello superiore (Transport Layer) 2. altrimenti decrementa il contatore (hop count) e ridirige il pacchetto nella rete aggiungendo un nuovo indirizzo intermedio e ri-passandolo al livello inferiore (Link Layer) Compiti dei livelli • • Il precedente comportamento fa in modo che solo il Link Layer e il Network Layer siano coinvolti (occupati) nella ri-direzione dei messaggi sulla rete Nel protocollo TCP (Transport Layer) le macchine del mittente e destinatario si inviano delle conferme di ricezione (acknowledgements) Indirizzi IP Tutti i nodi della rete Internet sono identificati univocamente da un indirizzo detto Indirizzo IP IP= Internet Protocol • Nel protocollo IP (livello Network Layer) gli indirizzi dei nodi sono numeri di 32 bit • Solitamente vengono indicati con 4 gruppi di 8 bit (ottetti) • e.g. 159.149.147.125