Almacenamiento y reenvío (en
inglés:
«Store and forward») es una técnica de
conmutación en
redes con conexiones
punto a punto estáticas, en virtud de la cual los datos se envían a un nodo intermedio, donde son retenidos temporalmente hasta su posterior reenvío, bien a su destino final, bien a otro nodo intermedio. Cada nodo intermedio se encarga de verificar la
integridad del mensaje antes de transferirlo al siguiente nodo.
Esta técnica se aplicó como tecnología de conmutación en las primeras
redes de área amplia (WAN), y más tarde en los primeros
multicomputadores (con redes estáticas). En general, es adecuada para
redes tolerantes al retardo (DTN, de
«delay-tolerant networks»), donde no se proporciona ningún tipo de servicio en
tiempo real, concretamente en escenarios donde los nodos se hallan geográficamente distantes, no existe conectividad directa o la red sufre una elevada tasa de errores.
Funcionamiento[editar]
En una red basada en «almacenamiento y reenvío», un conmutador espera a recibir íntegramente el paquete antes de ejecutar el
algoritmo de encaminamiento. Una vez hecho esto, el paquete completo se transfiere o reenvía al siguiente conmutador, determinado por el encaminamiento, a través de la salida correspondiente. En cada instante, el paquete puede estar transfiriéndose por un único canal (ver
vídeo). De lo anterior se deduce que los recursos de red (
buffer y enlaces) se asignan a nivel de paquete.
1
El buffer del conmutador debe tener capacidad para almacenar todo el paquete completo. En una red de procesamiento paralelo, el recurso a la
memoria principal del nodo al que se conecta el conmutador no es una opción viable, ya que degrada considerablemente las prestaciones. Por ello, es preciso limitar ante todo el tamaño de los paquetes, dividiendo en la interfaz origen el mensaje en unidades más pequeñas que no superen un tamaño máximo preestablecido. En
multiprocesadores esta división puede ser superflua, ya que la longitud del mensaje suele estar ajustada al tamaño de una
línea de caché.
Cut Through
La
conmutación cut-through (en
inglés: «
Cut-through switching») –más conocida como
virtual cut-through– es una técnica de
conmutación de paquetes según la cual el
conmutador empieza a retransmitir una
trama o
paquete antes de haberlo recibido por completo, normalmente al identificar la dirección del nodo destino.
Si los conmutadores de la red implementan
conmutación adaptativa (
adaptive switching), pueden alternar selectivamente entre un modo de operación cut-through y otro de tipo
«store-and-forward»("almacenamiento y reenvío"), dependiendo de las condiciones que presente la red en cada momento. Este mecanismo permite optimizar las prestaciones de la red al combinar la alta velocidad de transferencia de virtual cut-through (cuando la tasa de errores es baja) con la
fiabilidad que proporciona
«store-and-forward» (cuando la tasa de errores aumenta).
Funcionamiento
Al igual que en
conmutación vermiforme, en una red que opera con virtual cut-through el
encaminamiento en el conmutador se ejecuta en cuanto llega la
cabecera del paquete. La unidad de transferencia entre
interfaces (
nivel de red del
modelo OSI) es el paquete, que puede "cortarse" (
cut-through) en trozos más pequeños, de forma que la cabecera pueda estar ya en el siguiente conmutador cuando aún no se ha recibido el paquete completo.
1
Si un paquete se bloquea por hallarse ocupado un enlace, puede entretanto almacenarse en el
buffer a la entrada del conmutador, cuya capacidad debe ser suficiente para alojar (al menos) un paquete completo. Esto implica que si los mensajes no tienen un tamaño máximo preestablecido, deberán fragmentarse en unidades más pequeñas. De esta forma, en virtual cut-through el camino a recorrer por los paquetes se segmenta en etapas, al igual que sucede en conmutación vermiforme, pero asignando buffer y enlaces a nivel de paquete como en «
almacenamiento y reenvío». Este esquema permite que, en cada momento, un paquete no bloqueado pueda estar transfiriéndose por múltiples canales de la red al mismo tiempo.
FRAGMENT FREE
Fragmento libre es una variación de conmutación de corte a través de ese aborda parcialmente este problema asegurando que los fragmentos de colisión no se reenvían. Libre Fragmento celebrará el bastidor hasta que los primeros 64 bytes se leen de la fuente para detectar una colisión antes de reenvío. Esto sólo es útil si hay una probabilidad de una colisión en el puerto de origen. [5]
La teoría es que los marcos que están dañados (por lo general por las colisiones) suelen ser más corto que el tamaño de la trama ethernet válido mínimo de 64 bytes. Con un buffer libre de fragmentos de los primeros 64 bytes de cada trama, actualiza la MAC de origen y el puerto si es necesario, se lee en el MAC de destino, y envía la trama. Si el marco es de menos de 64 bytes, se descarta. Las tramas que son más pequeños que 64 bytes son llamados enanos; esta es la razón libre de fragmentos de conmutación a veces se llama "runt menos" conmutación. Debido a que el interruptor sólo alguna vez amortigua 64 bytes de cada trama, Fragmento gratuito es un modo más rápido que la Store and Forward, pero todavía existe un riesgo de transmisión de tramas defectuosas.