reti_c_d_mura.pdf

21
Appunti del corso di formazione per la Progressione Verticale da C a D Programma : Reti e protocolli - Reti a commutazione di pacchetto - Il protocollo OSI - Il protocollo TCP/IP - I Socket - Il protocollo FTP e HTTPS - Gli indirizzi IP Apparati attivi e passivi - Gli Hub - Gli Switch - I Router Università degli Studi di Sassari docente: Gavino Mura

Upload: giorgio-valtolina

Post on 02-Feb-2016

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reti_C_D_Mura.pdf

Appunti del corso di formazione per

la Progressione Verticale da C a D

Programma:

Reti e protocolli

- Reti a commutazione di pacchetto - Il protocollo OSI - Il protocollo TCP/IP - I Socket - Il protocollo FTP e HTTPS - Gli indirizzi IP

Apparati attivi e passivi

- Gli Hub - Gli Switch - I Router

Università degli Studi di Sassari docente: Gavino Mura

Page 2: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Reti a commutazione di pacchetto

Una rete a commutazione di pacchetto è una rete che impiega una tecnica di commutazione, di pacchetto appunto, che permette un accesso multiplo alle risorse di rete attraverso una ripartizione del tempo assegnato. Questa si distingue dalle reti a commutazione di circuito per il fatto che il canale trasmissivo non è fisicamente assegnato all’inizio della comunicazione ad una sola stazione trasmittente.

Le prime reti dati impiegavano la tecnica di commutazione di circuito, si pensi ad esempio alle prime reti telefoniche, nelle quali un intero canale trasmissivo veniva dedicato a ciascuna comunicazione. La possibilità di poter effettuare diverse comunicazioni contemporanee dipendeva dal numero di canali fisici disponibili.

Con la tecnica di commutazione di pacchetto l’informazione da trasmettere viene suddivisa in

pacchetti di ridotte dimensioni, che vengono poi inviati sulla rete in maniera indipendente l’uno dall’altro. E’ dunque molto probabile che su un canale vengano inviati in maniera sequenziale pacchetti non appartenenti alla stessa stazione trasmittente e per questo si dice che il canale è condiviso. Questa condivisione è di tipo temporale.

I pacchetti appartenenti alla stessa sorgente informativa possono seguire differenti percorsi per arrivare alla destinazione voluta. Per questo è probabile che arrivino non nell’ordine di invio o che qualcuno se non tutti si perdano lungo il percorso.

Di questi problemi si occuperà un protocollo apposito, che eseguirà il riordinamento dei pacchetti e la richiesta di ri-trasmissione di quelli persi. Nel caso si perdano tutti i pacchetti permetterà anche il re-invio dell’intera sequenza.

Oggi, con le moderne tecnologie e a parità di canale trasmissivo, è possibile inviare contemporaneamente più informazioni sfruttando tecniche di multiplazione1 di frequenza (un po’ come le comunicazioni radio, che occupano il canale nello stesso istante di tempo ma a frequenze differenti), che permettono di impiegare tecniche miste di commutazione di pacchetto e di circuito. In questo caso si parla di tecniche di commutazione di “circuito virtuale”.

La tipologia di trasmissione dati dei computer, o “burst” (dove il canale di trasmissione viene

impiegato per un breve arco temporale), ben si adatta alle reti a commutazione di pacchetto. Altre tipologie di trasmissione, come quelle “real-time” prediligono reti a commutazione di circuito e solo da pochi anni sono stati sviluppati dei protocolli che adattano tali comunicazioni anche su reti a pacchetto. Un esempio tipico è il VoIP (Voice over IP) ovvero il passaggio delle comunicazioni vocali sul reti a pacchetto IP.

1 La multiplazione è il meccanismo per cui la capacità disponibile di un collegamento viene condivisa tra diversi canali trasmissivi.

Università degli Studi di Sassari 2/21

Page 3: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Il protocollo OSI

Il protocollo OSI (Open Systems Interconnection) è un modello di riferimento per l’interconnessione di sistemi aperti nelle reti di calcolatori e identifica una pila di protocolli suddivisa in 7 livelli. Fu definito come standard nel 1978 dalla ISO (International Organization for Standardization, uno dei principali enti di standardizzazione internazionale) con la sigla ISO 7498 e il documento che ne illustra tale attività è il Basic Reference Model di OSI.

La suddivisone in livelli (layers) permette di ridurre la complessità implementativa di un sistema di comunicazione di rete, ciascun livello si occupa di un particolare aspetto della comunicazione e presenta al livello superiore un punto di accesso (PoS: point of service) che risulta svincolato dagli aspetti dei livelli inferiori. In questo modo si ha un approccio progettuale di tipo modulare che consente, ad esempio, di implementare algoritmi diversi in un livello senza modificare l’implementazione dei livelli superiori.

Il modello OSI è stato progettato per permettere la comunicazione in reti a “commutazione di pacchetto”, del tutto simili al paradigma TCP-UDP/IP usato in Unix e nella rete ARPAnet, poi divenuta Internet. La differenza sostanziale fra TCP/IP e ISO/OSI consiste nel fatto che nel TCP/IP, come vedremo in seguito, i layers sono solo 5.

Ogni livello di una stazione di rete trasmittente comunica virtualmente con l’analogo livello della stazione ricevente, e viceversa. In realtà il messaggio inviato da un livello viene passato al livello inferiore, il quale lo passa al suo inferiore e così via fino al livello fisico che lo invierà sulla rete. La rete recapiterà il messaggio alla stazione ricevente dove a questo punto il messaggio seguirà il percorso inverso fino al livello di destinazione.

Nel disegno seguente viene illustrata la comunicazione virtuale tra i livelli analoghi di due stazioni trasmittenti. Anticipando le caratteristiche di ciascun livello, il disegno illustra anche la suddivisione in pacchetti che viene operata dal livello 4 (con diversi colori). Questi ultimi, nel passaggio attraverso la rete possono anche arrivare a destinazione con un ordine diverso da quello di invio. Sarà cura del livello 4 della stazione ricevente di riordinare i pacchetti nella giusta sequenza e passarli al livello superiore.

Università degli Studi di Sassari 3/21

Page 4: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

rete

7 7 6 6 5 5 4 4

3 3

2 2 1 1

Anche gli apparati di rete, che permettono la comunicazione tra le due stazioni, lavorano secondo il medesimo protocollo, e dunque avranno una gestione dei livelli della pila OSI, che tuttavia non include tutti e sette i livelli, ma solo quelli necessari, di volta in volta, al corretto invio dei pacchetti verso la destinazione.

Per fare un esempio, anticipando un po’ la sezione riguardante gli apparati di rete, il router lavora fino al livello 3 (per i suoi compiti standard) mentre lo switch fino al livello 2. Livello 1: fisico

Obiettivo: trasmettere un flusso di dati non strutturati attraverso un collegamento fisico, occupandosi della forma e del voltaggio del segnale. Ha a che fare con le procedure meccaniche e elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.

Semplicemente: si occupa di controllare la rete, gli hardware che la compongono e i

dispositivi che permettono la connessione. In questo livello si decidono:

• Le tensioni scelte per rappresentare i valori logici 0 e 1 • La durata in microsecondi del segnale elettrico che identifica un bit • L'eventuale trasmissione simultanea in due direzioni • La forma e la meccanica dei connettori usati per collegare l'hardware al mezzo trasmissivo

Livello 2: datalink

Obiettivo: permettere il trasferimento affidabile di dati attraverso il livello fisico. Invia frame di dati con la necessaria sincronizzazione ed effettua un controllo degli errori e delle perdite di segnale. Tutto cio' consente di far apparire, al livello superiore, il mezzo fisico come una linea di trasmissione esente da errori di trasmissione.

Università degli Studi di Sassari 4/21

Page 5: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Semplicemente: si occupa di gestire il collegamento fisico tra il nodo sorgente e il primo apparato di rete ad essa collegato, controllando i possibili errori del canale fisico e richiedendo la ritrasmissione di quei dati errati. Livello 3: rete

Obiettivo: rende i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione. Si occupa di stabilire, mantenere e terminare una connessione, garantendo il corretto e ottimale funzionamento della sottorete di comunicazione.

Semplicemente: si occupa di gestire l’invio dei pacchetti dal nodo sorgente al nodo di

destinazione, nel caso che questi ultimi siano ubicati in reti differenti, anche non direttamente collegate.

È responsabile di:

• routing2: scelta ottimale del percorso da utilizzare per garantire la consegna delle informazioni

• indirizzamento IP • conversione dei dati nel passaggio fra una rete ed un’altra con diverse caratteristiche

La sua unità dati fondamentale è il “pacchetto”, da cui deriva il nome delle reti a commutazione di pacchetto. Livello 4: trasporto

Obiettivo: permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due host. È il primo livello realmente end-to-end3, cioè da host sorgente a destinatario.

Semplicemente: si occupa di gestire l’invio dei messaggi tra il nodo sorgente e il nodo di

destinazione, effettuando frammentazione dei dati provenienti dal livello superiore in pacchetti, detti “segmenti” e trasmettendoli in modo efficiente ed affidabile usando il livello di rete. Nel caso che uno o più pacchetti vengano persi si occupa della ri-trasmissione degli stessi.

La sua unità dati fondamentale è il messaggio. Livello 5: sessione

Obiettivo: controllare la comunicazione tra applicazioni. Stabilire, mantenere e terminare connessioni (sessioni) tra applicazioni cooperanti.

Esso consente di aggiungere, ai servizi forniti dal livello di trasporto, servizi più avanzati,

quali la gestione del dialogo (mono o bidirezionale, la sincronizzazione (inserendo dei checkpoint4

2 In una rete basata sullo scambio di pacchetti, il routing seleziona il cammino che permette a un pacchetto di procedere dalla sorgente alla destinazione desiderata, inoltrandolo a successivi nodi intermediari (chiamati router) sulla base di determinati algoritmi. 3 punto punto.

Università degli Studi di Sassari 5/21

Page 6: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

in modo da ridurre la quantità di dati da ritrasmettere in caso di gravi malfunzionamenti, nel qual caso la comunicazione riprende dall'ultimo punto di controllo andato a buon fine). Livello 6: presentazione

Obiettivo: trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come la crittografia, la compressione del testo e la riformattazione.

Esso consente di gestire la sintassi dell'informazione da trasferire.

Livello 7: applicazione

Obiettivo: interfacciare utente e macchina.

Fornisce un insieme di protocolli che operano a stretto contatto con le applicazioni. È errato identificare un'applicazione utente come parte del livello applicazione.

I protocolli delle applicazioni tipiche di questo livello realizzano operazioni come:

• Trasferimento di file • Terminale virtuale • Posta elettronica

4 Checkpoint o punti di controllo, utile per individuare un momento temporale sicuramente stabile (cioè funzionante e dunque al quale si possa ritornare in caso di errori).

Università degli Studi di Sassari 6/21

Page 7: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Il protocollo TCP/IP

Cosa è

Precedentemente abbiamo visto il modello creato dalla ISO denominato OSI che, in sintesi, definisce delle regole di progettazione per la comunicazione tra stazioni su reti dati. In realtà fin dagli albori delle prime reti dati, tale modello non è stato impiegato in tutti i suoi 7 livello, ad esempio la rete Internet di oggi impiega un modello a 5 livelli, chiamato, anche se erroneamente, TCP/IP.

TCP/IP è in realtà il nome dei due protocolli più importanti della “Internet Protocol Suite”, in cui il primo è un acronimo di “Transmission Control Protocol” ed è possibile associarlo al livello 4 del modello OSI, mentre il secondo sta per “Internet Protocol” ed è possibile associarlo al livello 3 del modello OSI.

Nel modello della “Internet Protocol Suite” l’analogia tra livelli con il modello OSI arriva fino al livello 4, mentre il nuovo livello 5 racchiude tutte le funzionalità dei livelli 5, 6 e 7 dell’OSI.

Con il termine TCP/IP si identificano spesso (in maniera errata) tutti i protocolli della

“Internet Protocol Suite”, anche se questa è composta di altri importanti protocolli, come ad esempio l’UDP (User Datagram Protocol).

In genere il TCP viene utilizzato per quelle applicazioni che richiedono un servizio orientato

alla connessione, come ad esempio la posta elettronica e il file sharing5, mentre l'UDP prende sempre più piede per le applicazioni in tempo reale come l'on-line6 gaming o lo streaming7 audio e video; la differenza fra i due protocolli risiede nella maggiore affidabilità nel trasporto dei dati del TCP, che offre una serie di servizi appositamente pensati (gestione del flusso, della congestione...), mentre UDP punta molto sulla velocità di trasmissione a scapito della sicurezza. La storia

Nei primi anni settanta, la Defence Advanced Research Project Agency (DARPA8) finanziò l'Università di Stanford e la BBN (Bolt, Beranek and Newman) per sviluppare un insieme di protocolli di comunicazione da utilizzarsi per la creazione di reti a commutazione di pacchetto da usarsi nell’interconnessione di calcolatori eterogenei. Fu così che nacque l' “Internet Protocol Suite”. Questi protocolli, utilizzabili gratuitamente da tutti perché di pubblico dominio fin dall'inizio, ottennero un elevato successo e furono inizialmente impiegati nella rete dati ARPANET9 dal 1974.

Negli anni ottanta nacque l'idea di rendere di pubblico dominio l’uso della rete, fino ad allora limitato all'uso istituzionale e militare, i membri della comunità scientifica iniziarono così a scambiarsi informazioni, dati, e anche messaggi estemporanei. Fu così che nacque, spontaneamente, la posta elettronica, e di seguito i primi newsgroup. 5 Sharing o condivisione dei file presenti su una postazione. 6 On-line, leteralmente “in linea”, cioè mentre si è collegati o fruibili dalla rete Internet. 7 Il termine streaming identifica un flusso di dati trasmessi da una sorgente a una o più destinazioni tramite una rete telematica. 8 L’Agenzia per i Progetti di Ricerca Avanzata per la Difesa (DARPA) è un'agenzia governativa del Dipartimento della Difesa degli Stati Uniti che ha in carico lo sviluppo di nuove tecnologie ad uso militare. 9 La rete del DARPA (Advanced Research Projects Agency Network) impiegata non solo da per comunicazioni militari ma anche le comunicazioni di varie Università americane.

Università degli Studi di Sassari 7/21

Page 8: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Come funziona

Un indirizzo, chiamato indirizzo IP, identifica ogni nodo della rete ed è sostanzialmente un numerico che viene utilizzato al livello 3. Ciascun dispositivo (router, personal computer, server di rete, stampanti, etc...) ha, quindi, il suo indirizzo IP. Semplificando, un indirizzo IP può essere visto come l'equivalente di un indirizzo stradale o un numero telefonico di un abbonato. Infatti, così come un indirizzo stradale o un numero telefonico identifica un edificio o un telefono, così un indirizzo IP identifica univocamente uno specifico computer o un qualsiasi altro dispositivo di rete o a sua volta una rete stessa.

Il TCP fornisce ai vari protocolli del livello applicativo delle porte (socket) a cui le applicazioni possono collegarsi per avere un canale di trasferimento dati affidabile.

Una serie di pacchetti viene inviata seguendo delle regole ben precise:

1. Ad ogni gruppo di pacchetti spedito il trasmettitore fa partire un timeOut10. 2. Il ricevitore per ogni gruppo di pacchetti ricevuto invia un ACK11 indicando la sequenza

dell'ultimo pacchetto ricevuto correttamente. 3. Il trasmettitore su ricezione dell’ACK considera quindi spediti i pacchetti corrispondenti e

prosegue con la trasmissione.

L’uso di tale tecnica ha rilevato un alto valore di affidabilità e buon uso della banda disponibile. Esempio di utilizzo:

Quando ci vogliamo collegare con il nostro browser a un server web, stabiliamo un collegamento (virtuale) a livello applicazione. Il livello di trasporto si occupa dei dettagli del livello applicazione:

- Al livello di trasporto il protocollo TCP mette in coda i messaggi delle applicazioni (browser, e altri presenti sulla postazione) e li trasmette sotto forma di pacchetti; il buon fine della spedizione è attestato da una ricevuta di ritorno. Anche questo è un collegamento virtuale tra le due applicazioni, i cui dettagli sono demandati al livello di rete.

- Al livello di rete il protocollo IP decide quale strada seguire per trasmettere effettivamente i messaggi da un computer all’altro. Un computer spedisce, l’altro riceve, ma è un collegamento virtuale tra i due computer remoti, dei cui dettagli si occupa il livello di collegamento.

- Al livello di datalink si decide come fare il trasferimento del messaggio per ogni singolo tratto del percorso: dal computer del browser al primo router, dal primo router al secondo, e così via fino all’ultimo router prima del server web. Questo è un collegamento virtuale tra due computer adiacenti. I dettagli fisici sono lasciati all’ultimo livello.

- Il livello fisico, che è l'ultimo, trasmette il messaggio sul cavo sotto forma di impulso elettrico. Questo è l’unico livello in cui avviene una trasmissione effettiva.

10 Time-out o tempo di uscita, identifica il tempo oltre il quale se non viene ricevuto un messaggio di ACK ai pacchetti precedentemente inviati, li identifica come non ricevuti, e dunque da ritrasmettere. 11 Ack o acknowledgment, messaggio inviato dal nodo ricevente in risposta ad uno o ad un gruppo di pacchetti.

Università degli Studi di Sassari 8/21

Page 9: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

I Socket

Come accennato precedentemente i socket sono delle porte che i protocolli di livello 4 rendono disponibili alle applicazioni. Servono per fare in modo che più applicazioni possano utilizzare il livello 4 contemporaneamente. Così se per caso si volesse inviare una e-mail e contemporaneamente scarica in file da internet questo è reso possibile dal fatto che i due programmi usano il protocollo TCP su due socket differenti.

Esistono due tipi di socket su IP:

- listen - established

Nel primo il socket è identificato da una terna di valori: protocollo di trasporto, indirizzo IP

del pc su cui il socket è stato aperto e numero di porta sorgente. Nel secondo, oltre ai dati precedenti, sono presenti altri due valori: indirizzo IP del pc destinazione e numero di porta destinazione.

Si capisce dunque che non esiste un socket di tipo “established” senza che sia stato attivato prima un socket di tipo “listen”.

Un socket listen viene creato per permettere l’erogazione di un servizio. Un socket established viene creato nel momento che il servizio viene effettivamente erogato.

Lo stesso programma può utilizzare socket di numero diverso su due postazioni diverse. Il protocollo TCP/IP impiega 16 bit per identificare i socket disponibili e dunque un numero

massimo di 65535 socket differenti. Agli albori della rete internet lo IANA12 decise di riservare i numeri fino da 0 a 1023 (well

known ports) per dedicarli alla parte server (cioè quella che fornisce un servizio) di quelle applicazioni di uso più comune (o almeno riconosciute come tali allora), in modo che tutti fossero al corrente di tali valori, in modo da semplificare i vari collegamenti. Ad esempio la navigazione internet “http” avviene solitamente sulla porta 80 (lato server) e su questa si collegano di default i vari client web (IExplorer, Safari, Firefox, etc.).

Il socket aperto dal lato del client (colui che richiede il servizio) è definito di tipo dinamico in quanto può assumere un numero di qualsiasi valore (che viene scelto sopra il 1024). Al momento del collegamento, il client comunica tale valore al server, che saprà dunque a quale socket della postazione client indirizzare i pacchetti.

Se qualcuno decidesse di attivare un servizio web su una porta differente dalla 80, complicherebbe il lavoro degli utenti per il collegamento.

Pensare di usare porte diverse da quelle standard per discorsi inerenti la sicurezza dei sistemi non porta ai risultati sperati, in quanto esistono programmi (port scanner) in grado di scovare e identificare le porte aperte su una determinata postazione, inficiando dunque la modifica svolta.

12Internet Assigned Numbers Authority (IANA) è un ente internazionale a cui è demandata la responsabilità dell’assegnazione degli indirizzi IP.

Università degli Studi di Sassari 9/21

Page 10: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Il protocollo FTP

Il termine FTP è un acronimo di “File Transfer Protocol” (o protocollo di trasferimento file) è un servizio che fornisce gli elementi fondamentali per la condivisione di file tra postazioni host.

E’ un protocollo di livello 5 del modello TCP/IP e dunque impiega il livello 4 (nello specifico il TCP) per creare una connessione stabile tra due nodi host, in modalità “client / server”.

In tale modalità, molto comune per applicazioni che usano il TCP, uno dei due nodi funge da client (o cliente) nel senso che da inizio al collegamento con l’altro nodo che fungerà da server (servente). In altre parole il server contiene dei dati di cui il client ha bisogno.

Chi decide la modalità di funzionamento, client o server, è l’utente. Se su un host ci sono dati che si vuole condividere con atri si può installare il processo ftp in modalità server. Questi rimarrà attivo in attesa dei possibili collegamenti dei client ftp che necessitano di tali dati. Una volta instaurata la connessione è possibile inviare e/o ricevere i dati in per il client che per il server, cioè anche il client può trasferire dati sul server.

Niente vieta di avere il servizio ftp server installato sull’host e contemporaneamente avviare il

servizio ftp client per collegarsi ad un altro host. Per fare questo usano socket differenti. Come precedentemente accennato la parte server di molte applicazioni usa un socket

conosciuto. Per il servizio ftp server questo è il numero “21”. Niente vieta ad un amministratore di avviare un servizio ftp server su una porta diversa, ma se

voglio rendere semplice il collegamento degli utenti è meglio usare la porta assegnatagli dall’ente IANA. Così se volessi, ad esempio, collegarmi ad una postazione server che fornisce servizi ftp proverei a farlo sulla porta 21 di quel server, sarebbe impensabile provare il collegamento su tutte le 65535 porte fino a trovare quella giusta.

L'FTP ha subito una lunga evoluzione negli anni: il primo meccanismo di trasmissione file

risale al 1971. Esempio di utilizzo:

Si consideri un sito web (cioè un server che permette il collegamento http dai browes dei client) che deve poter amministrare il sito da una postazione remota. Infatti non è detto che il server fisico risieda nello stesso posto su cui si trova l’amministratore.

Per poter scaricare i file del sito web, in modo che sia disponibile per gli utenti, dalla postazione dell’amministratore a quella del server è possibile installare sulla postazione server il servizio ftp server e l’amministratore può usare il servizio ftp client per inviare i dati. FTP a riga di comando

Prima dell’avvento delle interfacce grafiche dei moderni sistemi operativi l’unico modo di lavoro per l’utente con il PC era a riga di comando, cioè scrivendo sulla tastiera direttamente i comandi da dare ai vari programmi. Ancora oggi, in molte realtà, le interfacce grafiche altro non sono che un tramite tra l’utente e la riga di comando, nel senso che le azioni con il mouse i la pressione dei bottoni vengono tradotte in comandi per il pc.

Eseguendo il comando ftp da finestra DOS13 è possibile avviare il servizio FTP client per collegarsi ad un FTP server. 13 Disk Operating System, primo sistema operativo impiegato per i personal computer IBM. Presente tuttora su sistemi Microsoft Windows.

Università degli Studi di Sassari 10/21

Page 11: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Il protocollo HTTPS

Il protocollo HTTPS non è un vero e proprio protocollo, ma è il protocollo HTTP “HyperText Transfer Protocol” (protocollo di trasferimento di un ipertesto) con l’aggiunta di uno strato software demandato alla crittografia dei dati scambiati tra server web e il browser dell’utente.

L’HTTP è il classico protocollo per il web che tutti usiamo nella navigazione internet, che si occupa del trasferimento di dati tra un server web e un client. Le specifiche del protocollo sono attualmente in carica al consorzio W3C (World Wide Web Consortium).

L'HTTP (e dunque l’HTTPS) funziona su un meccanismo “richiesta/risposta” (o client/server): il client esegue una richiesta ed il server restituisce la risposta. Nell'uso comune il client corrisponde al browser ed il server al sito web, vi sono quindi due tipi di messaggi: messaggi di richiesta e di messaggi risposta.

Inoltre differisce da altri protocolli di livello 7 (come il FTP) per il fatto che le connessioni vengono generalmente chiuse una volta che una particolare richiesta (o una serie di richieste correlate) è stata soddisfatta. Per il protocollo, ogni successiva richiesta non è correlata alle richieste precedenti. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, ma può porre dei problemi agli sviluppatori dei contenuti web, in quanto non viene memorizzato lo stato (stateless) costringendo ad utilizzare dei metodi alternativi per conoscere lo stato dell'utente. Spesso questi metodi si basano sull'uso dei cookie14.

L’aggiunta della crittografia ha modificato il nome HTTP in HTTPS, dove la “S” sta per “Secure” e impiega un protocollo chiamato SSL (Secure Sockets Layer).

La porta o socket di ascolto dei server web dedicata alle connessioni “sicure” è la 443, mentre quella del protocollo HTTP standard è la 80. Niente vieta di sceglierne delle altre, ma per semplificare il collegamento degli utenti come abbiamo già visto esistono delle porte assegnate a particolari servizi.

Tramite i servizi HTTPS è possibile comunicare attraverso la rete internet senza che i dati scambiati possano essere letti da terzi. Questo risulta molto utile nelle operazioni di acquisto on-line (via web), nelle comunicazioni tra utenti e la propria banca, e in tutti i casi di scambio di dati personali. Funzionamento della crittografia

Per fare in modo che i dati vengano inviati sulla rete in maniera crittografata client e server si scambiano delle chiavi di crittografia secondo una modalità chiamata “Crittografia Assimetrica” o “Crittografia a chiave pubblica e privata”. Si basano su dimostrazioni matematiche molto complesse. Noi ne vedremo solo il funzionamento:

1. Il client richiede il servizio al server.

2. Il server comunica al client che la connessione avverrà in SSL e per questo gli invia il suo “certificato pubblico”.

3. Il client controlla presso un “ente terzo” (menzionato nel certificato pubblico) che il

certificato pubblico del server sia valido. Per fare questo invia quel certificato ad una 14 I cookie (letteralmente "biscottini") sono piccoli file di testo che i siti web utilizzano per immagazzinare alcune informazioni nel computer dell'utente. Sono inviati dal sito web e memorizzati sul computer dell’utente e vengono re-inviati al sito web al momento delle richieste successive.

Università degli Studi di Sassari 11/21

Page 12: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

“Certification Authority” (autorità di certificazione, C.A.), che gli da conferma o meno dell’autenticità del certificato pubblico del server;

4. Se la Certification Authority non riconosce valido il certificato, il browser chiede

all’utente come comportarsi, cioè se continuare o meno con la connessione. Se si decide di continuare o se la Certification Authority approva il certificato pubblico del server, il client invia al server il suo certificato pubblico.

5. Da questo momento in poi i dati sono inviati in maniera crittografata.

Il client invia i dati crittografandoli con il certificato pubblico del server e il server invia i dati crittografandoli con il certificato pubblico del client.

Il server de-crittografa i dati ricevuti con il suo “certificato privato”, infatti questi erano stati

crittografati dal client con il certificato pubblico del server. Stessa cosa fa il client, impiegando però il suo certificato privato. 1 client 2 5 3 server C.A. 4

Perché nessuno può leggere i dati scambiati tra i due?

• Perché serve il corrispondente “certificato privato” per de-crittografare i dati crittografati con un particolare “certificato pubblico”. Tentare di farlo senza il corrispondente privato è una impresa (a seconda della lunghezza delle chiavi presenti nei certificati) “ritenuta quasi impossibile”.

• Il certificati privati non vengono MAI inviati sulla rete(e non devono essere mai scambiati con nessuno), e dunque solo i due interlocutori capiscono ciò che si inviano.

Si è evidenziato il fatto che sia quasi impossibile de-crittografare dati senza la corrispondente

chiave privata perché ad esempio con una chiave a 128 bit sia hanno 3,4x1038 combinazioni. Anche con la potenza dei computer di oggi si stima che ci vogliano parecchi anni per poterlo fare.

Anche se qualcuno tentasse l’impresa, avrebbe dei dati vecchi di molti anni, che i server non accetterebbero più.

Importante è il ruolo delle società di certificazione, perché senza di queste uno si potrebbe fingere qualcun altro senza aver bisogno del certificato privato di chi si finge di essere.

Queste metodologie stanno anche alla base della “firma digitale”.

Università degli Studi di Sassari 12/21

Page 13: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Gli indirizzi IP. Prima di addentrarci nel funzionamento vero e proprio di un router soffermiamoci

sull’indirizzamento IP. Un indirizzo IP è un numero di 32 bit, suddiviso in 4 gruppi. Ogni gruppo contiene 8 bit e

viene rappresentato per semplicità come numero decimale: 11000000.10101000.00010001.00000101 192.168.17.5 La totalità degli indirizzi IP è stata suddivisa in 5 classi: classe A tutti gli indirizzi che iniziano con il primo bit a 0 classe B ‘’ ‘’ ‘’ i primi 2 bit a 10 classe C ‘’ ‘’ ‘’ i primi 3 bit a 110 classe D ‘’ ‘’ ‘’ i primi 4 bit a 1110 classe E ‘’ ‘’ ‘’ i primi 5 bit a 11110 dunque i possibili valori sono: classe A: 0.0.0.0 ÷ 127.255.255.255 classe B: 128.0.0.0 ÷ 191.255.255.255 classe C: 192.0.0.0 ÷ 223.255.255.255 classe D: 224.0.0.0 ÷ 239.255.255.255 riservata per i “multicast”15

classe E: 240.0.0.0 ÷ 255.255.255.255 riservata per usi futuri Non tutti sono utilizzabili (per convenzione) e inoltre alcuni sono definiti pubblici e altri

privati (per convenzione). I pubblici vengono ruotati dalla rete internet, mentre i privati no. Questo vuol dire che chiunque può impiegare nella sua rete interna un indirizzo privato, anche usato da reti interne di altri, ma solo una postazione in tutta la rete internet può avere lo stesso IP pubblico.

La distinzione serve per non sprecare indirizzi IP. Infatti se ci fossero solo i pubblici, anche una stampante di rete, che non necessita di “navigare in internet” occuperebbe un indirizzo. A dispositivi di questo tipo vengono dunque assegnati degli IP privati.

Da qualche hanno si cerca di risparmiare il più possibile gli indirizzi IP pubblici, ad esempio costruendo dispositivi router che eseguano un NAT (Network Address Translation) dinamico, con il quale tutti o buona parte degli IP privati di una rete possano viaggiare sulla rete internet con un ridotto numero di IP pubblici.

Tali tecniche hanno però solo rinviato il problema della totale occupazione degli IP pubblici, per questo è già stato studiato un nuovo metodo di indirizzamento IP a 128 bit chiamato IPv6, e il vecchio è stato nominato IPv4. Questo permette un indirizzamento di:

IPv4: 4'294'967'296 IPv6: ~ 3,4 x1038

Con l’ IPv6 sono state inserite anche delle funzionalità di QoS (Qualità of Service) non

presenti nell’IPv4. La convenzione che fissa gli IP pubblici e privati è la seguente:

15 Un multicast è un indirizzo IP che identifica un gruppo di host. Negli ultimi anni viene impiegata per comunicazioni simultanee a più postazioni contemporaneamente, per esempio nella videoconferenza.

Università degli Studi di Sassari 13/21

Page 14: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

private

10.0.0.0 ÷ 10.255.255.255 1 rete in classe A con 16'777'216 di host 172.16.0.0 ÷ 172.31.255.255 16 reti in classe B con 65'536 host ciascuna 192.168.0.0 ÷ 192.168.255.255 256 reti in classe C con 256 host ciascuna pubbliche tutte le reti che non sono private

Che siano pubblici o privati, con i concetti visti sopra, l’intera “internet” sarebbe un’unica

rete. Per suddividere questa in più reti si è introdotto il concetto di “netmask” o maschera di rete. La “netmask” è una sequenza di 32 bit opportunamente scelta, che viene assegnata per

suddividere le varie reti. Le regole affinché sia una sequenza valida sono:

- inizia con un il primo bit a 1 - non si possono intervallare 0 con 1

es:

11111111.11111111.11111111.00000000 valida 11111011.11111111.11111111.11000000 non valida 11111111.00000000.00000000.00000000 valida 11111111.11111111.11111111.11111100 valida

In base alle precedenti viene indicata anche con una “/” seguita dal numero di bit a “1”, es: 11111111.11111111.11111111.00000000 /24 11111111.00000000.00000000.00000000 /8 11111111.11111111.11110000.00000000 /20 La rete di appartenenza di un host viene trovata sommando bit a bit, con la funzione booleana

AND16, l’indirizzo dell’host con la netmask. Es: A che rete appartiene l’indirizzo 192.168.17.5 con netmask 255.255.255.0 ? 11000000.10101000.00010001.00000101 + 11111111.11111111.11111111.00000000 = -------------------------------------------------------------

11000000.10101000.00010001.00000000 192.168.17.0 “rete di appartenenza” In merito alla netmask si potrà osservare che la parte relativa agli “1” identifica il numero di

reti possibili, mentre quella relativa agli “0” identifica il numero di host. Inoltre, in ogni rete, il primo e l’ultimo indirizzo IP relativo agli host sono riservati, rispettivamente come indirizzo della rete e come indirizzo di “broadcast”17.

A ciascuna classe, A, B e C è stata assegnata una maschera di rete di default (chiamata

“classfull addressing”) secondo il seguente schema:

16 AND è una funzione booleana che, dati due valori in ingresso, restituisce 1 se entrambi sono veri, 0 in caso contrario. Nel caso che i valori in ingresso siano bit, il risultato varrà 1 solo se entrambi valgono 1. 17 L’indirizzo di broadcast di una rete è quello per cui un pacchetto inviato a tale indirizzo viene inoltrato a tutti gli host collegati su quella rete.

Università degli Studi di Sassari 14/21

Page 15: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

classe A: 255. 0. 0. 0 o /8 classe B: 255.255. 0. 0 o /16 classe C: 255.255.255.0 o /24 niente vieta di scegliere maschere di rete differenti (nel qual caso si parla di “classless

addressing”). La scelta della “netmask” viene fatta in fase di progetto di una rete. Per una rete con IP

pubblici viene assegnata dal ISP18 congiuntamente agli indirizzi IP, mentre per una rete con IP privati viene scelta in base alle esigenze.

I parametri di progetto sono: - numero di reti necessarie; - numero di host in ciascuna rete.

In base alla definizione di netmask vista sopra, si ha che: • se volessi progettare una rete con un numero “n” di host devo impostare a “0” un

numero “m” di bit finali della netmask tale che il valore degli “m” bit sia superiore al valore di “n+2”.

Per esempio, se n=17, avrei (n+2)=19 e dunque dovrò avere almeno gli ultimi 5 bit della netmask a 0. Se avessi scelto un numero di bit inferiore, es: 4, avrei avuto solo 14 indirizzi disponibili (16-2) per gli host e dunque non sufficienti [netmask 255.255.255.224].

• se volessi progettare un numero “p” di reti devo impostare a “1” un numero “q” di bit

iniziali della netmask tale che il valore dei “q” bit sia superiore al valore di “p”.

Per esempio, se p=10 dovrò avere almeno i primi 4 bit della netmask a 1. Se avessi scelto un numero di bit inferiore, es: 3, avrei avuto solo 8 reti disponibili e dunque non sufficienti.

Secondo gli esempi di sopra ho impostato a 1 i primi 4 bit, e a 0 gli ultimi 5, cosa imposto nei bit intermedi? Devo impostare i bit intermedi in base al tipo di classe che preferisco impiegare, nel nostro caso B o C, e in base al tipo di indirizzi, privati o pubblici, che voglio impiegare.

Progetto di esempio. Supponiamo di voler progettare il piano di indirizzamento IP per una organizzazione con 5

sedi, di cui 4 periferiche e di ridotte dimensioni (ad esempio meno di 200 postazioni), e 1 centrale e molto estesa (ad esempio di 3'000 postazioni). Tutte le sedi periferiche devono essere collegate con la sede centrale.

18 Internet Service Provider o ISP è un fornitore di accesso a internet, quale Tiscali, Telecom o il GARR (Gestione Ampliamento Rete Ricerca, che si occupa di garantire la connettività nazionale ed internazionale a larga banda alla comunità scientifica ed accademica italiana)

Università degli Studi di Sassari 15/21

Page 16: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Soluzione. Potremo risolvere il problema nel seguente modo:

- 4 reti in classi C per le sedi periferiche con maschera 255.255.255.0 o /24 (classfull):

192.168.1.0, 192.168.2.0, 192.168.3.0, 192.168.4.0

- 4 reti in classe C per i collegamenti tra le sedi periferiche con maschera 255.255.255.252 o /30 (classless)

192.168.15.0, 192.168.15.4, 192.168.15.8, 192.168.15.12

- 1 rete in classe B per la sede principale con maschera 255.255.0.0 o /16 (classfull) 172.16.0.1

Analizziamo nel dettaglio la soluzione: - ogni rete periferica potrà avere 254 host (256 della classe C, meno l’indirizzo di rete e

quello di broadcast), che è superiore al numero di postazioni (200);

- per i collegamenti delle sedi periferiche si sono scelte 4 (come il numero delle sedi) “subnet”19 di classe C, ognuna con 4 possibili indirizzi:

indirizzo di rete, indirizzo di broadcast, indirizzo di collegamento del router periferico, indirizzo di collegamento del router della sede centrale;

- la rete della sede centrale potrà avere 65'534 host (65'536 della classe B, meno

l’indirizzo di rete e quello di broadcast), che è superiore al numero di postazioni (3'000). In questo caso si sarebbe potuto evitare l’impiego dell’intera classe B in quanto il valore di 65'534 è molto superiore a 3'000, eseguendo anche qui una “subnet” di tale classe.

L’esempio di sopra ha mostrato come sia possibile operare con le classi, creando anche delle sottoreti (subnet) di queste. Niente vieta di creare anche selle “supernet”20. Ad esempio, si sarebbe potuto aggregare varie reti di classe C (dove con ognuna sono possibili 256 host) fino ad ottenere una rete con 3000 host:

- rete 192.168.16.0 netmask 255.255.240.0 o /20 (classless);

numero di host possibili 4094 (ovvero 4096-2), aventi un indirizzo da 192.168.16.1 a 192.168.31.254, indirizzo di rete 192.168.16.0 e broadcast 192.168.31.255.

19 Subnet: sottoreti 20 Supernet: aggregazioni di reti in un’unica rete.

Università degli Studi di Sassari 16/21

Page 17: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Apparati attivi e passivi

I dispositivi di rete sono nodi che nelle reti informatiche hanno funzionalità esclusivamente orientate a garantire il funzionamento, l'efficienza, l'affidabilità e la scalabilità della rete stessa. Non sono di norma dei calcolatori, anche se un calcolatore può fornire alcune di queste funzionalità, soprattutto ai livelli superiori del modello ISO/OSI.

Una possibile suddivisone degli apparati di rete e quella in “attivi” e “passivi”. Con attivi si intendono tutti quelli apparati che applicano una manipolazione hardware e/o software al percorso dei dati in base a politiche di gestione definite. Con passivi si intendono tutti gli apparati non attivi.

Si comprende che le possibilità offerte dagli apparati attivi siano molto superiori a quelle degli attivi, la scelta tra le due tipologie era spesso dettata da politiche di mantenimento dei costi. Inoltre per determinate funzioni dei protocolli di rete è necessario l’uso di apparati attivi, il che ha relegato l’uso degli apparati passivi al collegamento degli utenti finali. Grazie allo sviluppo tecnologico il costo degli apparati attivi rispetto ai passivi si è notevolmente ridotto, permettendo l’uso degli apparati attivi per ogni situazione. Gli Hub

Nella tecnologia delle reti informatiche, un hub (letteralmente in inglese fulcro, mozzo, elemento centrale) rappresenta un concentratore, un dispositivo di rete che funge da nodo di smistamento di una rete di comunicazione dati organizzata prevalentemente a stella.

Nel caso, molto diffuso, delle reti Ethernet21, un hub è un dispositivo che inoltra i dati in arrivo da una qualsiasi delle sue porte su tutte le altre. Per questa ragione può essere definito anche un “ripetitore multiporta”. Questo permette a due dispositivi di comunicare attraverso l'hub come se questo non ci fosse, a parte un piccolo ritardo nella trasmissione.

La conseguenza del comportamento dell'hub è che la banda totale disponibile è condivisa da tutte le stazioni trasmittenti e dunque ridotta ad una frazione di quella originaria. Il suo valore dipenderà dal numero di stazioni collegate all’hub.

Il ritardo introdotto da un hub è generalmente di pochi microsecondi e quindi quasi ininfluente.

La semplicità del comportamento di uno hub ne fa uno dei componenti più economici per

costruire una rete. Un hub non ha bisogno di riconoscere i confini dei dati che lo attraversano, quindi è considerato un dispositivo di livello 1 (fisico) nel modello OSI in quanto ritrasmette semplicemente i segnali elettrici e non i dati, per questo motivo è anche definito come un apparato passivo.

Nel gergo delle reti Ethernet, un hub crea un unico dominio di collisione unendo tutti i

calcolatori o le reti connessi alle sue porte, ovvero se due calcolatori collegati a porte diverse trasmettono contemporaneamente, si verifica una collisione, e la trasmissione deve essere ripetuta. Infatti l'hub non distingue i segmenti di LAN e ritrasmette tutti i segnali che riceve. Ciò crea anche delle limitazioni al numero di nodi che si possono connettere nella LAN vista nella sua complessità, in quanto all’aumentare del numero di stazioni diminuisce l’efficienza della rete, dal momento che aumenta la probabilità di avere collisioni.

Il suo impiego è limitato alla connessione di segmenti di Ethernet di tipologia e velocità identica in quanto l'hub non è neanche fornito di buffer. In pratica la LAN nel suo complesso va vista come un'unica rete.

21 Ethernet è il nome di un protocollo per reti locali sviluppato nel 1973 nei laboratori della Xerox.

Università degli Studi di Sassari 17/21

Page 18: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Gli Switch

Nella tecnologia delle reti informatiche, uno switch, in inglese letteralmente commutatore, è un dispositivo di rete che inoltra selettivamente i frame ricevuti verso una porta di uscita.

Come con un hub, due nodi possono comunicare attraverso uno switch come se questo non ci fosse, ovvero il suo comportamento è trasparente. A differenza però di quanto farebbe un hub, uno switch normalmente inoltra i frame in arrivo da una qualsiasi delle sue porte soltanto a quella cui è collegato il nodo destinatario del frame. Uno switch possiede quindi l'intelligenza necessaria a riconoscere i confini dei frame nel flusso di bit, immagazzinarli, decidere su quale porta inoltrarli, trasferirli verso una porta in uscita, trasmetterli. Normalmente uno switch opera al livello 2 (datalink) del modello di riferimento ISO/OSI.

Uno switch di fascia alta fornisce tipicamente le seguenti caratteristiche:

- possibilità di gestione; - supporto di più istanze del protocollo Spanning Tree22 (STP); - supporto di LAN virtuali (VLANs) secondo lo standard 802.1q23 - mirroring delle porte; - supporto della QoS24 (Quality of Service).

Anche ritardo introdotto da uno switch è generalmente di pochi microsecondi, quindi quasi

ininfluente per la gran parte delle applicazioni.

Tra una stazione e uno switch, o tra due switch direttamente collegati non sono possibili collisioni e quindi è possibile utilizzare la modalità “full duplex”, ovvero i due nodi possono trasmettere contemporaneamente.

L'inoltro selettivo dei frame permette anche a più frame di attraversare contemporaneamente lo switch (su porte differenti) e quindi la banda totale disponibile non viene ridotta con l'aumento del numero di nodi. In una connessione di questo tipo si dice che l'host ha un accesso dedicato al commutatore. Questo garantisce che due nodi connessi da uno switch possano comunicare tra loro alla velocità nominale del collegamento, sempre che non siano impegnati contemporaneamente in altre conversazioni.

Nella realtà, l'introduzione di uno switch in una rete locale porta ad un aumento del traffico sulla rete ed a un miglioramento delle prestazioni, ma spesso questo miglioramento porta ad evidenziare altri “colli di bottiglia” della rete, ad esempio sui collegamenti delle varie intranet aziendali, sulla connessione ad internet o sulla la capacità dei server.

22 In una rete locale complessa, è necessario che ci siano dei collegamenti ridondanti, ma che alcuni di questi siano mantenuti “fuori servizio” fino a quando non si rendono necessari per sopperire a guasti di altri collegamenti o switch. L'algoritmo di spanning tree è un algoritmo distribuito, che opera su tutti gli switch, facendo in modo che in ogni istante la rete sia connessa ma priva di cicli, ovvero che partendo da una qualsiasi postazione si possa raggiungere qualsiasi altra attraverso un unico percorso (in gergo matematico: “il grafo dei collegamenti disponibili sia coperto da un albero”). 23 IEEE 802.1q è uno standard che permette a più reti virtuali (VLAN) di condividere lo stesso collegamento fisico senza perdita e sovrapposizione di informazioni tra un apparato e un altro. E’ utile per creare delle LAN (virtuali) con un numero di apparati ridotto, come se fossero tra loro indipendenti. Per questo motivo sono molto impiegate anche per la suddivisione del traffico (in merito a motivi di sicurezza) tra varie LAN. 24Il termine qualità di servizio o più semplicemente QoS (dall'inglese Quality of Service) è usato per indicare i parametri usati per caratterizzare la qualità del servizio offerto dalla rete (ad esempio perdita di pacchetti, ritardo, etc.), o gli strumenti per ottenere una qualità di servizio desiderata.

Università degli Studi di Sassari 18/21

Page 19: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Normalmente uno switch è in grado di interconnettere reti di livello 2 omogenee, anche se di velocità differente (per via dell’uso di buffers al suo interno) o di tipologia fisica non uguale (per via del tipo di porte in rame o fibra ottica).

Nel gergo delle reti locali, uno switch separa i domini di collisione connessi alle sue porte,

fino ad ottenere un dominio di collisione per ogni postazione. Se due stazioni collegate a porte diverse trasmettono contemporaneamente non si verifica una collisione e i due frame possono attraversare lo switch contemporaneamente.

Il termine switch viene usato anche al di fuori delle reti Ethernet, ad indicare un dispositivo che inoltri selettivamente i frame ricevuti, per esempio in ATM o frame relay. Inoltre, un dispositivo di rete che abbini le prestazioni di uno switch con le funzioni di livello superiore di un router viene detto switch-router o, più precisamente, switch di livello 3 (layer-3 switch).

Per decidere su quale porta inoltrare un frame ricevuto, uno switch possiede una funzione di

apprendimento con la quale compila una tabella, la MAC25 address table, contenete gli indirizzi di livello 2 e le porte a cui sono collegati tali indirizzi, in modo da instradare i frame solo sulla porta opportuna. Se un indirizzo non è ancora in tabella, il frame ad esso indirizzato viene inoltrato su tutte le porte tranne quella dal quale è arrivato (solo in questa fase si comporta come un hub).

Lo switch verrà dunque a conoscenza delle sole stazioni che hanno trasmesso almeno un frame. Gli indirizzi appresi vengono “dimenticati” dopo un certo tempo dalla loro ultima apparizione.

Alcuni frame hanno un indirizzo destinazione particolare, denominato “broadcast”, che indica

che sono destinati a tutti i calcolatori della rete. Uno switch inoltra questi frame su tutte le porte. Per questo si dice che lo switch crea un unico dominio di broadcast.

Il fatto che i frame vengano ritrasmessi solo sulla porta di effettiva destinazione ha anche delle implicazioni in merito alla sicurezza informatica, in quanto evita che una postazione possa facilmente intercettare (in gergo “sniffare”) il traffico diretto ad un’altra. Esistono comunque tecniche raffinate che permettono lo sniffing anche in presenza di switch, per cui non deve essere considerato come una protezione inattaccabile contro i rischi di intercettazione, ma solo un primo tassello di un progetto più ampio. I Router

Nella tecnologia delle reti informatiche un router, in inglese letteralmente “instradatore”, è un dispositivo di rete che si occupa di instradare pacchetti lavorando al livello 3 (rete) del modello OSI.

La caratteristica fondamentale dei router è che la funzione di instradamento è basata sugli indirizzi di livello 3 (rete) o “IP” del modello OSI, a differenza dello switch che instrada sulla base degli indirizzi di livello 2 (datalink) o “MAC”. Mentre uno switch collega gli host appartenenti alla stessa rete, un router collega reti differenti (con indirizzamento IP diverso), siano LAN vere e proprie o VLAN (virtual LAN).

Gli elementi della tabella di instradamento non sono quindi singole postazioni ma intere reti, ovvero sottoinsiemi anche molto ampi dello spazio di indirizzamento. Questo è fondamentale per la

25 MAC è un acronimo che significa Media Access Control e viene utilizzato per l'accesso al mezzo fisico dal livello 2 (datalink) secondo il modello OSI. Tale indirizzo è formato da 48 bit suddivisi in 12 cifre esadecimali: le prime 6 cifre individuano il produttore dell'interfaccia di rete mentre le successive corrispondono al numero di serie della scheda stessa.

Università degli Studi di Sassari 19/21

Page 20: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

scalabilità delle reti, in quanto permette di gestire reti anche molto grandi facendo crescere le tabelle di instradamento in modo meno che lineare rispetto al numero di host. Ognuna di queste reti avrà un insieme di “broadcast” separato, il che risulta molto utile all’aumentare del numero di postazioni (servizi di condivisione cartelle o simili tendono a generare un elevato numero di messaggi di broadcast).

Per garantire la massima affidabilità e lo sfruttamento ottimale dei collegamenti in caso di reti complesse costituite da molte sottoreti diverse e variamente interconnesse, i router possono costruire le loro tabelle di instradamento in modo dinamico, scambiandosi periodicamente informazioni su come raggiungere le varie reti che collegano l'un l'altro.

Per fare questo sono stati messi a punto dei protocolli di routing appositi, come OSPF26 e BGP27, attraverso i quali i router si scambiano informazioni sulle reti raggiungibili. Altri protocolli di routing sono ad esempio: RIP28, IGRP29, etc.

Un esempio di tabella di routing potrebbe essere la seguente: 1) D 192.168.15.72/30 [90/5512192] via 192.168.17.1, 2w3d, Vlan1 2) D 192.168.15.44/30 [90/3845376] via 192.168.17.4, 2w1d, Vlan1 3) D EX 192.168.26.0/24 [170/10512128] via 192.168.17.1, 3w1d, Vlan1 4) D EX 192.168.51.0/24 [170/28416] via 192.168.15.252, 3w2d, FastEthernet0/3 5) C 192.168.17.0/24 is directly connected, Vlan1 6) D*EX 0.0.0.0/0 [170/28416] via 192.168.15.252, 3w2d, FastEthernet0/3

Analizzando la tabella possiamo dire che: - la rete “192.168.15.72/30” è direttamente collegata al router “192.168.17.1” (vedi la D) e

dunque raggiungibile tramite quest’ultimo, l’informazione è presente da 2 settimane e 3 giorni (2w3d);

- la rete “192.168.15.72/30” è direttamente collegata al router “192.168.17.4” (vedi la D) e dunque raggiungibile tramite quest’ultimo, l’informazione è presente da 2 settimane e 1 giorno (2w1d);

- la rete “192.168.26.0/24” è raggiungibile tramite il router “192.168.17.1” (vedi la D) ma non direttamente collegata a quest’ultimo (EX), l’informazione è presente da 3 settimane e 1 giorno (3w1d);

- la rete “192.168.51.0/24” è raggiungibile tramite il router “192.168.15.252” (vedi la D) ma non direttamente collegata a quest’ultimo (EX), l’informazione è presente da 3 settimane e 1 giorno (3w1d);

- la rete “192.168.17.0/24” è direttamente collegata al router di cui sto leggendo la tabella di routing (vedi la C);

- questa riga istruisce il router ad inviare i pacchetti destinati a reti non conosciute al router “192.168.15.252”, il quale conosce tramite qualche altro router come inoltrarli correttamente (EX), l’informazione è presente da 3 settimane e 2 giorni (3w2d).

26 Open Shortest Path First o OSPF è uno dei protocolli di instradamento più diffusi, che gestisce le tabelle di instradamento di una rete IP con il metodo del Link State (stao dei link: basato sullo stato del collegamento). Questo standard è aperto (open) nel senso che è un protocollo non proprietario. 27 Il Border Gateway Protocol o BGP è un protocollo di routing che agisce nel “cuore” di Internet. Funziona attraverso la gestione di una tabella di reti IP, o prefissi, che forniscono informazioni sulla raggiungibilità delle diverse reti tra più sistemi autonomi (Autonomous System, AS). 28 Il Routing Information Protocol o RIP è uno dei protocolli di routing più usati su reti locali ed aiuta i router ad adattarsi dinamicamente ai cambiamenti dei collegamenti di rete, scambiandosi informazioni riguardo a quali reti ogni router può raggiungere e quanto siano lontane. Anche se il RIP è ancora attivamente usato, è generalmente sostituito da protocolli di routing link-state come OSPF o altri distance-vector come l'EIGRP (evoluzione dell’ IGRP). 29 L’ IGRP (Interior Gateway Routing Protocol) è un protocollo di routing proprietario, inventato da Cisco, usato dai router per scambiarsi informazioni di routing dentro un Sistema Autonomo. IGRP fu creato per superare i limiti del RIP (hop count massimo di 15 e singola metrica di routing) quando veniva usato in reti di grandi dimensioni.

Università degli Studi di Sassari 20/21

Page 21: Reti_C_D_Mura.pdf

Appunti del corso per la Progressione Verticale da C a D - 2007 docente: Gavino Mura

Dall’analisi della tabella di routing di sopra possiamo notare che: - i router possiedono un indirizzo IP della rete di cui permettono il routing, per cui se un

router dovesse ruotare i pacchetti di 4 differenti reti avrà 4 indirizzi IP diversi, ognuno per ogni rete ruotata (di solito gli si assegna il primo disponibile);

- i router, quando ruotano un pacchetto, non hanno certezza che questo arrivi

effettivamente a destinazione, si occupano solo di inoltrarlo verso la prossima rete , in direzione della rete di destinazione finale.

Università degli Studi di Sassari 21/21