¿Cómo aprende un conmutador una tabla de conmutadores?

22

Digamos que la mesa de interruptores está vacía. Si la computadora A envía una trama destinada a la computadora B, el conmutador emitirá preguntando quién tiene la dirección mac de B. ¿Qué pasa si C de repente envía una trama a A? ¿Cuál es el mecanismo para que el interruptor no piense erróneamente que la computadora C es la computadora B? ¿Es que recuerda la dirección mac del destino deseado por la computadora A, y cuando C intenta llegar a A también contiene su propia dirección mac y el conmutador ve que no es el mismo destino que la computadora A quería?

Básicamente, estoy preguntando, cuando un conmutador inunda una dirección MAC desconocida para una solicitud enviada por el host A, ¿cómo sabe que el destino está respondiendo al host A o si algún otro host simplemente está transmitiendo a A?

Celeritas
fuente
¿Alguna respuesta te ayudó? Si es así, debe aceptar la respuesta para que la pregunta no siga apareciendo para siempre, buscando una respuesta. Alternativamente, puede proporcionar su propia respuesta y aceptarla.
Ron Maupin

Respuestas:

34

Los conmutadores de capa 2 (puentes) tienen una tabla de direcciones MAC que contiene una dirección MAC y un número de puerto. Los conmutadores siguen este algoritmo simple para reenviar paquetes:

  1. Cuando se recibe una trama, el conmutador compara la dirección MAC FUENTE con la tabla de direcciones MAC. Si se desconoce la FUENTE, el conmutador la agrega a la tabla junto con el número de puerto en el que se recibió el paquete. De esta manera, el conmutador aprende la dirección MAC y el puerto de cada dispositivo de transmisión.

  2. Luego, el conmutador compara la dirección MAC DESTINO con la tabla. Si hay una entrada, el conmutador reenvía la trama al puerto asociado. Si no hay entrada, el conmutador envía el paquete a todos sus puertos, excepto el puerto en el que se recibió la trama (Inundación).

Tenga en cuenta que el conmutador no aprende el MAC de destino hasta que recibe una trama de ese dispositivo.

Ron Trunk
fuente
Gracias @Ron por explicarlo mejor. Ahora sé que las inundaciones son. También se puede encontrar en es.wikipedia.org/wiki/Unicast_flood
Damon
Esto no respondió la pregunta que había hecho.
Celeritas
55
@ Celeritas Su suposición en su pregunta es incorrecta. El interruptor no "pregunta" quién tiene una dirección mac. Si no conoce el MAC de destino, inunda el marco de todos los puertos. Solo aprende MACs de origen cuando recibe una trama. Entonces, en su pregunta, el conmutador puede notar la diferencia entre B y C porque tienen diferentes direcciones MAC de origen.
Ron Trunk
44
@Celeritas: el conmutador no sabe ni le importa por qué un host envía algo al host A. ¿Por qué sería importante si un host responde al host A u otro host envía algo más al host A? Al switch solo le importa que el MAC de destino sea para el Host A (y cuál es el MAC de origen si no está en la tabla de direcciones MAC). Solo al Host A le importa si la trama recibida es una respuesta del host al que originalmente se le envió una trama.
Ron Maupin
Lo que dijo Ron, este concepto está separado del ARP.
Jordan Head
4

Su pregunta supone que el conmutador está involucrado en, o es consciente de, la comunicación / conversación entre dos hosts (¿Es esta una conversación entre A y B o entre A y C?). El interruptor no está involucrado en la comunicación / conversación entre dos hosts. Simplemente sabe (o aprende) qué dirección MAC está asociada con qué puerto y reenvía (o conmuta) el tráfico destinado a una dirección MAC particular al puerto asociado (una vez que ha aprendido qué puerto está asociado con la dirección MAC), independientemente de si la fuente es B, C o cualquier otro host conectado a cualquier otro puerto de conmutador.

Los switches funcionan en la capa 2. La gestión de la sesión es responsabilidad de las capas superiores.

joeqwerty
fuente
-2

No se llama tabla de interruptores; su mesa MAC. Ahora considere que la tabla MAC está vacía. Cuando A intenta enviar un paquete a B; el paquete contiene la dirección MAC de A y B. El conmutador actualiza la dirección MAC de A en la tabla MAC. Ahora, dado que no conoce el puerto al que está conectado B, transmite el paquete ARP en todos sus puertos y espera a que todos los hosts respondan.

Ahora, al mismo tiempo, si C intenta enviar un paquete a A, extrae la dirección MAC de C de ese paquete y la almacena en la tabla MAC. Ahora, dado que la dirección MAC de ya está presente en la tabla MAC, sabe a qué puerto A está conectado. Recuerde que los paquetes de datos contienen la dirección MAC de origen y destino. Por lo tanto, la dirección MAC de B & C son diferentes. Entonces el interruptor no se confunde. Ahora cambie el paquete de C a A (dado que ambos están presentes en la misma VLAN).

Para enviar el paquete de A a B, espera hasta que B responda al paquete ARP enviado por el conmutador. Cuando recibe respuesta de B, actualiza la dirección MAC de B en su tabla MAC. Luego, finalmente, el paquete se reenvía a B.

Por lo tanto, el conmutador no se confunde ya que los paquetes de datos (tcp / udp) contienen tanto la dirección MAC de origen como la de destino. Y su conmutador no reenviará un paquete en una interfaz cuya dirección MAC del host final no se sabe que conmuta. Tiene que esperar hasta que el host final responda a la transmisión ARP enviada por switch.

Damon
fuente
1
Esto no es totalmente preciso. Un interruptor, a menos que sea un interruptor de capa 3, no ARP. ARP es resolver entre la capa 2 y la capa 3, y el interruptor no conoce la capa 3. El conmutador, de hecho, transmite una trama con un MAC de destino desconocido a cada puerto del conmutador. Un host ignorará cualquier trama con un MAC de destino que no sea el suyo.
Ron Maupin
1
Y una ligera aclaración a la aclaración de Ron ... sobre todo solo corrección de terminología. Cuando un conmutador envía un paquete a cada puerto (excepto el puerto de entrada) porque no sabe dónde se encuentra esa dirección MAC en particular, generalmente se denomina "inundación".
Jeff McAdams
@Ron gracias por tu corrección. A olvidé escribir que esto es para el interruptor de capa 3. Y también me gustaría admitir que olvidé el término inundación, así que escribí la respuesta para los interruptores de capa 3. Y Jeff, gracias por contarlo.
Damon
@ Jeff McAdams, tienes razón, es una inundación, gracias. Fue antes de mi primera taza de café después de que me levanté temprano, y me refería a la transmisión en el sentido del idioma, no en el sentido de la red.
Ron Maupin
@Damon, eso es lo que no sabía es que cada cuadro contiene la dirección MAC de origen y destino.
Celeritas