6.1.3. Le Récepteur TCP (The TCP Receiver)
Lorsque TCP reçoit un paquet CE au système terminal de destination, le récepteur de données TCP définit le drapeau ECN-Echo dans l'en-tête TCP des paquets ACK ultérieurs. Si un retard d'ACK (withholding) est implémenté, comme dans les implémentations TCP "delayed-ACK" actuelles, où le récepteur TCP peut envoyer un ACK pour deux paquets arrivés, alors le drapeau ECN-Echo dans le paquet ACK sera défini à '1' si le codepoint CE était défini dans l'un des paquets accusés de réception. C'est-à-dire que si l'un des paquets reçus est un paquet CE, l'ACK retourné a le drapeau ECN-Echo défini.
Pour assurer la robustesse contre la possibilité que les paquets ACK portant le drapeau ECN-Echo soient abandonnés, le récepteur TCP définit le drapeau ECN-Echo dans une série de paquets ACK qu'il envoie ensuite. Le récepteur TCP utilise le drapeau CWR reçu de l'expéditeur TCP pour déterminer quand arrêter de définir le drapeau ECN-Echo.
Après qu'un récepteur TCP a envoyé un paquet ACK avec le bit ECN-Echo défini, ce récepteur TCP continue à définir le drapeau ECN-Echo dans tous les paquets ACK qu'il envoie (qu'ils accusent réception de paquets CE ou non-CE) jusqu'à ce qu'il reçoive un paquet CWR (un paquet avec le drapeau CWR défini). Après la réception d'un paquet CWR, les accusés de réception pour les paquets non-CE ultérieurs ne définissent pas le drapeau ECN-Echo. Si le récepteur de données reçoit un autre paquet CE, le récepteur enverra à nouveau des paquets ACK avec le drapeau ECN-Echo défini. Bien que la réception d'un paquet CWR ne garantisse pas que le récepteur de données a reçu le message ECN-Echo, cela indique que l'expéditeur de données a réduit sa fenêtre de congestion à un moment après l'envoi du paquet avec le codepoint CE défini.
Nous avons spécifié que l'expéditeur TCP n'a pas besoin de réduire sa fenêtre de congestion plus d'une fois par fenêtre de données. Une certaine attention est nécessaire si l'expéditeur TCP veut éviter de réduire inutilement la fenêtre de congestion lorsqu'une fenêtre de données comprend à la fois des paquets perdus et des paquets (marqués) CE. Ceci est illustré dans [Floyd98].