Aller au contenu principal

4.1. Redémarrage des Connexions Inactives

Un problème connu des algorithmes de contrôle de congestion TCP décrits ci-dessus est qu'ils autorisent la transmission d'une rafale de trafic potentiellement inappropriée après que TCP est resté inactif pendant une période relativement longue. Après une période d'inactivité, TCP ne peut pas utiliser l'horloge des ACK pour cadencer de nouveaux segments dans le réseau, tous les ACK ayant été vidés du réseau. Par conséquent, comme spécifié ci-dessus, TCP peut potentiellement envoyer dans le réseau une rafale au débit de la ligne d'une taille égale à cwnd après une période d'inactivité. En outre, l'évolution des conditions du réseau peut avoir rendu inexacte, pendant la durée d'une longue période d'inactivité, la notion qu'a TCP de la capacité réseau de bout en bout disponible entre deux points d'extrémité, telle qu'estimée par cwnd.

[Jac88] recommande qu'un TCP utilise le démarrage lent pour redémarrer la transmission après une période d'inactivité relativement longue. Le démarrage lent sert à redémarrer l'horloge des ACK, tout comme il le fait au début d'un transfert. Ce mécanisme a été largement déployé de la manière suivante. Lorsque TCP n'a pas reçu de segment pendant plus d'un délai de retransmission, cwnd est réduit à la valeur de la fenêtre de redémarrage (RW) avant que la transmission ne commence.

Aux fins de la présente norme, nous définissons RW = min(IW,cwnd).

L'utilisation de la dernière fois où un segment a été reçu pour déterminer s'il faut ou non diminuer cwnd peut échouer à dégonfler cwnd dans le cas courant des connexions HTTP persistantes [HTH98]. Dans ce cas, un serveur Web reçoit une requête avant de transmettre des données au client Web. La réception de la requête fait échouer le test de connexion inactive et permet au TCP de commencer la transmission avec un cwnd potentiellement trop grand.

Par conséquent, un TCP DEVRAIT (SHOULD) fixer cwnd à une valeur ne dépassant pas RW avant de commencer la transmission si le TCP n'a pas envoyé de données pendant un intervalle dépassant le délai de retransmission.