IP is a unreliable protocol because it does not guarantee the delivery of a datagram to its destination. The reliability must be provided by the upper layer protocols like TCP/SCTP. IP does not support flow control, re-transmission, acknowledgement and error recovery.