Tech

Ethernet à partir des premiers principes | Hackaday

Pour quelqu’un qui programme dans un langage de haut niveau comme Python, ou même pour les personnes qui interagissent principalement avec leur système d’exploitation et les logiciels qui s’y exécutent, il peut sembler que le matériel informatique est largement séparé du travail. Oui, l’ordinateur doit être physiquement présent pour faire quelque chose comme écrire un article Hackaday, mais la plupart d’entre nous ne comprendront pas suffisamment bien le langage Assembly, le code machine ou la disposition des transistors pour comprendre ce qui fait fonctionner un navigateur. [Francis Stokes] est une race différente, cependant, sondant continuellement ces mystérieuses régions de bas niveau de notre monde informatisé où il a récemment pu envoyer un paquet Ethernet à partir de zéro.

[Francis] utilise une carte de développement STM32F401 pour ses expériences de mise en réseau, mais même avec ce puissant microcontrôleur, Ethernet est beaucoup plus gourmand en ressources qu’on pourrait l’imaginer étant donné son omniprésence dans le monde informatique. La plupart se tourneront vers un matériel dédié ASIC pour faire passer les signaux Ethernet sur les fils plutôt que de modifier le protocole, donc [Francis] s’est armé d’une puce W5100 pour gérer cette tâche complexe. Étant donné que le W5100 était sur une carte destinée à un Arduino, il y avait quelques problèmes à résoudre, notamment la soudure de certains fils à la puce, puis il y avait quelques autres problèmes avec la signalisation, y compris un bug dans le code, qui était écrire trop de fois dans la même mémoire, ce qui rend le paquet reçu énorme tout en étant complètement rempli de déchets.

À la fin, [Francis] a pu supprimer tous les bogues de son code, envoyer de manière fiable un paquet Ethernet depuis sa carte de développement et le décoder sur un ordinateur. Il s’agit d’une excellente plongée en profondeur dans le monde de la signalisation et des réseaux de bas en haut. Il a également mené de nombreuses enquêtes de ce type, notamment en développant sa propre cryptographie AES à partir de zéro.

Nous avons également étudié en profondeur Ethernet. Vous pouvez même le faire fonctionner sur un FPGA.

Source link