TL; DR> Las direcciones MAC son un componente de bajo nivel de una red Ethernet (y algunos otros estándares similares, como WiFi). Permiten que un dispositivo se comunique con una máquina en la red física local (LAN) y no se pueden enrutar a través de Internet, porque el hardware físico podría, en teoría, estar enchufado en cualquier parte del mundo.
Por el contrario, las direcciones IP cubren todo el Internet, y los enrutadores las usan para averiguar dónde enviar datos, incluso si necesita múltiples saltos para llegar a su destino, pero no son útiles para interactuar con el hardware físico en su red local.
Si alguna vez encontramos un estándar mejor que Ethernet, es posible que no use direcciones MAC, pero el tráfico IP de Internet podría fluir a través de él, incluso si otras personas en Internet nunca hubieran oído hablar de él.
Si alguna vez encontramos un estándar mejor que el IP (por ejemplo, IPv6 si todas las direcciones IPv4 se agotaran), la mayoría del hardware Ethernet podría transportar el nuevo tipo de tráfico sin modificaciones, y una simple actualización de software / firmware solucionaría la mayor parte del resto.
Las direcciones MAC son necesarias para que una red local Ethernet (o wifi) funcione. Permiten que un dispositivo de red atraiga la atención de un único dispositivo conectado directamente, aunque la conexión física sea compartida. Esto puede ser importante cuando miles de dispositivos están conectados entre sí dentro de una sola organización. No cumplen ninguna función en Internet en general.
Para comprender realmente la respuesta a esta pregunta, debe comprender el modelo OSI (a veces conocido como el de 7 capas) .
Para que la comunicación tenga lugar entre 2 aplicaciones que se ejecutan en máquinas separadas que no tienen una conexión física directa, se necesita mucho trabajo.
En los viejos tiempos, cada aplicación sabría exactamente qué instrucciones de código de máquina necesitaban ejecutarse para producir una señal apropiada que llegaría y podría ser decodificada por la aplicación en el otro extremo. Toda la comunicación era efectivamente punto a punto, y el software tenía que escribirse para adaptarse a la situación exacta en la que se desplegaría. Obviamente, eso era insostenible.
En lugar de esto, el problema de la red se dividió en capas, y cada capa sabía cómo hablar con la capa correspondiente en una máquina remota y cómo comunicarse con la capa debajo (y a veces por encima) en su máquina local. No sabía nada sobre ninguna otra capa en su lugar, por lo que su navegador web no necesita preocuparse si se ejecuta en una máquina que utiliza un token ring, ethernet o red wifi, y definitivamente no necesita saber qué hardware la máquina remota usa.
Para que esto funcione, el modelo de 7 capas utiliza un sistema similar a los sobres anidados; la aplicación crea sus datos y los envuelve en un sobre para que el sistema operativo los entregue. El sistema operativo lo envuelve en otro sobre y lo pasa al controlador de red. El controlador de red envuelve esto en otro sobre y lo coloca en el cable físico. Y así.
La capa inferior, capa 1 , es la capa física. Esta es la capa de cables y transistores y ondas de radio, y en esta capa, la comunicación es principalmente una corriente de unos y ceros. Los datos van a todas partes que están físicamente conectados. Conecte el puerto de red de su computadora a su conmutador con un cable CAT-5.
La capa 2 es la capa de enlace de datos. Esto proporciona una estructura a los unos y los otros, algunas capacidades de detección y corrección de errores, y alguna indicación sobre qué dispositivo conectado físicamente (las conexiones físicas aquí pueden ser realmente wifi) debería prestar atención al mensaje. Esta es la capa en la que entran en juego las direcciones MAC, y volveremos a ella más adelante. Pero las direcciones MAC no son la única posibilidad en esta capa. Las redes Token Ring, por ejemplo, necesitan una implementación de enlace de datos diferente.
La capa 3 es la capa de red. Esta es la capa en la que trabaja IP (aunque tampoco es el único protocolo de capa de red), y es esto lo que permite a las computadoras enviar un mensaje que puede llegar a cualquier máquina en cualquier lugar de la "red". No es necesario que haya una conexión directa entre las máquinas en cuestión.
Las capas 4-7 son protocolos de nivel superior. Se alejan cada vez más del hardware y se acercan a la aplicación. TCP, por ejemplo, se ubica sobre IP y proporciona mecanismos que reenvían automáticamente los mensajes cuando se pierden.
Por lo tanto, las direcciones MAC funcionan en la capa 2 y permiten que 2 máquinas que están físicamente conectadas entre sí envíen mensajes que serán ignorados por otras máquinas que comparten la misma conexión física.
Supongamos que tengo una aplicación que quiere enviar algunos datos a la máquina con la dirección IP 8.8.8.8
La capa 3 envuelve los datos en un sobre que contiene, entre otras cosas, la dirección IP 8.8.8.8 y luego los entrega a la capa 2.
La capa 2 analiza esta dirección IP y decide a qué máquina está conectada directamente y puede manejar este mensaje. Tendrá una tabla de búsqueda de una selección de las direcciones IP conectadas directamente junto con la dirección MAC correspondiente de la tarjeta de red en esa máquina. Esta tabla de búsqueda se construye utilizando un protocolo llamado ARP, que permite que una tarjeta de red haga preguntas a los otros dispositivos conectados directamente. Ethernet reserva una dirección MAC especial, FF: FF: FF: FF: FF: FF, que permite que un dispositivo se comunique con todos los dispositivos conectados físicamente.
Si la dirección IP está en la tabla (o se puede resolver a través de ARP), envolverá el sobre de Capa 3 en un sobre de Capa 2 con la dirección MAC en el nuevo encabezado, y luego pasará el paquete completo al hardware en la Capa 1 La tarjeta de red con la dirección MAC correspondiente recibirá el mensaje y el controlador de red abrirá el sobre de capa 2 y pasará el contenido a la parte del sistema operativo que espera recibir mensajes en la dirección IP específica.
Alternativamente, si la dirección IP no está en la red local, el nuevo sobre tendrá la dirección MAC de la puerta de enlace predeterminada (es decir, el enrutador) configurada para esta interfaz de red, y el hardware transportará el paquete al enrutador.
El enrutador nota su propia dirección MAC en el sobre de la capa 2 y abre el paquete de nivel 2. Analiza la dirección IP en el sobre de nivel 3 y determina dónde debe ir el mensaje, que probablemente será el enrutador de su ISP. Si el enrutador usa NAT (o similar), incluso puede modificar el sobre de nivel 3 en este punto, para mantener privadas sus direcciones IP internas. Luego envolverá el sobre de nivel 3 en un nuevo sobre de nivel 2 dirigido a la dirección MAC del enrutador del ISP, y enviará el mensaje allí.
Este proceso de quitar el sobre externo y envolver el contenido en un nuevo sobre dirigido al siguiente paso en la cadena continuará hasta que el mensaje llegue a la máquina de destino.
Los sobres continuarán siendo arrancados a medida que el mensaje vuelva a subir las capas hasta que finalmente llegue a su destinatario, que será una aplicación en algún lugar que, con suerte, sabrá qué hacer con el mensaje, pero no tendrá idea de cómo llegó el mensaje ni todos los pasos necesarios para devolver la respuesta a la máquina original.
¡Pero todo funciona, casi como magia!
Tenga en cuenta que los conmutadores de red pueden usar direcciones MAC para optimizar el flujo del tráfico de red. Si bien un concentrador de Ethernet simplemente reenvía todo el tráfico entrante a todos sus puertos, en cambio, un conmutador puede reenviar el tráfico solo al puerto único al que está conectada la dirección MAC de destino del paquete. Esto aumenta el ancho de banda efectivo de la red; al apuntar a puertos específicos, el conmutador evita reenviar tráfico en segmentos innecesarios de la red. El conmutador utilizará ARP o rastreo de paquetes para identificar qué dispositivos están conectados a qué puerto. Los conmutadores ignoran por completo el contenido de los paquetes de capa 2.