Llamada a procedimiento remoto

Llamada a procedimiento remoto (RPC) es un protocolo que proporciona el paradigma de comunicaciones de alto nivel utilizado en el sistema operativo. RPC presupone la existencia de un protocolo de transporte de bajo nivel, como Transmission Control Protocol / Internet Protocol (TCP/IP) o User Datagram Protocol (UDP), para transportar los datos del mensaje entre los programas que se comunican. RPC implementa un sistema lógico de comunicaciones de cliente a servidor diseñado específicamente para el soporte de aplicaciones de red.

Este capítulo proporciona la siguiente información sobre la programación de RPC:

El protocolo RPC se basa en el protocolo eXternal Data Representation (XDR), que estandariza la representación de datos en las comunicaciones remotas. XDR convierte los parámetros y resultados de cada servicio RPC proporcionado.

El protocolo RPC permite a los usuarios trabajar con procedimientos remotos como si los procedimientos fueran locales. Las llamadas de procedimiento remoto se definen a través de rutinas contenidas en el protocolo RPC. Cada mensaje de llamada coincide con un mensaje de respuesta. El protocolo RPC es un protocolo de paso de mensajes que implementa otros protocolos no RPC como, por ejemplo, el proceso por lotes y la difusión de llamadas remotas. El protocolo RPC también admite procedimientos de devolución de llamada y la subrutina select en el lado del servidor.

Un cliente es un sistema o proceso que accede a los servicios o recursos de otro proceso o sistema de la red. Un servidor es un sistema que proporciona servicios y recursos y que implementa servicios de red. Cada servicio de red es una colección de programas remotos. Un programa remoto implementa procedimientos remotos. Los procedimientos, sus parámetros y los resultados están todos documentados en el protocolo del programa específico.

RPC proporciona un proceso de autenticación que identifica el servidor y el cliente entre sí. RPC incluye una ranura para los parámetros de autenticación en cada llamada de procedimiento remoto para que el llamante pueda identificarse a sí mismo en el servidor. El paquete de cliente genera y devuelve parámetros de autenticación. RPC admite varios tipos de autenticación, como los sistemas UNIX y Data Encryption Standard (DES).

En RPC, cada servidor proporciona un programa que es un conjunto de procedimientos de servicio remoto. La combinación de una dirección de sistema principal, número de programa y número de procedimiento especifica un procedimiento de servicio remoto. En el modelo RPC, el cliente realiza una llamada de procedimiento para enviar un paquete de datos al servidor. Cuando llega el paquete, el servidor llama a una rutina de asignación, realiza cualquier servicio que se solicite y envía una respuesta al cliente. A continuación, la llamada de procedimiento vuelve al cliente.

La interfaz RPC se utiliza generalmente para comunicarse entre procesos en diferentes estaciones de trabajo de una red. Sin embargo, RPC funciona igual de bien para la comunicación entre diferentes procesos en la misma estación de trabajo.

El programa de correlacionador de puertos correlaciona los números de versión y programa RPC con un número de puerto específico del transporte. El programa de correlacionador de puertos hace posible el enlace dinámico de programas remotos.

Para escribir aplicaciones de red utilizando RPC, los programadores necesitan un conocimiento de trabajo de la teoría de red. Para la mayoría de las aplicaciones, también resulta útil comprender los mecanismos RPC normalmente ocultos por el compilador de protocolos del mandato rpcgen . Sin embargo, el uso del mandato rpcgen evita la necesidad de comprender los detalles de RPC.