Autrefois, les réseaux étaient des bus partagés. Chaque appareil en réseau était connecté au même fil, ou à un concentrateur, ce qui signifiait que chaque paquet que vous envoyiez était reçu par tous les appareils du réseau.
Le logiciel de mise en réseau était plus simple à l'époque. Chaque appareil avait une adresse MAC, qui était garantie comme étant unique. Elle n'avait pas besoin d'être autre chose - tout ce qu'elle faisait était de s'assurer que deux appareils sur le même réseau n'avaient pas la même adresse.
Si votre appareil voulait parler à un autre appareil, il envoyait un paquet avec l'adresse MAC du destinataire, et le destinataire le récupérait sur le réseau. Tous les autres appareils l'ignorent, car il n'est pas adressé à leur adresse MAC.
Au fil du temps, les gens ont relié trop d'appareils au réseau, et ils ne pouvaient plus faire face au trafic. Ils ont donc commencé à séparer les réseaux, et à relier deux réseaux avec des commutateurs. Ces commutateurs avaient d'énormes tables leur indiquant quelles adresses MAC se trouvaient sur chaque réseau. S'ils voyaient un paquet sur un réseau adressé à une adresse MAC sur l'autre réseau, ils copiaient le message sur l'autre réseau. Mais ils ne copiaient pas tous les messages, seulement ceux qui devaient aller sur l'autre réseau.
Cela a permis de réduire l'encombrement, de mettre en réseau davantage de dispositifs et de gérer un trafic global plus important. Il s'agit d'une réseau à commutation de paquets .
Cependant, elle ne résolvait pas tous les problèmes et présentait un énorme inconvénient : plus les tables de commutation étaient grandes, plus les réseaux ralentissaient. Si vous connectez 5 000 machines à 50 réseaux différents, tous interconnectés par des commutateurs, chaque commutateur doit apprendre les 5 000 adresses MAC et router les paquets en fonction de celles-ci.
Ce n'était pas un gros problème jusqu'à ce que des personnes de différentes institutions, comme des universités, veuillent connecter leurs réseaux ensemble, et les tableaux nécessaires auraient été énormes. Aujourd'hui, garder la trace de quelques centaines de milliers d'adresses MAC ne semble pas être un gros problème, mais dans les années 1970, les commutateurs étaient eux-mêmes des ordinateurs, avec une mémoire et une vitesse limitées, et garder la trace de quelques centaines de paquets et les commuter rapidement était un problème.
La solution consistait à passer à un réseau IP et à utiliser des routeurs. Ce réseau est construit au-dessus du réseau de commutation par paquets basé sur les adresses MAC. Plutôt que des données brutes, les paquets contiennent maintenant un paquet IP - un paquet dans un paquet.
Aujourd'hui, les grands réseaux sont reliés par des routeurs. Ceux-ci attendent de voir un paquet avec leur adresse MAC, puis ils sortent le paquet IP et examinent l'adresse IP. Ils réenveloppent ensuite le paquet IP dans un autre paquet avec un nouveau destinataire d'adresse MAC et l'envoient sur un nouveau réseau. Cette adresse MAC est probablement destinée à un autre routeur sur le nouveau réseau, mais il pourrait aussi s'agir de la machine avec l'adresse IP.
Dans les réseaux d'aujourd'hui, il est rare de voir des concentrateurs et des bus (sauf dans les réseaux sans fil, où le support est partagé par nature). Au lieu de cela, ma machine se connecte directement à un commutateur, qui lui-même se connecte à un routeur.
Ma machine possède une variété d'algorithmes et de protocoles, elle sait donc comment le réseau est configuré.
Si j'envoie un paquet IP à une machine de mon réseau local, ma machine le mettra dans un paquet avec l'adresse MAC correcte. Les commutateurs le feront basculer vers le bon réseau local, et la machine à laquelle il est destiné le recevra parce qu'il a la bonne adresse MAC. Elle sortira le paquet IP et vérifiera à nouveau que l'adresse IP lui est également destinée, et agira en conséquence.
Si j'envoie un paquet IP destiné à une machine située ailleurs sur Internet, ma machine sait qu'il faut l'envoyer au routeur, et le place donc dans un paquet contenant l'adresse MAC du routeur. Il est à nouveau commuté localement dans mon réseau jusqu'à ce qu'il atteigne le réseau sur lequel se trouve le routeur, puis le routeur le prend, extrait le paquet IP, l'examine et, en fonction de sa connaissance d'Internet, l'envoie à un autre routeur sur un autre réseau, en l'enveloppant dans un paquet avec l'adresse MAC du routeur ou de l'ordinateur de destination.
Il y a beaucoup de petits détails que j'ai survolés, et des algorithmes et des protocoles vraiment intéressants en jeu qui font que tout fonctionne, mais c'est l'histoire de base de ce que l'adresse MAC fait pour nous, même aujourd'hui.