La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.

Presentazioni simili


Presentazione sul tema: "Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università."— Transcript della presentazione:

1 Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università degli Studi di Milano Corsi di Laurea in Biotecnologie (primo anno interfacoltà)

2 Terza lezione: Le reti (Capitolo 3) 2Informatica di base – Linea 1

3 Prima parte: Introduzione 3Informatica di base – Linea 1

4 Divide et impera In molti ambiti informatici si affrontano problemi complessi: – troppo difficili da risolvere “in un unico passaggio” In questi casi si adotta la strategia “divide et impera”: – dividi il problema in tanti sottoproblemi più semplici – risolvi tutti i sottoproblemi – sfrutta le soluzioni dei sottoproblemi per trovare la soluzione del problema iniziale 4Informatica di base – Linea 1

5 Divide et impera Abbiamo già utilizzato questa idea? – problema: scrivere un programma in un linguaggio di alto livello e farlo eseguire da una macchina da linguaggio di alto livello ad assembly da assembly a linguaggio macchina Per cosa useremo questa tecnica? – più avanti, per i fogli di calcolo – ora, per capire l’approccio usato nelle reti “Ma cosa c’entrano le reti con i fogli di calcolo?” – nulla, “divide et impera” si applica ad ambiti diversi… 5Informatica di base – Linea 1

6 Problema (esempio) Voglio inviare una mail Soluzione monolitica  scrivi un programma che si occupi di: – permettere all’utente di scrivere le mail – comunicare l’informazione inviare il segnale, indipendentemente dalla connessione fisica utilizzata (cavo, etere, ecc.) assicurarsi che l’informazione sia stata ricevuta ecc.  troppo difficile! 6Informatica di base – Linea 1

7 Soluzione “divide et impera” Dividiamo il problema in sottoproblemi: – come si invia l’informazione su un mezzo fisico (cavo, etere, ecc.)? – come ci si può assicurare che l’informazione sia stata ricevuta? –... – scrivi un programma che permetta all’utente di scrivere mail 7Informatica di base – Linea 1

8 Vantaggi della soluzione “divide et impera” Le componenti sono specializzate: – ognuna svolge un compito specifico, quindi: saranno meglio ottimizzate avranno meno errori Se volessimo scrivere un’applicazione diversa (es: un browser)? – potremmo utilizzare buona parte del lavoro fatto, senza cambiare nulla 8Informatica di base – Linea 1

9 Seconda parte: Lo stack ISO/OSI 9 “E adesso cos’è sta roba?!!... Non venirmi a dire che serve sapere queste cose per usare internet!” Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico Informatica di base – Linea 1

10 Lo stack ISO/OSI 10 Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico Utilizzato per suddividere il problema della comunicazione in rete in tanti sottoproblemi Ogni livello ha un compito specifico e diverso da quello degli altri livelli – OSI = Open Systems Interconnection – ISO = International Organization for Standardization Informatica di base – Linea 1

11 Il livello fisico Stabilisce come deve avvenire la comunicazione sul canale di comunicazione: – nella comunicazione su cavo: a quanti volt corrisponde il valore 1 e a quanti volt corrisponde il valore 0? – nella comunicazione su onde radio: quale deve essere la frequenza utilizzata? 11Informatica di base – Linea 1 Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico

12 Il livello di collegamento Il problema: su un canale può scrivere un solo computer per volta se due computer scrivono sul canale nello stesso momento, nessuno dei due riesce a leggere dal canale Come possono fare i computer di una rete a sincronizzarsi in modo da parlare uno alla volta? 12Informatica di base – Linea 1 Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico

13 Ethernet E’ un protocollo che definisce come devono essere risolti i problemi al livello di collegamento: – è adatto a funzionare con diverse soluzioni a livello fisico: con cavo senza cavo (Wi-Fi=Wireless Fidelity) Non è l’unico protocollo per questo livello: – esempio: bluetooth (frequenza radio a corto raggio) 13Informatica di base – Linea 1

14 Il livello di rete 14 Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico Come conviene dividere l’informazione che deve essere inviata? – suddivisione in pacchetti, cioè in piccole componenti di informazione Informatica di base – Linea 1

15 Il livello di rete Come faccio a mandare un messaggio destinato a un determinato computer? Protocollo IP (=Internet protocol): – assegno un numero univoco a ogni computer – quando mando un messaggio, scrivo il numero del destinatario – i computer che non sono i destinatari, ignorano il messaggio 15Informatica di base – Linea 1

16 Gli indirizzi IP Sono formati da 4 numeri compresi tra 0 e 255: – di solito si indicano separati da un “.” – es: Perché proprio 255? Ogni computer connesso alla rete deve avere un IP differente dagli altri: – quanti computer al massimo possono essere connessi? 16Informatica di base – Linea 1

17 Le reti locali I computer collegati direttamente tra loro formano una rete locale Se mando un messaggio da un computer ad un altro computer nella rete locale: – scrivo l’indirizzo IP del destinatario – mando il messaggio a tutti i computer – i computer che non sono destinatari ignorano il messaggio 17Informatica di base – Linea 1

18 “Le reti” e “la rete” I computer connessi direttamente tra loro formano una rete locale (LAN = Local Area Network) Le reti locali sono organizzate in reti geografiche (WAN = Wide Area Network) – reti progettate per inviare informazioni a località distanti – i computer non sono tutti collegati tra loro La rete (Internet) è composta da più reti WAN collegate tra loro 18Informatica di base – Linea 1

19 La rete Quando mando un messaggio per un computer che non è nella stessa rete locale: – indico l’indirizzo IP del destinatario – un computer nella mia rete si accorge che il messaggio non è per un computer nella mia rete locale, e lo inoltra ad un’altra rete – quando la comunicazione arriva alla rete corretta, il computer destinatario riceve il messaggio 19Informatica di base – Linea 1

20 “Ma questo non è quello che faccio tutti i giorni!” “Se sto capendo bene, mi stai dicendo che ogni macchina ha un indirizzo IP e che se voglio comunicare con questa macchina, devo conoscere il suo l’indirizzo. Quando voglio leggere una pagina web, devo dare il nome della macchina dove si trova la pagina, giusto? Ecco, appunto, ma io non ho mai scritto un indirizzo IP: ho sempre usato nomi più semplici, come Come è possibile allora che funzioni lo stesso?” 20Informatica di base – Linea 1

21 Il DNS DNS = Domain Name System E’ difficile, per l’uomo, memorizzare gli indirizzi IP: – ad ogni indirizzo IP si associa un nome più semplice da ricordare (es: it.wikipedia.org) Quando si scrive il nome, si richiede ad un server DNS di risolvere quel nome: – cioè di dire a quale indirizzo IP quel nome corrisponde – per fare questo, il server DNS mantiene sempre aggiornata una lista di nomi e dei relativi indirizzi IP 21Informatica di base – Linea 1

22 Il livello trasporto Se invio tanti pacchetti: – come posso essere sicuro che arrivino tutti ? – come posso sapere in che ordine arrivano? pacchetti diversi possono prendere strade diverse, alcune più rapide, altre più lente 22 Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico Informatica di base – Linea 1

23 Il livello trasporto Analogia di Vincent Cerf: 23Informatica di base – Linea 1

24 Una soluzione: il protocollo TCP TCP = Transmission Control Protocol (TCP/IP) Con il protocollo TCP ogni pacchetto viene numerato in ordine sequenziale: – quando i pacchetti vengono ricevuti, è possibile ricostruire l’ordine di tutti i pacchetti I pacchetti sono inviati uno alla volta usando diversi itinerari tra quelli disponibili dato che ogni pacchetto può essere instradato su un cammino diverso, interruzioni di servizio o congestioni non rappresentano un problema insormontabile 24Informatica di base – Linea 1

25 Il protocollo TCP 25Informatica di base – Linea 1

26 I livelli sessione, presentazione e applicazione Sessione: serve per stabilire, mantenere o terminare una connessione (sessione) fra applicazioni – Come è possibile mantenere delle connessioni (continue) tra due macchine? – Come è possibile controllare il flusso di dati trasmessi? es: punti di controllo permettono di riprendere dall’ultimo pacchetto inviato in caso di errori o malfunzionamenti Informatica di base – Linea 126 Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico

27 27 Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico I livelli sessione, presentazione e applicazione Presentazione: gestisce la trasformazione dei dati in formati standardizzati – Come vengono codificati i dati durante la trasmissione? – Come è possibile offrire servizi comuni come, ad esempio, la compressione? Applicazione: si occupa di interfacciare l’utente con la macchina Informatica di base – Linea 1

28 Terza parte: Le applicazioni Internet 28Informatica di base – Linea 1

29 Il web Si richiede ad una macchina (il server) di darci alcune informazioni: – queste informazioni vengono visualizzate all’interno del browser (es: Internet Explorer, Mozilla Firefox, Google Chrome, ecc.) Non confondete il web con Internet: – il web è una delle possibili applicazioni che si possono usare in Internet 29Informatica di base – Linea 1

30 Architettura client/server Il server è il computer che memorizza la pagina web, il client è il computer che accede alla pagina web – Quando cliccate su un link, il vostro computer comincia un’interazione con il server – Una volta che il server vi ha inviato la pagina, l’interazione client/server termina – Il server è in grado di gestire più client contemporaneamente 30Informatica di base – Linea 1

31 La posta elettronica: come funziona? 31 Utente (mittente) Server di posta (1) Invio Messaggio Utente (destinatario) Server di posta (2) Ricezione Messaggio “Ci sono messaggi per me?”

32 Caratteristiche della comunicazione Sincrona: – mittente e destinatario devono agire contemporaneamente nella comunicazione – es: telefono, fax Asincrona: – mittente e destinatario possono agire in tempi diversi nel processo di comunicazione – es: posta cartacea, 32Informatica di base – Linea 1

33 L’instant messaging Permette di scambiare messaggi (di solito in forma scritta) in tempo reale Esempi: – MSN, Google talk, Skype 33Informatica di base – Linea 1

34 Il voice over IP (VoIP) E’ una evoluzione dell’instant messaging: – perché scrivere quando si può parlare? La voce viene digitalizzata e spedita In pratica è come il telefono: – e con il telefono può interagire: con il VoIP si possono anche fare o ricevere chiamate su telefoni tradizionali Alcune compagnie telefoniche usano esclusivamente VoIP (ma voi non lo vedete perché vi permettono di usare il telefono classico): – ES: Fastweb 34Informatica di base – Linea 1

35 Condivisione di file Ogni utente rende disponibile dei file che gli altri possono scaricare E’ basato su un modello di comunicazione diverso da quello classico delle altre applicazioni: il peer-to-peer (P2P) – ogni macchina svolge sia lavoro di client (quando richiede un file) sia lavoro di server (quando fornisce un file) 35Informatica di base – Linea 1

36 Condivisione di file 36Informatica di base – Linea 1

37 I protocolli di comunicazione Qual è il problema: – In tutte le applicazioni Internet due (o più) componenti comunicano tra loro – Per capirsi devono definire quali messaggi vengono scambiati I protocolli di comunicazione definiscono l’ordine e il significato dei messaggi: – esistono numerosi protocolli definiti per ogni livello dello stack OSI es: protocolli IMAP, POP e SMTP per posta elettronica e newsgroup es: protocolli HTTP e FTP per trasmissione dati 37Informatica di base – Linea 1

38 Quarta parte: Gli algoritmi distribuiti e il calcolo parallelo 38Informatica di base – Linea 1

39 Algoritmi distribuiti Sono particolari tipi di algoritmi che non coinvolgono una sola macchina, ma più macchine Hanno problemi teorici maggiori rispetto agli algoritmi classici – esempio: è necessario garantire che le macchine possano sincronizzarsi 39Informatica di base – Linea 1

40 Vantaggi degli algoritmi distribuiti Permettono di calcolare risultati sfruttando informazioni che non risiedono su una sola macchina: – esempio: i DNS Permettono di calcolare risultati più velocemente rispetto agli algoritmi eseguiti su una singola macchina: – il calcolo in questo caso viene detto parallelo – avviene in contemporanea su diverse macchine 40Informatica di base – Linea 1

41 Calcolo distribuito: un esempio (curioso) Il progetto – progetto di calcolo distribuito per personal computer – analizza i segnali captati dal radiotelescopio di Arecibo alla ricerca di eventuali trasmissioni radio provenienti da intelligenza extraterrestre SETI = Search for Extraterrestrial Intelligence – andate a curiosare: 41Informatica di base – Linea 1

42 Calcolo distribuito: un altro esempio Il progetto – progetto di calcolo distribuito per personal computer – analizza il corretto/errato avvolgimento delle proteine, in relazione ad alcune patologie: morbo di Alzheimer, di Parkinson, della “mucca pazza” sclerosi laterale amiotrofica molti tipi di cancro – andate a curiosare: 42Informatica di base – Linea 1

43 Calcolo parallelo: esempio Vogliamo verificare se 10 numeri dati sono tutti primi Prendiamo 10 computer, facciamo verificare ad ognuno se 1 dei numeri è primo e poi mettiamo assieme il risultato Il tempo per comporre il risultato è trascurabile rispetto al tempo per calcolare se un numero è primo Tempo totale di calcolo: 1/10 del tempo che servirebbe per eseguire lo stesso algoritmo su un solo computer 43Informatica di base – Linea 1

44 Calcolo parallelo: limiti In molti casi, il tempo di coordinamento tra vari computer non è trascurabile – non tutti gli algoritmi si possono rendere paralleli in modo efficiente In generale, se la complessità di un algoritmo su una singola macchina è X, la complessità su n macchine è maggiore o uguale a X/n 44Informatica di base – Linea 1

45 Calcolo parallelo e complessità computazionale Dunque – il calcolo parallelo può servire per calcolare più rapidamente un risultato di una computazione particolarmente complessa Tuttavia – il tempo di calcolo diminuisce “solo” linearmente con il numero di computer – ci sono alcuni algoritmi che hanno complessità computazionale talmente alta che, nonostante siano resi distribuiti, richiedono tempi lunghissimi o, addirittura, non sono praticamente calcolabili 45Informatica di base – Linea 1

46 Quinta parte: I motori di ricerca 46Informatica di base – Linea 1

47 I link Link = collegamento tra due risorse Una delle caratteristiche principali del web è la possibilità di “navigare” tra le sue risorse: – pagine e altre risorse (audio, video, ecc.) Si dice che una risorsa “punta” ad un’altra: – àncora = parte della risorsa dalla quale parte il collegamento – destinazione = risorsa riferita dal link 47Informatica di base – Linea 1

48 I link: esempio 48 La pagina “Informatica di base – linea 1” ha un link in uscita verso la pagina “Daniela Besozzi” che ha un link in ingresso Informatica di base – Linea 1 àncora destinazione link

49 Quanto è grande Internet Quanto è grande Internet? – quante pagine ci sono? – quanti link? Difficile da valutare esattamente – perché in continua crescita Per avere un’idea: – 4 miliardi di pagine – 100 miliardi di link 49Informatica di base – Linea 1

50 Problema C’è troppa informazione! Come facciamo a trovare quello che cerchiamo? 50Informatica di base – Linea 1

51 Le directory Si costruisce manualmente una gerarchia di argomenti con i relativi link 51Informatica di base – Linea 1

52 52Informatica di base – Linea 1

53 Le directory. I problemi Non tutte le pagine vengono linkate La struttura della directory è arbitraria: – quante categorie ci devono essere? Le risorse in Internet sono dinamiche (variano molto in fretta): – è necessario aggiornare la directory molto spesso Il lavoro è manuale: – lento, soggetto ad errori, costoso 53Informatica di base – Linea 1

54 Ricerca automatica. Una soluzione naive Supponiamo di voler trovare una procedura per ricercare una parola all’interno del web Scriviamo un programma che, automaticamente, cerchi “il più possibile” nel web per trovare la parola cercata 54Informatica di base – Linea 1

55 Soluzione naive. Idea Visitiamo tutte le pagine, partendo da una (che abbia tanti link in uscita) e seguiamo i link Quando visitiamo una nuova pagina (se non la abbiamo già visitata), cerchiamo il contenuto della parola anche in quella pagina: – se lo troviamo, aggiungiamo la pagina appena visitata ad un elenco (il risultato della ricerca) 55Informatica di base – Linea 1

56 Soluzione naive. Idea 56 Prima pagina visitata pagina 1 pagina 2 Link Informatica di base – Linea 1

57 Soluzione naive Input: una parola, una pagina da cui iniziare Output: l’elenco delle pagine che contengono quella parola E’ troppo complesso specificare un algoritmo – presentiamo solo una procedura, in cui alcuni passi non sono ben specificati 57Informatica di base – Linea 1

58 Soluzione naive: procedura 1.Chiamiamo “alfa” la pagina con cui cominciare 2.Chiamiamo “beta” l’elenco (inizialmente vuoto) di pagine 3.Se la pagina alfa non è già stata visitata, allora: A.Se la parola in input è presente in alfa, aggiungi alfa a beta B.Aggiungi tutti i link in uscita da alfa alle pagine da visitare C.Segna alfa come pagina già visitata 4.Se ci sono altre pagine da visitare, chiama alfa una di queste pagine, rimuovi la pagina alfa dalle pagine ancora da visitare, e vai al passo 3 5.Termina restituendo in output l’elenco beta 58Informatica di base – Linea 1

59 Soluzione naive: problemi 1.Tempo (fisico) richiesto: – assumiamo 10ms per percorrere un link – trascuriamo molti altri problemi – 10ms per 100 miliardi di link = 32 anni 2.Ordine delle pagine: – le pagine dell’output non hanno un ordine 3.Non ricerco in tutte le pagine: – ma solo nelle pagine raggiungibili 59Informatica di base – Linea 1

60 Soluzione al problema delle prestazioni In realtà, i motori di ricerca impiegano pochi decimi di secondo per fare una ricerca – rispetto ai 32 anni (stimati) del nostro algoritmo! Idea: visitare il web una volta sola e fare un indice – memorizza tutte le parole in modo ordinato – le successive ricerche devono essere fatte all’interno dell’indice e non nel web Un programma detto crawler si occupa di questa operazione 60Informatica di base – Linea 1

61 L’indice. L’idea Supponete che una certa pagina X contenga il testo: “Il corso di informatica è bellissimo!” Il crawler memorizza, all’interno dell’indice, che le parole “corso”, “informatica” e “bellissimo” compaiono nella pagina X – le parole troppo brevi o comuni non vengono memorizzate Quando devo fare una ricerca, basta scorrere l’indice: – è ordinato, quindi posso fare molto in fretta riguarda le slide sulla complessità computazionale 61Informatica di base – Linea 1

62 Problema dell’ordine delle pagine Se cerchiamo “Università degli Studi di Milano” otteniamo circa 3 milioni di risultati – ci sono 3 milioni di pagine che contengono le parole “università” “studi” “milano” Se cercassimo la “home page” dell’Università e usassimo il nostro algoritmo naive, dopo aver aspettato 32 anni, dovremmo ancora scorrere tutti i 3 milioni di risultati per trovare quello che ci interessa – perché non sono ordinati! 62Informatica di base – Linea 1

63 Soluzione al problema dell’ordine delle pagine Soluzione: diamo un peso alle pagine – il termine tecnico è page ranking Idea: più grande è il numero di link in ingresso, più una pagina è importante: – perché sono in tanti che la puntano – mostriamo le pagine all’utente in ordine di importanza Tante altre tecniche – che possono variare tra diversi motori di ricerca 63Informatica di base – Linea 1

64 Problema delle pagine non raggiungibili Pagine raggiungibili – le pagine che possono essere raggiunte, seguendo i link, dalla pagina iniziale Non tutte le pagine sono raggiungibili. Es: – pagine senza link in ingresso – pagine create temporaneamente – pagine ad accesso limitato es: serve una password 64Informatica di base – Linea 1

65 Problema delle pagine non raggiungibili: soluzione? I motori di ricerca attuali non risolvono questo problema Inoltre, introducono un altro tipo di pagine sulle quali non viene svolta la ricerca: – le pagine non ancora indicizzate – se una pagina viene creata (o modificata), non verrà trovata dal motore di ricerca fino a quando il crawler non la visita Google ci mette qualche settimana per fare il crawling di tutto il web 65Informatica di base – Linea 1

66 Sesta parte: Conclusioni 66 “Accidenti se è lunga questa lezione!” Informatica di base – Linea 1

67 Le reti Problema difficile, che coinvolge diversi aspetti: – da quello “fisico” alla gestione della comunicazione 67Informatica di base – Linea 1

68 La rete Viene chiamata con il termine Internet: – uno dei protocolli utilizzati nelle reti  Internet Protocol da cui deriva il termine “IP address” – la rete è composta da tante reti WAN collegate tra loro Internet è una rete sulla quale possono essere eseguite diverse applicazioni: – web, posta elettronica, ecc. 68Informatica di base – Linea 1

69 Il calcolo parallelo Utilizzato per velocizzare l’esecuzione di programmi i cui algoritmi hanno complessità computazionale molto alta Soluzione spesso usata per ottenere risultati di ricerca: – per esempio in bioinformatica 69Informatica di base – Linea 1

70 Dove studiare Capitolo 3 del “Fluency” Capitolo 4 del testo di Brookshear 70Informatica di base – Linea 1


Scaricare ppt "Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università."

Presentazioni simili


Annunci Google