SlideShare una empresa de Scribd logo
RPC  Remote Procedure Call Llamada a Procedimiento Remoto Daniel Cruz Chávez
RPC Introducción Permite ejecutar código en una maquina remota sin importar el medio de comunicación Especificado en el RFC 1831 Versión 2 Se basa en el modelo Cliente-Servidor
Llamada y retorno convencional
RPC Características Depende de la red y del estado del servidor, en consecuencia el manejo de errores debe considerar esta característica Una RPC opera en forma mas lenta que una llamada a un procedimiento local Requiere de autenticación Puede ser implementado sobre UDP o TCP El espacio de memoria del cliente y servidor son independientes
RPC Características La transferencia de datos en una RPC puede darse entre maquinas de diferentes arquitecturas y sistemas operativos XDR proporciona el estándar de codificación de datos (por ejemplo la longitud mínima de cualquier campo ha de ser de 32 bits)
Modelo RPC
RPC Procedimiento Cuando un cliente realiza una RPC, en primer lugar llama a una función denominada “stub” generada por la RPC Esta función empaqueta las entradas en un mensaje de red que enviá al servidor El mensaje llega al servidor “stub”, que llama al procedimiento pasándole los parámetros Cuando se ha ejecutado el procedimiento, el servidor “stub” empaqueta los resultados en un mensaje de red que enviá al cliente El cliente “stub” extrae los resultados y se los devuelve a la aplicación
Ejemplo de una llamada a procedimiento local Llamada a una función que imprime un mensaje en la consola  #include <stdio.h> int main(argc, argv) ‏ int argc; char *argv[]; { char *message; message = argv[1];   /* llamada a procedimiento */ printmessage(message)    return 0; } /* Procedimiento que  imprime un mensaje */ printmessage(msg) ‏ char *msg; { printf(&quot;%s\n&quot;, msg); return(1); }
Ejemplo de llamada a procedimiento remoto #include <stdio.h> #include &quot;msg.h&quot;  /* archivo de definición RPC */ main(argc, argv) ‏ int argc; char *argv[]; { CLIENT *clnt; int *result; char *server; char *message; if (argc != 3) { fprintf(stderr,  &quot;uso: %s host mensaje\n&quot;,   argv[0]); return 1; } server = argv[1]; message = argv[2]; /* crea un manejador del procedimiento remoto */ clnt = clnt_create(server, /*servidor*/ MESSAGEPROG, /*N° Prog*/ PRINTMESSAGEVERS, /*N° Ver*/ ” udp” /*Transp*/ ); if (clnt == (CLIENT *)NULL) { /* Si no hay comunicacion    con el servidor, se imprime    mensaje de error */ clnt_pcreateerror(server); return 1; }
Ejemplo de una Llamada a procedimiento remoto /*  Llamada a procedimiento remoto  */ result = printmessage_1(&message, clnt); if (result == (int *)NULL) { /* Si hay un error mientras se llama al procedimiento remoto */ clnt_perror(clnt, server); return 1; } if (*result == 0) {   /* Si el servidor tuvo problema para imprimir nuestro mensaje */   fprintf(stderr,&quot;%s: no se pudo imprimir su mensaje \n&quot;,argv[0]);   return 1; } /* El mensaje fue impreso en la consola del servidor */ printf(&quot;Mensaje enviado a %s\n&quot;, server); clnt_destroy( clnt ); return 0; }
Procedimiento remoto #include <stdio.h> #include &quot;msg.h&quot;  int * printmessage_1(msg, req) ‏ char **msg; struct svc_req req;  /* detalles de la llamada */  { static int result;  result = 0; printf(&quot;%s\n&quot;, *msg); result = 1; return (&result); }
Formato RPC Se identifica univocamente al procedimiento a ejecutar (programa, versión, procedimiento)* Credenciales y verificador son empleados para la autentificación del que llama
RPC Autentificación En RPC existe la posibilidad de elegir entre varios protocolos de autentificación Nula Unix  DES Además del identificador de usuario, se cifra una llave conocida solo por el cliente y servidor (intercambio por Diffie-Hellman) ‏
PortMapper Es un servicio que asocia un número de programa y versión de RPC a un puerto UDP o TCP Cada vez que se arranca uno de los servicios RPC en un servidor, se registra en el servicio “PortMapper” de dicho “host” asociándole un determinado valor de puerto a dicho servicio Un cliente RPC contacta con el servicio “PortMapper” para obtener el valor del puerto para determinado RPC. Después envía el RPC a dicho puerto
PortMapper

Más contenido relacionado

PPTX
Modelo de 5 estados para sistemas operativos
PDF
Electrónica digital: Apuntes de VHDL
PPTX
Electrónica digital: maquinas de estado con VHDL
PDF
Reto resuelto 7.5.2 PacketTracer
PPTX
Estructura de lenguaje ensamblador
DOCX
Demultiplexer with vhdl code
PPTX
Ciclo de instrucciones CPU
PDF
Lema de bombeo
Modelo de 5 estados para sistemas operativos
Electrónica digital: Apuntes de VHDL
Electrónica digital: maquinas de estado con VHDL
Reto resuelto 7.5.2 PacketTracer
Estructura de lenguaje ensamblador
Demultiplexer with vhdl code
Ciclo de instrucciones CPU
Lema de bombeo

La actualidad más candente (20)

PDF
Manual de operación Asterisk en windows
PPT
Propiedades De La Convolucion
PPTX
Algoritmo de planificación srt
PPTX
Basic ip traffic management with access control lists
PDF
Laboratorio Computación Gráfica - Práctica 05
DOCX
Apuntes generación de codigo intermedio
PPT
Operaciones entre lenguajes
PDF
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
PPT
Direccionamiento ip
PDF
Configuracion De Eigrp Y Loopback
PDF
Stack Doble IPv4-IPv6
PDF
automatas finitos
PDF
Protocolo de Enrutamiento RIP (Versiones 1 y 2)
PDF
Transiciones de Procesos
DOCX
Familia de procesadores ARM
PPT
Lecture 14 - Scope Rules
PDF
Creación de tablas y relaciones en mysql workbench
DOCX
Tutorial voz ip packet tracer
PPTX
Procesamiento segmentado
PDF
Microcontroladores pic basic_-
Manual de operación Asterisk en windows
Propiedades De La Convolucion
Algoritmo de planificación srt
Basic ip traffic management with access control lists
Laboratorio Computación Gráfica - Práctica 05
Apuntes generación de codigo intermedio
Operaciones entre lenguajes
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
Direccionamiento ip
Configuracion De Eigrp Y Loopback
Stack Doble IPv4-IPv6
automatas finitos
Protocolo de Enrutamiento RIP (Versiones 1 y 2)
Transiciones de Procesos
Familia de procesadores ARM
Lecture 14 - Scope Rules
Creación de tablas y relaciones en mysql workbench
Tutorial voz ip packet tracer
Procesamiento segmentado
Microcontroladores pic basic_-
Publicidad

Destacado (11)

PPTX
PPT
Presentacion rpc
PDF
Sun RPC (Remote Procedure Call)
PDF
Arquitecturas Distribuidas. (Edo Ostertag)
PDF
9.diseño de la arquitectura
PPTX
Introduction to C++ Remote Procedure Call (RPC)
PPTX
RPC: Remote procedure call
PDF
Capa 2 modelo osi enlace de datos
PDF
Ejercicios resueltos
PPT
El grupo y sus características
PDF
State of the Word 2011
Presentacion rpc
Sun RPC (Remote Procedure Call)
Arquitecturas Distribuidas. (Edo Ostertag)
9.diseño de la arquitectura
Introduction to C++ Remote Procedure Call (RPC)
RPC: Remote procedure call
Capa 2 modelo osi enlace de datos
Ejercicios resueltos
El grupo y sus características
State of the Word 2011
Publicidad

Similar a Redes Rpc (20)

PPT
RPC - LLAMADAS REMOTAS
ODT
Unidad 2
 
ODT
Unidad 2
 
PDF
analis de protocolos de capas modelo cliente servidor y aspectos de diseño
PDF
Unidad II
PPT
Conexion dinamica
PPTX
Remote Procedure Call (RPC)
PPTX
LLAMADA A UN PROCEDIMIENTO REMOTO
PPTX
SEMANA 6.pptx
PDF
PPTX
Exposicion
PPTX
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
DOCX
El servidor
PDF
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
PDF
Lw2010 Pedro Valera
PPSX
Capa de Transporte - Redes de Computadoras
RPC - LLAMADAS REMOTAS
Unidad 2
 
Unidad 2
 
analis de protocolos de capas modelo cliente servidor y aspectos de diseño
Unidad II
Conexion dinamica
Remote Procedure Call (RPC)
LLAMADA A UN PROCEDIMIENTO REMOTO
SEMANA 6.pptx
Exposicion
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
El servidor
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 Pedro Valera
Capa de Transporte - Redes de Computadoras

Más de Daniel Cruz (9)

PPTX
Desarrollo de aplicaciones en la nube
PDF
Programación Lógica con PROLOG
PPTX
Aprendiendo SQL 2
PDF
Proyecto ipython - Oracle - Excel
PPTX
Chipkit comunicacion puerto serie
PPTX
Arduino entorno desarrollo
PDF
Curso básico de introducción
PDF
Manejo Roles Linux
PPT
Sq Lv1a
Desarrollo de aplicaciones en la nube
Programación Lógica con PROLOG
Aprendiendo SQL 2
Proyecto ipython - Oracle - Excel
Chipkit comunicacion puerto serie
Arduino entorno desarrollo
Curso básico de introducción
Manejo Roles Linux
Sq Lv1a

Último (20)

PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
clase auditoria informatica 2025.........
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPT
Que son las redes de computadores y sus partes
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Maste clas de estructura metálica y arquitectura
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Presentación PASANTIAS AuditorioOO..pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Influencia-del-uso-de-redes-sociales.pdf
clase auditoria informatica 2025.........
REDES INFORMATICAS REDES INFORMATICAS.pptx
Calidad desde el Docente y la mejora continua .pdf
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Que son las redes de computadores y sus partes
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Power Point Nicolás Carrasco (disertación Roblox).pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Maste clas de estructura metálica y arquitectura
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Diapositiva proyecto de vida, materia catedra
Sesion 1 de microsoft power point - Clase 1
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx

Redes Rpc

  • 1. RPC Remote Procedure Call Llamada a Procedimiento Remoto Daniel Cruz Chávez
  • 2. RPC Introducción Permite ejecutar código en una maquina remota sin importar el medio de comunicación Especificado en el RFC 1831 Versión 2 Se basa en el modelo Cliente-Servidor
  • 3. Llamada y retorno convencional
  • 4. RPC Características Depende de la red y del estado del servidor, en consecuencia el manejo de errores debe considerar esta característica Una RPC opera en forma mas lenta que una llamada a un procedimiento local Requiere de autenticación Puede ser implementado sobre UDP o TCP El espacio de memoria del cliente y servidor son independientes
  • 5. RPC Características La transferencia de datos en una RPC puede darse entre maquinas de diferentes arquitecturas y sistemas operativos XDR proporciona el estándar de codificación de datos (por ejemplo la longitud mínima de cualquier campo ha de ser de 32 bits)
  • 7. RPC Procedimiento Cuando un cliente realiza una RPC, en primer lugar llama a una función denominada “stub” generada por la RPC Esta función empaqueta las entradas en un mensaje de red que enviá al servidor El mensaje llega al servidor “stub”, que llama al procedimiento pasándole los parámetros Cuando se ha ejecutado el procedimiento, el servidor “stub” empaqueta los resultados en un mensaje de red que enviá al cliente El cliente “stub” extrae los resultados y se los devuelve a la aplicación
  • 8. Ejemplo de una llamada a procedimiento local Llamada a una función que imprime un mensaje en la consola #include <stdio.h> int main(argc, argv) ‏ int argc; char *argv[]; { char *message; message = argv[1]; /* llamada a procedimiento */ printmessage(message) return 0; } /* Procedimiento que imprime un mensaje */ printmessage(msg) ‏ char *msg; { printf(&quot;%s\n&quot;, msg); return(1); }
  • 9. Ejemplo de llamada a procedimiento remoto #include <stdio.h> #include &quot;msg.h&quot; /* archivo de definición RPC */ main(argc, argv) ‏ int argc; char *argv[]; { CLIENT *clnt; int *result; char *server; char *message; if (argc != 3) { fprintf(stderr, &quot;uso: %s host mensaje\n&quot;, argv[0]); return 1; } server = argv[1]; message = argv[2]; /* crea un manejador del procedimiento remoto */ clnt = clnt_create(server, /*servidor*/ MESSAGEPROG, /*N° Prog*/ PRINTMESSAGEVERS, /*N° Ver*/ ” udp” /*Transp*/ ); if (clnt == (CLIENT *)NULL) { /* Si no hay comunicacion con el servidor, se imprime mensaje de error */ clnt_pcreateerror(server); return 1; }
  • 10. Ejemplo de una Llamada a procedimiento remoto /* Llamada a procedimiento remoto */ result = printmessage_1(&message, clnt); if (result == (int *)NULL) { /* Si hay un error mientras se llama al procedimiento remoto */ clnt_perror(clnt, server); return 1; } if (*result == 0) { /* Si el servidor tuvo problema para imprimir nuestro mensaje */ fprintf(stderr,&quot;%s: no se pudo imprimir su mensaje \n&quot;,argv[0]); return 1; } /* El mensaje fue impreso en la consola del servidor */ printf(&quot;Mensaje enviado a %s\n&quot;, server); clnt_destroy( clnt ); return 0; }
  • 11. Procedimiento remoto #include <stdio.h> #include &quot;msg.h&quot; int * printmessage_1(msg, req) ‏ char **msg; struct svc_req req; /* detalles de la llamada */ { static int result; result = 0; printf(&quot;%s\n&quot;, *msg); result = 1; return (&result); }
  • 12. Formato RPC Se identifica univocamente al procedimiento a ejecutar (programa, versión, procedimiento)* Credenciales y verificador son empleados para la autentificación del que llama
  • 13. RPC Autentificación En RPC existe la posibilidad de elegir entre varios protocolos de autentificación Nula Unix DES Además del identificador de usuario, se cifra una llave conocida solo por el cliente y servidor (intercambio por Diffie-Hellman) ‏
  • 14. PortMapper Es un servicio que asocia un número de programa y versión de RPC a un puerto UDP o TCP Cada vez que se arranca uno de los servicios RPC en un servidor, se registra en el servicio “PortMapper” de dicho “host” asociándole un determinado valor de puerto a dicho servicio Un cliente RPC contacta con el servicio “PortMapper” para obtener el valor del puerto para determinado RPC. Después envía el RPC a dicho puerto