LIVELLO DI RETE
In telecomunicazioni e informatica nell’ambito delle reti di calcolatori il livello rete (network layer) è il livello 3 della pila ISO/OSI. Questo livello riceve segmenti dal soprastante livello di trasporto e forma pacchetti che vengono passati al sottostante Livello data link. Il compito del livello di rete è la trasmissione logica di pacchetti tra due host arbitrari, che in generale non sono direttamente connessi (ovvero non hanno un collegamento diretto tra di loro), cioè in sostanza si occupa di indirizzamento e instradamento verso la giusta destinazione attraverso il percorso di rete più appropriato
FUNZIONI DEL LIVELLO DI RETE
- Inoltro (forwarding), ovvero ricevere un pacchetto su una porta, immagazzinarlo e ritrasmetterlo su un’altra. Questa funzione è presente in tutti i nodi della rete e può comportare l’utilizzo di protocolli di livello collegamento differenti;
- Frammentazione e riassemblaggio: se un pacchetto ricevuto ha una dimensione eccessiva per la rete su cui deve essere trasmesso, il livello di rete lo divide in frammenti e, in maniera complementare, si occupa di riassemblare i frammenti ricevuti al momento della consegna;
- Instradamento (Routing), ovvero determinare il percorso ideale per la trasmissione dei dati attraverso la rete a partire dall’indirizzo IP del destinatario. Nella maggior parte dei casi, questa funzione viene svolta dinamicamente tramite appositi algoritmi, che utilizzano le informazioni provenienti dai protocolli di Routing sulle condizioni della rete, le tabelle di instradamento, la priorità del servizio e altri elementi secondari.
IP PROTOCOL
Nel modello TCP/IP, il terzo livello viene detto livello internet oppure livello di internetworking, in quanto interconnette reti eterogenee, che possono essere basate su protocolli di livello collegamento (ad esempio ethernet, PPP) o su protocolli di rete (ad esempio Frame Relay, Asynchronous Transfer Mode), per realizzare un’unica rete in modo trasparente agli utilizzatori. La forza di IP sta proprio in questo agnosticismo rispetto al livello di rete, che permette di usare o riusare tecnologie già disponibili, e di adattarsi con naturalezza a nuove tecnologie. Osservando una rete IP costruita con tecnologie eterogenee, si può notare che alcuni nodi della rete eseguono IP (e sono detti router); altri nodi instradano pacchetti IP usando altre tecnologie di rete (che stanno sotto IP nello stack dei protocolli). Questi nodi sono normalmente detti switch o commutatori, anche se il termine per antonomasia indica specificamente lo switch ethernet. IP determina il miglior cammino (detto Routing ovvero instradamento) per l’inoltro dei pacchetti, attraverso la consultazione delle tabelle di instradamento. Tali tabelle possono essere di tipo statico (realizzate manualmente dai gestori della rete) o dinamico (composte con l’utilizzo di protocolli di Routing tipo l’OSPF, il RIP o il BGP che servono a popolare tali tabelle scambiando tra i vari apparati le informazioni sulle rotte conosciute). Il livello di rete prende i segmenti dal livello di trasporto nell’host mittente. In questo livello, i “messaggi” inviati tra gli host sono chiamati “datagrammi IP”. Sul lato mittente, incapsula i segmenti in datagrammi mentre sul lato destinatario, consegna i segmenti al livello di trasporto. Il router esamina i campi intestazione in tutti i datagrammi IP che lo attraversano. Il protocollo IP fornisce soltanto una consegna non affidabile dei pacchetti:
- La consegna è priva di connessione (Ogni pacchetto è trattato in modo indipendente da tutti gli altri, senza considerare lo storico)
- La consegna non è garantita: i pacchetti possono essere persi, duplicati, o arrivare fuori ordine.
PERCHE’
I dispositivi di livello 2 e 3 (switch e router) sono i punti cardine della rete: devono smistare migliaia di pacchetti al secondo con un hardware più possibile ridotto all’osso e avere tempi di risposta ridotti per non rallentare l’intera rete introducendo latenze. Il controllo di connessione e la consegna garantita sono funzionalità più avanzate, che lasciamo ai protocolli di livello superiore (4 e 5) eseguiti da macchine più prestanti ai “bordi” della rete (come il PC dell’utente finale) che dovranno occuparsi solo del proprio traffico, e non smistare anche il traffico di tutti gli altri!
IL PROTOCOLLO ARP
Gli host direttamente connessi alla stessa rete si identificano con il MAC Address. Come può A mandare un messaggio all’indirizzo IP 192.168.0.4? dovrebbe conoscere il MAC Address associato a quell’IP!
COME FUNZIONA
- A invia un messaggio in broadcast a tutti i MAC Address sulla sua rete, chiedendo chi ha l’IP in questione.
- Il messaggio verrà ignorato da tutti tranne C che risponde “sono io”
- A memorizza l’associazione tra IP e indirizzo hardware a cui raggiungerlo.
ARP TABLE
L’elenco di tutte le associazioni MAC Address: IP Address è salvato nella “ARP Cache”, anche detta “ARP Table” degli host. Possiamo consultare la ARP Table sul nostro host Windows o Linux con il comando arp:
INTERNET PROTOCOL IPV4
Nella figura seguente viene riportato un datagramma IP, la porzione IP del frame TCP/IP che funge da involucro per i dati e che contiene le informazioni necessarie ai router per trasferire i dati tra due o più subnet.
SPIEGAZIONE FIELD DATAGRAMMA IP
- Version number (4 bits) Indica la versione di IP protocol necessario per sapere quali campi aspettarsi. Tipicamente “4” (per IPv4), e talvolta “6” (per IPv6)
- Header length (4 bits) Numero di words da 32-bit nell’ header tipicamente “5” (20-byte IPv4 header). Può essere maggiore se sono usate “IP options”
- Type-of-Service (8 bits) Permette di differenziare i packets in funzione dei servizi low delay per audio, high bandwidth per FTP etc.
- Total length (16 bits) Numero di bytes nel packet il valore Max è 63.535 bytes (216 -1) sebbene il livello Datalink impone limiti più stringenti
- Fragmentation information (32 bits) Packet identifier, flags, e fragment offset. Supporta la divisione di un IP packet in fragments nel caso il link non gestisca la dimensione del pacchetto IP
- Time-To-Live (8 bits) Usato per identificare i packets persi in forwarding loops e alla fine scartarli dalla rete. Un forwarding loop può causare packets che girano per sempre, questo genera confusione se il packet arriva con ritardo eccessivo. TTL è decrementato da ogni router sul cammino da Sorgente a Destinazione. Il Packet è scartato quando TTL diventa 0 e un messaggio (ICMP) “time exceeded” è spedito alla sorgente.
- Protocollo (8 bits) Identifica il protocollo trasportato 6 per Transmission Control Protocol (TCP) 17 per User Datagram Protocol (UDP) Importante per il demultiplexing lato ricevente in quanto indica che tipo di header aspettarsi.
- Checksum (16 bits) Somma tutte le 16-bit words nell’ header IP (solo l’Header non i dati) se un bit dell’header è alterato in transito la checksum sarà diversa da quella in ricezione. L’ host ricevente scarta i packets corrotti. L’host trasmittente dovrà ritrasmettere il packet, se richiesto
Due indirizzi IP
- Source IP address (32 bits)
- Destination IP address (32 bits)
- Destination address
- Identificatore unico per l’host ricevente, permette ad ogni nodo di prendere le decisioni di instradamento.
- Source address
- Identificatore unico per l’host trasmittente, il ricevente può decidere se accettare il packet, inoltre abilita il ricevente a rispondere al trasmittente.
- Destination address
ESEMPIO DI FRAMMENTAZIONE
Nelle reti di trasmissione di dati a pacchetti, come ad esempio in IPv4, viene introdotta una quantità, detta Maximum Transmission Unit (MTU), che indica la quantità massima di dati che può essere trasmessa in rete, con un singolo pacchetto. Ad esempio, in una rete Ethernet la dimensione MTU standard è di 1500 byte, mentre in una rete Token ring è di 4096 byte. La frammentazione avviene quando viene inserito nella rete un pacchetto di dimensione superiore alla MTU, e questo deve essere trasmesso. Si supponga ad esempio che un pacchetto IP di 2396 byte debba essere trasmesso in una rete Ethernet (con MTU=1500). Allora questo pacchetto dovrà essere frammentato in due pacchetti.
Primo pacchetto
Sarà lungo complessivamente 1500 byte, pari alla MTU della rete Ethernet. Di questi, 20 saranno usati per l’intestazione IP, 24 byte saranno di intestazione TCP, e 1456 saranno di dati. Inoltre questo pacchetto avrà, nell’intestazione IP, il bit DF settato a 0 per indicare “frammentazione possibile”, il flag MF posto ad 1 per indicare “ulteriori frammenti presenti”, ed il campo di “Fragmentation Offset” (Scostamento di Frammentazione) posto a 0. Quest’ultimo campo viene misurato in termini di unità di 8 byte (64 bit).
Secondo pacchetto
sarà lungo 940 byte in tutto. Come prima, 20 sono di intestazione IP, 24 di intestazione TCP, ed 896 di dati. Nell’intestazione IP ci saranno quindi il bit DF sempre uguale a 0, ma il bit MF posto ad 0 per indicare “ultimo frammento”. Il “Fragmentation Offset” ora avrà valore 182 (ovvero 1456/8). Si noti che 2396 si ottiene sommando le dimensioni degli header oltre a quelle dei dati: pertanto 2396 = 24 + 20 + 1456 + 896. La frammentazione è particolarmente conosciuta in Internet, in quanto sovente i router posti lungo il percorso utilizzano diversi mezzi fisici per il collegamento, e quindi differenti protocolli a livello datalink, ognuno con il proprio MTU. Nel caso di protocolli che supportano un limite minimo di dati da trasmettere si opererà in maniera opposta ovvero tramite assemblamento di pacchetti o riempimento di zeri (zero padding) per il raggiungimento del limite minimo richiesto di bit. In ogni caso in ricezione sarà ripristinato il flusso continuo di dati tramite riassemblaggio ordinato di tutti i pacchetti relativi alla stessa trasmissione.
INDIRIZZI IP (IPV4)
È rappresentato da un numero unico a 32 bit che identifica una interfaccia su un host, su un router etc. Può essere rappresentato in notazione dotted-quad.
SCHEMA DI INDIRIZZAMENTO
Un indirizzo IPv4 è espresso in stringhe da 32 bit in notazione decimale puntata. Od ogni indirizzo IP può essere associato un nome (DNS).
COME FUNZIONA UN INDIRIZZO IP: NET ID e HOST ID
L’indirizzo IP contiene due informazioni:
- il nome della rete (Net ID)
- il nome del singolo host (Host ID):
In questa immagine sono presenti due reti: la rete 192.168.0.0 e la rete 192.168.1.0 Tutti i computer di ciascuna di queste due reti possono comunicare tra loro, ma nessun computer della rete 192.168.0.0 può comunicare con alcun computer della rete 192.168.1.0. (Vedremo in seguito i come e i perché)
CLASSI DI INDIRIZZI IP
Possiamo arbitrariamente decidere come ripartire NetID e HostID!
Ad esempio, possiamo avere indirizzi in cui:
- 24 bit indicano il nome della rete, i restanti 8 l’host
- 16 bit per la rete, 16 per l’host
- 8 bit per la rete, 24 per l’host
Fissiamo per un momento l’indirizzo e spostiamo la netmask per capire come cambia:
Gli indirizzi di classe A hanno netmask 8, quelli di classe B hanno 16 e quelli di classe C 24. La tabella seguente riassume il range di indirizzi riservato ad ogni classe.
Questo vi aiuterà a determinare immediatamente la classe di appartenenza di ciascun indirizzo IP. ES: l’indirizzo 88.50.95.140 è di classe A perché ricade nel range 1.0.0.0 … 126.255.255.255.
NOTAZIONE ESPLICITA
La maschera di bit può essere rappresentata esplicitamente come quartetto di numeri rappresentabili con 8 bit (ovvero da 0 a 255) nella maniera seguente:
ESEMPI SULLE SUBNET
La seguente è una classica rete di classe C (prefisso di rete a 24 bit):
⇒ possiamo avere fino a 256 indirizzi, da 0 a 255:
⇒ Il primo e l’ultimo (0 e 255) sono riservati e non possono essere assegnati a nessun host:
⇒ 0 indica la rete senza riferirsi a nessun host
⇒ 255 è l’indirizzo di broadcast
⇒ In questa rete potremo avere massimo di 254 host (256-2).
Per contenere più di 254 host in una unica rete, possiamo usare la netmask 16:
⇒ Il primo e l’ultimo indirizzo (0.0 e 255.255) sono speciali e non possono essere usati
⇒ gli indirizzi IP assegnabili vanno da 0.1 a 255.254
ASSEGNAZIONE DEGLI IP
L’indirizzo IP può essere assegnato:
- Dinamicamente, da un server DHCP sulla stessa rete
- Staticamente, tramite file di configurazione sull’host
INDIRIZZI SPECIALI
Alcuni indirizzi sono “speciali” nel senso che non si riferiscono ad un host sulla rete ma hanno una funzione diversa:
INDIRIZZO |
VALORE |
127.0.0.1 |
“questo host” (localhost) |
0.0.0.0 |
indirizzo non valido: “tutti gli IP di questo host” (ambito srv) |
198.168.1.255 |
Indirizzo di broadcast della rete 192.168.1.0 |
255.255.255.255 |
Indirizzo di broadcast della rete in cui siamo |
ALTRE CLASSI DI INDIRIZZI
CLASSE |
RANGE |
INFO |
Classe D |
da 224.0.0.0 a 239.255.255.255 |
Multicast |
Classe E |
da 240.0.0.0 a 255.255.255.254 |
Esperimenti futuri |
ESEMPIO DI INDIRIZZO DI CLASSE A
ESEMPIO DI INDIRIZZO DI CLASSE B
ESEMPIO DI INDIRIZZO DI CLASSE C
INDIRIZZI CLASSLESS E CIDR
La ripartizione in classi è molto rigida perché si passa da reti con 250 host (Classe C) a reti con 65534 host (Classe B) a reti con milioni di host (classe A). ⇒ Possiamo definire reti con maggiore granularità, spezzando ulteriormente la subnet mask!
Specificando una netmask /23 stiamo togliendo un bit al prefisso di rete, e lasciando un bit in più agli host, che ora sono 29 – 2 = 510. Ora gli indirizzi per gli host vanno da 192.168.0.1 fino a 192.168.1.254 Questa pratica è detta supernetting
SUBNETTING E SUPERNETTING
supernetting: Aumentare le dimensioni di una rete riducendo la subnet mask
subnetting: Spezzare una rete in tante piccole sottoreti aumentando la subnet mask
La notazione che abbiamo usato è la notazione CIDR (Classless Inter-Domain Routing).
INDIRIZZI NON ROUTABLE E RETI SEMI-PRIVATE
Dato il numero sempre crescente di dispositivi connessi alla rete, IANA ha definito degli spazi di indirizzamento privati, ovvero dei “range” di indirizzi ad uso locale. Questi sono anche detti indirizzi non routable perché vengono scartati automaticamente da tutti i router su Internet (AS e ISP).
CLASSE |
RANGE |
MASK |
INFO |
Classe A |
[10.0.0.0 – 10.255.255.255] |
10.0.0.0/8 |
1 rete |
Classe B |
[172.16.0.0 – 172.31.255.255] |
172.16.0.0/12 |
16 reti |
Classe C |
[192.168.0.0 – 192.168.255.255] |
192.168.0.0/16 |
256 reti |
Ogni casa / impresa / ufficio … può usare questi stessi indirizzi localmente, e uscire su internet con un unico indirizzo IP: quello del proprio modem router:
Questo sistema:
- Riduce l’uso degli indirizzi IP pubblici
- Non espone direttamente gli host su Internet (vantaggio per la sicurezza!)
ES: L’host A (B, C, …) non sarà raggiungibile dalla rete esterna!
⇒ Questo tipo di rete si dice “semi-privata”.
Ma in un certo senso, A deve essere raggiungibile, altrimenti come navighiamo?
NATTING
ES: Dal computer A voglio visitare il sito pippo.com
- A manda al mio router un datagram IP con l’indirizzo di destinazione di pippo.com
- il mio router, inoltrando il datagram verso la rete esterna, lo modifica sostituendo l’indirizzo IP del mittente (locale) con il proprio (pubblico).
- pippo.com invierà la risposta all’indirizzo IP pubblico del (mio) router. (stando al datagram IP, è da quell’indirizzo che è pervenuta la richiesta).
- Il mio router si vede arrivare un datagram destinato al lui!
- Il mio router ricorda che ad originare la richiesta era stato A, e modifica il datagram sostituendo l’IP del destinatario con quello di A, e inoltra il datagram ad A.
Quanto è appena successo si chiama NAT (Network Address Translation) ovvero il mio router ha tradotto l’IP di A in un IP pubblico (routable) per circolare su internet, e ha poi fatto il processo inverso per il messaggio di risposta.
Questa pratica è detta source natting. Questo è come navigate in Internet da casa vostra!
ROUTER
Un router serve a interconnettere due (o più) reti separate. Ha almeno due interfacce di rete: una rivolta verso la prima rete e una rivolta verso una seconda rete. Ogni router deve scegliere il percorso nella rete attraverso il quale consegnare i pacchetti.
Ogni router si comporta così:
- Se sa dove si trova l’indirizzo di destinazione, inoltra il pacchetto in quella direzione
- Altrimenti inoltra il pacchetto al proprio default gateway
Questo procedimento si ripete per ciascun router fino a raggiungere l’host di destinazione. Sotto viene riportato un esempio di tabella di Routing per una comune network.
Tabella di Routing: memorizza quali nodi portano in quale segmento di rete.
COME FUNZIONA INTERNET
Backbone: enormi reti che coprono distanze intercontinentali per collegare stati e continenti. Organizzativamente, Internet è un agglomerato di oltre 50.000 Autonomous Systems (che vedremo a breve), dai più “piccoli” su scala nazionale, ai più grandi su scala intercontinentale.
Cosa sono gli Autonomous System?
Sono enti o consorzi teoricamente indipendenti che:
- Gestiscono “regioni” di indirizzi e insiemi di reti
- internamente utilizzano lo stesso protocollo di routing
- Dall’esterno vengono visti come un’unica entità.
Gli AS si collegano tra loro tramite:
- Peering Point (PP)
- Le spese possono essere divise a vantaggio di entrambi
- Oppure un AS paga un altro AS per far transitare il traffico
- Internet Exchange Point (IXP)
- Solitamente consorzi indipendenti senza scopo di lucro
- A volte supportati da finanziamenti pubblici
ROUTING GERARCHICO
Un protocollo di routing (in italiano protocollo di instradamento), in telecomunicazioni e informatica, è un protocollo di rete relativo allo strato network che permette ai router di scambiarsi informazioni tra loro al fine di costruire delle tabelle di routing permettendo così il corretto instradamento dei pacchetti verso la giusta destinazione. Il ricorso ai protocolli di routing per la costruzione automatica e dinamica delle tabelle di routing diventa necessario quando il numero di sottoreti interconnesse è elevato (come nel caso della rete Internet) in sostituzione alla consueta creazione statica da parte dell’amministratore di rete nelle reti locali. In Internet, visto il gran numero di reti interconnesse, dal punto di vista dell’instradamento è comodo intendere la rete come un insieme di sistemi autonomi (AS) come già visto ognuno dei quali si occupa di gestire autonomamente e uniformemente il routing interno alla propria interrete con un medesimo protocollo di routing e l’interconnessione solo con gli altri AS direttamente connessi. I protocolli usati sono diversi a seconda che si tratti di router all’interno di uno stesso AS (interior gateway protocol, IGP), oppure di router che collegano tra loro più AS (EGP), Exterior Gateway Protocol. Per quanto riguarda la prima categoria i protocolli possono essere suddivisi in due classi principali: distance vector e link state. Quelli distance vector ricevono e mandano informazioni riguardo ai collegamenti solamente ai router adiacenti mentre i link state le mandano a tutti i router del proprio sistema autonomo.
ROUTING GLOBALE E LOCALE
Ci sono due classi di algoritmi di routing:
- Algoritmi di routing globale
- Tutti i nodi conoscono lo stato dell’intera rete
- ES: Link state protocol
- Algoritmi di routing locale
- Ogni nodo comunica il suo stato ai vicini
- ES: Distance vector protocol
Entrambe le tipologie possono essere usate sia per il routing interno che esterno agli AS.
- Ad uso interno sono spesso preferiti gli algoritmi di tipo link state
- Ad uso esterno sono preferiti gli algoritmi di tipo distance vector
ICMP
Internet Control Message Protocol
Protocollo per la diagnostica di base delle reti come il controllo sulla raggiungibilità di un host per il riscontro di malfunzionamenti.
Prevede una serie di codici di controllo come:
- 0 Destination network unreachable
- 1 Destination host unreachable
- 2 Destination protocol unreachable
- 3 Destination port unreachable
- …
Viene usato principalmente per
- controllo di flusso dei datagram
- determinare cicli o cammini eccessivamente lunghi
- misurare la latenza tra un mittente e un destinatario
Ed è il protocollo usato da famosi strumenti come ping e traceroute.
ping per testare raggiungibilità e latenza di un host destinatario, inviando messaggi di echo request e echo reply del protocollo ICMP. Come al solito c’è l’incapsulamento. Un messaggio ICMP, come qualsiasi altro dato trasportato a livello 3, viene incapsulato in un datagramma IP, che a sua volta è incapsulato in un frame ethernet per il trasporto:
APPROFONDIMENTO AI
Il livello 3 del modello OSI (Open Systems Interconnection) è il Network Layer o livello di rete. Questo livello ha il compito di gestire l’instradamento dei pacchetti di dati attraverso una rete complessa e interconnessa. Di seguito una descrizione dettagliata delle sue principali funzioni e componenti:
1. Funzione principale: Instradamento (Routing)
Il livello di rete si occupa principalmente di determinare il percorso ottimale per inviare i dati da un dispositivo sorgente a un dispositivo di destinazione attraverso una rete di interconnessioni, come router e switch. Questi dispositivi si trovano a più salti (hop) di distanza e il livello di rete stabilisce come i pacchetti devono muoversi da un nodo all’altro.
2. Pacchetti e datagrammi
Il livello di rete organizza i dati in pacchetti, chiamati datagrammi in un ambiente di rete basato su IP. Questi pacchetti includono un intestazione (header) che contiene informazioni cruciali come l’indirizzo IP di origine e di destinazione, oltre a vari parametri di controllo.
3. Indirizzamento
Un altro compito del livello di rete è quello di assegnare e gestire gli indirizzi logici, come l’indirizzo IP. Questo indirizzamento logico differisce dall’indirizzamento fisico (ad esempio, gli indirizzi MAC del livello 2), poiché consente la comunicazione tra dispositivi che non sono direttamente connessi sulla stessa rete fisica.
4. Protocolli del livello di rete
Il principale protocollo utilizzato al livello di rete su Internet è l’IP (Internet Protocol), che può essere nelle sue versioni IPv4 e IPv6. IP si occupa di:
•Divisione dei dati in pacchetti.
•Aggiunta di informazioni di instradamento (come gli indirizzi IP).
•Invio dei pacchetti lungo percorsi diversi verso la destinazione.
Ci sono anche altri protocolli che operano a livello di rete, tra cui:
•ICMP (Internet Control Message Protocol): utilizzato per segnalare errori di comunicazione e per funzioni di diagnostica, come il ping.
•ARP (Address Resolution Protocol): utilizzato per risolvere indirizzi IP in indirizzi MAC all’interno di una rete locale.
•RIP, OSPF, EIGRP, BGP: sono protocolli di routing che aiutano a determinare i percorsi migliori per i pacchetti attraverso reti complesse.
5. Fragmentazione
Se un pacchetto è troppo grande per passare attraverso una rete con un MTU (Maximum Transmission Unit) limitato, il livello di rete si occupa di frammentare il pacchetto in più parti più piccole. Ogni frammento verrà instradato separatamente, ma ricomposto alla destinazione.
6. Quality of Service (QoS)
In alcune implementazioni, il livello di rete supporta anche la gestione della Qualità del Servizio (QoS). QoS permette di assegnare priorità ai pacchetti, garantendo che alcuni tipi di dati (ad esempio, quelli relativi a chiamate VoIP o video in tempo reale) abbiano la priorità rispetto ad altri traffici di dati meno critici.
7. Sicurezza
Anche se la sicurezza non è una funzione primaria del livello di rete, alcuni protocolli o tecnologie come IPsec operano in questo livello per garantire che i pacchetti siano cifrati e autentici, proteggendo la comunicazione da attacchi.
8. Gestione degli errori e controlli
Il livello di rete è responsabile della gestione degli errori che possono verificarsi durante l’instradamento dei pacchetti. Se un pacchetto non può essere consegnato, un messaggio di errore può essere inviato indietro al mittente (ad esempio tramite ICMP).
9. Tipi di instradamento
Il livello di rete utilizza diversi metodi per determinare il percorso che i pacchetti dovrebbero prendere:
•Instradamento statico: le rotte vengono configurate manualmente e rimangono fisse.
•Instradamento dinamico: i router comunicano tra loro per scambiarsi informazioni sulle reti e decidere dinamicamente il miglior percorso.
10. Interazione con gli altri livelli
Il livello di rete interagisce con il livello di collegamento dati (Data Link Layer) (livello 2) per l’invio e la ricezione di pacchetti tra dispositivi sulla stessa rete fisica, e con il livello di trasporto (livello 4), che gestisce la trasmissione end-to-end tra le applicazioni, per trasportare i dati da un host all’altro.
Sintesi delle responsabilità del livello di rete:
•Indirizzamento e instradamento dei pacchetti.
•Gestione dei protocolli di rete (IP, ICMP, ARP, etc.).
•Frammentazione e ricomposizione dei pacchetti.
•Segnalazione degli errori tramite protocolli come ICMP.
•Routing dinamico o statico dei pacchetti attraverso reti complesse.
Il Network Layer è fondamentale per garantire che i dati possano viaggiare correttamente tra dispositivi in reti locali (LAN) e reti geografiche (WAN), e costituisce la spina dorsale dell’architettura di Internet.
IL PROTOCOLLO IP
Il protocollo IP (Internet Protocol) è uno dei protocolli principali utilizzati nel livello di rete (Layer 3) del modello OSI e rappresenta la base della comunicazione su Internet. L’IP è responsabile dell’instradamento dei pacchetti di dati da un dispositivo all’altro su una rete basata su IP, garantendo che i dati possano viaggiare attraverso reti diverse fino a raggiungere la loro destinazione finale. Esistono due principali versioni di IP attualmente in uso: IPv4 e IPv6.
1. Funzioni principali del protocollo IP
Le principali funzioni del protocollo IP includono:
•Indirizzamento: Assegna indirizzi univoci ai dispositivi sulla rete per identificarli e consentire la comunicazione tra di loro.
•Instradamento: Determina il percorso che i pacchetti devono seguire attraverso reti interconnesse per raggiungere la destinazione.
•Frammentazione e ricomposizione: Se un pacchetto è troppo grande per passare attraverso una rete con un limite massimo di dimensione del pacchetto (MTU), IP lo frammenta in più pacchetti più piccoli. Alla destinazione, i pacchetti frammentati vengono ricomposti nel messaggio originale.
•Gestione degli errori e dei messaggi di controllo: Utilizza protocolli associati come ICMP (Internet Control Message Protocol) per segnalare errori di trasmissione o altre anomalie.
2. Formato dell’intestazione del pacchetto IP
Ogni pacchetto IP contiene un’intestazione (header) con informazioni fondamentali per l’instradamento e la gestione dei dati. Di seguito una descrizione delle principali voci dell’intestazione per IPv4 e IPv6.
IPv4 Header
L’intestazione IPv4 è composta da diversi campi:
•Versione (4 bit): Specifica la versione del protocollo IP, nel caso di IPv4, il valore è 4.
•Lunghezza dell’intestazione (IHL) (4 bit): Indica la lunghezza dell’intestazione IP in parole da 32 bit (di solito 5 parole, ovvero 20 byte).
•Tipo di servizio (ToS) (8 bit): Definisce la priorità del pacchetto e come dovrebbe essere trattato dai router in termini di latenza, throughput o affidabilità (oggi viene usato per QoS).
•Lunghezza totale (16 bit): Indica la dimensione totale del pacchetto, inclusa l’intestazione e i dati, con una lunghezza massima di 65.535 byte.
•Identificatore, Flag, Offset di frammentazione (32 bit in totale): Sono utilizzati per la frammentazione dei pacchetti se devono attraversare reti con una MTU inferiore rispetto alla dimensione del pacchetto.
•Time to Live (TTL) (8 bit): Contiene il numero massimo di router che un pacchetto può attraversare. Viene decrementato a ogni passaggio attraverso un router e, se arriva a zero, il pacchetto viene scartato.
•Protocollo (8 bit): Indica il protocollo del livello superiore (di trasporto) che viene utilizzato nel campo dati del pacchetto IP (ad esempio, TCP = 6, UDP = 17).
•Checksum dell’intestazione (16 bit): È un valore di controllo che permette di verificare l’integrità dell’intestazione IP.
•Indirizzo IP di origine (32 bit): L’indirizzo IP del mittente del pacchetto.
•Indirizzo IP di destinazione (32 bit): L’indirizzo IP del destinatario del pacchetto.
•Opzioni: Questo campo è facoltativo e può essere utilizzato per scopi speciali, come il tracciamento del percorso o la sicurezza.
IPv6 Header
IPv6 è stato progettato per superare alcune limitazioni di IPv4, tra cui lo spazio di indirizzamento. L’intestazione IPv6 è più semplice rispetto a IPv4, con meno campi e lunghezza fissa.
•Versione (4 bit): In IPv6, il valore è 6.
•Classe di traffico (8 bit): Equivalente al campo ToS di IPv4, consente la classificazione dei pacchetti per assegnare priorità o trattamento speciale.
•Etichetta di flusso (20 bit): Permette di identificare pacchetti che appartengono allo stesso flusso di dati (per applicazioni in tempo reale come il VoIP).
•Lunghezza del payload (16 bit): Specifica la dimensione del payload, cioè dei dati trasportati dal pacchetto, esclusa l’intestazione.
•Next Header (8 bit): Indica il protocollo del livello superiore, simile al campo Protocol di IPv4.
•Hop Limit (8 bit): Funziona come il campo TTL in IPv4, riducendosi di 1 a ogni passaggio attraverso un router.
•Indirizzo IP di origine (128 bit): Indirizzo del mittente.
•Indirizzo IP di destinazione (128 bit): Indirizzo del destinatario.
3. Indirizzamento IP
Uno dei ruoli chiave dell’IP è assegnare indirizzi univoci ai dispositivi per identificarli sulla rete.
IPv4 Addressing
Gli indirizzi IPv4 sono rappresentati in formato a 32 bit, suddivisi in quattro ottetti (o byte), ognuno rappresentato in decimale (ad esempio, 192.168.1.1). Gli indirizzi IPv4 sono limitati a circa 4,3 miliardi di combinazioni, ma molte di queste sono riservate per usi speciali (es. reti private e multicast).
IPv6 Addressing
Per superare la scarsità di indirizzi IPv4, IPv6 utilizza uno spazio di indirizzamento a 128 bit, consentendo un numero molto maggiore di indirizzi (circa 340 undecilioni). Gli indirizzi IPv6 sono rappresentati da otto blocchi di quattro cifre esadecimali (ad esempio, 2001:0db8:85a3:0000:0000:8a2e:0370:7334).
4. Frammentazione e Ricomposizione
Se un pacchetto IP è troppo grande per una rete intermedia (ad esempio, una rete con una MTU inferiore), viene suddiviso in più frammenti. Ogni frammento ha un’intestazione che consente al destinatario di ricomporre i frammenti nell’ordine corretto. In IPv6, solo il mittente può frammentare, mentre IPv4 consente la frammentazione anche lungo il percorso.
5. Instradamento (Routing)
L’IP utilizza algoritmi di instradamento per determinare il percorso che un pacchetto deve seguire per raggiungere la sua destinazione finale. I router giocano un ruolo cruciale nell’instradamento, decidendo il miglior percorso possibile basandosi su tabelle di routing e algoritmi come RIP, OSPF o BGP.
6. Protocolli collegati all’IP
Oltre all’IP stesso, ci sono protocolli che lo supportano e lo completano:
•ICMP (Internet Control Message Protocol): Utilizzato per segnalare errori e diagnosticare problemi di rete (ad esempio tramite il comando “ping”).
•ARP (Address Resolution Protocol): Risolve gli indirizzi IP in indirizzi MAC su una rete locale.
•DHCP (Dynamic Host Configuration Protocol): Assegna dinamicamente indirizzi IP ai dispositivi che si connettono a una rete.
7. Sicurezza in IP
L’IPsec è un’estensione di IP che fornisce autenticazione e cifratura dei pacchetti IP, garantendo la sicurezza nelle comunicazioni tra dispositivi.
8. Differenze tra IPv4 e IPv6
Le principali differenze tra IPv4 e IPv6 includono:
•Spazio di indirizzamento: IPv4 utilizza indirizzi a 32 bit, mentre IPv6 utilizza indirizzi a 128 bit.
•Configurazione: IPv6 supporta l’autoconfigurazione automatica degli indirizzi, mentre IPv4 spesso richiede il DHCP.
•Prestazioni: L’intestazione IPv6 è più semplice e ottimizzata rispetto a quella IPv4.
•Sicurezza: IPv6 integra IPsec come caratteristica standard, mentre in IPv4 è opzionale.
In sintesi, il protocollo IP è essenziale per l’instradamento e la gestione della comunicazione dati su Internet, con IPv6 che rappresenta l’evoluzione necessaria per affrontare le crescenti esigenze di connettività globale.
IL NATTING
Il NAT (Network Address Translation) è una tecnologia di rete utilizzata per modificare gli indirizzi IP nei pacchetti durante il loro passaggio attraverso un router o un firewall. La funzione principale del NAT è consentire a più dispositivi all’interno di una rete privata di condividere un singolo indirizzo IP pubblico quando accedono a Internet, risolvendo così il problema della scarsità di indirizzi IPv4 e migliorando la sicurezza della rete.
1. Scopo e Funzioni del NAT
Il NAT è utilizzato per vari scopi:
•Condivisione di un singolo indirizzo IP pubblico: In una rete privata con molti dispositivi, il NAT permette a tutti di utilizzare un singolo indirizzo IP pubblico per la comunicazione esterna. Ad esempio, in un ufficio o in una casa, tutti i dispositivi connessi al router condividono lo stesso IP pubblico assegnato dal provider Internet (ISP).
•Aumento della sicurezza: NAT agisce come una forma di firewall, poiché nasconde gli indirizzi IP interni della rete, rendendo più difficile per un utente esterno accedere direttamente ai dispositivi privati.
•Conservazione degli indirizzi IPv4: Con l’esaurimento degli indirizzi IPv4, il NAT consente di ridurre la necessità di un indirizzo pubblico univoco per ogni dispositivo, rendendo possibile l’uso di indirizzi privati (come quelli definiti da RFC 1918: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).
2. Come funziona il NAT
Il NAT funziona modificando gli indirizzi IP e/o le porte TCP/UDP nei pacchetti che transitano tra una rete privata e una rete pubblica. Durante la comunicazione:
•Quando un dispositivo all’interno della rete privata invia un pacchetto a Internet, il router con NAT cambia l’indirizzo IP privato del mittente con l’indirizzo IP pubblico del router.
•Quando una risposta ritorna, il NAT associa il pacchetto di ritorno all’indirizzo IP privato corretto all’interno della rete, basandosi su una tabella che memorizza l’associazione tra l’indirizzo pubblico e l’indirizzo privato.
3. Tipi di NAT
Esistono diversi tipi di NAT, ciascuno con caratteristiche specifiche:
1. Static NAT
Il Static NAT o NAT statico associa un singolo indirizzo IP privato a un singolo indirizzo IP pubblico in modo fisso. Viene utilizzato quando si desidera che un dispositivo specifico nella rete interna (come un server) sia sempre raggiungibile da Internet con lo stesso indirizzo pubblico. È meno comune, ma utile quando è necessario garantire un accesso esterno continuo a un determinato dispositivo.
2. Dynamic NAT
Nel Dynamic NAT, gli indirizzi IP privati vengono mappati dinamicamente a un pool di indirizzi IP pubblici. Quando un dispositivo interno richiede accesso a Internet, il router assegna temporaneamente un indirizzo IP pubblico disponibile dal pool. Quando la sessione termina, l’indirizzo pubblico può essere riassegnato a un altro dispositivo. Questo metodo è meno utilizzato rispetto al NAT statico o al PAT.
3. PAT (Port Address Translation) o NAT Overload
Il PAT, anche chiamato NAT Overload, è la forma più comune di NAT. Permette a più dispositivi interni di condividere un singolo indirizzo IP pubblico utilizzando numeri di porta TCP/UDP distinti per ogni sessione. Quando un dispositivo invia dati a Internet, il router NAT cambia sia l’indirizzo IP che il numero di porta sorgente del dispositivo privato. Quando la risposta ritorna, il router utilizza il numero di porta per determinare a quale dispositivo interno inviare i dati. Il PAT consente a centinaia o migliaia di dispositivi di condividere un unico indirizzo IP pubblico.
4. Funzionamento del NAT e delle porte
Il Port Address Translation (PAT) è particolarmente importante perché utilizza le porte TCP e UDP per mantenere traccia delle connessioni. Le porte sono numeri che identificano specifiche sessioni di comunicazione su una rete. Quando un dispositivo privato invia un pacchetto:
•Il router NAT assegna una porta casuale alla connessione e la memorizza in una tabella di traduzione NAT insieme all’indirizzo IP interno e alla porta originale del dispositivo.
•Quando un pacchetto di risposta arriva dall’esterno, il router NAT consulta la sua tabella per determinare a quale dispositivo interno inviare i dati, basandosi sull’associazione tra l’indirizzo pubblico e la porta.
5. Vantaggi del NAT
•Riduzione dell’uso di indirizzi IPv4 pubblici: Poiché un singolo IP pubblico può essere condiviso da più dispositivi privati, il NAT aiuta a preservare gli indirizzi IPv4, la cui disponibilità è limitata.
•Miglioramento della sicurezza: Il NAT nasconde gli indirizzi IP privati, rendendo più difficile per i malintenzionati esterni identificare e attaccare dispositivi specifici all’interno di una rete.
•Flessibilità nell’uso degli indirizzi IP privati: Le reti locali possono utilizzare liberamente indirizzi privati senza conflitti con gli indirizzi pubblici.
6. Svantaggi del NAT
Nonostante i vantaggi, il NAT presenta alcune limitazioni:
•Problemi di compatibilità con alcune applicazioni: Alcune applicazioni o protocolli che utilizzano informazioni specifiche sull’indirizzo IP, come VoIP o giochi online, possono riscontrare problemi a causa della modifica degli indirizzi da parte del NAT.
•Sovraccarico dei router: La gestione delle traduzioni di indirizzo IP richiede risorse di calcolo, e in reti molto grandi questo può causare un carico aggiuntivo sui router.
•Complicazione nella configurazione di servizi accessibili dall’esterno: Se si vuole che un dispositivo all’interno della rete privata sia accessibile dall’esterno (ad esempio un server web), è necessario configurare port forwarding, mappando le porte specifiche dall’esterno verso un dispositivo interno.
7. Port Forwarding
Il Port Forwarding è una tecnica utilizzata insieme al NAT per consentire a dispositivi esterni di accedere a servizi su dispositivi interni a una rete privata. Ad esempio, per permettere l’accesso a un server web interno dalla rete pubblica, è necessario configurare il router per inoltrare le richieste ricevute sulla porta 80 (HTTP) o 443 (HTTPS) verso l’indirizzo IP interno del server.
8. NAT e IPv6
Con l’introduzione di IPv6, che ha uno spazio di indirizzamento molto più grande rispetto a IPv4, il bisogno di NAT dovrebbe diminuire. IPv6 fornisce indirizzi pubblici a ogni dispositivo, riducendo la necessità di traduzioni di indirizzi. Tuttavia, il NAT potrebbe essere ancora utilizzato in scenari specifici per motivi di sicurezza o di gestione delle reti.
9. Sintesi
Il NAT svolge un ruolo essenziale nella gestione degli indirizzi IP e nella protezione delle reti private. La sua capacità di consentire a più dispositivi di condividere un singolo indirizzo IP pubblico lo rende fondamentale in un’epoca di scarsità di indirizzi IPv4. Tuttavia, presenta anche alcune limitazioni, soprattutto in termini di compatibilità con applicazioni specifiche e gestione della configurazione della rete. Con la transizione a IPv6, si prevede una riduzione dell’uso del NAT, sebbene non scomparirà del tutto.
IL FUNZIONAMENTO DI INTERNET
Internet è una rete globale che connette miliardi di dispositivi in tutto il mondo, permettendo la trasmissione e lo scambio di dati tra di essi. Per capire come funziona Internet, è utile scomporlo in vari elementi fondamentali e spiegare come ciascuno di essi contribuisce alla sua operatività. Ecco una descrizione dettagliata del funzionamento di Internet, dalle basi del suo infrastruttura fisica ai protocolli di comunicazione utilizzati per trasmettere dati.
1. Infrastruttura fisica
Internet si basa su una complessa infrastruttura fisica che comprende:
•Cavi e fibra ottica: La maggior parte del traffico Internet viaggia attraverso reti di cavi, spesso in fibra ottica, che collegano vari paesi, città e continenti. Questi cavi sotterranei e sottomarini consentono la trasmissione veloce dei dati sotto forma di segnali luminosi.
•Router e switch: Sono dispositivi che indirizzano il traffico di dati tra le reti. I router determinano il percorso più efficiente per far viaggiare i pacchetti di dati da un punto all’altro. Gli switch si occupano di smistare i pacchetti all’interno di una rete locale.
•Data center e server: Sono i luoghi fisici in cui sono ospitati siti web, applicazioni, e-mail e altri contenuti di Internet. I server sono computer specializzati che forniscono dati e risorse agli utenti.
•Punti di scambio Internet (IXP): Sono nodi in cui vari provider di servizi Internet (ISP) si connettono tra loro per scambiare traffico dati in modo efficiente. Gli IXP sono essenziali per la riduzione della latenza e la gestione del traffico interdomini.
2. Indirizzamento IP
Ogni dispositivo connesso a Internet, dai computer ai telefoni cellulari, deve avere un indirizzo IP (Internet Protocol) univoco per identificarsi nella rete. Gli indirizzi IP possono essere:
•IPv4: Formato più vecchio di indirizzi IP, basato su 32 bit, che offre circa 4,3 miliardi di combinazioni possibili.
•IPv6: Versione più recente, introdotta per risolvere il problema della scarsità di indirizzi IPv4, con indirizzi basati su 128 bit, offrendo uno spazio di indirizzamento molto più grande.
L’indirizzo IP funziona come l’indirizzo di una casa, che consente ai pacchetti di dati di raggiungere la loro destinazione corretta.
3. Protocollo di comunicazione: TCP/IP
Il TCP/IP (Transmission Control Protocol/Internet Protocol) è il protocollo principale su cui si basa Internet. Definisce come i dati vengono suddivisi in pacchetti, trasmessi e ricomposti all’arrivo. Il TCP/IP opera su due livelli principali:
•IP (Internet Protocol): Si occupa dell’indirizzamento e dell’instradamento dei pacchetti di dati tra mittente e destinatario.
•TCP (Transmission Control Protocol): Garantisce che i pacchetti siano consegnati in modo affidabile e nell’ordine corretto. Quando un pacchetto viene perso o danneggiato, il TCP richiede che venga ritrasmesso.
4. Divisione dei dati in pacchetti
Quando invii un messaggio o accedi a una pagina web, i dati vengono suddivisi in pacchetti. Ogni pacchetto contiene una parte dei dati originali e informazioni di controllo, come l’indirizzo IP di origine, l’indirizzo IP di destinazione e il numero di sequenza. Questi pacchetti vengono inviati attraverso la rete indipendentemente l’uno dall’altro e possono seguire percorsi diversi per raggiungere la destinazione. Una volta arrivati, vengono ricomposti per ricostruire il messaggio originale.
5. Routing e instradamento
Quando un pacchetto viene inviato da un computer a un altro, attraversa diverse reti e dispositivi. Il routing è il processo mediante il quale i pacchetti vengono instradati dal mittente al destinatario attraverso vari router, dispositivi che si trovano ai confini delle reti. Ogni router ha una tabella di routing che contiene informazioni sui percorsi migliori per raggiungere specifici indirizzi IP.
I pacchetti possono viaggiare attraverso reti locali (LAN), reti geografiche (WAN) e attraverso l’Internet globale, che è composta da una rete di reti, fino a raggiungere la destinazione finale. Se un pacchetto non riesce a trovare un percorso, il router invia un messaggio di errore al mittente.
6. Risoluzione dei nomi: DNS (Domain Name System)
Gli utenti di Internet non utilizzano gli indirizzi IP direttamente, ma si affidano a nomi di dominio (come www.google.com) per accedere ai siti web o altri servizi. Il DNS (Domain Name System) è un sistema che traduce questi nomi di dominio in indirizzi IP. Il funzionamento del DNS avviene in più fasi:
•Quando si inserisce un nome di dominio in un browser, il computer invia una richiesta a un server DNS.
•Il server DNS risponde con l’indirizzo IP corrispondente al nome di dominio richiesto.
•Il browser usa l’indirizzo IP per inviare la richiesta al server che ospita il sito web.
7. Protocolli applicativi
Internet non si limita al trasferimento di pacchetti di dati, ma utilizza una serie di protocolli applicativi che definiscono come determinati tipi di dati devono essere gestiti. Alcuni dei protocolli più importanti includono:
•HTTP/HTTPS (Hypertext Transfer Protocol / Secure): Il protocollo utilizzato per la trasmissione di pagine web.
•SMTP (Simple Mail Transfer Protocol): Utilizzato per inviare e-mail.
•FTP (File Transfer Protocol): Utilizzato per il trasferimento di file.
•VoIP (Voice over IP): Utilizzato per la trasmissione della voce su Internet, come in chiamate via Skype o Zoom.
8. Servizi di connessione: ISP (Internet Service Provider)
Per connettersi a Internet, gli utenti devono passare attraverso un ISP (Internet Service Provider). Gli ISP forniscono l’accesso alla rete globale tramite vari mezzi, tra cui:
•DSL o fibra ottica: Connessioni cablate, generalmente ad alta velocità.
•Wi-Fi: Connessioni wireless, spesso fornite da router locali.
•Rete mobile: Connettività attraverso reti cellulari (3G, 4G, 5G).
Gli ISP si connettono a loro volta a reti dorsali (backbone), che sono le principali vie di comunicazione che trasportano il traffico Internet su lunghe distanze.
9. Sicurezza su Internet
La sicurezza è una componente fondamentale di Internet. Viene garantita attraverso vari meccanismi:
•Crittografia: La crittografia, come quella utilizzata nei protocolli HTTPS o SSL/TLS, protegge i dati trasmessi, rendendoli illeggibili a chiunque non possieda la chiave di decrittazione.
•Firewall: I firewall controllano il traffico in entrata e in uscita da una rete, bloccando i dati non autorizzati.
•VPN (Virtual Private Network): Una VPN crea un tunnel sicuro tra l’utente e un server remoto, criptando il traffico e proteggendo l’identità dell’utente.
10. Cloud computing e Internet
Uno dei principali sviluppi recenti è il cloud computing, che consente di utilizzare servizi e risorse (come archiviazione, elaborazione e applicazioni) forniti su server remoti accessibili tramite Internet. I dati e i servizi non risiedono più localmente sui dispositivi degli utenti, ma su infrastrutture distribuite accessibili ovunque tramite la rete.
11. Come funziona il Web (World Wide Web)
Il World Wide Web (WWW) è un sistema di documenti e risorse (pagine web) collegati tra loro tramite link ipertestuali, accessibili attraverso browser web. Il web utilizza principalmente il protocollo HTTP/HTTPS per il trasferimento di pagine web dai server ai browser degli utenti. I browser inviano richieste HTTP per ottenere una risorsa (come un file HTML o un’immagine), e il server risponde inviando il contenuto richiesto.
Sintesi
Internet funziona grazie a una complessa interazione tra infrastrutture fisiche, protocolli di comunicazione e sistemi di gestione dei dati. L’infrastruttura consente il collegamento tra dispositivi in tutto il mondo, mentre protocolli come TCP/IP e DNS garantiscono che i dati vengano trasmessi in modo affidabile ed efficiente. La sicurezza, l’instradamento dei pacchetti, la risoluzione dei nomi e l’accesso tramite ISP sono tutti componenti essenziali che permettono il funzionamento di Internet.
Lascia un commento