Perbedaan antara respons sebenarnya tidak ditentukan oleh ICMP itu sendiri melainkan secara tidak langsung.
ICMP dapat membedakan antara berikut ini:
0 = net unreachable;
1 = host unreachable;
2 = protocol unreachable;
3 = port unreachable;
4 = fragmentation needed and DF set;
5 = source route failed.
Tetapi ia melakukannya dengan sumber daya jaringan lainnya. Kode 0, 1, 4, dan 5 dapat diterima dari gateway. Kode 2 dan 3 dapat diterima dari host.
Jika, menurut informasi dalam tabel perutean gateway, jaringan tujuan tidak dapat dijangkau, (misalnya, jarak ke jaringan adalah tak terbatas), gateway dapat mengirim pesan tidak terjangkau tujuan ke host sumber internet datagram. Selain itu, di beberapa jaringan, gateway mungkin dapat menentukan apakah host tujuan internet tidak dapat dijangkau. Gateways di jaringan ini yang dapat mengirim pesan tujuan yang tidak dapat dijangkau ke host sumber ketika host tujuan tidak dapat dijangkau, jadi sebenarnya ICMP tidak melakukan penentuan.
Jika dalam host tujuan, modul IP tidak dapat mengirimkan datagram karena modul protokol atau port proses yang ditunjukkan tidak aktif, maka host tujuan dapat mengirim pesan 'tujuan tidak terjangkau' ke host sumber.
Akhirnya, jika datagram harus difragmentasi untuk diteruskan oleh gateway namun flag 'Jangan Fragmen' aktif, gateway akan membuang datagram dan akan mengembalikan pesan 'tujuan yang tidak terjangkau'.
Sekarang untuk membedakan antara 2 kasus terpisah: Permintaan Habis Waktu berarti bahwa tidak ada pesan Balas Echo diterima dalam waktu yang ditentukan. Ini bisa disebabkan oleh berbagai penyebab: kegagalan permintaan ARP, kemacetan jaringan, penyaringan paket, kesalahan perutean, atau bahkan penghentian yang diam.
Ketika Anda mendapatkan Balas Dari [alamat IP]: 'Host Host Tidak Dapat Dicapai,' maka masalah terjadi pada / setelah router jarak jauh, yang alamatnya ditunjukkan oleh [alamat IP]. Jadi router memberitahu Anda bahwa ada masalah antara itu dan alamat tujuan.