IP est considéré comme étant un protocole non-fiable. Cela ne signifie pas qu'il n'envoie pas correctement les données sur le réseau, cela signifie qu'il n'offre aucune garantie pour les paquets envoyés pour aucun des points suivants :
- corruption de donnée
- ordre d'arrivée des paquets (un paquet A peut être envoyé avant un paquet B, mais le paquet B peut arriver avant le paquet A)
- perte ou destruction de paquet
- ré-émission des paquets en cas de non-réception
En terme de fiabilité, le seul service offert par IP est de s'assurer que les en-têtes de paquets transmis ne comportent pas d'erreurs grâce à l'utilisation de somme de contrôle (checksum). Si l'en-tête d'un paquet comprend une erreur, son checksum ne sera pas valide et le paquet sera détruit sans être transmis. En cas de destruction de paquets, aucune notification n'est envoyée à l'expéditeur (encore qu'un paquet ICMP peut être envoyé).
Pour garantir ces points de fiabilité qu'IP n'offre pas, un protocole de niveau supérieur doit être utilisé.
La raison principale de cette absence de gestion de la fiabilité au niveau IP est la volonté de réduire le niveau de complexité des routeurs et ainsi de leur permettre de disposer d'une plus grande rapidité. L'intelligence est alors déportée vers les points d'extrémités du réseau.