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 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 Nodo centrale che inoltra i messaggi Stella Semplice Più nodi possono comunicare contemporaneamente Collo di bottiglia (nodo centrale…) Vulnerabile ai guasti del nodo centrale e della rete (unico collegamento) Stella 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 (inversione direzione) Più complesso Più nodi da attraversare Anello
Topologia Nessun nodo centrale Bus Nessuna topologia precisa Semplice Nessun nodo da attraversare Vulnerabile ai guasti della rete Solo due nodi alla volta possono comunicare Bus Nessuna topologia precisa Resistente ai guasti (se routing dinamico) Più nodi possono comunicare contemporaneamente Complesso Più nodi da attraversare Irregolare
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 La struttura dei messaggi dipende dallo standard utilizzato ma è possibile dare una descrizione generale: Fine messaggio Caratteri di controllo Dati da inviare Destinatario Mittente Inizio messaggio Introduzione Parte utile del messaggio Sequenza di controllo
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 Connectionless Packet Switched Circuit 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 Circuit Switching Packet Switching 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 Cell Switching bassa complessità spreco di risorse hardware 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 A B X Y 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 3. Livello rete Routing (instradamento) 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 6 5 4 3 2 1 Applicazione Presentazione Sessione Trasporto Rete Data Link Fisico 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 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 6 5 4 3 2 1 Applicazione Presentazione Sessione Trasporto Rete Data Link 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 6 5 4 3 2 1 Applicazione Presentazione Sessione Trasporto Rete Data Link Fisico
Livelli del modello ISO-OSI 7 6 5 4 3 2 1 Applicazione Presentazione Sessione Trasporto Rete Data Link 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 6 5 4 3 2 1 Applicazione Presentazione Sessione Trasporto Rete Data Link 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 6 5 4 3 2 1 Applicazione Presentazione Sessione Trasporto Rete Data Link 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 6 5 4 3 2 1 Applicazione Presentazione Sessione Trasporto Rete Data Link 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 L7 Invia file “pippo.txt” Ricevi file L6 Converti file L5 Apri dialogo Chiudi dialogo L4 Segmenta file Ricomponi file L3 Invia msg1, msg2, … Ricevi msg1, msg2, … L2 Aggiungi dati controllo Verifica messaggi L1 Connessione fisica
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
Per es. invio file pippo.txt Il modello ISO-OSI Per es. invio file pippo.txt L7 L7 Mittente L6 L6 Destinatario L5 L5 L4 L4 L3 L3 L2 L2 L1 Rete fisica L1
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) Trasporto Rete Network Access Applicazione Livelli del TCP/IP
TCP/IP e ISO/OSI: confronto 7 6 5 4 3 2 1 Applicazione Presentazione Sessione Trasporto Rete Data Link Fisico Trasporto Rete Network Access Applicazione TCP/IP ISO/OSI
Entità del TCP/IP HTTP-FTP-Telnet-DNS-POP3/IMAP Applicazione Trasporto Rete Network Access Applicazione HTTP-FTP-Telnet-DNS-POP3/IMAP SMTP-BGP-SNMP-RIP-RTP TCP-UDP IP-ICMP 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 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 Trasporto Rete Network Access Applicazione
Panoramica sui livelli del TCP/IP 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 Trasporto Rete Network Access Applicazione
Panoramica sui livelli del TCP/IP Trasporto Rete Network Access Applicazione 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
Panoramica sui livelli del TCP/IP 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 Trasporto Rete Network Access Applicazione
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 (giga-ethernet) 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 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à Rete logica Client Per es. un sito Web Server
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: 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