Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli La comunicazione in rete: i problemi! Esempio: applicazione per scambio messaggi di testo tra due utenti! Il calcolatore A su cui gira l applicazione del mittente deve poter inviare pacchetti al calcolatore B su cui gira l applicazione del destinatario (indirizzo univoco)! Lungo il percorso possono esserci diversi sistemi di comunicazione che possono usare diversi mezzi di trasmissione e dar luogo a errori di trasmissione! I pacchetti possono fare percorsi diversi e arrivare in un ordine diverso da come erano partiti! I pacchetti inviati al calcolatore B devono essere recapitati all applicazione a cui sono destinati! E impossibile delegare la risoluzione alle applicazioni:! La complessità delle applicazioni aumenterebbe (necessario risolvere problemi di gestione della rete)! Soluzioni ad hoc, incompatibilità tra applicazioni diverse e tra applicazioni e infrastrutture di rete Daniela Fogli Elementi di Informatica e Programmazione 2 Il modello a livelli La metafora dei dirigenti d azienda! Per risolvere i problemi suddetti le reti di calcolatori vengono organizzate secondo un architettura a livelli! Ciascun livello definisce un particolare aspetto della comunicazione a un certo livello di astrazione! Ciascun livello fornisce servizi al livello immediatamente superiore, mascherando il modo in cui questi sono realizzati! A tale scopo, ciascun livello sfrutta a sua volta i servizi forniti dal livello inferiore (eccetto il livello più basso)! Ogni livello è caratterizzato dalla sua interfaccia verso il livello superiore Egregio dott. Tersili, con la presente Le segnalo la disponibilità di un prodotto software rivoluzionario sviluppato dalla nostra azienda che Dott. Tersili SPECTRA via Messaggio UFF. POSTALE UFF. POSTALE Egregio dott. Tersili, con la presente Le segnalo la disponibilità di un prodotto software rivoluzionario sviluppato dalla nostra azienda che Dott. Tersili SPECTRA via Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4
I protocolli di comunicazione Livelli, protocolli e interfacce! Ad ogni livello i sono presenti due entità, dette peer, che realizzano il servizio di competenza del livello i (a beneficio del livello superiore i+1)! Le entità realizzano il servizio interagendo tra loro (scambio di pacchetti o entità dati del livello i).! Protocollo di comunicazione (del livello i): insieme di regole con cui le entità devono comunicare. Specifica fra l altro:! la struttura dei pacchetti (inclusa definizione delle informazioni di controllo)! le modalità che regolano il dialogo! Per utilizzare un servizio, è necessario conoscere solo l interfaccia del livello corrispondente indipendenza tra i livelli! (es. indipendenza dal mezzo fisico utilizzato!) Interfaccia livello 4/5 Interfaccia livello 3/4 Interfaccia livello 2/3 Interfaccia livello 1/2 Livello 5 Livello 4 Livello 3 Livello 2 Livello 1 Protocollo di livello 5 Protocollo di livello 4 Protocollo di livello 3 Protocollo di livello 2 Protocollo di livello 1 Mezzo fisico Architettura di rete: stabilisce l insieme dei livelli + i relativi protocolli Esempi: ISO/OSI, TCP/IP Livello 5 Livello 4 Livello 3 Livello 2 Livello 1 Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6 Il modello TCP/IP I livelli del modello TCP/IP (1)! E il modello adottato nella rete Internet! Insieme di protocolli basato su! TCP (Transmission Control Protocol)! IP (Internet Protocol)! Successo commerciale di TCP/IP: affidabilità, efficienza, è diventato uno standard di fatto! Livello applicazione! a questo livello operano le applicazioni utilizzate dagli utenti per inviare e ricevere messaggi! i protocolli di comunicazione da esse adottati fissano la tipologia, la struttura e il significato dei messaggi e le regole secondo cui i processi inviano e rispondono ai messaggi! esempi di protocolli: HTTP, SMTP, POP3, FTP! TCP/IP è impostato su un architettura a cinque livelli. Nel seguito vengono esaminati partendo dall alto Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8
I livelli del modello TCP/IP (2) I livelli del modello TCP/IP (3)! Livello trasporto! Fornisce un servizio di comunicazione fra processi applicativi eseguiti su host diversi: trasporto di un messaggio da un processo applicativo in un calcolatore ad un ben determinato processo applicativo ad un altro calcolatore! Ciascun processo in esecuzione su un calcolatore che richieda servizi di rete viene identificato da un numero di porta - numero a 16 bit, assegnato dal livello di trasporto al processo stesso! Le unità dati trasmesse sono dette segmenti! Due protocolli:! UDP: non affidabile! TCP: affidabile, usa un numero di sequenza e prevede l invio al mittente di un riscontro! E realizzato come modulo del sistema operativo! Livello rete! Fornisce un servizio di comunicazione fra host, ovvero trasferisce i segmenti consegnati dal livello trasporto da un host sorgente a un host destinazione eventualmente attraverso uno o più router! Si occupa della determinazione del percorso e lo smistamento dei pacchetti lungo la rete (mascheramento del problema dell instradamento)! Le unità dati trasmesse sono dette datagrammi! Il livello rete è anch esso parte del sistema operativo Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione 10 Livelli negli Host e nei Router Indirizzi IP host A host B APPLICAZIONE TRASPORTO protocollo di livello applicazione protocollo di livello trasporto router router APPLICAZIONE TRASPORTO! A livello rete i nodi della rete sono identificati dagli indirizzi IP! Per ogni calcolatore, il suo indirizzo è contenuto in un file di configurazione del sistema operativo (o comunque memorizzato via sw) ed è indipendente dalla scheda di rete utilizzata: identifica il nodo a livello globale! L unicità degli indirizzi IP è assicurata da un autorità centrale:! ogni volta che viene installata una nuova rete locale è necessario richiedere all autorità centrale un nuovo insieme di indirizzi! nella pratica possono essere richiesti a un fornitore di servizi Internet (Internet Service Provider): un azienda privata o pubblica che offre connettività alla rete a terze parti (aziende, enti pubblici, privati cittadini) PROBLEMA: COME IDENTIFICARE I NODI A LIVELLO GLOBALE? Daniela Fogli Elementi di Informatica e Programmazione 11 Daniela Fogli Elementi di Informatica e Programmazione 12
Indirizzo IP Assegnamento indirizzi IP! Un indirizzo IP (IP address) è lungo 32 bit (4 byte) = 2 32 possibili indirizzi diversi (protocollo IPv4)! Rappresentati in genere in forma decimale! successione di quattro numeri (uno per byte), separati da un punto (e.g. 192.167.20.224)! ognuno dei quattro numeri è compreso tra 0 e 255! E in fase di sperimentazione il protocollo IPv6 che utilizza 128 bit anziché 32! Ad ogni host connesso alla rete locale viene attribuito uno degli indirizzi attraverso una delle seguenti modalità:! IP Statico! IP Dinamico! IP Statico! L indirizzo è assegnato ad un host in modo permanente! Si inserisce manualmente l indirizzo in uno specifico file di configurazione! Indirizzo riservato all host anche quando questo non è effettivamente collegato alla rete! Dinamico! Ogni volta che intende accedere alla rete, un host richiede un indirizzo ad una specifica applicazione disponibile nella rete! L interazione avviene tramite il protocollo DHCP (Dynamic Host Configuration Protocol)! L applicazione seleziona un indirizzo IP fra quelli disponibili! L indirizzo torna disponibile una volta che l host non è più connesso Daniela Fogli Elementi di Informatica e Programmazione 13 Daniela Fogli Elementi di Informatica e Programmazione 14 Riassumendo: come è identificato un processo applicativo in rete! Schema di indirizzamento generale su due livelli: indirizzo IP + numero di porta! ogni processo applicativo che usa la rete può essere identificato da tale indirizzo! Indirizzo IP! indirizzo associato a ogni calcolatore collegato a una sottorete! è un indirizzo Internet globale unico, utilizzato dal livello rete per l instradamento e la consegna dei pacchetti! Numero di porta! indirizzo unico all interno dell host che individua un processo attivo sull host! utilizzato dal livello trasporto per consegnare i dati al processo giusto Comunicazione attraverso TCP/IP Livello Applicazione App. X Livello TCP Livello IP App. Y Data Link Livello Fisico HOST A 1 Punti di accesso al servizio (porte) 2 Connessione logica (TCP) Livello TCP Indirizzo di rete (globale) ROUTER ROUTER HOST B Livello Applicazione App. X Livello IP Datalink App. Y Livello Fisico Livello IP Livello IP Datalink Datalink Livello Fisico Livello Fisico Daniela Fogli Elementi di Informatica e Programmazione 15 Daniela Fogli Elementi di Informatica e Programmazione 16
I livelli del modello TCP/IP (4) Realizzazione del servizio! Livello datalink! Il servizio consiste nel trasportare datagrammi tra due nodi collegati da una linea di comunicazione! Per identificare il nodo a cui spedire usa l indirizzo MAC (Media Access Control) identificativo numerico a 48 bit scritto nella ROM della scheda di rete! Nelle reti broadcast il livello datalink si occupa anche di gestire il problema dell accesso multiplo (es. usando protocollo CSMA/CD)! E realizzato nella scheda di rete del calcolatore Scheda di rete calcolatore mittente + MAC address Livello data link flusso di bit Livello fisico Protocollo livello data link + MAC address Livello data link flusso di bit Livello fisico Scheda di rete calcolatore ricevente! A partire dal datagramma da spedire e l indirizzo MAC di destinazione: creazione di un frame la cui intestazione (header) include il MAC! Trasmissione del frame attraverso il livello fisico! All arrivo: esame del MAC, se non coincide con quello della scheda di rete il frame non viene considerato, altrimenti viene estratto il datagramma e passato al livello superiore (di rete) Livello rete Livello data link ( MAC ) Unità dati a livello datalink (frame) Protocollo livello data link ( MAC ) Unità dati a livello datalink (frame) Daniela Fogli Elementi di Informatica e Programmazione 17 Daniela Fogli Elementi di Informatica e Programmazione 18 I livelli del modello TCP/IP (5) Modem! Livello fisico! Il servizio consiste nella trasmissione e ricezione di un flusso di bit attraverso una determinata linea di comunicazione;! E realizzato nella scheda di rete del calcolatore, nei modem e nei mezzi di trasmissione! Protocollo di comunicazione: riguarda caratteristiche quali codifica dei dati trasmessi, frequenza di trasmissione,! Determina (insieme alle caratteristiche fisiche della linea): velocità di trasmissione, ritardo di propagazione, tasso di errore flusso di bit Livello fisico Protocollo livello fisico Linea di comunicazione flusso di bit Livello fisico! Dispositivo che permette di trasferire dati da un calcolatore a un altro attraverso la linea telefonica! Effettua la conversione tra la modalità di codifica digitale adottata all interno del calcolatore e la modalità di codifica richiesta dalla linea telefonica! A seconda della codifica (per sfruttare la banda messa a disposizione dal doppino telefonico) diverse prestazioni:! Modem classico : velocità di trasmissione dei dati fino a 56 Kbit/s! Modem ADSL (Asymmetric Digital Subscriber Line): velocità di download (da 640 kb/s a diverse decine di Mb/s) maggiore di quella di upload (da 128kb/s a 1 Mb/s)! Modem GPRS/EDGE/UMTS/HSDPA: nei cellulari di terza generazione e chiavette USB, velocità progressive ma inferiori a ADSL Daniela Fogli Elementi di Informatica e Programmazione 19 Daniela Fogli Elementi di Informatica e Programmazione 20
Da un livello all altro Il quadro globale Come visto, ogni livello attraversato aggiunge un intestazione (informazioni utili alle funzioni proprie di quel livello) che vengono poi man mano eliminate dai livelli di destinazione attraversati in senso inverso Dati utente Flusso dati proveniente dall applicazione (messaggio) SIST. OP. host A APPLICAZIONE TRASPORTO protocollo di livello applicazione protocollo di livello trasporto router router host B APPLICAZIONE TRASPORTO end to end TCP Unità dati a livello TCP (segmento) datalink IP Unità dati a livello IP (datagramma) Unità dati a livello datalink (frame) HW point to point Daniela Fogli Elementi di Informatica e Programmazione 21 Daniela Fogli Elementi di Informatica e Programmazione 22 Che cos è Internet? Il punto di vista storico-organizzativo La rete Internet! Risultato delle ricerche finanziate dalla DARPA (Defence Advanced Research Projects Agency)! rete accademica ARPANET nel 1969! Obiettivo principale: consentire interoperabilità fra reti diverse per poter realizzare una internet (rete geografica ottenuta dal collegamento di reti più piccole)! Oggi: interconnessione di più sistemi autonomi (gruppi di reti controllati da una determinata autorità amministrativa)! Funzionamento/coordinamento supportato da organismi internazionali (es: ICANN assegna indirizzi IP e nomi di dominio) Daniela Fogli Elementi di Informatica e Programmazione 24
Che cosè Internet? Il punto di vista tecnico Architettura client-server! Internet: sistema di reti interconnesse, organizzate in accordo ad una architettura di protocolli detta Internet Protocol Suite: - TCP o UDP a livello di trasporto - IP a livello rete - nessun vincolo sui livelli sottostanti! Servizi internet realizzati mediante un insieme di protocolli standard di livello applicazione (es. HTTP): nel seguito ne esaminiamo alcuni! L architettura client-server è alla base di tutti i servizi applicativi di Internet! In una architettura client-server, esistono sistemi che accedono a servizi (funzionalità) forniti da altri e sistemi dedicati a fornire i servizi richiesti! Si distinguono i clienti di un servizio (processi client) dai fornitori di servizi (processi server)! I processi client possono usufruire dei servizi inviando una richiesta al processo server opportuno che, al termine del lavoro, rispedisce al client un messaggio di risposta! Generalmente, processi server e processi client sono in esecuzione su macchine diverse collegate in rete Daniela Fogli Elementi di Informatica e Programmazione 25 Daniela Fogli Elementi di Informatica e Programmazione 26 Architettura client-server Calcolatore Server Server richiesta Server è un concetto software! spesso si predispongono macchine dedicate principalmente a far girare processi server e quindi vengono denominate a loro volta macchine server risposta Server Un calcolatore server si occupa dunque di rendere disponibile uno o più servizi. Esempi di servizi offerti: file server, che consente la condivisione in rete dei documenti presenti sui dischi del server; web server, che consente l accesso alle pagine web ivi memorizzate! : indirizzo IP e numero di porta assegnato dinamicamente! Server: indirizzo IP statico e numero di porta standard (dipende dal protocollo, es. http ha la porta 80) Un calcolatore server è spesso un computer dotato di un processore veloce, un'elevata capacità di memoria e numerosi dischi. Inoltre, differentemente da un comune personal computer, il server ha caratteristiche specifiche di modularità (tutte le sue parti sono facilmente accessibili e smontabili, anche "a caldo") ed è in grado, grazie a un sistema di ventilazione potenziato, di rimanere acceso anche molto a lungo Daniela Fogli Elementi di Informatica e Programmazione 27 Daniela Fogli Elementi di Informatica e Programmazione 28
Il servizio di risoluzione dei nomi Domini e sotto-domini in un indirizzo simbolico! Gli indirizzi IP sono difficili da utilizzare per un utente umano! Un sistema di gestione degli indirizzi (Domain Name System - DNS) permette di passare da indirizzi numerici (gli indirizzi IP) a nomi (indirizzi simbolici detti indirizzi DNS)! Il DNS:! associa a ogni indirizzo IP uno o più indirizzi simbolici! gestisce la conversione tra indirizzi simbolici e indirizzi IP! Il DNS è organizzato in maniera gerarchica (domini, sottodomini, sotto-sotto-domini, ) per semplificarne l utilizzo 192.167.20.1 DNS zeus.ing.unibs.it Il numero di livelli è variabile! zeus.ing.unibs.it Dominio di primo livello (.fr per Francia,.uk per Regno Unito, oppure anche.com,.org,.edu, ) Dominio di secondo livello (università, azienda, ente ) Dominio di terzo livello (nell es. un sottodominio dell Università di Brescia) Denominazione di un host preciso Daniela Fogli Elementi di Informatica e Programmazione 29 Daniela Fogli Elementi di Informatica e Programmazione 30 Passaggio da un indirizzo simbolico a un indirizzo IP Il World Wide Web! Realizzato mediante un insieme distribuito di server (DNS server):! ogni server accetta richieste (indirizzi DNS) e restituisce ind. IP! se un server non conosce un indirizzo, può agire da client e inviare richieste di traduzione ad altri server! A ogni dominio è associato un calcolatore responsabile del dominio. Ad es. dato l indirizzo zeus.ing.unibs.it:! C è un computer responsabile per il dominio it;! un computer per il dominio unibs.it;! un computer per il dominio ing.unibs.it.! Il calcolatore responsabile di un dominio mantiene un elenco dei calcolatori responsabili dei suoi sottodomini (e ne conosce i relativi indirizzi IP)! Per es. il calcolatore responsabile del dominio unibs.it deve sapere chi sono i calcolatori responsabili di tutti i suoi sottodomini, tra cui ing.unibs.it, med.unibs.it, eco.unibs.it,! WWW: spazio informativo di risorse distribuite nei nodi della rete, dette pagine web tipicamente scritte nel linguaggio HTML! Architettura client-server alla base del servizio www:! Il client è il navigatore web (il web browser): applicazione che interpreta un linguaggio HTML e interagisce con l utente! Il server si chiama web server (e.g. Apache, attualmente il più diffuso, distribuito gratuitamente in modalità open source) rende disponibili pagine web a richiesta! e server interagiscono attraverso il protocollo di livello applicazione HTTP (HyperText Transfer Protocol)! Le pagine sono identificate mediante indirizzi detti URL (Universal resource locator) es. http://www.unibs.it/aree-disciplinari/ingegneria Daniela Fogli Elementi di Informatica e Programmazione 31 Daniela Fogli Elementi di Informatica e Programmazione 32
Iter di una richiesta di una pagina web Web Browser e Web Server! La richiesta parte dalla barra degli indirizzi del browser dell utente! Ad es. l utente scrive http://www.unibs.it! Il browser stabilisce con il web server una connessione TCP (tipicamente sulla porta 80) ed invia un messaggio di richiesta di una pagina web, indicandone il nome completo (quello digitato dall utente)! Il web server restituisce un messaggio di risposta con un codice che indica se la richiesta è soddisfatta + la pagina web! Il browser riceve la risposta su una porta TCP da esso attivata all atto della richiesta! La pagina web ricevuta (che è un documento HTML) viene interpretata dal browser, che restituisce una presentazione grafica del contenuto all utente! Il web browser è un applicazione client che:! è in grado di interagire con il web server via HTTP! è in grado di interpretare HTML (e visualizzare pagine web)! interagisce con l utente (e ne rileva le azioni)! Il web server è un applicazione server che:! accetta una richiesta di connessione TCP da un client! riceve una richiesta con il nome della pagina e restituisce come risposta la pagina stessa Daniela Fogli Elementi di Informatica e Programmazione 33 Daniela Fogli Elementi di Informatica e Programmazione 34 Altre applicazioni su Internet Altre applicazioni su Internet (cont.)! Posta elettronica:! Per accedere al servizio un utente utilizza un programma detto client di posta (es. Outlook, Eudora, Mail, )! Per inviare un messaggio il client invoca il servizio di un server di trasferimento (detto anche server SMTP)! Per scaricare un messaggio il client invoca il servizio di un server di consegna all utente finale (protocolli: POP3, IMAP)! Trasferimento di file:! un file può essere posto in un opportuna area di memoria di un server, dal quale può essere reperito utilizzando il protocollo FTP (File Transfer Protocol)! Sul server deve essere in esecuzione un FTP server! Sul client, un FTP client (e.g. FileZilla, SmartFTP); si può usare anche il browser (ftp:// al posto di http://)! Sistemi di messaggistica instantanea:! Applicazione che permette a due persone di comunicare tra loro in maniera sincrona ( chat = chiacchierata)! Non esiste uno standard, esempi di sistemi: MSN Messenger, Yahoo! Messenger,! Servizio telefonico su Internet:! Servizio noto come VoIP (Voice over IP)! Consentono fra l altro scambio di file in parallelo a conversazione vocale e audio/video conferenze! Basso costo, ma problemi di affidabilità e qualità servizio (anche se stanno migliorando velocemente )! Esempio: Skype Daniela Fogli Elementi di Informatica e Programmazione 35 Daniela Fogli Elementi di Informatica e Programmazione 36