Network Layer
Il Livello 3 Network Layer del modello OSI si occupa dell’instradamento routing dei pacchetti tra reti diverse. Qui troviamo i protocolli fondamentali per la comunicazione su reti IP, come IPv4, IPv6,
🔹 Layer 3 (Rete) del modello ISO/OSI
Il Livello 3 (Network Layer) del modello OSI si occupa dell’instradamento (routing) dei pacchetti tra reti diverse. Qui troviamo i protocolli fondamentali per la comunicazione su reti IP, come IPv4, IPv6, ICMP e ARP.
💡 Principali funzioni del Layer 3: ✅ Instradamento (Routing): determina il percorso migliore per i pacchetti attraverso la rete. ✅ Indirizzamento IP: assegna indirizzi logici unici ai dispositivi di rete. ✅ Frammentazione e Riassemblaggio: suddivide pacchetti troppo grandi per l’MTU della rete. ✅ Gestione degli errori: attraverso protocolli come ICMP. ✅ Risoluzione indirizzi: con ARP (Address Resolution Protocol).
🔹 Pacchetti di Livello 3: IPv4, ICMP e ARP
1️⃣ Pacchetto IPv4 (Internet Protocol Version 4)
Il protocollo IPv4 è il più utilizzato per instradare i pacchetti sulla rete. Ogni pacchetto contiene un header con informazioni fondamentali.
#### 📌 Struttura di un pacchetto IPv4:
L’header IPv4 ha una lunghezza di 20-60 byte e include i seguenti campi:
| Campo | Dimensione | Descrizione |
| Version | 4 bit | Indica la versione del protocollo (4 per IPv4). |
| IHL (Internet Header Length) | 4 bit | Lunghezza dell’header in multipli di 4 byte. |
| Type of Service (ToS) | 8 bit | Priorità e qualità del servizio (QoS). |
| Total Length | 16 bit | Lunghezza totale del pacchetto (max 65.535 byte). |
| Identification | 16 bit | Identifica frammenti dello stesso pacchetto. |
| Flags | 3 bit | Controlla la frammentazione (DF: Don't Fragment, MF: More Fragments). |
| Fragment Offset | 13 bit | Posizione del frammento nel pacchetto originale. |
| Time To Live (TTL) | 8 bit | Numero massimo di router attraversabili prima di essere scartato. |
| Protocol | 8 bit | Indica il protocollo di livello 4 (TCP=6, UDP=17, ICMP=1). |
| Header Checksum | 16 bit | Controllo di errore dell’header. |
| Source IP Address | 32 bit | Indirizzo IP del mittente. |
| Destination IP Address | 32 bit | Indirizzo IP del destinatario. |
| Options (opzionale) | Variabile | Usato per scopi speciali come debugging e sicurezza. |

💡 Esempio pratico: Con Wireshark, puoi catturare un pacchetto IPv4 e analizzare questi campi.
🔎 Test veloce:
ping 8.8.8.8
- Vedrai un pacchetto IPv4 con protocollo ICMP (vedi sotto).
2️⃣ Pacchetto ICMP (Internet Control Message Protocol)
ICMP è usato per inviare messaggi di controllo e segnalare errori nella rete. Non è un protocollo di trasporto, ma viene incapsulato direttamente in IP.
#### 📌 Struttura di un pacchetto ICMP:
| Campo | Dimensione | Descrizione |
| Type | 8 bit | Tipo di messaggio ICMP (es. 8=Echo Request, 0=Echo Reply, 3=Destination Unreachable). |
| Code | 8 bit | Specifica il tipo di errore (es. 0=Network Unreachable, 1=Host Unreachable). |
| Checksum | 16 bit | Controllo di errore. |
| Rest of Header | 32 bit | Dipende dal tipo di messaggio ICMP. |
| Data | Variabile | Spesso include parte del pacchetto IP originale. |
💡 Esempi di messaggi ICMP importanti:
- Ping (Echo Request/Reply) → verifica la raggiungibilità di un host.
- TTL Exceeded (Type 11, Code 0) → usato nel traceroute per mostrare i router attraversati.
- Destination Unreachable (Type 3) → indica problemi di instradamento.
🔎 Test ICMP:
ping 8.8.8.8
traceroute 8.8.8.8 # (Linux/macOS)
tracert 8.8.8.8 # (Windows)- Con Wireshark, potrai vedere pacchetti ICMP Echo Request/Reply.
3️⃣ Pacchetto ARP (Address Resolution Protocol)
ARP è usato per mappare un indirizzo IP a un indirizzo MAC in una rete locale. È un protocollo di livello 3 ma opera direttamente a livello 2 (Ethernet).
#### 📌 Struttura di un pacchetto ARP:
| Campo | Dimensione | Descrizione |
| Hardware Type | 16 bit | Tipo di hardware (1 per Ethernet). |
| Protocol Type | 16 bit | Tipo di protocollo (0x0800 per IPv4). |
| Hardware Size | 8 bit | Dimensione dell’indirizzo MAC (6 byte per Ethernet). |
| Protocol Size | 8 bit | Dimensione dell’indirizzo IP (4 byte per IPv4). |
| Opcode | 16 bit | Tipo di richiesta (1=Request, 2=Reply). |
| Sender MAC Address | 48 bit | MAC del mittente. |
| Sender IP Address | 32 bit | IP del mittente. |
| Target MAC Address | 48 bit | MAC del destinatario (00:00:00:00:00:00 se non conosciuto). |
| Target IP Address | 32 bit | IP del destinatario. |
💡 Come funziona ARP?
1. Un host invia un ARP Request: "Chi ha 192.168.1.1? Rispondi con il tuo MAC". 2. Il dispositivo con IP 192.168.1.1 risponde con un ARP Reply: "Io ho quel IP, il mio MAC è 00:1A:2B:3C:4D:5E". 3. L’host memorizza il MAC nella sua ARP cache.
🔎 Test ARP: Mostra la cache ARP del tuo sistema:
arp -a # Windows
ip neigh # Linux/macOSPer inviare richieste ARP manuali:
arping -c 3 192.168.1.1🛠️ Conclusione
| Protocollo | Funzione | Livello OSI |
| IPv4 | Instradamento pacchetti su Internet | 3 - Rete |
| ICMP | Diagnosi e segnalazione errori | 3 - Rete |
| ARP | Traduzione IP ↔ MAC | 3 - Rete (agisce su Livello 2) |
📌 Test consigliati
- Cattura pacchetti IPv4, ICMP e ARP con Wireshark.
- Esegui
ping,tracerouteearpingper vedere questi protocolli in azione.
Se hai bisogno di chiarimenti o vuoi provare qualche esercizio pratico, sono a disposizione! 🚀