¿Puedo crear una red Ethernet sin usar IP


14

Según tengo entendido por el modelo ISO-OSI, las direcciones MAC operan en una capa diferente a las direcciones IP. Esto está claro para mí.

Puedo aceptar que Ethernet (LAN) simplemente no utiliza direcciones IP para comunicarse, sino que usa direcciones MAC. Entiendo que estas direcciones MAC no se pueden usar para el enrutamiento fuera de una LAN, ya que no están definidas jerárquicamente. También entiendo que IP es la mejor manera de enrutar a través de Internet. De lo que no estoy completamente convencido, es que las direcciones MAC son la mejor manera de comunicarse en una LAN


Mis preguntas son las siguientes:

  1. ¿No podría Ethernet usar direcciones IP para enviar mensajes? No digo que deba hacerlo, solo pregunto si podría haber elegido hacerlo.
  2. Como Ethernet usa direcciones MAC para la comunicación, ¿podría crear una red Ethernet donde los dispositivos no tendrían una dirección IP, solo una dirección MAC?

Por definición, una red Ethernet es una red donde los dispositivos no tienen direcciones IP. Una red TCP / IP, como usted señala, es otra cosa y a IP no le importa si se ejecuta sobre IEEE 802.3, 802.11 o 802.5.
miken32

Respuestas:


5

¿Podría Ethernet haber usado direcciones IP en lugar de sus propias direcciones de capa de enlace de datos? Ciertamente no, si quería ser agnóstico sobre qué protocolo de capa 3 usó.

Diseñamos protocolos de red en capas para que podamos mezclar y combinar capas.

Ethernet fue desarrollado originalmente por Bob Metcalfe et alia en Xerox PARC para ser independiente de la capa de red, porque su objetivo no era solo el acceso TCP / IP, sino también la propia pila / suite de protocolos de red XNS patentada por Xerox.

DEC (Digital Equipment Corporation) se convirtió en otro adoptador temprano, usándolo principalmente para su pila / suite de protocolos DECnet.

A finales de los años 80 y principios de los 90 había muchos conjuntos de protocolos LAN competitivos (todos completamente independientes de TCP / IP) que se ejecutaban en LAN Ethernet corporativas. Además de XNS y DECnet, hubo AppleTalk de Apple (EtherTalk), IPX de Novell, Banyan VINES, NetBEUI, DLC / LLC, IBM SNA, OSI / ISO, y otros que he olvidado.

Entonces, sí, puede usar Ethernet sin IP. Muchas redes corporativas lo hicieron en los años 80 y 90.

Debido a que Ethernet fue diseñado para que no le importara qué protocolo de capa 3 (capa de red) se estaba ejecutando en él, era relativamente fácil para esas LAN corporativas admitir mezclas de equipos de varios proveedores, y era relativamente fácil para esas LAN agregar IPv4 soporte cuando Internet despegó a mediados y finales de los 90, y para nosotros ha sido relativamente fácil agregar soporte IPv6 ahora.


1
¡Gracias por dar una respuesta en la que pones las cosas en contexto! Sin embargo, desearía que te hubieras expandido un poco más en la segunda parte de la pregunta ... ¿Sería posible hacer una LAN basada en Ethernet que funcione sin usar ningún protocolo de capa de red? Si configuro una conexión Ethernet con cable cruzado a otro host, ¿por qué necesito usar IP para comunicarme con ese host? ¿Podría ser posible usar TCP sobre MAC en lugar de TCP sobre IP?
jj_

4

Como Ethernet usa direcciones MAC para la comunicación, ¿podría crear una red Ethernet donde los dispositivos no tendrían una dirección IP, solo una dirección MAC?

Si estaba escribiendo todo su propio software desde cero, entonces ciertamente podría hacerlo. Simplemente haga que el software acepte una dirección MAC en cualquier lugar donde la contraparte normal de ese programa hubiera aceptado una dirección IP. Use todas las llamadas del sistema para enviar paquetes de ethernet sin procesar en lugar de la dirección IP y funcionará, pero sería una gran molestia.

En general, las direcciones MAC en su red no siguen ningún patrón. El fabricante los quema en el hardware. Son largos y voluminosos. El mío ahora es C8-60-00-CA-4B-9A. La computadora a mi lado es 00-40-F4-48-1B-88.

Para que las máquinas puedan comunicarse entre sí, puede proporcionar a cada máquina una lista codificada de todas las direcciones MAC de todas las otras máquinas en la red para que sepa dónde enviar paquetes. Esta es una gran cantidad de errores de escritura, y cada vez que cambie su hardware de red, tendrá que dar la vuelta y cambiar todas las listas para reflejar las nuevas direcciones MAC.

Esta es una gran molestia, por lo que probablemente terminaría encontrando una forma para que las máquinas en la red descubran automáticamente las direcciones MAC de los demás utilizando paquetes de difusión. Luego les daría una forma de identificarse con alguna dirección significativa, por lo que tendría que escribir comandos como "telnet C8-60-00-CA-4B-9A".

Resulta que esto es exactamente lo que hace IP: es una forma de usar números significativos para direccionar hosts en una red en lugar de codificar direcciones MAC. Agregue DNS en la parte superior de IP y puede escribir comandos como "servidor web telnet".

¿No podría Ethernet usar direcciones IP para enviar mensajes? No digo que deba hacerlo, solo pregunto si podría haber elegido hacerlo.

Las direcciones MAC son 6 bytes de información y las direcciones IP son solo 4 bytes, por lo que no puede hacer ningún tipo de mapeo 1 a 1. Necesita alguna forma de encontrar la dirección MAC (para poner en el paquete) desde una dirección IP (suministrada por el software que desea comunicarse con otro host en la red).

Una forma (núcleo duro) de hacer esto sería ir a cada máquina de la red y cambiar su dirección MAC de hardware para que parezca una dirección IP haciendo que los dos bytes superiores sean ceros (o algún otro número fijo que sea el mismo para cada máquina en la red) y configure los cuatro bytes inferiores a la "dirección IP" que desea que tengan en la red. (La mayoría de las tarjetas de red le permitirán ingresar y modificar la dirección MAC asignada por el proveedor)

Para que esto realmente funcione, a continuación, también tendría que hackear el código en su pila de red para usar este sistema. Básicamente, eliminaría todo lo que tenga que ver con ARP (el método que utiliza IP para traducir las direcciones IP a la dirección MAC). Extraería las partes que compilan / leen encabezados IP. En cambio, lo reemplazaría todo con el código muy simple que, dado un paquete IP que se enviará al host en la dirección wxyz, construye un marco de ethernet con la dirección DEST establecida en 00-00-wxyz.

También necesitaría una manera de indicar al receptor de un paquete para qué protocolo (UDP, TCP) está destinado. Probablemente podría pegar esto en algún lugar del encabezado de Ethernet anulando un campo existente. ¿Quizás use uno de los dos primeros bytes de la dirección de origen? Esto no afectaría la capacidad de las máquinas de destino para recibir, pero podría estropear algunos conmutadores. También puede agregar el protocolo al principio o al final de la trama de Ethernet y aumentar el tamaño de la carga útil en uno, pero eso está empezando a oler como un encabezado IP.

Entonces, ¿qué te compraría todo este trabajo?

Primero, le ahorraría la sobrecarga de una búsqueda en la tabla ARP en cada paquete saliente. Esto es probablemente del orden de solo microsegundos.

Usted ahorra el trabajo de calcular sumas de verificación de encabezado IP y la memoria necesaria para mantenerlas. Esto probablemente no sea significativo en el hardware moderno.

Guarda 16 bytes en cada paquete en la red ya que no habría encabezados IP. Esto podría sumar dependiendo de la aplicación.

La mayor ganancia sería que no tendría que hacer ninguna solicitud ARP. Enviar un paquete IP estándar a un nuevo host desencadena un intercambio ARP que puede tomar milisegundos y es impredecible. Esto puede ser una gran ganancia para algunas aplicaciones que son muy sensibles a la latencia y la fluctuación de fase.

Para algunas aplicaciones muy especializadas, esto realmente tiene sentido. Una vez trabajé en un sistema en tiempo real que usaba solo paquetes UDP de transmisión para todas las comunicaciones entre hosts por la única razón de que evitaba que esas secuencias ARP se activaran y agregaran retardo y jitter de manera impredecible. También trabajé una vez en un sistema embebido de recursos limitados que funcionaba enviando cargas útiles UDP dentro de paquetes IP directamente (sin encabezado IP) porque guardaba toda la complejidad y memoria necesaria para implementar todo el ARP y la máscara de red y cosas de suma de verificación adicionales.


1

¿No podría Ethernet usar direcciones IP para enviar mensajes? No digo que deba hacerlo, solo pregunto si podría haber elegido hacerlo

Supongo que Ethernet podría haber usado direcciones de cuatro bytes como IPv4 en lugar de direcciones de seis bytes. Probablemente sea bueno que no lo hicieran, ya que se quedarían sin números ahora apostaría.

Como Ethernet usa direcciones MAC para la comunicación, ¿podría crear una red Ethernet donde los dispositivos no tendrían una dirección IP, solo una dirección MAC?

Puede, si tiene programas que funcionarán con direcciones MAC en lugar de direcciones IP. Por supuesto, estará atrapado en esa red y no podrá comunicarse con otros sin algún tipo de piratería.

Realmente solo necesita la capa IP si planea hacer enrutamiento, especialmente si otra red puede estar usando una tecnología de Capa 2 diferente a Ethernet, como Token Ring, que era una posibilidad real cuando se desarrolló la mayor parte de esto. Quién sabe si otra tecnología de Capa 2 puede volverse omnipresente en el futuro, de ser así, la IP es independiente de ella.


0
> Couldn't Ethernet make use of IP addresses to send messages? I'm not
> saying it should, I'm just asking if it could have chosen to do so.

Si se refiere a Ethernet como la capa de red, entonces no, no puede. La capa de red requiere la dirección física del dispositivo de red. Una dirección IP es un número arbitrario que se asigna a una dirección MAC por simplicidad. Las direcciones IP son una solución de software, no una parte de la tarjeta de red: la solución de hardware. Es por eso que las direcciones IP se pueden cambiar fácilmente, mientras que las direcciones MAC están codificadas en la tarjeta y no se pueden cambiar (a pesar del software de suplantación de direcciones MAC, que aún no cambia tanto la dirección como si se trata de cuál es la dirección )

> As Ethernet uses MAC addresses for communication, could I create an
> Ethernet network where devices would not have an IP address, just a
> MAC address?

Sí, podría, pero no disfrutaría usarlo, ya que la funcionalidad sería muy limitada y no sería fácil de usar. Hay una razón por la cual se implementó la capa de transporte.

Desde WikiPedia , la capa de transporte controla la confiabilidad de un enlace dado a través del control de flujo, segmentación / desegmentación y control de errores. Algunos protocolos están orientados al estado y la conexión. Esto significa que la capa de transporte puede realizar un seguimiento de los segmentos y retransmitir los que fallan. La capa de transporte también proporciona el reconocimiento de la transmisión de datos exitosa y envía los siguientes datos si no se produjeron errores.

Por lo tanto, sin usar la capa de transporte, que hoy en día significa el protocolo TCP / IP, no tendría la capacidad de garantizar que sus datos llegaran a su destino, o la capacidad de restablecer automáticamente las piezas faltantes.


La dirección MAC ciertamente se puede cambiar. Mi PC (fallecida hace mucho tiempo) usó el MAC de una tarjeta Ethernet rota durante años, ya que mi proveedor de ADSL lo ató y cargó para cambiarlo (y también tardó unos días).
vonbrand

0

Ciertamente, es posible que las máquinas en una red local se comuniquen sin una capa de enrutamiento. Simplemente incrusta el mensaje en un marco Ethernet y espera lo mejor. Es un poco como poner una nota en una postal y esperar que la oficina de correos haga su trabajo.

Tiene que esperar que el receptor esté escuchando, y escuche atentamente un mensaje de respuesta (posiblemente entre muchos otros mensajes de otros nodos). Serás responsable de resolver todos estos mensajes tú mismo.

Si desea cosas como mensajes 1: 1, necesitará otro protocolo en la parte superior de las tramas de Ethernet para manejar toda esta escucha por usted. El Protocolo punto a punto (PPP) se usa a menudo para esto, a través de Ethernet se conoce como PPPoE. PPPoE le brinda autenticación y encriptación, ambas muy buenas ideas en una red de transmisión.

Pero sin alguna forma de información de enrutamiento, solo puede comunicarse con los nodos en la red local. Tan pronto como comience a utilizar la información de enrutamiento para retransmitir mensajes (por ejemplo, a Internet), desea algún tipo de protocolo de enrutamiento, como IP o IPX. Y probablemente también desee el control de transmisión (TCP) ...


0

Las redes IP son una abstracción, una capa de indirección, es decir que son una red virtual , no están permanentemente vinculadas a ningún método o dispositivo de comunicación física en particular.

Un host Ethernet tiene una dirección MAC (por NIC) que lo identifica de manera única globalmente. Sin embargo, este host podría pertenecer simultáneamente a muchas redes IP, con una dirección IP diferente para cada una, mientras usa siempre una dirección MAC.

Esta separación del direccionamiento físico y lógico, o virtualización del direccionamiento, permite cierta flexibilidad, como mover un host IP (por ejemplo, un servidor) de una máquina física a otra, con una dirección MAC diferente, pero sin requerir una reconfiguración de otros hosts (por ejemplo, software de cliente).

IP, o el Protocolo de Internet, y Ethernet resuelven diferentes problemas: Ethernet proporciona comunicación a nivel LAN y solo en una única LAN, no le importa a qué otras redes se puede conectar la LAN a través de un enrutador. Considerando que, IP se ocupa de conexión en red y por lo tanto LAN-agnóstico. Entonces, ¿podría Ethernet haber hecho uso de direcciones IP en lugar de direcciones MAC? Claro, pero en realidad no gana nada ya que esos mensajes aún estarían restringidos a la LAN.

Como respuesta a su segunda pregunta, este tipo de situación existe en diferentes momentos en una LAN Ethernet que utiliza el Protocolo de configuración dinámica de host (DHCP) para la asignación de direcciones IP. Cuando un nuevo host se conecta a la LAN, no tiene una dirección IP, por lo que envía una trama Ethernet transmitida a todos los dispositivos y espera una respuesta de un servidor DHCP. En este momento, el cliente no conoce ni la dirección MAC del servidor DHCP ni su dirección IP, de ahí la difusión. Al recibir la solicitud, el servidor ahora conoce la dirección MAC del cliente y, por lo tanto, puede abordar correctamente la respuesta.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.