0 - Network unreachable - Tells you if a specific network is currently unreachable.
1 - Host unreachable - Tells you if a specific host is currently unreachable.
2 - Protocol unreachable - This code tells you if a specific protocol (tcp, udp, etc) can not be reached at the moment.
3 - Port unreachable - If a port (ssh, http, ftp-data, etc) is not reachable, you will get this message.
4 - Fragmentation needed and DF set - If a packet needs to be fragmented to be delivered, but the Do not fragment bit is set in the packet, the gateway will return this message.
5 - Source route failed - If a source route failed for some reason, this message is returned.
6 - Destination network unknown - If there is no route to a specific network, this message is returned.
7 - Destination host unknown - If there is no route to a specific host, this message is returned.
8 - Source host isolated (obsolete) - If a host is isolated, this message should be returned. This code is obsoleted today.
9 - Destination network administratively prohibited - If a network was blocked at a gateway and your packet was unable to reach it because of this, you should get this ICMP code back.
10 - Destination host administratively prohibited - If you where unable to reach a host because it was administratively prohibited (e.g., routing administration), you will get this message back.
11 - Network unreachable for TOS - If a network was unreachable because of a bad TOS setting in your packet, this code will be generated as a return packet.
12 - Host unreachable for TOS - If your packet was unable to reach a host because of the TOS of the packet, this is the message you get back.
13 - Communication administratively prohibited by filtering - If the packet was prohibited by some kind of filtering (e.g., firewalling), we get a code 13 back.
14 - Host precedence violation - This is sent by the first hop router to notify a connected host, to notify the host that the used precedence is not permitted for a specific destination/source combination.
15 - Precedence cutoff in effect - The first hop router may send this message to a host if the datagram it received had a too low precedence level set in it.