Cet article explique le parcours d'un paquet de données dans le noyau Linux, depuis l'appel à la fonction write() jusqu'à la réception par l'application destinataire. Il décrit les étapes clés du processus, notamment la segmentation des données par TCP, la détermination de la route par IP, la résolution de l'adresse MAC via ARP, la mise en file d'attente par le qdisc, et l'envoi via le pilote de la carte réseau. Le texte est illustré par des exemples pratiques et des explications simplifiées des concepts clés comme les sockets, la poignée de main TCP et le routage politique. Une partie du processus de réception est également abordée.
Cet article explique comment Go gère efficacement les entrées/sorties réseau grâce à son modèle basé sur les goroutines et le netpoller, permettant de créer des applications scalables et performantes (comme des serveurs TCP, HTTP ou WebSocket). L'article détaille le fonctionnement interne de Go pour la gestion des connexions (via epoll/kqueue), illustre avec des exemples de code simples (serveur TCP, gestion des timeouts), et partage des bonnes pratiques : fermeture des connexions, optimisation des buffers, gestion des erreurs, et monitoring avec Prometheus. Un cas pratique montre la création d'un serveur WebSocket capable de gérer des milliers de connexions simultanées. L'auteur souligne aussi les pièges courants (fuites de goroutines, épuisement des descripteurs de fichiers) et propose des outils pour tester et déboguer (wrk, pprof). Idéal pour comprendre pourquoi Go excelle dans les applications réseau haute performance.
Un cours complet sur les réseaux
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre