Presentazione del corso Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2014-2015 Simone Bassis [email protected] Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI Informazioni generali o Il docente o o o o o nome: Simone Bassis e-mail: [email protected] [email protected] Telefono: (02) 503 16295 Ufficio: T304 in via Comelico Ricevimento: • Appuntamento via mail o o Strutturazione Corso o o Parti frontali di teoria alternate a Parti di laboratorio o in cui lavoriamo assieme Modalità d’esame o Prove di laboratorio o Della durata di un paio d’ore l’una 1. 2. o Configurazione rete tramite Cisco Packet Tracer Sviluppo client/server in C/Java (da decidersi di volta in volta...) Voto o Media ponderata delle due modalità o Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI Il voto di laboratorio pesa 40% sul totale 2 1 Il “libro” di testo The Java Tutorial Custom Networking http://java.sun.com/docs/books/tutorial/networking/index.html Slide del docente (o altro materiale aggiuntivo) http://laren.di.unimi.it/~simone/teachRetiInf.html JavaDoc & API http://docs.oracle.com/javase/6/docs/ Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 3 Il libro di testo o Dario Maggiorini, Introduzione alla Programmazione ClientServer, Pearson Addison Wesley, 2009 o o o Parte I: Aspetti teorici Parte II: Java Parte III: C In realtà copre solo una parte di ciò che affronteremo durante il corso Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 4 2 Per chi volesse approfondire W. Richard Stevens “UNIX Network Programming” Vol 1: Sockets Networking APIs 3° edizione, Addison-Wesley ISBN 0-13-141155-1 Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 5 In soldoni o Le slide che trovate sul sito sono più che sufficienti Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 6 3 Che cosa dò per scontato o Assumerò che abbiate già acquisito le seguenti nozioni in altri corsi 1. 2. 3. 4. Il linguaggio java e c (sintassi e strutture di controllo) Come leggere il manuale Che cosa vuol dire compilare Come eseguire del codice Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 7 L’ambiente che verrà utilizzato o L’importante è il risultato o In laboratorio non mi interessa che cosa userete per programmare, l’importante è risolvere gli esercizi o Alcuni suggerimenti o Eclipse, ConText, gedit, nedit, vim (editor con highlight sintattico) • Per chi preferisce NetBeans o Sistema operativo: Windows o Linux, è indifferente • Per la parte in C consiglio vivamente di utilizzare Linux per problemi di compatibilità Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 8 4 Eclipse Si tratta di un ambiente integrato e “pronto da usare” per lo sviluppo in java o http://www.eclipse.org/ o Cliccare su “download” o Scegliete il pacchetto che preferite tra i tanti disponibili • Eclipse IDE for Java Developers è più che sufficiente agli scopi del corso o Meglio l’ultima versione Luna (4.4.1): più funzionalità, meno bug Potete cominciare subito, non c’è bisogno di installare il kit di sviluppo di java (su sistemi Windows) Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 9 Eclipse Luna Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 10 5 Modelli di Servizio Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2014-2015 Simone Bassis [email protected] Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI Modelli di servizio o Un modello è una definizione funzionale del comportamento di un sistema o Definisco come deve essere strutturata l’erogazione del servizio, non come implementare il servizio o L’implementazione sarà dipendente dalla definizione funzionale Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 12 6 Il modello client-server o Presuppone l’esistenza di due entità o CLIENT richiede un servizio o SERVER eroga un servizio o Esempi o un risparmiatore e uno sportello bancomat o la segretaria di un’azienda e gli impiegati che ci lavorano o un correntista e la sua banca o lo sportello bancomat al primo punto e un istituto di credito. Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 13 Server iterativo 1. il server è libero e il client può entrare in servizio immediatamente 2. il server è occupato, quindi: (a) c’è spazio in coda e il client può mettersi in attesa (b) la coda è piena e il servizio viene rifiutato es. un risparmiatore e uno sportello bancomat Problemi • chi gestisce la coda? • lunga attesa (starvation) • attacchi Denial of Service (DoS) Quando è utile allora? Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 14 7 Server concorrente La concorrenza dell’erogazione è un parallelismo nel mantenere i rapporti, non nell’inviare o ricevere dati. es. la segretaria di un’azienda e gli impiegati che ci lavorano Problemi • gestione difficile: il server deve accentrare su di sé tutti i canali di comunicazione aperti con i client • e se i canali finiscono? • non scalabile verso l’alto Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 15 Server multiprocesso Più server entrano in gioco contemporaneamente • entità distinte e contemporaneamente attive • più flussi esecutivi paralleli per la fornitura del servizio • processi • thread Problemi • gestione limitatezza e carico computazionale di ciascun processo/thread Soluzioni gerarchiche es. un correntista e la sua banca Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI • pool di thread dormienti • il server interpella il thread meno carico • ogni thread gestisce la coda in modo iterativo o concorrente 16 8 Server multiprocesso nel dettaglio Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 17 Processi o o o Sono le unità esecutive all’interno di un sistema operativo Si tratta di un programma associato ad un contesto (che cosa sta facendo) Sono come delle persone che condividono uno stesso spazio o Vivono di vita propria o Interagiscono tra di loro o Ognuno è indipendente dagli altri Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI Ogni processo ha: • Proprio spazio di indirizzamento • Variabili globali • Codice eseguibile • Descrittori relativi a oggetti nel Sistema • Process id • Variabili d’ambiente • Processi figli • Segnali e signal handler • Pending alarms • Almeno un thread di esecuzione • Security context, Classe di priorità, … 18 9 Thread o Sono unità esecutive all’interno di un sistema operativo dotate di una granularità più bassa di quella di un processo o Condividono delle variabili o È possibile avere dei meccanismi semplici di sincronizzazione o In java vanno per la maggiore i thread è possibile creare nuovi processi con java.lang.ProcessBuilder Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI Ogni thread: • È una entità all’interno di un processo che può essere schedulata per essere eseguita Tutti i thread di un processo condividono: • Spazio di indirizzamento • Risorse di Sistema Ogni thread mantiene • exception handlers • scheduling priority • thread local storage • unique thread identifier • strutture dati per salvare il contesto • Program counter • registri • stack • stato • security context 19 Servizi “a più stadi” server client o server ? client es. lo sportello bancomat al primo punto e un istituto di credito. Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 20 10 Client o server ? o o Non esistono cose da client o cose da server Non esistono comandi e funzioni che possono essere utilizzati solo da una parte della connessione e non dall’altra o Le etichette client e server sono due identificatori che diamo noi per chiarire chi eroga e chi riceve il servizio in un certo contesto, e come tali, servono solo al programmatore per non confondersi Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 21 Protocolli Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2014-2015 Simone Bassis [email protected] Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 11 Reti e Protocolli o Lo scopo di una rete: portare una informazione dal punto A al punto B di una maglia di connessioni o Servono una serie di regole che A e B devono rispettare per poter dialogare tra loro • e non solo A e B… o Ogni architettura di rete definisce quindi una serie di protocolli di comunicazione necessari al suo funzionamento. o o SBAGLIATO: “i protocolli fanno uso della rete” CORRETTO: “le reti basano la loro struttura sul concetto di protocollo” Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 23 I protocolli o La rete esiste solo grazie a delle strutture sintattiche che permettono di trasmettere dati in maniera organizzata o Tutte le attività di Internet sono governate da protocolli Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 24 12 Più formalmente o Protocollo: 1. l’insieme delle norme che regolano lo svolgimento di manifestazioni, visite, ricevimenti ufficiali; 2. insieme di regole che governano la successione e lo scambio di informazioni fra due dispositivi comunicanti tra loro. Dizionario Garzanti o Protocol: 1. an original draft, minute, or record of a document or transaction; 2. a code prescribing strict adherence to correct etiquette and precedence (as in diplomatic exchange and in the military services); 3. a set of conventions governing the treatment and especially the formatting of data in an electronic communications system; 4. a detailed plan of a scientific or medical experiment, treatment, or procedure. Merriam-Webster dictionary Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 25 Caratteristiche di un protocollo Quando descriviamo un protocollo dobbiamo stabilire: o Un lessico o Il formato dei messaggi o Una sintassi o Quali sono le sequenze di messaggi valide o Una semantica o Dare un significato ai messaggi o Un sistema di turni o Quando inviare e quando ricevere Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 26 13 Esempio un protocollo umano a confronto con un protocollo di rete Hi TCP connection request Hi TCP connection response Got the time? Get http://www.awl.com/kurose-ross 2:00 <file> time Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 27 Il modello ISO/OSI International Standard Organization (ISO) Open System Interconnection (OSI) Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 28 14 comunicazione reale Layer in ISO/OSI sistema di indirizzamento comunicazione virtuale tra peer Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 29 Come in un’azienda Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 30 15 Internet e i suoi protocolli o Con il termine Internet si fa riferimento ad una rete che fa uso di certi tipi di protocolli quando si vanno ad esaminare certi tipi di funzionalità o Vedrete i dettagli nella seconda metà del corso di teoria o IP o TCP o UDP Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 31 Architettura TCP/IP Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 32 16 Livello di Rete o Protocollo IP o Permette lo scambio di dati tra entità anche se non sono fisicamente connesse tra loro o Servizio best-effort: nessuna garanzia sulla consegna o Indirizzi IP o identificano in maniera univoca un nodo della rete o Due versioni (IPv4, IPv6) o Non è possibile, con java, interagire direttamente con il protocollo IP o Questo viene usato in maniera indiretta da TCP e UDP Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 33 Indirizzamento IP Indirizzo IP (IPv4): o Identificatore di 32 bit associato ad un’interfaccia di rete • • Notazione decimale puntata (dotnotation) Hostname o assegnati da Internet Assigned Numbers Authority (IANA) o Ne esistono di pubblici e privati, statici e dinamici, unicast o multicast 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 34 17 Livello di trasporto o TCP (Transmission Control Protocol) o o o o o Ordinato alla connessione Affidabile Consegna ordinata Controllo di flusso Controllo di congestione o UDP (User Datagram Protocol) o non offre miglioramenti rispetto a IP, a parte il fatto di essere direttamente raggiungibile dalle applicazioni Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 35 Indirizzamento di processi o Per poter mandare un messaggio ad un processo questo deve essere identificabile in maniera univoca o Uno nodo ha un indirizzo di 32 bit (indirizzo IP) L’indirizzo IP può andare bene (bastare) anche per i processi ? No, perché ci sono tanti processi contemporaneamente in un calcolatore Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 36 18 Indirizzamento a livello di trasporto Per rendere possibile una connessione virtuale tra due applicazioni o 223.1.3.1:80 223.1.3.2:1600 o serve una granularità più fine o numeri di 48 bit o i primi 32 identificano il nodo e coincidono con il suo indirizzo IP o gli ultimi 16 (numero di porta) rappresentano un riferimento al canale di comunicazione in possesso dell’applicazione • Un po’ come le porte dei vari appartamenti all’interno di un condominio • Ma con alcune differenze! Ogni servizio standardizzato di cui è possibile fruire in rete è assegnato a una porta specifica (Well Known Port o Registered Port) dalla IANA. Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 37 Livello di Applicazione o i protocolli utilizzati tra applicazioni per la fruizione dei servizi: o o o o o o o gestione della posta elettronica (SMTP, POP, IMAP) trasferimento file (FTP, TFTP) condivisione di file system (NFS, SMB) gestione di sessioni di lavoro (telnet, Secure Shell (SSH)) trasporto informazioni (gopher, HTTP) ricerca di informazioni (DNS,whois) La specifica del protocollo si trova sul sito web della Internet Engineering Task Force (IETF) o in documenti indicati con la dicitura Request For Comments (RFC). Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 38 19 Indirizzamento a livello applicazione o o In generale (in passato) le applicazioni definivano una loro sintassi Oggi Uniform Resource Identifier (URI) <scheme>:<scheme-specific-part> Uniform Resource Locator (URL) <scheme>://<authority><path>?<query> • • • • Scheme: protocollo con cui accedere all’informazione authority: indica una entità responsabile per la gestione e la fornitura del servizio path: il percorso all’interno dello schema gerarchico query: identifica una informazione che deve essere elaborata da una risorsa http://www.unimi.it/chiedove/schedaPersonaXML.jsp?matricola=16088 Uniform Resource Name (URN) doi:10.1000/182 Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 39 Comunicazione tra processi/thread o Due processi, un processo client ed un processo server (ad esempio) si mettono in comunicazione tra loro e fanno fluire dei dati o Sembra troppo semplice per essere vero! Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 40 20 Socket o o o Sono una infrastruttura di comunicazione messa a disposizione da un sistema operativo per permettere ad un processo di utilizzare TCP o UDP per trasportare i dati host or server host or server process controlled by app developer socket socket Una socket si definisce come il punto terminale di un sistema di comunicazione TCP with buffers, variables strumento per accedere ai moduli che implementano i protocolli a livello di trasporto process Internet TCP with buffers, variables controlled by OS Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 41 Socket e TCP-IP application socket TCP UDP IP data link physical link Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 42 21 Protocolli disponibili con le socket o Protocolli affidabili, con consegna ordinata e garantita dei dati o o o o o TCP Controllo di congestione Controllo di flusso Setup della connessione Protocolli non affidabili, consegna non ordinata né garantita dei dati o UDP o Che cosa non riusciamo a dare ? o Garanzie sui ritardi di consegna o Garanzie sulla disponibilità delle risorse Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 43 Abbiamo detto che… o Un processo che eroga un servizio può essere identificato con un numero costituito da: o L’indirizzo del nodo o Un numero di porta Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 44 22 … in realtà o Non stiamo indirizzando un processo ma una socket o È logico che se un processo deve aprire una socket per comunicare allora possiamo associare l’identificatore al processo Però un processo potrebbe avere aperte contemporaneamente più socket, quindi potrebbe essere associato a molti identificatori o o Ricordatevi sempre che una socket, per il sistema operativo è un descrittore di file esterno Laboratorio di Reti di Calcolatori (Informatica) - A.A. 2014-2015 S. Bassis ([email protected]) Università di Milano – DI 45 23
© Copyright 2024 Paperzz