2018/2019
RETI GEOGRAFICHE – APPUNTI
CORSO LAUREA MAGISTRALE – CLOUD COMPUTING 1
Sommario ................................................................................................. 4
1. Internet: la storia e la sua struttura
1.1 La storia di Internet......................................................................................................... 4
1.2 La struttura di Internet .................................................................................................... 4
protocollo HTTP e l’interazione fra HTTP e TCP ....................................................................... 4
2. Il
2.1 HTTP: HypertextTransfer Protocol ................................................................................ 4
2.2 Gestione delle connessioni ............................................................................................ 5
....................................................................................................... 5
3. Componenti software del WWW
3.1 The Client ............................................................................................................................. 5
3.2 The Proxy or Edge Server ................................................................................................... 5
3.3 Web server ........................................................................................................................... 5
3.4 Benchmarking ..................................................................................................................... 7
3.5 Web Server Benchmarking ................................................................................................. 7
3.6 Performance tuning ............................................................................................................. 8
3.7 httperf ................................................................................................................................... 8
............................................................................. 9
4. Internet Measurement & Internet Architecture
4.1 Architettura di Internet ........................................................................................................ 9
4.2 Dettagli sulle operazioni Internet ..................................................................................... 10
4.2.1 Routing ................................................................................................................... 10
4.3 Protocolli rilevanti per Internet Measurement ................................................................. 11
......................................................................................................................... 12
5. Analytic Background
5.1 Probabilità .......................................................................................................................... 12
5.1.1 Metriche importanti nelle misurazioni Internet ......................................................... 12
5.1.2 Special issues in the Internet ..................................................................................... 12
5.2 Statistica ............................................................................................................................ 13
5.2.1 Alta variabilità ............................................................................................................. 14
5.2.2 Power-Law ................................................................................................................... 14
5.3 Measurement and modeling ............................................................................................. 15
.................................................................................... 15
6. Practical issues in Internet Measurement
6.1 Dove possono essere fatte le misurazioni ....................................................................... 15
6.2 Ruolo nel tempo ................................................................................................................ 16
6.3 Ruolo di Internet directories e database .......................................................................... 17
6.4 Misurazioni attraverso i protocolli di rete ........................................................................ 17
....................................................................................................................................... 18
7. Infrastructure
7.1 Proprietàfisiche della InfrastrutturaInternet .................................................................... 18
7.2 Alcune problematiche ....................................................................................................... 19
7.3 Tools
................................................................................................................................... 20
2
7.3.1 Active Measurement ................................................................................................... 20
7.3.2 Passive Measurement ................................................................................................. 22
..................................................................................................................................................... 23
8. Traffic
8.1 Properties........................................................................................................................... 23
8.2 Challenges ......................................................................................................................... 23
8.2.2 Statistical issues ......................................................................................................... 24
8.3 Tools
................................................................................................................................... 25
8.4 Risultati più importanti riguardanti le proprietà del traffico Internet ............................ 26
8.5 Osservazioni ...................................................................................................................... 27
3
RETI GEOGRAFICHE
1. Internet: la storia e la sua struttura
Una Rete di Calcolatori è un insieme di dispositivi o nodi indipendenti ed interconnessi tra loro
attraverso un canale di comunicazione che possono scambiarsi informazioni e cooperare.
Vantaggi: condivisione delle risorse, riduzione costi, modularità, affidabilità e disponibilità,
collaborazione, computazione distribuita, scambio di informazioni.
Svantaggi: gestione complessa.
WAN (Wide Area Network): Area estesa, grandi distanze, nodi distribuiti su medio-lunga distanza
(nazione, continente) trasmissione dei dati: attraverso messaggi
Reti LAN, MAN e WAN spesso sono interconnesse fra loro ovvero Reti di Reti (interrete): collega
più reti differenti mediante opportuni elementi di interfaccia (può avere estensione mondiale es.:
Internet).
1.1 La storia di Internet
(conosciuto come “the father of the Internet”)
Vinton Cerf & Robert Kahn: entrambi progettisti
del protocollo TCP/IP. di Ginevra nell’articolo “Hypertext
Tim Berners-Lee: Marzo 1989, prima proposta al CERN
and CERN”
viene proposto come maniera per condividere all’interno del CERN la incredibile mole
Il WWW
di documenti disponibili.
Il boom nel 1994: viene fondata Netscape, l’evoluzione tecnica nel 1995: Esce Windows 95 e
la Microsoft lancia Microsoft Network, la Sun presenta Java un linguaggio per eseguire
programmi all’interno dei browser.
Oggi internet è anche questo.
Internet of things: gli oggetti (le "cose") si rendono riconoscibili e acquisiscono intelligenza
grazie al fatto di poter comunicare dati su se stessi e accedere ad informazioni aggregate da
parte di altri.
1.2 La struttura di Internet
I sistemi terminali accedono a Internet attraverso gli Internet service provider(ISP), Gli ISP
DSL, wireless, etc…).
possono fornire diversi tipi di accesso alla rete (es: Dial-up,
Internet è fondamentalmente gerarchica, al centro: “ISP di livello 1” o “reti dorsali di Internet”,
ISP di livello 2: ISP più piccoli (nazionali o distrettuali), ISP di livello 3 e ISP locali (ISP di
accesso). per l’invio e la ricezione
I sistemi terminali ed i commutatori di pacchetti fanno uso di protocolli
dei dati. le regole che permettono la comunicazione fra due “peer”. Dunque un protocollo
Esse sono
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 ricezione di un messaggio o di un
altro evento.
Il protocollo HTTP e l’interazione fra HTTP e TCP
2.
2.1 HTTP: HypertextTransfer Protocol
Protocollo per trasmettere informazioni in formati multipli, linguaggi multipli e diversi set di
caratteri. La sintassi di HTTP è basata su MIME: Multipurpose Internet Mail Extensions il cui
scopo era quello di definire messaggi che contenessero diversi tipi di dati, presenti anche
contemporaneamente. 4
Una richiesta HTTP ha il seguente formato: Request-line, Header Lines, Body del
messaggio (opzionale).
2.2 Gestione delle connessioni
Tra gli obiettivi di HTTP 1.1 c’è la gestione delle connessioni, poiché HTTP è stratificato su
TCP, le performance delle transazioni HTTP dipendono dalle performance di TCP.
Il problema: HTTP usa praticamente esclusivamente TCP come protocollo di trasporto che non
è ottimizzato per le tipiche connessioni di HTTP frequenti, di breve durata, con pochi dati da
scambiare.
Mentre la connessione persistente consente di fare un solo 3-way handshake ma era
necessario chiudere la connessione o attendere un time-out.
3. Componenti software del WWW
3.1 The Client
Per la prospettiva “utente”: il client è il Web. Tipologie di client: browser, spider, software agent
Funzionalità: iniziazione di una richiesta HTTP (click, bookmark, type), headers del messaggio,
gestione risposta (configurazione utente), Cookies.
3.2 The Proxy or Edge Server
Proxy/Edgeserver: intermediario che agisce come server per il client e come client per il server.
Gateway: Server che agisce da intermediario per non HTTP servers (es: Mail, FTP server)
Il gateway agisce come un origin server, mentre lo user-agent può non essere consapevole che un
intermediario è presente tra se e l’origin server.
Tunnel: Agisce (da relay) a livello sintattico non semantico, non altera il flusso http.
Perché usare Proxie?
- Condivisione accesso al web: ottimizzazione, con serializzazione di richieste su una unica
c’è un ritardo nell’ottenere
connessione verso il server, se la risposta alla prima richiesta, la
seconda verrà ritardata.
- Caching: Mantenute copie locali dei documenti più popolari, riduzione del carico sui Web
server e della latenza percepita dagli utenti finali.
- Document access controller: Implementazione di strategie di accesso.
- Security Firewall.
- Surrogate o reverse proxies: Proxies che si mascherano da Web server, possono iniziare
una comunicazione con altri server.
- Anonymizer: Rimozione di identifyng information da messaggi http.
dell’utente durante la navigazione nel Web, filtering di informazioni
- Protezione della privacy
critiche, blocco delle richieste verso siti di terze parti.
Alcune tecniche
- Eliminare cookies(o cookie di terze parti);
- Rimuovere Web bugs (immagini di dimensioni 1x1 per il tracking degli utenti;
Bloccare l’esecuzione di codice dinamico all’interno delle pagine HTML;
-
- Bloccare le richieste per siti di terze parti;
- Bloccare banner, advertisement, meta tag, ecc.
Informazioni note ai proxy: La risorsa a cui si accede, la frequenza degli accessi, header e body
delle richieste/risposte.
3.3 Web server
Un Web server (o HTTP server) risponde alle richieste di risorse inviate attraverso il protocollo
HTTP (Hyper Text Transfer Protocol). Un client richiede una risorsa inviando un comando HTTP e
un URL (Uniform Resource Locator) che identifica univocamente la risorsa nel World Wide Web. Il
Web server risponde inviando un documento.
Identificazione dell’utente che origina la richiesta, basata su coppia
Autenticazione:
nome/password (memorizzate in locale in un file criptato), essendo il protocollo HTTP stateless il 5
server non ha nozione di “sessione” ciò nonostante, l’utente ha l’illusione di una sessione perché il
client continua a inviare la coppia username/password ad ogni richiesta.
Autorizzazione: determina a quali risorse un utente può accedere (politica di accesso), si utilizza
una access control list che di norma, specifica la politica per subdirectory nel filesystem basata su
username, IP address, etc.
Risposte generate dinamicamente
- statiche (corrispondenti a risorse sul file system)
- generate dinamicamente dal server (es: script che generano documenti)
- ottenute dal terzo livello di una architettura a 3 layer (es: interfaccia verso un DBMS, con
query SQL)
ad ogni richiesta/risposta devono essere ripetute autenticazione (per la necessaria autorizzazione)
e invio dello stato della sessione (con i cookies). I cookies vengono settati dal server nella risposta
ed il client li invia ogni volta che accede quel sito trasmessi con l’header.
Caching: In pratica, poche risorse di un sito sono molto popolari e quindi influenzano sensibilmente
il carico. Una tecnica utile è quella di fare caching lato server.
Architettura dei Web Server: il carico di un server Web può essere davvero notevole con picchi di
carico imprevedibili, la gestione delle risorse viene tenuta presente nella architettura del server, ci
sono due possibili architetture: Single-threaded Web Server (servita una richiesta per volta) e
Multi-process, Multi-threaded Web server (impiegati processi o thread multipli per il processing
simultaneo delle richieste).
- Single-Threaded: struttura semplice, un processo/thread che gestisce una richiesta alla
volta, quando una transazione è completa la prossima connessione potrà essere
processata, Web server «semplici», problemi di performance.
- Architettura multithreaded: impiegati thread o processi multipli per gestire più connessioni
contemporaneamente, i thread/processi possono essere creati on demand oppure creati in
anticipo tramite un Workerpool (thread che attendono in un pool per il lavoro da fare).
Alcuni Web server dedicano un thread/processo per ogni connessione comporta un
consumo elevato di memoria e risorse di sistema quando si devono gestire decine di
migliaia di connessioni simultanee, quindi molti Web server pongono un limite sul numero
massimo di thread/processi.
- Architettura Multiplexed I/O Server: architettura per il supporto di un elevato numero di
connessioni, tutte le connessioni sono pronte per essere eseguite (open connection list) ,
quando una connessione cambia stato(dati disponibili o condizioni di errore) una parte del
processing viene eseguita sulla connessione. Quando il processing è terminato la
connessione viene restituita alla open connection list per il prossimo cambiamento di stato.
- Threads e processi non restano in attesa su connessioni idle. 6
3.4 Benchmarking pratica che consiste nell’essere umili al punto di
Definizione informale: il benchmarking è quella
ammettere che altri possano essere migliori di noi, ma allo stesso tempo abbastanza saggi da
imparare da essi
e superarli!
Definizione generale: Il benchmarking è un processo continuo di misurazione di prodotti, servizi e
prassi aziendali, mediante il confronto con i concorrenti più forti di uno specifico settore. Il
signifcato in pratica:
Il Benchmarking è un'efficace metodologia per misurare e incrementare le performance di
un’impresa o di una Pubblica Amministrazione.
Il Benchmarking richiede l’individuazione delle migliori aziende nel settore in cui si opera e un
confronto dei propri risultati con quelli delle migliori aziende per imparare da questo confronto e
implementare i suggerimenti migliorando le proprie performance per poi ricalibrare il
benchmarking.
Imparare significa fare le cose nel miglior modo possibile, il più velocemente possibile ed
ottimizzando i costi.
Esistono vari tipi di Benchmarking (Process benchmarkin, Financial benchmarking, Product
benchmarking, Operational benchmarking) ma in particolare è importante il Performance
benchmarking che analizza le prestazioni di un sistema: la decisione di acquistare/usare una
componente software specifica dipende da prezzo e prestazioni; Il confronto fra diversi sistemi
richiede di applicare un workload comune e riproducibile a ciascun prodotto; Il workload deve
essere scelto in modo tale che risultati siano rappresentativi di come il prodotto funzionerà nella
pratica.
3.5 Web Server Benchmarking
Analisi delle performance di un Web Server e capacità di servire adeguatamente carichi di lavoro
elevati. Le performance sono misurate in termini di numero di richieste concorrenti servite (al
secondo), tempo di risposta per ogni nuova connessione o richiesta (millisecondi), throughput (in
bytesper secondo).
Definire il workload: file HTML di piccole e grandi dimensioni, script cgi e perl.
I test da eseguire: Test statico, Test dinamico (Test di accesso a DB), Test con e senza
KeepAlive abilitato, Test con esecuzione di script.
- Configurazione hardware:
Linux pc04 …. GNU/Linux
→
uname–a →
head -n1 /etc/issue Fedora release 11 (Leonidas)
→
grepMemTotal/proc/meminfo MemTotal: 2061952 Kb
→
grep"model name" /proc/cpuinfo model name: Intel(R) Pentium(R) 4 CPU 3.40GHz
→
- Test Statico: Taglia, numero richieste, numero di client concorrenti ab -n 10000 -c 100
http://172.16.15.145:8080/Simple/Small.html
–k
→
- Test statico keepalive ab -n 10000 -c 100
http://172.16.15.145:8080/Simple/Small.html
→
- Dynamic test: Esecuzione di uno script Perl ab -n 10000 -c 100
http://172.16.15.145:8080/cgi-bin/Hello.pl
Poiché Yaws utilizza the Erlang's light weight threading system, offre prestazioni elevate anche in
condizioni di concorrenza elevata. Un test di carico condotto
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.