Burstnet informatica © GESTIONE TRAFFICO DI RETE 1 GESTIONE TRAFFICO DI RETE Classificazione del traffico in rete Congestione e politiche di rafforzamento Banda e priorità Identificazione delle applicazioni Gestione risorse di rete Burstnet informatica © 2 CLASSIFICAZIONE DEL TRAFFICO IN RETE La Burstnet informatica © classificazione del traffico in rete può essere considerata un’attività strategica del network engineering. I vecchi sistemi basati sull’utilizzo esclusivo delle porte di servizio sono diventati ormai obsoleti grazie alla proliferazione di software di peer-to-peer e all’utilizzo di applicazioni multimediali. 3 CLASSIFICAZIONE DEL TRAFFICO IN RETE Es. applicazioni multimediali comunicazione di documenti multimediali streaming real time audio/video. documenti Web (ad esempio siti, blog e forum). trasferimento dati (ad esempio posta elettronica, trasferimento di file o peer-topeer). erogazione di servizi ( Webservice). Burstnet informatica © 4 CLASSIFICAZIONE DEL TRAFFICO IN RETE La classificazione è la base su cui si fondano i sistemi di anomaly detection. Sfruttando i risultati della classificazione del traffico si possono ad esempio ottenere indicazioni utili per l’allocazione delle risorse necessarie a soddisfare specifiche esigenze di QoS - Quality of Service. Burstnet informatica © 5 CLASSIFICAZIONE DEL TRAFFICO IN RETE Sono stati sviluppati sistemi di classificazione basati sull’esame dei pacchetti a livello applicativo. I pacchetti sono composti dall’unione di un header e un payload. Quando un'applicazione deve inviare dei dati ad un'altra, il protocollo TCP/IP interviene suddividendo l'informazione da inviare in una sequenza di pacchetti. Ciascuno di questi pacchetti è etichettato con un header. Burstnet informatica © 6 CLASSIFICAZIONE DEL TRAFFICO IN RETE Burstnet informatica © 7 CLASSIFICAZIONE DEL TRAFFICO IN RETE Burstnet informatica © Version:4bit Descrive la versione del protocollo utilizzato. IHL (IP Header Length) : 4bit Contiene la lunghezza dell'header (in parole di 32 bit), questa è un‘ informazione necessaria perché con le opzioni l'header può essere anche più lungo dei canonici 20 byte. Type of service: 8bit Permette di indicare il tipo di servizio richiesto. Total length:16bit Contiene la lunghezza totale del pacchetto (quindi header+payload). Identification:16bit In caso di frammentazione tutti i frammenti conterranno lo stesso identificativo, quindi questo campo è necessario per permettere all'host di ricongiungere tutti i frammenti. DF (Don't Fragment):1bit Flag che se settata ad 1 ordina ai router di non frammentare il pacchetto. 8 CLASSIFICAZIONE DEL TRAFFICO IN RETE Burstnet informatica © MF (More Fragment):1bit Flag che se settata ad 1 indica che questo datagramma è un frammento di un pacchetto più grande, e non è l'ultimo (che infatti avrà il flag posto a zero). Fragment Offset:13bit. Indica in che posizione del datagram va inserito questo frammento. Time to live:8bit É il contatore utilizzato per determinare il tempo di vita dei pacchetti. Tipicamente viene decrementato ad ogni salto. Protocol:8bit . Indica quale è il protocollo di livello superiore utilizzato (e quindi permette di interpretare correttamente l'header che segue). Header checksum:16bit Controllo di errore (solo sull'header). Source address:32bit. Indirizzo IP della sorgente. Destination address:32bit. Indirizzo IP della destinazione. Options:0 o più parole da 32bit. Estensioni dell'header che permettono di includere nuove funzionalità, oppure di provare nuove soluzioni. 9 CLASSIFICAZIONE DEL TRAFFICO IN RETE Dal punto di vista della classificazione del traffico, risulta quindi naturale orientarsi verso l’analisi degli header, perché questi sono intrinsecamente collegati ai relativi protocolli. Questo non preclude però la possibilità di sviluppare classificatori basati sull’analisi dei payload. Packet inspector Burstnet informatica © 10 CLASSIFICAZIONE DEL TRAFFICO IN RETE Burstnet informatica © Quality of Service (QoS) refers to the capability of a network to provide better service to selected network traffic over various technologies. The primary goal of QoS is to provide priority including dedicated bandwidth, controlled jitter and latency (required by some real-time and interactive traffic), and improved loss characteristics. Also important is making sure that providing priority for one or more flows does not make other flows fail. Elements of network performance within the scope of QoS often include availability (uptime), bandwidth (throughput), latency (delay), and error rate. 11 CLASSIFICAZIONE DEL TRAFFICO IN RETE Burstnet informatica © Una possibile soluzione consiste nel lasciare ai router e agli switch di rete la libertà di selezionare la modalità operativa a seconda del tipo di servizio (voce, dati e video), man mano che i dati vengono trasferiti in rete. L’uso di QoS (Quality Of Service ) consente di utilizzare applicazioni diverse sulla stessa rete senza occupare la larghezza di banda dedicata delle singole periferiche. l termine Quality of Service si riferisce ad alcune tecnologie, come ad esempio DSCP (Differentiated Service Codepoint), in grado di identificare il tipo di dati in un pacchetto e di suddividere i pacchetti in classi di traffico a cui è possibile assegnare la priorità per l’inoltro. 12 CLASSIFICAZIONE DEL TRAFFICO IN RETE Burstnet informatica © I principali vantaggi di una rete QoS includono : La possibilità di assegnare priorità al traffico per consentire l’elaborazione dei flussi di dati critici prima di quelli con priorità minore. Una maggiore affidabilità grazie al controllo della quantità di larghezza di banda utilizzata dalle singole applicazioni e dal conseguente controllo della concorrenza tra le applicazioni relativamente alla larghezza di banda. 13 CLASSIFICAZIONE DEL TRAFFICO IN RETE Burstnet informatica © Il prerequisito per l’uso di QoS in una rete video è che tutti gli switch, i router e i prodotti con tecnologia video di rete supportino QoS. 14 CONGESTIONE DELLA RETE La Burstnet informatica © congestione di rete è l’evento colpevole della perdita di performance sulla rete e di throughput sulla LAN. Questo comporta la formazione di code in vari punti della rete. Le risorse da condividere sono l’ampiezza di banda delle linee di collegamento e i buffer interni ai router o agli switch dove i pacchetti vengono accodati prima di essere trasmessi. Problema: le risorse sono distribuite nella rete 15 CONGESTIONE DELLA RETE Quando Burstnet informatica © troppi pacchetti competono per la stessa linea, la coda trabocca e alcuni pacchetti dovranno essere eliminati. Quando tale eliminazione diventa un fenomeno frequente si dice che la rete è congestionata. La maggior parte delle reti ha un meccanismo di controllo della congestione per gestire tali situazioni. 16 CONGESTIONE DELLA RETE Migliorare l’allocazione delle risorse Consento l’invio dei pacchetti, quando avverrà la congestione la gestirò Soluzioni combinate Burstnet informatica © Soluzioni: 17 CONGESTIONE DELLA RETE Negli apparati di rete posso predisporre meccanismi di gestione delle code (es. separazione del traffico). Negli host terminali posso limitare la velocità con cui le sorgenti di traffico possono inviare i pacchetti, evitando così il verificarsi della congestione. Burstnet informatica © Il controllo della congestione e l’allocazione delle risorse coinvolgono sia gli host e sia gli apparati di rete (es. router). 18 CONGESTIONE DELLA RETE In una rete a commutazione di pacchetto, alcuni pacchetti vengono semplicemente scartati, ovvero cancellati dalla memoria dei commutatori(switch) che li hanno ricevuti ma non riescono a trasmetterli. Questo accade quando le code interne ai commutatori sono piene, e non c'è più spazio disponibile per memorizzare i pacchetti ricevuti. Burstnet informatica © Una situazione di congestione può portare la rete a non poter smaltire una parte del traffico offerto, ovvero a non fornire il suo servizio ad una parte dei suoi potenziali utenti. Questo ad esempio può verificarsi in: 19 CONGESTIONE DELLA RETE Il controllo della congestione è una funzionalità delle reti a commutazione di pacchetto, il cui scopo è prevenire e limitare i fenomeni di congestione. Può essere implementata nel livello di rete, di trasporto o anche a livello applicativo. Nelle reti a pacchetto, infatti, i pacchetti attraversano una grande quantità di dispositivi diversi, come ad esempio router, switch, bridge. Burstnet informatica © 20 CONGESTIONE DELLA RETE Questi dispositivi, e i collegamenti che li interconnettono, hanno capacità di elaborazione e di trasmissione limitate, che possono portare, in molti casi, a situazioni di congestione, ossia a situazioni nelle quali non sono in grado di smistare tutto il traffico in arrivo. Il controllo della congestione permette di migliorare le prestazioni della rete evitando perdite di pacchetti e limitando il ritardo. Burstnet informatica © 21 CONGESTIONE DELLA RETE Burst (raffiche) Velocità di picco che viene mantenuta per un certo intervallo di tempo. Numero di byte che vengono inviati alla velocità di picco prima di tornare alla velocità media. Burstnet informatica © Se la velocità di picco è superiore alla velocità del canale, i dati devono essere memorizzati da qualche parte per essere trasmessi più tardi. Conoscendo la dimensione dei burst il progettista di rete può utilizzare dei buffer sufficienti per contenere tali dati. 22 CONGESTIONE DELLA RETE Il protocollo TCP ha un meccanismo (slidingwindow) per controllare la capacità di ricezione del destinatario della connessione. Questo evita che il mittente possa esaurire il buffer del destinatario. Diversamente come abbiamo detto il controllo di congestione si occupa di evitare che un host possa sovraccaricare eccessivamente la rete. Come può allora il protocollo TCP aiutarci? Burstnet informatica © 23 CONGESTIONE DELLA RETE Il protocollo TCP gestisce, per ogni connessione, una nuova variabile di stato, chiamata congestionWindow, che viene usata dalla sorgente (src) per limitare la quantità dei propri dati, in transito nella rete in un certo istante. Il protocollo TCP viene modificato in modo che il numero massimo consentito di byte di dati non confermati sia, ora, il minimo fra la finestra di congestione e la finestra annunciata. MaxWindow = MIN (CongestioneWindow, AdvertisedWindow) Burstnet informatica © 24 CONGESTIONE DELLA RETE In questo modo una src TCP non può spedire più velocemente di quanto sia accettabile per il componente più lento: la rete o l’host di destinazione. Il problema a questo punto e come il TCP apprenda il valore corretto per congestionWindow. La risposta è che la src TCP imposta il valore di congestionWindow basandosi sul livello di congestione di rete da essa percepito. Questo richiede la diminuzione della finestra di congestione quando il livello di congestione sale e viceversa. Burstnet informatica © 25 CONGESTIONE DELLA RETE Il TCP interpreta la scadenza delle temporizzazioni come un segnale di congestione e riduce la velocità di trasmissione. In particolare ogni volta che una temporizzazione scade, la src imposta congestionWindow a metà del suo valore precedente, mentre ogni volta che la src invia un numero di pkt pari a congestionWindows con successo incrementa di un pkt il valore di questa finestra. Burstnet informatica © 26 CONGESTIONE DELLA RETE Concludendo abbiamo visto che un meccanismo per limitare la congestione della rete è attuato da TCP. Ma attenzione TCP punta a controllare la congestione quando questa accade, piuttosto che cercare, prima di tutto, di evitarla. Il protocollo TCP ha quindi bisogno di provocare la perdita di pkt per determinare quale sia la banda disponibile per la connessione. Burstnet informatica © 27 BANDA E PRIORITÀ il vecchio adagio della programmazione “prima fallo funzionare, poi rendilo veloce”, sia valido per molti contesti, nelle reti di solito è necessario “progettare per le prestazioni” Burstnet informatica © Nonostante 28 BANDA E PRIORITÀ Le prestazioni di una rete si misurano fondamentalmente in due modi: Precisazione: in riferimento alle prestazioni misurate di un sistema, si tende ad utilizzare la parola “throughput”. Burstnet informatica © ampiezza di banda (bandwidth, spesso chiamata anche throughput, quantità di flusso) latenza (latency, chiamata delay, ritardo) 29 BANDA E PRIORITÀ L’ampiezza di banda di una rete è data dal numero di bit che possono essere trasmessi dalla rete in un certo intervallo di tempo RTT (round-trip time = tempo di percorrenza circolare) E’ il tempo necessario ad un messaggio per andare e tornare da un capo all’altro della rete Burstnet informatica © Throughput = QuantitàTrasferita/TempoDiTrasferimento Il Throughput è il valore reale di trasmissione dei dati non è il data rate. 30 BANDA E PRIORITÀ Quando ci dicono che una rete wireless viaggia a 54Mbps bisogna sapere che: 54Mbps rappresenta il “data rate”, ovvero tutta la banda disponibile per le comunicazioni tra tutti gli apparati wireless LAN. Molta di questa larghezza di banda però è utilizzata dai dati di gestione e dai dati ridondanti necessari per trasmettere il segnale wireless. Ed è per questo che il cosìdetto “throughput” del sistema è sempre meno che il “data rate”. Quindi un collegamento wireless è contraddistinto da due velocità: data rate e throughput. Burstnet informatica © 31 BANDA E PRIORITÀ Burstnet informatica © Data rate è una misura del volume di dati che possono essere trasferiti dal sistema, compresi i dati “veri” e il cosìdetto overhead (extra di protocollo). Throughput è invece definito come la misura di informazioni utili che possono essere trasferite attraverso il sistema. 54Mbps è il data rate, ma questo si traduce in un throughput medio di 20-25 Mbps per sistemi 802.11g. 32 BANDA E PRIORITÀ Faccio un esempio: per trasferire un file che è un documento di Microsoft Word di 50KB da un computer all’altro tramite una rete wireless, si genera molto più traffico di rete di 50KB. Anche se il data rate fosse 54Mbps, trovereste il throughput tra 20 e 28 Mbps. Il data rate viene anche chiamato “velocità nominale” mentre il throughput viene chiamato “velocità reale” Burstnet informatica © 33 BANDA E PRIORITÀ Es 1: richiediamo 1Mb attraverso una rete a 1Gbps in una trasmissione continentale: Burstnet informatica © Tempo di trasferimento 1/1 Gbps x 1MB = 8ms(10^3) RTT di 100 ms 1MB/108ms = 74.1 Mbps (throughput effettivo della linea) NB come risultato non ho ottenuto 1Gbps 34 BANDA E PRIORITÀ 2: Abbiamo un flusso video con una risoluzione di 352x240 pixel, se ciascun pixel è rappresentato da 24bit d’informazione qual è la dimensione di ciascun frame? Burstnet informatica © Es 35 BANDA E PRIORITÀ La dimensione del singolo frame è di: (352 x 240 x 24)/8 = 247,5 KB Burstnet informatica © Se l’applicazione deve fornire i frame ad una velocità di 30 frame al sec. potrebbe allora richiedere un throughput di circa 60 Mbps NB La capacità della rete di fornire un ampiezza di banda maggiore di quella richiesta, non migliora le prestazioni, perché l’applicazione non ha così tanti dati da trasmettere in un dato intervallo di tempo. 36 APPROFONDIMENTI - PRODOTTO RITARDO X AMPIEZZA DI BANDA Intuitivamente se pensiamo ad un canale fra una coppia di processi come ad una conduttura Burstnet informatica Ritardo Ampiezza di banda 37 APPROFONDIMENTI - PRODOTTO RITARDO X AMPIEZZA DI BANDA Dove la latenza corrisponde alla lunghezza della conduttura e l’ampiezza di banda è in relazione al suo diametro. Allora il prodotto ritardo x ampiezza di banda rappresenta il volume interno della conduttura cioè il numero di bit che può contenere. Burstnet informatica 38 APPROFONDIMENTI - PRODOTTO RITARDO X AMPIEZZA DI BANDA 50 x 10^-3 secondi x 45 x 10^6 bit/secondo =2.25 x 10^6 bit Cioè: 2.25 x 10^6 = 280KB 8 x 2^10 Burstnet informatica Ad esempio se abbiamo un canale intercontinentale con una latenza di sola andata di 50 ms ed un ampiezza di banda di 45 Mbps abbiamo che è in grado di contenere: 39 APPROFONDIMENTI - PRODOTTO RITARDO X AMPIEZZA DI BANDA - Burstnet informatica Perché è importante questo calcolo? 40 APPROFONDIMENTI - PRODOTTO RITARDO X AMPIEZZA DI BANDA Quando Burstnet informatica progettiamo reti ad alte prestazioni è importante sapere questo prodotto perché corrisponde al numero di bit che possono essere inviati dalla sorgente prima che il primo bit giunga a destinazione. I bit che si trovano nella conduttura possono ancora essere in “viaggio” ciò significa che se il destinatario segnala al mittente d’interrompere la comunicazione 41 APPROFONDIMENTI - PRODOTTO RITARDO X AMPIEZZA DI BANDA Potrebbe Burstnet informatica ancora ricevere una quantità di dati pari al doppio del ritardo x ampiezza di banda prima che il mittente sia in grado di reagire. 42 IDENTIFICAZIONE DELLE APPLICAZIONI Real time Non real time Burstnet informatica © Nella progettazione di una rete bisogna considerare oltre ai fattori già descritti in precedenza anche la tipologia di applicazioni che dovranno essere utilizzate. 43 IDENTIFICAZIONE DELLE APPLICAZIONI Vedi decisioni nelle centrali atomiche Vedi controllo di volo di un aereo Il termine viene spesso riferito ai sistemi operativi, dove sono richiesti vincoli di tempo sulle operazioni del processore o sul flusso di dati. Burstnet informatica © Real-time è un termine utilizzato per indicare quei programmi per i quali la correttezza del risultato dipende fortemente dal tempo di risposta Hard real time Soft real time 44 IDENTIFICAZIONE DELLE APPLICAZIONI Per la risoluzione di problematiche real time si usano di solito architetture hardware dedicate, sistemi operativi appositamente concepiti, programmi applicativi pensati appositamente. Hardware, software di base e software applicativi sono spesso strettamente legati, in modo da conseguire le necessarie ottimizzazioni sui tempi di risposta. Burstnet informatica © 45 IDENTIFICAZIONE DELLE APPLICAZIONI Troppe variabili in gioco: Burstnet informatica © Negli ultimi tempi questa terminologia è stata associata impropriamente all'utilizzo di alcuni servizi della rete, quando in effetti i presupposti per poter realmente fruire di un servizio in modalità real-time sono davvero lontani dall’attuale architettura di rete Banda Latenza Congestione della rete ecc. 46 IDENTIFICAZIONE DELLE APPLICAZIONI Concludendo: Rispondere ad un evento in tempo reale significa rispondere ad una velocità predeterminabile, quali che siano i contesti operativi dell'apparato. Per applicazioni non real time definiamo quei programmi dove la variabile temporale non è decisiva. Burstnet informatica © editor, fogli elettronici, posta elettronica, DBMS, …. 47 GESTIONE RISORSE DI RETE Nel progettare una rete bisognerebbe ipotizzare a priori il carico del server Sotto/sovra dimensionamento della rete Costi Prestazioni degradanti della rete Saturazione delle risorse Possibile blocco delle applicazioni di rete Burstnet informatica © Lasciate alle stampanti la funzione di stampa e ai router la funzione d’instradamento dei pacchetti … 48 GESTIONE RISORSE DI RETE Come “alleggerire” un server: Burstnet informatica © Nas Stampanti di rete Firewall Switch Router Load Balancing 49 GESTIONE RISORSE DI RETE Burstnet informatica © Load balancing: Funzionalità per l'ottimizzazione delle risorse di calcolo che migliora le performance dei servizi forniti. Nelle web farm ad esempio, i server raggruppati in cluster forniscono all'esterno (Internet) un unico server virtuale distribuendo all'interno il carico di lavoro. In caso di guasto ad uno dei server del cluster, l'entità software di load balancing si occupa di ridistribuire le richieste di elaborazione sugli altri server (fault tolerance). 50 GESTIONE RISORSE DI RETE I servizi di load balancing sono tipicamente forniti da programmi o hardware dedicati Multilayer switch Server DNS File server Web server … Burstnet informatica © 51 GESTIONE RISORSE DI RETE Utilizzo di computer cluster Un computer cluster, o più semplicemente un cluster (dall'inglese grappolo), è un insieme di computer connessi tramite una rete telematica. Lo scopo di un cluster è quello di distribuire una elaborazione molto complessa tra i vari computer componenti il cluster. In sostanza un problema che richiede molte elaborazioni per essere risolto viene scomposto in sottoproblemi separati i quali vengono risolti in parallelo. Questo ovviamente aumenta la potenza di calcolo del sistema. Divide et impera! Burstnet informatica © 52 GESTIONE RISORSE DI RETE Fail-over Cluster: il funzionamento delle macchine è continuamente monitorato, e quando uno dei due host smette di funzionare l’altra macchina subentra. Lo scopo è garantire un servizio continuativo; Burstnet informatica © Esistono tre tipi di cluster: Fail-over, Load balancing ed High Performance Computing. I primi due sono i più diffusi: Cluster con load balancing: è un sistema nel quale le richieste di lavoro sono inviate alla macchina con meno carico; diffusi specialmente tra centri di elaborazione dati; 53 GESTIONE RISORSE DI RETE HPC Cluster: i computer sono configurati per fornire prestazioni estremamente alte. Burstnet informatica © Le macchine suddividono i processi di un job su più computer, al fine di guadagnare in prestazioni. La peculiarità saliente è che i processi sono parallelizzati e che le routine che possono girare separatamente saranno distribuite su macchine differenti invece di aspettare di essere eseguite una dopo l’altra. GLI HPC sono diffusi specialmente tra centri di elaborazione dati; 54 GESTIONE RISORSE DI RETE L'utilizzo di questa tecnologia è molto diffuso, per esempio: Ferrari e Dreamworks utilizzano cluster (basati sul sistema operativo GNU/Linux) sui quali fanno girare programmi di rendering e di simulazione fluidodinamica computazionalmente molto onerosi. Per ottenere un sistema di computer operanti come un cluster è necessario: un sistema operativo in grado di far funzionare i computer come cluster (per esempio GNU/Linux, utilizzando OpenMosix). hardware di rete ad elevate prestazioni. un algoritmo parallelizzabile. Burstnet informatica © 55 GESTIONE RISORSE DI RETE Il mondo GNU/Linux supporta vari tipi di software per il clustering, come: Burstnet informatica © Beowul, distcc, MPICH ed altri - gran parte sono applicazioni di clustering molto specializzate. Il programma distcc fornisce compilazione parallela quando utilizza la GCC. Linux Virtual Server, Linux-HA - sono cluster con un computer-direttore che permette alle richieste di servizi in arrivo di essere distribuite attraverso molteplici nodi del cluster. 56 GESTIONE RISORSE DI RETE Burstnet informatica © MOSIX, openMosix, Kerrighed, OpenSSI - sono cluster sotto ogni punto di vista, sono stati integrati nel kernel il quale provvede alla migrazione automatica dei processi tra nodi omogenei. OpenSSI, openMosix e Kerrighed sono implementazioni singlesystem image. GNU/Linux è attualmente il sistema più utilizzato per il clustering: secondo Top500 nel 2009 è stato il sistema più usato in assoluto. La piattaforma Microsoft Windows Compute Cluster Server 2003 basata su Windows Server 2003 Standard x64 Edition fornisce elementi per il calcolo ad alte prestazioni, come "Job Scheduler", le librerie MSMPI ed altri strumenti di amministrazione. 57