Partager via


Caractéristiques TCP/IP

TCP/IP a des caractéristiques qui permettent au protocole de fonctionner comme le dictent ses exigences d’implémentation standardisées. Ces caractéristiques peuvent s’associer à des choix de développement qui entraînent des performances médiocres. L’impact de ces caractéristiques TCP/IP sur une application varie selon qu’elle est transactionnelle ou en streaming.

Les applications transactionnelles sont affectées par la surcharge requise pour l’établissement et l’arrêt de la connexion. Par exemple, chaque fois qu’une connexion est établie sur un réseau Ethernet, trois paquets d’environ 60 octets chacun doivent être envoyés, et environ un RTT est requis pour l’échange. Lorsque l’arrêt d’une connexion se produit, quatre paquets sont échangés. Il s’agit de chaque connexion ; une application qui ouvre et ferme des connexions entraîne souvent cette surcharge sur chaque occurrence.

Un autre aspect de TCP/IP est le démarrage lent, qui se produit chaque fois qu’une connexion est établie. Le démarrage lent est une limite artificielle du nombre de segments de données qui peuvent être envoyés avant la réception de l’accusé de réception de ces segments. Le démarrage lent est conçu pour limiter la congestion du réseau. Lorsqu’une connexion via Ethernet est établie, quelle que soit la taille de la fenêtre du récepteur, une transmission de 4 Ko peut prendre jusqu’à 3 à 4 RTT en raison d’un démarrage lent.

Une optimisation TCP/IP appelée algorithme Nagle peut également limiter la vitesse de transfert de données sur une connexion. L’algorithme Nagle est conçu pour réduire la surcharge de protocole pour les applications qui envoient de petites quantités de données, telles que Telnet, qui envoie un caractère à la fois. Au lieu d’envoyer immédiatement un paquet avec un grand nombre d’en-têtes et peu de données, la pile attend davantage de données de l’application, ou un accusé de réception, avant de continuer.

Les accusés de réception différés, communément appelés ACK différés, sont également conçus en TCP/IP pour permettre une récupération plus efficace des accusés de réception lorsque des données de retour sont fournies par l’application côté réception. Malheureusement, si ces données ne sont pas disponibles et que le côté expéditeur attend un accusé de réception, des retards d’environ 200 millisecondes par envoi peuvent se produire.

Lorsqu’une connexion TCP est fermée, les ressources de connexion au niveau du nœud qui a lancé la fermeture sont placées dans un état d’attente, appelé TIME-WAIT, pour vous protéger contre l’altération des données si des paquets en double persistent dans le réseau. Cela garantit que les deux extrémités sont terminées avec la connexion. Cela peut entraîner l’épuisement des ressources requises par connexion, telles que la RAM et les ports, lorsque les applications ouvrent et ferment fréquemment des connexions.

En plus d’être affectées par un ACK différé et d’autres schémas d’évitement de congestion, les applications de streaming peuvent également être affectées par une taille de fenêtre de réception par défaut trop petite à l’extrémité de la réception.

Comportement de l’application

Applications Windows Sockets hautes performances

Algorithme Nagle