Bibliografia:
Computer Networking. Autori: James F. Kurose (University of Massachusetts, Amherst) Keith W. Ross (Polytechnic Institute of NYU).
La rete Internet ha lo scopo di offrire servizi. I componenti hardware e software di base che compongono Internet, e di una rete di calcolatori in generale, costituiscono l'infrastruttura di rete che fornisce servizi alle applicazioni distribuite.
Internet è una rete di computer che interconnette centinaia di milioni di dispositivi digitali in tutto il mondo. Fino a qualche anno fa, questi dispositivi erano esclusivamente i PC tradizionali: desktop, workstation e server. Questi computer memorizzano e trasmettono informazioni, come pagine Web e messaggi di posta elettronica. Oggi sono collegabili ad Internet anche sistemi terminali non tradizionali quali computer portatili, smartphone, tablet, televisori, console di gioco, Web cam, automobili, dispositivi di rilevamento ambientale, cornici fotografiche, apparecchi elettrici e impianti di allarme domestici. Per questa ragione, il termine rete di calcolatori sta diventando obsoleto, visto che a Internet si possono interconnettere molti dispositivi non tradizionali. Nella terminologia di Internet, tutti questi dispositivi sono chiamati host (ospiti di applicazioni) o sistemi terminali.
I Sistemi terminali comunicano sfruttando la rete di telecomunicazioni. Questa è formata da centrali di commutazione e canali. I canali possono essere realizzati con cavi di rame, fibra ottica o onde radio. I canali possono trasmettere dati a velocità diverse; la velocità di trasmissione di un canale è espressa in bit/secondo. Quando un sistema terminale ha dati da inviare a un altro sistema terminale, segmenta i dati e aggiunge alcuni byte di intestazione ad ogni segmento. Nella terminologia delle reti di calcolatori questi blocchi di dati sono chiamati pacchetti, questi vengono quindi inviati attraverso la rete al sistema terminale di destinazione, dove vengono riassemblati per ricostruire i dati originali.
Un dispositivo di rete, switch o router, riceve un pacchetto su uno dei suoi canali di comunicazione e lo smista verso il destinatario depositandolo su un altro canale di comunicazione. Un router è un dispositivo che funziona a livello Rete (liv. 3), mentre un switch funziona a livello collegamento (liv. 2). Entrambi inoltrano i pacchetti verso le loro destinazioni finali. I dispositivi di commutazione detti switch vengono usati nelle reti locali, mentre i router sono utilizzati per comunicare su una rete geografica. La successione di canali e di dispositivi attraversati da un pacchetto originato da un sistema terminale sorgente, fino al sistema terminale ricevente è detto percorso.
Le reti a commutazione di pacchetto sono per molti versi simili alle reti di autostrade, strade e intersezioni. Si consideri, ad esempio, una fabbrica che deve spostare una grande quantità di merce a qualche magazzino destinazione situato a migliaia di chilometri di distanza. In fabbrica, la merce è partizionata e caricata sui camion. Ciascuno dei camion poi viaggia in maniera indipendente attraverso la rete di autostrade, strade e incroci fino al magazzino di destinazione. Al magazzino di destinazione, il carico viene depositato e raggruppato con il resto della merce in arrivo dalla stessa spedizione. Pertanto, i pacchetti sono analoghi ai camion, le linee di comunicazione sono analoghe alle autostrade e strade, i dispositivi di commutazione sono analoghi alle intersezioni, e i sistemi terminali sono analoghi agli edifici. Proprio come un camion prende un percorso attraverso la rete di trasporto, un pacchetto intraprende un percorso attraverso una rete di telecomunicazioni.
I sistemi terminali accedono a Internet tramite l'Internet Service Provider (ISP), tra cui si distinguono: ISP residenziali, come le società via cavo o telefoniche locali; ISP aziendali, ISP universitari, e ISP che forniscono l'accesso Wi-Fi in aeroporti, hotel, bar e altri luoghi pubblici. Ogni ISP è di per sé una rete di dispositivi di commutazione e di canali. Gli ISP offrono una varietà di tipi di accesso in rete ai sistemi terminali, compreso l'accesso residenziale a banda larga come modem via cavo o DSL, accesso alla rete ad alta velocità, accesso wireless e accesso via modem sulla rete analogica a 56 kbps. Gli ISP offrono anche l'accesso a Internet ai fornitori di contenuti collegando i siti Web direttamente a Internet. Internet connette, tra loro, sistemi terminali, così anche gli ISP che forniscono l'accesso ai sistemi devono essere interconnessi. Questi ISP di livello inferiore sono interconnessi attraverso ISP nazionali e internazionali di livello superiore. Un ISP di livello superiore è costituito da router ad alta velocità interconnessi con collegamenti in fibra ottica ad alta velocità. Ogni rete di un ISP, di livello superiore o inferiore, è gestita in modo indipendente, esegue il protocollo IP ed è conforme a certe convenzioni di denominazione e indirizzi.
Sistemi terminali, commutatori, e altri dispositivi rispettano protocolli che controllano l'invio e la ricezione di informazioni attraverso Internet. Il Transmission Control Protocol (TCP) e l'Internet Protocol (IP) sono due dei protocolli più importanti di Internet. Il protocollo IP specifica il formato dei pacchetti che vengono inviati e ricevuti tra router e sistemi terminali.
È importante conoscere il ruolo svolto da ogni protocollo, in modo che un progettista possa creare sistemi e prodotti in grado di interagire e cooperare. Gli standard di Internet vengono sviluppati dalla Internet Engineering Task Force (IETF). I documenti IETF sono chiamati richieste di commenti (RFC). Le RFC nacquero come richieste di commentare i problemi di rete e il progetto dei protocolli. Le RFC tendono ad essere molto tecniche e dettagliate. Esse definiscono protocolli come TCP, IP, HTTP (per il Web) e SMTP (per e-mail). Ci sono attualmente più di 6.000 RFC. Altri organismi specificano anche le norme per i componenti di rete, in particolare per i collegamenti di rete. Il comitato IEEE 802, per esempio, specifica gli standard Ethernet e WiFi senza fili.
Internet può essere descritta da un punto di vista completamente diverso, cioè come un'infrastruttura che fornisce servizi alle applicazioni. Queste applicazioni includono la posta elettronica, la navigazione web, i social network, l'instant messaging, il Voice over-IP (VoIP), lo streaming video, i giochi distribuiti, la condivisione dei file peer-to-peer (P2P), la televisione su Internet, l'accesso remoto, e altro ancora. Le applicazioni sono dette distribuite in quanto sono organizzate in componenti che sono in esecuzione su sistemi terminali diversi e comunicano tra loro per scambiarsi dati. È importante sottolineare che le applicazioni Internet non sono eseguite sulle apparecchiature di rete.
Per illustrare cosa si intende per infrastruttura che fornisce servizi alle applicazioni, si supponga di avere una nuova ed interessante idea per un'applicazione distribuita per Internet, una che può dare grandi vantaggi all'umanità. Si potrebbero, ad esempio, scrivere i programmi in Java, in C, o in Python. Per la loro caratteristica di essere applicazioni distribuite per Internet, i programmi in esecuzione su sistemi terminali diversi dovranno comunicare i dati l'uno con l'altro. Come fa un programma in esecuzione su un sistema terminale ad istruire Internet che deve fornire dati a un altro programma in esecuzione su un altro sistema terminale?
I sistemi terminali collegati ad Internet forniscono una Application Programming Interface (API) che specifica come un programma in esecuzione su un sistema terminale chiede all'infrastruttura di Internet di fornire dati a un programma in esecuzione su un altro sistema terminale. Queste API Internet sono un insieme di regole o funzioni che il programma sorgente deve seguire in modo che Internet possa consegnare i dati al programma di destinazione. Una semplice analogia può chiarire il processo. Si supponga che Alice voglia inviare una lettera a Bob tramite il servizio postale. Alice, ovviamente, non deve solo scrivere la lettera (i dati) e inserirla nella cassetta postale. Il servizio postale esige che Alice chiuda la lettera in una busta; scriva il nome completo di Bob, l'indirizzo e il codice di avviamento postale al centro della busta; sigilli la busta; incolli un francobollo nell'angolo in alto a destra della busta; e, infine, inserisca la busta in una cassetta postale. Così, il servizio postale ha la sua API, o insieme di regole, che Alice deve seguire affinchè il servizio postale consegni la sua lettera a Bob. In modo simile, Internet ha un API che il programma sorgente dei dati deve usare affinchè Internet consegni i dati al programma destinatario.
Il servizio postale, naturalmente, fornisce più di un servizio ai propri clienti. Esso prevede la consegna espressa, la conferma della ricezione, la corrispondenza ordinaria e molti altri servizi. In modo simile, Internet fornisce molti servizi alle sue applicazioni. Quando si sviluppa un'applicazione Internet, il progettista deve scegliere uno dei Servizi di Internet per la sua applicazione.
Si è giunti così a formulare due descrizioni di Internet; una in termini di componenti hardware e software, l'altra in termini di un'infrastruttura per la fornitura di servizi alle applicazioni distribuite. Resta ancora molto da chiarire sul funzionamento di Internet. Cos'è la commutazione di pacchetto e cos'è il protocollo TCP/IP? Cosa sono i router? Quali tipi di collegamenti sono presenti in Internet? Che cosa è una applicazione distribuita? Come possono un tostapane o un sensore meteorologico essere collegati a Internet?
Per capire il concetto di protocollo di una rete di calcolatori si consideri il comportamento di una persona che vuole chiedere l'orario a qualcuno. Uno scambio tipico impone che un primo contatto sia costituito da un saluto (Ciao) per avviare la comunicazione con qualcun altro. La risposta tipica a un Ciao è un altro messaggio "Ciao". Implicitamente, si assume questa risposta come un'autorizzazione a procedere. Una risposta diversa da quella iniziale "Ciao" (come "Non seccarmi!" o "io non parlo italiano") potrebbe indicare una mancanza di volontà o incapacità di comunicare. In questo caso, il protocollo tra le persone implica che non si può chiedere l'orario. A volte non si ha la risposta e si ripete la domanda. Si noti che nel protocollo tra le persone, vengono inviati messaggi specifici a cui corrispondono azioni specifiche, oppure esistono eventi (come l'assenza di risposta entro un determinato intervallo di tempo) che comportano una certa azione da intraprendere. I messaggi trasmessi e ricevuti, e le azioni intraprese quando questi messaggi vengono inviati o ricevuti o il comportamento di una persona al verificarsi di altri eventi, svolgono un ruolo centrale in un protocollo. Se la gente usa protocolli differenti (ad esempio, una persona ha buone maniere ma l'altro no, o se uno comprende il concetto di tempo e l'altro no) il dialogo non può avvenire. Lo stesso vale in rete, ci vogliono due (o più) entità comunicanti che eseguono lo stesso protocollo, al fine di realizzare una comunicazione.
Si consideri una seconda analogia. In classe, l'insegnante sta illustrando i protocolli. Durante la spiegazione l'insegnante si ferma e chiede: "Ci sono domande?" (Un messaggio ricevuto da tutti gli studenti che non dormono). Un alunno alza la mano (la trasmissione di un messaggio implicito per l'insegnante). L'insegnante si rivolge all'alunno dicendo: "sì …" (Un messaggio trasmesso per incoraggiare a porre la domanda), a questo punto l'alunno espone la domanda (cioè trasmette il messaggio all'insegnante). Questi ascolta la domanda (riceve il messaggio) e risponde (trasmette la risposta alla classe). In questo processo si individuano la trasmissione e la ricezione di messaggi e una serie di azioni convenzionali adottate quando questi messaggi vengono inviati e ricevuti.
Un protocollo di rete è simile a un protocollo adottato tra le persone, tranne che i soggetti che si scambiano messaggi e, di conseguenza, prendono le opportune misure, sono componenti hardware o software di qualche dispositivo (computer, smartphone, tablet, router o altro dispositivo di rete). Tutta l'attività in Internet che coinvolge la comunicazione tra due o più entità remote è disciplinata da un protocollo. Ad esempio, i protocolli hardware attuati tra due computer collegati fisicamente controllano il flusso di bit sul filo che collega le due schede di interfaccia con la rete; i protocolli di controllo della congestione nei sistemi intermedi regolano la velocità con cui i pacchetti vengono trasmessi tra mittente e destinatario; i protocolli dei router determinano il percorso di un pacchetto dalla sorgente alla destinazione.
Come esempio di un protocollo di una rete di calcolatori con i quali si ha familiarità, si consideri che cosa succede quando si effettua una richiesta ad un server Web, cioè, quando si digita l'URL di una pagina Web nel browser. In primo luogo, il computer invia un messaggio di richiesta di connessione al server Web e attende una risposta. Il server Web quando avrà ricevuto completamente il messaggio di richiesta di connessione, restituisce un messaggio per indicare che la connessione è stata stabilita. Sapendo che ora è disponibile la connessione, il browser può procedere per richiedere il documento Web, il computer invia il nome della pagina Web che vuole recuperare dal server Web in un messaggio GET. Infine, il server Web restituisce la pagina Web (file) al computer.
Dagli esempi precedenti, si possono riepilogare i principali elementi che caratterizzano un protocollo:
Un protocollo definisce il formato e l'ordine dei messaggi scambiati tra due o più entità in comunicazione, nonchè le azioni intraprese in seguito alla trasmissione e/o ricezione di un messaggio o altro evento.
La rete Internet, come ogni rete di computer, fa largo uso di protocolli. Viene usato un protocollo per eseguire una particolare attività di comunicazione. Padroneggiare il campo delle reti di calcolatori è equivalente a capire cosa sono, perchè esistono e come funzionano i protocolli di rete.
Nella terminologia delle reti, i calcolatori e gli altri dispositivi connessi a Internet sono indicati come sistemi terminali. Il nome deriva dal fatto che si trovano sul bordo di Internet. Il termine "Sistema terminale" di Internet indica un computer di un utente, un server o un computer portatile (notebook, smartphone e tablet). Inoltre, moltissimi altri dispositivi non tradizionali possono essere collegati a Internet, come sistemi terminali (vedi Internet of Everything).
I Sistemi terminali sono anche denominati host perchè ospitano programmi applicativi, come ad esempio un browser Web, un server Web, un client di posta elettronica, o un server di posta elettronica. I termini host e sistema terminale sono sinonimi; cioè host = sistema terminale. Gli host sono ulteriormente suddivisi in due categorie: client e server. I client sono desktop e PC portatili, smartphone e così via, mentre i server sono macchine più potenti che memorizzano e distribuiscono le pagine Web, lo streaming di video, le e-mail, ecc. Oggi, la maggior parte dei server da cui si ricevono i risultati di una ricerca, le e-mail, le pagine web e i video risiedono in grandi data center. Ad esempio, Google ha 30-50 centri dati, molti dei quali hanno più di centomila server.
L'accesso alla rete avviene per mezzo di collegamenti fisici tra un sistema terminale e il router (noto anche come "router di frontiera") collegato alla rete geografica.
I due tipi più diffusi di accesso a banda larga residenziale sono digital subscriber line (DSL) e il cavo. Una residenza ottiene in genere l'accesso ADSL a Internet dalla stessa compagnia telefonica che fornisce l'accesso telefonico locale cablato. Così, quando viene utilizzato DSL, il gestore telefonico è anche l'ISP. Il modem DSL di ogni cliente utilizza la linea telefonica esistente per scambiare dati con un digital subscriber line access multiplexer (DSLAM) situato nella centrale telefonica. Il Modem DSL domestico prende i dati digitali e li traduce in toni ad alta frequenza per la trasmissione su cavi telefonici alla centrale; i segnali analogici provenienti da molte abitazioni sono tradotti nel formato digitale al DSLAM.
La linea telefonica residenziale trasporta dati e segnali telefonici tradizionali simultaneamente, che sono codificati a frequenze diverse:
Un canale telefonico bidirezionale ordinario, nella banda 300 a 4 kHz,
Un canale upstream di media velocità, nella banda 4 kHz a 50 kHz,
Un canale downstream ad alta velocità, nella banda 50 kHz a 1 MHz.
Questo approccio fa apparire il singolo collegamento DSL come se ci fossero tre collegamenti separati, in modo che una chiamata telefonica e una connessione Internet possono condividere nello stesso tempo il collegamento DSL. (tecnica di multiplazione a divisione di frequenza). Sul lato cliente, uno splitter separa i segnali digitali e telefonici che arrivano e inoltra il segnale dati al modem DSL. Sul lato della centrale, il DSLAM separa i dati e segnali telefonici e invia i dati in Internet. Centinaia o addirittura migliaia di famiglie si connettono a un singolo DSLAM.
Gli standard DSL definiscono la velocità di trasmissione di 24 Mbps in downstream e 2,5 Mbps in upstream. Poichè le velocità di downstream e upstream sono diverse, l'accesso è detto asimmetrico (ADSL). Le velocità di trasmissione effettive possono essere inferiori rispetto a quelle standard, perchè il provider DSL può volutamente limitare la velocità quando offre più servizi, o a causa della distanza tra la casa e la centrale, o del tipo di cavo impiegato o a causa dei disturbi presenti sulla linea. La linea DSL è stata progettata per brevi distanze tra una casa e la centrale; in generale, se l'abitazione non si trova entro 5 Km dalla centrale, l'abitazione deve ricorrere a un accesso alternativo a Internet.
Mentre DSL sfrutta le infrastrutture telefoniche locali esistenti, l'accesso a Internet via cavo usa infrastrutture di televisione via cavo esistenti. Una residenza ottiene l'accesso a Internet via cavo dalla stessa azienda che fornisce la televisione via cavo. Le fibre ottiche portano il segnale a livello di quartiere, poi, un cavo coassiale viene utilizzato per raggiungere case e appartamenti. Questo sistema è indicato come ibrido, fibra-coassiale (HFC).
L'accesso a Internet via cavo richiede modem speciali, chiamati modem via cavo. Il modem via cavo è un dispositivo esterno e si collega al PC di casa attraverso una porta Ethernet. All'estremità del cavo il CMTS svolge una funzione simile a quella della rete DSL-DSLAM, trasformare il segnale analogico, inviato dal modem via cavo in molte case, in formato digitale. Il modem via cavo divide la rete HFC in due canali, un canale downstream e uno upstream. Come con DSL, l'accesso è asimmetrico, al canale downstream viene assegnata una velocità di trasmissione superiore a quella del canale upstream. Lo standard DOCSIS 2.0 definisce le velocità downstream fino a 42.8 Mbps e velocità di upstream fino a 30.7 Mbps. Come nel caso delle reti DSL, la velocità massima non può essere raggiunta a causa del rumore e della condivisione del canale.
Una caratteristica importante dell'accesso a Internet via cavo è che il mezzo di trasmissione è condiviso. In particolare, ogni pacchetto inviato viaggia su ogni collegamento verso ogni casa e ogni pacchetto inviato da una sede viaggia sul canale in upstream fino alla giunzione. Per questo motivo, se più utenti scaricano simultaneamente un file video, la velocità effettiva a cui ogni utente riceve il file video sarà inferiore alla velocità di downstream. D'altra parte, se ci sono solo pochi utenti attivi e tutti navigano sul Web, ognuno degli utenti potrebbe ricevere le pagine web alla velocità di downstream massima, poichè gli utenti raramente richiedono una pagina Web esattamente allo stesso tempo. Poichè il canale di upstream è anche condiviso, è necessario che ci sia un protocollo di accesso multiplo distribuito a coordinare le trasmissioni ed evitare collisioni.
Ci sono diverse tecnologie concorrenti per la distribuzione ottica dalla centrale alle abitazioni. La più semplice rete di distribuzione ottica si chiama fibra diretta, con una fibra che parte dalla centrale ed arriva all'abitazione. Più comunemente, ogni fibra lasciando la sede centrale è in realtà condivisa da molte case.
Nei comprensori aziendali e universitari, e anche in ambienti domestici, i sistemi terminali sono disposti per formare una rete locale (LAN), la quale può collegarsi alla rete tramite un router. Anche se ci sono molte tecnologie LAN, Ethernet è la tecnologia di accesso più diffusa nelle reti aziendali, universitarie e domestiche. Gli utenti Ethernet utilizzano un filo di rame (twisted-pair) per collegarsi ad un switch Ethernet. Il switch Ethernet, o una rete di tali switch interconnessi, è poi a sua volta collegata a Internet. Con l'accesso Ethernet, gli utenti in genere hanno un canale a 100 Mbps verso il switch, mentre i server possono avere 1 Gbps o anche 10 Gbps.
L'accesso a Internet può avvenire anche in modalità wireless da computer portatili, smartphone, tablet e altri dispositivi. In una LAN wireless, gli utenti trasmettono/ricevono pacchetti a/da un punto di accesso che è collegato alla rete aziendale (probabilmente cablata), che a sua volta è connessa a Internet. Un utente LAN wireless deve trovarsi entro poche decine di metri dal punto di accesso. L'accesso wireless basato sullo standard IEEE 802.11, noto come Wi-Fi, è molto diffuso - università, uffici, bar, aeroporti, e case. In qualsiasi punto di una grande città, si trovano molti punti di accesso. 802.11, che oggi offre una velocità di trasmissione condivisa fino a 54 Mbps.
Le reti Ethernet e WiFi furono progettate per contesti aziendali (imprese, università), ma di recente sono diventate componenti anche di reti domestiche. Molte case combinano l'accesso a banda larga residenziale con queste economiche tecnologie wireless per creare potenti reti domestiche. Una rete domestica può essere costituita da:
un laptop in roaming nonchè un PC cablato;
una stazione base (il punto di accesso wireless), che comunica con il PC wireless;
un modem via cavo, che fornisce accesso Internet a banda larga;
un router, che interconnette la stazione base e il PC fisso con il modem via cavo.
Questa rete consente ai membri della famiglia di avere accesso a banda larga a Internet e l'utente di roaming può spaziare dalla cucina, al cortile, alle camere dell'abitazione.
Sempre più spesso, dispositivi come iPhone, BlackBerry e dispositivi Android sono utilizzati per inviare email, navigare sul Web, scrivere e leggere Tweet, e scaricare musica mentre si viaggia. Questi dispositivi utilizzano la stessa infrastruttura wireless utilizzata per la telefonia cellulare per inviare/ricevere pacchetti attraverso una stazione base che è gestita dalla rete cellulare del provider. Diversamente dal WiFi, un utente deve trovarsi entro poche decine di chilometri (a differenza di poche decine di metri) dalla stazione base.
I gestori delle telecomunicazioni hanno fatto enormi investimenti nella cosiddetta wireless di terza generazione (3G), che fornisce la rete geografica wireless a commutazione di pacchetto a velocità superiori a 1 Mbps. Ma le tecnologie per una connessione alla rete mobile a velocità ancora più elevata di quarta generazione (4G) sono già pronte.