Descubre cómo RDMA permite a los servidores transferir datos directamente entre memorias, reduciendo la carga de la CPU y la latencia. Analizamos su funcionamiento, ventajas frente a TCP, variantes como InfiniBand y RoCE, y su impacto en centros de datos, HPC y clusters de IA.
Los servidores modernos deben mover constantemente grandes volúmenes de datos entre nodos de cómputo. En la transferencia de red convencional, gran parte de este trabajo pasa por el sistema operativo y el procesador: los datos se copian entre búferes, se procesan por la pila de red y solo después se envían a otro servidor. Bajo cargas ligeras esto apenas se nota, pero en centros de datos estas operaciones adicionales afectan la latencia y la carga de la CPU.
RDMA cambia este enfoque. Esta tecnología permite que el adaptador de red transfiera datos directamente entre áreas de memoria de dos servidores, sin que el procesador deba gestionar cada bloque transmitido. Así se reduce el número de copias, la carga sobre la CPU y la latencia en el intercambio de datos.
Este mecanismo es especialmente importante donde decenas, cientos o miles de servidores intercambian datos de forma constante: en computación de alto rendimiento, almacenamiento distribuido, grandes bases de datos y clústeres de cómputo.
La sigla RDMA significa Remote Direct Memory Access, o acceso remoto directo a memoria. La idea principal es que el hardware de red de un ordenador puede transferir datos directamente a una región autorizada de la memoria RAM de otro ordenador.
Esto es muy diferente al intercambio de red tradicional, donde la aplicación pasa datos al sistema operativo y estos recorren la pila de red, los búferes del sistema, el controlador de la tarjeta de red y recién entonces se envían a la red. En el otro extremo, el proceso se invierte.
Cada etapa requiere tiempo y puede implicar varias copias entre la memoria de usuario y la del núcleo del sistema operativo. Si el servidor maneja miles o millones de operaciones de red, estas acciones adicionales consumen una parte importante de los recursos de cómputo.
RDMA recorta este recorrido. El adaptador de red compatible, conocido como RNIC (RDMA Network Interface Card), mueve los datos entre memoria y red de forma autónoma. Esto es posible gracias a la tecnología DMA (Direct Memory Access), que permite al hardware operar con la memoria RAM sin que el procesador transfiera manualmente cada bloque.
De aquí surgen dos propiedades clave de RDMA: zero-copy y kernel bypass.
Sin embargo, la frase "RDMA funciona sin intervención del procesador" no debe tomarse literalmente. La CPU sigue siendo necesaria para iniciar la aplicación, configurar la conexión, registrar la memoria y gestionar las operaciones. RDMA libera al procesador, principalmente, de la copia constante y el procesamiento de cada bloque durante la transferencia.
Por eso la tecnología resulta especialmente útil en sistemas donde importan no solo los gigabits por segundo, sino también la mínima latencia. El servidor puede dedicar más tiempo de CPU a cálculos, mientras que el adaptador de red gestiona el movimiento de datos.
Para que RDMA acceda directamente a la memoria, la aplicación debe registrar primero una región específica, que después queda bajo control del adaptador de red.
Durante el registro, el sistema operativo fija las páginas de memoria seleccionadas y comunica su ubicación física al adaptador. Esto es necesario porque el RNIC debe poder acceder mediante DMA, independientemente de cómo cambien las direcciones virtuales en el sistema operativo.
La región registrada recibe claves de acceso especiales, que limitan qué zonas son accesibles desde nodos locales o remotos. Por tanto, RDMA no significa acceso libre a toda la RAM de otro servidor.
Una vez preparada la memoria, la aplicación crea colas de operaciones y una conexión con el nodo remoto. A partir de ahí, la transferencia de datos la gestiona principalmente el adaptador de red.
El recorrido de los datos puede resumirse así:
Si un servidor debe enviar un bloque grande de datos, la aplicación coloca la descripción de la operación en la cola de envío. En vez de copiar todo el contenido al búfer de red del sistema, indica al adaptador dónde están los datos y adónde deben enviarse.
El RNIC ejecuta el comando, lee los datos de la memoria registrada mediante DMA, forma los paquetes de red y los envía al nodo remoto. El adaptador RDMA receptor puede escribir la información directamente en la región RAM previamente asignada.
El procesador no traslada cada bloque entre búferes; inicia la operación y puede dedicarse a otras tareas.
Para la interacción entre aplicación y adaptador se usan colas. La Send Queue gestiona las operaciones a ejecutar y la Completion Queue informa de las acciones completadas. La aplicación consulta esta cola para saber si la transferencia ha finalizado.
Este enfoque permite procesar muchas operaciones de red con menos intervención del núcleo del sistema operativo.
RDMA soporta varios métodos de intercambio de datos, siendo los principales RDMA Read y RDMA Write.
La diferencia es importante para la arquitectura de las aplicaciones. RDMA Read y Write son operaciones unilaterales: la CPU remota no tiene que participar activamente en el acceso a los datos. Send/Receive requieren más coordinación, pero son útiles para comandos, mensajes pequeños e información de control.
La combinación de DMA, memoria registrada, colas y procesamiento de red por hardware permite que RDMA reduzca la latencia, las copias de datos y la carga de la CPU.
La diferencia entre RDMA y la red tradicional se aprecia en el recorrido de los datos.
Con TCP clásico, el esquema es:
En el servidor receptor, el proceso se invierte.
Aunque en sistemas modernos muchas operaciones están optimizadas y las tarjetas de red procesan parte de los paquetes, TCP sigue siendo un protocolo universal para una enorme variedad de redes, aplicaciones y condiciones.
RDMA resuelve un problema más especializado. El flujo sería:
La principal ventaja no es solo acortar el esquema: se reduce el número de acciones que la CPU y el sistema operativo deben realizar en cada intercambio.
En la transferencia tradicional pueden surgir copias entre la memoria de la aplicación y los búferes del núcleo. RDMA aprovecha zero-copy y transmite los datos directamente desde la memoria preparada.
Otra diferencia es el número de transiciones entre la aplicación de usuario y el núcleo del sistema. Cada llamada de sistema y cambio de contexto requiere tiempo. El kernel bypass permite a la aplicación RDMA interactuar con el adaptador de red de forma mucho más directa.
Por eso, la ventaja de RDMA se percibe especialmente al transferir grandes volúmenes de datos a alta frecuencia. Al reducir la carga de la CPU, el servidor puede dedicar más potencia a su tarea principal: bases de datos, procesamiento de solicitudes, cálculos científicos o con GPU.
También disminuye la latencia: si el sistema no debe copiar los datos varias veces ni pasar cada operación por la pila de red, el tiempo entre la solicitud y la transferencia real es menor.
Aun así, RDMA no sustituye por completo a TCP. Las redes TCP/IP estándar son más sencillas de desplegar, funcionan con casi cualquier hardware y son adecuadas para la mayoría de servicios web, aplicaciones y tráfico de usuario.
RDMA requiere hardware compatible, soporte de software especializado y una infraestructura de red cuidadosamente configurada. Por eso, su beneficio es crucial donde la latencia de microsegundos y la carga de la CPU afectan al rendimiento global.
RDMA no es un tipo de cable ni un único protocolo de red. Es un conjunto de mecanismos de acceso directo a memoria remota que puede funcionar sobre diversas tecnologías de red. En la práctica, los más comunes son InfiniBand y RoCE, y mucho menos frecuente iWARP.
InfiniBand fue diseñado para sistemas de cómputo de alto rendimiento donde la baja latencia y el intercambio veloz entre muchos nodos es crítico. RDMA es una función nativa de estas redes, por lo que InfiniBand se usa ampliamente en supercomputadoras, clústeres HPC y grandes infraestructuras de cómputo.
A diferencia de Ethernet convencional, InfiniBand es una arquitectura de red especializada con sus propios adaptadores, switches y mecanismos de gestión. Los adaptadores se denominan HCA (Host Channel Adapter).
Su ventaja es que toda la infraestructura está pensada desde el inicio para alto rendimiento. Como desventaja, requiere hardware compatible y una red dedicada, lo que aumenta el coste y la complejidad.
Para obtener los beneficios de RDMA sin migrar completamente a InfiniBand, se creó RDMA over Converged Ethernet (RoCE). Esta tecnología lleva la semántica de RDMA a redes Ethernet, permitiendo usar la infraestructura habitual de los centros de datos con tarjetas y switches compatibles.
Existen dos versiones principales:
A primera vista, parece suficiente instalar tarjetas RDMA y habilitar RoCE, pero en la práctica la red debe configurarse cuidadosamente. Para una transmisión estable son clave la gestión de congestión, colas y prioridades de tráfico. Se emplean mecanismos como QoS, ECN y, en algunas configuraciones, Priority Flow Control.
Esto se debe a la sensibilidad del tráfico RDMA de alta velocidad ante pérdidas y congestión. Si miles de servidores transfieren datos masivos al mismo tiempo, una red mal configurada puede perder gran parte de las ventajas de baja latencia.
Por eso, RoCE es especialmente atractivo para grandes centros de datos: permite transferencias directas entre memorias de servidores, manteniendo Ethernet como base de la infraestructura.
Existe también iWARP, variante de RDMA sobre TCP/IP, que funciona en redes Ethernet enrutadas normales y no requiere transmisión casi sin pérdidas como RoCE. Sin embargo, en clústeres de alto rendimiento, InfiniBand y RoCE son mucho más habituales.
RDMA no tiene sentido en cualquier red. En un servidor web que entrega páginas a usuarios por internet, la diferencia no justifica la complejidad extra en hardware y configuración. La tecnología brilla donde los servidores intercambian grandes volúmenes de datos constantemente y cada milisegundo de latencia afecta al rendimiento final.
Un ejemplo clásico es la computación de alto rendimiento. En un clúster científico o de ingeniería, una tarea puede ejecutarse simultáneamente en cientos de nodos. Los procesadores deben sincronizarse y transferirse resultados parciales. Cuanto más tiempo se gasta en el intercambio de red, menos rentable resulta añadir nuevos servidores.
RDMA reduce estos costes y permite a los nodos comunicarse más rápido y con menos carga de CPU. Por eso, la tecnología lleva años usándose en HPC y supercomputadoras.
Otro caso son los sistemas de almacenamiento distribuido. Un servidor puede acceder a un disco ubicado en otro nodo casi tan rápido como a un dispositivo local. Así funcionan algunas implementaciones de NVMe over Fabrics, donde RDMA se usa para transmitir comandos y datos NVMe por la red con mínimos gastos extra.
RDMA también se emplea en bases de datos de alto tráfico, sistemas de procesamiento de grandes volúmenes de información y otras aplicaciones distribuidas en las que reducir la latencia de red acelera directamente las operaciones.
El papel de RDMA ha cobrado aún más relevancia con la expansión de enormes clústeres de IA. El entrenamiento de un modelo grande puede requerir miles de GPU en paralelo. Cada acelerador realiza solo una parte del cálculo, así que los nodos deben intercambiar y sincronizar datos constantemente.
Si la red no sigue el ritmo de las GPU, los costosos aceleradores quedan inactivos esperando datos. En este contexto, la potencia de cada tarjeta gráfica deja de ser el cuello de botella.
RDMA ayuda a reducir el coste del intercambio de red, y InfiniBand y RoCE se usan como base de las conexiones de alta velocidad entre nodos. Si te interesa saber por qué la red es un componente clave de los grandes clústeres de GPU, te recomendamos el artículo AI Fabric: cómo se diseña la red para entrenar modelos de IA a gran escala. RDMA ofrece un camino directo "zero-copy" entre memorias y reduce la carga sobre la CPU.
También existen tecnologías adicionales para GPU, como GPUDirect RDMA, que permite a los adaptadores de red compatibles intercambiar datos directamente con la memoria de la GPU, evitando copias intermedias por la RAM del sistema. En operaciones a gran escala, esto reduce aún más las transferencias innecesarias.
Al diseñar servidores, es importante considerar la ubicación de la memoria. En sistemas multiprocesador, el acceso a distintos bancos de RAM puede tener diferentes latencias, así que una mala colocación de adaptadores, CPU y memoria puede limitar el beneficio incluso de una red muy rápida. Puedes profundizar en este concepto en el artículo Arquitectura NUMA de servidores: claves para el rendimiento y la escalabilidad.
En resumen, RDMA ofrece más valor donde se cumplen tres condiciones: se transfieren grandes volúmenes de datos, la latencia es crítica y el tiempo de CPU es demasiado valioso para dedicarlo a la gestión del stack de red. En una red corporativa común puede ser innecesario, pero para supercomputadoras, almacenamiento distribuido o clústeres de GPU, puede ser clave para el rendimiento global.
RDMA resuelve uno de los principales desafíos de los sistemas de servidores de alto rendimiento: el procesador ya no necesita intervenir en cada etapa de la transferencia de datos por red. Tras configurar la conexión y registrar la memoria, el adaptador RDMA, mediante DMA, mueve la información directamente entre las memorias de los nodos.
Las ventajas clave de RDMA son baja latencia, zero-copy, kernel bypass y reducción de la carga sobre la CPU. El impacto es especialmente notable en sistemas donde los servidores intercambian grandes volúmenes de datos: clústeres HPC, almacenamiento distribuido, bases de datos de alto tráfico e infraestructuras para entrenamiento de modelos de IA a gran escala.
Sin embargo, RDMA no reemplaza a las redes TCP/IP tradicionales. Para la mayoría de aplicaciones, la versatilidad de Ethernet y TCP es más importante que la ganancia en microsegundos. RDMA requiere hardware compatible, software especializado y, en el caso de RoCE, una red perfectamente ajustada.
Por lo tanto, RDMA debe elegirse no solo por su mayor ancho de banda, sino cuando el intercambio de datos entre servidores es realmente el cuello de botella del sistema. En ese contexto, aligerar la carga de la CPU y contar con un acceso directo entre memorias puede aportar mucho más que actualizar procesadores o tarjetas de red.