Le differenze tra le risposte non sono effettivamente determinate dall'ICMP stesso ma piuttosto indirettamente.
ICMP può distinguere tra i seguenti:
0 = net unreachable;
1 = host unreachable;
2 = protocol unreachable;
3 = port unreachable;
4 = fragmentation needed and DF set;
5 = source route failed.
Ma lo fa con altre risorse di rete. I codici 0, 1, 4 e 5 possono essere ricevuti da un gateway. I codici 2 e 3 possono essere ricevuti da un host.
Se, in base alle informazioni contenute nelle tabelle di routing del gateway, la rete di destinazione non è raggiungibile (ad esempio, la distanza dalla rete è infinita), il gateway può inviare un messaggio non raggiungibile di destinazione all'host di origine Internet del datagramma. Inoltre, in alcune reti, il gateway potrebbe essere in grado di determinare se l'host di destinazione Internet non è raggiungibile. Sono i gateway in queste reti che possono inviare messaggi di destinazione non raggiungibili all'host di origine quando l'host di destinazione non è raggiungibile, quindi non è effettivamente ICMP a fare le determinazioni.
Nel caso in cui nell'host di destinazione, il modulo IP non sia in grado di consegnare il datagramma perché il modulo di protocollo indicato o la porta di processo non è attivo, l'host di destinazione potrebbe inviare un messaggio di "destinazione non raggiungibile" all'host di origine.
Infine, se un datagramma deve essere frammentato per essere inoltrato da un gateway ma il flag "Non frammentare" è attivo, il gateway scarterà il datagramma e restituirà un messaggio "destinazione non raggiungibile".
Ora fare la differenza tra i 2 casi separati: Richiesta scaduta significa che non è stato ricevuto alcun messaggio di risposta eco entro il tempo impostato. Ciò può essere dovuto a molte cause diverse: errore della richiesta ARP, congestione della rete, filtro dei pacchetti, errore di routing o eliminazione silenziosa.
Quando si riceve una risposta da [indirizzo IP]: "Host di destinazione non raggiungibile", il problema si è verificato presso / dopo un router remoto, il cui indirizzo è indicato da [indirizzo IP]. Quindi è un router che ti dice che c'è un problema tra esso e l'indirizzo di destinazione.