Perché una rete? condivisione di risorse –riduzione costi –modularità –affidabilità e disponibilità comunicazione fra utenti –scambio di informazioni –collaborazione a distanza
Evoluzione dei sistemi informatici
Dimensione di una rete Reti locali (Local Area Network, LAN) –Di limitata estensione. –Collegano dispositivi collocati nello stesso edificio o in edifici adiacenti. Reti metropolitane (Metropolitan Area Network, MAN) –Collegano di dispositivi collocati nella stessa area urbana. Reti geografiche (Wide Area Network, WAN) –Collegano di dispositivi diffusi in un’ampia area geografica (nazione, continente, …). “Reti di reti” (Internetwork) –Collegano più reti differenti (in termini sia hardware che software) mediante opportuni elementi di interfaccia, che si possono estendere su tutto il pianeta (e.g. Internet).
Dimensione di una rete Rete locale (LAN - Local Area Network) –collega due o più computer in un area non più grande di un palazzo –collega i computer di un laboratorio, gruppo di lavoro, ufficio, ditta Rete metropolitana (Metropolitan Area Network) –concettualmente simile ad una rete locale –collega computer di una singola organizzazione nella stessa area urbana (es., banca con filiali cittadine).
Dimensione di una rete Rete geografica (Wide Area Network) –nodi distribuiti su medio-lunga distanza (nazione, continente) Reti di reti –collega più reti differenti mediante opportuni elementi di interfaccia –può avere estensione mondiale –esempio: Internet
Topologie fisiche Lineare Anello Stella Punto a punto Wireless Mista
PC1PC2PC3PC4 Lineari economica (pochi collegamenti fisici) nessuna tolleranza ai guasti richiede una gestione logica dell'utilizzo del collegamento fisico da parte degli host
PC2 PC3 PC4 PC1 Anello economica nessuna tolleranza ai guasti ogni host riceve e ritrasmette il segnale dopo averlo ricevuto –l'utilizzo del collegamento fisico viene gestito automaticamente
PC2PC1 PC4PC3 hub Stella HUB: dispositivo hardware specializzato che smista le comunicazioni dei computer ottima tolleranza ai guasti economica
PC1PC2 PC3PC4 Punto a punto ottima tolleranza ai guasti altissimi costi per i collegamenti ( O(n 2 ) )
Wireless PC2 PC1PC4 PC3 hub ottima tolleranza ai guasti distanza massima limitata economica
Mista
Topologie logiche indipendentemente dalla sua topologia fisica, una rete ha una topologia logica che determina come i compter collegati alla rete possono trasmettere e ricevere dati due delle principali topologie logiche sono: –token ring –Ethernet
Token ring un token (un particolare gruppo di byte) viene continuamente passato da un computer all’altro un computer può trasmettere sulla rete solo quando e’ in possesso del token se un computer riceve un messaggio non destinato a lui, lo rimette in circolo
Ethernet quando un computer vuole comunicare invia il segnale sul cavo di collegamento –se un computer si accorge che un altro sta trasmettendo, aspetta –se si verifica un conflitto (due computer hanno tentato di comunicare contemporaneamente) i due computer si fermano e aspettano per un tempo T casuale, poi riprovano. velocità: 1 Gigabit al secondo oggi qualsiasi computer di qualsiasi tipo prevede la possibilità di usare una scheda Ethernet per connettersi alla rete locale torneremo a parlare di Ethernet più avanti
I servizi di una rete L’utente di un calcolatore in rete può: –Fruire di risorse informatiche condivise stampanti, dischi, calcolatori più potenti,... –Scambiare dati e messaggi con utenti di altri calcolatori connessi in rete documenti, , newsgroups, mailing-list, web,... –Eseguire applicazioni di uso individuale o di gruppo
Reti locali: I sistemi operativi di rete In una LAN si vogliono condividere risorse –di solito, almeno, stampanti e hard disk Il S.O. deve permettere anche l’uso di quelle risorse che non sono fisicamente collegate al computer su cui si sta lavorando –I S.O. dei computer in rete devono quindi dialogare fra loro per permettere la condivisione delle risorse.
Reti locali: I sistemi operativi di rete Il S.O. gestisce un file system distribuito –L’utente del file system vede un’unica struttura ad albero, ma alcune parti possono risiedere sull’hard disk di un altro computer della rete Quando si vuole eseguire un programma, il S.O. seleziona il computer (e quindi la CPU) piu’ scarico su cui il processo deve girare –non e’ detto che il programma venga fatto girare sulla CPU locale
Canali di trasmissione esistono diversi canali fisici di trasmissione –guidati Doppino telefonico –Velocità = bps Cavo coassiale –Velocità = bps Fibra ottica –Bit = assenza/presenza segnale luminoso –Velocità= 10 9 bps –non guidati onde elettromagnetiche satellite, antenne, infrarossi
Trasmissione digitale nelle reti locali, la comunicazione tra due computer passa di solito su cavi dedicati –installati esplicitamente per la rete, e adatti per la trasmissione digitale delle informazioni. (semplificando) su questi cavi si ha una variazione del livello di tensione (o della frequenza del segnale) fra due valori, che corrisponde alla trasmissione di bit di valore 0 oppure 1
Trasmissione analogica per le comunicazioni su lunga distanza, si cerca di sfruttare le reti di comunicazione analogica esistenti: ad esempio la rete telefonica la rete telefonica è però fatta per comunicare la voce, cioè un segnale analogico che varia in maniera continua in una banda di frequenze limitata sono necessari dei dispositivi per poter usare la rete telefonica come mezzo di comunicazione tra computer: i modem
COMPUTERMODEM Segnale digitale MODEMCOMPUTER Segnale digitale Segnale analogico linea telef. Il modem
Informazione = digitale (seq. Bit) Segnali = analogico (continuo) Il Modem (Modulatore-Demodulatore) trasforma bit in segnali e viceversa –Modulazione in frequenza il modem altera in frequenza una sequenza portante (0=freq più bassa, 1=freq più alta) –...modulazione in ampiezza, fase,
Il modem modem ADSL permettono la trasmissione su linea telefonica a 20 Mbit per secondo se due computer comunicano tramite un modem, la velocità di comunicazione è sempre quella del modem più lento
Trasmissione seriale/parallela trasmissione di un byte: –seriale: se il canale di comunicazione è fatto di un solo filo, il byte è trasmesso un bit per volta –parallela: se il canale di comunicazione ha 8 fili, possiamo trasmettere gli 8 bit in contemporanea la trasmissione parallela è più veloce, ma più costosa da implementare –viene usata di solito solo per collegamenti punto a punto e molto corti (es.: computer - stampante) la trasmissione seriale ò quella normalmente usata nelle reti, locali e non locali
Il canale di comunicazione: linea dedicata/commutata linea dedicata –la comunicazione avviene lungo un canale (linea fisica) dedicato esclusivamente ad essa Es: due PC connessi da un cavo di comunicazione linea commutata –il canale viene "costruito" per ogni nuova sessione di comunicazione, collegando singoli tratti di linee dedicate esempio: comunicazione tra due computer in Internet –altri computer fanno da tramite tra i due che devono comunicare, ritrasmettendo i loro messaggi –con le linee commutate si riducono i costi –2 modalità: commutazione di circuito commutazione di pacchetto
Commutazione di circuito: la rete telefonica i telefoni di un distretto telefonico fanno capo ad una centrale di smistamento, che comunica con le centrali degli altri distretti quando telefoniamo, la chiamata viene fatta passare attraverso una o più centrali, fino a raggiungere il numero chiamato comunicando fra loro, le centrali costruiscono una connessione diretta fra i due telefoni, che dura tutto (e solo) il tempo della telefonata.
Commutazione di circuito quando due telefoni comunicano, la linea e’ occupata: nessuno puo’ chiamare quei telefoni. che succede se usiamo una comunicazione a commutazione di circuito su internet? DISASTRO: qualsiasi servizio offerto sarebbe disponibile ad un solo utente per volta –ad esempio, chi riesce a connettersi ad un sito web lo può usare in esclusiva per tutto il tempo che vuole
Commutazione di pacchetto ogni messaggio è diviso in tanti pacchetti numerati di dimensione fissa ogni pacchetto contiene l’indirizzo del computer destinatario e del mittente ogni pacchetto è trasmesso separatamente –una volta inviato, il mittente se ne disinteressa ogni pacchetto fa (virtualmente) una strada diversa per arrivare al destinatario
Commutazione di pacchetto i pacchetti non arrivano necessariamente nello stesso ordine con cui sono stati inviati –il destinatario aspetta di aver ricevuto tutti i pacchetti per ricomporli e ricostruire il messaggio ogni pacchetto occupa il mezzo di trasmissione e la scheda di rete per un tempo molto breve –si ha un effetto di parallelismo: ogni computer può essere coinvolto contemporaneamente in più comunicazioni
A B Y Z X W A 2 2 Commutazione di pacchetto
Commutazione di pacchetto: instradamento (routing) come far arrivare i pacchetti a destinazione? ogni nodo della rete mantiene una tabella che indica a quale/quali vicini ritrasmettere un pacchetto non destinato a lui, in base all’indirizzo di destinazione del pacchetto la scelta del nodo a cui inoltrare il pacchetto dipende anche da situazioni temporanee di carico della rete, guasti, ecc.
Internet nata dalla fusione di reti di agenzie governative americane (ARPANET) e reti di università è una rete di reti, di scala planetaria, pubblica, a commutazione di pacchetto –sistema di comunicazione tra reti e sistemi eterogenei, oltre che geograficamente distribuiti utilizza protocolli di comunicazione di dominio pubblico derivati dal modello TCP/IP al giorno d’oggi è accessibile a tutti tramite provider che sono fisicamente collegati a Internet
Componenti di Internet Host (o sistema terminale) Commutatore di pacchetto (router) Modem Stazione base Collegamento satellitare
Componenti di Internet Rete aziendale ISP locale ISP distrettuale
Componenti di Internet host: –tradizionalmente, un PC, una workstation, o un computer più potente –sempre più connessi i sistema terminali come portatili, PDA, televisori, telefoni cellulari, automobili, elettrodomestici, ecc. collegamenti (communication link): –di vari tipi: cavi (di rami, fibre ottiche ecc.), onde elettromagnetiche (collegamenti senza fili, satellitari ecc.) commutatori di pacchetto (router): –i computer vengono connessi in un modo indiretto tramite dispositivi di instradamento –prendono informazioni da uno dei collegamenti e ritrasmettono su un altro collegamento (verso la destinazione finale)
Componenti di Internet ISP (Internet Service Provider): –potrebbe essere istituzionale (per esempio, le compagnie telefoniche), aziendale, universitari ecc. –contiene un insieme di collegamenti e commutatori di pacchetto –fornisce ai sistemi terminali vari tipi d’accesso ad Internet per esempio, dial-up a 56 Kbps via modem, a banda larga, senza fili ecc. –fornisce anche ai fornitori di contenuti l’accesso a Internet per esempio, per connettere un sito web a Internet
Il paradigma client-server Utente Client Server Internet 2.il client si collega al server e trasmette la richiesta 3.il server risponde al client 4.il client presenta la risposta all'utente 1.l'utente usa il client per esprimere le sue richieste
Il client si preoccupa di dialogare con l'utente sfrutta tutte le possibilità fornite dal calcolatore su cui viene eseguito (audio, video,...) fornisce all'utente un'interfaccia intuitiva elabora le richieste dell’utente e le risposte dei server –la comunicazione avviene secondo un formato standard (protocollo)
Il server rende disponibili delle risorse accetta richieste e risponde automaticamente –non bada alla provenienza della richiesta –il processo client può trovarsi in qualsiasi punto della rete si può organizzare un insieme di server in modo che siano collegati tra loro potrebbe essere eseguito dallo stesso calcolatore che esegue il processo client!
Client/server esempi di server (in una rete locale): –server gestore dei dati (file server): gestisce la memorizzazione e la condivisione di dati –server di stampa (printer server): gestisce le stampanti disponibili nella rete –server di comunicazione: permette l’accesso ad altre reti locali o ad Internet esempio di server (in Internet): –web server: risponde alle richieste per accedere a una pagina web –server di posta elettronica: riceve e memorizza , permette la lettura della casella di posta elettronica
Client/server tipicamente, in un certo (lungo) intervallo di tempo: –un host può essere client di molti server –un host può essere server di molti client per esempio: un client può richiedere tanti siti web, un web server può fornire una pagina web a tanti client Server Client
Client/server nel contesto di software per le reti: –programma client: un programma eseguito da un host che richiede e riceve un servizio da un programma server in esecuzione su un altro host –programmi Peer-to-peer (P2P): un programma P2P sull'host funziona sia come client che come server un host in questo caso viene chiamato peer un host agisce come client quando richiede un documento da un altro peer … agisce invece come server quando invia un file a un altro peer esempio: la telefonia Internet (Voice over IP), condivisione dei file (file sharing)
Scambio di informazioni affinché due computer possano scambiarsi dei dati sono necessari –un insieme di regole che regolano lo scambio di dati –un canale fisico di comunicazione tra i due calcolatori –la componente hardware della comunicazione –il software per la comunicazione
I protocolli I protocolli controllano l’invio e la ricezione di informazione in Internet, e nelle reti in generale –Usati dai sistemi terminali, i commutatori di pacchetto e altre parte di Internet Dal testo “Internet e Reti di Calcolatori” di Kurose e Ross: –“Un protocollo definisce il formato e l’ordine dei messaggi scambiati tra due o più entità in comunicazione, così come le azioni intraprese in fase di trasmissione e/o di ricezione di un messaggio o di un altro evento” I principali protocolli in Internet: nome collettivo di TCP/IP –TCP: Transmission Control Protocol –IP: Internet Protocol
Protocolli di comunicazione esempio: Tempo Ciao Sai l’ora? 2:00
Protocolli di comunicazione Tempo Richiesta di connessione TCP Get Risposta di connessione TCP
Protocolli di comunicazione esempio di protocollo usato quando si invia una richiesta per una pagina web: –il client invia la richiesta per una connessione al server web –il server web risponde con un messaggio di risposta di connessione –l client invia il nome della pagina che vuole prelevare tramite il messaggio "Get " –il server web restituisce il file contenente la pagina al client
Protocolli di comunicazione un protocollo "monolitico" che realizzi tutte le funzionalità necessarie per la comunicazione tra elaboratori in rete è difficile da realizzare inoltre, se cambia qualche componente della rete, si deve modificare l'intero protocollo per ridurre la complessità di progettazione la maggior parte dei protocolli è organizzata come una serie di livelli –il numero dei livelli, il loro nome, le funzionalità differiscono da una rete ad un'altra
Protocolli di comunicazione Francese a inglese Inglese a tedesco Tedesco
Protocolli di comunicazione nei protocolli di comunicazione di reti si ipotizzano dei livelli e –il livello n di un dispositivo in rete comunica (virtualmente) con il livello n di un altro dispositivo in realtà nessun dato viene trasferito da un livello n ad un altro (n>1) ma passa ad un livello sottostante –un protocollo di livello n svolge le sue funzioni usando i servizi forniti dal livello n-1 e fornisce i servizi al livello n+1
Protocolli di comunicazione per ogni coppia di livelli adiacenti esiste una interfaccia al di sotto del livello più basso c’è il mezzo fisico che serve per il trasferimento dei dati un livello di protocollo può essere implementato via software, hardware, o in modo combinato possibili svantaggi del uso dei livelli: –la possibilità che un livello duplichi le funzionalità di quello inferiore –un livello può richiedere informazioni presenti solo in un altro livello
Protocolli di comunicazione Utilizzati dai calcolatori per dialogare Come nel caso della codifica dei dati occorre utilizzare degli standard internazionali per problemi di compatibilità! Esempi –Modello ISO/OSI (Open System Interconnection) –Modello TCP/IP (standard de facto)
Protocolli di comunicazione il solo collegamento fisico non è sufficiente per permettere la comunicazione fra calcolatori –è necessario anche che ciascun calcolatore sia dotato di una applicazione in grado di effettuare il trasferimento delle informazioni nella comunicazione tra calcolatori, è necessaria la presenza di uno strato software che consenta lo scambio di dati sulla base di un protocollo un protocollo di comunicazione è un insieme di regole e convenzioni che controllano lo scambio di informazioni in una comunicazione –messaggi consentiti e loro formato
I due filosofi due filosofi, uno africano e uno cinese, vogliono discutere dell’oryctolagus cunilicus (il coniglio) –l'africano vuole esprimere la sua simpatia per i conigli Problema1 –i due filosofi non parlano la stessa lingua, né riescono a trovare un interprete che conosca le loro lingue –l'africano parla swaily, il cinese parla cinese e francese Soluzione –I filosofi possono comunque accordarsi su una lingua da usare nella comunicazione: il danese –possono poi comunicare utilizzando due interpreti, ciascuno dei quali sa tradurre da una delle lingue note a uno dei filosofi alla lingua usata per la comunicazione
I due filosofi Problema2 –i due filosofi non vivono nello stesso luogo, e non sono abituati a viaggiare Soluzione –i due possono comunque decidere di comunicare in altro modo: usando l'
I due filosofi con gli accordi presi, i due filosofi possono effettivamente comunicare –hanno adottato due diversi protocolli di comunicazione un protocollo relativo alla lingua (il danese) un protocollo relativo al mezzo di comunicazione (il fax) –la comunicazione tramite è possibile grazie alla rete mondiale Internet basata su protocolli che fissano gli standard internazionali sulle caratteristiche elettriche e temporali dei segnali utilizzati per le reti di computer
Protocolli di comunicazione I due filosofi
Protocollo TCP/IP cinque livelli: Applicazione Trasporto Rete Collegamento Fisico Applicazione Trasporto Rete Collegamento Fisico
TCP/IP IP TCPUDP HTTPFTPSMTPTELNETDNS… … Livello "Applicazione" Livello "Trasporto" Livello "Rete" Livello "Collegamento" Livello "Fisico"
ruolo: inviare e ricevere singoli bit da un nodo (host, commutatore, ecc.) nella rete a un altro protocolli dono dipendenti dall’effettivo mezzo trasmissivo del collegamento –cavo, wifi, satellite, ecc. Applicazione Trasporto Rete Collegamento Fisico
Livello "Collegamento" ruolo: trasferimento fisico di sequenze di bit (pacchetti) da un nodo della rete al successivo consegna affidabile esempi: Ethernet, PPP (protocollo punto- a-punto) Applicazione Trasporto Rete Collegamento Fisico
Ethernet Ethernet: diffuso per le reti locale, in cui un numero di computer condividono un mezzo di comunicazione –quando un computer vuole comunicare, verifica che il mezzo di comunicazione sia libero e invia il segnale –se invece si accorge che un altro computer sta trasmettendo, aspetta –se si verifica un conflitto (due o più computer hanno inviato i loro messaggi contemporaneamente) i computer coinvolti: si fermano aspettano per un tempo T casuale riprovano la trasmissione lo stesso tipo di gestione di conflitti: anche in reti senza fili (IEEE ) Applicazione Trasporto Rete Collegamento Fisico
Livello "Rete" ruolo: trasferimento di gruppi di pacchetti dall'origine alla destinazione (da un host a un altro) due principali componenti: –protocollo IP: definisce l’informazione che deve essere aggiunto al pacchetto per realizzare il trasferimento nella rete –protocolli per instradamento: determinano i percorsi che i pacchetti devono seguire nella rete Internet è una rete di reti: ognuna può scegliere il proprio protocollo di instradamento spesso chiamato livello IP Applicazione Trasporto Rete Collegamento Fisico
Livello "Trasporto" ruolo: trasferimento di messaggi completi dal livello di applicazione dall’origine alla destinazione (da un host a un altro) in Internet, due protocolli di trasporto: –TCP (Transmission Control Protocol): garantisce il trasferimento dei messaggi frazione il messaggio in frammenti più brevi (pacchetti) –UDP: non fornisce nessuna garanzia di consegna di un messaggio (tipicamente usati per la telefonia Internet e la videoconferenza) Applicazione Trasporto Rete Collegamento Fisico
Pacchetti IP abbiamo visto che … –il ruolo del protocollo TCP è di suddividere il messaggio in frammenti più brevi (pacchetti) –il protocollo IP definisce l’informazione che deve essere aggiunto al pacchetto per realizzare il trasferimento nella rete Come funziona il trasferimento dei pacchetti in Internet?
Pacchetti IP trasferimento dei pacchetti: –Usiamo un’analogia (da Vincent Cerf, uno dei inventori di Internet): mandare un romanzo da Tahiti alla casa editrice a New York usando solo cartoline postali
Pacchetti IP bisogna spezzare il romanzo in frammenti (ognuno di poche riga) … numerare ogni cartolina (in modo tale che la sequenza corretta può essere ricostruita) … scrivere l’indirizzo della casa editrice (il destinatario) su ogni cartolina … mettere le cartoline nella casella di lettere poi il servizio postale di Tahiti le invierà alla casa editrice
Pacchetti IP non è detto che tutte le cartoline seguano lo stesso itinerario –Alcuni arrivano a New York via Hong Kong … –… alcuni arrivano a New York via Los Angeles, ecc. Alla casa editrice, la numerazione delle cartoline permette la ricostruzione del romanzo
Pacchetti IP pacchetto IP: contiene lo spazio per scrivere: –informazione (una quantità limitata) –un numero progressivo (identificatore) –L'indirizzo IP del destinatario i pacchetti IP sono inviati attraverso Internet uno alla volta possono seguire percorsi diversi dallo stesso mittente e lo stesso destinatario giunti la destinazione sono reordinati secondo al numero identificatore
Pacchetti IP un vantaggio della possibilità di seguire diversi percorso in rete: –nel caso di congestioni in rete (potrebbe essere più efficiente seguire un percorso invece di un altro) –nel caso di un guasto di un dispositivo di un percorso (in questa situazione, il percorso non è più disponibile) per visualizzare un percorso tra nostro computer e quello di un sito web:
Livello "Applicazione" ruolo: varie funzioni relative ai programmi applicativi esempi: –SMTP: Simple Mail Transfer Protocol –FTP: File Transfer Protocol –TELNET –HTTP: HyperText Transfer Protocol –DNS: Domain Name System le applicazioni client/server inviano e ricevono messaggi di vari tipi (per esempio, messaggi di richiesta per l'invio di una pagina web, un messaggi contenenti , ecc.) Applicazione Trasporto Rete Collegamento Fisico
Indirizzi IP e DNS ogni computer collegato in Internet ha un indirizzo unico: il suo indirizzo IPv4 un indirizzo IPv4 contiene 32 bit, che sono suddivisi in 4 campi da 8 bit ciascuno –Per esempio: –Suddivisi in: di solito si usa una rappresentazione formata da 4 numeri decimali (tra 0 e 255) separati da un punto –Per esempio: IPv6: 8 gruppi di 4 cifre esadecimali (128 bit, 3.4×10 38 indirizzi)
Indirizzi IP e DNS gli indirizzi IP devono essere univoci –Per questo motivo è stata istituita una organizzazione, Internet Assigned Number Authority, preposta ad assegnare gli indirizzi IP garantendone l’univocità il provider (ISP) ai computer collegati da casa un indirizzo IP scegliendolo tra quelli che ha acquistato
Indirizzi IP e DNS gli indirizzi IP numerici sono difficili da ricordare si usano quindi degli indirizzi simbolici che sono più significativi per l’essere umano – cs.bham.ac.uk, developer.netscape.com questi nome vengono tradotti in indirizzi IP numerici mediante il Domain Name System (DNS) gli indirizzi simbolici hanno un formato come quello seguente … nome5.nome4.nome3.nome2.nome1
Indirizzi IP e DNS sono costruiti a partire da uno schema gerarchico di nomi basato sul concetto di dominio gnu comedugovmilnetorgauitzw unitounige dipsych www disi elios www … … root Livello 1 Livello 2 Livello 3 Livello 4
Indirizzi IP e DNS domini di primo livello (top level): alcuni esempi non vi è alcuna corrispondenza diretta tra i domini e le reti che costituiscono Internet –Cioè, computer nella stessa rete fisica possono essere in domini logici diversi –Computer in reti fisiche diverse possono trovarsi nello stesso dominio logico comaziende eduuniversità americane govistituzioni governative milistituzioni militari netfornitori d’accesso orgorganizzazioni non-profit …… auAustralia chSvizzera frFrancia itItalia jpGiappone ukRegno Unito ……
Indirizzi IP e DNS anche gli indirizzi di posta elettronica hanno una struttura: –La parta a destra ha una struttura basato sui domini (interpretato dal computer che spedisce il messaggio) –La parta a sinistra è l’identificativo dell’utente (interpretato dal computer che riceve il messaggio) si usano i name server (anche chiamati i server DNS) che gestiscono la corrispondenza tra nomi simbolici e indirizzi IP numerici
Indirizzi IP e DNS quando un'applicazione ha bisogno di una risorsa di cui conosce il nome logico (ad es., invia una richiesta al suo name server locale il name server locale, se conosce la risposta, la invia direttamente al richiedente altrimenti interroga il name server di top level (root) –questo può conoscere l’indirizzo oppure inoltrare l’interrogazione ai suoi figli nella gerarchia Client che fa richiesta: Server dei nomi locale: dns.infostrada.it Server dei nomi di root Server del dominio dns.unige.it
Indirizzi IP e DNS Si continua con le interrogazioni fino a quando non si ottiene l’indirizzo IP numerico della risorsa Quando l’applicazione riceve la risposta crea una connessione TCP con la destinazione, usando l’indirizzo IP appena ricevuto Server dei nomi locale: dns.infostrada.it Server dei nomi di root Server del dominio dns.dibris.unige.it Client che fa richiesta:
WWW WWW (World Wide Web): tutti i web server (che hanno il ruolo di inviare file ai browser) e i loro file i file normalmente sono le pagine web, ma anche possono essere file di audio, filmati ecc. distinzione tra Internet e il WWW: –Internet: cavi e router che collegano i computer che hanno un indirizzo IP –WWW: un servizio di Internet fornito dal sottoinsieme di quei computer (i web server)
WWW Una richiesta per visualizzare una pagina web: tramite uno Universal Resource Locator (URL) –Per esempio: –Tre parti principali: Protocollo: indica al computer come gestire i file Nome del server: che è il nome simbolico dell'indirizzo IP del web server della pagina richiesta Percorso della pagina: /wordpress/fdi-2016 identifica il file e la sua posizione nel file system del web server
WWW le pagine sono scritte in linguaggio HTML –una descrizione di come la pagina deve apparire all'utente –richiedono meno spazio rispetto ad un formato grafico –il browser può adattare la visualizzazione di una pagina
La sicurezza nelle reti comunicazione sicura: voluta per le transazioni commerciali in Internet, informazione sulla sicurezza nazionale, messaggi personali, ecc. –problema: Internet è una rete pubblica, e informazione può essere intercettata attacchi a una rete privata possono arrivare dall’esterno Firewall: un dispositivo posizionato tra una rete privata (di un'organizzazione) e l'esterno –Controlla e regola l’entrata e l’uscita di pacchetti, per evitare che i pacchetti di malintenzionati penetrino la rete
La sicurezza nelle reti riservatezza: solo il mittente e il destinatario dovrebbero essere in grado di comprendere il contenuto del messaggio trasmesso –un messaggio può essere intercettato: quindi dovrebbe essere cifrato (dal mittente) e decifrato (dal destinatario) –il messaggio cifrato dovrebbe essere incomprensibile a chi non possiede il codice di decifratura –esistono altri tipi di riservatezza: per esempio, forse il mittente vuole mantenere segreto non solo il contenuto del messaggio mandato al destinatario, ma anche il fatto che sta comunicando con il destinatario
La sicurezza nelle reti autenticazione: il mittente e il destinatario devono essere reciprocamente sicuri della loro identità integrità del messaggio: il contenuto di una comunicazione non deve subire alterazioni durante la trasmissione –Alterazioni: per esempio, a manipolazioni disponibilità e controllo dell’accesso: i servizi forniti devono essere disponibili e accessibili agli utenti autorizzati in rete attacchi di negazione del servizio (Denial-of-Service): rende inutilizzabili reti, host e altre componenti di Internet da parte degli utenti
La sicurezza nelle reti durante la comunicazione, un malintenzionato potrebbe: –ascoltare i messaggi in transito (per esempio, per rubare un password) –rimuovere e aggiungere messaggi o modificare il loro contenuto A: mittente (sicuro) B: destinatario (sicuro) Malintenzionato Dati Messaggi
Crittografia crittografia: consente il mittente di mascherare i dati in modo che un malintenzionato non possa comprendere il contenuto il destinatario deve essere in grado di recuperare i dati originali testo in chiaro (plaintext o cleartext): il messaggio originario scritto dal mittente messaggio cifrato (ciphertext): la versione cifrata del messaggio
Crittografia in molti casi le tecniche di crittografia sono nel dominio pubblico –occorrono delle informazioni segrete che impediscono ai malintenzionati di decifrare i messaggi: le chiavi –il mittente ha una chiave K A usata per generare la versione cifrata K A (m) del messaggio m in testo in chiaro –il destinatario ha una chiave K B e un algoritmo di decifratura che restituisce il messaggio m in testo in chiaro: cioè calcola K B (K A (m))=m
Crittografia A: mittente (sicuro) B: destinatario (sicuro) Malintenzionato Testo in chiaro Testo cifrato Testo in chiaro Chiave K A Chiave K B
Chiave simmetrica le chiavi di A (mittente) e B (destinatario) sono identiche e segrete per esempio: un antico algoritmo - cifrario di Cesare –considerare un messaggio di testo –sostituire ogni carattere del testo con un altro sfasato (rispetto al primo) i un numero k di posti nell’alfabeto –per esempio: se k=3, “a” diventa “d”, “c” diventa “f”, ecc. –ciclico: a volta terminato l’alfabeto si ricomincia con la lettera “a” –la chiave: il valore k –"Brad, I love you. Angelina" (con k=3) diventa "eudg, l oryh brx. dqjholqd" (nell'alfabeto inglese)
Chiave simmetrica per esempio: cifrario monoalfabetico –considerare un messaggio di testo –sostituire ogni carattere del testo con un altro, ma la sostituzione avviene seguendo uno schema arbitrario –però una data lettere è sostituita con sempre la stessa lettera –per esempio: "Brad, I love you. Angelina" diventa "bomv, s gktc wky.mjzcgsjm" abcdefghijklmnopqrstuvwxyz mnbvcxzasdfghjklpoiuytrewq
Chiave simmetrica nel caso di cifratura monoalfabetica: un attacco può essere basato sulla ricerca tra tutti le combinazioni possibili (un attacco di "forza bruta") –alcune lettere e gruppi di lettere (in italiano, "che", "zione" e "mente") ricorrono con maggiore frequenza: rende più facile un attacco al codice cifratura polialfabetica: usa moltiplici sostituzioni monoalfabetiche –per esempio, la sequenza C1 C2 C2 C1 C2 –cifrare la prima lettera del messaggio usando C1, la seconda lettera con C2, …, la quinta con C2 –poi ripetiamo la sequenza: la sesta lettera è cifrata con C1, la settima con C2, ecc.
Chiave pubblica svantaggio delle chiavi simmetriche: le due parti coinvolte nella comunicazione devono sapere la chiave –ma come? comunicato fisicamente? tramite un canale sicuro? una soluzione: chiave pubblica –proposta da Diffie e Hellman nel 1976 –il sistema usa due chiavi: una chiave pubblica (K B + ): disponibile a chiunque, anche alle malintenzionati una chiave privata (K B - ): conosciuta solo del destinatario della comunicazione
Chiave pubblica uso delle due chiavi: –il mittente usa un dato algoritmo di cifratura e la chiave pubblica K B + per generare un messaggio criptato (scritto K B + (m) ) –il destinatario usa un algoritmo di decifratura e la chiave privata K B - per decodificare il messaggio criptato (cioè il destinatario calcola K B - (K B + (m)) ) –esistono metodi per scegliere chiavi pubbliche e private in modo tale che K B - (K B + (m)) = m
Chiave pubblica A: algoritmo di cifratura B: algoritmo di decifratura Messaggio in chiaro, m Testo cifrato K B + (m) Chiave pubblica K B + Chiave privata K B - Messaggio in chiaro, m K B - (K B + (m))
Chiave pubblica: RSA il sistema a chiave pubblica RSA è il più noto dei sistemi a chiave pubblica –RSA: nome derivato dalle iniziali degli inventori Rivest, Shamir e Adleman –due punti fondamentali: la scelta della chiave pubblica e di quella privata gli algoritmi di cifratura e di decifratura –basato sui numeri primi: i numeri naturali che sono divisibili solo per 1 e per se stessi: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, …
RSA prendere p & q primi [p = 29, q = 31] si calcola n = p * q [n = 29 * 31 = 899] si calcola t = (p -1) * (q – 1) [t = (29 – 1) * (31 – 1) = 840] prendere e primo tale che t non sia divisibile per e [e = 11] prendere d tale che d * e mod t = 1 [d = 611] chiave pubblica è (n,e) [(899,11)] chiave privata è (n,d) [(899,611)] per codificare un messaggio M: –C = M e mod n per decodificare un messaggio C: –M = C d mod n
RSA la lunghezza in bit di n può essere 512, 1024, 2048, ecc. per calcolare (n,d) (la chiave privata) partendo da (n,e) (la chiave pubblica) bisognerebbe fattorizzare n per trovare p e q la fattorizzazione di un numero intero è stato dimostrato che richiede tempi esponenziali –nel 2009 la fattorizzazione di un numero a 512 bit ha richiesto 73 giorni usando un computer –nel 2010 la fattorizzazione di un numero a 768 bit ha richiesto due anni usando centinaia di computer –si ritiene che un numero intero a 4096 bit non sarà fattorizzabile nel prossimo futuro ma un computer quantistico potrebbe fattorizzare un numero intero in tempo polinomiale
Chiave pubblica: RSA Per ottenere la chiave pubblica e la chiave privata, il destinatario deve: 1.Scegliere due numeri primi, p e q (tanto più grande sarà il loro valore tanto più difficile risulterà violare RSA: raccomandato che il prodotto di p e q sia dell’ordine di 768 o 1024 bit) 2.Calcolare n = pq e z = (p-1)(q-1) 3.Scegliere un numero e (encryption), tale che e<n, diverso da 1 e che non ha fattori in comune con z 4.Scegliere un numero d (decryption), tale che ed – 1 sia un multiplo di z (in altri termini, tale che il resto della divisione ed/z sia 1) 5.La chiave pubblica K B + è la coppia (n, e), la chiave privata K B - è la coppia (n, d)
Chiave pubblica: RSA Angelina vuole inviare a Brad un numero m, tale che m<n Per codificarlo, Angelina usa la chiave pubblica (n, e) per calcolare il messaggio cifrato c, dove c = m e mod n Per decifrare il messaggio ricevuto, Brad usa la chiave privata per calcolare m = c d mod n La scelta di e e d garantisce che (m e mod n) d mod n = m
Chiave pubblica: RSA Esempio (artificiale): –Brad sceglie p=5 e q=7 –Poi n = pq = 35, e z = (p-1)(q-1) = 24 –Brad sceglie e = 5 (5 e 24 non hanno fattori in comuni) –Brad sceglie d = 29 ((5x29) – 1 è divisibili per 24) –Brad rende pubblica la chiave (35, 5), e mantiene segreta la chiave (35, 29) –Angelina vuole inviare le lettere “l”, “o”, “v”, “e” a Brad –Interpretiamo le lettere come numeri fra 1 e 26 (i numeri corrispondono alle posizioni delle lettere nel alfabeto inglese)
Chiave pubblica: RSA Esempio: –Codifica di Angelina (chiave pubblica n=35, e=5) –Decodifica di Brad (chiave privata n=35, d=29) Lettere in chiarom: rappresentazione numericameme Testo cifrato c=m e mod n l o v e Testo cifrato ccdcd m=c d mod nLettere in chiaro l o v e
Chiave pubblica: RSA Perché funziona RSA? –(m e mod n) d mod n = (m e ) d mod n = m ed mod n –Teorema: se p e q sono primi, e n = pq, allora: x y mod n = x y mod (p-1)(q-1) –Applicando questo risultato, possiamo scrivere: m ed mod n = m (ed mod (p-1)(q-1)) mod n –Ricordiamo che e e d sono tali che ed – 1 sia divisibile per (p-1)(q-1) –Quindi il resto di (p-1)(q-1)/ed è 1 –Così ed mod (p-1)(q-1) = 1 –Dato che m<n, abbiamo: m (ed mod (p-1)(q-1)) mod n = m 1 mod n = m –Poi abbiamo il risultato che volevamo: m ed mod n = m
Chiave pubblica: RSA l'efficacia di RSA: –non si conoscono algoritmi veloci per la fattorizzazione dei numeri interi –quindi, anche con la conoscenza del numero n, è computazionalmente proibitivo calcolare i fattori p e q –se un algoritmo veloce per la fattorizzazione sia sviluppato, il sistema RSA non sarebbe più sicuro