Comme Aaron Digulla l'a déjà noté, ping est ICMP. Cela signifie également que l'initiateur est encore moins fiable que TCP; il n'y a pas de poignée de main SYN/ACK. Vous venez d'obtenir un paquet IP sur votre hôte, et vous devez faire confiance aux champs d'en-tête. N'importe qui peut usurper ces champs d'en-tête sans presque aucune restriction (il peut être difficile d'obtenir une adresse IP prétendant provenir de 127.0.0.1 après un routeur)
Par conséquent, ICMP n'est pas compatible avec les tâches de vérification. Vous avez besoin d'un protocole de challenge/réponse. TCP fonctionne reasoanbly bien aussi longtemps que vous pouvez faire confiance au réseau, mais pas nécessairement tous les hôtes sur elle (une hypothèse raisonnable pour l'Internet. Pas assez forte pour les transactions financières, ce qui explique pourquoi ils utilisent SSL)