Reti di Calcolatori


Una rete di calcolatori è un sistema che permette la condivisione d’informazioni e risorse (sia hardware che software) tra diversi calcolatori. Il sistema fornisce un servizio di trasferimento d’informazioni a una popolazione d’utenti distribuiti su un'area in parte ampia.

Le reti di calcolatori generano traffico di tipo fortemente impulsivo, a differenza del telefono, e per questo ha dato origine, e usano tuttora, la tecnologia della commutazione di pacchetto.

Commutazione Di Pacchetto

La commutazione di pacchetto è una tecnica di accesso multiplo a ripartizione nel tempo, utilizzata per condividere un canale di comunicazione tra più stazioni in modo non deterministico, utilizzata generalmente per realizzare reti di calcolatori. Si distingue dalla commutazione di circuito, che è 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.

Rete / Mainframe

La costruzione 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, e in seguito l'emergere dei computer personali a basso costo, ha 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:

  • 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 in magazzino);

  • Economicità: come accennato sopra, hardware e software per computer costano meno di quelli per i mainframe;

  • Gradualità della crescita e flessibilità: l'aggiunta di nuove potenzialità a una rete già esistente e la sua espansione è semplici e poco costose.

Tuttavia una rete ha alcuni punti deboli rispetto ad un mainframe:

  • 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 worm abbia 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;

  • 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

Esiste una grande varietà di tecnologie di rete e di modelli organizzativi, che possono essere classificati secondo diversi aspetti:

CLASSIFICAZIONE SULLA BASE DEL’ESTENSIONE GEOGRAFICA

Secondo l’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 un’estensione d’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 un’estensione entro alcuni chilometri

  • 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 universitaria o CAN (Campus Area Network), intendendo la rete interna ad un campus universitario, o ad un insieme d’edifici adiacenti, separati tipicamente da terreno di proprietà dello stesso ente, che possono essere collegati con cavi propri senza presentare ricorso ai servizi d’operatori di telecomunicazioni. Tale condizione facilita la realizzazione di una rete d’interconnessione ad alte prestazioni ed a costi contenuti.

  • Si parla di rete metropolitana o MAN (Metropolitane 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.

CLASSIFICAZIONE IN BASE AL CANALE TRASMISSIVO

Reti Locali

Le reti locali vengono realizzate tipicamente utilizzando un sistema di cablaggio strutturato con cavi UTP in categoria 5 o superiore, che serve uno o più edifici utilizzati tipicamente da una stessa entità organizzativa, che realizza e gestisce la propria rete, eventualmente con la cooperazione di aziende specializzate.

In molti casi, il cablaggio è complimentato o sostituito da una copertura wireless.

Le LAN vengono realizzate soprattutto con la tecnologia Ethernet, e supportano velocità di 10/100 Mega bit/s, o anche 1 Giga bit/s, su cavi in rame dalle caratteristiche adeguate (CAT5 o superiore), o su fibra ottica.

Reti pubbliche - Distribuzione

Le reti pubbliche sono gestite da operatori del settore, e offrono servizi di telecomunicazione a privati ed aziende in una logica di mercato.

Per poter offrire servizi al pubblico, è necessario disporre di un’infrastruttura di distribuzione che raggiunga l'intera popolazione.

Per ragioni storiche, la gran parte delle reti pubbliche è basate sul doppino telefonico (dette anche POTS, Plain Old Telephone System). Questa tecnologia era stata studiata per supportare il servizio di telefonia analogica, ma data gli alti investimenti che sarebbero necessari per sostituirla è stata adattata al trasporto di dati mediante diverse tecnologie:

  • I modem per codificare segnali digitali sopra le comuni linee telefoniche analogiche. Il grande vantaggio di questa tecnologia è che non richiede modifiche alla rete distributiva esistente. Sono necessari due modem ai due capi di una connessione telefonica attiva per stabilire una connessione. Molti fornitori di servizio offrono un servizio di connettività Internet via modem mediante batterie di modem centralizzate. La velocità è limitata a circa 56 Kbit/s, 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 dal fattore di compressione dei dati trasmessi.

  • Le reti ISDN trasmettendo dati e voce su due canali telefonici in tecnologia digitale. Mediante appositi adattatori, è possibile inviare direttamente dati digitali. La tecnologia ISDN è ormai molto diffusa nei paesi sviluppati. Usandola per la trasmissione di dati, arrivano ad una velocità massima di 128kBit/s, 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 64kBit/s. Ci sarebbe un terzo canale untilizzato per il segnale ma non per la comunicazione con una capacità di 16Kbit/s (Esso non viene mai utilizzato per i dati).

Utilizzando modem analogici o ISDN, è possibile stabilire una connessione dati diretta tra due qualsiasi utenze della rete telefonica o ISDN rispettivamente.

  • La tecnologia ADSL (Asymmetric Digital Subscriber Line) utilizza una porzione della banda trasmissiva disponibile sul doppino telefonico dalla sede dell'utente alla centrale telefonica più vicina per inviare dati digitali. È necessaria 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. 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/s in download e 512 Kbit/s in upload, ma per certi abbonamenti la velocità di download può arrivare anche a 12 Mbit/s, o anche 24 Mbit/s, 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 verfica 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.

ADSL è l'ultimo sviluppo sull'infrastruttura esistente di doppino telefonico.

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 o nelle condutture del gas.

  • 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.

Reti di trasporto

Capacità ancora superiori sono necessarie per trasportare il traffico aggregato tra le centrali di un operatore di telecomunicazioni.

Con tecnologie più costose, tipicamente utilizzate dai providers (gestori), si raggiungono velocità di 40 Giga bit/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 (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.

CLASSIFICAZIONE IN BASE ALLA LORO TOPOLOGIA

Esistono due topologie principali, in base alla tecnologia assunta come norma 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 collegamenti tra coppie di elaboratori, che formano grafi di vario tipo (stella, anello, albero, grafo completo, anelli secanti ecc.). Per passare da una sorgente ad una destinazione, l'informazione deve attraversare diversi elaboratori intermedi. I protocolli di routing gestiscono le strade che i dati devono seguire per arrivare correttamente a destinazione. Il routing è l'insieme delle problematiche relative al corretto ed efficace instradamento sulla rete dei dati.


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. 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 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.

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 distinzione tra:


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 ATM 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(o datagram), 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 pacchetto 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.


Sezione 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 ad imporsi.

Principali componenti di una rete

  • Principali componenti hardware:

    • Firewall

    • Router

    • Switch o Hub

    • Bridge

    • Cablaggio

  • I componenti software di una rete sono detti protocolli di rete. Potete trovarne una lista qui.


Computer


Blue Gene, macchina di grandi dimensioni, con potenze di calcolo dell'ordine del Petaflops, in un centro di ricerca (High Energy Accelerator Research Organization, KEK)

Un computer, dal latino computare (calcolare) attraverso l'inglese, to compute (calcolare), anche detto calcolatore, elaboratore, oppure ordinatore, è un dispositivo fisico che implementa il funzionamento di una macchina di Turing.

Questa definizione, sebbene rigorosa, non dice molto su quello che in pratica un computer è o può fare: eseguire operazioni logiche, come calcoli numerici. Dalla nascita della struttura più elementare, in seguito si sono sviluppati molti tipi diversi di computer, costruiti e specializzati per vari compiti. Essi vanno da macchine che riempiono intere sale, capaci di qualunque tipo di elaborazione, a circuiti integrati grandi pochi millimetri che controllano minirobot e orologi da polso. Ma a prescindere da quanto siano grandi e da che cosa facciano, possiedono tutti quattro cose: (almeno) una unità centrale di elaborazione o CPU, (almeno) una memoria, e almeno un dispositivo di ingresso/uscita, nonchè un canale perchè possano dialogare tra loro[1], in accordo all'architettura di von Neumann.

Pacchetti

In una rete a commutazione di pacchetto (PBN, Packet Based Network) 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 elaborazione - il tempo necessario a ciascun commutatore per processare il pacchetto. Se un commutatore agisce a diversi livelli, ciascun livello aggiungerà una sua componente di ritardo.

    • analizzare l'intestazione del pacchetto e determinare il relativo instradamento

    • controllo degli errori a livello di bit nel pacchetto, tipicamente attraverso uno o più algoritmi di checksum

  • 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, lo elaborano, e poi lo accodano per la ritrasmissione. Pertanto il ritardo di trasmissione dei commutatori attraversati devono essere sommati tra loro.

    • In alcuni casi si usa invece la tecnica cut-through, per cui il commutatore, appena ha ricevuto informazioni sufficienti ad instradare il pacchetto, inizia a trasmetterlo sulla porta in uscita, se questa non è già impegnata. In questo caso, quando il pacchetto trova la porta di uscita libera, il ritardo di trasmissione non si accumula.

  • 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 grossolanamente in 5 μs/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 occupa la teoria delle code.

    • Se vengono applicate tecniche di qualità di servizio, alcune classi di pacchetti otterranno un trattamento preferenziale alla coda in uscita, per cui avranno diverse distribuzioni del ritardo di coda.

È 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

La perdita di pacchetti può avvenire in diverse occasioni. Un pacchetto può perdersi in quanto viene ricevuto con un errore e quindi scartato, oppure quando il buffer di un commutatore, sia nelle porte di ingresso che in quelle di uscita, risulta saturo e quindi si trova costretto a scartarlo.

Per questa ragione, una rete a pacchetto non può generalmente garantire che tutti i pacchetti inviati arrivino a destinazione.

TCP risolve questo problema rinviando i pacchetti persi (i pacchetti per i quali non riceve un ACK positivo).

Commutazione di pacchetto e commutazione di circuito

In una rete a commutazione di circuito la capacità del canale trasmissivo è interamente dedicata ad una specifica comunicazione. In una rete di questo tipo (ad esempio, quella telefonica), si stabilisce dunque una connessione diretta tra sorgente e ricevente al momento di inizio della comunicazione (ad esempio quando inizia la chiamata telefonica). Invece 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.


Time Division Multiple Access

L'accesso multiplo a ripartizione nel tempo, più conosciuto come Time Division Multiple Access (corrispondente termine di lingua inglese), acronimo TDMA, è una tecnica di multiplazione numerica in cui la condivisione del canale è realizzata mediante ripartizione del tempo di accesso allo stesso da parte degli utenti.

Vi sono due tipi di multiplazione a divisione di tempo:

  • multiplexing a divisione di tempo sincrono (STDM), noto anche come multiplexing a divisione di tempo quantizzato, prevede che ogni dispositivo abbia a disposizione un'identica porzione di tempo e che questi ne vengano in possesso attraverso uno schema di tipo round robin (vedi ad esempio scheduler). Quando si dice semplicemente multiplexing a divisione di tempo (TDM), si intende normalmente questa tecnica. Vedi Time Division Multiplexing.

  • multiplexing statistico, simile a STDM, con la differenza che ai dispositivi che non devono trasmettere dati non viene assegnato il controllo del canale di trasmissione, vedi commutazione di pacchetto.


Mainframe

UNIX di fascia alta, molti produttori promuovono le tecnologie di virtualizzazione, in qualche maniera cercando di fare propri i capisaldi di progettazione del mainframe. Utilizzando il sistema operativo z/OS, è possibile gestire in maniera efficiente e con garanzie di protezione e isolamento carichi di lavoro diversi utilizzando sofisticate tecnologie di Workload Management. Inoltre, i mainframe possono incrementare la propria capacità elaborativa in maniera dinamica e granulare. I mainframe hanno anche caratteristiche uniche di esecuzione priva di errori. I server System z9 eseguono ogni istruzione due volte, comparano i risultati, e, in caso di discordanza determinano la presenza di una malfunzione ed attivano in modo automatico unità elaborative di riserva. Questa caratteristica, che si trova anche nei sistemi HP NonStop, è nota come lock-stepping, poiché entrambi i processori fanno i loro passi (ovvero le istruzioni) insieme.

Storia

Molti produttori fabbricarono i computer mainframe a partire dalla fine degli anni 50 fino agli anni 70. A quell'epoca erano conosciuti come "IBM e i sette nani": Burroughs, Control Data, General Electric, Honeywell, NCR, RCA, e UNIVAC. Il dominio di IBM crebbe dalla serie 700/7000 e successivamente lo sviluppo della serie in architettura S/360. Quest'ultima architettura ha continuato ad evolversi negli attuali mainframe zSeries/z9 che, assieme con gli allora mainframe Burroughs e ora i mainframe Unisys basati su MCP, sono tra le poche architetture mainframe che ancora esistono. Detto ciò, sebbene essi possano ancora fare girare il codice System/360 a 24 bit, i server CMOS a 64-bit zSeries and System z9 hanno quasi niente fisicamente in comune con i vecchi sistemi. Il più grandi degli ultimi concorrenti dell'IBM era anche spesso soprannominato "Il BUNCH" dalle loro iniziali (Burroughs, UNIVAC, NCR, CDC, Honeywell). Produttori di rilievo al di fuori degli Stati Uniti furono Siemens e Telefunken in Germania, ICL nel Regno Unito, e Fujitsu, Hitachi, e NEC in Giappone. L'Unione Sovietica e i paesi del patto di Varsavia fabbricarono copie simili ai mainframe IBM durante la Guerra Fredda.

La domanda in contrazione e la dura competizione causò una scossa nel mercato nei primi anni 80 - RCA vendette a UNIVAC anche GE uscì; Honeywell fu comprata da Bull; UNIVAC divenne una divisione di Sperry che successivamente si fuse con Burroughs per formare la Unisys Corporation nel 1986. Nel 1991, AT&T per un breve periodo possedettero NCR. Durante lo stesso periodo, le aziende trovarono che i server basati su progettazione microcomputerizzata potevano essere impiegati a una frazione del prezzo di acquisizione e offrire agli utenti locali un maggior controllo sui loro sistemi date le politiche e le pratiche IT a quel tempo. I terminali usati per interagire con i sistemi mainframe furono gradualmente rimpiazzati dai personal computer. Conseguentemente, la domanda crollò e le nuove installazione di mainframe furono limitate soprattutto alle macchine per servizi finanziari e governativi. Nei primi anni 1990, c'era un consenso tra gli analisti di industria che quello del mainframe era un mercato morente in quanto le piattaforme mainframe furono incrementalmente rimpiazzate da reti di personal computer.

Quella tendenza iniziò ad invertirsi alla fine degli anni 90 poiché le aziende trovarono nuovi usi per i loro mainframe esistenti. Anche la crescita dell'e-business fortemente aumentò il numero di transazione di back-end processate dal software mainframe e il throughput dei database. Un altro fattore del crescente uso del mainframe è lo sviluppo del sistema operativo Linux, che può essere eseguito su molti sistemi mainframe, tipicamente in macchine virtuali. Linux consente agli utenti di avvantaggiarsi del software open source combinato con la RAS dell'hardware mainframe. La rapida espansione e lo sviluppo dei mercati emergenti, in particolare la Cina, sta spingendo maggiori investimenti sui mainframe per risolvere problemi computazionali estremamente difficili, per esempio fornire database unificati e in grado di processare un alto volume di transazioni per un miliardo di consumatori in vari settori d'industria (bancario, assicurativo, governativo etc.).

Mainframes e supercomputer

La distinzione tra supercomputer e mainframe non è semplicissima, tuttavia i supercomputer generalmente si focalizzano su problemi che sono limitati dalla velocità di calcolo, mentre i mainframe si focalizzano su problemi che sono limitati dall'input/output e l'affidabilità, differenze e somiglianze includono:

  • Entrambi i tipi di sistemi offrono la possibilità di calcolo parallelo. I supercomputer tipicamente la espongono al programmatore in maniera complessa, mentre i mainframe tipicamente la usano per eseguire molteplici task. Un risultato di questa differenza è che aggiungendo processori al mainframe spesso accelera l'intero carico di lavoro in modo trasparente.

  • I supercomputer sono ottimizzati per elaborazioni complesse che richiedono soprattutto grandi quantità di memoria, mentre i mainframe sono ottimizzati per elaborazioni relativamente più semplici che implicano però l'accesso rapido a grosse quantità di dati

  • I supercomputer sono spesso costruiti ad hoc per elaborazioni particolari I mainframe invece vengono utilizzati per un'ampia gamma di elaborazioni. Di conseguenza, la maggior parte dei supercomputer vengono assemblati per esigenze specifiche e usi particolari, mentre i mainframe tipicamente formano una parte della linea di modelli di un produttore.

  • I mainframe tendono ad avere un numero di processori di servizio che assistono i processori principali (per il supporto crittografico, la gestione dell'I/O, il monitoraggio, la gestione della memoria, etc.) cosicché il numero effettivo dei processori presenti è molto maggiore di quanto uno possa immaginare. Il design dei supercomputer tende a non includere così tanti processori di servizio poiché essi non aggiungono in modo apprezzabile potenza di calcolo grezza.

Prestazioni

La potenza elaborativa dei mainframe è storicamente misurata in MIPS (milioni di istruzioni per secondo). Oggigiorno l'unità, nonostante le origini del nome, non è più legata strettamente al numero di istruzioni eseguite dalla CPU ma è un'unità di misura relativa della potenza elaborativa delle macchine, ottenuta a seguito di benchmark con carichi di lavoro predeterminati in un ambiente non limitato da vincoli infrastrutturali. Il più piccolo mainframe System z9 IBM oggi ha la potenza di 26 MIPS e il più grande 17,801 MIPS. La tecnologia IBM del Parallel Sysplex può aggregare in cluster fino a 32 di questi sistemi, facendoli apparire come una singola piattaforma elaborativa di circa 221,248 MIPS. Tra gli addetti del settore, si sa da tanto tempo che la misura dei MIPS, intesa semplicemente come il numero di istruzioni al secondo in milioni, è misura fuorviante nel dimensionamento delle macchine e spesso scherzosamente definita come Meaningless Indicator of Processor Speed o Meaningless Information on Performance for Salespeople. Le complesse architetture CPU dei moderni mainframe hanno ridotto la rilevanza dei valori in MIPS come numero effettivo di istruzioni eseguite al secondo. Allo stesso modo, i moderni design di sistema con prestazioni bilanciate si focalizzano sia sulla potenza della CPU sia sulla capacità di I/O, e le capacità di virtualizzazione rendono le misure comparative anche più difficili. L'IBM pubblica da molti anni un insieme di rapporti di prestazioni chiamato LSPR (Large System Performance Reference) che tengono in conto diversi tipi di carichi di lavoro e costituiscono una misura più rappresentativa delle prestazioni di un sistema. Questi dati non sono disponibili per sistemi di altra architettura. Un termine di paragone attuale per la misurazione delle prestazioni di supercomputer ma anche mainframe sono i Flops (floating point operation per second), un indicatore del numero di operazioni in virgola mobile che una CPU riesce a calcolare in un secondo. I Flops sono applicabili anche ai pc commerciali, ma il valore di essi è così basso da perdere di significato, e comunque non utile per determinare la potenza di un computer per un uso domestico/professionale. Alla data di novembre 2008 il più potente supercomputer ha un valore di Flops che supera 1 milione di GFlops.

Sicurezza e vulnerabilità delle reti

La sicurezza delle reti è una problematica che nasce nel momento in cui si hanno più computer interconnessi fra loro: essi, infatti, offrono diverse vulnerabilità sfruttabili, più o meno facilmente, da terzi per intromettersi nel sistema ed intercettarne i dati. Un'importante aggravante deriva dal fatto che internet è nata come rete didattica in un ambiente universitario e le sue regole non prevedono metodi di sicurezza impliciti alla propria struttura: le difese devono essere messe in atto sulle macchine stesse o creando strutture di rete particolari. I principali punti deboli, ed i relativi attacchi, che minano alla sicurezza delle reti sono:

Numero di sequenza

L'attacco al numero di sequenza viene utilizzato per avere accesso al sistema ed intercettare informazioni importanti, quali login, password e dati riservati, che il sistema stesso trasmette al server. Poiché, durante una comunicazione tra computer attraverso una rete TCP, ad ogni pacchetto viene allegato un indirizzo IP ed un numero di sequenza (ossia un numero univoco), l'hacker dovrà in primo luogo mettersi in ascolto dei pacchetti internet e determinare l'indirizzo IP del server, e solo successivamente sarà in grado di controllare i numeri di sequenza dei pacchetti stessi. Questa operazione di monitoraggio ha lo scopo di permettere di prevedere quale sarà il prossimo numero di sequenza generato e dunque di insinuarsi fra il server e l'utente attraverso l'invio di un proprio pacchetto contrassegnato da tale numero. L'hacker, a questo punto, è in grado di intercettare le trasmissioni con l'utente poiché, conoscendo l'indirizzo IP del server, può generare pacchetti con numeri di senquenza e indirizzi IP corretti. Tale tipologia di violazione viene spesso effettuato in vista di un ulteriore attacco ad un altro server della rete.

Dirottamento del protocollo TCP (o TCP hijack)

Per i server connessi a internet, il dirottamento del protocollo TCP è la minaccia più grave, poiché consente all'hacker di entrare in un sistema operativo diverso dal proprio. Con questo procedimento, infatti, si possono aggirare host anche muniti di elevati livelli di sicurezza, proprio perché permette di aggirare i sistemi di password monouso. Contrariamente all'attacco al numero di sequenza, qui l'hacker ottiene l'accesso costringendo la rete ad accogliere come fidato il proprio indirizzo IP.

Altri tipi di minacce alla sicurezza delle reti sono le backdoor, che permettono all’hacker di entrare nuovamente e facilmente in un sistema che ha già violato, e i worm, che possono essere considerati i virus del sistema Internet.

Firewall

In Informatica, nell'ambito delle reti di computer, un firewall (termine inglese dal significato originario di parete refrattaria, muro tagliafuoco, muro ignifugo; in italiano anche parafuoco o parafiamma) è un componente passivo di difesa perimetrale 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.

Una prima definizione chiusa di firewall è la seguente:

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; in tal caso viene utilizzata una sola scheda di rete.

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.

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. Ciascun pacchetto viene valutato solamente sulla base delle regole configurate, e per questo un firewall di questo tipo è detto anche stateless. Alcuni packet filter, analizzando i flag dell'header TCP, sono in grado di discriminare un pacchetto appartenente ad una "connessione TCP stabilita (established)" rispetto a quelli che iniziano una nuova connessione, ma non sono in grado di riconoscere un pacchetto malevolo che finga di appartenere ad una connessione TCP stabilita. Molti router posseggono una funzione di packet filter.

  • Un firewall di tipo stateful inspection, tiene traccia di alcune relazioni tra i pacchetti che lo attraversano, ad esempio ricostruisce lo stato delle connessioni TCP. Questo permette ad esempio di riconoscere pacchetti TCP malevoli che non fanno parte di alcuna connessione. Spesso questo tipo di firewall sono in grado anche di analizzare i protocolli che aprono più connessioni (ad esempio FTP), inserendo nel payload dei pacchetti informazioni di livello rete e trasporto, permettendo così di gestire in modo puntuale protocolli di questo tipo.

  • I firewall di tipo deep inspection effettuano controlli fino al livello 7 della pila ISO/OSI, ovvero valutano anche il contenuto applicativo dei pacchetti, ad esempio riconoscendo e bloccando i dati appartenenti a virus o worm noti in una sessione HTTP o SMTP.

  • I cosiddetti Application Layer Firewall sono apparati che intercettano le connessioni a livello applicativo. A questa categoria appartengono i proxy. 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 lista di controllo degli accessi (ACL), che possono essere statiche (quindi modificabili solo tramite configurazione esplicita) o dinamiche (cioè che possono variare in base allo stato interno del sistema, come ad esempio nel Port knocking).

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 (Intrusion prevention system).

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.

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

La caratteristica fondamentale dei router è che la funzione di instradamento è basata sugli indirizzi di livello 3 (rete) del modello OSI (corrispondente al livello IP dello stack TCP/IP), a differenza dello switch che instrada sulla base degli indirizzi di livello 2 (collegamento) "MAC". Gli elementi della tabella di instradamento (o Routing Table) non sono quindi singoli calcolatori ma intere reti, ovvero sottoinsiemi anche molto ampi dello spazio di indirizzamento. Questo è fondamentale per la scalabilità delle reti, in quanto permette di gestire reti anche molto grandi facendo crescere le tabelle di instradamento in modo meno che lineare rispetto al numero di host .

In generale i router necessitano di essere configurati, non essendo dispositivi plug and play. A seconda della tipologia del router, per essere configurato esso fornisce un'interfaccia basata su web (accessibile digitando l'indirizzo del gateway nel browser) o attraverso un'apposita console a linea di comando su porta seriale (è il caso dei router CISCO, con sistema operativo IOS)

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

Per fare questo sono stati messi a punto dei protocolli di routing appositi, come OSPF, RIP e BGP, attraverso i quali i router si scambiano informazioni sulle reti raggiungibili.

Un router può interconnettere reti di livello 2 eterogenee, come ad esempio una LAN ethernet con un collegamento geografico in tecnologia Frame Relay o ATM. Inoltre, rispetto ad un bridge, un router blocca le tempeste broadcast. Molti router destinati al mercato domestico incorporano la funzionalità di access point per reti wireless Wi-Fi.

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.

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. Un router wire speed può inoltrare pacchetti alla massima velocità delle linee cui è collegato.

I Router di fascia media ed alta hanno normalmente una costruzione modulare, che permette di aggiungere interfacce verso reti di tipo diverso secondo la necessità.

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 software in esecuzione su diverse macchine possano comunicare correttamente, anche se sono stati realizzati 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 tale che ciascuno di essi utilizzi i servizi offerti dal livello inferiore, e fornisca servizi più "ricchi" a quello superiore. I diversi livelli in un host comunicano tra loro tramite le interfacce (figura 2) chiamate SAP (Service Access Point). 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 1). 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 alle 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 viaggiatore conoscere le operazioni che deve effettuare l'addetta, egli infatti otterrà ciò che vuole (avere i vestiti all'hotel d'arrivo), senza che ciò influisca affatto su 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.


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 un’intestazione, attraverso un’operazione detta incapsulamento (<<“imbustamento”>>). Il termine si applica anche ad alcune reti a commutazione di circuito, come SDH, dove l'incapsulamento è un circuito dedicato a trasmettere informazioni di controllo.

L'ISO

L'International Organisation for Standardisation (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

    • Bluetooth

    • DSL Digital Subscriber Line

    • RS-232

    • Ultra Wide Band (UWB)

  • Livello 2: datalink

    • Ethernet

    • Point-to-Point Protocol (PPP)

    • Frame Relay

    • Token ring

    • Wi-Fi

    • FDDI

    • ATM

  • Livello 3: rete

    • IP Internet Protocol

    • IPX

    • X.25

    • Dynamic Host Configuration Protocol (DHCP)

  • Livello 4: trasporto

    • TCP e UDP (usati su IP)

    • SPX (usato su IPX)

    • NetBIOS

  • Livello 5: sessione

  • Livello 6: presentazione

  • Livello 7: applicazione

    • Protocolli di servizio:

      • Dynamic Host Configuration Protocol - (DHCP)

      • Domain Name System - (DNS)

      • Network Time Protocol - (NTP)

      • Simple Network Management Protocol - (SNMP)

      • Lightweight Directory Access Protocol - (LDAP)

    • Protocolli di accesso a terminali remoti:

      • Telnet

      • Secure shell - (SSH)

    • Protocolli usati per realizzare il servizio di posta elettronica e newsgroup:

      • Simple Mail Transfer Protocol (SMTP)

      • Post Office Protocol (POP)

      • Internet Message Access Protocol (IMAP)

      • Network News Transfer Protocol (NNTP)

    • Protocolli di trasferimento file:

      • File Transfer Protocol - (FTP)

      • Hyper Text Transfer Protocol - (HTTP)

      • Internet Relay Chat - (IRC)

      • Gnutella

Implementazione

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, e i livelli superiori sono normalmente implementati in software (anche se alcune schede di rete possono prendersi carico di alcune operazioni di competenza di TCP). Il livello di trasporto è normalmente implementato all'interno del sistema operativo in spazio kernel, mentre il livello applicativo è implementato da processi in spazio utente.

Inoltre, osservando un pacchetto (reti) in transito (ad esempio, con uno sniffer), è possibile vedere che il pacchetto inizia con gli header dei livelli più bassi, fino al livello di trasporto. Il carico utile del livello di trasporto è organizzato dal livello applicazioni. Talvolta sono presenti anche dei "trailer", ovvero altre intestazioni di servizio poste in fondo al pacchetto. Questi si trovano in ordine inverso, ovvero si incontrano prima i trailer di livello superiore.