Servizi di sistema e porti Servizi di sistema e porti Ing. A. Stile – [email protected] Ing. L. Marchesano – [email protected] 1/20 Paradigma client/server Riguarda una elaborazione cooperativa di richieste, effettuate dal client (o richiedente) verso il server (o servente), il quale elabora le richieste e restituisce le risposte In questo modello, l’elaborazione è divisa (non necessariamente in modo equo) tra client e server L’elaborazione è iniziata (e parzialmente controllata) dal client; pertanto, l’attività del client è ben delimitata temporalmente. Al contrario, un server è sempre in ascolto, in modo tale da poter soddisfare alle richieste (anche contemporanee) dei client 2/20 Esempio client/server 3/20 Client/server nell’ambito delle reti Nell’ambito delle reti di calcolatori, praticamente tutte le applicazioni si basano sul paradigma client/server Sono basate su questo paradigma: • le applicazioni per la gestione della rete (DNS, DHCP, controller di dominio, Active Directory, …) • le applicazioni utente (HTTP, FTP, POP, SMTP, …) Ma anche applicazioni stand alone si basano sul paradigma client/server: ad esempio, un’applicazione che deve stampare un documento è un client verso il driver della stampante, che a sua volta è un client verso l’hardware 4/20 Client/server nell’ambito del sistema operativo Nella struttura di un sistema operativo, esiste un numero elevato di applicazioni che fungono da server per altri processi del sistema operativo stesso o per client presenti su macchine remote Tali applicazioni prendono il nome di Servizi (ambiente Windows) o Demoni (ambiente Unix/Linux) Dunque, un servizio è una applicazione, routine o processo che esegue una funzione di sistema specifica per supportare altre applicazioni, in modo particolare a basso livello, ovvero un livello prossimo all'hardware 5/20 Alcuni tra i servizi di Windows 6/20 Allocazione di servizi su un computer In via di principio, un singolo computer potrebbe fornire un singolo servizio. È però impensabile una situazione di questo tipo!!! Quali mezzi si hanno a disposizione per allocare diversi servizi su uno stesso computer? • Processi (già illustrati in precedenza) • Porti 7/20 Porti 1/3 Abbiamo già detto che, su Internet, ogni macchina deve essere UNIVOCAMENTE identificata mediante un indorizzo IP Se, però, la stessa macchina ospita vari servizi, come è possibile indirizzare una richiesta ad un servizio piuttosto che ad un altro? Si ricorre al porto (port): il porto è una informazione aggiuntiva, da porre dopo l’indirizzo IP, che serve ad identificare il servizio a cui è diretta la richiesta inviata ad un determinato computer (e, quindi, ad un determinato indirizzo IP) 8/20 Porti 2/3 Implicitamente, il concetto di porto si usa SEMPRE! Ad esempio, quando ci si collega, tramite browser web, al sito: www.criai.it, il browser, tramite il protocollo DNS effettua la risoluzione dell’indirizzo simbolico in indirizzo IP; solo successivamente la richiesta viene inviata all’indirizzo IP ricavato ed ad un determinato porto DNS www.criai.it 80.19.171.65 GET index.html from 80.19.171.65:80 9/20 Porti 3/3 I porti che in totale possono essere gestiti sono 65.535. In realtà, però, non tutti possono essere scelti da una applicazione poiché, per alcune applicazioni molto diffuse, i porti sono standardizzati: • porto 21: FTP • porto 23: Telnet • porto 25: SMTP • porto 80: HTTP Le applicazioni “standard” sono in ascolto su tali porti e rispondono solo alle interrogazioni ad esse inviate: un server FTP non fornirà risposta ad interrogazioni inviate al porto 80 della macchina su cui è in esecuzione 10/20 Domain Name System Uno tra i servizi più importanti nelle reti di calcolatori è il DNS (Domain Name System) Il DNS è un database gerarchico distribuito, contenente le corrispondenze tra i nomi di dominio DNS e vari tipi di dati, ad esempio indirizzi IP Il sistema DNS consente di localizzare computer e servizi utilizzando nomi descrittivi, oltre a consentire l'individuazione di altre informazioni archiviate nel database 11/20 DNS 1/5 Tutti noi siamo oggi abituati a raggiungere un servizio (e quindi il calcolatore che lo offre) utilizzando nomi simbolici di facile memorizzazione: • www.google.com • www.hotmail.com • [email protected] Questi nomi non sono immediatamente adatti ad essere compresi dai dispositivi che costituiscono la rete Internet. Un nome di questo tipo, infatti, non dà informazioni esatte sulla dislocazione sul territorio della macchina che si desidera contattare. I router, di conseguenza, non saprebbero come instradare i dati in maniera tale da raggiungere la destinazione. 12/20 DNS 2/5 La rete Internet è stata progettata invece per lavorare con indirizzi di diversa natura. Per es.: 143.225.229.3 oppure 217.9.64.225 Ogni dispositivo nella rete Internet ha un tale indirizzo; esso permette l’identificazione univoca a livello globale e la localizzazione A differenza dei nomi simbolici, essendo gli indirizzi IP di lunghezza fissa, sono più facilmente gestibili dalle macchine. Data la loro natura gerarchica, forniscono inoltre precise informazioni sulla loro dislocazione sul territorio: leggendo l’indirizzo da sinistra verso destra si ottengono informazioni sempre più dettagliate circa la rete di appartenenza (all’interno di tutte le reti 13/20 di Internet) DNS 3/5 Non volendo rinunciare alla comodità di lavorare con nomi simbolici, è stato necessario progettare un servizio di risoluzione dei nomi simbolici in indirizzi IP Tale servizio associa ad un nome simbolico univoco (www.criai.it) un indirizzo IP (80.19.171.65), permettendo così di raggiungere la macchina 14/20 DNS 4/5 Si potrebbe pensare di risolvere il problema piazzando in un unico punto della terra una macchina che realizzi la risoluzione dei nomi Questa soluzione, sebbene teoricamente realizzabile, ha così tanti svantaggi da risultare impraticabile: • Single Point of Failure • Volume di traffico • Database distante • Manutenzione 15/20 DNS 5/5 Quello che si fa è distribuire le informazioni sul territorio: ciascuno ha la responsabilità di raccogliere, gestire, aggiornare e divulgare le informazioni che lo riguardano. In particolare l’approccio è di tipo gerarchico: • gli elementi più alti nella gerarchia contengono molte informazioni non dettagliate • gli elementi più bassi nella gerarchia contengono poche informazioni dettagliate • Attraverso un colloquio concertato tra le entità (di cui gli utenti non hanno percezione) si riesce a fornire il servizio di risoluzione 16/20 Tipologie di server DNS (local) Local Name Server (Locale) Ciascun ente (università, società, etc…) ne installa uno nel proprio dominio Tutti gli host nel dominio inviano a questo server le proprie richieste di risoluzione Ciascun host deve essere configurato con l’indirizzo del DNS server locale per il dominio. Questa configurazione spesso avviene manualmente, ma in certi casi può avvenire anche in maniera automatica 17/20 Tipologie di server DNS (root) Root Name Server (Fondamentale) Ne esistono varie decine in Internet e i loro indirizzi sono ben noti alla comunità Ad essi si riferiscono i Local Name Server che non possono soddisfare immediatamente una richiesta di risoluzione In questo caso il Local Name Server si comporta come client DNS ed invia una richiesta di risoluzione al Root Name Server 18/20 Un semplice esempio L’host surf.eurecom.fr vuole conoscere l’indirizzo IP dell’host gaia.cs.umass.edu 1. Contatta il suo Local Name Server: dns.eurecom.fr di cui possiede l’indirizzo IP 2. dns.eurecom.fr contatta un root name server, se necessario 3. il root name server contatta l’Authoritative Name Server, dns.umass.edu, se necessario 19/20 The end… Qualche domanda??? 20/20