Résumé

  • Eric Dumazet est actuellement mainteneur Linux pour le réseau général, TCP et les sockets, et siège au comité technique de la Netdev Foundation. Ces responsabilités sont partagées avec d’autres mainteneurs et réviseurs : elles donnent une forte responsabilité d’intégration, pas une autorité solitaire sur la pile réseau.
  • Sa contribution nommée la plus lisible est TCP Small Queues, introduite en 2012 pour empêcher un seul flux TCP de placer une quantité excessive de données dans les files situées sous le transport. En reliant le crédit local du socket à l’achèvement des paquets, TSQ a réduit la latence côté émetteur et la pression mémoire sans prétendre supprimer toutes les files du chemin.
  • Ses travaux sur sch_fq et sur le pacing interne de TCP ont fait du temps d’émission une variable explicite. L’ordonnancement équitable sépare les flux ; le pacing répartit les paquets dans le temps. Ces mécanismes servent plusieurs contrôles de congestion, dont des environnements utilisant BBR, mais BBR possède une histoire et des auteurs distincts.
  • Ses travaux plus récents relient la disposition des structures, le trafic de lignes de cache et l’état par socket à l’efficacité d’une flotte. La leçon générale est que le réseau Linux comptabilise du CPU, de la mémoire, des files et du temps. L’effet économique peut être important à grande échelle, sans qu’un montant précis ou un gain universel puisse être établi publiquement.

Un serveur rapide peut encore perdre du temps derrière ses propres paquets

Le meilleur point de départ n’est ni un titre d’entreprise ni une scène de conférence, mais une file d’émission dans un hôte Linux. L’application a écrit des données, TCP estime pouvoir en envoyer davantage et le noyau les a transmises aux couches inférieures. Pour l’application, elles semblent parties ; en réalité, elles peuvent encore attendre dans la même machine.

Le débit reste élevé et masque le problème. Une requête interactive attend derrière un transfert massif, des buffers retiennent de la mémoire et l’idée que TCP se fait des données « en vol » s’éloigne de ce qui est simplement empilé localement. TCP Small Queues a changé ce rapport de forces en limitant ce qu’un socket peut déposer sous TCP et en liant la reprise d’émission au progrès réel du matériel.

Les archives publiques racontent l’ingénierie, pas une biographie fabriquée

Les preuves les plus solides viennent du noyau : fichier MAINTAINERS, discussions de correctifs, documentation, conférences et années de revue publique. Elles établissent une responsabilité durable sur le réseau général, TCP et les sockets, une place au comité de la Netdev Foundation et une affiliation Google visible dans l’adresse de mainteneur.

Elles ne donnent ni biographie complète, ni intitulé actuel vérifié chez Google, ni recensement exhaustif des patchs et des revues. Inventer ces détails affaiblirait le portrait. L’article s’appuie donc sur ce qui peut être examiné directement : mécanismes, décisions de revue et explications techniques. Dumazet apparaît comme un ingénieur de la responsabilité, dont le travail devient infrastructure seulement après révision, modification, test et déploiement par d’autres.

Le statut de mainteneur le place près des décisions, pas au-dessus de la communauté

Au 4 août 2026, les registres Linux citaient Dumazet pour le réseau général, TCP et les sockets. Un mainteneur peut demander une refonte, refuser une interface trop coûteuse à maintenir, intégrer un changement accepté et représenter le sous-système vers le noyau principal.

La même source montre que ce pouvoir est partagé. David S. Miller, Jakub Kicinski et Paolo Abeni figurent parmi les mainteneurs du réseau général ; Neal Cardwell partage la responsabilité TCP, avec des réviseurs et spécialistes intervenant selon le patch. Les décisions traversent aussi les architectures, pilotes, tests automatisés, correctifs stables et le processus mainline. L’influence de Dumazet est forte parce qu’elle s’exerce dans ce système distribué, non parce qu’elle l’abolit.

Linux est devenu une infrastructure économique avec la hausse du nombre de connexions

Sur une petite machine, quelques octets supplémentaires dans une structure de socket ou un défaut de cache peuvent passer inaperçus. Sur un serveur portant des centaines de milliers de connexions, le même coût se multiplie jusqu’à concurrencer l’application, la mémoire et l’énergie.

C’est dans ce contexte que le travail de Dumazet prend une dimension économique. Il ne permet pas de calculer publiquement un montant économisé. Il agit sur des variables plus concrètes : densité de connexions, part de CPU laissée au service, mémoire immobilisée par le réseau et latence causée par les files locales. L’effet reste indirect : distributions et opérateurs choisissent noyau, qdisc, contrôle de congestion et réglages de NIC. Dumazet modifie le socle commun à partir duquel ces choix sont faits.

Le rôle familier de TCP cache une comptabilité très dense

TCP est souvent présenté comme un flux d’octets fiable. Son implémentation doit pourtant décider combien de données peuvent rester en vol, quand retransmettre, comment facturer la mémoire, ordonner les paquets et partager CPU et files entre milliers de sockets.

Une pile peut donc être correcte et mal se comporter : file locale trop profonde, rafales, contention ou structures qui occupent inutilement le cache. Le fil conducteur du travail de Dumazet est comptable. Les octets sont imputés au socket, l’achèvement rend du crédit, les temps d’envoi sont calculés, les flux séparés et les champs chauds distingués des champs froids. L’objectif est de garder le lien occupé sans construire un deuxième réseau caché dans le serveur.

Avant TCP Small Queues, l’émetteur pouvait créer une file qu’il ne maîtrisait plus

Avant TSQ, TCP pouvait remettre beaucoup de données au qdisc et au pilote. La fenêtre de congestion pouvait être raisonnable du point de vue du chemin, alors qu’une longue file locale retenait encore les paquets sous le transport. Une application ne pouvait plus les retirer lorsqu’un flux plus urgent apparaissait.

Cette file brouillait le retour d’information. TCP raisonnait sur les accusés de réception et les données dans le réseau, mais une part importante n’avait pas encore quitté l’hôte. Elle consommait aussi de la mémoire, surtout lorsque de nombreux flux faisaient de même. Le système avait besoin de préserver le débit sans laisser chaque socket utiliser les couches inférieures comme un entrepôt illimité.

La série TSQ de 2012 a rendu au socket un budget de file locale

La série de patchs de 2012 a fixé une limite par socket sur la quantité de données placée sous TCP. Une fois ce crédit consommé, le socket s’arrêtait ; lorsque des paquets étaient achevés, il pouvait envoyer à nouveau.

L’idée paraît modeste : compter les octets locaux et utiliser l’achèvement comme preuve que la couche inférieure progresse. Son importance vient du déplacement du contrôle vers le transport qui connaît le flux. Le débit n’exige plus qu’un socket dépose une grande réserve à l’avance. La carte réseau reste occupée, mais l’état de TCP suit mieux le départ réel des paquets. Des applications qui n’ont jamais entendu parler de TSQ profitent ainsi d’une règle de comptabilité interne.

L’achèvement d’un paquet est devenu un signal utile à l’intérieur de l’hôte

Le chemin d’achèvement pourrait n’être qu’un nettoyage de buffers. TSQ l’utilise comme information : une partie de la pile inférieure a avancé, donc le socket peut recevoir un nouveau droit d’émission.

Ce retour local complète les accusés de réception distants. Ceux-ci décrivent le progrès sur le chemin ; l’achèvement décrit le progrès sous TCP ; les statistiques du qdisc et du pilote montrent d’autres formes de contention. Aucun signal ne suffit seul. TSQ a rendu l’un d’eux utile pour limiter l’excès local, sans remplacer le contrôle de congestion de bout en bout.

TSQ a réduit une source de bufferbloat, pas toutes les files du réseau

Présenter TSQ comme la fin du bufferbloat serait faux. Il limite le retard créé sous TCP par un socket émetteur. Des files restent possibles dans le qdisc, le pilote, la carte réseau, le réseau d’accès, les routeurs, les commutateurs et le récepteur.

La conclusion plus étroite est plus utile : TSQ empêche un flux de construire trop facilement une grande file cachée dans l’hôte. Il peut réduire latence et mémoire et rapprocher l’état du transport du progrès du matériel. Il ne remplace ni l’active queue management, ni un bon dimensionnement des files, ni le contrôle de congestion.

Seuils, offloads et charges déterminent le bénéfice réel de TSQ

L’effet de TSQ dépend de la limite locale, de la taille des paquets, du qdisc, des files du périphérique, de la segmentation et du mélange de flux. Un service interactif à nombreux transferts courts n’obtient pas nécessairement le même résultat qu’une réplication massive.

L’implémentation a aussi évolué depuis 2012. D’autres contributeurs ont ajusté les seuils, corrigé les interactions et intégré le mécanisme au reste de la pile. Il est légitime de créditer Dumazet pour l’origine de l’idée sans présenter l’état actuel comme son œuvre inchangée et exclusive.

sch_fq a séparé les flux et introduit le temps dans l’ordonnancement

En 2013, Dumazet a publié le scheduler Linux sch_fq. Il maintient un état par flux et une structure ordonnée dans le temps afin de libérer les paquets selon leur date cible. Les nouveaux flux peuvent être servis rapidement, tandis que les flux cadencés attendent leur échéance.

Le mécanisme répond à deux problèmes : empêcher un gros transfert d’occuper toute la file locale et donner à TCP un scheduler capable de respecter un rythme. Il ne garantit pas l’égalité entre applications ; il fournit une politique de service plus disciplinée et un point d’exécution pour les temps d’émission calculés par le transport.

L’équité de file est une politique, pas une égalité universelle

Le mot « fair » peut prêter à confusion. Séparer les flux à une file locale ne garantit pas la même performance à chaque application. Taille des paquets, chemin, récepteur, contrôle de congestion, offloads et nombre de connexions comptent encore.

L’identité d’un flux est elle-même un choix : une application peut ouvrir de nombreuses connexions, une autre une seule. sch_fq réduit la domination d’un flux, sans décider ce qui est équitable entre utilisateurs ou entreprises. Pour l’opérateur, l’intérêt est concret : un meilleur arbitrage local et une base pour le pacing, pas la résolution de toutes les priorités.

Le pacing transforme un débit estimé en une suite de temps d’émission

Un contrôle de congestion peut déterminer un débit ou une quantité de données en vol, tout en libérant cette autorisation en une rafale. Le débit moyen semble correct, mais la rafale crée brièvement une file intense.

Le pacing répartit les paquets dans le temps. Il stabilise la file, facilite le partage et permet au modèle de congestion de mieux exprimer son intention. La réalisation est complexe : horodatages, timers, qdisc, segmentation et comportement du NIC doivent converger. Un débit logiciel n’est utile que s’il devient une séquence physique cohérente sur le lien.

Pacing et contrôle de congestion traitent deux parties différentes du problème

Le contrôle de congestion décide à quel point le flux peut être agressif ; le pacing décide quand les données autorisées partent. Un bon algorithme peut être trahi par des rafales, et un pacing parfait peut exécuter un débit trop élevé si le modèle est mauvais.

Les travaux de Dumazet constituent donc une infrastructure d’exécution. Ils permettent à différents algorithmes de traduire un débit en temps. Le mérite d’un modèle particulier revient à ses concepteurs, même s’il dépend profondément du pacing du noyau.

BBR utilise le pacing mais possède ses propres auteurs et sa propre histoire

BBR est souvent associé à Dumazet parce qu’il dépend du pacing et a été développé dans un environnement Google où il joue un rôle important sur TCP. Cette proximité ne fait pas de lui l’unique inventeur de BBR. Le modèle et ses versions ont des auteurs distincts.

La contribution de Dumazet est celle d’un socle : ordonnancement, pacing, instrumentation et comptabilité de socket rendent certains contrôles de congestion déployables. Cette histoire donne plus de valeur à son travail qu’une attribution exagérée, tout en préservant le crédit de Neal Cardwell et des autres ingénieurs du domaine.

TSO économise du CPU et peut recréer la rafale que le pacing voulait éviter

TCP Segmentation Offload permet au noyau de remettre un gros segment à la carte réseau, qui le divise ensuite en paquets. C’est essentiel pour réduire le coût par paquet, mais cela interpose le matériel entre la décision de temps et l’émission réelle.

Si un gros segment est libéré d’un bloc, le NIC peut produire une rafale malgré l’intention de pacing. TSQ, qdisc, TSO, pilote et matériel doivent donc être conçus comme un même système. Un gain de CPU peut dégrader la latence s’il n’est pas coordonné avec la forme du trafic.

Quantum de pacing, horodatages et comportement du NIC doivent décrire la même réalité

Le noyau travaille avec des quanta, une résolution de timer, des timestamps, des unités d’offload et des files matérielles. Un quantum trop grand recrée des rafales ; un quantum trop petit consomme du CPU ; un pilote ou un NIC qui interprète différemment les unités modifie le résultat sur le fil.

Les opérateurs ne peuvent donc pas considérer le qdisc comme une décoration. Il fait partie du modèle de capacité. Les développeurs doivent tester le chemin complet, et un benchmark qui ne nomme que le contrôle de congestion ou le débit du lien omet une grande partie de la mécanique.

Le pacing interne de TCP a réduit la dépendance à un qdisc particulier

En 2017, Dumazet a publié un travail de pacing interne à TCP. Le transport a gagné une capacité plus directe à retenir l’émission selon son état de débit et ses timers, même lorsque le qdisc n’était pas exactement celui attendu.

Le qdisc n’est pas devenu inutile : il ordonne toujours les paquets et reste un lieu de politique. L’évolution a déplacé une partie de la logique vers le sous-système qui porte l’intention. Comme souvent dans le noyau, une capacité née dans une couche est ensuite rapprochée de son propriétaire sans supprimer toutes les couches précédentes.

Le choix du qdisc reste une décision d’opérateur aux conséquences réelles

Linux propose plusieurs disciplines pour des objectifs différents. sch_fq est particulièrement adapté au pacing ; FQ-CoDel poursuit une autre combinaison d’équité par flux et de gestion active de file. Les deux ne sont pas identiques.

Les défauts varient selon distributions et environnements. Les images cloud, appliances et hôtes de conteneurs n’utilisent pas forcément les mêmes choix, et l’offload matériel peut déplacer l’exécution. Le noyau offre la capacité ; l’opérateur décide si elle façonne réellement le service.

Quelques octets par socket deviennent une contrainte à l’échelle d’une flotte

Chaque connexion porte numéros de séquence, timers, état de congestion, files et comptabilité. À faible échelle, la taille de la structure paraît secondaire. À des centaines de milliers de sockets, chaque octet se multiplie et chaque champ fréquemment touché devient une charge de cache.

Réduire la mémoire par socket augmente potentiellement la densité ; mieux disposer les champs diminue les défauts de cache et les transferts entre processeurs. Ce lien avec l’économie des serveurs reste analytique : les preuves montrent que les coûts existent, mais pas un montant financier universel ni une valeur personnelle attribuable à Dumazet.

Une ligne de cache devient de l’infrastructure lorsqu’elle est touchée à chaque paquet

Le processeur déplace des lignes de cache, pas des champs isolés. Des données chaudes placées avec des champs froids font circuler inutilement toute la ligne ; deux CPU modifiant des valeurs différentes sur la même ligne créent encore du trafic de cohérence.

Les travaux récents de Dumazet adoptent cette lecture physique du code. Séparer champs chauds et froids vise à réduire la bande passante mémoire consommée à chaque paquet ou opération de socket. Le gain varie selon processeur et charge. Une optimisation issue d’un profil de production doit rester correcte et acceptable pour d’autres machines.

Le travail de 2024 sur les structures marque une phase mûre de l’optimisation

La présentation de 2024 sur la réorganisation assistée des structures partait des profils plutôt que d’un nouvel algorithme : quels champs sont chauds, quelles lignes bougent, quelles structures dominent la mémoire ? Des outils peuvent suggérer une disposition, mais la revue humaine reste nécessaire pour l’alignement, le verrouillage, la compatibilité et la lisibilité.

C’est le visage de l’infrastructure mûre. Après l’invention d’un mécanisme, des gains majeurs viennent parfois d’un défaut de cache évité ou d’un champ déplacé. Moins spectaculaire qu’un nouveau nom de protocole, ce travail détermine pourtant l’efficacité réelle à grande échelle.

Les profils hyperscale sont des preuves puissantes et une science publique incomplète

Les grands opérateurs voient des volumes, des NIC et des populations de sockets difficiles à reproduire. Leur télémétrie peut révéler des coûts invisibles dans un microbenchmark. L’affiliation Google de Dumazet donne accès à ce type de réalité.

Mais une part des charges, outils et données reste privée. Une conférence peut exposer la méthode sans livrer tous les paramètres. Cela ne rend pas l’observation fausse ; cela impose une qualification. Le meilleur résultat est que les constats privés motivent des changements publics, puis que davantage de charges réalistes soient encodées dans des tests ouverts.

Verrous et files de réception appartiennent à la même histoire de ressources

Les mécanismes centraux de l’article concernent l’émission, mais le travail de Dumazet couvre aussi sockets et réception. Les paquets entrants doivent être interrogés, alloués, classés, mis en file et livrés entre CPU. À haut débit, verrous et états partagés deviennent eux aussi un coût.

Linux réduit ces coûts par déplacement du travail, batching et limitation de contention. Le fil conducteur reste le même : consacrer assez de coordination à la correction, pas au point que la comptabilité absorbe la capacité de l’application. Un inventaire complet des contributions serait trompeur ; des mécanismes représentatifs montrent mieux cette cohérence.

Le batching augmente le débit tout en modifiant latence et équité

Traiter plusieurs paquets ou achèvements ensemble amortit verrous, appels et mouvements de cache. Linux utilise ce principe dans NAPI, les pilotes, l’offload et les files.

Un batch attend toutefois d’être formé et peut arriver à la couche suivante comme une rafale. Plus il est grand, plus l’amortissement est bon, mais plus le premier élément attend et plus un flux peut occuper les ressources. TSQ, fair queueing et pacing ne combattent pas le batching ; ils lui donnent des limites afin qu’il améliore le débit sans détruire le retour d’information.

La performance TCP de Linux naît de couches capables de s’annuler

Le contrôle de congestion donne une intention. TCP la transforme en paquets et timestamps. TSQ limite la file locale. Le qdisc ordonne. TSO regroupe. Le pilote mappe la mémoire. Le NIC émet et le chemin ajoute ses propres files.

Un progrès d’une couche peut disparaître dans une autre : pacing précis annulé par une grosse segmentation, qdisc rapide submergé par trop d’enqueue, structure compacte remplacée par un nouveau verrou. Le travail de Dumazet traverse ces jointures. Il améliore la pile installée plutôt que de proposer une architecture neuve détachée du parc existant.

La revue publique transforme une optimisation locale en infrastructure partagée

Une amélioration commence comme une affirmation de performance. Pour entrer dans Linux, elle doit survivre à la liste netdev : preuve de mesure, interface générique, architectures rares, coût de maintenance et tests.

Un mainteneur peut demander de découper une série, refuser une abstraction propriétaire ou différer un travail trop fragile. Le processus est plus lent qu’un patch privé, mais il force un besoin particulier à devenir une capacité commune. L’autorité de Dumazet tient notamment à cette capacité de juger non seulement ce qui fonctionne aujourd’hui, mais ce que Linux pourra soutenir demain.

net et net-next séparent la réparation urgente du développement futur

Les correctifs vont normalement vers net, les nouvelles fonctions vers net-next. Cette séparation évite qu’une réparation critique soit mêlée à une refonte destinée à une version future.

La frontière exige du jugement. Un « fix » peut modifier le comportement, une fonction peut révéler un bug ancien, et une série doit parfois être divisée. Les arbres rendent l’autorité visible et empêchent le calendrier commercial d’un fournisseur de devenir à lui seul une raison d’intégration.

Revue, refus et refonte disparaissent des statistiques de commits

Les compteurs de lignes et de commits paraissent objectifs, mais ils ignorent la phrase qui oblige un auteur à redessiner une interface ou le refus qui évite des années de maintenance. Appliquer un patch signifie assumer son intégration ; cela ne fait pas du mainteneur l’auteur de l’idée.

Le portrait doit donc combiner contributions nommées et rôle de gouvernance. TSQ, sch_fq, le pacing interne et les travaux de cache sont identifiables. Ils ne résument pas des décennies de revue TCP et sockets, pas plus que tous les patchs intégrés ne deviennent la création personnelle de Dumazet.

Les tests réduisent le risque sans représenter toutes les machines Linux

Builds, selftests, KUnit, syzbot, laboratoires de pilotes et déploiements aval détectent de nombreuses régressions. Ils ne couvrent pas toutes les architectures, NIC, combinaisons de protocoles, qdisc et charges.

Les mainteneurs doivent encore raisonner sur compatibilité, retour arrière et chemins rares. Une optimisation hyperscale peut nuire à un appareil embarqué. Les tests renforcent la gouvernance publique ; ils ne remplacent pas la mémoire technique et le jugement qui relient des environnements différents.

Les backports stables imposent une seconde décision après mainline

Un patch accepté dans mainline n’appartient pas automatiquement à toutes les branches stables. Les mainteneurs stables vérifient qu’il corrige un problème réel, reste limité et n’introduit pas de fonction nouvelle ou de dépendance absente.

Les patchs de performance sont délicats : déplacés sans leur contexte, ils peuvent créer une autre régression. L’impact arrive donc par étapes : conception upstream, stable, distribution, cloud, réglage opérateur. Aucun mainteneur ne contrôle toute cette chaîne et aucun mécanisme actuel n’est nécessairement déployé partout sous la même forme.

La maintenance actuelle de TCP et des sockets est volontairement partagée

Le fichier MAINTAINERS distribue la responsabilité entre Dumazet, Neal Cardwell et d’autres mainteneurs et réviseurs. Cette pluralité réduit le risque qu’une absence bloque le travail et apporte des compétences différentes sur congestion, sockets, pilotes et tests.

Elle demande aussi une coordination explicite. Les zones qui se chevauchent peuvent devenir ambiguës si chacun suppose qu’un autre répondra. Une succession saine conserve les principes et les tests sans exiger que toutes les futures décisions passent par la même personne.

La Netdev Foundation peut financer le travail sans devenir l’autorité de merge

Sous supervision de la Linux Foundation, la Netdev Foundation finance tests, outils, déplacements et recherche. Dumazet siège à son TSC. Ce rôle peut orienter des ressources, mais un financement ne garantit pas l’intégration d’un patch.

La séparation est essentielle. La maintenance profonde exige du temps payé, du matériel et du CI ; nier cette économie serait illusoire. En revanche, la légitimité upstream vient toujours de preuves techniques publiques. L’argent doit augmenter la capacité de décider, pas acheter une exception.

L’affiliation Google apporte des moyens sans donner la propriété de TCP Linux

L’adresse Google dans les registres établit une affiliation, pas un titre complet. Google peut financer du profilage à grande échelle, du matériel et du temps de revue, ce qui profite ensuite à des utilisateurs extérieurs lorsque les changements sont intégrés upstream.

La contrepartie est l’asymétrie de données. Les besoins hyperscale peuvent attirer l’attention et certaines preuves restent privées. La revue publique sert de contrepoids : le patch doit rester générique, compréhensible et acceptable par des mainteneurs indépendants. L’employeur apporte du temps et des observations, pas la propriété de la pile.

Les opérateurs aval décident si une amélioration upstream change réellement le service

Les distributions choisissent les versions et les backports ; les clouds choisissent qdisc et contrôle de congestion ; les fabricants d’appliances figent parfois d’anciens noyaux ; les NIC imposent leurs capacités ; les applications créent la charge.

Il n’existe pas de recensement public complet de l’usage de sch_fq ou des réglages TSQ. Un mécanisme peut être présent mais inactif, ou actif par défaut sans que l’utilisateur le sache. L’impact de Dumazet est donc large et indirect : il modifie le jeu d’options commun, tandis que chaque opérateur le transforme en service.

Les piles en espace utilisateur ciblent des charges spécialisées, pas tous les usages Linux

DPDK, VPP et des piles applicatives peuvent contourner une partie du chemin noyau pour atteindre des débits élevés et un contrôle serré. Elles exigent souvent des cœurs dédiés, huge pages, binding de périphériques et une exploitation séparée.

TCP Linux offre une intégration plus large : sockets ordinaires, sécurité, namespaces, observabilité, pilotes et applications. TSQ, pacing et travail de cache réduisent le coût de ce chemin général sans prétendre qu’il est optimal pour chaque cas. Les piles spécialisées peuvent contourner ; Linux reste la base commune pour la majorité des applications.

Linux reste le choix par défaut parce que l’intégration vaut plus que le débit brut

Une pile réseau doit être rapide, mais aussi compatible avec les API, les mises à jour de sécurité, le routage, les namespaces, l’observabilité et des milliers de pilotes. Une performance obtenue dans un îlot séparé peut être utile, mais a son propre coût d’exploitation.

L’avantage de Linux est que l’application utilise un socket standard et hérite de décennies de travail sur files, pacing et mémoire. Le développeur n’a pas besoin de connaître TSQ. Cette invisibilité explique pourquoi l’infrastructure est durable : le bénéfice demeure même lorsque le nom de l’auteur disparaît de l’expérience utilisateur.

Un hôte plus rapide ne prouve pas que le chemin réseau est meilleur

Une file locale plus courte ne répare ni un accès congestionné, ni un serveur distant surchargé, ni un routeur qui perd des paquets. TSQ et pacing disciplinent l’émetteur ; ils ne contrôlent pas le chemin complet.

Une amélioration du noyau peut réduire une source de délai et rendre le flux plus coopératif. Elle ne garantit pas le résultat applicatif. La formulation la plus solide est conditionnelle : Linux peut devenir un meilleur émetteur et un hôte plus efficace, tandis que la performance de bout en bout dépend encore de l’application, du récepteur, du réseau et des réglages opérateur.

Un benchmark ne représente pas tous les serveurs, NIC et workloads

Taille des paquets, nombre de connexions, architecture CPU, cache, NIC, offloads, qdisc, timers, version de noyau et charge changent le résultat. Un profil Google ou un microbenchmark peut révéler un vrai coût sans prédire le gain exact ailleurs.

Un bon récit technique conserve ces conditions. Une baisse de défauts de cache prouve que la disposition compte, pas un pourcentage universel. Les conférences de Dumazet apportent des preuves opérationnelles attribuées ; des tests ouverts et des mesures indépendantes sont nécessaires pour généraliser.

La succession est un problème technique parce qu’une partie du design vit dans la mémoire humaine

Des limites anciennes existent parfois à cause d’un NIC oublié, d’une API encore utilisée ou d’une régression résolue depuis longtemps. Le code ne raconte pas toujours cette histoire.

Les mainteneurs de longue durée portent cette mémoire, ce qui crée une valeur et un risque de dépendance. Documentation, tests, archives et co-mainteneurs convertissent le savoir privé en institution. Une bonne succession ne nie pas l’expertise de Dumazet ; elle permet à d’autres de comprendre les raisons derrière TSQ, pacing et comptabilité de socket, puis de les adapter au matériel futur.

Le pacing matériel et la mémoire du périphérique peuvent déplacer à nouveau la frontière

Les NIC savent de mieux en mieux planifier, gérer des files, exposer de la télémétrie et travailler avec de la mémoire locale. Ils peuvent réduire le CPU et améliorer le timing, tout en plaçant davantage de comportement dans le firmware.

Le prochain problème sera la coordination : Linux doit transmettre l’intention, apprendre ce que le matériel a réellement fait et récupérer lorsque les modèles diffèrent. Interfaces de pilote, timestamps et erreurs deviennent aussi importants que le calcul du débit. Les principes issus de Dumazet restent pertinents : contrôle près de l’intention, feedback, limites aux files cachées et observabilité.

L’économie du cache peut produire plus de gains que de nouvelles formules de transport

De nouveaux contrôles de congestion continueront d’apparaître, mais sur de grands hôtes le prochain gain peut venir d’une structure scindée, d’un verrou supprimé, d’un batch ajusté ou d’une ligne de cache qui ne rebondit plus entre CPU.

Ces changements ont moins de marque, mais bénéficient à de nombreux algorithmes et applications. Le travail de 2024 montre une pile mûre qui se mesure à ses coûts physiques. La question passe de « quel protocole gagne ? » à « combien de machine chaque connexion consomme-t-elle sans qu’on le voie ? »

La contribution durable de Dumazet est une discipline des ressources, pas un mythe héroïque

Une mauvaise version de cette histoire ferait de Dumazet l’inventeur solitaire de TCP moderne et de BBR. Une autre dissoudrait toute contribution individuelle dans une communauté anonyme. Les preuves soutiennent une position plus précise.

Dumazet a introduit TSQ, signé des travaux fondateurs sur sch_fq, développé le pacing interne et montré l’importance de la disposition des structures. Il assume aussi une responsabilité actuelle dans un système de maintenance partagé. Son apport consiste à traiter paquets et sockets comme des demandes sur du temps, de la mémoire, des files et de la localité CPU.

L’impact final est dispersé entre revue, intégration, configuration et déploiement. Un patch se date facilement ; une flotte plus dense ou une panne évitée ne se rattache pas proprement à un auteur. Cette difficulté n’autorise ni l’exagération ni l’effacement : elle montre que la valeur d’infrastructure se crée dans une chaîne collective dont certaines décisions initiales restent identifiables.