Ethernet (standard IEEE 802.3) è la tecnologia dominante per le reti locali
cablate.
• Indirizzamento MAC: Ogni scheda di rete (NIC) ha un indirizzo fisico
univoco a 48 bit, chiamato indirizzo MAC (Media Access Control). Questo
indirizzo è “bruciato” dal produttore sull’hardware.
• Frame Ethernet: L’unità dati del livello Data Link è il frame. Un frame
Ethernet contiene:
– Indirizzo MAC di destinazione e sorgente.
– Un campo “Tipo” (EtherType) che indica il protocollo di livello su-
periore incapsulato (es. IP).
– Il payload (i dati, ovvero il pacchetto IP).
– Un campo di controllo (CRC) per il rilevamento degli errori.
• CSMA/CD (Carrier Sense Multiple Access with Collision De-
tection): Nelle vecchie reti Ethernet a bus, questo era il meccanismo
di accesso al mezzo. Un host, prima di trasmettere, “ascolta” il canale
(Carrier Sense). Se è libero, trasmette. Se due host trasmettono contem-
poraneamente, si verifica una collisione (Collision Detection). Entrambi
si fermano, attendono un tempo casuale (backoff) e riprovano. Nelle mod-
erne reti a stella con switch, le collisioni sono quasi eliminate grazie ai
domini di collisione separati per ogni porta.
5
3.2 ARP (Address Resolution Protocol)
ARP è un protocollo cruciale che traduce un indirizzo IP (livello 3) in un indi-
rizzo MAC (livello 2) all’interno di una stessa LAN.
Funzionamento: 1. L’host A vuole inviare un pacchetto all’host B sulla stessa
LAN. Conosce l’IP di B, ma non il suo MAC address. 2. L’host A invia un
pacchetto ARP Request in broadcast sulla LAN. Il messaggio chiede: “Chi
ha l’indirizzo IP Per favore, dimmi il tuo MAC address.” 3.
192.168.1.2?
Tutti gli host sulla LAN ricevono la richiesta, ma solo l’host B, che riconosce il
proprio IP, risponde. 4. L’host B invia un pacchetto ARP Reply in unicast
direttamente all’host A, contenente il proprio MAC address. 5. L’host A riceve
la risposta e memorizza l’associazione IP-MAC nella sua ARP cache (una
tabella locale) per usi futuri, per poi inviare il pacchetto IP a B.
3.3 VLAN (Virtual LAN)
Le VLAN (IEEE 802.1Q) permettono di segmentare una singola rete fisica in
più reti logiche separate. Gli host su VLAN diverse non possono comunicare
direttamente, anche se sono collegati allo stesso switch. È come avere più switch
virtuali all’interno di uno fisico.
• Vantaggi:
– Sicurezza: Isola i gruppi di utenti (es. dipartimenti aziendali).
– Performance: Limita il dominio di broadcast. Un messaggio di
broadcast inviato in una VLAN non si propaga alle altre.
– Flessibilità: Gli host possono essere spostati fisicamente senza dover
cambiare la configurazione di rete.
Per far comunicare host su VLAN diverse, è necessario un dispositivo di livello
3, come un router o uno switch Layer 3 (“router on a stick”).
Capitolo 4: Livello di Rete (Internet Protocol - IP)
Il livello di rete è il cuore di Internet. Il suo compito è l’instradamento (routing)
dei pacchetti dalla sorgente alla destinazione attraverso reti eterogenee.
4.1 IPv4 (Internet Protocol version 4)
È la versione storica e ancora predominante del protocollo IP.
• Indirizzi IPv4: Un indirizzo IPv4 è un numero a 32 bit, convenzional-
mente scritto in “notazione decimale puntata” (es. Lo
192.168.1.1).
spazio di indirizzamento è di 2^32 (circa 4.3 miliardi) di indirizzi, ormai
quasi esaurito.
• Datagramma IP: È il pacchetto del livello di rete. L’header IP contiene
informazioni cruciali: 6
– Indirizzo IP sorgente e destinazione.
– TTL (Time To Live): Un contatore che viene decrementato da
ogni router. Quando arriva a 0, il pacchetto viene scartato. Serve a
evitare che i pacchetti vaghino all’infinito nella rete.
– Protocollo: Indica il protocollo di livello trasporto incapsulato (es.
TCP o UDP).
• Subnet Mask: Una maschera di sottorete (es. serve
255.255.255.0)
a dividere un indirizzo IP in due parti: la parte di rete (Network ID)
e la parte di host (Host ID). Tutti gli host con lo stesso Network ID
appartengono alla stessa sottorete.
• CIDR (Classless Inter-Domain Routing): Ha sostituito il vecchio
sistema di classi di indirizzi (A, B, C). Permette di usare maschere di
sottorete di lunghezza variabile (es. consentendo un’allocazione più
/24),
flessibile ed efficiente degli indirizzi.
4.2 Routing
Il routing è il processo di selezione del percorso per i pacchetti. I dispositivi che
eseguono il routing sono i router. Ogni router ha una tabella di routing che
associa le reti di destinazione alla “prossima tappa” (next hop) a cui inviare il
pacchetto.
Internet è una “rete di reti”. È suddivisa in Sistemi Autonomi (AS), ovvero
grandi reti gestite da un’unica entità amministrativa (es. un ISP).
• Routing Intradominio (Intra-AS): Algoritmi di routing usati
di un singolo AS. L’obiettivo è trovare il percorso più
all’interno
efficiente.
– Protocolli Distance Vector (es. RIP): Ogni router comunica
ai suoi vicini la sua visione dell’intera rete (la sua distanza da ogni
destinazione). Semplice ma soffre di convergenza lenta e del problema
del “count-to-infinity”.
– Protocolli Link State (es. OSPF): Ogni router comunica a tutti
gli altri router dell’AS solo lo stato dei propri collegamenti diretti.
Ogni router ricostruisce la mappa completa della rete e calcola il
percorso migliore (es. con l’algoritmo di Dijkstra). Più complesso
ma più robusto e veloce a convergere. OSPF (Open Shortest
Path First) è il protocollo Link State più diffuso.
• Routing Interdominio (Inter-AS): Algoritmo di routing usato tra
Sistemi Autonomi diversi. L’obiettivo non è solo l’efficienza, ma anche
l’applicazione di policy economiche e politiche.
– BGP (Border Gateway Protocol): È il protocollo standard de
facto per il routing interdominio. BGP non si basa su metriche di
performance, ma su “path vector” (il percorso come sequenza di AS)
e su policy configurate dagli amministratori di rete.
7
4.3 ICMP (Internet Control Message Protocol)
ICMP è un protocollo di supporto a IP, usato per inviare messaggi di errore e di
controllo. Non trasporta dati utente. Esempi di messaggi ICMP: * Destination
Il pacchetto non ha potuto essere consegnato. *
Unreachable: Time Exceeded:
Il TTL del pacchetto è arrivato a zero. * / Usati
Echo Request Echo Reply:
dal comando per verificare la raggiungibilità di un host.
ping
4.4 IPv6
IPv6 è stato introdotto per risolvere il problema dell’esaurimento degli indirizzi
IPv4.
• Indirizzi IPv6: Sono a 128 bit, offrendo uno spazio di indirizzamento
virtualmente illimitato. Sono scritti in notazione esadecimale (es.
2001:0db8:85a3:0000:0000:8a2e:0370:7334).
• Header Semplificato: L’header di IPv6 è più semplice di quello di IPv4.
Alcuni campi sono stati rimossi o spostati in “estensioni” opzionali, ren-
dendo l’elaborazione da parte dei router più veloce.
• Autoconfigurazione (SLAAC): Un host IPv6 può autoconfigurarsi un
indirizzo senza bisogno di un server DHCP.
• Transizione da IPv4 a IPv6: Poiché non è possibile aggiornare tutta
Internet in una volta, sono state sviluppate tecniche di transizione come il
dual stack (i dispositivi supportano entrambi i protocolli) e il tunneling
(i pacchetti IPv6 vengono incapsulati in pacchetti IPv4 per attraversare
parti di rete solo IPv4).
Capitolo 5: Livello Trasporto
Il livello trasporto fornisce la comunicazione logica tra processi applicativi in
esecuzione su host diversi.
5.1 UDP (User Datagram Protocol)
• Caratteristiche:
– Senza connessione (Connectionless): Non c’è una fase di setup
della connessione. Ogni datagramma è indipendente.
– Non affidabile (“Best-effort”): Non garantisce la consegna,
l’ordine o l’assenza di duplicati.
– Leggero e Veloce: L’header UDP è molto piccolo (8 byte).
• Casi d’uso: Applicazioni che privilegiano la velocità e la bassa latenza
rispetto all’affidabilità, e che possono tollerare la perdita di qualche pac-
chetto. Esempi: streaming video/audio, giochi online, DNS.
8
5.2 TCP (Transmission Control Protocol)
• Caratteristiche:
– Orientato alla connessione: Prima dello scambio di dati, viene
stabilita una connessione tramite un processo chiamato three-way
handshake:
1. Client -> Server: (voglio iniziare una connessione)
SYN
2. Server -> Client: (OK, sono pronto, e confermo la tua
SYN-ACK
richiesta)
3. Client -> Server: (Ricevuto, iniziamo)
ACK
– Affidabile: Garantisce che tutti i dati vengano consegnati senza
errori, senza perdite e nell’ordine corretto. Utilizza numeri di se-
quenza per ordinare i segmenti e acknowledgement (ACK) per
confermare la ricezione. Se un ACK non arriva entro un certo tempo
(timeout), il segmento viene ritrasmesso.
– Controllo di Flusso: Evita che un mittente veloce sovraccarichi
un ricevitore lento. Il ricevitore comunica la sua capacità residua di
buffer (la receive window) al mittente, che adatta la sua velocità
di trasmissione. Evita che troppi dati vengano immessi
– Controllo di Congestione:
nella rete, causando il collasso della rete stessa (congestion collapse).
TCP utilizza algoritmi sofisticati per adattare la velocità di invio in
base alla congestione percepita sulla rete.
5.2.1 Algoritmi di Controllo di Congestione TCP
• Slow Start: All’inizio di una connessione, la finestra di congestione (cwnd)
parte da un valore piccolo (es. 1 MSS - Maximum Segment Size) e rad-
doppia ad ogni round-trip time (crescita esponenziale). Questo permette
di sondare rapidamente la capacità della rete.
• Congestion Avoidance: Quando la supera una certa soglia
cwnd
(ssthresh), la crescita diventa lineare (additiva) invece che esponenziale,
per evitare di congestionare la rete.
• Fast Retransmit e Fast Recovery: Se il mittente riceve tre ACK dupli-
cati per lo stesso segmento, assume che il segmento successivo sia andato
perso e lo ritrasmette immediatamente, senza aspettare il timeout. Invece
di ripartire da Slow Start, entra in una fase di Fast Recovery, dimezzando
la e continuando con la crescita lineare. Questo migliora notevol-
cwnd
mente le prestazioni su reti con perdite occasionali.
Capitolo 6: Sicurezza nelle Reti
6
-
Miei appunti personali presi con latex di Calcolatori elettronici
-
Miei appunti Latex di Economia e organizzazione aziendale
-
Miei appunti presi con latex di Telecomunicazioni
-
Miei appunti Latex di Programmazione ad oggetti