¡GoConqr estrena diseño! Cuéntanos qué te parece.

Diagrama de flujo

Comunicación de procesos

Paul Bonilla Semestre 7 Ingenieria Español

Contenido del diagrama

  1. La perspectiva de la comunicación

  2. Conceptos básicos de la comunicación

  3. Técnicas de comunicación

  4. Modelos de comunicación

  5. TCP/IP Suite

  6. Direcciones

  7. Sockets

  8. Comportamiento de bloqueo y no bloqueo de sockets

  9. Detección y corrección de errores

  10. Protocolos para aplicaciones específicas

  11. Comunicación con lógica de negocio

  12. Técnicas para facilitar la localización entre componentes

  13. Requerimientos de transparencia para la comunicación

  14. Unidireccional

  15. Petición y respuesta

  16. Bidireccional

  17. Metodologías de direccionamiento

  18. Llamada de procedimiento remoto (RPC)

  19. Invocación de método remoto (RMI)

  20. Unicast

  21. Broadcast

  22. Multicast

  23. Anycast

  24. OSI

  25. TCP/IP

  26. La IP

  27. El TCP

  28. La conexión TCP

  29. El UDP

  30. Comparación TCP y UDP

  31. Escoger entre TCP y UDP

  32. Herárquica vs plana

  33. Capa de enlace

  34. Capa de red

  35. Dirección IP

  36. Dirección IPV4

  37. Dirección IPV6

  38. Traducción entre IP y MAC

  39. Capa de transporte

  40. Puertos conocidos

  41. API

  42. API: UDP

  43. API: TCP

  44. Unión

  45. Bloqueo y no bloqueo

  46. Manejo de no bloqueo

  47. Punto muerto de comunicación

  48. Uno de los dos procesos debe poder recibir un mensaje

  49. El otro debe poder enviar un mensaje

  50. El que envía debe saber la dirección del que recibe

  51. Debe haber un sistema de transmición al que ambos se conecten

  52. Tiene aplicaciones limitadas

  53. Las comunicaciones siempre son mas complejas por:

  54. Los procesos no estan en locaciones conocidas; algunos procesos solo se ejecutan cuando se lo pide; puede que muchos procesos esten involucrados; la comunicación casi siempre es bidireccional; aspectos de la aplicación específica; los sistemas son dinámicos; en la red se pueden perder mensajes

  55. Mecanismo más básico para la comunicación entre una pareja de procesos

  56. Un proceso realiza una petición a otro proceso, este realiza la computación necesaria y devuelve un mensaje con la información al proceso que la pidió

  57. En muchos sistemas se necesita que la información pase de un proceso a otro y viceversa

  58. E-commerce, banco en línea, tienda en línea y juegos multijugador

  59. Solo el proceso al que se le envía la información puede ver lo que se le envió

  60. Un solo mensaje es enviado a todos los procesos

  61. Un mensaje es enviado a un grupo de procesos y el que envía no sabe cuantos procesos recibieron el mensaje

  62. Se puede lograr con el uso del mecanismo broadcast y UDP

  63. Un mensaje es enviado a un solo recipiente de un grupo de procesos

  64. Se puede lograr con UDP

  65. Se puede lograr con TCP

  66. Los procedimientos que toman papel están en diferentes programas

  67. Permite que la localización de los procesos se haga automaticamente

  68. Muy potente para la creación de aplicaciones modulares basadas en componentes

  69. Es la versión orientada a objetos de RPC, pues se invoca a un metodo remoto

  70. Java lo hizo primero con java interfaces

  71. Es necesario porque asi las interfaces del lado del cliente se compilan de manera independiente del servidor

  72. Este modelo consta de 7 capas en donde cada una tiene su función y no le importa las del resto de capas

  73. 1. Física: transmisión de bits por link

  74. 2. Enlace de datos: Comunicación entre dispositivos

  75. 3. Red: Comunicación entre computadoras por envio de paquetes

  76. 4. Transporte: Comunicación entre procesos

  77. 5. Sesión: Gestión del flujo de la comunicación

  78. 6. Presentación: Conversión de datos enre plataformas y formatos

  79. 7. Aplicación: Protocolo para necesidades de aplicaciones

  80. Este modelo consta de 4 capas que comprimen las 7 capas del modelo OSI

  81. 1. Enlace: Transmisión de bits por un medio (100BASE-TX, Ethernet)

  82. 2. Internet: Envío de paquetes (IP, ICMP)

  83. 3. Transporte: Por segmento (TCP, UDP)

  84. 4. Aplicación: Gestión de mensajes y de datos (FTP, NTP, HTTP, SMTP, SSH)

  85. Protocolo de la capa de red

  86. Se utilizan dos versiones: IPV4 e IPV6

  87. Las dos con 32 bits de largo pero con diferentes bits en las direcciones de envio y de destino

  88. IPV4: 32 bits dirección de envío y de destino

  89. IPV6: 128 bits dirección de envío y de destino

  90. Protocolo orientado a la conexión

  91. Es una comunicación unicast

  92. Tiene 6 banderas: URG, ACK, PSH, RST, SYN y FIN

  93. Es preparada con la creación de sockets en cada componente y se usa: escuchar, conectar y aceptar

  94. Primero envía un SYN, del otro lado se envía un ACK y otro SYN y por último del otro lado se vuelve envíar un ACK

  95. Protocolo en el que no se establece una conexión lógica

  96. No es necesario que sea unicast, pues puede ser broadcast

  97. No necesita un saludo de manos como TCP, es de baja latencia y utiliza menos ancho de banda

  98. Protocolos que utilizan UDP: IFTP, DNS, SNMP

  99. TCP: los datos son segmentos, esta orientado a la conexión donde el saludo de mano es necesario, con alta fiabilidad, con control de flujo, con control de congestión, solo soporta unicast, con números de secuencia, con reordenamiento y sin duplicado, con manejo de mensajes, no se mantiene datos en el buffer, y buena eficiencia

  100. UDP: los datos son segmentos, no mantiene una conexión, no es muy fiable, no tiene control de flujo ni de congestión, soporta más comunicación que unicast, no lleva números de secuencia, no se ordenan los mensajes y pueden llegar duplicados, no se manejan mensajes, mantiene solo datos del siguiente pedido en el buffer, y es más eficiente que TCP

  101. Todo depende de las necesidades de la conexión

  102. Si se necesita fiabilidad, llevar un registro de la comunicación y usar un protocolo de más capas, entonces se escoge TCP

  103. Si se necesita comunicación broadcast, menos latencia, menos uso de ancho de banda, transmisión en tiempo real y si la comunicación es unidireccional entonces se escoge UDP

  104. La dirección plana no tiene un estructura ni patrón

  105. La dirección jerárquica tiene una estructura o patrón como un número de teléfono el cual tiene código de área, código internacional y el número en sí

  106. Solo debe identificar los dispositivos físicos por el uso de la dirección MAC

  107. Existen dos versiones debido a que la demanda aumentó de una forma muy rápida (IPV4 e IPV6)

  108. Tiene ua extención de 4 bytes y consta de 4 números decimales

  109. Cada número no puede ser mayor que 254, pues la dirección 255.255.255.255 es la máscara de red

  110. Tiene una extención de 16 bytes y consta de 8 números hexadecimales

  111. El ARP traduce la IP en una dirección MAC

  112. Funciona por medio de puertos

  113. Al enviar algo a una dirección IP se ve el puerto y se puede saber que proceso es el destinatario

  114. 5 Remote Job Entry

    7 Echo

    20 File Transfer Protocol (FTP) data

    21 File Transfer Protocol (FTP) command

    23 Telnet

    25 Simple Mail Transfer Protocol (SMTP)

    53 Domain Name System (DNS)

    69 Trivial File Transfer Protocol (TFTP)

    80 HyperText Transfer Protocol (HTTP)

    88 Kerberos (authentication system)

    110 Post Office Protocol version 3 (POP3)

    111 ONC Remote Procedure Call (SUN RPC)

    115 Simple File Transfer Protocol (SFTP)118 Structured Query Language (SQL) services

    123 Network Time Protocol (NTP)

    264 Border Gateway Multicast Protocol (BGMP), routing

    389 Lightweight Directory Access Protocol (LDAP)

    513 Rlogin (remote access)

    520 Routing Information Protocol (RIP)

    521 Routing Information Protocol Next Generation (RIPng)

    530 Remote Procedure Call (RPC)

    546 Dynamic Host Configuration Protocol v6 Client (DHCPv6)

    547 Dynamic Host Configuration Protocol v6 Server (DHCPv6)

    944 Network File Service (NFS)

    976 Network File Service (NFS) over IPv6

  115. 2483 Oracle database service

    3306 MySQL database system

    3690 Subversion (SVN) version control system

    3702 Web Services Dynamic Discovery (WS-Discovery)

    5353 Multicast DNS (mDNS)

    8080 HTTP (alternate), e.g. when running a webserver as a non-root user

    8332 Bitcoin JSON-RPC server

  116. Librería usada por programadores para usar los protocolos de comunicación TCP y UDP desde alguna aplicación

  117. Para usarla de manera correcta es importante conocer el nivel bajo de las comunicaciones

  118. Existe una secuencia la cual se sigue para usar el protocolo UDP desde la API de Socket

  119. Existe una secuencia la cual se sigue para usar el protocolo TCP desde la API de Socket

  120. Se crea un socket, se mapea el proceso al puerto, se usa el sendto para enviar datos a otro proceso, se usa recvfrom para recibir datos y por último closeocket para cerrar el socket en uso

  121. Se crea un socket, se mapea el proceso al puerto, se escucha, conecta y acepta para preparar una conexión, se usa send para enviar información, recv para recibir información, shutdown para cerrar la conexión y por último, closesocket para cerrar el socket en uso

  122. Es una asociación entre un proceso y un puerto

  123. Es necesario el uso de los puertos porque no se sabe siempre que PID tendra un proceso por lo que la información no le puede llegar directamente

  124. Afecta la forma en la que el sistema operativo trata al socket que algún proceso quiera usar pero que no va a poder terminar inmediatamente

  125. Si no se bloquea pueden darse errores de que no se terminó lo que se esperaba

  126. Si se obtiene un error de codigo WOULD_BLOCK se prepara un timer para que la aplicación lo vuelva a intentar despues de un tiempo y que pueda completar todos sus procesos

  127. Ocurre cuando un grupo de procesos se queda esperando recursos que estan siendo utilizados por otros procesos y no consiguen hacer ningún progreso porque nunca se sueltan los recursos necesarios

  128. Los protocolos comunicación esta diseñados para poder detectar errores en la transmisión

  129. Para la corrección de errores son necesarios códigos FEC los cuales son importantes cuando los mensajes son de mucho valor

  130. En estos es necesario considerar el número de bits de error que el código podrá corregir

  131. Para poder corregirlos es necesario agregar bits los cuales son redundantes

  132. Es necesario cuando una aplicación se comunica directamente en la capa de transporte

  133. Este no es lo mismo que un protocolo de capas de aplicación, pues estos son hechos para protocolos estándares de comunicación

  134. Este se construirá en las facilidades brindadas por el protocolo de comunicación subyasente

  135. Cuando se desarrolla una aplicación distribuida es necesario integrar las comunicaciones con la lógica del negocio

  136. Esto aumenta la complejidad al desarrollo pero no se debe comprometer la calidad e la lógica del negocio diseñada e implementada

  137. Se suelen desarrollar las dos partes de forma separada hasta que esten en una forma más madura y ahí juntarlas

  138. El que localiza suele ser el cliente, pues es el que envía las peticiones al servidor y este contesta

  139. Para que el componente activo encuentre al pasivo se suelen usar algunas técnicas

  140. Propaganda de servicio: se envia un mensaje broadcast informando que ese servicio está ahí

  141. Broadcast local: se envía un mensaje broadcast preguntando donde esta el servicio

  142. Programación dura: se evita porque solo se preselecciona una direccon IP

  143. Preguntar al usuario: se le pide al usuario ingresar los detalles de la dirección del servidor

  144. Encontrar archivo: se lee un archivo donde se encuentra la información del servidor

  145. Servicio de nombre: mantiene en una base de datos los servicios y sus locaciones

  146. Middleware: colección de servicios entre software y plataformas para proporcionar transparencia

  147. Muchas formas de transparencia son necesarias al hablar desde el punto de vista de la comunicación

  148. Transparencia de acceso: no debe ser visible para la aplicación el lazo entre la red y el dispositivo

  149. Transparencia de localización: los recursos deben ser localizados de manera automática

  150. Transparencia de red: se trata de esconder las características físicas de la red

  151. Transparencia de distribución: se debe esconder la separación entre componentes

  152. Transparencia de fallos: si los datos no llegan, es necesario que automáticamente sean reenviados

  153. Transparencia de escala: debe ser eficiente en términos del uso de recursos de la red

  154. Glosario

    Protocolo: Reglas para un sistema de comunicación particular.

    Unicast: Un mensaje es enviado a un solo proceso.

    Broadcast: Un mensaje es enviado a todos los procesos.

    Multicast: Un mensaje es enviado a un grupo de procesos.

    Anycast: Un mensaje es enviado a un solo proceso de un grupo de procesos.

    RPC: Llamada de procesamiento remoto.

    RMI: Invocación de método remoto.

    SYN: Mensaje de solicitud de sincronización.

    ACK: Confirmación de que se recibió un SYN.

    IFTP: Protocolo de transferencia de archivos triviales.

    DNS: Sistema de nombre de dominio.

    SNMP: Protocolo de manejo de red simple.

    ARP: Protocolo de resolución de direcciones.

    API: Interfaz de programación de aplicación.

  155. Paul Alejandro Bonilla Cevallos

  156. Referencias

    Anthony, R. (2016). Systems Programming: Designing and Developing Distributed Applica ons. Morgan Kaufmann Publishers. Capítulo 3 (pág 108 – pág 201)

    Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur. (2008). Procesos. Recuperado de http://cs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf

    Rosales, F. (2012). SISTEMAS OPERATIVOS SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS. Recuperado de Universidad Politecnica de España https://www.cartagena99.com/recursos/alumnos/apuntes/sincronizacion-y-comunicacion.pdf

Información

Descripción
Ingenieria Semestre 7 Diagrama sobre Comunicación de procesos, creado por Paul Bonilla el 10/10/2020.
Creado por
Paul Bonilla · oct 2020
Actualizado
11 oct 2020
Visitas
1
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?