Clicca qui per scaricare " MANUALE RETI GENERALE "
Transcript
Clicca qui per scaricare " MANUALE RETI GENERALE "
Codifica Manchester Codifica di 11011000100 utilizzando il codice Manchester Nelle telecomunicazioni la codifica Manchester è una forma di comunicazione dati nella quale ogni bit viene segnalato da una transizione. La codifica Manchester è considerata una codifica selfclocking, il che significa che permette un'accurata sincronizzazione del flusso dati. Ogni bit viene trasmesso in un intervallo di tempo di bit predefinito. La codifica Manchester fornisce un modo semplice per codificare sequenze binarie arbitrarie senza mai aver lunghi periodi di tempo privi di transizioni di clock, il che permette di prevenire la perdita della sincronizzazione del clock, oppure errori di bit causati da derive in bassa frequenza su collegamenti analogici poco equalizzati (vedi ones-density). Se trasmesso come segnale AC assicura che la componente DC del segnale codificato sia zero, prevenendo derive del livello di base del segnale ripetuto, e rendendolo facile da rigenerare. Comunque oggi esistono molte codifiche più sofisticate che ottengono lo stesso risultato con minore sovraccarico di banda, e meno ambiguità di sincronizzazione nei casi patologici (vedi sotto). Uno degli utilizzi più noti della codifica Manchester è sui segnali elettrici nelle reti locali Ethernet. Codifica Manchester come caso di Phase Shift Keying Binaria (BPSK) La codifica Manchester si può considerare come un caso speciale della Phase Shift Keying Binaria (BPSK), in cui il dato da trasmettere controlla la fase di un'onda quadra portante alla frequenza della velocità di trasmissione dati. Perciò è estremamente facile generare tale segnale in modo digitale. Per controllare la quantità di banda consumata, si può impiegare un filtro per ridurre la banda fino ad 1Hz per bit/secondo, senza perdere informazione durante la trasmissione. Comunque, per praticità (e per controllare al meglio la banda passante, specialmente su spettri radio affollati), la maggior parte dei modulatori BPSK scelgono una frequenza di portante molto superiore alla frequenza di trasmissione dati, ottenendo larghezze di banda più strette e facili da filtrare. La proprietà dell'1Hz/bit/secondo è comunque mantenuta. Convenzioni per la rappresentazione dei dati Ci sono due convenzioni opposte per la rappresentazione dei dati. La prima fu inizialmente pubblicata da G. E. Thomas nel 1949 ed è seguita da numerosi autori (ad es. Tanenbaum). Specifica che per un bit 0 i livelli di segnale saranno Basso-Alto (assumendo una codifica dei dati con l'ampiezza) - con un livello basso nella prima parte del periodo di bit, ed un livello alto nella seconda parte. Per un bit 1 i livelli di segnale saranno Alto-Basso. Anche la seconda convenzione è seguita da molti autori (ad es. Stallings) come pure dallo standard IEEE 802.4. Stabilisce che uno 0 logico sia rappresentato da una sequenza di segnale Alto-Basso ed un 1 logico da una sequenza di segnale Basso-Alto. Una conseguenza della transizione per ciascun bit è che la necessità di larghezza di banda per segnali codificati Manchester è doppia in confronto ad una comunicazione asincrona, e che lo spettro del segnale è considerevolmente più ampio. Nonostante la codifica Manchester sia una forma di comunicazione altamente affidabile, il requisito della larghezza di banda è visto come uno svantaggio, e le comunicazioni più moderne avvengono con protocolli con codici più moderni che ottengono gli stessi risultati con una codifica più rapida ed una richiesta di larghezza di banda minore. Una peculiarità della codifica Manchester è la sincronizzazione del ricevitore col trasmettitore. A prima vista potrebbe sembrare che un errore di mezzo periodo di bit porterebbe ad una decodifica invertita dal lato del ricevitore, ma considerazioni ulteriori evidenziano che con alcune sequenze di dati specifiche questo causerebbe la violazione della codifica. L'hardware può rilevare queste violazioni di codifica e di conseguenza sincronizzarsi accuratamente sulla corretta interpretazione dei dati. Una tecnica correlata è la codifica Manchester differenziale. Riassumendo: • i segnali dei dati e del clock sono combinati per formare un flusso di dati autosincronizzante • ogni bit codificato contiene una transizione a metà del periodo di bit • la direzione della transizione determina se il bit è uno "0" o un "1" • la prima metà è il valore vero del bit e la seconda metà è il complemento del valore vero del bit. In contrasto con non ritorno a zero. Codifica Manchester differenziale Codifica di 010 utilizzando Manchester diffenziale. Con a sono indicate le transazioni a inizio bit, con b la continuità del segnale La Codifica Manchester differenziale è un sistema di rappresentazione di dati, derivato dalla Codifica Manchester, utilizzato soprattutto negli scambi di informazioni tra alcune categorie di reti informatiche. Questo sistema di codifica di dati, come la Manchester, è progettata in modo da sincronizzarsi autonomamente col clock di sistema, in quanto ogni bit viene trasmesso all'interno di un intervallo predefinito. Inoltre durante questo intervallo vi è la presenza di almeno una transizione a metà intervallo, salvo i casi di segnali fuori codifica. La caratteristica che distingue la codifica Manchester differenziale dalla sua progenitrice è la rappresentazione dei bit: infatti la Manchester differenziale è basata sulla verifica di transizioni all'inizio di un intervallo. La presenza di una di queste, sia essa di tipo alto-basso o basso-alto, identifica un valore, la mancanza di transizione invece (ovvero continuità del segnale) indica il valore opposto. I segnali prodotti sono compresi tra 3 e 4.5 v per il segnale alto e tra -4.5 e -3 v per quello basso. Per convenzione normalmente il bit 1 viene rappresentato dalla mancanza di transizione all'inizio del suo intervallo, mentre lo 0 è indicato con un cambiamento di segnale nello stesso periodo. Segnali in violazione di questa convenzione sono utilizzabili per informazioni di servizio o per delimitare gruppi di bit. Questo sistema rende la codifica più resistente al rumore rispetto alla Manchester normale, ma in cambio si paga una maggiore complessità degli algoritmi di gestione oltre che dell'hardware. Rete informatica Lo scopo principale di una rete di calcolatori è la condivisione di informazioni e risorse (sia hardware che software). In altre parole è un sistema che fornisce servizi relativi al trasferimento di informazioni ad una popolazione di utenti distribuiti geograficamente. Le reti di calcolatori generano traffico di tipo fortemente impulsivo, a differenza del telefono, e per questo hanno dato origine - e usano tuttora - la tecnologia della commutazione di pacchetto. Rete Vs Mainframe La comunicazione di reti di calcolatori può essere fatta risalire alla necessità di condividere le risorse di calcolatori potenti e molto costosi (mainframe). La tecnologia delle reti, insieme all'emergere dei computer personali a basso costo, ha poi permesso rivoluzionari sviluppi nell'organizzazione delle risorse di calcolo. Si possono indicare almeno tre punti di forza di una rete di calcolatori rispetto al mainframe tradizionale: 1. fault tolerance (resistenza ai guasti): il guasto di una macchina non blocca tutta la rete, ed è possibile sostituire il computer guasto facilmente (la componentistica costa poco e un'azienda può permettersi di tenere i pezzi di ricambio a magazzino); 2. economicità: come accennato sopra, hardware e software per computer costano meno di quelli per i mainframe; 3. gradualità della crescita e flessibilità: l'aggiunta di nuove potenzialità a una rete già esistente e la sua espansione sono semplici e poco costose. Tuttavia una rete ha alcuni punti deboli rispetto a un mainframe: 1. scarsa sicurezza: un malintenzionato può avere accesso più facilmente ad una rete di computer che ad un mainframe: al limite gli basta poter accedere fisicamente ai cablaggi della rete. Inoltre, una volta che un virus o, peggio, un worm abbiano infettato un sistema della rete, questo si propaga rapidamente a tutti gli altri e l'opera di disinfezione è molto lunga, difficile e non offre certezze di essere completa; 2. alti costi di manutenzione: con il passare del tempo e degli aggiornamenti, e con l'aggiunta di nuove funzioni e servizi, la struttura di rete tende ad espandersi e a diventare sempre più complessa, e i computer che ne fanno parte sono sempre più eterogenei, rendendo la manutenzione sempre più costosa in termini di ore lavorative. Oltre un certo limite di grandezza della rete (circa 50 computer) diventa necessario eseguire gli aggiornamenti hardware e software su interi gruppi di computer invece che su singole macchine, vanificando in parte il vantaggio dei bassi costi dell'hardware. Tipi di reti Classificazione sulla base dell'estensione geografica A seconda dell'estensione geografica, si distinguono diversi tipi di reti: • si parla di rete personale o PAN (Personal area network) se la rete si estende intorno all'utilizzatore con una estensione di alcuni metri • si parla di rete locale o LAN (Local area network) se la rete si estende all'interno di un edificio o di un comprensorio, con una estensione entro alcuni chilometri o si parla di rete senza fili o WLAN (wireless local area network), se la rete locale è basata su una tecnologia in radio frequenza (RF), permettendo la mobilità all'interno dell'area di copertura, solitamente intorno al centinaio di metri all'aperto • si parla di rete metropolitana o MAN (metropolitan area network) se la rete si estende all'interno di una città • si parla di rete geografica o WAN (wide area network) se la rete si estende oltre i limiti indicati precedentemente Talvolta si parla anche di CAN (campus area network), intendendo la rete interna ad un campus universitario, o comunque ad un insieme di edifici adiacenti, separati tipicamente da terreno di proprietà dello stesso ente, che possono essere collegati con cavi propri senza far ricorso ai servizi di operatori di TLC. Tale condizione facilita la realizzazione di una rete di interconnessione ad alte prestazioni ed a costi contenuti. Classificazione in base alla velocità della rete • Sulle classiche reti su doppino telefonico (dette anche POTS, Plain Old Telephone System) è possibile realizzare reti con diverse tecnologie: • o Usare modem per codificare segnali digitali sopra le comuni linee telefoniche analogiche. la velocità è limitata a circa 56 Kbit/secondo, con l'adozione di modem client e server che supportano la versione V92 dei protocolli di comunicazione per modem. Questo protocollo incorpora funzioni di compressione del flusso di bit trasmesso, quindi la velocità effettiva dipende dalla comprimibilità dei dati trasmessi. Il grande vantaggio di questa tecnologia è che non richiede modifiche alla rete distributiva esistente. • o Le reti ISDN portano tipicamente a casa dell'utente due canali telefonici in tecnologia digitale. La tecnologia ISDN è ormai molto diffusa nei paesi sviluppati. Usandola per la trasmissione dati, arrivano ad una velocità massima di 128 Kbit/ secondo, senza compressione, sfruttando in pratica due connessioni dial-up in parallelo, possibili solo con determinati provider. La velocità su un singolo canale è invece limitata a 64 Kbit/secondo. • o Le linee ADSL (Asymmetric Digital Subscriber Line) richiedono l'installazione di nuovi apparati di commutazione nelle centrali telefoniche, chiamati DSLAM, e l'utilizzo di filtri negli impianti telefonici domestici per separare le frequenze utilizzate per la trasmissione dati da quelle per la comunicazione vocale. La loro diffusione sul territorio è limitata dai costi, che la rendono conveniente solo nelle aree maggiormente sviluppate. ADSL è l'ultimo sviluppo sull'infrastruttura esistente di doppino telefonico. Durante la connessione tramite ADSL è possibile continuare a utilizzare il telefono in quanto le frequenze della voce e dei dati non si sovrappongono. Questa tecnologia è inoltre chiamata Asimmetric in quanto le velocità di download e di upload non sono uguali: in Italia sono tipicamente pari a 4 Mbit/secondo in download e 512 Kbit/secondo in upload, ma per certi abbonamenti la velocità di download può arrivare anche a 12 Mbit/secondo, o anche 24 Mbit/ secondo, usando tecnologie di punta come ADSL2+ e reti di distribuzione in fibra ottica di ottima qualità. Il doppino di rame presenta l'inconveniente di attenuare i segnali, e non permette il funzionamento di questa tecnologia per distanze superiori ai 5 Km circa. In alcuni casi è anche possibile un'ulteriore riduzione della distanza massima dovuta a interferenze esterne che aumentano la probabilità d'errore. Un'altra limitazione importante è data dall'interferenza "interna", che si verifica quando molte utenze telefoniche sullo stesso cavo di distribuzione utilizzano il servizio ADSL. Questo fa si che non si possa attivare il servizio ADSL su più di circa il 50% delle linee di un cavo di distribuzione Per superare queste velocità, l'infrastruttura di distribuzione basata sul doppino dovrà essere sostituita da supporti fisici più performanti. Tra i candidati a sostituire il doppino per la distribuzione domestica dei servizi di telecomunicazioni, si possono citare: • le fibre ottiche: • le infrastrutture della TV via cavo (diffusa soprattutto negli USA) • il trasporto di dati sulla rete elettrica • le reti wireless • le reti satellitari (che però sono tipicamente unidirezionali, dal satellite alla casa dell'utente, mentre il canale di ritorno deve essere realizzato con altre tecnologie, spesso su doppino telefonico. Le LAN supportano invece velocità di 10/100 Mbit/s, o anche 1 Gbit/s, su cavi in rame dalle caratteristiche adeguate (CAT5 o superiore), o su fibra ottica. Con tecnologie più costose, tipicamente utilizzate dai providers, si raggiungono velocità di 40 Gbit/ s per il singolo link su fibra ottica. Su una singola fibra è poi possibile inviare molteplici segnali attraverso una tecnica di multiplazione chiamata (Dense) Wave Division Multiplexing ((D)WDM), o Multiplazione di Lunghezza d'Onda, che invia segnali ottici differenti a diverse lunghezze d'onda (in gergo, colori). Il numero di segnali indipendenti trasportabile va dai 4 o 16 dei relativamente economici impianti (Coarse)WDM alle centinaia degli impianti DWDM più avanzati. La più veloce rete in Europa è la rete che raggiunge l'ordine di 2 Gigabit/secondo ed ha allo studio velocità maggiori di 100 gigabit/secondo propri di una rete fotonica, semplicemente "colorando" le cariche elettriche in transito per codificare più bit con la stessa carica. In America il progetto Internet 2 cui collaborano la Nasa, la difesa e le università americane connette già molti campus alla velocità di 2 gigabit/secondo (disponibili anche per studenti), con miglioramenti di TCP/IP per poter sfruttare alte velocità di trasmissione, e permetterà di far transitare in rete il controllo dei satelliti civili, dello scudo spaziale, aerei comandati a distanza, testate nucleari e l'intera infrastruttura militare. Classificazione in base alla tecnologia trasmissiva Due sono le topologie principali, in base alla tecnologia assunta come modalità per il trasferimento dei dati: reti punto a punto e reti broadcast. Le reti punto a punto (point-to-point) consistono in un insieme di coppie di elaboratori connessi tra loro in vario modo (stella, anello, albero, grafo completo, anelli secanti ecc.). Per passare da una sorgente ad una destinazione, l'informazione deve attraversare diversi elaboratori intermedi. La strada che i dati devono seguire per arrivare correttamente a destinazione, è data dai protocolli di routing. Il routing è l'insieme delle problematiche relative al corretto ed efficace instradamento sulla rete dei dati. Rete a stella Le reti broadcast invece sono formate da un unico mezzo fisico condiviso da più elaboratori, dove i messaggi inviati da un elaboratore vengono ricevuti da tutti gli altri. Ovviamente all'interno del messaggio vi è una parte relativa all'indirizzo del destinatario, in modo che tutte le altre macchine in ascolto possano scartare il messaggio in arrivo. Alcune reti prevedono indirizzi speciali di tipo broadcast e multicast. Il broadcast permette di inviare messaggi a tutte le stazioni collegate al mezzo fisico, mentre il multicast permette di farlo solo ad un gruppo di stazioni, ma non a tutte. Un esempio di una tale rete è la comunissima Ethernet. Le moderne reti broadcast sono realizzate con una topologia fisica a stella (point-to-point), in cui tutti gli elaboratori sono connessi ad un punto di concentrazione, dove un apparato attivo (switch) o passivo (hub) crea l'illusione che siano tutti connessi allo stesso mezzo fisico. Talvolta si usa definire questi apparati centrostella, appunto perché si trovano al centro della rete a stella. Classificazione in base alla connessione Come sappiamo, le reti di calcolatori si basano su una multiplazione dinamica a commutazione di pacchetto, a differenza delle reti telefoniche che invece utilizzano una multiplazione statica a commutazione di circuito. Tra le reti a commutazione di pacchetto però è fondamentale operare una distrinzione tra: Reti orientate alla connessione (dette anche Reti con comm. di etichetta); Reti senza connessione; Nelle reti con connessione, i percorsi che il pacchetto seguirà attraverso la rete sono prestabiliti e sono sempre gli stessi (si veda la vicinanza, sotto questo punto di vista, alle reti a commutazione di circuito), e si basano su un canale, stavolta non fisico (come nelle reti telefoniche) ma "virtuale". Per comprendere meglio il concetto di canale virtuale si pensi a due elaboratori A e B che devono comunicare tra loro. A e B all'interno della rete non sono collegati tra loro, quindi è necessario che i pacchetti attraversino degli elaboratori intermedi. Prima dell'effettivo scambio dei dati però tra A e B viene creato un percorso prestabilito chiamato canale virtuale. Esempi particolarmente calzanti di reti orientate alla connessione sono le reti a commutazione di cella Asynchronous_Transfer_Mode o le reti Frame Relay e Frame Relay SE (Switch). I vantaggi di una rete siffatta stanno ovviamente nella qualità del servizio. Nelle reti a commutazione senza connessione, i percorsi che i pacchetti tenderanno a seguire non sono (e non possono) essere prestabiliti a priori, ma dipendono da una serie di fattori. Un esempio classico di rete a commutazione di pachetto senza connessione è l'IP. Come sappiamo nelle reti TCP/IP il TCP dell'elaboratore A si collega direttamente al corrispondente servizio dell'elaboratore B. Quindi a livello di trasporto c'è connessione e quindi controllo sulla qualità del servizio e sulla congestione della rete. Cosa che non accade a livello network. Il router dell'elaboratore A affida i pacchetti al router successivo indicato nella sua tabella di routing. Dopodiché, si disinteressa totalmente dell'ulteriore percorso che il pacchetto dovrà seguire all'interno della rete. Questo potrebbe sembrare un male, ma così non è, proprio per via di questa divisione di compiti tra il layer di trasporto e quello network. Sezioni di una rete In ogni rete di grandi dimensioni (WAN), è individuabile una sezione di accesso e una sezione di trasporto. La sezione di accesso ha lo scopo di consentire l'accesso alla rete da parte dell'utente, e quindi di solito rappresenta una sede di risorse indivise (Si pensi ai collegamenti ADSL commerciali: La porzione di cavo che ci collega alla centrale è un doppino telefonico, utilizzato esclusivamente dall'abbonato). La sezione di accesso altresì comprende tutti quegli strumenti idonei a consentire l'accesso alla rete. Quindi possiamo distinguere vari tipi di accesso: "Residenziale" (Classica linea a 56Kbit/s, linea ISDN/ADSL), "Business" (Rete Locale dell'azienda e Gateway o Proxy che consente l'accesso all'esterno), "Mobile" (si pensi ad esempio al GSM, che consente un acesso basato su una rete a radiofrequenza con copertura "cellulare"), o "Wireless". La sezione di trasporto è quella che ha il compito di trasferire l'informazione tra vari nodi di accesso, utilizzando se è necessario anche nodi di transito. È sede quindi di risorse condivise sia di trasporto dati che di elaborazione. Dal punto di vista strutturale, una rete di trasporto è costruita quasi esclusivamente attraverso fibre ottiche (es. Backbone). L'importanza degli standard Gli standard de iure e de facto aiutano a gestire le reti aziendali multiprotocollo. I più importanti enti di standardizzazione per le reti di computer sono: CCITT, ITU, ISO, ANSI e IEEE. Di particolare impatto è l'OSI (Open System Interconnection), un progetto ISO risalente alla fine degli anni '70, che si propone come modello di riferimento per le reti. Esso presenta un approccio a 7 livelli (layers), con una serie di protocolli che si inseriscono ai vari livelli. I livelli 1 (Livello fisico) e 2 (Livello Data Link) sono ormai standard, mentre per gli altri 5 ci sono protocolli che esistono da tempo e gli standard faticano imporsi. Principali componenti di una rete • • Principali componenti hardware: o Firewall o Router o Switch o Hub o Bridge o Cablaggio I componenti software di una rete sono detti protocolli di rete. Local Area Network Schema di una LAN Nel campo dell'informatica LAN è l'acronimo per il termine inglese Local Area Network, in italiano rete locale. Identifica una rete costituita da computer collegati tra loro (comprese le interconnessioni e le periferiche condivise) all'interno di un ambito fisico delimitato (ad esempio in una stanza o in un edificio, o anche in più edifici vicini tra di loro) che non superi la distanza di qualche chilometro. Le LAN hanno dimensioni contenute, il che favorisce il tempo di trasmissione, che è noto. Le LAN tradizionali lavorano tra 10 Mbps e 100 Mbps, hanno bassi ritardi e pochissimi errori. Le LAN recenti operano fino a 1 Gbps (ma sono utilizzate solo in ambienti server o storage di grosse dimensioni). Tipologie Esistono diversi tipi di reti di computer in grado di soddisfare le esigenze di uffici o aziende di piccola, media, grossa dimensione. Una rete è caratterizzata da tre elementi fondamentali: • • sicurezza o Assicurare la destinazione corretta del flusso di dati ed evitarne l'intercettazione. o Garantire un rischio di guasto bassissimo. prestazione o • Velocità di trasmissione dei dati nella rete. fattibilità o Facile costruzione della rete in base al luogo e ai materiali. I tipi di rete più comuni Rete a stella o stella estesa Rete a stella È caratterizzata da un punto centrale, centrostella, che può essere uno switch o un elaboratore e diversi host connessi ad esso. La rete a stella diventa a stella estesa quando al posto di un host collegato al centrostella c'é un altro apparato attivo, switch o hub con a sua volta altri host collegati ad esso. Pregi e difetti della rete a stella Pregi • un guasto ad un host non compromette le comunicazioni degli altri • comunicazioni sicure e difficilmente intercettabili tra un host e l'altro (con l'uso dello switch) • basso traffico di pacchetti per gli host (con l'uso dello switch) Difetti • elevato traffico sul centrostella • rottura del centrostella con conseguente interruzione delle comunicazioni per tutti gli host Rete a bus Rete a bus Ogni host è collegato in modo lineare attraverso un cavo o tramite un hub. Pregi e difetti della rete a bus Pregi • reti semplici da realizzare e poco costose Difetti • ogni computer può intercettare le comunicazioni altrui • elevato traffico in tutta la rete • un guasto ad un host compromette le comunicazioni degli altri Rete ad anello o token ring Rete ad anello Una rete Token ring, ovvero rete ad anello con passaggio del testimone, è un tipo di rete ad anello in cui la determinazione di quale calcolatore abbia diritto a trasmettere avviene tramite un particolare messaggio, detto token. Ogni calcolatore è collegato ad altri due formando un cerchio. Questo, ovviamente, a livello concettuale, in quanto nella realtà ciò non avviene, ma la rappresentazione grafica aiuta a capire il funzionamento. All'interno di questa rete solo un calcolatore alla volta può trasmettere, quello in possesso del token. Esso avvia la trasmissione dei dati trasferendoli al calcolatore vicino, il quale lo prende in consegna se è il destinatario, oppure ripetendo a sua volta il segnale verso l'altro calcolatore ad esso collegato, così fino a raggiungere il destinatario. Quando il calcolatore che è in possesso del token ha terminato la trasmissione dei dati passa il token a quello vicino. Quest'ultimo se deve trasmettere dati inizia la comunicazione, altrimenti cede immediatamente il token senza impegnare il canale. Ogni calcolatore, ogni volta che riceve il token, può trasmettere al massimo un solo frame, quindi deve consegnare il token al terminale vicino. Ogni terminale prima o poi riceverà il token ed avrà quindi la possibilità di trasmettere. I dispositivi di rete garantiscono la presenza di un solo token sull'anello, e provvedono a rigenerarne uno qualora questo venga perso a causa di guasti nella rete o al calcolatore che l'ha preso in consegna. Un'implementazione molto famosa di questo tipo di rete è stata commercializzata da IBM. Pregi e difetti della rete ad anello Pregi • può coprire distanze maggiori di quelle consentite da altre reti senza l'aggiunta di amplificatori di segnale Difetti • esiste il rischio che gli host possano intercettare comunicazioni altrui • elevato traffico in tutta la rete • il guasto di un host compromette la trasmissione di dati Un'ulteriore suddivisione è quella che suddivide le LAN in: • Statiche • Dinamiche Nelle reti statiche il tempo di occupazione della rete è diviso in tempi discreti con un algoritmo detto round-robin, per cui una macchina può trasmettere solo se è attivo il proprio turno (time slot). In tale caso però viene sprecato del tempo in quanto, se una macchina non trasmette, il suo tempo va perso. Nelle reti dinamiche ogni macchina decide in autonomia se trasmettere o meno e verifica che il canale di comunicazione non sia occupato prima di inviare pacchetti. Questo permette un migliore utilizzo della rete, ma non consente di garantire un tempo minimo di risposta, a meno di non implementare particolari algoritmi di gestione, che però aumentano la complessità della rete e ne riducono le prestazioni. Interconnessione Gli apparati della rete si interconnettono tra di loro attraverso apparati attivi che funzionano a livelli diversi del modello ISO/OSI: • livello 1 - hub o repeater • livello 2 - switch o bridge Le reti informatiche di ambito più ampio, solitamente costituite dall'unione di più LAN interconnesse tramite router, sono chiamate WAN (Wide Area Network) o reti geografiche. Le reti locali possono essere di vario tipo, ad esempio: • Ethernet • TokenRing • Wireless Reti domestiche Attualmente stanno prendendo piede quelle che vengono definite reti domestiche. Sono reti particolari sia perché servono ad usi specifici sia perché sono molto più piccole di una LAN. In particolare, si porta l'esempio dei LAN party; alcuni utenti, generalmente circa una dozzina, installano una piccola LAN, in tutto e per tutto uguale alle reti LAN, ma con le caratteristiche peculiari di temporaneità e precarietà, per scopi prettamente ludici. LAN Party più strutturati possono raggiungere dimensioni considerevoli con decine di utenti. In questi casi il carattere di precarietà viene meno, ma permane quello di temporaneità della rete stessa (in genere queste LAN hanno una durata dalle poche ore a 2-3 giorni) Broadcast Per Broadcast si intende la trasmissione di informazioni da un sistema trasmittente ad un insieme di sistemi riceventi non definito a priori. L'esempio più classico è costituito da un trasmettitore radio di grande potenza e da un gran numero di ricevitori montati nelle automobili o nelle case. In questo caso, tutti i ricevitori situati nell'area di copertura del trasmettitore riceveranno il segnale, e il trasmettitore non potrà sapere esattamente con chi ha comunicato. La trasmissione broadcast è unidirezionale. Le informazioni sono inviate dal trasmettitore ai ricevitori, senza canale di ritorno e senza sicurezza che le stesse riescano ad essere consegnate. In opposizione alle comunicazioni broadcast, ci sono le comunicazioni punto-punto o bidirezionali. Nel mondo della radio e nella televisione, il termine broadcast indica anche il livello di qualità richiesto per trasmissioni commerciali a grande diffusione, e gli strumenti professionali utilizzati per ottenerlo. Broadcast nelle Reti di calcolatori Nelle reti di calcolatori, il termine ha un significato simile: un pacchetto inviato ad un indirizzo di tipo broadcast verrà consegnato a tutti i computer collegati alla rete (ad esempio, tutti quelli su un segmento di rete ethernet, o tutti quelli di una sottorete IP). Un pacchetto destinato ad un solo computer è detto Unicast, uno destinato a molti è detto Multicast, uno destinato ad uno qualunque di un gruppo Anycast Per via dei costi gli indirizzamenti broadcast non sono consentiti a livello globale (internet), ma risultano vincolati nell'ambito di una rete locale. Livello fisico Il livello fisico è il livello 1 del modello ISO/OSI. Questo livello riceve frame dal livello datalink i frame da trasmettere, li converte in una sequenza di bit e li trasmette. Il livello 1 si preoccupa della gestione del mezzo trasmissivo (ad esempio, cavo coassiale (BNC), cavi STP o UTP, fibre ottiche) su cui avviene lo scambio di informazioni, occupandosi della trasmissione di singoli bit su un mezzo trasmissivo. Esso definisce per questo le modalità di connessione tra il cavo e la scheda di rete e di conseguenza le caratteristiche cui i mezzi di collegamento fisico devono sottostare, quali: • caratteristiche fisiche, come forma, dimensioni, numero di piedini di un connettore, specifiche meccaniche • caratteristiche funzionali, come il significato dei pin di un componente. • caratteristiche elettriche, come i valori di tensione per i livelli logici, e di conseguenza la codifica, la sincronizzazione e la durata di ogni bit; • codifica del segnale digitale su un mezzo trasmissivo che è inerentemente analogico (modulazione)) Esistono diversi standard relativi alla gestione del mezzo trasmissivo, sia esso analogico o digitale. Mezzi trasmissivi I mezzi trasmissivi utilizzati per la realizzazione di un canale in una rete vengono solitamente suddivisi in tre categorie, a seconda del fenomeno fisico utilizzato per trasmettere i bit: • mezzi elettrici: per la trasmissione utilizzano la proprietà dei metalli di condurre l'energia elettrica (come doppini telefonici, cavi coassiali); • mezzi ottici: per la trasmissione utilizzano la luce (come le fibre ottiche o la trasmissione in aria via laser); • mezzi wireless (onda libera): per la trasmissione utilizzano le onde elettromagnetiche (come le trasmissioni radio a microonde e le trasmissioni radio via satellite). Caratteristiche dei mezzi trasmissivi Caratteristiche basilari di un mezzo trasmissivo sono: • la riduzione della potenza del segnale al crescere della distanza percorsa (o attenuazione); • la suscettibilità alla degradazione del segnale a causa di elementi esterni (o rumore o interferenza); • i fenomeni di distorsione che avvengono al segnale trasmesso; • la capacità (o banda passante); • i costi; • i suoi requisiti in maneggevolezza, aggiornabilità e gestione. Uno stesso mezzo trasmissivo può essere utilizzato su diverse bande trasmissive. In tal caso le caratteristiche di attenuazione, rumore, distorsione possono essere diversi per ciascuna banda. Questo accade ad esempio per le fibre ottiche, che hanno tre diverse finestre trasmissive. Livello datalink Il livello datalink è il livello 2 del modello ISO/OSI. Questo livello riceve pacchetti dal livello di rete e forma le trame che vengono passate al successivo livello fisico. Il compito del livello datalink è la trasmissione di trame tra due nodi collegati. Comprende normalmente delle funzioni di controllo di errore (ad esempio medianteCyclic redundancy check), talvolta con capacità di correzione dell'errore. Questo livello non fornisce normalmente la garanzia che una trama inviata sia consegnata a destinazione. Nello stack IP, in alcuni casi il livello datalink consiste nell'utilizzo di una rete realizzata con un altro protocollo per il trasporto di pacchetti IP. Questo avviene ad esempio con X.25, Frame Relay, Asynchronous Transfer Mode. Livello di presentazione Il Livello di presentazione è il sesto livello del modello ISO/OSI. Ha come obiettivo quello di trasformare i dati forniti dal Livello applicazioni in un formato standard e offrire servizi di comunicazione comuni, quali la crittografia,la compressione del testo e la riformattazione. Il livello di presentazione consente la gestione della sintassi e della semantica delle informazioni trasmesse, diversamente dagli altri livelli che gestiscono una sequenza di bit. Sono previste tre diverse tipologie di sintassi: • astratta (definizione formale dei dati che gli applicativi si scambiano) • concreta locale (come i dati sono rappresentati localmente) • di trasferimento (come i dati sono codificati durante il trasferimento) Livello applicazioni Il livello applicazioni è il settimo ed ultimo livello del modello OSI. La sua funzione è quella di interfacciare e fornire servizi per i processi delle applicazioni; inoltra anche le richieste al livello di presentazione. Tra i servizi più comuni offerti dal livello applicazioni ci sono le conversioni semantiche tra processi applicativi associati. Nota: esempi di servizi usuali sono i file virtuali ed il virtual terminal. Esempi • HTTP • SMTP • SNMP • FTP • NTP • Telnet • SSH • IRC • Lightweight Directory Access Protocol (LDAP) • XMPP • FTAM • APPC • X.400 • X.500 • AFP • SIP • ITMS • AIM Token ring Una rete Token ring, ovvero rete ad anello con passaggio del testimone, è un tipo di rete ad anello in cui la determinazione di quale calcolatore abbia diritto a trasmettere avviene tramite un particolare messaggio, detto token. Ogni calcolatore è collegato ad altri due formando un cerchio. Questo, ovviamente, a livello concettuale, in quanto nella realtà ciò non avviene, ma la rappresentazione grafica aiuta a capire il funzionamento. All'interno di questa rete solo un calcolatore alla volta può trasmettere, quello in possesso del token. Esso avvia la trasmissione dei dati trasferendoli al calcolatore vicino, il quale lo prende in consegna se è il destinatario, oppure ripetendo a sua volta il segnale verso l'altro calcolatore ad esso collegato, così fino a raggiungere il destinatario. Schema di una rete Token ring Quando il calcolatore che è in possesso del token ha terminato la trasmissione dei dati passa il token a quello vicino. Quest'ultimo se deve trasmettere dati inizia la comunicazione, altrimenti cede immediatamente il token senza impegnare il canale. Ogni calcolatore, ogni volta che riceve il token, può trasmettere al massimo un solo frame, quindi deve consegnare il token al terminale vicino. Ogni terminale prima o poi riceverà il token ed avrà quindi la possibilità di trasmettere. I dispositivi di rete garantiscono la presenza di un solo token sull'anello, e provvedono a rigenerarne uno qualora questo venga perso a causa di guasti nella rete o al calcolatore che l'ha preso in consegna. Un'implementazione molto famosa di questo tipo di rete è stata commercializzata da IBM. Ethernet Suite di protocolli Internet HTTP, HTTPS , SMTP, POP3, IMAP, FTP, DNS Livello applicazioni SSH, IRC, SNMP, SIP, RTP, Rsync, Telnet, HSRP ... Livello di trasporto TCP, UDP, SCTP, RTSP, DCCP ... IPv4, IPv6, ARP, DHCP, ICMP, BGP, OSPF, Livello di rete RIP, IGRP, IGMP, IPsec... Ethernet, WiFi, PPP, Token ring, Livello di collegamento ATM, FDDI, LLC ... Doppino, Fibra ottica, Cavo coassiale, Livello fisico Codifica Manchester, Codifica 4B/5B, WiFi ... Storia Ethernet è il nome di un protocollo per reti locali, sviluppato a livello sperimentale da Robert Metcalfe e David Boggs, suo assistente, alla Xerox PARC. La data ufficiale è il 1973 quando Metcalfe scrisse un promemoria ai suoi capi della Xerox sulle potenzialità di Ethernet. Nel 1976 Metcalfe e Boggs pubblicano un articolo dal titolo Ethernet: Distributed Packet-Switching For Local Computer Networks. L'obiettivo originale dell'esperimento era ottenere una trasmissione affidabile a 3Mbps su cavo coassiale in condizioni di traffico contenuto, ma in grado di tollerare bene occasionali picchi di carico. Per regolamentare l'accesso al mezzo trasmissivo era stato adottato un protocollo di tipo CSMA/CD (Carrier Sense Multiple Access / Collision Detection). Schema di una rete Ethernet Connettori RJ 45 Il successo dell'esperimento suscitò forte interesse e portò alla formazione di un gruppo di imprese, costituito da Xerox Corporation, Intel Corporation e Digital Equipment Corporation, che nel 1978 portarono alla standardizzazione 802.3 e il 30 settembre 1980 a pubblicare la versione 1.0 dello standard Ethernet. Intanto Metcalfe lasciò Xerox nel 1979 per promuovere l'uso del PC e delle LAN per cui fondò 3Com. Metcalfe spesso attribuisce il successo di 3Com a Jerry Saltzer. Questi collaborò alla stesura di un articolo importantissimo dove suggeriva che l'architettura token ring fosse teoricamente superiore alla Ethernet. Con questo le grosse aziende decisero di non puntare su Ethernet mentre, al contrario, 3Com poté creare un business intorno al sistema riuscendo a guadagnarsi un ottimo vantaggio tecnico e a dominare sul mercato quando Ethernet prese piede. Successivamente, l'interesse delle imprese del settore aumentò al punto che l'IEEE costituì alcuni gruppi di studio finalizzati a perfezionare e consolidare Ethernet, nonché a creare numerosi altri standard correlati. Uno dei risultati raggiunti fu la pubblicazione, nel 1985, della prima versione dello standard IEEE 802.3, basato sull'originale specifica Ethernet, ma non completamente identificabile con essa. In seguito, lo standard Ethernet come tale non è più stato mantenuto, ma il termine continua ad essere usato quasi come fosse un sinonimo di IEEE 802.3, sebbene i due standard non coincidano affatto. I motivi del successo Ethernet attualmente è il sistema LAN più diffuso per diverse ragioni: • È nata molto presto e si è diffusa velocemente per cui l'uscita di nuove tecnologie come FDDI e ATM hanno trovato il campo occupato; • Rispetto ai sistemi concorrenti è più economica e facile da usare e la diffusione delle componenti hardware ne facilitano l'adozione; • Funziona bene e genera pochi problemi (cosa rara nel campo informatico); • É adeguata all'utilizzo con TCP/IP; • Nonostante i suoi concorrenti fossero più veloci nella trasmissione dati, la Ethernet si è sempre adeguata. Frame Nonostante Ethernet abbia diverse topologie, l'elemento comune è nella struttura del frame che viene definito DIX (DEC, Intel, Xerox) ed è rimasto fedele alla versione originale: Questo è il frame ricevuto dallo strato di rete nella pila di protocolli. Gli elementi sono: • Preamble Preambolo (8 byte): I primi 7 byte hanno valore 10101010, mentre l'ultimo è 10101011. I primi 7 servono a svegliare gli adattatori del ricevente e a sincronizzare gli orologi con quelli del mittente. La serie dei due bit a 1 indicano al destinatario che sta arrivando del contenuto importante; • Destination MAC address Indirizzo di destinazione (6 byte): Questo campo contiene l'indirizzo LAN dell'adattatore di destinazione, se l'indirizzo non corrisponde lo strato fisico del protocollo lo scarta e non lo invia agli strati successivi. • Source MAC address Indirizzo sorgente (6 byte); • EtherType Campo tipo (2 byte): Questo campo indica il tipo di protocollo in uso durante la trasmissione e la lunghezza del campo dati; • Payload Campo dati (da 46 a 1500 byte): contiene i dati reali e possono essere di lunghezza variabile in base all'MTU (Maximum Transmission Unit) della Ethernet. Se i dati superano la capacità massima, vengono suddivisi in più pacchetti; • FCS Controllo a ridondanza ciclica (CRC) (4 byte): permette di rilevare se sono presenti errori di trasmissione, in pratica il ricevente calcola il CRC mediante un algoritmo e lo confronta con quello ricevuto in questo campo. É molto simile al frame IEEE 802.3 tranne che per il campo tipo che nell'802.11 diventa Tipo o Lunghezza e il preambolo ridotto a 7 byte con 1 byte trasformato in Start of Frame. Indirizzo Ethernet Gli indirizzi sono tutti a 6 byte in quanto Ethernet definisce uno schema di indirizzamento a 48 bit: ogni nodo collegato, quindi, ha un indirizzo Ethernet univoco di questa lunghezza. Esso corrisponde all'indirizzo fisico della macchina ed è associato all'hardware. Sono anche detti indirizzi hardware, indirizzi MAC (o MAC address) o indirizzi di livello 2. Tipologia di trasmissione Ethernet è una tecnologia che fornisce al livello di rete un servizio senza connessione, in pratica il mittente invia il frame nella LAN senza alcun handshake iniziale, questo frame viene inviato in modalità broadcast (o a bus condiviso) e attraversa tutta la LAN. Quando viene ricevuto da tutti gli adattatori presenti sulla LAN quello che vi riconoscerà il suo indirizzo di destinazione lo recepirà mentre tutti gli altri lo scarteranno. Il frame ricevuto può contenere errori verificabili dal controllo CRC, ma Ethernet di per sé è inaffidabile perché questo frame rovinato, che non supera il controllo CRC, viene semplicemente scartato. Sarà compito degli altri strati provvedere alla ri-trasmissione (ad esempio TCP), ma il sistema non fornisce nessun ausilio, per cui ri-trasmetterà un pacchetto richiesto da un livello diverso ma il sistema lo tratta come un qualsiasi altro frame. Ciò, tuttavia, rende Ethernet semplice ed economica. La gestione delle collisioni e dell'occupazione simultanea del canale di trasmissione viene gestita mediante il CSMA/CD (Carrier Sense Multiple Access with Collision Detection). Per approfondimenti vedere articolo principale CSMA/CD. La codifica usata per i segnali binari è la codifica Manchester. Negli ultimi sistemi Ethernet il problema non si presenta in quanto con il Gigabit Ethernet e gli switch si tende sempre più a trasformare una Ethernet in una connessione peer-to-peer. Efficienza Ethernet utilizza un algoritmo di accesso multiplo alla rete detto CSMA/CD. Ciò permette all'Ethernet, in certe condizioni, di avere un'efficienza di trasmissione del 100%. L'efficienza è vista come la frazione di tempo a lungo termine durante la quale sono trasmessi frame senza collisioni con altri mittenti. Ethernet con ripetitori e hub Rete con hub centrale Ethernet tende a crescere ma il cavo Ethernet ha una capacità limitata sia in lunghezza sia in capacità di traffico, per cui le LAN di grosse dimensioni vengono suddivise in reti più ridotte interconnesse tra loro da particolari nodi tra i quali possiamo trovare dei ripetitori, degli hub o elementi più sofisticati come bridge o switch. Il ripetitore semplicemente replica il segnale ricevuto. Il cavo Ethernet può quindi assumere lunghezze molto maggiori alle sue capacità. L'unico vincolo è che tra due computer ci devono essere al massimo due ripetitori per salvaguardare la temporizzazione di CSMA/CD. Ethernet con bridge e switch Rete complessa collegata da più switch Il bridge è un elemento di interconnessione più sofisticato dell'hub perché opera sui pacchetti e non sui segnali elettrici. Con questo sistema si possono creare segmenti di LAN indipendenti in cui le collisioni e i ritardi restano limitati. Molti bridge sono adattativi o ad apprendimento per cui sono provvisti di un software con elenchi di indirizzi per ogni scheda ethernet che posseggono. In questo modo quando arriva un pacchetto, estrapolano l'indirizzo di destinazione, e inviano lo stesso pacchetto nel segmento giusto in base agli elenchi associati alle schede. Per approfondimenti vedere l'articolo correlato bridge. Molto più sofisticati sono gli switch che sono composti da un numero elevato di schede ethernet che consente ad ogni host di essere connesso direttamente. Allo switch viene poi collegato uno o più cavi Ethernet ad alta velocità che collegano altri segmenti di LAN. In questo modo lo switch intercetta i pacchetti e li ridireziona ad un host oppure sui segmenti Ethernet. La gestione dei pacchetti, quindi, è ottimizzata perché questi sono subito reindirizzati alla destinazione evitando, per quanto possibile, collisioni. In questo modo ogni scheda ha un suo dominio di collisione. Pacchetto (reti) Nel gergo informatico si chiama pacchetto ciascuna sequenza di dati distinta trasmessa su una rete o in generale su una linea di comunicazione (ad esempio su una linea seriale) che utilizzi la Commutazione di pacchetto. A seconda del tipo di protocollo di comunicazione e di sistema di trasmissione, il termine “pacchetto” può assumere significati diversi. Per il livello di collegamento del modello ISO/OSI si preferisce il termine frame. In TCP, si usa anche il termine "datagramma". Nei casi più semplici, il pacchetto è l'unità di base del protocollo, ed ogni pacchetto rappresenta una singola informazione, comando o risposta. Con protocolli di trasporto più sofisticati, un pacchetto è il risultato della suddivisione (segmentazione) delle informazioni dei protocolli di alto livello in blocchi di dimensioni inferiori. Ad esempio in una rete TCP/IP, quando si scarica una pagina web, i dati della pagina vengono automaticamente suddivisi dal server in pacchetti di livello IP di ridotte dimensioni (generalmente non più di 1500 byte, che è la dimensione massima possibile su una rete Ethernet) e riassemblati nell'ordine corretto dal client. La forma esatta di ogni pacchetto dipende quindi dal protocollo utilizzato, ma in genere sono presenti tre parti: 1. header (intestazione): contiene tutte le informazioni necessarie alla trasmissione, quali l'indirizzo del trasmettitore, quello del ricevitore, la vita del pacchetto, i dati che rigardano l'assemblaggio con gli altri pacchetti e così via 2. data: contiene i dati trasmessi 3. checksum: un codice di controllo utilizzato per controllare la corretta ricezione dei dati Nelle reti costituite da più livelli, come appunto il TCP/IP, i pacchetti dei livelli superiori vengono inseriti nei pacchetti dei livelli inferiori. Tale operazione è definita “imbustamento”. Commutazione di pacchetto La commutazione di pacchetto è una tecnica di Time Division Multiple Access, utilizzata per condividere un canale di comunicazione tra più stazioni in modo non deterministico, utilizzata generalmente per realizzare reti di calcolatori, mentre la commutazione di circuito è tipicamente usata nelle comunicazioni telefoniche. Tali tecniche non comportano l'attivazione di una linea di comunicazione dedicata fra un elaboratore ed un altro, ma consentono lo svolgimento simultaneo di più comunicazioni fra computer, massimizzando così l'utilizzazione dei mezzi trasmissivi impiegati. Pacchetti In una rete a commutazione di pacchetto l'informazione da trasmettere viene suddivisa in pacchetti di dimensione abbastanza piccola; ad ognuno di essi viene aggiunta un'intestazione che contiene tutta l'informazione necessaria affinché il pacchetto possa venire inoltrato alla sua destinazione finale e sulla sua posizione all'interno dell'informazione che viene trasferita. I pacchetti vengono inviati individualmente attraverso la rete e vengono poi riassemblati nella loro forma originale quando arrivano sul computer di destinazione. L'intera capacità trasmissiva disponibile viene impegnata per la trasmissione di ciascun pacchetto. Se vi sono più pacchetti da trasmettere contemporaneamente, questi vengono memorizzati in una coda, subendo un ritardo di accodamento e rischiando di essere scartati in caso di esaurimento della memoria disponibile per la coda. Commutatori Quando un nodo intermedio detto commutatore di pacchetto, generalmente un router o uno switch, riceve un pacchetto, esso decide quale è il percorso migliore che il pacchetto può prendere per raggiungere la sua destinazione. Questa strada può cambiare da pacchetto a pacchetto dipendentemente dalle condizioni della rete, per cui pacchetti appartenenti ad uno stesso messaggio possono intraprendere anche percorsi distinti. Ritardi Un pacchetto che attraversa una rete subisce un ritardo, legato in parte alle caratteristiche del percorso ed in parte allo stato di carico della rete. Le componenti del ritardo sono: • ritardo di trasmissione - il tempo necessario per trasmettere il pacchetto alla velocità della linea di trasmissione. È dato dal rapporto tra lunghezza del pacchetto e velocità della linea. Molti commutatori utilizzano la tecnica store-and-forward, ovvero ricevono tutto il pacchetto, verificano i checksum per controllare se ci sono stati errori di trasmissione, e poi lo accodano per la ritrasmissione. Pertanto il ritardo di trasmissione dei commutatori attraversati devono essere sommati tra loro. • ritardo di propagazione - il tempo necessario al segnale fisico per propagarsi lungo una linea di trasmissione. Nei mezzi trasmissivi come rame o fibra ottica, i segnali si propagano ad una frazione della velocità della luce nello specifico mezzo trasmissivo, indicativamente 200.000 km/s. Quindi il ritardo di trasmissione è stimabile in 50 ns/km. • ritardo di coda (queuing delay), dovuto al fatto che i pacchetti in uscita non sempre vengono trasmessi immediatamente. Infatti la linea in uscita può essere occupata da altri pacchetti in corso di trasmissione. In questo caso, il pacchetto viene salvato in una memoria temporanea del commutatore detta coda, per venir trasmesso appena possibile. Il tempo atteso dal pacchetto nella coda è appunto detto ritardo di coda, e non è possibile stabilire a priori quanto ritardo di coda un pacchetto subirà. Il ritardo di coda può essere però caratterizzato statisticamente, e di questo si occupat la teoria delle code. È anche possibile che i pacchetti inviati tra due stessi host in momenti diversi subiscano ritardi differenti. La variazione del ritardo subito dai pacchetti è detta jitter. Perdita di pacchetti Se la rete è molto congestionata e la coda non riesce a contenere tutti i pacchetti, il commutatore è costretto a scartarli. Per questa ragione, una rete a pacchetto non può generalmente garantire che tutti i pacchetti inviati arrivino a destinazione. Commutazione di pacchetto e commutazione di circuito Mentre in una rete a commutazione di circuito la capacità del canale trasmissivo è interamente dedicata ad una specifica comunicazione, la commutazione di pacchetto si rivela molto più efficiente nonostante la maggior quantità di dati inviata, in quanto i canali fisici sono utilizzati solo per il tempo strettamente necessario. Inoltre, poiché ogni pacchetto porta con sé la sua identificazione, una rete può trasportare nello stesso tempo pacchetti provenienti da sorgenti differenti. La commutazione di pacchetto permette quindi a più utenti di inviare informazioni attraverso la rete in modo efficiente e simultaneo, risparmiando tempo e costi mediante la condivisione di uno stesso canale trasmissivo (cavo elettrico, etere, fibra ottica, ecc.). Storicamente la commutazione di pacchetto poneva qualche problema nel caso fosse necessaria una disponibilità garantita di banda o nelle trasmissioni real time: si pensi a una trasmissione video, dove le immagini arrivano con un flusso costante. Al giorno d'oggi è però possibile aggiungere una "priorità" ai pacchetti per garantire che un numero sufficiente di essi venga inviato, a scapito di altri pacchetti che non abbiano un'urgenza specifica - ad esempio, un file da trasferire. La commutazione di pacchetto è uno dei possibili metodi di multiplazione, ovvero è una tecnica per suddividere la capacità trasmissiva di un canale tra diversi utilizzatori. Vedi anche Multiplazione. Scheda di rete Scheda di rete Ethernet Interfaccia digitale che viene inserita solitamente all'interno di un Personal Computer, Server, Stampante, Router etc., per consentire la connessione ad una rete informatica. Altri nomi per questa interfaccia possono essere: • NIC (Network Interface Controller) • Scheda LAN (Local Area Network) Esistono diverse tecnologie di rete. Tra le piu' diffuse: • Ethernet • Token Ring Produttori di schede di rete • 3Com Corporation • Broadcom • D-Link • Intel • Novell • Realtek Indirizzo MAC L'indirizzo MAC (MAC address in inglese) viene detto anche indirizzo fisico o indirizzo ethernet o indirizzo LAN, ed è un codice di 48 bit (6 byte) assegnato in modo univoco ad ogni scheda di rete ethernet prodotta al mondo. MAC è un acronimo che significa Media Access Control e viene utilizzato per l'accesso al mezzo fisico dal livello datalink secondo lo standard ISO/OSI. I 48 bit del codice sono 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. L'indirizzo MAC si scrive normalmente in 6 ottetti separati da un trattino (es. 00-50-FC-A0-67-2C) ed i primi 3 ottetti sono detti OUI (Organizationally Unique Identifier). Per questo tipo di indirizzi di solito si preferisce la notazione esadecimale anche per differenziarla dagli indirizzi Ip che usano la notazione decimale. I blocchi di indirizzi MAC vengono assegnati ai produttori dall'IEEE ma non è chiaro se vengono assegnati a blocchi di 224 o di 225 indirizzi. Ogni scheda ha un indirizzo unico perché i primi 24 bit sono identificativi della casa produttrice e i successivi della scheda. In questo modo ogni casa produttrice ha a disposizione 224 indirizzi, quindi più di 16 milioni di schede: se il produttore produce meno schede ethernet, alcuni indirizzi, quelli non assegnati, vengono persi non potendo essere utilizzati da altri costruttori). Si comprende, quindi, come l'indirizzo MAC non cambi se ci si sposta da una rete a un'altra, mentre lo stesso non accade per un indirizzo IP. La conversione tra indirizzo MAC e indirizzo IP avviene mediante alcuni protocolli, il più conosciuto è ARP. 10Base2 Specifica di livello fisico dello standard IEEE 802.3, caratterizzata da velocità di trasmissione di 10 Mbps in banda base e da segmenti di lunghezza non superiore ai 200 metri. Utilizza cavo coassiale RG58, in una topologia a bus. L'RG58 è alquanto più sottile e leggero dell'RG8, ed è molto più facile piegarlo senza danneggiarlo. In 10Base2, a differenza che in 10Base5, il transceiver è integrato nella scheda di rete, e le stazioni sono collegate al bus tramite con spine a T di tipo BNC. È possibile collegare 30 stazioni per segmento. Alle estremità del cavo sono necessari dei terminatori BNC muniti di impedenze da 50 Ohm per evitare che il rimbalzo del segnale disturbi le comunicazioni. Tramite repeater è possibile collegare più segmenti consecutivi, ma non più di quattro. Questo tipo di implementazione non è più installato da anni. 10Base5 Specifica di livello fisico dello standard IEEE 802.3, caratterizzata da velocità di trasmissione di 10 Mbps in banda base e da segmenti di cavo di lunghezza non superiore ai 500 metri. Utilizza cavo coassiale RG8, in una topologia a bus. L'RG8 è un cavo spesso e pesante, ma consente di collegare fino a 100 stazioni per segmento. Le stazioni sono collegate al cavo attraverso un dispositivo detto transceiver, fissato al cavo tramite ingombranti e scomode spine a vampiro, che forano le guaine plastiche del cavo fino a raggiungerne il cuore. Il transceiver converte i bit in uscita da una stazione in impulsi nel cavo, e viceversa. Tratti più lunghi possono essere ottenuti attraverso l'uso di dispositivi di ritrasmissione detti repeater, che amplificano il segnale in arrivo da un segmento e lo ritrasmettono su quello successivo. Non è però possibile collegare più di quattro segmenti consecutivi. Ormai questo tipo di implementazione non viene più installato da anni. BNC Connettore maschio Connettore femmina Famiglia di connettori a baionetta usati per l'intestazione di cavi coassiali. La sigla del connettore significa Bayonet Neill Concelman, dal nome dei due inventori. I connettori BNC sono utilizzati nel cablaggio di reti 10Base2, ma anche in svariate applicazioni industriali. L'aggancio fra il connettore maschio e il connettore femmina si effettua rapidamente, ruotando la femmina intorno al maschio. Il contatto così ottenuto è molto affidabile. Oltre ai connettori terminali, la famiglia comprende le spine a T, che consentono di simulare una topologia a bus collegando nodi di una rete l'uno all'altro tramite tratti di cavo, in maniera simile, ma molto più semplice, a quanto avviene con le spine a vampiro usate nel cablaggio di reti 10Base5. Il connettore di tipo BNC viene largamente utilizzato anche per cablare linee a radiofrequenza, ad esempio per collegare un apparecchio radio trasmettitore, ricevitore o ricetrasmettitore alla relativa antenna. Il connettore è adatto per linee con un'impedenza di 50 ohm. Un altro impiego su larga scala dei connettori BNC è nei cablaggi di segnali video professionali, dove il cavo coassiale è utilizzato per trasmettere un segnale video sia composito che digitale, oppure a componenti con tre cavi di uguale lunghezza. In questo tipo di applicazione si usano cavi con impedenza di 75 ohm. 10Base-T Specifica di livello fisico dello standard IEEE 802.3, caratterizzata da velocità di trasmissione di 10 Mbps in banda base su due doppini intrecciati non schermati (UTP, Unshielded Twisted Pair) di categoria 3, di derivazione telefonica. Prevede solo collegamenti fisici punto-punto, e quindi consente collegamenti fisici a stella; attraverso dispositivi intermedi come hub, bridge e switch è possibile ottenere topologie logiche a bus, a stella e ad albero. Come i cavi stessi, i connettori sono di derivazione telefonica (tipo RJ-45), molto pratici, anche se meno affidabili dei connettori BNC. Si tratta di un cablaggio molto economico, anche perché in molti casi consente di utilizzare o riciclare impianti telefonici esistenti. I singoli tratti del cablaggio non possono superare i 100 metri. Per quanto non venga più installata da anni, questa implementazione si può ancora incontrare di frequente. RJ-45 Schema del connettore Cavi categoria 5 con connettore RJ45 Un connettore RJ-45 ancora da crimpare su di un cavo La sigla RJ-45 (dall'inglese Registered Jack tipo 45) indica una interfaccia fisica (connettore elettrico) usata per l'attestazione di cavi elettrici a coppie di conduttori incrociati (twisted pair). La specifica fa parte di una serie di connettori modulari destinati ai servizi telefonici e di trasmissione dati, standardizzati negli Stati Uniti d'America a partire dagli anni '70. Si tratta di un connettore 8P8C, ovvero a 8 posizioni e 8 contatti (pin), che può essere usato per varie applicazioni. A differenza delle apparecchiature telefoniche, che utilizzano l'RJ-11, il connettore RJ-45 è utilizzato in particolare per il cablaggio delle reti locali secondo gli standard Ethernet / IEEE 802.3 10Base-T, 100Base-TX e 1000Base-T, anche se con una configurazione dei contatti (pinout) leggermente diversa da quella originale. L'iniziale disposizione progressiva delle coppie verso l'esterno, a partire dai contatti centrali, non è compatibile con le velocità richieste da tali applicazioni perché porta a una distanza troppo elevata i conduttori delle coppie più esterne. Per tale applicazione sono stati sviluppati due standard di cablaggio del tutto equivalenti, EIA/ TIA-568A ed EIA/TIA-568B, che differiscono solo per l'inversione delle coppie 2 e 3. L'uso dell'uno o dell'altro, purché coerente, è del tutto arbitrario in quanto entrambi gli standard conservano le stesse caratteristiche tecniche. Nonostante ciò, lo schema di cablaggio maggiormente utilizzato è l'EIA/TIA-568B. Cavi Cablaggio per connettore RJ-45 secondo gli standard EIA/TIA-568A/B Pin Cp. T568A Cp. T568B Cond. 1 3 2 1 2 3 2 2 3 2 3 1 4 1 1 2 5 1 1 1 6 2 3 2 7 4 4 1 8 4 4 2 Codice colori T568A Codice colori T568B bianco di bianco/verde bianco di bianco/arancio verde di bianco/verde arancio di bianco/arancio bianco di bianco/arancio bianco di bianco/verde blu di bianco/blu blu di bianco/blu bianco di bianco/blu bianco di bianco/blu arancio di bianco/arancio verde di bianco/verde bianco di bianco/marrone bianco di bianco/marrone marrone di bianco/ marrone di bianco/ marrone marrone Cavo diretto EIA/TIA-568A Cavo diretto EIA/TIA-568B Cavo cross-over EIA/TIA-568A/B (10Base-T, 100Base-TX) Collegamenti esterni Doppino telefonico In telecomunicazioni, per doppino si intende la coppia di fili di rame che viene utilizzato per la trasmissione delle comunicazioni telefoniche. È un elemento essenziale della rete telefonica. Migliore è la qualità del rame, migliore sarà la qualità del segnale. Quattro doppini Tipicamente il doppino è costituito da una coppia di conduttori ritorti (twisted pair) mediante un processo di binatura. La binatura del doppino ha lo scopo di fare in modo che i campi magnetici esterni agiscano mediamente in egual modo sui due conduttori. Impiegando poi una tecnica di trasmissione differenziale, sarà possibile eliminare uteriori disturbi. Il doppino può essere singolo (una sola coppia) oppure in una treccia di una serie più o meno numerosa di coppie. In questo caso ogni coppia presenta una frequenza di twistatura diversa (binatura), per ridurre il più possibile il fenomeno di diafonia tra le varie coppie di doppino tra loro contigue. Una problematica tipica dei doppini ritorti è il delay skew (o distorsione di propagazione), ovvero una variazione nel ritardo di propagazione del segnale sulle singole coppie, dovuta al diverso passo di binatura delle coppie in un cavo multicoppia. Schermatura I doppini possono essere schermati per ridurre l'interferenza elettromagnetica. Poiché è fatta di metallo, tale schermatura agisce anche da terra. Unshielded Twisted Pair (UTP) Unshielded Twisted Pair I cavi UTP non sono schermati. Ciò comporta un elevato grado di flessibilità e resistenza agli sforzi. Si usano ampiamente nelle reti telefoniche ed ethernet. Shielded Twisted Pair (STP) Shielded Twisted Pair I cavi STP cabling includono una schermatura metallica per ogni coppia di cavi. Un esempio è quello definito da IBM per la sua rete Token Ring. Screened Shielded Twisted Pair (S/STP) I cavi S/STP sono cavi STP ulteriormente protetti da una schermatura metallica che racchiude l'intero cavo; ciò migliora ulteriormente la resistenza alle interferenze. Screened Shielded Twisted Pair Screened Unshielded Twisted Pair (S/UTP) S/UTP, noto anche come Fully-shielded (or Foiled) Twisted Pair (FTP) o Screened Fully-shielded Twisted Pair (S/FTP), è un cavo UTP schermato. Screened Unshielded Twisted Pair, Foiled Twisted Pair, Screened Foiled Twisted Pair Categorie I doppini sono raggruppati in diverse categorie di cui alcune, ma non tutte, hanno uno status ufficiale presso la EIA e/o l'ISO. • Categoria 1: (TIA/EIA-568-B). Usato per la Rete telefonica generale, ISDN e per i citofoni. • Categoria 2 (non riconosciuta). Usata per le reti token ring networks a 4Mbit/s. Poco usata al giorno d'oggi. • Categoria 3: (TIA/EIA-568-B). Usata per reti con frequenze fino a 16 MHz], molto diffusa per le reti Ethernet a 10 Mbps. • Categoria 4 (non riconosciuta). Usata per reti con frequenze fino a 20 MHz], come ad esempio Token Ring a 16 Mhz. • Categoria 5 (non riconosciuta). Usata per reti con frequenze fino a 100 MHz]; come ad esempio ethernet a 100 Mbp/s, e utilizzabile per reti ethernet gigabit 1000Base-T. • Categoria 5e (TIA/EIA-568-B). Usata per reti con frequenze fino a 120 MHz, come ad esempio fast ethernet e gigabit ethernet networks. • Categoria 6 (TIA/EIA-568-B). Usata per reti con frequenze fino a 250 MHz. • Categoria 7 (ISO/IEC 11801 Class F), nome informale. Lo standard specifica 4 STP all'interno di un unico cavo. Concepito per trasmissioni sino a 600 MHz. Confronto tra rame e fibra ottica Il rame costa 10 euro nella tratta minima di vendita e 0,60 per la posa di un metro, è un mezzo attraverso il quale può tranquillamente passare un segnale a banda larga. È soggetto a rapida usura e richiede costi di manutenzione della rete. La fibra ottica costa 7 euro al metro, ma ha un costo maggiore la posa, circa 3 per la posa di un metro di fibra. Le prestazioni in termini di banda sono migliori rispetto a quelle del doppino in rame. UTP UTP è l'acronimo di Unshielded Twisted Pair e identifica un cavo non schermato utilizzato comunemente per il collegamento nelle reti ethernet. È composto da otto fili di rame intrecciati a coppie (pairs), inoltre ogni coppia è intrecciata con le altre. L'intreccio dei fili ha lo scopo di ridurre le interferenze, i disturbi e limitare il crosstalk. La lunghezza massima di un cavo UTP nello standard ethernet è di 100m. I cavi UTP seguono le specifiche standardizzate in TIA/EIA che li dividono in varie categorie in base ad esempio al numero di intrecci e alle capacità di trasportare segnali. Attualmente la categoria 5 e la 5e sono le più utilizzate, esiste tuttavia anche la categoria 6 che permette di raggiungere velocità superiori. Un cavo UTP termina con dei connettori di tipo RJ-45 che si innestano direttamente nell'interfaccia del dispositivo (NIC, Hub, Switch, Router, ecc). Se si devono collegare due dispositivi simili (ad esempio PC-PC o SWITCH-HUB) si utilizza un cavo di tipo cross mentre se si devono connettere dispositivi diversi (ad esempio PC-SWITCH) uno diritto. I cavi diritti presentano gli 8 fili nello stesso ordine in entrambi i 2 connettori, mentre quelli cross presentano una sequenza diversa. Nella costruzione del cavo, ovvero nel crimpare i connettori alle sue estremità si possono seguire due standard: TIA/EIA 568A e TIA/EIA 568B che presentano un ordine degli 8 fili (identificati da diversi colori) diverso. Fibra ottica Fibre ottiche Le fibre ottiche sono classificate come guide d'onda dielettriche. Esse, in altre parole, permettono di convogliare al loro interno un campo elettromagnetico di frequenza sufficientemente alta (in genere in prossimità dell'infrarosso) con perdite estremamente limitate. Vengono comunemente impiegate nelle telecomunicazioni su grandi distanze e nella fornitura di accessi di rete a larga banda (dai 10 MBit/s al Tbit/s usando le più raffinate tecnologie WDM). Il costo varia dai 4000 euro/km di fibra nei piccoli centri (con cavi di spessore molto più contenuto) ai 10000 euro/km di fibra nelle città, cui sono da aggiungere i costi dello scavo per l'interramento e le licenze comunali per aprire i cantieri (dove richieste anche se per opere di pubblica utilità). Varie municipalizzate e l'operatore tlc Fastweb stanno costruendo reti proprietarie in fibra ottica con ampiezza di banda che arriva a 10 megabit/sec in accesso, indispensabili per la tv via internet e la videoconferenza. Varie società sono dotate di una rete capillare e proprietaria in fibra ottica. La legge impone l'interoperabilità delle reti su doppino, non su altro mezzo trasmissivo; per cui, anche in assenza di copertura ADSL e per pubblica utilità, il privato decide autonomamente se e quando entrare nel mercato con un'offerta commerciale. Fra le società citate: la rete autostradale, ENEL per uso interno di controllo della domanda e offerta d'energia sulla rete, vari operatori di telefonia mobile in quanto le celle-ripetitori sono collegate in fibra ottica, teoricamente utilizzabile anche come appoggio a una rete wireless quando verrano commercializzate. Costituzione Le fibre ottiche sono composte da due strati concentrici di materiale vetroso estremamente puro: un nucleo cilindrico centrale, o core, ed un mantello o cladding attorno ad esso. I due strati sono realizzati con materiali con indice di rifrazione leggermente diverso, il cladding deve avere un indice di rifrazione minore rispetto al core. Come ulteriore caratteristica il mantello deve avere uno spessore maggiore della lunghezza di smorzamento dell'onda evanescente, caratteristica della luce trasmessa. Se le condizioni vengono rispettate gran parte della potenza è mantenuta all'interno del core. Diversi tipi di fibre si distinguono per diametro del core, indici di rifrazione, caratteristiche del materiale, profilo di transizione dell'indice di rifrazione, drogaggio (aggiunta di piccole quantità di altri materiali per modificare le caratteristiche ottiche). Funzionamento Riflessione totale interna (a) e rifrazione esterna (b) per due fasci luminosi in una fibra ottica. Uno studio rigoroso della fisica delle fibre ottiche richiede concetti di ottica quantistica. Usando un paragone di ottica classica, la discontinuità nell'indice di riflessione genera un fenomeno di riflessione totale, per cui tutta la potenza che la colpisce con un angolo di incidenza sufficientemente alto viene riflessa. Le fibre ottiche si basano sul fenomeno di riflessione totale interna, la discontinuità dell'indice di rifrazione tra i materiali del nucleo e del mantello intrappola la radiazione luminosa finché questa mantiene un angolo abbastanza radente, in pratica finché la fibra non compie curve troppo brusche. In figura è rappresentato come due raggi luminosi, cioè due treni di radiazione elettromagnetica, incidono sull'interfaccia tra nucleo e mantello all'interno della fibra ottica. Il fascio a incide con un angolo θa superiore all'angolo critico di riflessione totale e rimane intrappolato nel nucleo; il fascio b incide con un angolo θb inferiore all'angolo critico e viene rifratto nel mantello e quindi perso. È importante ricordare che in ottica si indica l'angolo tra la radiazione e la normale alla superficie, cioè 90°-α dove α è l'angolo, più intuitivo ma più scomodo da utilizzare, tra la radiazione e la superficie. All'interno di una fibra ottica il segnale può propagarsi secondo uno o più modi di propagazione. Le fibre monomodali consentono la propagazione di luce secondo un solo modo hanno un diametro del core compreso tra 8 µm e 10 µm, quelle multimodali consentono la propagazione di più modi, e hanno un diametro del core di 50 µm o 62.5 µm. Il cladding ha tipicamente un diametro di 125 µm. Le fibre multimodali permettono l'uso di dispositivi più economici, ma subiscono il fenomeno della dispersione intermodale, per cui i diversi modi si propagano a velocità leggermente diverse, e questo limita la distanza massima a cui il segnale può essere ricevuto correttamente. Le fibre monomodali di contro hanno un prezzo molto più elevato rispetto alle multimodali, ma riescono a coprire distanze e a raggiungere velocità nettamente superiori. Uso delle fibre ottiche nelle telecomunicazioni Cavo composto da più fibre ottiche Se negli anni '70 le fibre ottiche erano usate come oggetto decorativo per la produzione di lampade, oggi sono un componente essenziale nell'industria delle telecomunicazioni, ancora in corso di evoluzione tecnologica. I principali vantaggi delle fibre rispetto ai cavi in rame nelle telecomunicazioni sono: • bassa attenuazione, che rende possibile la trasmissione su lunga distanza senza ripetitori; • grande capacità di trasporto di informazioni; • immunità da interferenze elettromagnetiche, inclusi gli impulsi elettromagnetici nucleari (ma possono essere danneggiate da radiazioni alfa e beta); • alta resistenza elettrica, quindi è possibile usare fibre vicino ad equipaggiamenti ad alto potenziale, o tra siti a potenziale diverso; • peso e ingombro modesto; • bassa potenza contenuta nei segnali; • assenza di diafonia; • ottima resistenza alle condizioni climatiche avverse. Finestre di trasmissione Nelle comunicazioni ottiche, lo spettro trasmissivo è descritto in termini di lunghezza d'onda invece che di frequenza. Combinando i diversi fenomeni di attenuazione, rifrazione, dispersione, vi sono tre "finestre" particolarmente adatte all'uso nelle telecomunicazioni, con prestazioni e costi crescenti. • "prima finestra": 850 nm (nel campo del visibile), usata soprattutto con economici laser a diodo con luce multimodale. Permette di realizzare collegamenti di 275 m su fibre 62.5/125 e di 550 m su fibre 50/125. • "seconda finestra": 1310 nm, usata con laser multimodali o monomodali. Permette di realizzare collegamenti di 5-10 km su fibre monomodali. • "terza finestra": 1550 nm, usata con laser monomodali. Questa finestra permette di realizzare le distanze maggiori, compresi collegamenti di 100 km con apparati relativamente economici. Una buona fibra monomodale ha una attenuazione dell'ordine degli 0.2-0.25 dB/km. Giunzioni e connettorizzazioni Connettori di tipo ST (a sinistra) e SC ( a destra) Due tratti di fibra ottica dello stesso tipo possono essere giuntati mediante fusione, ottenendo un ottimo accoppiamento del core. Questa operazione è effettuata in modo semiautomatico mediante apparecchiature che allineano automaticamente i core e controllano la fusione. Una giunzione ben eseguita comporta una attenuazione di circa 0,1 dB. Nell'uso pratico, un collegamento bidirezionale (ad esempio IEEE 802.3) viene realizzato utilizzando una coppia di fibre, una per ciascuna direzione. Le fibre ottiche sono collegate agli apparati di telecomunicazione mediante connettori che allineano meccanicamente il core della fibra con il laser e con il ricevitore. Un connettore comporta una attenuazione di circa 0,5 dB, ed è molto sensibile alla polvere, per cui connettori e cavi inutilizzati vengono normalmente coperti per evitare infiltrazioni. Esistono diversi tipi di connettori, ad esempio SC, LC (in plastica, quadrati) e ST (in metallo, tondi, con innesto a baionetta). I cavi in fibra vengono normalmente installati all'interno di impianti di cablaggio strutturato, attestandoli su pannelli di permutazione. Un collegamento comporta quindi l'uso di almeno due cavi di permuta (da ciascun apparato connesso al pannello di permutazione), e quindi di 4 connettori. Bilancio di potenza (power budget) Per i collegamenti di lunga distanza, i trasduttori sono specificati in termini di potenza del trasmettitore e sensibilità del ricevitore. La differenza tra le due costituisce il power budget, ovvero la massima potenza che può essere dissipata dal collegamento. Per valutare se una certa tecnologia trasmissiva funzionerà su un certo collegamento, è necessario misurare o stimare la perdita complessiva del collegamento, o link loss. Questo deve essere inferiore al power budget. Normalmente si lascia un margine di 3-6 dB, per garantirsi contro peggioramenti del collegamento (dovuti a invecchiamento o a interventi di manutenzione) o degli apparati trasmissivi (dovuti tra l'altro a sporcizia). Questa valutazione deve essere effettuata alla lunghezza d'onda utilizzata dagli apparati prescelti. Se il collegamento è già realizzato, è possibile misurare la sua attenuazione. L'esame tipicamente utilizzato è chiamato OTDR, (Optical Time Domain Reflectometry, in italiano riflettometria ottica nel dominio del tempo). Se il collegamento deve essere ancora realizzato, la sua attenuazione è stimabile usando i valori di targa delle fibre e valori prudenziali per giunzioni e connettori. Ad esempio, il link loss di un collegamento di 20km, con fibra da 0.24 dB/km, 6 giunzioni lungo il collegamento, connettori solo alle estremità è stimabile in: 20 km * 0.24 dB/km + 6 * 0.1 dB + 4 * 0.5 dB = 4.8 dB + 0.6 dB + 2 dB = 7.4 dB aggiungendo 4 dB di margine di sicurezza, gli apparati dovranno avere un power budget minimo di 11.4 dB. Prestazioni Gli apparati commercialmente disponibili arrivano a velocità di trasmissione di 40 Gbit/s. Utilizzando tecnologie WDM è possibile trasmettere su una singola coppia di fibre fino ad alcune centinaia di migliaia di canali in frequenza, arrivando a capacità massime dell'ordine del Tbit/s. Storia La storia della fibra ottica inizia ai tempi dell'Inghilterra vittoriana, quando il principio della totale riflessione interna venne utilizzato per illuminare le fonti delle fontane pubbliche. Il successivo sviluppo, nella metà del XX secolo, si concentrò sullo sviluppo di un fascio di fibre volto alla trasmissione di immagini il cui primo impiego fu il gastroscopio medico. Il primo gastroscopio a fibra ottica semi-flessibile fu brevettato da Basil Hirschowitz, C. Wilbur Peters, and Lawrence E. Curtiss nel 1956. Nel processo di sviluppo del gastroscopio, Curtiss produsse fisicamente la prima fibra ottica. Presto si susseguirono una varietà di altre applicazioni per la trasmissione di immagini. Nel 1965, Charles K. Kao' e George A. Hockham del British Post Office furono i primi a riconoscere che l'attenuazione delle fibre contemporanee era causata dalle impurità, che potevano essere rimosse, piuttosto che lo scattering. Dimostrarono che le fibre ottiche possono essere un mezzo pratico per la comunicazione, nel caso l'attenuazione sia ridotta al di sotto dei 20 dB per kilometro (Hecht, 1999, p. 114). In questa misura, la prima fibra ottica per le comunicazioni fu inventata nel 1970 dai ricercatori Robert D. Maurer, Donald Keck, Peter Schultz, e Frank Zimar impiegati presso l'American glass maker Corning Glass Works. Costruirono una fibra con 17 dB di attenuazione ottica per kilometro drogando il silicio del vetro con il titanio. L'amplificatore ottico erbio-dopato, che ridusse il costo per i sistemi a fibra ottica per le lunghe distanze eliminando il bisogno dei ripetitori ottico-elettronico-ottico, fu inventato da David Payne dell'Università di Southampton, nel 1987. Il primo cavo telefonico translatlantico ad usare la fibra ottica fu il TAT-8, che iniziò ad operare nel 1988. Nel 1991, il campo emergente dei led a cristalli fotonici condusse allo sviluppo delle fibre a cristalli fotonici (Science (2003), vol 299, page 358). La prima fibra a cristalli fotonici venne venduta a partire dal 1996. Esse possono essere progettate per trasportare un maggiore quantitativo di energia rispetto alle fibre convenzionali, e la loro lunghezza d'onda dipendente dalle proprietà può essere manipolata per migliorare le loro prestazioni in certe applicazioni. Negli ultimi vent'anni i progressi relativi allo sviluppo della fibra ottica sono stati enormi. Al momento il collo di bottiglia che non sfrutta appieno la larghezza di banda che permette la fibra ottica, rimane la traduzione dal segnale elettrico al segnale luminoso, ed è proprio questo il punto chiave sul quale si stà cercando di lavorare nell'industria della fibra ottica. Metrocore è la rete in fibra ottica più veloce in Europa. Nata per scopi di ricerca come rete interna del CNR di Pisa, ora collega questura, pretura e centro abitato, ad una velocità di circa 1 gigabit/ secondo. In alcuni tratti della rete, la velocità di connessione cresce significativamente a 10 gigabit, per via di un particolare accorgimento che colora i bit inviati nelle fibre ottiche, aumentando di 10 volte l'informazione trasportabile. La velocità è paragonabile alla rete di Internet 2 che negli USA collega un centinaio di centri di ricerca a grandi società. Cavo ethernet incrociato Il cavo ethernet incrociato (detto anche cavo cross o crossover dal suo nome inglese) è un tipo cavo ethernet Base-T a fili intrecciati (come i cavi UTP o simili) con ad ognuna delle due estremità un connettore RJ-45 a 8 poli, come in un normale cavo ethernet dritto, ma a differenza di questo i fili all'interno del cavo non sono tali da collegare ciascun pin di un connettore con il corrispondente pin dell'altro connettore. I fili sono invece incrociati, in modo che il filo di trasmissione di un'estremità del cavo diventi il filo di ricezione dell'altra estremità, come indicato nello schema seguente: Schema di cablaggio secondo lo Standard EIA/TIA T568B. Nel connettore 1 in corrispondenza del filo Bianco/Verde si fa corrispondere il filo Bianco/Arancio del connettore 2. Nel connettore 1 in corrispondenza del filo Verde si fa corrispondere il filo Arancio del connettore 2. Nel connettore 1 in corrispondenza del filo Bianco/Arancio si fa corrispondere il filo Bianco/Verde del connettore 2. Nel connettore 1 in corrispondenza del filo Blu si fa corrispondere il filo Blu del connettore 2. Nel connettore 1 in corrispondenza del filo Bianco/Blu si fa corrispondere il filo Bianco/Blu del connettore 2. Nel connettore 1 in corrispondenza del filo Arancio si fa corrispondere il filo Verde del connettore 2. Nel connettore 1 in corrispondenza del filo Bianco/Marrone si fa corrispondere il filo Bianco/ Marrone del connettore 2. Nel connettore 1 in corrispondenza del filo Marrone si fa corrispondere il filo Marrone del connettore 2. Nota bene: se i colori del cavo sono diversi basta mantenere le corrispondenze giuste. Nelle reti Ethernet Base-T questo tipo di cavo è utilizzato per collegare direttamente tra di loro due dispositivi di rete dello stesso tipo (ad esempio due PC, due hub). Nel caso di reti Ethernet che usano cavi coassiali il concetto di cavo incrociato non esiste. La velocità del cavo incrociato è identica a quello diritto: 10, 100 o 1000 megabit/sec a seconda dello standard utilizzato. Nella configurazione tradizionale di una rete locale Ethernet i cavi non vanno da un computer ad un altro bensì da ogni computer parte un cavo che va ad un punto in comune, in una configurazione chiamata a stella, e in questo punto è presente un dispositivo (come ad esempio un hub, o uno switch). Quando si utilizza questo metodo di connessione occorre utilizare un cavo ethernet dritto (in inglese patch cable) e l'hub o lo switch si prendono carico di effettuare i collegamenti opportuni. Quando invece si collegano direttamente due computer (o due dispositivi della stessa classe) con un unico cavo, deve essere il cavo stesso ad ottenere le necessarie inversioni dei fili. Diverso il caso di collegamento ad un router: il router è considerato come un pc e si comporta nella stessa maniera per quanto riguarda i collegamenti, quindi un router va collegato a un pc con un cavo cross, mentre va usato un cavo dritto per collegarlo a uno switch. Dal momento che i cavi incrociati appaiono all'esterno del tutto identici a quelli dritti è buona prassi differenziare i cavi incrociati con un colore differente da quelli utilizzati per i cavi dritti. Il colore normalmente utilizzato per distinguere i cavi incrociati è il rosso. È preferibile che sia tutto l'involucro esterno del cavo colorato di tale colore. In mancanza si può ricorrere, per segnalare che il cavo è incrociato, a degli anellini rossi da collocare in prossimità dei conenttori. In mancanza di questi è comunque preferibile poter disporre di qualche segno (come delle etichette adesive) per poter riconoscere i cavi incrociati. Un altro metodo spesso utilizzato è di scrivere la parola cross o crossed tra i dati tecnici stampati sul cavo stesso. Il cavo incrociato è ottenibile da un cavo normale invertendo l'ordine dei colori di alcune coppie di terminazione. Il costo è intorno ai 4 euro fino ai 3 metri di lunghezza. Oltre i 3 metri sono riscontrabili delle perdite di qualità del segnale. Repeater Nelle telecomunicazioni il termine ripetitore (repeater) ha i seguenti significati: 1. Un device analogico che amplifica un segnale di input indifferentemente dalla sua natura (analogica o digitale). 2. Un device digitale che amplifica, rigenera, o svolge una combinazione di queste funzioni su un segnale digitale per la trasmissione. Un ripetitore è un dispositivo elettronico che riceve un segnale debole e lo ritrasmette con un segnale più alto e potente, cosicché il segnale può essere garantito a lunghe distanze senza degrado. Il termine "ripetitore" è nato con il telegrafo e riferito ad un dispositivo elettromeccanico usato per rigenerare i segnali telegrafici. L'uso del termine è continuato nella telefonia e nella comunicazione dati. Un digipeater è un "digital repeater" particolarmente usato dai radioamatori. Cavi di telecomunicazioni I ripetitori sono spesso usati nei cavi transcontinentali e transoceanici, perché l'attenuazione del segnale (signal loss) su tali distanze potrebbe essere completamente inaccettabile senza di essi. I ripetitori sono usati sia nei cavi di rame che trasportano segnali elettrici sia nelle fibre ottiche che trasportano la luce. Duplex radio Nella comunicazione i ripetitori sono usati in maniera estensiva nel fornire radiosegnali in un'ampia area, mentre nei sistemi di emergenza sono sinonimi di stazione base che forniscono entrambe le funzioni. Queste includono polizia, vigili del fuoco, ambulanza, taxi e altri servizi. Un ripetitore duplex usa due radiofrequenze, una frequenza di "Input", che controlla i segnali, e una frequenza di "Output", su cui si ritrasmettono i segnali ricevuti ad una maggiore potenza. I ripetitori radio sono tipicamente piazzati in zone che massimizzano gli effetti per i loro scopi. I ripetitori di "Low-level" sono usati per la comunicazione locale e sono piazzati ad una grande altezza per ridurre le interferenze con altri utenti delle stesse radiofrequenze. I sistemi Low-level sono usati per aree ampie come una città intera o un piccolo edificio. I ripetitori "High-level" sono piazzati su alte torri o in cima alle montagne per massimizzare l'area di copertura. Con questi sistemi gli utenti con radio poco potenti (come un "walkie-talkies") possono comunicare con altri su parecchi chilometri. Nei radioamatori i ripetitori sono tipicamente non usati come stazione-base per un singolo utente o gruppo, ciononostante forniscono altri servizi come una connessione autopatch per una linea telefonica POTS/PSTN phone per utenti remoti. Questi tipi di ripetitori tipicamente hanno uno squelch tone (CTCSS o PL tone) implementato, per prevenirli dall'essere utilizzati accidentalmente per interferenza da altri ripetitori. Broadcasting I ripetitori sono anche usati estensivamente in broadcasting, dove sono conosciuti come traslatori o amplificatori. Reti telematiche Tra le reti di broadcast vanno ricordate le LAN dove il repeater viene usato soprattutto con un particolare dispositivo di rete che è l'hub. Bridge (informatica) Rete collegata tramite Bridge Un bridge è un semplice dispositivo di rete che si colloca al livello datalink del modello ISO/OSI. Esso è quindi in grado di riconoscere, nei segnali elettrici che riceve dal mezzo trasmissivo, dei dati organizzati in strutture dette trame (in inglese). In particolare, è in grado di inviduare l'indirizzo del nodo mittente e del nodo destinatario di ciascuna trama. Funzionamento Tipicamente un bridge è munito di porte con cui è collegato a diversi segmenti della rete. Quando riceve una trama su una porta, cerca di capire se il destinatario si trova nello stesso segmento del mittente oppure no. Nel primo caso evita di inoltrare la trama, in quanto presumibilmente il destinatario la ha già ricevuta. Nel secondo caso, invece, il bridge inoltra la trama verso il segmento in cui si trova il destinatario. Se non sa su quale segmento si trova il destinatario, il bridge inoltra la trama su tutte le porte tranne quella da cui l'ha ricevuta. Queste operazioni sono definite operazioni di filtraggio e inoltro. Le collisioni Ciascun segmento di rete, collegato ad una porta di un bridge, costituisce un dominio di collisione separato. Ciò ottimizza notevolmente le trasmissioni su una rete. Grazie a questa sua caratteristica il bridge consente di costruire una LAN di dimensioni infinite. Inoltre se un bridge individua che su un altro segmento di rete su cui deve trasmettere esiste un problema di collisione, allora applica l'algoritmo CSMA/CD e opera come un qualsiasi host, mediante buffer dei dati e invio a LAN libera. Pertanto un bridge può essere usato per collegare a livello data link due domini di collisione senza aumentare il rischio di collisioni o, viceversa, per dividere un dominio di collisione in due domini più piccoli e quindi più performanti. Tabelle di indirizzi Per inoltrare le trame verso i domini giusti, il bridge mantiene una tabella di indirizzi MAC per ciascuna porta, e in base al suo contenuto è in grado di capire verso quale porta, e quindi quale dominio, inoltrare la trama. La tabella può essere creata manualmente dall'amministratore di rete attraverso apposito software residente, oppure può essere creata automaticamente tramite un meccanismo di auto-apprendimento. Tale apprendimento può essere ancora più sofisticato per cui il bridge cancella un indirizzo dopo un certo periodo di tempo in cui non viene usato (tempo di invecchiamento) evitando l'aggiornamento manuale. In pratica i bridge sono sempre più dispositivi plug-and-play per cui si parla di bridge trasparenti. Il comportamento del bridge è simile a quello dello switch, ma il suo ruolo nell'architettura di una rete è analogo a quello del repeater. Infatti un bridge possiede al massimo una decina di porte, mentre uno switch può arrivare fino ad alcune centinaia nei modelli più complessi. Un bridge viene quindi utilizzato per connettere diversi segmenti di rete, ciascuno dei quali è costituito potenzialmente da molti host, sostituendo il repeater, mentre uno switch viene collegato direttamente ai singoli host. Entrambi i dispositivi riducono la dimensione dei domini di collisione. Lo switch arriva all'estremo di ridurre una parte della rete ad un insieme di domini di collisione di ridotte dimensioni, al limite costituiti ciascuno da un singolo nodo. Questa situazione consente di ridurre drasticamente le collisioni, ma la contropartita è la grande quantità di cavi necessaria a collegare ogni singolo nodo allo switch, piuttosto che i nodi ad alcuni hub e questi ultimi allo switch. Spanning tree Il punto debole in una LAN è proprio il nodo di interconnessione in quanto se un bridge si guasta la LAN viene scollegata dal resto della rete. Per ovviare a questo inconveniente, quindi, si possono creare percorsi multipli ridondanti, ma si ricade in un altro problema perché i frame rischiano di seguire dei percorsi ciclici e moltiplicarsi. Il problema si evita con la creazione automatica di uno spanning tree, cioè di un sottogruppo della rete privo di anelli. Router Il router assomiglia molto ad un bridge nella sua funzionalità, ma varia lo strato di protocollo in cui opera. Router Moderno router Nella tecnologia delle reti informatiche un router, in inglese letteralmente instradatore, è un dispositivo di rete che si occupa di instradare pacchetti tra reti diverse ed eterogenee. Un Router lavora al livello 3 (rete) del modello OSI, ed è quindi in grado di interconnettere reti di livello 2 eterogenee, come ad esempio una LAN ethernet con un collegamento geografico in tecnologia frame relay o ATM. La funzione di instradamento è basata sugli indirizzi di livello 3 (rete) del modello OSI, a differenza dello switch che instrada sulla base degli indirizzi di livello 2 (collegamento). Gli elementi della tabella di instradamento non sono singoli calcolatori ma reti locali. Questo permette di interconnettere grandi reti senza crescite incontrollabili della tabella di instradamento. Rispetto ai bridge, infatti, i router operando a livello 3 non utilizzano il MAC address ma l'indirizzo IP per cui vanno configurati e non sono plug and play. 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 si scambiano periodicamente fra loro informazioni su come raggiungere le varie reti che collegano l'un l'altro, che poi usano per ricavare ed aggiornare delle tabelle di instradamento interne da consultare ogni volta che devono smistare i pacchetti di dati in arrivo. Rispetto ad un bridge, il router blocca le tempeste broadcast e razionalizza meglio le connessioni tra host posti su segmenti diversi. Per fare questo sono stati messi a punto dei protocolli di routing appositi, come l'OSPF e il BGP, attraverso i quali i router si scambiano informazioni sulle reti raggiungibili. Alcuni router possiedono anche un firewall incorporato, poiché il punto di ingresso/uscita di una rete verso l'esterno è ovviamente il luogo migliore dove effettuare controlli sui pacchetti in transito. Si vanno sempre più diffondendo router che incorporano la funzionalità di access point per reti wireless. I router possono essere normali computer che fanno girare un software apposito (gateway), o sempre più spesso - apparati specializzati, dedicati a questo solo scopo. I router di fascia più alta sono basati su architetture hardware specializzate per ottenere prestazioni wire speed, letteralmente alla velocità della linea. Questo significa che un router wire speed può inoltrare pacchetti alla massima velocità delle linee a cui è collegato. Costruttori di router Fra i più importanti si annoverano: • 3Com • Pivotal Networking • Alcatel • Allied Telesyn • Atlantisland (www.atlantis-land.com) • Belkin • Buffalo Technology • Cisco Systems, Inc.(www.cisco.com) • D-Link Systems • Enterasys Networks • Hawking Technologies • Hewlett-Packard • Huawei Technologies • Juniper Networks • Linksys • Mikrotik • Motorola • NETGEAR • Nortel • Roper • Siemens AG • Sitecom (www.sitecom.com) • SMC Networks • Tellabs • MRV Communications • U.S. Robotics (www.usr.com) • Zoom Telephonics (www.zoom.com) • Trendware (www.trendware.com) • ZyXEL (www.us.zyxel.com) Switch Scheda madre di uno 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. Premessa A differenza di quanto farebbe un hub, uno switch inoltra i frame in arrivo da una qualsiasi delle sue porte soltanto a quella cui è collegato il nodo destinatario del frame. Due nodi possono comunicare attraverso uno switch come se questo non ci fosse, ovvero il suo comportamento è trasparente. L'inoltro selettivo dei frame permette a più frame di attraversare contemporaneamente lo switch, e quindi la banda totale disponibile non viene ridotta. In una connessione di questo tipo si dice che l'host ha un accesso dedicato al commutatore. Uno switch possiede 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 datalink del modello di riferimento ISO/OSI. Tra uno switch e un bridge esistono le seguenti differenze: • maggiore espandibilità in termini di numero di porte • performance migliori Inoltre uno switch di fascia alta fornirà le seguenti caratteristiche: • supporto di più istanze del protocollo Spanning Tree; • supporto di LAN virtuali (VLANs) secondo lo standard 802.1Q • mirroring delle porte • supporto della QoS (Quality of Service). Il ritardo introdotto da uno switch è generalmente di pochi microsecondi, quindi quasi ininfluente. Questo è valido per tutte e tre i metodi di instradamento Utilizzo dello switch Storicamente lo switch è stato introdotto per ridurre le collisioni nelle reti Ethernet (ora IEEE 802.3). L'uso esclusivo di switch per collegare nodi (con esclusione di hub e bridge) consente di aumentare l'efficienza di una tipica rete 10Base-T di un fattore 10, portandola dunque a competere con una più costosa rete 100Base-T provvista esclusivamente di hub, e quindi con topologia logica a bus. Normalmente uno switch non è in grado di interconnettere reti di livello 2 eterogenee, ad esempio una rete Ethernet con una Token Ring, a meno che non si tratti di un cosiddetto "switch transazionale", mentre può interconnettere ad esempio reti ethernet con velocità o tecnologie fisiche diverse. Nel gergo delle reti, uno switch separa i domini di collisione connessi alle sue porte, ovvero se due calcolatori collegati 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). Instradamento Per decidere su quale porta inoltrare un frame ricevuto, uno switch deve possedere una funzione di instradamento. Questa è basata sull'apprendimento passivo degli indirizzi sorgente dei frame inoltrati ("transparent learning"), attraverso il quale lo switch impara su quale porta si trova un determinato indirizzo. 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 crea un unico dominio di broadcast. La complessità del comportamento di uno switch è compensata dalle migliori prestazioni ottenibili. Il fatto che i frame vengano ritrasmessi selettivamente ha anche delle implicazioni di sicurezza informatica, in quanto evita che un calcolatore possa facilmente intercettare (sniffare) il traffico diretto ad un altro. Esistono comunque tecniche raffinate che permettono lo sniffing anche in presenza di switch, come l'ARP Poisoning o lo Switch Flooding, per cui uno switch non deve essere considerato come una protezione inattaccabile contro i rischi di intercettazione. Struttura interna Switch modulare a 24 porte Internamente, uno switch è costituito da alcune schede munite di porte. Ad ogni porta può essere connesso un nodo, che può essere una stazione o un hub o altro dispositivo di rete. Quando un nodo A cerca di comunicare con un nodo B, il comportamento dello switch dipende dalla scheda cui è collegato B: • se B è collegato ad una porta sulla stessa scheda cui è collegato A, la scheda stessa inoltra i frame in arrivo su tale porta; • se B è collegato ad una scheda diversa da quella cui è collegato A, la scheda invia i frame ad un canale di trasmissione interno detto backplane, caratterizzato da elevata velocità (tipicamente sull'ordine del Gbps), che provvede a consegnare il frame alla scheda giusta. L'intelligenza necessaria a gestire le porte di ingresso e di uscita (riconoscere i frame, estrarre gli indirizzi sorgente e destinazione, trasmetterli) è distribuita sulle singole schede. Spesso su alcune porte possono essere montati trasduttori di tipo diverso per risolvere diversi tipi di esigenze (si veda ad esempio la ricchezza di tecnologie di livello fisico disponibili per IEEE_802.3). Questa possibilità viene tipicamente utilizzata per aggiungere ad uno switch 100Base-TX una o due porte di tipo 1000Base-X per il collegamento verso il resto della rete (uplink) o per un server veloce. Alcuni switch hanno una costruzione modulare, ovvero le schede possono essere montate dal gestore, per modulare il numero di porte a disposizione o per utilizzare porte di tipo diverso. Anche se non è molto conveniente, è possibile realizzare uno switch anche con un comune computer dotato di più interfacce di rete. Metodi di instradamento Esistono 3 tipologie di instradamento che possono essere utilizzate da uno switch: • cut-through • store-and-forward • fragment-free Nella prima tipologia lo switch si limita a leggere l'indirizzo MAC del destinatario e quindi manda il contenuto del frame contemporaneamente alla sua lettura. In questo caso l'invio dei frame non attende la ricezione completa dello stesso. Questo tipo di switch è quello con latenza minore. Negli switch store-and-forward invece viene letto l'intero frame e ne viene calcolato il CRC confrontandolo con il campo FCS all'interno del frame. Solo se i due valori corrispondono il frame viene mandato al destinatario, altrimenti non viene trasmesso. Questi tipi di switch consentono di bloccare frame contenenti errori ma hanno una latenza maggiore. L'ultima tipologia è un compromesso tra le due precedenti in quanto si leggono i primi 64 bytes del frame in modo da rilevare solo alcune anomalie nel frame. Gli switch fragment-free e cut-through possono essere impiegati solamente nello switching simmetrico ovvero dove trasmettitore e ricevitore operano alla stessa velocità, gli switch store-andforward invece consentono anche lo switching asimmetrico. Le tre tipologie si differenziano solo se il buffer di trasmissione è vuoto e se il link di uscita è libero. Nel caso contrario le tre tipologie si riducono all'unica store-and-forward. Gestione Uno switch di fascia medio-alta è tipicamente dotato di un agente di gestione, ovvero un piccolo programma software che permette di controllarne e monitorarne il funzionamento. Questo è accessibile sia attraverso una porta seriale (gestione out-of-band) che attraverso la stessa rete ethernet (gestione in-band). In questo caso, all'agente di gestione viene normalmente assegnato un indirizzo IP, e questo risponde ai protocolli SNMP, telnet e/o ssh, HTTP. Uno switch gestito permette tipicamente di accedere da remoto a queste funzionalità: • interrogazione dello stato delle porte (permette di sapere se c'è un nodo collegato, e a quale velocità) • statistiche di traffico e di errori per ciascuna porta (permette di identificare i nodi più attivi e i collegamenti malfunzionanti) • interrogazione della tabella di instradamento (permette quindi di sapere a quale porta è collegato il nodo che ha un certo MAC address) • interrogazione e modifica dei parametri di configurazione, ad esempio VLAN, Spanning Tree • modifica dello stato amministrativo di una porta (permette di escludere dalla rete un nodo malfunzionante, o che non rispetti le policy della rete) Hub . Schema di una rete a stella utilizzante un Hub Nella tecnologia delle reti informatiche, un hub (letteramente in inglese fulcro, mozzo) 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 Ethernet, 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 viene ridotta ad una frazione di quella originaria, a causa del moltiplicarsi dei dati inviati. Il ritardo introdotto da un hub è generalmente di pochi microsecondi, quindi quasi ininfluente. Schema di LAN connessa con hub La semplicità del comportamento di uno hub ne fa uno dei componenti più economici per costruire una rete. Uno switch, che si comporta in modo simile ad un hub ma con una maggiore intelligenza, in modo da non sprecare gran parte della banda, è leggermente più complicato e costoso. 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. 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à. Inoltre, a causa di questa sua semplice funzione, non è possibile connettere segmenti Ethernet di tipologia e di velocità diversa in quanto l'hub non è neanche fornito di buffer. In pratica la LAN nel suo complesso va vista come un'unica rete. Gateway Il gateway (dall'inglese, portone, passaggio) è un dispositivo di rete che opera al livello di rete e superiori del modello ISO/OSI. Il suo scopo principale è quello di veicolare i pacchetti di rete all'esterno della rete locale (subnet). Da notare che gateway è un termine generico che indica il servizio di inoltro dei pacchetti verso l'esterno; il dispositivo hardware che porterà a termine questo compito è tipicamente un router. Nelle reti più semplici è presente un solo gateway che inoltra tutto il traffico diretto all'esterno verso la rete internet. In reti più complesse in cui sono presenti parecchie subnet, ognuna di queste fa riferimento ad un gateway che si occuperà di instradare il traffico dati verso le altre sottoreti o a rimbalzarlo ad altri gateway. Spesso i gateway non si limitano a fornire la funzionalità di base di routing ma integrano altri servizi come proxy DNS, firewall, Network address translation (NAT), etc Principio di funzionamento • Un computer connesso alla rete locale confronta l'indirizzo di destinazione dei dati da inviare con la subnet mask: o se corrispondono, significa che il computer di destinazione è sulla stessa rete locale; o se invece non corrispondono, il computer d'origine invia i dati al gateway predefinito, il quale si occuperà del loro successivo instradamento verso la rete remota di destinazione! Approfondimenti • Per ulteriori informazioni sulla logica di instradamento vedere la voce router. • Per decidere dove instradare il traffico, i gateway si avvalgono dei protocolli di routing. Protocollo di rete Nell'ambito delle telecomunicazioni, due o più macchine o host (computer, telefono, stampante, ecc...) possono comunicare tra loro rispettando norme che sono dette protocolli di rete. L'aderenza ai protocolli garantisce che due macchine possano comunicare correttamente, anche se sono state realizzate indipendentemente. Servizio con e senza connessione Quando un client e un server iniziano a comunicare si possono scambiare pacchetti di controllo prima di spedire i dati reali. Queste procedure dette di handshaking preparano le due componenti alla comunicazione. Tali procedure sono alla base, ad esempio, del TCP. Tuttavia possono anche esserci servizi che inviano direttamente i dati come nel caso dell'UDP. La maggior parte delle applicazioni, tuttavia, ha bisogno di inviare i dati in maniera sicura e affidabile per cui l'handshake serve proprio a questo compito. Si comprende come la connessione con TCP, ad esempio, sia più sicura ma anche più lenta perché scambia non solo dati reali, ma anche dati di servizio. I Livelli Ciascun protocollo regola normalmente solo una parte degli aspetti di una comunicazione. I diversi protocolli sono organizzati con un sistema detto "a livelli" : a ciascun livello viene usato uno specifico protocollo. La divisione in livelli è fatta in modo che ciascun livello utilizzi i servizi offerti dal livello inferiore, e fornisca servizi più "ricchi" al livello superiore. I diversi livelli in un host comunicano tra loro tramite le interfacce (figura 2). Ogni livello parla solo con quello immediatamente superiore e con quello immediatamente inferiore. I protocolli regolano invece la comunicazione tra due entità dello stesso livello, che serve a fornire servizi al livello superiore. I vari livelli sono organizzati in pile di protocolli (figura 3). Le pile di protocolli sono un modo flessibile per combinare componenti per realizzare un servizio. Un esempio reale di una organizzazione a livelli protocollari, classico nelle trattazioni inerenti le reti di calcolatori, è quello del percorso di una valigia in un viaggio aereo partendo dalla casa di origine all'hotel di destinazione. Il primo livello che notiamo è quello della preparazione della valigia: il turista prende i vestiti e ve li ripone per poi chiuderla, come ciò viene fatto è definito dal protocollo del primo livello. Il secondo livello è quello dell'addetta alla valigie all'aeroporto di partenza, il turista le consegna la valigia (passaggio dal primo al secondo livello) e l'addetta attacca alla valigia le informazioni relative al volo e alla destinazione. Qui notiamo l'aspetto fondamentale dell'organizzazione a livelli protocollari, cioè che per l'addetta non è necessario conoscere come i vestiti sono stati riposti nella valigia, altresì non è necessario per il turista conoscere le operazioni che deve effettuare l'addetta, infatti il turista otterra ciò che vuole (avere i vestiti all'hotel d'arrivo) senza che ciò influisca affatto come gli altri protocolli debbano lavorare, a patto che lo facciano correttamente. La struttura serve ad adempiere ad alcuni compiti: • controllo dell'errore; • controllo del flusso; • frammentazione e riassemblaggio; • multiplexing, in modo che sessioni dello strato più alto possano condividere una singola connessione dello strato più basso; • instaurazione della connessione. Tale architettura presenta vantaggi concettuali e strutturali anche se alcuni si sono opposti in maniera decisa in quanto uno strato spesso duplica le funzionalità di un altro strato in maniera ripetitiva. Ad esempio, il servizio di ADSL viene fornito con diverse modalità, le più comuni sono chiamate PPP over ATM (ovvero il protocollo Point to Point usa i servizi forniti dal protocollo ATM) e PPP over Ethernet. fig.1 Il livello più basso (1) è detto "livello fisico" e si occupa di gestire la trasmissione dei segnali attraverso il mezzo di trasporto (cavo, fibra ottica, infrarossi, ecc...). Il livello più elevato è chiamato "livello applicativo" ed è quello che permette all'utente di creare il messaggio da comunicare. La divisione in livelli è piuttosto rigida a livello di specifica dei protocolli, mentre nell'implementazione spesso diversi livelli vengono implementati insieme in uno stesso modulo software. Non è detto che due macchine che comunicano usino la stessa pila di protocolli. Ad esempio, se vi connettete ad internet attraverso un modem voi appoggiate il livello di rete IP su una connessione PPP, mentre il server a cui vi collegate probabilmente appoggia la rete IP su una connessione ethernet. In una rete a pacchetto ciascun livello della "pila protocollare" aggiunge ai pacchetti una intestazione, attraverso una operazione detta imbustamento. Il termine si applica anche ad alcune reti a commutazione di circuito, come SDH, dove l'imbustamento è un circuito dedicato a trasmettere informazioni di controllo. L'OSI L'International Standard Organization (ISO) nel 1979 ha stabilito il protocollo Open Systems Interconnection (OSI), con l'intenzione di creare uno standard per le telecomunicazioni da usare nelle reti di tutto il mondo. All'atto pratico però, lo standard de facto che viene comunemente usato nella maggior parte delle reti, è il TCP/IP, definito nella RFC 1155. Le differenze fondamentali dei due standard sono semplici: il primo è stato definito a tavolino da un'organizzazione super partes, mentre il secondo è opera di chi costruì materialmente le prime reti, sviluppandolo sul campo. Inoltre, lo standard ISO/OSI assegna un determinato compito ad ogni livello, mentre il TCP/IP è più "elastico" e permette di sviluppare protocolli che svolgono più di un compito-base. Elenco di protocolli di rete secondo ISO/OSI Nella seguente suddivisione, si segue lo standard ISO/OSI. Tale classificazione ha ormai solo un valore concettuale, ed infatti i protocolli elencati sono usati principalmente in combinazione con la suite TCP/IP. Bisogna anche osservare che IP, per la sua natura di protocollo di inter-networking, utilizza protocolli che hanno le caratteristiche di un protocollo di rete, come ATM o frame relay, per realizzare la funzione corrispondente al livello di collegamento. Quindi IP, come viaggia su ethernet, può viaggiare su ATM o frame-relay. Proprio per questo, motivo Internet è detta "rete delle reti". • • • • Livello 1: fisico o Bluetooth o DSL Digital Subscriber Line o FDDI o RS-232 o UWB Ultra Wide Band Livello 2: datalink o Ethernet o PPP Point to Point Protocol o Token ring o Wi-Fi Livello 3: rete o IP Internet Protocol o IPX o ATM o frame relay o X.25 Livello 4: trasporto o TCP e UDP (usati su IP) o SPX (usato su IPX) o NetBIOS • Livello 5: sessione • Livello 6: presentazione • Livello 7: applicazione o protocolli di servizio: DHCP Dynamic Host Configuration Protocol DNS Domain Name Service Finger Servizio unix che fornisce informazioni sugli utenti o o o NTP Network Time Protocol SNMP Simple Network Management Protocol LDAP Lightweight Directory Access Protocol protocolli di accesso a terminali remoti Telnet SSH Secure SHell protocolli usati per realizzare il servizio di posta elettronica e newsgroup SMTP Simple Mail Transfer Protocol POP Post Office Protocol IMAP Internet Message Access Protocol NNTP Network News Transfer Protocol protocolli di trasferimento file FTP File Transfer Protocol HTTP HyperText Transport Protocol IRC Internet Relay Chat Gnutella Condivisione file peer-to-peer I livelli in maniera tangibile I livelli visti precedentemente sono una suddivisione concettuale, ma la loro implementazione non è uniforme, infatti il livello fisico e quello di collegamento di solito sono presenti sulla scheda di interfaccia della rete, mentre il livello di rete ha un'implementazione mista hardware-software. TCP/IP Nei primi anni settanta, la Defence Advanced Research Project Agency (DARPA) finanziò l'Università di Stanford e la BBN (Bolt, Beranek and Newman) per lo sviluppo di un insieme di protocolli di comunicazione da utilizzarsi per lo sviluppo di reti a commutazione di pacchetto, per l'interconnessione di calcolatori eterogenei. Fu così che nacque l'Internet Protocol Suite i cui due protocolli più noti sono il TCP (Trasmission Control Protocol) e l'IP (Internet Protocol). Si fa riferimento a questa architettura di rete con la sigla TCP/IP o IP/TCP (quasi mai usata). I creatori di tali protocolli di trasmissione, tuttora utilizzati nel web, sono nello specifico Robert Kahn e Vinton Cerf, a cui l'attuale Presidente degli Stati Uniti George W. Bush ha consegnato la Presidential Medal of Freedom, ovvero la più alta tra le onorificenze civili a stelle e strisce, il 9 novembre 2005. I due studiosi non sono nuovi a questo genere di premiazioni: all’inizio del 2005 è stato assegnato loro il prestigioso 2004 A.M. Turing Award, equivalente del Premio Nobel nel settore dell’Information Technology. Cerf e Kahn hanno sviluppato lo standard per la trasmissione di pacchetti via web nel lontano 1973, mentre lavoravano a un progetto di sviluppo dei sistemi di comunicazione voluto dalla DARPA (Defense Advanced Research Projects Agency). Attualmente Vint Cerf, collabora con Google alla creazione degli standard per le future applicazioni e nel frattempo si dedica allo sviluppo di nuovi protocolli di comunicazione interplanetaria per il Jet Propulsion Lab della Nasa. Robert Kahn, invece, dopo 13 anni di servizio presso la DARPA è diventato presidente della Corporation for National Research Initiatives (CNRI). Questi protocolli, utilizzabili gratuitamente da tutti perché di pubblico dominio fin dall'inizio, ottennero un elevato successo (utilizzati da un gruppo di ricercatori per ARPAnet). Questo genera alcune ambiguità dovute al fatto che il nome più corretto sarebbe Internet Protocol Suite. Per esempio succede di sentir parlare di servizi basati su TCP/IP anche quando in realtà, invece di TCP, viene usato un protocollo alternativo, UDP, anch'esso appartenente all'Internet Protocol Suite. 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 sharing, mentre l'UDP prende sempre più piede per le applicazioni in tempo reale come l'on-line gaming o lo streaming audio e video; la differenza fra i due protocolli risiede nella maggiore affidabilità nel trasporto dei dati di 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. Si tenga quindi sempre presente che la sigla TCP/IP è di utilizzo talmente comune da essere utilizzata, talvolta, anche quando esistono termini più corretti alternativi. TCP/IP è l'architettura adottata dalla rete internet. Negli anni novanta, nonostante la sua età, è stata (più o meno paradossalmente) l'unica architettura che ha interessato il mercato, al punto che gli enti di standardizzazione, di fronte al fatto compiuto della sua massiccia diffusione hanno dovuto darle la stessa dignità di ISO/OSI. Internet Protocol L'Internet Protocol (IP) è un protocollo di rete a pacchetto; secondo la classificazione ISO/OSI è di livello rete (3). La versione correntemente usata del protocollo IP è detta anche IPv4 per distinguerla dalla più recente IPv6, nata dall'esigenza di gestire meglio il crescente numero di computer connessi ad Internet. IP è un protocollo di interconnessione di reti (Inter-Networking Protocol), nato per interconnettere reti eterogenee per tecnologia, prestazioni, gestione. I protocolli di trasporto utilizzati su IP sono soprattutto TCP e UDP. Indirizzo IP Un Indirizzo IP è un numero che identifica univocamente i dispositivi collegati con una rete informatica che utilizza lo standard IP (Internet Protocol). Ciascun dispositivo (router, computer, server di rete, stampanti, alcuni tipi di telefoni,...) ha, quindi, il suo indirizzo. In un certo senso un indirizzo IP può essere visto come l'equivalente di un indirizzo stradale o un numero telefonico dei dispositivi collegati su internet. 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 una rete. In particolare, all'interno di una rete ad ogni interfaccia connessa alla rete fisica viene assegnato un indirizzo univoco, in modo da rendere possibili le comunicazioni tra un computer e l'altro. Va considerato, infatti, che non è l'host ad essere connesso ma è l'interfaccia fisica (ad esempio una scheda di rete); un router, ad esempio, ha diverse interfacce e per ognuna occorre un indirizzo IP. Tuttavia è da tener presente che a livello mondiale e nazionale i primi provider di connessione internet si sono accapparrati un numero sproporzionato di indirizzi IP. I provider che si sono affacciati dopo sul mercato hanno ovviato a questo stato di cose considerando i propri utenti di una medesima città come una unica LAN, dotato di un solo IP. Un caso clamoroso è l'utenza fibra di Fastweb di Milano. E' perciò foriero di gravi equivoci considerare l'IP come identificativo dell'utente. Dal prompt di DOS o relativi emulatori è possibile conoscere l'indirizo IP del proprio computer, digitando il comando "IP config". Tale comando restituisce indirizzo IP e subnet mask del nodo di rete. Nei sistemi operativi Windows, l'emulatore del DOS è accessibile dal percorso Start/Esegui, digitando "cmd". Domain Name System Il DNS è un servizio di directory, utilizzato soprattutto per la risoluzione di nomi di Host in indirizzi IP. Questa funzione è essenziale per l'usabilità di Internet, visto che gli esseri umani preferiscono ricordare nomi testuali, mentre gli Host ed i router sono raggiungibili utilizzando gli indirizzi IP. Permette inoltre ad una qualsiasi entità di cambiare o riassegnare il proprio indirizzo IP, senza dover notificare tale cambiamento a nessuno, tranne che al proprio server DNS di riferimento. Un'altra delle peculiarità del DNS è quella di consentire, ad esempio ad un sito web, di essere ospitato su più server (ognuno con il proprio indirizzo IP), con una conseguente divisione del carico di lavoro. Ad esempio, www.wikipedia.org viene risolto in 207.142.131.248. Indirizzamento IP statico e dinamico Gli indirizzi IP possono essere assegnati in maniera permanente (ad esempio ad un server che si trova sempre allo stesso indirizzo) oppure in maniera temporanea, da un insieme di indirizzi disponibili. Indirizzi dinamici Gl indirizzi dinamici vengono utilizzati per indentificare dispositivi non permanenti come ad esempio: personal computer o client. Gli Internet Service Provider (ISP) utilizzano l'allocazione dinamica per assegnare un ristretto numero di indirizzi ad una vasta clientela. Questo sistema viene utilizzato soprattutto per gli accessi dial-up, Wi-fi o in qualsiasi altro accesso temporaneo permettendo, ad esempio ad un Notebook, di connettersi ad un'amplia varietà di servizi senza la necessità di dover conoscere i dettagli di indirizzamento di ogni rete. L'indirizzamento dinamico richiede la presenza di un server in grado di accettare richieste ed assegnare indirizzi. L'indirizzamento puo' avvenire in maniera casuale, oppure in basa ad una determinata politica. Il protocollo più comunemente utilizzato per assegnare indirizzi dinamicamente è il DHCP. DHCP viene utilizzato soprattutto in reti locali, in particolare su Ethernet. In altri contesti, funzioni simili sono svolte all'interno di PPP. Indirizzi statici Gli indirizzi statici vengono utilizzati per identificare dispositivi semi-permanenti con indirizzo IP costante. I Server utilizzano tipicamente questo metodo di indirizzamento. L'indirizzo statico puo' essere configurato direttamento sul dispositivo, oppure come parte di una configurazione DHCP che associa a l'Indirizzo MAC, il corrispondente indirizzo IP statico. Versioni L'Internet Protocol (IP) utilizza due versioni di indirizzamento IP: IPv4 e IPv6. Quella a cui ci si riferisce quando si parla di "indirizzo IP" è la IPv4 , quella più comunemente utilizzata oggigiorno. IPv4 L'indirizzo IPv4 è costituito da 32 bit (4 byte), viene descritto con 4 numeri decimali rappresentati su 1 byte (quindi ogni numero varia tra 0 e 255) separati dal simbolo "punto". Un esempio di indirizzo IPv4 è 195.24.65.215. Questa rappresentazione limita lo spazio di indirizzamento a 4,294,967,296 indirizzi univoci possibili. A questo numero di indirizzo vanno tuttavia sottratti i circa 18.000.000 di indirizzi che vengono utilizzati per le reti locali. Per ovviare al problema della mancanza di indirizzi IP dovuta alla costante crescita di Internet è stato inventato IPv6. IPv6 L'indirizzo IPv6 è costituito da 128 bit (16 byte), viene descritto da 8 numeri esadecimali rappresentati su 2 byte ciascuno (quindi ogni numero varia tra 0 e 65535) separati dal simbolo "due punti". Un esempio di indirizzo IPv6 è 2001:0DB8:0000:0000:0000:0000:0000:0001, che può essere abbreviato in 2001:DB8::1 (i due punti doppi stanno a sostituire la parte dell'indirizzo che è composta di soli zeri consecutivi. Si può usare una sola volta, per cui se un indirizzo ha due parti composte di zeri la più breve andrà scritta per esteso). Il numero di indirizzi univoci disponibili in IPv6 è questi ve ne sono di riservati. , ma anche di FTP L'FTP, acronimo di File Transfer Protocol (protocollo di trasferimento file), è un servizio che fornisce gli elementi fondamentali per la condivisione di file tra host. Gli obiettivi dell'FTP sono: 1. promuovere la condivisione di file (programmi o dati) 2. incoraggiare l'uso indiretto o implicito (tramite programma) di computer remoti 3. salvaguardare l'utente al variare dei sistemi di stoccaggio file, tra un host e l'altro 4. trasferire dati in maniera affidabile ed efficiente L'FTP ha subito una lunga evoluzione negli anni: il primo meccanismo di trasmissione file risale al 1971, fu sviluppato presso il MIT. Il modello Dove: • PI (protocol interpreter) è l'interprete del protocollo • DTP (data transfer process) è il processo di trasferimento dati, che stabilisce e gestisce la connessione dati. Può essere attivo o passivo. • Server PI è il PI del server, che ascolta la porta L in attesa di una connessione dallo User PI e stabilisce la connessione di controllo della comunicazione. Riceve comandi standard FTP dallo User PI, manda risposte e governa il Server DTP. • Server DTP è il DTP del server, che nello stato normale attivo stabilisce la connessione con la porta in ascolto. Setta i parametri per il trasferimento e lo stoccaggio, e trasferisce i dati a comando. Può essere messo in stato passivo per ascoltare, piuttosto che iniziare una connessione sulla porta dati. L'FTP usa il TCP per creare una connessione per le informazioni di controllo (detta out of band in quanto 'secondaria' a quella dati), poi crea una seconda connessione sempre TCP per il trasferimento dei dati. La connessione di controllo usa telnet per scambiare comandi e messaggi tra host. Comandi Nome Abort Comando Parametri Account ACCT <accountinformation> Allocate ALLO <decimalinteger> Append (with create) APPE <pathname> Change to parent directory Change working directory Delete Help ABOR CDUP Descrizione Termina la connessione per il trasferimento dei dati Alcuni server richiedono un account per accessi specifici, ad esempio per memorizzare file Alcuni server lo richiedono per riservare spazio sufficiente per contenere i nuovi file da trasferire Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli in un file. Se il file esiste già i dati vengono aggiunti, altrimenti il file viene creato ex-novo Cambia la directory di lavoro corrente con quella di livello superiore CWD <pathname> Cambia la directory di lavoro sul server DELE <pathname> HELP <string> List LIST <pathname> Trasfer mode MODE <mode-code> Make directory Name list MKD <pathname> NLST <pathname> Noop NOOP Password PASS Passive PASV Data port PORT Print working directory PWD Logout QUIT Reinitialize REIN Cancella dal server il file specificato Restituisce informazioni sul comando specificato Se l'argomento indica un file, elenca le proprietà del file; se l'argomento è una directory, il server trasferisce una lista di file nella directory Modalità di trasferimento (S=stream, B=block, C=compressed). Il valore di default è S Crea sul server la directory indicata Elenca il contenuto della directory indicata Indica nessuna azione tranne l'invio di un Ok dal server Completa, per alcuni server, l'identificazione dell'utente. Deve essere immediatamente preceduta dal comando USER Mette il server in ascolto su una porta che non è quella predefinita in attesa di una connessione dati Indirizzo internet dell'host e indirizzo TCP della porta, per la connessione dati Nella risposta viene indicato il nome della directory corrente Disconnette l'utente e chiude la connessione di controllo. Se i file sono ancora in trasferimento, attende che terminino prima di chiudere le connessioni Resetta tutti i parametri, termina le connessioni dati ma mantiene quelle di controllo ed aspetta un comando USER <password> <host-port> Restart REST <marker> Retrieve RETR <pathname> Remove directory RMD <pathname> Rename from RNFR <pathname> Rename to RNTO <pathname> Site parameters SITE <string> Structure mount SMNT <pathname> Status STAT <pathname> Store STOR <pathname> Store unique STOU <pathname> File structure STRU <structurecode> System Representation type SYST TYPE <type-code> User Name USER <username> Riprende il trasferimento file dall'offset indicato Obbliga il server a spedire una copia del file all'utente/server dall'altra parte della connessione Rimuove dal server la directory specificata Indica il vecchio nome del file da rinominare. Deve essere immediatamente seguito da un RNTO Indica il nuovo nome del file da rinominare, indicato dal comando RNFR immediatamente precedente Comando usato dal server per fornire servizi specifici del suo sistema che sono essenziali per il trasferimento dei file ma non sufficientemente universali per essere inclusi come comandi del protocollo Inserisce la struttura di file specificata È una risposta inviata dal server: durante il trasferimento di file contiene lo stato dell'operazione, oppure tra un trasferimento e l'altro e allora ha lo stesso significato del comando LIST Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli con un nome univoco Codice della struttura dati (F=file, R=record, P=page). Il valore di default è F Restituisce il sistema operativo in uso sul server Tipo di rappresentazione dei dati (A=ASCII, E=EBCDIC, I=binary). Il valore di default è A Identificazione dell'utente richiesta dal server per poter accedere al suo file system DHCP Il DHCP, acronimo dall'inglese Dynamic Host Configuration Protocol (protocollo di configurazione dinamica degli indirizzi) è il protocollo usato per assegnare gli indirizzi IP ai calcolatori di una rete. DHCP sostituisce - ed è compatibile verso il basso con - l'ormai quasi obsoleto BOOTP. In una rete basata sul protocollo IP, ogni calcolatore ha bisogno di un indirizzo IP, scelto in modo tale che appartenga alla sottorete a cui è collegato e che sia univoco, ovvero che non ci siano altri calcolatori che stiano già usando quell'indirizzo. Il compito di assegnare manualmente gli indirizzi IP ai calcolatori comporta un rilevante onere per gli amministratori di rete, soprattutto in reti di grandi dimensioni o in caso di numerosi computer che si connettono a rotazione solo ad ore o giorni determinati. Inoltre gli indirizzi IPv4 (attualmente usati nella quasi totalità delle reti al mondo) con l'aumentare dei computer connessi ad Internet hanno cominciato a scarseggiare, diminuendo la disponibilità di IP fissi. DHCP viene utilizzato soprattutto in reti locali, in particolare su Ethernet. In altri contesti, funzioni simili sono svolte all'interno di PPP. Parametri gestiti da DHCP Il protocollo DHCP può essere usato anche per assegnare al computer diversi parametri necessari per il suo corretto funzionamento sulla rete a cui è collegato. Tra i più comuni si possono citare: • Maschera di sottorete • Default Gateway • Indirizzi dei server DNS • Nome di dominio DNS di default • Indirizzi dei server WINS • Indirizzi dei server NTP • Indirizzo di un server tftp e nome di un file da caricare per calcolatori che caricano dalla rete l'immagine del sistema operativo. Nel protocollo c'è comunque il supporto per assegnare tramite DHCP molti altri parametri, e anche per definire localmente nuovi parametri, ma questa possibilità non viene ampiamente usata. componenti del protocollo Il Client DHCP è un calcolatore che ha bisogno di ottenere un indirizzo IP valido per la sottorete a cui è collegato, e anche il programma che si occupa di richiedere l'indirizzo IP e configurarlo. Il Server DHCP è il calcolatore che assegna gli indirizzi IP, e anche il processo che svolge questa funzione. Talvolta questa funzione è incorporata in un router. Il DHCP relay è il calcolatore (o più spesso una funzione implementata in un router) che si occupa di inoltrare le richieste DHCP ad un server, qualora questo non sia sulla stessa sottorete. Questo componente è necessario solo se un server DHCP deve servire molteplici sottoreti. Deve esistere almeno un DHCP relay per ciascuna sottorete servita. Ogni relay deve essere esplicitamente configurato per inoltrare le richieste a uno o più server. Richiesta e attribuzione dell'indirizzo DHCP utilizza il protocollo UDP, le porte registrate sono la 67 per il server e la 68 per il client. Quando un calcolatore vuole ottenere un indirizzo tramite DHCP, attiva il processo DHCP client. In questo momento, il calcolatore non ha un indirizzo IP valido, quindi non può usare tutte le funzionalità della rete. Esso invia quindi un pacchetto chiamato DHCPDISCOVER in broadcast sulla sottorete, con indirizzo IP sorgente messo convenzionalmente a 0.0.0.0, e destinazione 255.255.255.255. Tutti i server DHCP attivi sulla sottorete ricevono direttamente questo pacchetto, e possono rispondere (o meno) con un pacchetto di DHCPOFFER, in cui propongono un indirizzo IP al client. Questo pacchetto è indirizzato direttamente all'indirizzo di livello livello datalink del client (che non ha ancora un indirizzo IP), per cui può essere inviato solo da un server che si trovi sulla stessa sottorete. Se sulla sottorete ci sono anche uno o più DHCP relay, questi inoltrano il pacchetto al loro server di riferimento, che può rispondere allo stesso modo attraverso il relay. Il relay agent informa il server della sottorete da cui ha ricevuto il pacchetto di DHCPDISCOVER, permettendo al server di offrire un indirizzo per la sottorete giusta. Il client aspetta un certo tempo di ricevere una o più offerte, dopodiché ne seleziona una, ed invia un pacchetto di DHCPREQUEST al server che ha scelto. Questo gli conferma l'assegnazione dell'indirizzo con un pacchetto di DHCPACK. Scadenza e rinnovo degli indirizzi A questo punto, il client è autorizzato ad usare l'indirizzo ricevuto per un tempo limitato, detto tempo di lease. Prima della scadenza, dovrà tentare di rinnovarlo inviando un nuovo pacchetto DHCPREQUEST al server, che gli risponderà con un DHCPACK se vuole prolungare l'assegnazione dell'indirizzo. Questi sono normali pacchetti IP scambiati tra due calcolatori che hanno indirizzi validi. Se il client non riesce a rinnovare l'indirizzo, tornerà allo stato iniziale cercando di farsene attribuire un altro. Identificazione ed autenticazione dei client Il client si identifica verso il server attraverso un campo client-id dei pacchetti DHCP. Questo campo ha normalmente come valore il mac address della scheda di rete per cui si richiede l'indirizzo, ma può anche essere configurato manualmente. Questa è l'unica forma di autenticazione disponibile per DHCP, ed è piuttosto debole, in quanto utilizza un dato che viene inviato in broadcast sulla sottorete, e quindi può essere facilmente sniffato da qualunque altro calcolatore connesso alla sottorete. Per controllare l'accesso ad una rete esistono metodi più solidi, che però richiedono un supporto da parte degli switch a cui sono collegati gli utenti, come IEEE 802.1x. Un server dovrebbe cercare di assegnare allo stesso client sempre lo stesso indirizzo IP su ciascuna sottorete, ma non ci sono garanzie che questo sia possibile, a meno che un indirizzo non sia associato esclusivamente ad un client. Il server può utilizzare il campo client-id per decidere quale indirizzo assegnare al client, o quali altri parametri passargli, o anche di non rispondere per nulla alla richiesta del client. Identificazione del server, sicurezza Il server si identifica verso il client con il proprio indirizzo IP. Un client potrebbe quindi decidere di accettare indirizzi solo da un server già noto. Qualunque calcolatore collegato ad una sottorete potrebbe fare da server DHCP per i calcolatori di quella sottorete, o da relay verso un server DHCP arbitrario. È quindi possibile che un calcolatore configurato male o maliziosamente offra abusivamente indirizzi IP, creando malfunzionamenti alla rete e/o gravi problemi di sicurezza. Un calcolatore che abbia ricevuto l'indirizzo IP da un server DHCP mal configurato non sarà in grado di utilizzare la rete. Se invece il server DHCP abusivo è configurato in modo malizioso, le conseguenze possono essere anche peggiori: esso infatti può offrire indirizzi che sa essere inutilizzati, oppure su una sottorete IP diversa da quella ufficiale, evitando così di generare conflitti con il server ufficiale, ed indicare sé stesso come default gateway. Dovrà poi ridirigere le connessioni effettuate dai client verso il gateway ufficiale utilizzando IP masquerading. A questo punto, potrà intercettare e sniffare tutto il traffico generato dai client, che potrebbero non accorgersi facilmente della differenza. Border Gateway Protocol Il Border Gateway Protocol (BGP) è un protocollo di rete usato per connettere tra loro più router che appartengono a sistemi autonomi distinti e che vengono chiamati gateway. Il Border Gateway Protocol è un protocollo di instradamento (routing) che agisce nel 'cuore' di Internet. Il BGP 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). Si tratta di un protocollo di routing a indicazione di percorso (path vector), che non usa metriche di carattere tecnico ma prende le decisioni di instradamento basandosi su politiche (regole) determinate da ciascuna rete. La versione corrente, BGP-4, è definita nella specifica RFC 1771. Il BGP supporta il routing indipendente dalle classi (Classless InterDomain Routing) e usa un meccanismo di aggregazione degli instradamenti per diminuire le dimensioni delle relative tabelle. Nella rete Internet viene usata la versione 4 del protocollo a partire dal 1994; tutte le versioni precedenti sono considerate obsolete. Il protocollo BGP è stato creato per sostituire il protocollo di routing EGP e consentire un instradamento completamente decentralizzato, eliminando così gli ostacoli che impedivano la soppressione della dorsale Internet NSFNET. In tal modo Internet è divenuta un sistema pienamente decentralizzato. Anche le reti IP private di maggiori dimensioni possono trovare benefici dall'uso del BGP, ad esempio nel caso del collegamento di un gran numero di reti OSPF, una situazione in cui il protocollo OSPF non è in grado di scalare in modo efficiente. Un altro motivo che può spingere all'uso del BGP è la configurazione di una rete in multihoming per offrire una maggiore ridondanza. Gli utenti di Internet, nella maggior parte dei casi, non utilizzano il protocollo BGP direttamente. Tuttavia, poiché quasi tutti i provider Internet (ISP) sono obbligati a usarlo per stabilire i criteri di routing reciproci, si tratta di uno dei protocolli più importanti di Internet. Come utile confronto si possono valutare analogie e differenze con il Sistema di Segnalazione n. 7, che costituisce il protocollo cardine per l'attivazione di una chiamata tra operatori della rete telefonica pubblica (PSTN). Funzionamento Nel protocollo BGP le coppie di sistemi adiacenti, detti peer, vengono stabilite mediante configurazione manuale dei router stabilendo una sessione TCP sulla porta 179. L'iniziatore della sessione BGP (speaker) invia periodicamente (per default ogni 60 secondi) dei messaggi keepalive da 19 byte per mantenere attiva la connessione. Tra i protocolli di routing, il BGP è l'unico a utilizzare il TCP come protocollo di trasporto. Quando viene usato all'interno di uno stesso AS il protocollo BGP viene chiamato BGP Interno (IBGP, Interior Border Gateway Protocol); nell'uso tra AS distinti viene chiamato BGP Esterno (EBGP, Exterior Border Gateway Protocol). I router che svolgono compiti di instradamento del traffico IBGP vengono chiamati router di transito; quelli che si trovano sul margine esterno di un AS e utilizzano il protocollo EBGP per scambiare informazioni con il proprio ISP vengono chiamati router di bordo o di confine. Tutti i router all'interno di un dato AS che partecipano all'instradamento via BGP devono essere configurati secondo una topologia a maglie completamente connesse: ciascun router deve essere configurato come peer di tutti gli altri. Naturalmente ciò pone seri problemi di scalabilità, poiché il numero di connessioni necessarie cresce con il quadrato del numero dei router coinvolti. Per ovviare a questo problema il protocollo BGP prevede due soluzioni: i route reflector (RFC 2796) e le confederazioni (RFC 3065). I route reflector riducono il numero di connessioni necessarie nell'ambito di un AS. È possibile designare in tal modo un solo router (o due, per ridondanza) e configurare gli altri router appartenenti all'AS come peer soltanto di quest'ultimo. Le confederazioni vengono usate nel caso di reti particolarmente estese, nelle quali un AS di grandi dimensioni può essere configurato in modo da comprendere vari AS interni di più facile gestione. È possibile usare le confederazioni anche contemporaneamente ai route reflector. Automa a stati finiti I peer BGP usano un semplice automa a stati finiti per prendere le decisioni che riguardano l'interazione con altri peer BGP. L'automa è composto da sei stati - Idle (Inattiva), Connect (Connetti), Active (Attivo), OpenSent (Apertura Inviata), OpenConfirm (Apertura Confermata) ed Established (Stabilito). Ciascun peer BGP attraversa gli stati descritti quando cerca di stabilire e mantenere in vita una sessione con un altro peer. Inconvenienti e soluzioni Volatilità degli instradamenti Il BGP prevede una procedura di smorzamento (damping) per ridurre gli effetti della volatilità degli instradamenti. Tale fenomeno può essere causato dalla interruzione e dal successivo ripristino dei collegamenti a livello di WAN / WLAN oppure da errori di configurazione o gestione dei router. In assenza di damping può accadere che gli instradamenti vengano inseriti ed eliminati dalle tabelle di routing con grande rapidità, il che può avere un impatto rilevante sul carico di lavoro dei router e di conseguenza sulla stabilità complessiva delle procedure di instradamento. Nel processo di damping la volatilità di un instradamento subisce una diminuzione esponenziale. La prima volta che un instradamento va e viene in breve tempo per la prima volta, per qualsiasi ragione, il damping non interviene; vengono così conservati i tempi di risposta consueti del BGP. Quando l'evento si presenta una seconda volta, il BGP ignora il prefisso per un certo tempo, e le occorrenze successive vengono ritardate secondo una progressione esponenziale. Quando le anomalie sull'instradamento in questione sono cessate ed è trascorso un opportuno lasso di tempo, i prefissi possono essere ripristinati partendo da zero. Il damping può anche ridurre gli effetti degli attacchi ostili di tipo denial of service, in quanto gli intervalli temporali previsti dal meccanismo sono ampiamente personalizzabili. A causa della maggiore velocità dei collegamenti delle dorsali e dei processori dei router, alcuni architetti di rete hanno suggerito che il damping non sia più importante come una volta, in quanto i router sono in grado di assorbire molto più rapidamente le modifiche alla tabella di routing. Alcuni hanno persino suggerito che il damping in queste condizioni possa peggiorare la situazione invece di migliorarla. Questo argomento è ancora controverso e oggetto di numerose ricerche. Esplosione delle tabelle di routing Uno dei problemi più gravi del protocollo BGP, ma in realtà dell'intera infrastruttura di Internet, deriva dalla crescita della tabella di routing della stessa Internet. Se la tabella di routing globale crescesse fino al punto in cui la sua gestione dovesse superare le capacità di memoria e di potenza di calcolo dei router meno recenti, questi non sarebbero più in grado di agire adeguatamente da gateway per le parti di Internet collegate ad essi. Inoltre, cosa forse ancor più importante, le tabelle di routing più grandi richiedono tempi più lunghi per stabilizzarsi (vedi sopra) dopo una modifica sostanziale nella connettività, garantendo nel frattempo solo una connettività ridotta, o talvolta assente. Fino al 2001 la tabella di routing globale era in crescita esponenziale e minacciava di dare luogo, col tempo, a una interruzione generalizzata della connettività. Nel tentativo di contrastare questa eventualità, è in corso uno sforzo congiunto degli ISP per mantenere al minimo le dimensioni della tabella di routing globale, attraverso il ricorso ai meccanismi di Classless InterDomain Routing e aggregazione degli instradamenti. Questi sforzi hanno rallentato la crescita della tabella di routing sino a riportarla a un andamento lineare, allontanando in modo significativo il momento in cui sarà necessario sostituire i router più datati. ACK ACK è il simbolo che identifica un segnale di Acknowledge. Tipico esempio è il pacchetto di controllo previsto dal protocollo TCP trasmesso dal ricevente al mittente per segnalare la corretta ricezione di un paccchetto dati. L'ACK può anche essere di tipo cumulativo, indicando cioè la avventuta corretta ricezione di più pacchetti di dati. Per esempio un ACK4 indica che il pacchetto 4 che la stazione trasmittente ha inviato è stato ricevuto correttamente; implicitamente però l'ACK4 cumulativo sta ad indicare che anche i pacchetti 3, 2, 1, 0 sono stati ricevuti e non sono andati persi. Similmente un Nack indica la mancata ricezione di un pacchetto (nel caso di NACK selettivo), o la corretta ricezione di n-1 pacchetti, ma la mancata di 1 (NACK4= il pacchetto 4 non è arrivato, ma il 3, il2, l'1, e lo 0 si). Internet Internet (pr. Ìn-ter-net, composto del latino inter, "fra" e dell'inglese net, "rete") è percepita come la più grande rete telematica mondiale, e collega alcune centinaia di milioni di elaboratori per suo mezzo interconnessi. In realtà è nata nelle intenzioni dei suoi inventori come "la" rete delle reti. Nell'arco di alcuni decenni è oggi divenuta la rete globale. Nata negli anni Sessanta come progetto del Dipartimento della Difesa statunitense per lo sviluppo di una rete telematica decentrata, alla fine della guerra fredda, è stata messa a disposizione di impieghi civili all'inizio degli anni Novanta, collegando dapprima i principali centri universitari e raggiungendo poi, in modo ampio, l'utenza casalinga. L'origine del nome Curiosa è la circostanza - storicamente documentata - secondo cui la definizione ufficiale di Internet viene coniata e pubblicata solo nel 1995, passati circa 35 anni dai primi esperimenti realizzativi, dopo approvazione all'unanimità, da parte della FNC (Federal Networking Council, oggi National Coordination Office for Information Technology Research and Development). Tra i partecipanti di quella sessione della FNC troviamo Vinton Cerf e Robert Kahn, giustamente ritenuti due tra le persone più direttamente responsabili della invenzione di Internet. Questa definizione, l'unica ufficiale e reperibile in modo deliziosamente ricorsivo, su Internet stessa, recita così: RISOLUZIONE: Il Federal Networking Council (FNC) concorda che il seguente linguaggio riflette la nostra definizione del termine "Internet". "Internet" si riferisce al sistema di informazione globale che • è logicamente interconnesso da un address space unico e globale, basato sull'Internet Protocol (IP) o le sue successive estensioni/sviluppi; • è in grado di supportare la comunicazione tramite la suite Transmission Control Protocol/Internet Protocol (TCP/IP) o le sue successive estensioni/sviluppi, e/o altri protocolli compatibili con l'IP; e • fornisce, utilizza o rende accessibili, sia pubblicamente che privatamente, servizi di comunicazione di alto livello stratificati e basati sulla correlata infrastruttura qui descritta. (Notare come si sia volutamente fatto uso di una definizione ricorsiva) Struttura La diffusione degli accessi a internet nel mondo Internet può essere vista come una rete logica di enorme complessità, appoggiata a strutture fisiche e collegamenti di vario tipo (fibre ottiche, cavi coassiali, collegamenti satellitari, doppino telefonico, link su radiofrequenza (WiFi), su ponti radio, su raggi laser e su onde convogliate su condotte elettriche o addirittura idrauliche) che interconnette un agente umano o automatico ad un altro agente tramite, praticamente, qualsiasi tipo di computer o elaboratore elettronico oggi o in futuro esistente o immaginabile. Ogni dispositivo connesso direttamente ad Internet si chiama host o end system mentre la struttura che collega i vari host si chiama link di comunicazione. Da qualche anno è ormai possibile collegarsi a questa grande rete da dispositivi mobili come un palmare o da un telefono cellulare. In breve dovrebbe essere possibile per uno di questi dispositivi non solo accedere ad Internet, ma anche subire l'accesso da parte di altri host in Internet. La rete delle reti Generalmente Internet è definita la rete delle reti, infatti Internet è costituita da tutta una serie di reti, private, pubbliche, aziendali, universitarie, commerciali, connesse tra di loro, in effetti già prima della sua nascita esistevano reti locali, principalmente nei centri di ricerca internazionali, nei dipartimenti universitari. Un grande risultato della nascita e dell'affermazione di Internet è stato quello di creare uno standard de facto tra i protocolli di comunicazione tra le varie reti, consentendo ai più diversi enti e agenti (diversi governi, diverse società nazionali o sovranazionali, tra i vari dipartimenti universitari) di scambiare dati mediante un protocollo comune, il TCP/IP, relativamente indipendente da specifiche hardware proprietarie, da sistemi operativi, dai formati dei linguaggi di comunicazione degli apparati di comunicazione (modem, router, switch, hub, bridge, gateway, repeater, multiplexer). Ciò che viaggia in Internet, infatti, sono i pacchetti, che costituiscono l'unità minima in questo sistema di comunicazione. Tali pacchetti viaggiano usando una tecnica conosciuta come commutazione di pacchetto (packet switching) che consente di condividere un cammino piuttosto che fare uso di percorso dedicato. In pratica un pacchetto che parte da un host e giunge ad un altro host non segue un percorso predefinito, ma quello più congeniale in un preciso momento. L'utenza casalinga accede ad Internet mediante l'uso di ISP (Internet Service Provider) i quali sono connessi a loro volta ad ISP di livello superiore che utilizzano router ad alta velocità e link in fibra ottica. Come si comprende, la struttura di Internet non è uniforme ma la "ragnatela" è composta da un'ossatura molto veloce e potente a cui si connettono sottoreti a volte più deboli e lente. Queste sottoreti possono anche essere protette e, quindi, consentono l'accesso a Internet (e viceversa) solo in maniera condizionata. Si tratta delle Intranet e la protezione è stabilita da un firewall. Funzionamento I collegamenti tra i vari nodi Internet sono appoggiati su criteri statistici di disponibilità e non su criteri totalmente deterministici altrimenti tipici della tecnologia informatica, tanto che spesso vengono definiti più caotici; ed i processi sono distribuiti piuttosto che centralizzati. Molti nodi sono collegati tra loro in diversi modi e tramite diversi path. Questo tipo di collegamento può essere compreso alla luce delle motivazioni che negli anni Sessanta dettarono la nascita di Internet (allora denominata ARPANET): creare una rete di elaboratori decentrata che potesse resistere ad un attacco nucleare da parte dell'Unione Sovietica. Una tale rete decentrata sarebbe sopravvissuta a molti attacchi visto che un attacco ad un singolo elaboratore non ne avrebbe impedito il funzionamento generale, ed i collegamenti ridondanti avrebbero sostituito quelli distrutti. Per potersi collegare ad Internet, il solo requisito richiesto ad un qualsiasi agente o dispositivo elettronico è quello di poter "dialogare" con i protocolli. Tali protocolli controllano l'invio e la ricezione dei pacchetti. I protocolli più importanti sono il TCP (Transmission Control Protocol) e l'IP (Internet Protocol). La struttura di comunicazione è a livelli per cui sopra e sotto questi due protocolli ne funzionano degli altri. In pratica un pacchetto che parte da un host attraversa i diversi strati protocollari che aggiungono informazioni al pacchetto, quando questo raggiunge la destinazione, avviene uno spacchettamento al contrario e ogni livello legge le sue informazioni. Quindi, come si comprende, un pacchetto è composto da un'informazione base incapsulata in una struttura di informazioni di servizio. Tale struttura si basa sugli Internet Standard che sono sviluppati dall'Internet Engineering Task Force (IETF) con documenti noti come RFC (Request for Comments) e, ad un livello della pila dei protocolli, il W3C (World Wide Web Consortium). Le modalità di utilizzo di Internet differiscono a seconda del tipo di servizio che si richiede e al tipo di server a cui ci si collega; per citarne solo alcune: posta elettronica (e-mail) consente di inviare e ricevere (a/da utenti) messaggi contenenti testo ed altri formati (es.: immagini, video, audio). La modalità di funzionamento dei server di posta elettronica e di molti programmi client viene detta store-and-forward FTP (file transfer protocol) consente di inviare e ricevere (a/da sistemi) file, cioè insiemi di informazioni codificate in maniera binaria (es.: testi, immagini, filmati, programmi, ecc.) HTTP (hyper text transfer protocol) consente di organizzare le informazioni e le risorse presenti in rete in maniera nonsequenziale (hyperlink), come meglio descritto in seguito. Storia di Internet ARPANET (1969) Il progenitore della rete Internet è considerato il progetto ARPANET, finanziato dalla Advanced Research Projects Agency (ARPA), una agenzia del Dipartimento della Difesa statunitense. In una nota del 25 aprile 1963, Joseph C.R. Licklider aveva espresso l'intenzione di collegare tutti i computer e i sistemi di time-sharing in una rete continentale. Avendo lasciato l'ARPA per un posto all'IBM l'anno seguente, furono i suoi successori che si dedicarono al progetto ARPANET. Il contratto fu assegnato all'azienda da cui proveniva Licklider, la Bolt, Beranek and Newman (BBN) che utilizzò i minicomputer di Honeywell come supporto. La rete venne fisicamente costruita nel 1969 collegando quattro nodi: l'Università della California di Los Angeles, l'SRI di Stanford, l'Universita della California di Santa Barbara, e l'Università dello Utah. L'ampiezza di banda era di 50 Kbps. Negli incontri per definire le caratteristiche della rete, vennero introdotti i fondamentali Request for Comments (RFC), tutt'ora i documenti fondamentali per tutto ciò che riguarda i protocolli informatici della rete. I primi nodi si basavano su un'architettura client/server, e non supportavano quindi connessioni dirette (host-to-host). Le applicazioni eseguite erano fondamentalmente il Telnet e i programmi di File Transfer Protocol (FTP). La posta elettronica fu inventata da Ray Tomlinson della BBN nel 1971, derivando il programma da altri due: il SENDMSG per messaggi interni e CPYNET, un programma per il trasferimento dei file. L'anno seguente Arpanet venne presentata al pubblico, e Tomlinson adattò il suo programma per funzionarvi: divenne subito popolare, grazie anche al contributo di Larry Roberts che aveva sviluppato il primo programma per la gestione della posta elettronica, RD. Da Arpanet a Internet (anni Settanta e Ottanta) In pochi anni, ARPANET allargò i suoi nodi oltreoceano, contemporaneamente all'avvento del primo servizio di invio pacchetti a pagamento: Telenet della BBN. In Francia inizia la costruzione della rete CYCLADES sotto la direzione di Louis Pouzin, mentre la rete norvegese NORSAR permette il collegamento di Arpanet con lo University College di Londra. L'espansione proseguì sempre più rapidamente, tanto che il 26 marzo del 1976 la regina Elisabetta II d'Inghilterra spedì un'email alla sede del Royal Signals and Radar Establishment. Gli Emoticon vennero istituiti il 12 aprile 1979, quando Kevin MacKenzie suggerì di inserire un simbolo nelle mail per indicare gli stati d'animo. Tutto era pronto per il passaggio ad Internet, compreso il primo virus telematico: sperimentando sulla velocità di propagazione delle e-mail, a causa di un errore negli header del messaggio, Arpanet venne totalmente bloccata: era il 27 ottobre 1980. Definendo il Transmission Control Protocol (TCP) e l'Internet Protocol (IP), DCA e ARPA diedero il via ufficialmente ad Internet come l'insieme di reti connesse tramite questi protocolli. Nascita del World Wide Web (1992) Nel 1992 presso il CERN di Ginevra il ricercatore Tim Berners-Lee definì il protocollo HTTP (HyperText Transfer Protocol), un sistema che permette una lettura ipertestuale, non-sequenziale dei documenti, saltando da un punto all'altro mediante l'utilizzo di rimandi (link o, più propriamente, hyperlink). Il primo browser con caratteristiche simili a quelle attuali, il Mosaic, venne realizzato nel 1993. Esso rivoluzionò profondamente il modo di effettuare le ricerche e di comunicare in rete. Nacque così il World Wide Web. Nel World Wide Web (WWW), le risorse disponibili sono organizzate secondo un sistema di librerie, o pagine, a cui si può accedere utilizzando appositi programmi detti browser con cui è possibile navigare visualizzando file, testi, ipertesti, suoni, immagini, animazioni, filmati. La facilità d'utilizzo connessa con l'HTTP e i browser, in coincidenza con una vasta diffusione del Personal Computer, hanno aperto l'uso di Internet ad una massa di milioni persone, anche al di fuori dell'ambito strettamente informatico, con una crescita in progressione esponenziale. L'evoluzione: Internet2 Fino all'anno 2000 si è temuto di dover reingegnerizzare ex-novo l'intera Internet (si parlava di Internet 2) perché il numero degli host indirizzabile attraverso il protocollo IP era vicino ad essere esaurito (IP shortage) dal numero di host realmente collegati (oltre alla necessaria ridondanza e alle perdite per motivi sociali). Il problema è stato parzialmente evitato con l'utilizzo della tecnica del NAT/Gateway mediante la quale una rete aziendale non ha bisogno di un range ampio di indirizzi IP fissi, ma possono utilizzarne uno più ridotto con anche un buon risparmio economico. Oggi si è fiduciosi nella possibilità di migrare in modo non traumatico alla versione 6.0 di IP (IPv6) che renderà disponibili alcune centinaia di miliardi di numeri IP indirizzabili, sufficienti probabilmente per tutto il resto della durata dell'umanità. La natura globale con la quale è stata concepita Internet ha fatto sì che oggi, non solo apparati di calcolo in senso stretto, ma una enorme varietà di processori, a volte anche incorporati in maniera invisibile (embedded) in elettrodomestici e in apparecchi dei più svariati generi, abbiano tra le proprie funzionalità quella di connettersi ad Internet e attraverso Internet a qualche servizio di aggiornamento, di distribuzione di informazione e dati; dal frigorifero, al televisore, all'impianto di allarme, al forno, alla macchina fotografica: ogni processore oramai è abilitato a comunicare via Internet. Controllare la rete Su Internet ormai viaggiano tantissime informazioni non solo immagazzinate nei siti web, ma anche con e-mail, chatting, etc. Quindi questo canale è diventato una forma di comunicazione di massa, motivo per il quale ci sono stati diversi tentativi di filtrare una parte di informazioni o addirittura di controllarla. Uno dei programmi ormai ampiamente riconosciuti è Carnivore, voluto dall'FBI per controllare la posta elettronica in entrata e in uscita alla ricerca di parole chiave di interesse. Con l'aumentare del terrorismo, Internet sta diventando sempre più controllata, anche perché la vita delle persone è migrata sempre più verso la grande rete, rendendole così più vulnerabili alle violazioni della loro privacy. Principali servizi disponibili su Internet • World Wide Web • FTP (o File transfer Protocol) • Gopher • E-Mail • Mailing list • Newsgroup • Telnet • Webcast • File sharing Principali Enti di gestione di Internet • ICANN (Internet Corporation of Assigned Names and Numbers) • IETF (Internet Engineering Task Force) • W3C (World Wide Web Consortium) • IESG (Internet Engineering Steering Group) • ISOC (Internet Society) Firewall In Informatica, nell'ambito delle reti di computer, un firewall (termine inglese dal significato originario di paratia antifuoco, muro tagliafuoco; detto in italiano anche parafuoco) è un componente passivo di difesa perimetrale (quindi un dispositivo hardware) che può anche svolgere funzioni di collegamento tra due o più tronconi di rete. Usualmente la rete viene divisa in due sottoreti: una, detta esterna, comprende l'intera internet mentre l'altra interna, detta LAN (Local Area Network), comprende una sezione più o meno grande di un insieme di computer locali. In alcuni casi è possibile che si crei l'esigenza di creare una terza sottorete detta DMZ (o zona demilitarizzata) atta a contenere quei sistemi che devono essere isolati dalla rete interna ma devono comunque essere protetti dal firewall. Grazie alla sua posizione strategica, il firewall risulta il posto migliore ove imporre delle logiche di traffico per i pacchetti in transito e/o eseguire un monitoraggio di tali pacchetti. La sua funzionalità principale in sostanza è quella di creare un filtro sulle connessioni entranti ed uscenti, in questo modo il dispositivo innalza il livello di sicurezza della rete e permette sia agli utenti interni che a quelli esterni di operare nel massimo della sicurezza. Principi di funzionamento Una prima definizione chiusa di firewall è la seguente: Software o apparato di rete hardware o software che filtra tutti i pacchetti entranti ed uscenti, da e verso una rete o un computer, applicando regole che contribuiscono alla sicurezza della stessa. In realtà un firewall può essere realizzato con un normale computer (con almeno due schede di rete e software apposito), può essere una funzione inclusa in un router o può essere un apparato specializzato. Esistono inoltre i cosiddetti "firewall personali", che sono programmi installati sui normali calcolatori, che filtrano solamente i pacchetti che entrano ed escono da quel calcolatore. La funzionalità principale in sostanza è quella di creare un filtro sulle connessioni entranti ed uscenti, in questo modo il dispositivo innalza il livello di sicurezza della rete e permette sia agli utenti interni che a quelli esterni di operare nel massimo della sicurezza. Il firewall agisce sui pacchetti in transito da e per la zona interna potendo eseguire su di essi operazioni di: • controllo • modifica • monitoraggio Questo grazie alla sua capacità di "aprire" il pacchetto IP per leggere le informazioni presenti sul suo header, e in alcuni casi anche di effettuare verifiche sul contenuto del pacchetto. Personal Firewall o Firewall Software Oltre al firewall a protezione perimetrale ne esiste un secondo tipo, definito "Personal Firewall", che si installa direttamente sui sistemi da proteggere (per questo motivo è chiamato anche Firewall Software). In tal caso, un buon firewall effettua anche un controllo di tutti i programmi che tentano di accedere ad internet presenti sul computer nel quale è installato, consentendo all'utente di impostare delle regole che possano concedere o negare l'accesso ad internet da parte dei programmi stessi, questo per prevenire la possibilità che un programma malevolo possa connettere il computer all'esterno pregiudicandone la sicurezza. Il principio di funzionamento differisce rispetto a quello del firewall perimetrale in quanto, in quest'ultimo, le regole che definiscono i flussi di traffico permessi vengono impostate in base all'indirizzo IP sorgente, quello di destinazione e la porta attraverso la quale viene erogato il servizio, mentre nel personal firewall all'utente è sufficiente esprimere il consenso affinché una determinata applicazione possa interagire con il mondo esterno attraverso il protocollo IP. Da sottolineare che l'aggiornamento di un firewall è importante ma non è così vitale come invece lo è l'aggiornamento di un antivirus, in quanto le operazioni che il firewall deve compiere sono sostanzialmente sempre le stesse. È invece importante creare delle regole che siano corrette per decidere quali programmi devono poter accedere alla rete esterna e quali invece non devono. Altre funzioni Un'altra funzione che alcuni firewall prevedono è la possibilità di filtrare ciò che arriva da internet, consentendo per esempio di vietare la visualizzazione di alcuni siti internet contenenti pagine con un contenuto non adatto ai minori, nella maggior parte dei casi però l'attivazione di questa funzionalità è demandata a software aggiuntivi appartenenti alla categoria dell'URL filtering. Tuttavia, un firewall è solo uno dei componenti di una strategia di sicurezza informatica, e non può in generale essere considerato sufficiente: • la sua configurazione è un compromesso tra usabilità della rete, sicurezza e risorse disponibili per la manutenzione della configurazione stessa (le esigenze di una rete cambiano rapidamente) • una quota rilevante delle minacce alla sicurezza informatica proviene dalla rete interna (portatili, virus, connessioni abusive alla rete, dipendenti, accessi VPN, reti wireless non adeguatamente protette) Tipologie Tipologie di firewall, in ordine crescente di complessità: • Il più semplice è il packet filter, che si limita a valutare gli header di ciascun pacchetto, decidendo quali far passare e quali no sulla base delle regole configurate. Alcuni packet filter possiedono il concetto di "connessione TCP stabilita (established)", ma questo si riduce alla valutazione dei flags dell'header TCP. • Se invece è stateful inspection, tiene traccia di alcune relazioni tra i pacchetti che lo attraversano, ad esempio ricostruisce lo stato delle connessioni TCP, o i protocolli che aprono più connessioni. Questo permette ad esempio di riconoscere pacchetti TCP malevoli che non fanno parte di alcuna connessione, o di permettere il funzionamento di protocolli complessi. • Esiste una generazione di firewall detta Application Layer Gateway che effettua controlli fino al livello 7 della pila ISO/OSI, a questa generazione di firewall appartengono i proxy. Spesso un proxy è assimilato - o usato come - un firewall. In tali casi, la configurazione della rete privata non consente connessioni dirette verso l'esterno, ma il proxy è connesso sia alla rete privata che alla rete pubblica, e permette alcune connessioni in modo selettivo, e solo per i protocolli che supporta. La sintassi della configurazione di un firewall in molti casi è basata su un meccanismo di ACL. Una funzione spesso associata al firewall è quella di NAT (traduzione degli indirizzi di rete), che può contribuire a rendere inaccessibili i calcolatori sulla rete interna. Molti firewall possono registrare tutte le operazioni fatte (logging), effettuare registrazioni più o meno selettive (ad esempio, registrare solo i pacchetti che violano una certa regola, non registrare più di N pacchetti al secondo), e tenere statistiche di quali regole sono state più violate. La registrazione integrale dell'attività di un firewall può facilmente assumere dimensioni ingestibili, per cui spesso si usa il logging solo temporaneamente per diagnosticare problemi, o comunque in modo selettivo (logging dei soli pacchetti rifiutati o solo di alcune regole). Tuttavia, l'analisi dei log di un firewall (o anche dei contatori delle varie regole) può permettere di individuare in tempo reale tentativi di intrusione. Talvolta ad un firewall è associata anche la funzione rilevamento delle intrusioni (IDS), un sistema basato su euristiche che analizza il traffico e tenta di riconoscere possibili attacchi alla sicurezza della rete, e può anche scatenare reazioni automatiche da parte del firewall (IPS).. Vulnerabilità Una delle vulnerabilità più conosciute di un firewall di fascia media è l'HTTP tunneling, che consente di bypassare le restrizioni internet utilizzando comunicazioni HTTP solitamente concesse dai firewall. Altra tipica vulnerabilità è la dll injection, ovvero una tecnica utilizzata da molti trojan, che sovrascrive il codice maligno all'interno di librerie di sistema utilizzate da programmi considerati sicuri. L'informazione riesce ad uscire dal computer in quanto il firewall, che di solito controlla i processi e non le librerie, crede che l'invio ad internet lo stia eseguendo un programma da lui ritenuto sicuro, ma che di fatto utilizza la libreria contaminata. Alcuni firewall hanno anche il controllo sulla variazione delle librerie in memoria ma è difficile capire quando le variazioni sono state fatte da virus. Implementazioni • • • Software o shorewall, frontend di iptables o Netfilter/iptables: l'infrastruttura di packet filtering integrata nei kernel Linux versione 2.4 e superiori o ipchains: l'infrastruttura di packet filtering integrata nei kernel Linux versione 2.2 o ipfw: l'infrastruttura di packet filtering integrata nei kernel Linux versione 2.0 o IPFilter (ipf) o pf o m0n0wall progetto basato su FreeBSD Appliance o Cisco PIX o Check Point FireWall 1 o Juniper Netscreen o Endian Firewall Personal firewalls o Sunbelt Kerio o Checkpoint ZoneLabs o Sygate Personal Firewall o CoreSecurity Core Force o Tiny Personal Firewall o Norton Personal Firewall Suite di protocolli Internet La suite di protocolli Internet è un insieme di protocolli di rete che implementa la pila di protocolli su cui funziona Internet. A volte, per sineddoche, è chiamata suite di protocolli TCP/IP, in funzione dei due più importanti protocolli in essa definiti: il Transmission Control Protocol (TCP) e l'Internet Protocol (IP). Tale suite può essere descritta per analogia con il modello OSI, che descrive i livelli della pila di protocolli. In una pila di protocolli ogni livello risolve una serie di problemi che riguardano la trasmissione di dati e fornisce un ben definito servizio ai livelli più alti. I livelli più alti sono logicamente più vicini all'utente e funzionano con dati più astratti lasciando ai livelli più bassi il compito di tradurre i dati in forme mediante le quali possono essere fisicamente manipolati. Il modello Internet è stato prodotto come una soluzione ad un problema ingegneristico pratico. Il modello OSI, in un altro senso, è stato l'approccio più teorico ed è stato anche prodotto nel più vecchio modello di rete. Suite di protocolli Internet Modifica HTTP, HTTPS , SMTP, POP3, IMAP, FTP, DNS Livello applicazioni SSH, IRC, SNMP, SIP, RTP, Rsync, Telnet, HSRP ... Livello di trasporto TCP, UDP, SCTP, RTSP, DCCP ... IPv4, IPv6, ARP, DHCP, ICMP, BGP, OSPF, Livello di rete RIP, IGRP, IGMP, IPsec... Ethernet, WiFi, PPP, Token ring, Livello di collegamento ATM, FDDI, LLC ... Doppino, Fibra ottica, Cavo coassiale, Livello fisico Codifica Manchester, Codifica 4B/5B, WiFi ... SMTP Simple Mail Transfer Protocol (SMTP) è il protocollo standard per la trasmissione via internet di e-mail. In italiano si potrebbe tradurre come "Protocollo elementare di trasferimento postale". È un protocollo relativamente semplice, testuale, nel quale vengono specificati uno o più destinatari di un messaggio, verificata la loro esistenza, e infine il messaggio viene trasferito. È abbastanza facile verificare come funziona un server SMTP mediante un client telnet. L'SMTP usa il protocollo di trasmissione TCP e, per accedervi, la porta 25. Per associare il server SMTP a un dato nome di dominio (DNS) si usa un record denominato MX (Mail Exchange). L'SMTP iniziò a diffondersi nei primi anni '80. A quel tempo era un'alternativa all'UUCP, che era più adatto a gestire il trasferimento di e-mail fra computer la cui connessione era intermittente. L'SMTP, d'altra parte, funziona meglio se i computer sono sempre collegati alla rete. Sendmail fu uno dei primi (se non proprio il primo) mail transfer agent ad implementare il protocollo SMTP. Fino al 2001 sono stati scritti almeno 50 programmi che implementano il protocollo SMTP come client (mittente dei messaggi) o server (destinatario del messaggio). Altri server molto diffusi sono Exim di Philip Hazel, Postfix di [Wietse Venema], qmail di D. J. Bernstein, e Microsoft Exchange Server. Poiché inizialmente l'SMTP era un protocollo testuale (basato sulla codifica ASCII), non permetteva di trasmettere direttamente file binari. Furono dunque sviluppati standard come il MIME per la codifica dei file binari ed il loro trasferimento attraverso SMTP. Al giorno d'oggi molti server SMTP supportano l'estensione 8BITMIME, la quale permette un trasferimento più agevole dei file binari, come se fossero file di testo. L'SMTP è un protocollo che permette soltanto di inviare messaggi di posta, ma non di richiederli ad un server: per fare questo il client di posta deve usare altri protocolli, quali il POP3, o Post Office Protocol, l'IMAP, o Internet Message Access Protocol. Esempio di comunicazione SMTP Quella che segue è una transazione SMTP valida. Le righe inviate dal client sono precedute da "C:", mentre quelle inviate dal server da "S:". Su molti computer si può stabilire una connessione mediante il comando telnet: telnet www.example.com 25 Questo comando apre una connessione a www.example.com sulla porta SMTP. S: C: S: C: S: C: S: C: S: C: C: C: C: C: C: C: S: C: S: 220 www.example.com ESMTP Postfix HELO mydomain.com 250 Hello mydomain.com MAIL FROM: [email protected] 250 Ok RCPT TO: [email protected] 250 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: messaggio di prova From: [email protected] To: [email protected] Ciao, questa è una prova. . 250 Ok: queued as 12345 QUIT 221 Bye Sebbene non sia obbligatorio, quasi tutti i client richiedono al server quali estensioni del protocollo SMTP il server supporta usando il saluto EHLO. Questi client usano HELO soltanto nel caso in cui il server non risponda ad EHLO. La sicurezza del protocollo SMTP Una delle limitazioni del protocollo SMTP originario è che non gestisce l'autenticazione dei mittenti. Per ovviare a questo problema è stata sviluppata un'estensione chiamata SMTP-AUTH. Nonostante questo, lo spam rimane ancor oggi un grave problema. Tuttavia, non si ritiene praticabile una revisione radicale del protocollo SMTP, per via del gran numero di implementazioni del protocollo attuale (ad esempio, è stato proposto Internet Mail 2000 come protocollo alternativo). Per questo motivo sono stati proposti diversi protocolli ausiliari per assistere le transazioni SMTP. L'Anti-Spam Research Group dell'IRTF sta lavorando su varie proposte di autenticazione e-email centrate sulla flessibilità, leggerezza e scalabilità. Post Office Protocol Il Post Office Protocol (detto anche POP) è un protocollo che ha il compito di permettere, mediante autenticazione, l'accesso ad un account di posta elettronica presente su di un host per scaricare le e-mail del relativo account. Il demone pop (nella versione 3) rimane in attesa sulla porta 110 dell'host (di default, ma può anche essere diversa) per una connessione TCP da parte di un client. I messaggi di posta elettronica, per essere letti, devono essere scaricati sul computer (questa è una notevole differenza rispetto all'IMAP), anche se è possibile lasciarne una copia sull'host. Il protocollo POP3 non prevede alcun tipo di cifratura, quindi le password utilizzate per l'autenticazione fra server e client passano in chiaro. Per risolvere questo possibile problema è stato sviluppata l'estensione APOP che utilizza MD5. Esempio di comunicazione POP3 Dopo aver stabilito una connessione tra il mittente (il client) e il destinatario (il server), ciò che accade è l'apertura di una sessione POP3. Nella successiva conversazione, qualsiasi cosa inviata dal client è preceduta con "C:", mentre qualsiasi cosa inviata dal server è preceduta da "S:". Su molti computer si può stabilire una connessione mediante il comando telnet: telnet www.example.com 110 Questo comando apre un collegamento POP3 verso l'host www.example.com. S:+OK <[email protected]> C:USER pippo S:+OK C:PASS pluto S:+OK C:LIST S:+Ok 1 817 2 124 . C:RETR 1 S:+OK Return-Path: <[email protected]> Delivered-To: [email protected] Date: Sat, 22 Oct 2005 13:24:54 +0200 From: Mario Rossi <[email protected]> Subject: xxxx Content-Type: text/plain; charset=ISO-8859-1 testo messaggio C:DELE 1 S:+OK C:QUIT S:+OK Protocolli di routing I Protocolli di routing sono una serie di protocolli che permettono ai router di scambiare informazioni tra loro al fine di costruire delle tabelle di routing che permettano il corretto instradamento dei pacchetti. Tali protocolli sono diversi a seconda che si tratti di router all'interno di uno stesso sistema autonomo (IGP), Interior Gateway Protocol, oppure di router che collegano tra loro più sistemi autonomi EGP, Exterior Gateway Protocol. Per quanto riguarda la prima categoria i protocolli possono essere suddivisi in due classi principali: Distance Vector e Link State. Quelli distance vector ricevono e mandano informazioni riguardo i collegamenti solamente ai router adiacenti mentre i link state li mandano a tutti i router del proprio sistema autonomo. Protocolli interni al sistema autonomo • • • Protocolli Distance Vector o RIP Routing Information Protocol o IGRP Interior Gateway Routing Protocol Protocolli Link State o IS-IS Intermediate System to Intermediate System o OSPF Open Shortest Path First Protocolli Ibridi o EIGRP Enhanced Interior Gateway Routing Protocol Protocolli esterni al sistema autonomo • EGP Exterior Gateway Protocol, obsoleto • BGP Border Gateway Protocol User Datagram Protocol L'User Datagram Protocol (UDP) è uno dei principali protocolli della Suite di protocolli Internet. UDP è un protocollo di trasporto a pacchetto. È usato di solito in combinazione con il protocollo IP. A differenza del TCP, non gestisce il riordinamento dei pacchetti né la ritrasmissione di quelli persi. L'UDP ha come caratteristica di essere un protocollo di rete inaffidabile, privo di connessione, ma in compenso molto rapido ed efficiente per le applicazioni "leggere" o time-sensitive. Infatti, è usato spesso per la trasmissione di informazioni audio o video. Dato che le applicazioni in tempo reale spesso richiedono un ritmo minimo di spedizione, non vogliono ritardare eccessivamente la trasmissione dei pacchetti e possono tollerare qualche perdita di dati, il modello di servizio TCP può non essere particolarmente adatto alle esigenze di queste applicazioni. L'UDP fornisce soltanto i servizi basilari del livello di trasporto, ovvero: • multiplazione delle connessioni, ottenuta attraverso il meccanismo delle porte • verifica degli errori mediante una checksum, inserita in un campo dell'intestazione del pacchetto. mentre TCP garantisce anche il trasferimento affidabile dei dati, il controllo di flusso e il controllo della congestione. UDP è un protocollo [[stateless]] ovvero privo di stato: non mantiene lo stato della connessione dunque rispetto a TCP ha informazioni in meno da memorizzare. Un server dedicato ad una particolare applicazione che sceglie UDP come protocollo di trasporto può supportare molti più client attivi. Struttura di un datagramma UDP Un datagramma UDP è composto da 5 campi di cui due sono opzionali. I campi sono: Porta Sorgente Porta Destinazione Lunghezza Checksum Dati Porta Sorgente contiene la porta sorgente da cui proviene il datagramma ( Lunghezza : 16 bit ) Porta Destinazione contiene la porta destinazione a cui deve essere spedito il datagramma ( Lunghezza : 16 bit ) . Lunghezza contiene la lunghezza totale del datagramma UDP (testata+dati) ( Lunghezza : 16 bit ) Checksum contiene il codice di controllo del datagramma (testata+dati). L'algoritmo di calcolo è definito nell' RFC del protocollo (Lunghezza: 16 bit) Dati contiene i dati del datagramma ( Lunghezza: in teoria infinita ) Applicazioni che utilizzano UDP Le applicazioni che hanno la necessità di un trasferimento affidabile dei loro dati si affidano ovviamente a TCP. Le applicazioni più elastiche riguardo alla perdita dei dati e dipendenti dal tempo si affidano invece a UDP. Inoltre si utilizza UDP per comunicazioni in broadcast (invio a tutti i terminali in una rete locale) e multicast (invio a tutti i terminali iscritti ad un servizio). Un esempio delle applicazioni più diffuse e dei protocolli che adottano: Applicazione Posta elettronica Accesso a terminale remoto Trasferimento file Web Server di file remoto Telefonia su internet Gestione della rete Protocollo di routing Risoluzione dei nomi Protocollo strato applicazione SMTP telnet FTP HTTP NFS proprietario SNMP RIP DNS Protocollo strato trasporto TCP TCP TCP TCP tipicamente UDP tipicamente UDP tipicamente UDP tipicamente UDP tipicamente UDP Domain Name System Domain Name System (spesso indicato con DNS) è un servizio di directory, utilizzato soprattutto per la risoluzione di nomi di host in indirizzi IP. Il servizio è realizzato tramite un database distribuito, costituito dai server DNS. La possibilità di attribuire nomi simbolici agli indirizzi IP degli host è essenziale per l'usabilità di Internet, perché gli esseri umani trovano più facile ricordare nomi testuali, mentre gli host ed i router sono raggiungibili utilizzando gli indirizzi IP numerici. Inoltre è possibile attribuire più nomi allo stesso indirizzo IP, per rappresentare diversi servizi o funzioni forniti da uno stesso host. Un utilizzo molto popolare di questa possibilità è il cosiddetto virtual hosting basato sui nomi, una tecnica per cui un web server dotato di una singola interfaccia di rete e di singolo indirizzo IP può ospitare più siti web, usando l'indirizzo alfanumerico trasmesso nell'header HTTP per identificare il sito per cui sito viene fatta la richiesta. I nomi DNS, o "nomi di dominio", sono una delle caratteristiche più visibili di Internet. C'è molta confusione in merito alla sua definizione, visto che la S spesso viene immaginata stare per service, ma la definizione corretta è system. Storia Il DNS fu inventato il 23 giugno 1983 da Paul Mockapetris, Jon Postel e Craig Partrige; le specifiche originali sono descritte nello standard RFC 882. Nel 1987 vennero pubblicati commenti allo standard RFC del DNS, con i nomi RFC 1034 e RFC 1035 rendendo obsolete le specifiche precedenti. Nomi DNS Un nome a dominio è costituito da una serie di stringhe separate da punti, ad esempio it.wikipedia.org. A differenza degli indirizzi IP, dove la parte più importante del numero è la prima partendo da sinistra, in un nome DNS la parte più importante è la prima partendo da destra. Questa è detta dominio di primo livello (o TLD, Top Level Domain), per esempio .org o .it. Un dominio di secondo livello consiste in due parti, per esempio wikipedia.org, e così via. Ogni ulteriore elemento specifica un'ulteriore suddivisione. Quando un dominio di secondo livello viene registrato all'assegnatario, questo è autorizzato a usare i nomi di dominio relativi ai successivi livelli come it.wikipedia.org (dominio di terzo livello) e altri come some.other.stuff.wikipedia.org (dominio di quinto livello) e così via. Tipi di record DNS Ad un nome DNS possono corrispondere diversi tipi di informazioni. Le principali sono: • La più comune è il cosiddetto record "A", che indica la corrispondenza tra un nome ed uno (o più) indirizzi IP (per la precisione indirizzi IPv4, ovvero la versione attualmente in uso). • I record di tipo "MX" (Mail eXchange) indicano invece a quali server debba essere inviata la posta elettronica per un certo dominio. • I record di tipo "CNAME" sono usati per creare un alias, ovvero per fare in modo che lo stesso calcolatore sia noto con più nomi. • Il DNS viene utilizzato anche per realizzare la risoluzione inversa, ovvero per far corrispondere ad un indirizzo IP il corrispondente nome a dominio. Per questo si usano i record di tipo "PTR" (e una apposita zona dello spazio dei nomi in-addr.arpa). • Gli indirizzi IPv6 sono registrati con record di tipo "AAAA" (questo richiama che un indirizzo IPv6 è 4 volte più lungo di un indirizzo IPv4). Vi sono anche tipi di record "di servizio", necessari al funzionamento del database distribuito: • I record "NS" (Name Server) sono utilizzati per indicare quali siano in server DNS autoritativi per un certo dominio, ovvero per delegarne la gestione. • I record "SOA" (Start of Authority) sono usati per la gestione delle zone DNS. Nel DNS possono essere immessi altri tipi di record, alcuni folcloristici, come "LOC", usato (poco) per riportare le coordinate geografiche di un sito, altri aggiungono funzioni di sicurezza per evitare manomissioni. Ad uno stesso nome di dominio, possono essere associati contemporaneamente record di tipo diverso, o più record dello stesso tipo. Questo generalmente viene fatto per suddividere il carico di un server molto frequentato su più computer che offrono lo stesso servizio. I record associati ad un nome di dominio possono cambiare nel tempo, permettendo ad esempio di assegnare un nuovo indirizzo IP ad un server, facendo in modo che questo continui a rispondere al nome già noto agli utenti. Utilizzo dei nomi DNS Un nome di dominio, come per esempio it.wikipedia.org, può essere parte di un URL Localizzatore Univoco di Risorse, come http://it.wikipedia.org/wiki/Treno, o di un indirizzo e-mail, come per esempio [email protected]. Questi sono gli strumenti più utilizzati per identificare una risorsa su Internet, il che spiega la pervasività dei nomi di dominio. Molti nomi di dominio utilizzati per server web hanno nella parte sinistra la stringa di caratteri "www", ma non è sempre necessario averla. In molti casi, ma non sempre, il nome privato del prefisso "www." porta comunque alla stessa pagina, come per esempio "ns.nl" e "www.ns.nl". Il nome di dominio più breve (e di conseguenza l'URL più breve) è p.ro. Realizzazione I DNS implementano uno spazio dei nomi gerarchico, per permettere che parti di uno spazio dei nomi, conosciute come "zone", possano essere delegate da un name server ad un altro name server che si trova più in basso nella gerarchia. I nomi di dominio sono soggetti a determinate restrizioni: per esempio ogni parte del nome (quella cioè limitata dai punti nel nome) non può superare i 63 caratteri e il nome complessivo non può superare i 255 caratteri. I nomi di dominio sono anche limitati ad un sottoinsieme di caratteri ASCII; in questo modo si impedisce di scrivere nomi e parole con caratteri che non tutti hanno sulla propria tastiera. Per superare questa limitazione, il sistema di IDNA e basato sul modello Punycode, rileva stringhe Unicode in un insieme di caratteri DNS validi, venne approvato dall'ICANN e adottato da alcuni registri. Zone, deleghe e repliche Una zona DNS è una parte dello spazio dei nomi, costituita da un dominio e i suoi sottodomini che non sono a loro volta delegati, che è sotto una stessa gestione amministrativa e quindi è gestita da uno o più server. La gestione di una zona è delegata dalla zona superiore tramite dei record di tipo NS. Ad esempio, nella zona .org ci sarà una delega per la zona wikipedia.org ai server DNS che la gestiscono. Per ragioni di ridondanza, una delega è tipicamente costituita da più record NS, che indicano che ciascuno dei server indicati contiene le informazioni per quella zona (è "autoritativo" per la zona). All'interno di una zona possono essere delegate delle zone di livello inferiore, ad esempio in wikipedia.org potrebbero esistere deleghe per devel.wikipedia.org o per accounting.admin.wikipedia.org. I diversi server che sono delegati per una zona dovrebbero contenere le stesse informazioni, in modo che uno qualsiasi di questi possa rispondere ad una query per un record della zona. La replica è tipicamente basata su un server master (primario), sul quale vengono aggiornate le informazioni e uno o più server slave (secondari), che copiano le informazioni dal master quando necessario. L'operazione di copia di tutti i record di una zona dal master ad uno slave è detta zone transfer. La radice (root) dell'albero dei nomi DNS è la zona . (punto), che è gestita da un insieme di server chiamati appunto root servers. Ricorsione In generale, per ottenere la risoluzione di un nome è necessario partire dalla radice, interrogare uno dei root servers nel dominio di primo livello, ottenere il server che lo gestisce, interrogarlo nel dominio di secondo livello, fino a raggiungere il server autoritativo per il nome desiderato. Questa tecnica è detta "ricorsione". Caching Alcuni server si prestano ad effettuare query ricorsive per conto di alcuni client. Una volta che hanno ottenuto una risposta, memorizzano in una cache tutte le informazioni che hanno imparato, fino alla loro scadenza. Alcune implementazioni del servizio DNS permettono di realizzare i cosiddetti servers caching only, ovvero privi di database proprio, ma utili per reindirizzare ad un server autoritativo le query di risoluzione. Tale caratteristica è utile soprattutto quando la risoluzione deve essere effettuata attraverso collegamenti lenti (con velocità inferiore a 500 kbps) o firewall. Utilizzo Per utilizzare il servizio, è necessario configurare su ciascun client uno o più server DNS di riferimento. Questi sono predisposti a effettuare query ricorsive e che effettuano servizi di caching. Quando un sistema ha la necessità di comunicare con un altro sistema, chiede al server DNS di riferimento di effettuare il processo detto di "risoluzione" del nome in un indirizzo IP. Il server effettua una ricerca all'interno del suo database per ottenere l'indirizzo IP corrispondente al sistema ricercato. Se il server interrogato possiede l'informazione richiesta, il processo di ricerca termina con l'invio dell'indirizzo IP al richiedente. Se la ricerca ha esito negativo il server effettua una richiesta "ricorsiva". Implementazione Il protocollo DNS è implementato da diversi software. Di seguito alcuni dei più diffusi: • BIND (Berkeley Internet Name Domain), il nome del più comune demone DNS usato sui sistemi Unix. • DJBDNS (Dan J Bernstein's DNS implementation) • MaraDNS • NSD (Name Server Daemon) • PowerDNS • DDNS (Dynamic Domain Name System) Il servizio DNS alla base dei servizi di directory Microsoft incluso nelle versioni server da Windows_2000 in poi. Il DNS utilizza il protocollo di trasporto UDP e la porta 53 per soddisfare le richieste di risoluzione provenienti dagli host. I server DNS effettuano gli zone transfer usando il protocollo di trasporto TCP e la porta 53. Questa porta viene usata anche quando una query ha una risposta molto lunga. Il lato client del servizio DNS è normalmente implementato tramite librerie di sistema, che spesso lo integrano con altri servizi di risoluzione, come ad esempio WINS, NIS, o con la consultazione di file locali, in modo che un utente possa utilizzare un nome simbolico in un'applicazione ed ottenere la sua risoluzione in un indirizzo IP senza preoccuparsi di quale strumento è stato utilizzato per ottenere la risoluzione. Il sistema DNS in Internet Qualsiasi rete IP può usare il DNS per implementare un suo sistema di nomi privato. Tuttavia, il termine "nome di dominio" è più comunemente utilizzato quando esso si riferisce al sistema pubblico dei DNS su Internet. Questo è basato su 13 "root server" universali, i cui indirizzi IP sono distribuiti indipendentemente dal DNS tramite un file detto "root hints" (letteralmente: indizi per la radice). Da questi server principali, il DNS viene poi delegato ad altri server DNS che si occupano dei nomi all'interno di parti specifiche dello spazio dei nomi DNS. Dieci dei tredici root server sono, almeno nominalmente, situati negli USA. Tuttavia, dato l'accesso a molti di essi è realizzato tramite indirizzamento anycast, che permette di assegnare a più computer lo stesso indirizzo IP per fornire un servizio uniforme su vaste aree geografiche, la maggior parte dei server sono in effetti localizzati al di fuori degli Stati Uniti. Il proprietario di un nome di dominio è rintracciabile in un database chiamato Whois: per molti domini di primo livello un Whois base è gestito dalla IANA, con il Whois dettagliato mantenuto dall'autorità di registrazione che controlla quel dominio. Per i più di 240 domini nazionali l'autorità di registrazione gestisce in esclusiva il Whois per il dominio di competenza. Politica L'attuale modalità di controllo del sistema DNS offre spesso alcune criticità. Il problema più comune è l'abuso monopolistico da parte di grosse societa maintainer, come ad esempio l'americana VeriSign, Inc..