AWS boute un peu plus le protocole TCP hors de son cloud

AWS diffuse progressivement, sur EC2, la prise en charge du protocole SRD (Secure Reliable Diagram) en remplacement de TCP.

TCP, obsolète pour le datacenter ? Dernièrement, nous relayions l’opinion de John K. Ousterhout à ce sujet. L’informaticien américain, auquel on doit notamment le langage de script Tcl, avançait cinq « défauts » du protocole. Et suggérait une alternative développée à Stanford : Homa.

Du côté d’AWS, on a choisi une autre solution de remplacement : SRD (Scalable Reliable Diagram). On l’a d’abord mis en place pour les workloads HPC, en l’intégrant dans un pilote réseau ciblant deux instances EC2 : c5n.18xlarge et p3dn.24xlarge. C’était en 2019. Aujourd’hui, une soixantaine de types d’instances sont pris en charge.

Le pilote en question, appelé EFA (Elastic Fabric Adapter), est en fait une déclinaison de l’ENA (Elastic Network Adapter, lancé en 2016). Elle en reprend les fondements (réduction de la charge sur le processeur hôte, files d’attente multiples pour l’acheminement des paquets vers les vCPU…), mais avec des capacités supplémentaires de contournement du système d’exploitation. Ce qui permet aux applications de communiquer directement avec la matériel de l’interface réseau.

schéma EFA

SRD, substitut absolu à TCP ?

La re:Invent 2022 a été l’occasion d’officialiser une autre variante : ENA Express. Il ne s’agit pas d’un nouveau pilote, mais d’un mode activable sur tous les ENA. On peut l’enclencher pour TCP, UDP ou les deux. Promesse : à la fois une latence réduite (de « jusqu’à 85 % ») et une bande passante maximale par flux portée de 5 à 25 Gbps.

En l’état, ENA Express n’est exploitable que pour la communication entre des instances c6gn.16xlarge situées dans une même zone de disponibilité AWS. On peut l’activer dans la console et le CLI, ainsi que par API, via CloudFormation ou en utilisant CDK. Un mécanisme de failback est intégré dans le cas où un paquet ne pourrait être transféré par SRD.

SRD pallie, en particulier, le dernier des écueils que pointe John K. Ousterhout : contrairement à TCP, il n’impose pas de transmettre les paquets dans l’ordre. La reconstitution se fait à destination.

ENA Express a une empreinte : chaque traitement de paquet consomme quelques millisecondes. Le mode pourrait, reconnaît AWS, ne pas être approprié pour les applications qui transmettent un gros volumes de petits paquets.

Photo d’illustration générée par IA