Files
learning/networking/016-icmp.md
2025-05-18 21:12:45 +02:00

1.8 KiB

ICMP (Internet Control Message Protocol)

ICMP è un protocollo fondamentale nel networking, utilizzato sia in IPv4 che in IPv6 (ICMPv6). Appartenente al livello 3 del modello ISO/OSI (Network Layer) e non trasporta dati applicativi ma viene impiegato per trasmettere messaggi sullo stato di rete e per segnalare errori.

Funzionalità principali

  1. Segnalazione degli errori: quando un router rileva un problema (ad esempio, la destinazione non è raggiungibile, non è in grado di inoltrare il pacchetto o il TTL, Time To Live, è scaduta), genera un pacchetto ICMP per informare il mittente dell'errore verificatosi. Questi messaggi aiutano a diagnosticare e risolvere problemi di rete
  2. Meccanismo Query-Response: ICMP supporta operazioni di richiesta e risposta, essenziali per le diagnostiche di rete. Un tipico esempio è l'uso dei messaggi Echo Request ed Echo Reply che costituiscono la base del comando ping.

Il comando ping

Il comando ping è uno strumento diagnostico che sfrutta ICMP per testare la connessione di rete. Invia un pacchetto ICMP Echo Request a un indirizzo IP specificato e attende una risposta Echo Reply

> ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=54 time=65.9 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=54 time=242 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=54 time=164 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=54 time=192 ms
^C
--- 1.1.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 65.939/166.214/242.448/64.330 ms

Nell'output:

  • ttl (Time To Live) mostra il valore residuo del campo TTL, che diminuisce ad ogni hop
  • time indica il tempo impiegato per il percorso andata e ritorno (round-trip time, rtt)