Tout se résume à la distribution de probabilité de perte et au modèle de trafic.
Prenons par exemple une liaison sans fil typique, avec un taux de perte constant de 10 à 30%. Si vous acquittez chaque trame reçue (comme 802.11abg), vous détecterez rapidement quand une trame a été perdue, vous ne perdrez donc pas de temps à attendre un délai.
Si vous deviez NAK à la place, vous deviendrez dépendant du modèle de trafic: - Si vous envoyez un seul paquet de demande et attendez une réponse, et que cette demande est perdue, vous devrez avoir un délai qui expire si vous n'obtenez pas de répondre. - Si vous envoyez simplement un flux de paquets à un destinataire principalement muet, il est acceptable de ne recevoir un NAK que lorsque le destinataire reçoit le prochain paquet ou plus. Mais cela signifie que le destinataire doit réorganiser les paquets et que l'expéditeur doit garder une trace d'un important arriéré de messages qu'il a envoyé.
(devinez quelle solution 802.11n choisir? les deux. Le récepteur envoie une image bitmap de longueur variable des trames qu'il a reçues)
Prenons maintenant un réseau Internet typique: vous avez près de 0% de perte de paquets, jusqu'à ce que quelque chose de mauvais se produise, et vous avez une perte de paquets proche de 100% pendant un certain temps suivant une loi de distribution exponentielle, d'une interruption de 200 ms à une minute et un moitié.
Accepter chaque paquet semblerait inutile dans un réseau sans perte, jusqu'à ce que vous considériez le cas où le lien est rompu: vous ne recevrez pas ACK ou NACK pendant une durée éventuellement prolongée, et le récepteur n'enverra généralement rien avant le lien est restauré.
Si vous utilisez ACK, l'expéditeur cessera d'envoyer et conservera son carnet de commandes jusqu'à ce que le lien soit restauré. Si vous utilisez NACK à la place, le récepteur peut éventuellement vous dire qu'il n'a pas reçu le paquet qui est tombé du carnet de commandes de l'expéditeur depuis longtemps, et la connexion est essentiellement irrécupérable.