# Rete di computer

Una rete di computer o rete informatica è un tipo di rete di telecomunicazioni a commutazione di pacchetto caratterizzata da un insieme di dispositivi hardware con opportuni software di commutazione, ossia nodi di commutazione collegati l'uno con l'altro da appositi canali di comunicazione (link), tali da fornire un servizio di comunicazione che permette lo scambio e la condivisione di dati e la comunicazione tra più utenti o dispositivi distribuiti o terminali (host): i dati vengono trasmessi e trasferiti sotto forma di pacchetti dati (PDU, Protocol Data Unit), composte da un header (che contiene i dati per il recapito del messaggio) e un body (che contiene il corpo del messaggio), il tutto regolato da precisi protocolli di rete.

## Descrizione

La rete fornisce un servizio di trasferimento dati, attraverso comuni funzionalità di trasmissione e ricezione, ad una popolazione di utenti distribuiti su un'area più o meno grande. Esempi di rete informatica sono le reti LAN, WLAN, WAN e GAN la cui interconnessione globale dà vita alla Rete Internet.
Le reti di computer generano traffico di tipo fortemente impulsivo ovvero pacchettizzato e asincrono, a differenza della rete telefonica sincrona, e per questo hanno dato origine e usano la tecnologia della commutazione di pacchetto, piuttosto che la Commutazione di circuito come per le linee telefoniche tradizionali. Nate come reti dati private tra servizi della difesa e le università, a partire dagli anni 2000 le reti internet si sono diffuse verso le reti integrate nei servizi di rete telefonica, con l'avvento dell'ISDN, con la tecnologia ADSL e attualmente tramite la Fibra ottica e la telefonia mobile con 4G LTE.

### Host, nodi di commutazione e collegamenti

* Host - dispositivo terminale di rete (client e server)
* Nodo di commutazione - router (livello 3) o switch (livello 2)
* Link o collegamenti tra nodi o tra host e nodi
* Interfaccia o scheda di rete sugli host e sui nodi

### Vantaggi e problemi di una rete internet

La costruzione delle prime reti risale al 1969 quando viene creato il primo nodo di IMP (Interface Message Processor) dell'ARPANET a UCLA. La tecnologia delle reti e la sua successiva diffusione in giro per il mondo ha permesso rivoluzionari sviluppi nell'organizzazione delle risorse di calcolo e nella distribuzione di dati e risorse in giro per il mondo grazie alle dorsali oceaniche in fibra ottica.
Si possono indicare almeno quattro punti di forza di una rete dati distribuita rispetto alla concentrazione di tutto su un singolo dispositivo e in un singolo luogo:
* fault tolerance (resistenza ai guasti): grazie alla ridondanza dei dati il guasto di una macchina non blocca tutta la rete, ed è possibile sostituire il computer guasto facilmente e in lasso di tempo breve (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 un singolo mainframe;
* gradualità della crescita e flessibilità (scalabilità): l'aggiunta di nuovi nodi e terminali a una rete già esistente e la sua espansione sono semplici e poco costose;
* facilità di accesso ai dati: ovunque ci si trovi nel mondo i dati salvati sui sistemi connessi a internet sono sempre accessibili e disponibili con tempi di attesa in media molto brevi.
Tuttavia una rete mostra alcuni punti deboli:
* scarsa sicurezza: un malintenzionato può avere accesso più facilmente ad una rete di computer: quando un virus infetta un sistema della rete questo si propaga rapidamente agli altri, l'opera di individuazione e rimozione della minaccia può risultare lunga e difficile;
* alti costi di costruzione e di manutenzione: creare una infrastruttura di rete è molto complicato e costoso in quanto richiede molto lavoro, depositare i cavi, costruire centraline e centrali di commutazione;
* furto dei dati: se i dati non sono criptati possono essere rubati da chi li intercetta sulla connessione (sniffing);
* impersonificazione: senza fattori di autenticazione un qualsiasi utente della rete si può spacciare per qualcun altro.

## Tipi di reti

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

### Classificazione in base all'estensione geografica

A seconda dell'estensione geografica, si distinguono diversi tipi di reti:
* 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 nell'ordine del centinaio di metri.
* si parla di rete universitaria o 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 telecomunicazioni. Tale condizione facilita la realizzazione di una rete di interconnessione ad alte prestazioni e a costi contenuti.
* 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 ricopre un'area geografica molto estesa e che intercorre nelle reti precedenti.
* si parla di rete globale o GAN (Global Area Network) se la rete collega calcolatori dislocati in tutto il mondo, anche via satellite.
* si parla di rete interna o BAN (Body Area Network) se la rete è composta da dispositivi intelligenti che l'uomo usa o indossa per aiutarsi nella vita che interagiscono tra di loro e con altre reti esterne.

### Classificazione in base al canale trasmissivo
#### Reti locali

Le reti locali (Local Area Network o LAN) vengono realizzate tipicamente adoperando un sistema di cablaggio strutturato con cavi UTP in categoria 5 o superiore, che servono uno o più edifici usati da una stessa entità organizzativa, che realizza e gestisce la propria rete, eventualmente con la cooperazione di aziende specializzate. In molti casi il cablaggio è complementato o sostituito da una copertura wireless. Le LAN vengono realizzate soprattutto con la tecnologia ethernet che supportano velocità di 1 Gbit/s o anche 10 Gbit/s, su cavi in rame dalle caratteristiche adeguate (CAT5 o superiore), o su fibra ottica.

#### Reti pubbliche

Le reti pubbliche sono gestite da operatori del settore e offrono servizi di telecomunicazione a privati e aziende in una logica di mercato. Per poter offrire servizi al pubblico, è necessario disporre di una infrastruttura di distribuzione che raggiunga l'intera popolazione.
Per ragioni storiche, parecchie reti pubbliche sono 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 la sua pervasività e gli alti investimenti che servivano per sostituirla è stata adattata al trasporto di dati mediante diverse tecnologie, ad oggi è stata quasi interamente sostituita dalla fibra ottica:
* i modem per codificare segnali digitali sopra le comuni linee telefoniche analogiche. Il vantaggio di questa tecnologia è che non richiede modifiche alla rete distributiva esistente in quanto usa la linea telefonica già esistente e trasmette i dati ad una frequenza superiore alla banda telefonica che arriva a 4KHz. Sono necessari due modem ai due capi di una connessione telefonica attiva per stabilire una connessione. 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 (Integrated Services Digital Network) trasmettendo dati e voce su due canali telefonici in tecnologia digitale. Mediante appositi adattatori, è possibile inviare direttamente dati digitali. La tecnologia ISDN, quando è usata per la trasmissione di dati, arriva ad una velocità massima di 128 Kbit/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 64 Kbit/s. Ci sarebbe un terzo canale usato per il segnale ma non per la comunicazione con una capacità di 16 Kbit/s (Esso non viene mai utilizzato per i dati).
Usando 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) usa 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'uso di filtri negli impianti telefonici domestici per separare le frequenze impiegate 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 usare il telefono, in quanto le frequenze della voce e dei dati non si sovrappongono. Questa tecnologia è inoltre chiamata Asymmetric 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 a 12 Mbit/s o anche 20 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 verifica quando molte utenze telefoniche sullo stesso cavo di distribuzione usano il servizio ADSL. Questo fa sì che non si possa attivare il servizio ADSL su più di circa il 50% delle linee di un cavo di distribuzione.
* la fibra ottica è attualmente usata in più varianti FTTx: può arrivare fino al cabinet o anche in casa, ha velocità di trasmissione dati che arrivano fino a 1 Gbit/s per gli utenti domestici.

#### Reti di trasporto

Capacità ancora superiori sono necessarie per trasportare il traffico aggregato tra le centrali di un operatore di telecomunicazioni attraverso quella che è comunemente chiamata rete di trasporto. Con tecnologie più costose, tipicamente usate dai provider, si raggiungono velocità di 40 Gbit/s per singola fibra ottica. Su una singola fibra è poi possibile inviare molteplici segnali attraverso una tecnica di multiplazione chiamata (Dense) Wavelength 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. Negli Stati Uniti d'America il progetto Internet2, cui collaborano la NASA, la difesa e le università americane, connette già molti campus alla velocità di 2 Gigabit/s (disponibili anche per studenti), con miglioramenti di TCP/IP per poter sfruttare alte velocità di trasmissione.

## Architettura fisica

Una rete internet è divisa e gestita da vari ISP (compagnie telefoniche) di vario livello in quanto tale divisione è economicamente più vantaggiosa:
* ISP di primo livello (o globali) che controllano il nucleo della rete e sono direttamente connessi agli ISP di pari livello, a loro poi si collegano gli ISP di livello inferiore;
* ISP regionali, fanno da tramite tra gli ISP di primo livello e quelli di accesso;
* ISP di accesso (o locali), a loro si connettono tutti gli utenti minori.

### Topologia di rete

La topologia di rete è il modello geometrico (grafo) finalizzato a rappresentare le relazioni di connettività, fisica o logica, tra gli elementi costituenti la rete stessa (detti anche nodi). Il concetto di topologia si applica a qualsiasi tipo di rete di telecomunicazioni: telefonica, rete di computer, Internet.

### Sezioni di rete

In ogni rete di grandi dimensioni (WAN), è individuabile una sezione di accesso, che dà vita alla rete di accesso, e una sezione di trasporto, che dà vita alla rete 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, usato 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 56 Kbit/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 accesso 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, usando se è necessario anche nodi di transito. È sede quindi di risorse condivise sia di trasporto dati sia di elaborazione. Dal punto di vista strutturale, una rete di trasporto è costruita quasi esclusivamente attraverso fibre ottiche (es. Backbone).

### Componenti hardware

Principali componenti hardware detti anche dispositivi di rete:
* modem
* switch
* router
* access point
* client
* server
* DNS
* proxy
* nat
I componenti software di una rete sono detti protocolli di rete. Potete trovarne una lista qui.
Solitamente, nel gergo dei progettisti di rete, con la dizione apparati di rete s'intendono i dispositivi dell'infrastruttura a supporto di server e cablaggio, considerati essenziali. In reti che supportano domini complessi, la tipologia di apparati usati è ancora più ricca e varia.

### Tecnologie trasmissive

* Doppino telefonico
* Cavo Ethernet
* Cavo coassiale
* Fibra ottica
* Antenne
* Collegamenti satellitari

## Architettura logica
### Architettura client-server

Spesso le reti informatiche sono organizzate sotto un'architettura client-server dove il client istanzia una richiesta di servizio al server per usufruire di risorse condivise tra tutti gli utenti della rete. I client sono solo in grado di inviare richieste ai server e questi ultimi solo di comunicare tra di loro e di rispondere ai client.
Un dominio è una rete con architettura client-server dotata di specifiche caratteristiche logiche e strumenti.

### Stack protocollare

Una rete di calcolatori è strutturata a livello logico-funzionale in una tipica architettura di rete cioè con uno stack protocollare per l'espletamento dell'insieme delle funzionalità di rete. I vari protocolli servono a gestire specifiche funzionalità della rete nei suoi vari livelli in modo che tutto funzioni correttamente. Ciò serve a permettere una corretta comunicazione tra dispositivi anche molto diversi tra loro.
La rete è divisa in 5 livelli (dal più alto al più basso):
* livello 5: applicativo, i protocolli di livello applicazione sono distribuiti su più sistemi periferici e permette alle applicazioni presenti su questi sistemi di comunicare tra loro scambiandosi messaggi;
* livello 4: trasporto, implementa i protocolli che si occupano del trasferimento del messaggio e della loro frammentazione in pacchetti. I principali protocolli sono il TCP e l'UDP;
* livello 3: rete, implementa il protocollo IP che si occupa dell'instradamento e dell'inoltro dei datagrammi (o pacchetti) da un host a un altro tramite degli appositi algoritmi di routing;
* livello 2: linea (o collegamento), i servizi forniti da questo livello dipendono dallo specifico protocollo usato e dalla tecnologia trasmissiva della rete;
* livello 1: fisico, si occupa dell'invio e della lettura dei singoli bit delle trame.

### Protocolli di trasmissione
#### TCP (Transmission Control Protocol)

Il servizio TCP (di livello 4, trasporto) è di tipo connection-oriented (tra mittente e destinatario viene instaurata una connessione prima di procedere alla trasmissione dei dati). Fornisce un controllo sulla congestione della rete regolando la quantità dei dati trasmessi istante per istante per impedire di sovraccaricare la rete. Con controllo di flusso il trasmettitore invia tanti dati quanti il ricevitore è in grado di ricevere. Controllo d'errore, in caso di errori o perdita dei dati questi ultimi vengono ritrasmessi.

#### UDP (User Datagram Protocol)

Il servizio UDP (di livello 4, trasporto) è di tipo connectionless (invio i dati senza aver instaurato una connessione con il destinatario). Questo servizio non è affidabile in quanto non fornisce garanzie riguardo alla corretta ed effettiva consegna dei messaggi (chiamati datagram), non esegue alcun tipo di controllo di flusso e congestione.

#### IP (Internet Protocol)

L'IP (di livello 3, rete) si occupa della multiplazione dei pacchetti, ovvero scrittura e lettura degli indirizzi IP del mittente e del destinatario. Il suo sistema di trasmissione è best-effort, ovvero fa il possibile perché i pacchetti giungano a destinazione ma non offre alcun tipo di garanzia e controllo d'errore, controlla solo che gli indirizzi non siano danneggiati. Viene anche implementato il TTL (Time To Live) ovvero il tempo di vita del pacchetto espresso in numero massimo di router che il pacchetto può attraversare prima di essere scartato.

### Router e switch

I router sono apparati fondamentali della rete che permettono la connessione di più host tra di loro e tra reti diverse. Un router possiede più interfacce di rete, anche diverse tra loro, ed è implementato fino al livello 3 ovvero il livello di trasporto. Questo apparato di rete (o nodo) tramite il routing permette a due nodi, non collegati direttamente, di comunicare tra di loro mediante la collaborazione di altri nodi. Si avvale di una tabella di routing e relativi algoritmi per determinare il percorso ideale per l'inoltro dei pacchetti. Per eseguire l'inoltro dei pacchetti il router dispone di più buffer (di ingresso e di uscita) dove vengono salvati in modo temporaneo i dati. Dalla porta in ingresso viene letta la destinazione del pacchetto, il processore del router tramite la tabella di routing decide la porta di uscita, il pacchetto viene trasferito dal buffer di ingresso a quello di uscita per essere trasmesso.

### Architettura peer-to-peer

In questa architettura tutti i dispositivi connessi alla rete hanno le stesse capacità, tutti possono inviare e ricevere dati comunicando con gli altri peer. Vi è un server che tiene una lista aggiornata di tutti i computer connessi in modo tale che chi si connette è in grado di iniziare subito a comunicare con i peer adiacenti. Una particolare politica adottata da questo sistema è scaricare per primi i dati più rari per poi procedere a scaricare i dati più facilmente reperibili.

## Simulatori di rete

Per simulatore di rete si intende un programma che consente di definire lo schema fisico di una rete e i dispositivi che la compongono (router, host, ecc), di modificarne la configurazione e di eseguire dei test sul loro corretto funzionamento. Possono essere utilizzati per scopi didattici, oppure per dimostrare la fattibilità di un progetto. Alcuni di essi sono tradizionali applicazioni da installare sul proprio computer, altre sono applicazioni web, oppure distribuzioni Linux.
* CISCO Packet Tracer (applicazione locale, software proprietario)
* Juniper vLabs (applicazione web, software proprietario)
* Netkit, GNS3 (distribuzione Linux, software libero)
* Imunes (eseguibile in container Linux e FreeBSD, software libero)