Open In App

Remote Direct Memory Access (RDMA)

Last Updated : 18 Mar, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Remote Direct Memory Access(RDMA) is the access of memory of one computer by another in a network without involving either one’s operating system, processor or cache.It improves throughput and performance of systems as it frees up many resources. Operations such as read and write can be performed on remote machine without interrupting CPU of that machine. This technology helps in higher data transfer rate and low-latency networking. RDMA uses zero copy networking by enabling network adapters for transferring data direct into the buffers of systems.

How does RDMA work?

RDMA operates by using a network interface controller (NIC) that supports RDMA, such as InfiniBand or RoCE (RDMA over Converged Ethernet). These NICs have specialized hardware that allows them to directly access the memory of the system they are connected to, without the need for CPU involvement. When a system wants to transfer data using RDMA, it sends a request to the NIC, which then uses the specialized hardware to transfer the data directly to the memory of the other system.

Advantages of Remote Direct Memory Access (RDMA):

  • High performance: RDMA provides high performance for data transfer between systems, with low latency and high bandwidth.
  • CPU efficiency: RDMA transfers data directly between systems without involving the CPU, which frees up the system resources for other tasks.
  • Reduced network congestion: RDMA reduces network congestion by enabling direct data transfer between systems, reducing the amount of network traffic.
  • Security: RDMA provides enhanced security by encrypting data as it is transferred between systems.
  • Scalability: RDMA is highly scalable and can support large amounts of data transfer between systems.

Disadvantages of Remote Direct Memory Access (RDMA):

  • Compatibility: RDMA requires specialized hardware and software, which may not be supported by all systems.
  • Cost: RDMA can be expensive, requiring specialized hardware and software, which may not be cost-effective for all organizations.
  • Complexity: RDMA can be complex to set up and manage, requiring specialized knowledge and skills.
  • Limited range: RDMA is typically used for data transfer between systems that are in close proximity, limiting its range of application.
  • Limited protocols: RDMA is only compatible with certain protocols, which may limit its compatibility with other systems.

 Features of RDMA :

  1. Zero copy networking – Data can be sent and received directly between buffers of applications without being copied between network layers.
  2. Reduced CPU involvement – Applications can access data directly from remoter servers without consuming CPU time of remote servers.Also the cache memory of CPU of remote server will not be filled with the accessed content.
  3. Effective Transaction – Data is sent and received in the form of discrete messages instead of streams which eliminates the need of separating messages.

Network protocols supporting RDMA :

  1. InfiniBand (IB) – A protocol supporting RDMA natively from the beginning. As it is a new network technology, it requires NICs(Network Interface Card) and switches which supports this technology.
  2. RDMA Over Converged Ethernet (RoCE) – A network protocol which allows performing RDMA over Ethernet network. This allows using RDMA over standard Ethernet infrastructure (switches).
  3. Internet Wide Area RDMA Protocol (iWARP) – A protocol which allows performing RDMA over TCP. Some features of IB and RoCE aren’t supported in iWARP. This allows using RDMA over standard Ethernet infrastructure (switches).

Applications :

  • Used in industries that require small CPU footprint like cloud computing and many more.
  • Used in industries that require high bandwidth like medical equipment, storage and backup and many others.
  • High-Performance Computing: RDMA is commonly used in high-performance computing (HPC) environments, such as scientific research, financial modeling, and weather forecasting.
  • Big Data: RDMA is used in big data environments to speed up data transfer between servers and storage devices.
  • Video Streaming: RDMA is used in video streaming applications to provide low-latency data transfer and reduce buffering.
  • Cloud Computing: RDMA is used in cloud computing environments to provide high-speed data transfer between virtual machines and physical servers.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads