Reti di Calcolatori ed Internet Trasferimento dell’Informazione Una rete trasporta informazioni a distanza mettendo a disposizione risorse di comunicazione Le risorse di comunicazione sono messe a disposizione in tutti i componenti di rete attraversati dalla sorgente alla destinazione Un’utilizzazione efficiente della rete richiede che la quantità di risorse dedicata al trasporto delle informazioni sia rapportata alle caratteristiche delle informazioni da trasportare Mezzi di trasmissione dati Linea telefonica analogica (il doppino). – Modem su linea telefonica commutata 56 kbit/s – ISDN 128 kbit/s – ADSL 640 kbit/s, fino ad alcuni Mbit/s Cavo coassiale – Su brevi distanze 107 bit/s – Su lunghe distanze 105 bit/s Fibra ottica 10 Gbit/s Onde elettromagnetiche – BlueTooth (brevissime distanze) 700 kbit/s – WiFi (decine/centinaia di metri) 56 Mbit/s – Via satellite Modulazione e demodulazione Modulazione: segnale digitale segnale analogico Demodulazione: segnale analogico segnale digitale La linea telefonica trasporta un segnale analogico (segnale portante) che viene modulato in modo da trasportare uno 0 oppure un 1 Tecniche di modulazione del segnale portante: – Frequenza – Fase – Ampiezza Modulazione di frequenza 0 1 0 1 1 Segnale digitale da trasmettere Portante Segnale modulato in frequenza Trasmissione dati Modem: MOdulatore, DEModulatore Linee dedicate (connessione permanente) o commutate (connessione temporanea, es. telefono) Linee simpex (monodirezionali), half-duplex (senso unico alternato), full-duplex (bidirezionali) Collegamento dei terminali Reti di calcolatori Le reti di calcolatori collegano elaboratori, detti “nodi della rete”, situati ad una cerca distanza fra di loro, fornendo a ciascuno di essi vari “servizi di rete”, ossia funzionalità disponibili a tutti i calcolatori della rete stessa Ogni rete è basata su di una certa topologia. Essa descrive le modalità con le quali si scelgono i calcolatori da connettere direttamente tra loro Infatti, in una rete avrò: – Calcolatori connessi direttamente – Calcolatori che, per poter comunicare, devono far passare i messaggi attraverso altri elaboratori Topologia Stella Nodo centrale che inoltra i messaggi + Semplice + Più nodi possono comunicare contemporaneamente - Collo di bottiglia (nodo centrale…) - Vulnerabile ai guasti del nodo centrale e della rete (unico collegamento) • Nessun nodo centrale: treni di messaggi + Nessun collo di bottiglia + Più nodi possono comunicare contempor. + Meno vulnerabile ai guasti della rete e di altri nodi Anello - (inversione direzione) Più complesso Più nodi da attraversare Topologia • Nessun nodo centrale Bus + Semplice + Nessun nodo da attraversare - Vulnerabile ai guasti della rete - Solo due nodi alla volta possono comunicare • Nessuna topologia precisa + Resistente ai guasti (se routing dinamico) + Più nodi possono comunicare Irregolare - contemporaneamente Complesso Più nodi da attraversare Topologia Le topologie a stella, anello e bus sono usate soprattutto nell’ambito delle reti locali (LAN – Local Area Network) La topologia irregolare è molto diffusa tra le reti geografiche (WAN – Wide Area Network) I messaggi Le informazioni scambiate tra i nodi sono strutturate in messaggi Ogni messaggio contiene i dati da comunicare ed un certo insieme di informazioni di controllo Spesso la quantità di dati (byte) che è possibile inserire in un messaggio è fissa. Se un nodo deve inviarne un numero maggiore, è necessario utilizzare più messaggi I Messaggi (o pacchetti) Ogni pacchetto viene completato con una testata (header) che contiene la seguenti informazioni: Mittente: l’indirizzo IP del computer che spedisce il pacchetto Destinatario: l’indirizzo IP del computer a cui il pacchetto viene spedito. Lunghezza: la lunghezza del pacchetto in byte. Numero: il numero totale di pacchetti nel messaggio completo. Sequenza: il numero di sequenza del pacchetto nella lista dei pacchetti del messaggio e in numero di ECC. Vantaggi: Conosciamo il numero di pacchetti ricevuti/persi Possiamo chiederne la ritrasmissione Presenza di ERROR CORRECTION CODE Struttura dei messaggi Sequenza di controllo Parte utile del messaggio Inizio messaggio Mittente Destinatario Dati da inviare Caratteri di controllo La struttura dei messaggi dipende dallo standard utilizzato ma è possibile dare una descrizione generale: Fine messaggio Introduzione Tecniche di Switching (1/2) Orientate alla connessione: viene instaurato un collegamento fisico (link) tra gli utenti che si scambiano l’informazione (es. rete telefonica) Senza connessione: l’informazione è incapsulata in entità, dette datagrammi o pacchetti, che giungeranno a destinazione attraverso la rete ognuna con un proprio percorso (es. servizio postale) Il protocollo TCP/IP, uno dei protocolli di rete più utilizzati, sfrutta entrambe le configurazioni: TCP: protocollo orientato alla connessione IP: protocollo senza connessione Comunicazione con Connessione (Connection Oriented) Strutturazione in tre fasi temporali (instaurazione, trasferimento, abbattimento) Negoziazione dei parametri di trasferimento Uso di identificatori di connessione Garanzia ad instaurazione avvenuta del trasferimento delle informazioni Rispetto della sequenza del flusso informativo Comunicazioni senza Connessione (Connectionless) Una fase temporale Assenza di negoziazione Non c’è garanzia dell’arrivo dei pacchetti informativi I pacchetti informativi possono arrivare anche in fuori sequenza Tecniche di Switching (2/2) Connection-Oriented Circuit Switched Connectionless Packet Switched Cell Switching Message Switching Virtual Circuit Datagram Switching Circuit Switching: sistema orientato alla connessione in cui un circuito fisico viene instaurato tra mittente e destinatario. Packet Switching: l’informazione è inviata sottoforma di pacchetti. Se i pacchetti sono instradati dalla rete l’uno indipendentemente dall’altro (datagrams) il sistema è connection-less; viceversa se i pacchetti fanno parte di una sequenza, la commutazione è a circuito virtuale. Reti circuit switching • Il servizio (chiamata) si articola in 3 fasi: – Instaurazione – Dati – Svincolo • La banda richiesta per il trasporto delle IU viene riservata in modo esclusivo durante la fase di instaurazione • Svantaggio: Utilizzo inefficiente delle risorse in presenza di sorgenti a rate fortemente variabile (bursty) • Vantaggio: Non sono necessari meccanismi di bufferizzazione presso i nodi di commutazione (ritardi di accodamento nulli) Reti packet switching • La banda richiesta per il trasporto delle IU non viene riservata in modo esclusivo • La banda globalmente prenotata su un canale può essere superiore alla capacità del canale • Elevata Utilizzazione delle risorse • Paradigma Store & Forward (ritardi di accodamento non nulli) • 2 Servizi previsti: – A Circuito Virtuale (Connection oriented) – A Datagramma (Connectionless) Vantaggi e Svantaggi informazione trasferita in maniera sicura Circuit Switching ritardi di trasferimento costanti e trascurabili alta inefficienza, spreco della capacità di canale Packet Switching la rete è utilizzata solo se c’è informazione da trasmettere ritardi costanti ritardi variabili Message Switching spreco di risorse hardware Cell Switching bassa complessità inefficiente con celle molto grandi Datagram Switching: l’header del pacchetto deve contenere gli indirizzi del mittente e del destinatario, le informazioni di routing ed un numero di sequenza Virtual Circuit: maggiore efficienza dovuta alla minore dimensione dell’header del pacchetto da trasmettere lungo il circuito virtuale instaurato Routing Uno dei punti chiave di una comunicazione è come far transitare i dati da un punto all’altro della rete. La scelta del percorso da compiere è parte dell’algoritmo di routing che caratterizza una determinata rete. Idealmente si vorrebbe un algoritmo di routing corretto, semplice, robusto e poco complesso in termini di risorse occupate e costi di rete. Uno dei migliori algoritmi di routing è la scelta del percorso più breve (shortest path) tra due nodi della rete. In termini di link, distanza, ritardi costi di rete, non sempre il percorso più breve tra due nodi è quello composto dal minor numero di collegamenti. Routing e minimo percorso Per andare da P ad A qual è il percorso migliore? Routing dei messaggi • Se due nodi non sono connessi direttamente, il messaggio dovrà attraversare nodi intermedi • I nodi intermedi dovranno ricevere il messaggio e rispedirlo verso un nodo a loro connesso e più vicino alla destinazione (routing o instradamento) • Il caso più complesso è quello di una rete con topologia irregolare X A Y B • Se A vuole comunicare con B, deve passare attraverso X, oppure attraverso X e Y • Il nodo X deve decidere quale strada usare (routing statico o dinamico) Protocolli di rete Un protocollo stabilisce le regole di comunicazione che debbono essere seguite da due interlocutori – A: Chiamata per B – B: Pronto, chi parla? – A: Sono A, sei pronto a ricevere dati? – B: Sì – A: Ecco i dati … bla bla bla … fine dei dati – B: Dati ricevuti con successo – A: Ciao – B: Ciao Il protocollo stabilisce cosa fare in tutte le situazioni che possono verificarsi (errori, ecc.) Deve essere conosciuto dai due interlocutori (quindi, deve essere uno standard) Un esempio…. L’esempio è tratto da libro di A. S. Tanenbaum Computer Networks. Due biologi, uno in Svezia e uno in India, devono comunicare tra di loro. Poiché non hanno un linguaggio in comune, ambedue assumono un interprete, ognuno dei quali contatta a sua volta un tecnico delle trasmissioni. Lo scienziato svedese vuole comunicare allo scienziato indiano il suo affetto per i conigli. Per far questo passa un messaggio (in svedese) al suo interprete, che lo traduce in “I like rabbits”. L’interprete dà il messaggio al suo tecnico che lo trasmette mediante telegrafo. Quando il messaggio arriva, viene tradotto in indonesiano e passato al biologo indiano. Un esempio…. L’esempio è tratto da libro di A. S. Tanenbaum Computer Networks. I due biologi comunicano tra di loro, ma solo virtualmente; e così fanno i due interpreti; i due tecnici invece comunicano fisicamente tra di loro. La comunicazione virtuale tra i due biologi avviene in realtà scendendo attraverso le interfacce svedesi fino al livello più basso e risalendo a quello più alto dalla parte indiana. Ruoli importanti svolgono i protocolli di livello e le interfacce tra livelli. Il modello ISO-OSI Lo standard ISO-OSI (Open System Interconnect) include un insieme di protocolli che definiscono, a vari livelli di dettaglio, le regole di comunicazione E’ spesso chiamato stack (pila) ISO-OSI 7. Livello applicazione Servizio di rete (trasferimento file, e-mail, …) 6. Livello presentazione Conversione formati (01/12/02 12/01/02) 5. Livello sessione Apertura e chiusura dialogo (Chiamata per B...Ciao) 4. Livello trasporto Segmentazione dati in più messaggi Routing (instradamento) 3. Livello rete 2. Livello collegamento dati Controllo correttezza messaggi (rispedisci se errori) 1. Livello fisico Specifiche Hw/Sw dipositivi fisici usati per connettere i nodi (Ethernet, cavo coassiale, …) Modello OSI: Ciascun strato usa il suo protocollo per comunicare con lo strato alla pari dell’altro sistema Ciascun protocollo di strato scambia informazioni chiamate PDU (Protocol Data Units) tra strati alla pari Il protocollo di strati alla pari usa i servizi degli strati sottostanti Livelli del modello ISO-OSI 7 Applicazione 6 Presentazione 5 Sessione 4 Trasporto Livello di Applicazione: Fornisce, tramite un processo applicativo, l’interfaccia d’utente per l’accesso a servizi informativi distribuiti Esempi di servizi: Terminale Virtuale Posta Elettronica 3 Rete 2 Data Link 1 Fisico Trasferimento file Gestione DataBase distribuiti Livelli del modello ISO-OSI Livello di Presentazione: Consente l’interlavoro tra applicazioni che rappresentano i dati utilizzando formati diversi Le sue funzioni consistono nelle operazioni di trasformazione, formattazione e modifica della sintassi dei dati utilizzati La sintassi con cui avviene lo scambio dei dati può essere quella di uno dei due sistemi interagenti, oppure una sintassi intermedia di trasferimento Esempi di funzioni: Compressione dei dati Traduzione dei codici utilizzati per rappresentare i dati Transcodifica a scopi di sicurezza (encryption) 7 Applicazione 6 Presentazione 5 Sessione 4 Trasporto 3 Rete 2 Data Link 1 Fisico Livelli del modello ISO-OSI Livello di Sessione: Gestisce il dialogo e lo scambio dati tra entità di presentazione Funzione di questo tipo si rendono necessarie in quei casi in cui le applicazioni usano diversi modi di trasferimento delle informazioni, oppure quando occorre partizionare in sequenze più brevi un lungo scambio di informazioni attraverso una rete poco affidabile Esempi di servizi di questo livello sono: Gestione Modalità Dialogo (es., un terminale half-duplex interlavora con un’applicazione che opera in full-duplex) Recupero del dialogo seguente ad un’interruzione del servizio di trasporto 7 Applicazione 6 Presentazione 5 Sessione 4 Trasporto 3 Rete 2 Data Link 1 Fisico Livelli del modello ISO-OSI 7 Applicazione 6 Presentazione 5 Sessione 4 Trasporto 3 Rete 2 Data Link 1 Fisico Livello di Trasporto: Multiplazione (è il meccanismo per cui la capacità disponibile di un collegamento viene condivisa tra diversi canali trasmissivi) Demultiplazione Indirizzamento delle unità dati (indirizzo di porta) Segmentazione e Riassemblaggio delle unità dati Controllo di Flusso Controllo degli errori Livelli del modello ISO-OSI 7 Applicazione 6 Presentazione 5 Sessione 4 Trasporto 3 Rete 2 Data Link 1 Fisico Livello di Rete: Sovraintende al trasferimento di informazioni lungo una sequenza di nodi attraverso la rete. Maschera al livello di trasporto la tecnica di commutazione utilizzata. Funzioni: Instradamento Interlavoro tra porzioni eterogenee di rete Controllo di flusso per prevenire la congestione Multiplazione di più connessioni di rete su un unico collegamento dati Livelli del modello ISO-OSI 7 Applicazione 6 Presentazione 5 Sessione 4 Trasporto 3 Rete 2 Data Link 1 Fisico Livello Data-link: Svolge la funzione di trasferimento dati privo di errori tra due nodi adiacenti lungo un collegamento trasmissivo. Funzionalità: Rivelazione errori Recupero frame persi Controllo di flusso Controllo di accesso al collegamento Livelli del modello ISO-OSI 7 Applicazione 6 Presentazione 5 Sessione 4 Trasporto 3 Rete 2 Data Link 1 Fisico Livello Fisico: Svolge tutte le funzioni necessarie a interfacciare il sistema con il mezzo fisico: Gestione topologia Gestione procedure di trasmissione Codifica dei bit mediante segnali elettrici/ottici Il modello ISO-OSI Ogni livello definisce dei protocolli che gestiscono, a quel livello di dettaglio, la comunicazione Ciascun livello rappresenta una macchina astratta Ogni livello (macchina astratta) dello stack assume di “parlare” con il medesimo livello (macchina astratta) dell’altro nodo ed è completamente ignaro di ciò che succede sotto di lui E’ un modello di riferimento, i protocolli reali spesso implementano solo parzialmente lo stack Il modello ISO-OSI L6 Invia file “pippo.txt” Converti file L5 Apri dialogo L4 Segmenta file Invia msg1, msg2, … L7 L3 L2 L1 Aggiungi dati controllo Connessione fisica Ricevi file Converti file L7 Chiudi dialogo L5 Ricomponi file Ricevi msg1, msg2, … L4 Verifica messaggi Connessione fisica L2 L6 L3 L1 Il modello ISO-OSI Il flusso dei dati, in realtà, “scende” lungo lo stack del nodo mittente e “risale” lungo lo stack del nodo destinatario Durante la trasmissione: – Ogni livello aggiunge informazioni o modifica quelle provenienti dal livello superiore e le passa al livello inferiore Durante la ricezione: – Ogni livello estrae le informazioni di suo interesse e passa quelle rimanenti al livello superiore Il modello ISO-OSI Per es. invio file pippo.txt Mittente L7 L7 L6 L6 L5 L5 L4 L4 L3 L3 L2 L2 L1 Rete fisica L1 Destinatario Il Modello TCP/IP Modello a strati di riferimento per Internet Prende il nome da due dei suoi protocolli più importanti: – Transmission Control Protocol (TCP) – Internet Protocol (IP) Applicazione Trasporto Rete Network Access Livelli del TCP/IP TCP/IP e ISO/OSI: confronto 7 Applicazione Applicazione 6 Presentazione Trasporto 5 Sessione 4 Trasporto 3 Rete 2 Data Link 1 Fisico Rete Network Access TCP/IP ISO/OSI Entità del TCP/IP Applicazione HTTP-FTP-Telnet-DNS-POP3/IMAP SMTP-BGP-SNMP-RIP-RTP Trasporto TCP-UDP Rete IP-ICMP Network Access Ethernet-IEEE 802.3-IEEE 802.5-FDDI-ISDN Frame Relay-IEEE 802.11-SONET/SDH-PPP-HDLC SLIP/CSLIP-xDSL Panoramica sui livelli del TCP/IP Applicazione Trasporto Rete Network Access Livello delle Applicazioni: Incorpora tutte le funzionalità dell’omonimo livello ISO/OSI Ove necessario provvederà a fornire anche servizi tipici dei livelli di sessione, presentazione e trasporto Panoramica sui livelli del TCP/IP Applicazione Trasporto Rete Network Access Livello di Trasporto: User Datagram Protocol (UDP): fornisce un servizio inaffidabile e non orientato alla connessione. La sua unica funzione è quella del multiplexing. Transmission Control Protocol (TCP): fornisce un servizio affidabile e orientato alla connessione. Funzioni: Controllo di Flusso Controllo di Congestione Ritrasmissione di PDU perse o corrotte Consegna nella corretta sequenza delle unità dati Panoramica sui livelli del TCP/IP Livello di Rete: Internet Protocol (IP): è il collante di Internet Offre un servizio non affidabile e non orientato alla connessione. Funzioni: Instradamento Internet-working Internet Control Message Protocol (ICMP): consente lo scambio di informazioni di servizio tra nodi della rete Applicazione Trasporto Rete Network Access Panoramica sui livelli del TCP/IP Applicazione Trasporto Rete Network Access Livello di Accesso alla Rete: Il modello TCP/IP non pone alcun vincolo o requisito per tale livello Racchiude tutte le funzionalità specifiche della particolare tecnologia fisica utilizzata per il trasporto delle PDU dell’IP Un esempio di LAN: ethernet E’ una rete a bus (ma non solo…) Serve un’interfaccia da installare sul PC (NIC) 10 Mbit/s, 100 Mbis/s (fast-ethernet) , 1000 Mbit/s (gigaethernet) Usa cavi a doppino, coassiali o ottici di lunghezza limitata Solo un nodo per volta può occupare il bus e trasmettere i dati Un nodo non ha modo di sapere quando gli altri nodi inizieranno a trasmettere Se due nodi trasmettono contemporaneamente? Si usa un protocollo detto “Carrier Sense Multiple Access / Collision Detection” (CSMA/CD) Ethernet: struttura a bus Ethernet: protocollo CSMA/CD Si pone al livello 1 dello stack ISO-OSI I passi eseguiti dal protocollo sono: – Ogni nodo che fa parte della rete “ascolta” (carrier sense) per vedere se essa è libera o occupata – Se nessuno trasmette, tutti i nodi possono iniziare una comunicazione (multiple access): non c’è alcun nodo privilegiato rispetto agli altri – Se capita che più nodi inizino effettivamente a trasmettere insieme, gli stessi si accorgono del problema (collision detection), si fermano, aspettano un intervallo casuale (piccolo) di tempo e ritrasmettono il messaggio Architettura client/server Indica una modalità particolare di accesso alle funzionalità offerte da una rete E’ Indipendente dalla topologia della rete Una macchina particolare (detta server) offre una serie di servizi (disco condiviso, stampanti, database, ecc.) ed aspetta richieste Le altre macchine (dette client) utilizzano i servizi offerti dal server Quindi, il server generalmente si limita ad attendere che qualcuno lo contatti. Sono sempre i client ad iniziare il dialogo (chiedendo un certo servizio) E’ molto usata. Anche in ambito Internet (DNS, Web,…) Architettura client/server Server Client Più client possono contattare contemporaneamente lo stesso server Il server gestisce una coda di richieste nella quale accoda i messaggi provenienti dal client ed estrae quello che, in un dato istante, elaborerà Client Rete logica Per es. un sito Web Telefonia mobile Divisione del territorio in celle Ogni stazione assegna specifiche frequenze di trasmissione Stazioni adiacenti gestiscono lo spostamento di un utente da una cella ad un’altra Generazioni: Stazione radio Stazione radio Stazione radio 1a: TACS; analogici 2a: GSM; digitali, introduzione della SIM card 3a: UMTS; digitali, alta velocità multimediali Sistemi transazionali transazione applicativa: ciascuna unità di interazione con il sistema in cui viene effettuata un’operazione elementare Tipicamente, sono brevi unità di esecuzione Molto spesso, la transazione richiede anche trasmissioni di dati (una o più transazioni ACID) Tipicamente, si richiede che siano eseguite in tempi brevi Nelle applicazioni finanziarie, ciascuna transazione informatica corrisponde a una transazione economica correttezza e sicurezza Sistemi transazionali: Bancomat Gestito dai Centri Informativi regionali delle varie banche Coordinati dalla SIA (Società Interbancaria per l’Automazione) ATM (Automatic Teller Machine); carta magnetica Tre casi di richieste di denaro: – – – Richieste provenienti da carte emesse dalla banca pagante verifica locale, senza scambi interbancari Richieste provenienti da carte emesse da una banca pagante gestita dallo stesso CI autorizzazione da parte di quel CI Richieste provenienti da carte emesse da una banca pagante gestita da un diverso CI il CI della banca emittente verifica la validità della carta Sistemi transazionali: Bancomat Banca emittente Centro informativo banca emittente Richiesta di autorizzazione on-line. Caso 3 Emissione della carta e del codice personale segreto Centro informativo banca pagante Richiesta di autorizzazione on-line. Caso 2+3 ATM Banca pagante Richiesta di autorizzazione on-line. Caso 1+2+3 Utente