Conmutación de tramas

En las primeras tecnologías de redes locales los dispositivos se conectaban entre sí mediante buses y concentradores (o hubs). Estas tecnologías tenían la limitación de que las tramas que eran depositadas en el medio llegaban a todos los dispositivos conectados a la red, por lo que la cantidad de tráfico que se producía era muy elevada y también era elevado el riesgo de que se produjeran colisiones. Con esta situación, la aparición de la conmutación (switching) fue un gran avance que desbanco a las tecnologías anteriores y aún perdura.

La conmutación consiste en utilizar una topología física de estrella que centraliza la conexión a la LAN en un punto en el que un dispositivo llamado conmutador redirige el tráfico del nivel de enlace hacia aquel enlace concreto en el que se encuentra el destinatario de la trama

La conmutación de tramas ofrece una gran ventaja respecto a las redes basadas en buses y concentradores, ya que reduce drásticamente el número de colisiones en la red y el tráfico a través de los distintos enlaces.

Las tecnologías de conmutación de tramas se basan en el uso de un dispositivo especial llamado conmutador o switch.

Un conmutador es un dispositivo de acceso que posee varios puertos de conexión a los que se conectan directa o indirectamente los diferentes dispositivos de una red. El conmutador, además, es capaz de analizar las tramas a nivel de enlace para extraer la información de destino de las mismas y redirigirlas a través del puerto concreto en el que se encuentra conectado el destinatario
Los conmutadores poseen una memoria intermedia que les permite almacenar en una cola de mensajes las tramas que llegan, lo que impide que colisionen los mensajes que reciben de forma simultanea.

Los memoria intermedia que incluyen los conmutadores almacena una tabla llamada tabla de direccionamiento MAC o tablas ARP que asocia las direcciones MAC de los dispositivos conectados directa o indirectamente al conmutador con el número de puerto al que se encuentran conectados dichos dispositivos. Dicha tabla tiene básicamente dos columnas, en una se indica el puerto de conexión del switch y en la otra la dirección MAC del equipo conectado directa o indirectamente a dicho puerto.

Ejemplo de tabla de direccionamiento MAC

Para la red del siguiente esquema:

La tabla MAC del switch sería:

Puerto Dirección MAC
P1 00:AA:11:11:11
P1 00:AA:55:55:55
P2 00:AA:33:33:33
P3 00:AA:22:22:22

Vemos que se generan entradas no sólo para los equipos conectados directamente a un puerto del switch sino también para los accesibles indirectamente a través de dispositivos intermedios desde dicho puerto. Es por eso que podemos tener más de una entrada en la tabla para el mismo puerto.

Cuando un conmutador o switch recibe una trama a través de uno de sus puertos, realiza las siguientes acciones:

  • Detectar si la trama ha llegado con errores y, en caso afirmativo, descartarla o iniciar el procedimiento correspondiente.
  • Averiguar las direcciones MAC de origen y destino de la trama.
  • Conocida la MAC origen de la trama comprueba si existe en la tabla de direccionamiento MAC la entrada que asocia la MAC del dispositivo remitente con el puerto por el que ha sido recibida la trama. Si esta asociación no existe se crea y se almacena en memoria.
  • Reenviar la trama por el puerto que corresponda:
    • Si la dirección MAC de destino es una dirección de broadcast, la reenviará por el resto de puertos.
    • Si la dirección MAC de destino es una dirección multicast, el resultado dependerá del conmutador. Algunos pueden configurarse para reenviar la trama por determinados puertos y otros, en cambio, la reenviarán por el resto de puertos como si se tratara de una trama broadcast.
    • Si la dirección MAC de destino corresponde con una dirección unicast (es decir, destinada a un único dispositivo), el conmutador comprobará si hay alguna entrada en la tabla de direccionamiento MAC para la dirección MAC de destino:
      • Si es así la reenviará por el puerto que corresponda según indique la trama.
      • Si no existe una entrada en la tabla para ese destinatario, reenviará la trama por todos los puertos excepto por aquel por el que le llegó la trama. En caso de que el dispositivo destinatario responda a la trama el conmutador podrá aprender en que puerto está conectado dicho dispositivo.

Ejemplo de funcionamiento de un switch

Equipo quiere comunicarse con otro de la red Switch almacena puerto de la MAC de origen Switch no sabe puerto de la MAC de destino. Manda trama por todos los puertos excepto por el que la ha recibido Paquete destinatario responde con una trama que incluye su MAC en el origen y la del equipo que hizo petición en su MAC de destino El switch anota la MAC del origen y el puerto por el que ha recibido la trama El switch manda directamente la trama por el puerto de destinatario al tenerla ya registrada A partir de este momento la comunicación entre estos dos equipos es directa. Switch ya conoce ubicación de ambas MACs

Aspectos a tener en cuenta respecto al funcionamiento de los conmutadores

Las MACs de multicast (octavo bit a 1) no se almacenan en la tabla de direccionamiento.

Las entradas (filas) de la tabla tienen un tiempo de vida (timeout) definido. Pasado este tiempo sin que la entrada en la tabla haya sido renovada, esta es eliminada de la tabla.

Las tablas se almacenan en la memoria del switch que tiene un determinado tamaño y por tanto puede almacenar una cantidad determinada de valores. Si la tabla se llena se van eliminando las entradas más antiguas para dejar espacio a los nuevos valores que se hayan de almacenar.