SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
1
Sistemas Distribuidos
Comunicación interprocesos
René Guamán-Quinche
Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables
Carrera de Ingeniería en Sistemas/Computación
Noviembre, 2020
Loja, Ecuador
3
1. Introducción
2. El api de los protocolos de internet
3. Representación externa de datos y serialización
4. Comunicación multicast
5. Virtualización de redes
6. Posix
Contenido
4
Introduction
Los procesos dentro de los sistemas
distribuidos se ejecutan en los diferentes
recursos de procesamiento disponible,
muchas veces repartidos en la red. La
concecuencia de esto es que los procesos
deben tener un medio para que se
puedan comunicar
Estos métodos incluyen: Socket, paso
de mensajes, redes superpuestas
(overlay networks) y soporte multicast
5
The API for the internet protocols
El paso de mensajes entre procesos puede ser soportado por dos operaciones de
comunicación de mensajes: sent y receive (enviar o recibir)
6
The API for the internet protocols
Comunicación síncrona o
asíncrona: La operación enviar
puede bloquear el proceso o el hilo
de ejecución a la espera de su
correspondiente operación recibir
(síncrona). O se puede enviar el
mensaje y seguir la ejecución una
vez se copia la información al buffer
(asíncrona)
Características entre la comunicación entre
procesos Bloqueante No Bloqueante
7
The API for the internet protocols
Destino del mensaje: Los mensajes se envían a pares <dirección, puerto>.
Un puerto es el destino del mensaje dentro del computador
Características entre la comunicación entre procesos
En informática,
un puerto es una interfaz a
través de la cual se pueden
enviar y recibir los
diferentes tipos de datos.
8
The API for the internet protocols
Destino del mensaje: Los mensajes se envían a pares <dirección, puerto>.
Un puerto es el destino del mensaje dentro del computador
Características entre la comunicación entre procesos
16 bits, existen 65536
puertos
0 - 65535
9
The API for the internet protocols
Orden: Algunas aplicaciones requieren recibir los mensajes en el orden en que se
enviaron
Características entre la comunicación entre procesos
10
The API for the internet protocols
Modelo abstracto de comunicación de datos entre procesos
La comunicación entre procesos consiste en transmitir información entre un
socket en un proceso y un socket en otro proceso
Para recibir el mensaje, el socket debe tener asociado el puerto y la dirección de
internet del computador en el cuál se está ejecutando el proceso
Socket
11
The API for the internet protocols
Proporciona comunicación entre procesos que ejecutan en máquinas distintas
Diseño independiente del protocolo de comunicación
Un socket es un descriptor de un punto final de comunicación (dirección IP y
puerto)
Abstracción que:

Representa un extremo de una comunicación bidireccional con una dirección
asociada

Ofrece interfaz de acceso a los servicios de red en el nivel de transporte
(Protocolo TCP y UDP)
Socket
12
The API for the internet protocols
Un dominio representa una familia de protocolos
Un socket está asociado a un dominio desde su creación
Sólo se pueden comunicar sockets del mismo dominio
Los servicios de sockets son independientes del dominio
Socket
13
The API for the internet protocols
Socket
14
The API for the internet protocols
Socket Stream
Protocolo TCP

Flujo de datos bidireccional

Orientado a conexión

Debe establecerse una conexión extremo-a-
extremo antes del envío y recepción de datos

Proporcionan fiabilidad

Paquetes ordenados por secuencia, sin
duplicación de paquetes, libre de errores

Ejemplos:

HTTP, Telnet, FTP, SMTP
Protocolo UDP

Flujo de datos bidireccional

No orientado a conexión

No se establece/mantiene una conexión entre los
procesos que comunican

Longitud máxima de un datagrama (datos y
cabeceras) es 64 KB

Mantiene separación entre paquetes

No proporcionan fiabilidad

No realiza la recuperación de errores

Paquetes desordenados, duplicados, pérdidas

Ejemplos:

DNS
Socket Datagram
15
The API for the internet protocols
El Datagram se envía del proceso emisor al proceso receptor sin confirmación ni
reintentos
Si un fallo ocurre, el mensaje podría no llegar
Problemas

Tamaño del mensaje es limitado – 216
byte – si excede se debe dividir el paquete

Bloqueos

Se acaba el tiempo de espera (timeout)

Recibe de cualquiera: operación de recepción no especifica el origen del
mensaje
UDP
16
The API for the internet protocols
Fallas de Omisión: Los mensajes no podrían llegar por falta de espacio en el
buffer de origen y destino
Orden: Los mensajes UDP no necesariamente llegan en el orden en que se
enviaron
UDP - Fallas
17
The API for the internet protocols
Uso: para algunas aplicaciones, es aceptable usar un servicio que propenso a
fallas por omisiones ocasionales (DNS o VoIP)
No sufre de los costes de rendimiento que podría traer el tener que garantizar la
entrega de mensaje, hay tres causas para estos costes:

Necesidad de almacenar información del estado del origen o del destino

Transmisión de mensajes extra

Latencia para el emisor
UDP
18
The API for the internet protocols
Hay dos clases en Java que proveen la funcionalidad de UDP
DatagramPacket: provee un constructor que hace una instancia de un objeto de
la siguiente forma
DatagramSocket: provee el soporte para sockets que permiten recibir y enviar
datagram UDP
UDP
19
The API for the internet protocols
Modelo de comunicación con sockets datagrama
20
The API for the internet protocols
getData() : para obtener el mensaje contenido en el datagrama.
getAddress() : para obtener la dirección IP.
getPort(): para obtener el puerto.
DatagramSocket:
DatagramSocket(): constructor sin argumentos que permite que el sistema elija un
puerto entre los que estén libres y selecciona una de las direcciones locales.
DatagramSocket(int port): constructor que toma un número de puerto como
argumento, apropiado para los procesos que necesitan un número de puerto
(servicios).
DatagramSocket(int port, InetAddress laddr): constructor que toma como
argumentos el número de puerto y una determinada dirección local.
UDP
21
The API for the internet protocols
La clase DatagramSocket proporciona varios métodos:
send(DatagramPacket p) y receive(DatagramPacket p): sirven para transmitir
datagramas entre un par de conectores. contiene el mensaje y el destino. El
argumento de receive es un DatagramPacket vacío en el que colocar el mensaje, su
longitud y su origen.
setSoTimeout(int timeout): este método permite establecer un tiempo de espera
límite. Cuando se fija un límite, el método receive se bloquea durante el tiempo
fijado y después lanza una excepción InterruptedIOException
connect(InetAddress address, int port): este método se utiliza para conectarse a
un puerto remoto y a una dirección Internet concretos, en cuyo caso el conector sólo
podrá enviar y recibir mensajes de esa dirección.
UDP
22
The API for the internet protocols
UDP
23
The API for the internet protocols
UDP
24
The API for the internet protocols
UDP
25
The API for the internet protocols
El API provee una abstracción de un flujo de bytes por el cual la información es
escrita y leída. La abstracción esconde las siguientes características de la red:
Tamaño del mensaje
Mensajes perdidos: implementa un esquema de confirmación: emisor recibe un
msj llegó a su destino, si no se renvia el msj
Control de Flujo: controla la velocidad que se envia y reciba
Ordenamiento y duplicación de mensajes: identificadores de cada paquete
Destinatirio(s) del mensaje: conección donde se envía
TCP
26
The API for the internet protocols
Problemas:
No hay acuerdo en la información enviada en el flujo de datos
Bloqueo (control de flujo)
Hilos (o falta de soporte para estos)
Uso
 Http. Ftp, Telnet, Smtp
TCP
27
The API for the internet protocols
Fallos: en un red defectuosa, TCP puede presentar :
El proceso usando la conexión no puede distinguir entre una falla de red o una
falla de proceso del otro lado de la conexión
Los procesos no pueden saber si los mensajes que han enviado recientemente se
recibieron o no
TCP
28
The API for the internet protocols
Java ofrece dos clases para dar soporte a la comunicación por TCP
ServerSocket: la usan los servidores para crear una conexión que escucha en un
puerto determinado
Socket: Se necesita proveer la información de la dirección y puerto y se encarga
de conectarse con el socket
TCP
29
The API for the internet protocols
Socket: Stream y Datagramas
30
The API for the internet protocols
Socket: Direcciones

Cada socket debe tener asignada una dirección única

Dirección de host (32 bits) + puerto (16 bits) + protocolo

Las direcciones se usan para:

Asignar una dirección local a un socket (bind)

Especificar una dirección remota (connect o sendto)

Las direcciones son dependientes del dominio
31
The API for the internet protocols
Socket: Puertos
32
The API for the internet protocols
Socket: Puertos
33
The API for the internet protocols
Socket: Puertos
34
The API for the internet protocols
Socket: Puertos
35
The API for the internet protocols
Socket: Puertos
36
The API for the internet protocols
Socket: Puertos
37
The API for the internet protocols
Socket: Puertos

Un puerto identifica un destino en un computador

Los puertos se asocian a procesos,

permiten que la transmisión se dirija a un proceso específico en el computador
destino

Un puerto tiene un único receptor y múltiples emisores (excepto multicast)

Toda aplicación que desee enviar y recibir datos debe abrir un puerto
38
The API for the internet protocols
Socket: Puertos

Número entero de 16 bits

216
puertos en una máquina ~ 65536 puertos posibles

Reservados para aplicaciones de Internet: 0-1023 (también llamados well-known
puertos)

Puertos entre 1024 y 49151 son puertos registrados para ser usados por los
servicios

Puertos por encima de 65535 para uso privado
39
The API for the internet protocols
Socket: Encapsulación de un paquete TCP
40
The API for the internet protocols
Modelo de comunicación con sockets stream
41
The API for the internet protocols
Api de java para las direcciones de internet:
Como paquetes enviados por UDP y TCP, se envían a direcciónes de internet.
Java provee la clase InetAddress
No hay necesidad de espeficiar directamente la dirección IP, se puede hacer
referencia a un computador con su nombre DNS
Socket
42
The API for the internet protocols
Socket
43
The API for the internet protocols
Socket
44
Posix
Sujetos a proceso de estandarización dentro de POSIX (POSIX 1003.1g)
Socket
45
Cŕeditos
• Transparencias basadas por:
• Coulouris Dollimore, Distributed Systems: Concepts and Design
https://ce.guilan.ac.ir/images/other/soft/distribdystems.pdf
• García-Carballeira F., Tema 3 Comunicación y sincronización entre
procesos
http://ocw.uc3m.es/ingenieria-informatica/sistemas-distribuidos-2013/
Tema3_ComunicacionYsincronizacion.pdf/view
• Sanabria, John, Sistemas Distribuidos – Hilos – Prácticas,
https://www.youtube.com/playlist?list=PLNqsgMwXL3mFmd8X8Fg
vZ_6ljjzucIDbN
Networking académico:
Correo electrónico: rguaman@unl.edu.ec
Twitter: @rene5254
SlideShare: https://es.slideshare.net/rene5254
46
Gracias

Más contenido relacionado

La actualidad más candente

Capa de transporte
Capa de transporteCapa de transporte
Capa de transportelaura1352
 
Tcp Ip
Tcp IpTcp Ip
Tcp Ipbetzy
 
Router y su funcionamiento
Router y su funcionamientoRouter y su funcionamiento
Router y su funcionamientoAlejandro Murcia
 
Configuración de servicios DNS DHCP WEBSERVER Y EMAIL en packet tracer.
Configuración de servicios DNS DHCP WEBSERVER Y EMAIL en packet tracer.Configuración de servicios DNS DHCP WEBSERVER Y EMAIL en packet tracer.
Configuración de servicios DNS DHCP WEBSERVER Y EMAIL en packet tracer.Anthony Torres Bastidas
 
X.25 y frame relay
X.25 y frame relayX.25 y frame relay
X.25 y frame relayJLC1988
 
Presentacion xdsl
Presentacion xdslPresentacion xdsl
Presentacion xdsljazovi
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionEduardo J Onofre
 
Algoritmos de enrutamiento
Algoritmos de enrutamientoAlgoritmos de enrutamiento
Algoritmos de enrutamientoJavier Peinado I
 
Protocolos de la capa de red
Protocolos de la capa de redProtocolos de la capa de red
Protocolos de la capa de redEduardo J Onofre
 

La actualidad más candente (20)

Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Frame Relay
Frame RelayFrame Relay
Frame Relay
 
Tcp Ip
Tcp IpTcp Ip
Tcp Ip
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Router y su funcionamiento
Router y su funcionamientoRouter y su funcionamiento
Router y su funcionamiento
 
Configuración de servicios DNS DHCP WEBSERVER Y EMAIL en packet tracer.
Configuración de servicios DNS DHCP WEBSERVER Y EMAIL en packet tracer.Configuración de servicios DNS DHCP WEBSERVER Y EMAIL en packet tracer.
Configuración de servicios DNS DHCP WEBSERVER Y EMAIL en packet tracer.
 
Protocolo arp
Protocolo arpProtocolo arp
Protocolo arp
 
Etherchannel STP
Etherchannel STPEtherchannel STP
Etherchannel STP
 
Protocolo de capa 3
Protocolo de capa 3Protocolo de capa 3
Protocolo de capa 3
 
Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
Protocolo de capa 7
Protocolo de capa 7Protocolo de capa 7
Protocolo de capa 7
 
X.25 y frame relay
X.25 y frame relayX.25 y frame relay
X.25 y frame relay
 
Presentacion xdsl
Presentacion xdslPresentacion xdsl
Presentacion xdsl
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacion
 
Algoritmos de enrutamiento
Algoritmos de enrutamientoAlgoritmos de enrutamiento
Algoritmos de enrutamiento
 
replicacion heterogenea.pdf
replicacion heterogenea.pdfreplicacion heterogenea.pdf
replicacion heterogenea.pdf
 
Protocolo de capa 4
Protocolo de capa 4Protocolo de capa 4
Protocolo de capa 4
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Protocolos de la capa de red
Protocolos de la capa de redProtocolos de la capa de red
Protocolos de la capa de red
 

Similar a Comunicacion intra procesos con socket

Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesosPablo Hurtado
 
Ul rc_cap7_el nivel de transporte en internet_
 Ul rc_cap7_el nivel de transporte en internet_ Ul rc_cap7_el nivel de transporte en internet_
Ul rc_cap7_el nivel de transporte en internet_jcbp_peru
 
Ul rc_cap7_el nivel de transporte en internet_
 Ul rc_cap7_el nivel de transporte en internet_ Ul rc_cap7_el nivel de transporte en internet_
Ul rc_cap7_el nivel de transporte en internet_jcbp_peru
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udpgonsu90
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udpgonsu90
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos iiMiguel Hernandez
 
Protocolos
ProtocolosProtocolos
Protocolosmafa1929
 
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)Belen Toledo
 
Protocolos y ejemplos
Protocolos y ejemplosProtocolos y ejemplos
Protocolos y ejemploselenainforb
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosStalin Jara
 
Protocolos del modelo osi
Protocolos del modelo osiProtocolos del modelo osi
Protocolos del modelo osijavi_ant16
 
Protocolos del modelo osi
Protocolos del modelo osiProtocolos del modelo osi
Protocolos del modelo osijavi_ant16
 

Similar a Comunicacion intra procesos con socket (20)

Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesos
 
Networking
NetworkingNetworking
Networking
 
Ul rc_cap7_el nivel de transporte en internet_
 Ul rc_cap7_el nivel de transporte en internet_ Ul rc_cap7_el nivel de transporte en internet_
Ul rc_cap7_el nivel de transporte en internet_
 
Ul rc_cap7_el nivel de transporte en internet_
 Ul rc_cap7_el nivel de transporte en internet_ Ul rc_cap7_el nivel de transporte en internet_
Ul rc_cap7_el nivel de transporte en internet_
 
Http y tcp/ip
Http y tcp/ipHttp y tcp/ip
Http y tcp/ip
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udp
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udp
 
Modelo TCP/IP - Capa3
Modelo TCP/IP - Capa3Modelo TCP/IP - Capa3
Modelo TCP/IP - Capa3
 
Tema 7 2º trabajo
Tema 7 2º trabajoTema 7 2º trabajo
Tema 7 2º trabajo
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos ii
 
api_de_socket [Explicación Completa]
api_de_socket [Explicación Completa]api_de_socket [Explicación Completa]
api_de_socket [Explicación Completa]
 
Drc semana10 tcp
Drc semana10 tcpDrc semana10 tcp
Drc semana10 tcp
 
Protocolos
ProtocolosProtocolos
Protocolos
 
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Protocolos y ejemplos
Protocolos y ejemplosProtocolos y ejemplos
Protocolos y ejemplos
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
Protocolos del modelo osi
Protocolos del modelo osiProtocolos del modelo osi
Protocolos del modelo osi
 
Protocolos del modelo osi
Protocolos del modelo osiProtocolos del modelo osi
Protocolos del modelo osi
 
Semana 8 api de socket
Semana  8 api de socketSemana  8 api de socket
Semana 8 api de socket
 

Más de Rene Guaman-Quinche

Paradigma Programación Orientada a Objetos
Paradigma Programación Orientada a ObjetosParadigma Programación Orientada a Objetos
Paradigma Programación Orientada a ObjetosRene Guaman-Quinche
 
Fundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdfFundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdfRene Guaman-Quinche
 
Arquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdfArquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdfRene Guaman-Quinche
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de SoftwareRene Guaman-Quinche
 
Sistema de Archivos Distribuidos
Sistema de Archivos DistribuidosSistema de Archivos Distribuidos
Sistema de Archivos DistribuidosRene Guaman-Quinche
 
Unidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetosUnidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetosRene Guaman-Quinche
 
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaTiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaRene Guaman-Quinche
 
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasTiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasRene Guaman-Quinche
 
Introduccion a la computación paralela
Introduccion a la computación paralelaIntroduccion a la computación paralela
Introduccion a la computación paralelaRene Guaman-Quinche
 

Más de Rene Guaman-Quinche (20)

interfaces.pdf
interfaces.pdfinterfaces.pdf
interfaces.pdf
 
Paradigma Programación Orientada a Objetos
Paradigma Programación Orientada a ObjetosParadigma Programación Orientada a Objetos
Paradigma Programación Orientada a Objetos
 
Fundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdfFundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdf
 
Elicitación de requerimientos
Elicitación de requerimientosElicitación de requerimientos
Elicitación de requerimientos
 
Arquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdfArquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdf
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Sistema de Archivos Distribuidos
Sistema de Archivos DistribuidosSistema de Archivos Distribuidos
Sistema de Archivos Distribuidos
 
Unidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetosUnidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetos
 
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaTiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
 
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasTiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
 
Ciclo de vida software
Ciclo de vida softwareCiclo de vida software
Ciclo de vida software
 
Requisitos no Funcionales
Requisitos no FuncionalesRequisitos no Funcionales
Requisitos no Funcionales
 
Requisitos funcionales
Requisitos funcionalesRequisitos funcionales
Requisitos funcionales
 
Caracterizacion del paralelismo
Caracterizacion del paralelismoCaracterizacion del paralelismo
Caracterizacion del paralelismo
 
Introduccion a la computación paralela
Introduccion a la computación paralelaIntroduccion a la computación paralela
Introduccion a la computación paralela
 
Diagramas de actividades
Diagramas de actividadesDiagramas de actividades
Diagramas de actividades
 
Diagramas de estado
Diagramas de estadoDiagramas de estado
Diagramas de estado
 
Diagrama de clases y objetos
Diagrama de clases y objetosDiagrama de clases y objetos
Diagrama de clases y objetos
 

Comunicacion intra procesos con socket

  • 1. 1
  • 2. Sistemas Distribuidos Comunicación interprocesos René Guamán-Quinche Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables Carrera de Ingeniería en Sistemas/Computación Noviembre, 2020 Loja, Ecuador
  • 3. 3 1. Introducción 2. El api de los protocolos de internet 3. Representación externa de datos y serialización 4. Comunicación multicast 5. Virtualización de redes 6. Posix Contenido
  • 4. 4 Introduction Los procesos dentro de los sistemas distribuidos se ejecutan en los diferentes recursos de procesamiento disponible, muchas veces repartidos en la red. La concecuencia de esto es que los procesos deben tener un medio para que se puedan comunicar Estos métodos incluyen: Socket, paso de mensajes, redes superpuestas (overlay networks) y soporte multicast
  • 5. 5 The API for the internet protocols El paso de mensajes entre procesos puede ser soportado por dos operaciones de comunicación de mensajes: sent y receive (enviar o recibir)
  • 6. 6 The API for the internet protocols Comunicación síncrona o asíncrona: La operación enviar puede bloquear el proceso o el hilo de ejecución a la espera de su correspondiente operación recibir (síncrona). O se puede enviar el mensaje y seguir la ejecución una vez se copia la información al buffer (asíncrona) Características entre la comunicación entre procesos Bloqueante No Bloqueante
  • 7. 7 The API for the internet protocols Destino del mensaje: Los mensajes se envían a pares <dirección, puerto>. Un puerto es el destino del mensaje dentro del computador Características entre la comunicación entre procesos En informática, un puerto es una interfaz a través de la cual se pueden enviar y recibir los diferentes tipos de datos.
  • 8. 8 The API for the internet protocols Destino del mensaje: Los mensajes se envían a pares <dirección, puerto>. Un puerto es el destino del mensaje dentro del computador Características entre la comunicación entre procesos 16 bits, existen 65536 puertos 0 - 65535
  • 9. 9 The API for the internet protocols Orden: Algunas aplicaciones requieren recibir los mensajes en el orden en que se enviaron Características entre la comunicación entre procesos
  • 10. 10 The API for the internet protocols Modelo abstracto de comunicación de datos entre procesos La comunicación entre procesos consiste en transmitir información entre un socket en un proceso y un socket en otro proceso Para recibir el mensaje, el socket debe tener asociado el puerto y la dirección de internet del computador en el cuál se está ejecutando el proceso Socket
  • 11. 11 The API for the internet protocols Proporciona comunicación entre procesos que ejecutan en máquinas distintas Diseño independiente del protocolo de comunicación Un socket es un descriptor de un punto final de comunicación (dirección IP y puerto) Abstracción que:  Representa un extremo de una comunicación bidireccional con una dirección asociada  Ofrece interfaz de acceso a los servicios de red en el nivel de transporte (Protocolo TCP y UDP) Socket
  • 12. 12 The API for the internet protocols Un dominio representa una familia de protocolos Un socket está asociado a un dominio desde su creación Sólo se pueden comunicar sockets del mismo dominio Los servicios de sockets son independientes del dominio Socket
  • 13. 13 The API for the internet protocols Socket
  • 14. 14 The API for the internet protocols Socket Stream Protocolo TCP  Flujo de datos bidireccional  Orientado a conexión  Debe establecerse una conexión extremo-a- extremo antes del envío y recepción de datos  Proporcionan fiabilidad  Paquetes ordenados por secuencia, sin duplicación de paquetes, libre de errores  Ejemplos:  HTTP, Telnet, FTP, SMTP Protocolo UDP  Flujo de datos bidireccional  No orientado a conexión  No se establece/mantiene una conexión entre los procesos que comunican  Longitud máxima de un datagrama (datos y cabeceras) es 64 KB  Mantiene separación entre paquetes  No proporcionan fiabilidad  No realiza la recuperación de errores  Paquetes desordenados, duplicados, pérdidas  Ejemplos:  DNS Socket Datagram
  • 15. 15 The API for the internet protocols El Datagram se envía del proceso emisor al proceso receptor sin confirmación ni reintentos Si un fallo ocurre, el mensaje podría no llegar Problemas  Tamaño del mensaje es limitado – 216 byte – si excede se debe dividir el paquete  Bloqueos  Se acaba el tiempo de espera (timeout)  Recibe de cualquiera: operación de recepción no especifica el origen del mensaje UDP
  • 16. 16 The API for the internet protocols Fallas de Omisión: Los mensajes no podrían llegar por falta de espacio en el buffer de origen y destino Orden: Los mensajes UDP no necesariamente llegan en el orden en que se enviaron UDP - Fallas
  • 17. 17 The API for the internet protocols Uso: para algunas aplicaciones, es aceptable usar un servicio que propenso a fallas por omisiones ocasionales (DNS o VoIP) No sufre de los costes de rendimiento que podría traer el tener que garantizar la entrega de mensaje, hay tres causas para estos costes:  Necesidad de almacenar información del estado del origen o del destino  Transmisión de mensajes extra  Latencia para el emisor UDP
  • 18. 18 The API for the internet protocols Hay dos clases en Java que proveen la funcionalidad de UDP DatagramPacket: provee un constructor que hace una instancia de un objeto de la siguiente forma DatagramSocket: provee el soporte para sockets que permiten recibir y enviar datagram UDP UDP
  • 19. 19 The API for the internet protocols Modelo de comunicación con sockets datagrama
  • 20. 20 The API for the internet protocols getData() : para obtener el mensaje contenido en el datagrama. getAddress() : para obtener la dirección IP. getPort(): para obtener el puerto. DatagramSocket: DatagramSocket(): constructor sin argumentos que permite que el sistema elija un puerto entre los que estén libres y selecciona una de las direcciones locales. DatagramSocket(int port): constructor que toma un número de puerto como argumento, apropiado para los procesos que necesitan un número de puerto (servicios). DatagramSocket(int port, InetAddress laddr): constructor que toma como argumentos el número de puerto y una determinada dirección local. UDP
  • 21. 21 The API for the internet protocols La clase DatagramSocket proporciona varios métodos: send(DatagramPacket p) y receive(DatagramPacket p): sirven para transmitir datagramas entre un par de conectores. contiene el mensaje y el destino. El argumento de receive es un DatagramPacket vacío en el que colocar el mensaje, su longitud y su origen. setSoTimeout(int timeout): este método permite establecer un tiempo de espera límite. Cuando se fija un límite, el método receive se bloquea durante el tiempo fijado y después lanza una excepción InterruptedIOException connect(InetAddress address, int port): este método se utiliza para conectarse a un puerto remoto y a una dirección Internet concretos, en cuyo caso el conector sólo podrá enviar y recibir mensajes de esa dirección. UDP
  • 22. 22 The API for the internet protocols UDP
  • 23. 23 The API for the internet protocols UDP
  • 24. 24 The API for the internet protocols UDP
  • 25. 25 The API for the internet protocols El API provee una abstracción de un flujo de bytes por el cual la información es escrita y leída. La abstracción esconde las siguientes características de la red: Tamaño del mensaje Mensajes perdidos: implementa un esquema de confirmación: emisor recibe un msj llegó a su destino, si no se renvia el msj Control de Flujo: controla la velocidad que se envia y reciba Ordenamiento y duplicación de mensajes: identificadores de cada paquete Destinatirio(s) del mensaje: conección donde se envía TCP
  • 26. 26 The API for the internet protocols Problemas: No hay acuerdo en la información enviada en el flujo de datos Bloqueo (control de flujo) Hilos (o falta de soporte para estos) Uso  Http. Ftp, Telnet, Smtp TCP
  • 27. 27 The API for the internet protocols Fallos: en un red defectuosa, TCP puede presentar : El proceso usando la conexión no puede distinguir entre una falla de red o una falla de proceso del otro lado de la conexión Los procesos no pueden saber si los mensajes que han enviado recientemente se recibieron o no TCP
  • 28. 28 The API for the internet protocols Java ofrece dos clases para dar soporte a la comunicación por TCP ServerSocket: la usan los servidores para crear una conexión que escucha en un puerto determinado Socket: Se necesita proveer la información de la dirección y puerto y se encarga de conectarse con el socket TCP
  • 29. 29 The API for the internet protocols Socket: Stream y Datagramas
  • 30. 30 The API for the internet protocols Socket: Direcciones  Cada socket debe tener asignada una dirección única  Dirección de host (32 bits) + puerto (16 bits) + protocolo  Las direcciones se usan para:  Asignar una dirección local a un socket (bind)  Especificar una dirección remota (connect o sendto)  Las direcciones son dependientes del dominio
  • 31. 31 The API for the internet protocols Socket: Puertos
  • 32. 32 The API for the internet protocols Socket: Puertos
  • 33. 33 The API for the internet protocols Socket: Puertos
  • 34. 34 The API for the internet protocols Socket: Puertos
  • 35. 35 The API for the internet protocols Socket: Puertos
  • 36. 36 The API for the internet protocols Socket: Puertos
  • 37. 37 The API for the internet protocols Socket: Puertos  Un puerto identifica un destino en un computador  Los puertos se asocian a procesos,  permiten que la transmisión se dirija a un proceso específico en el computador destino  Un puerto tiene un único receptor y múltiples emisores (excepto multicast)  Toda aplicación que desee enviar y recibir datos debe abrir un puerto
  • 38. 38 The API for the internet protocols Socket: Puertos  Número entero de 16 bits  216 puertos en una máquina ~ 65536 puertos posibles  Reservados para aplicaciones de Internet: 0-1023 (también llamados well-known puertos)  Puertos entre 1024 y 49151 son puertos registrados para ser usados por los servicios  Puertos por encima de 65535 para uso privado
  • 39. 39 The API for the internet protocols Socket: Encapsulación de un paquete TCP
  • 40. 40 The API for the internet protocols Modelo de comunicación con sockets stream
  • 41. 41 The API for the internet protocols Api de java para las direcciones de internet: Como paquetes enviados por UDP y TCP, se envían a direcciónes de internet. Java provee la clase InetAddress No hay necesidad de espeficiar directamente la dirección IP, se puede hacer referencia a un computador con su nombre DNS Socket
  • 42. 42 The API for the internet protocols Socket
  • 43. 43 The API for the internet protocols Socket
  • 44. 44 Posix Sujetos a proceso de estandarización dentro de POSIX (POSIX 1003.1g) Socket
  • 45. 45 Cŕeditos • Transparencias basadas por: • Coulouris Dollimore, Distributed Systems: Concepts and Design https://ce.guilan.ac.ir/images/other/soft/distribdystems.pdf • García-Carballeira F., Tema 3 Comunicación y sincronización entre procesos http://ocw.uc3m.es/ingenieria-informatica/sistemas-distribuidos-2013/ Tema3_ComunicacionYsincronizacion.pdf/view • Sanabria, John, Sistemas Distribuidos – Hilos – Prácticas, https://www.youtube.com/playlist?list=PLNqsgMwXL3mFmd8X8Fg vZ_6ljjzucIDbN
  • 46. Networking académico: Correo electrónico: rguaman@unl.edu.ec Twitter: @rene5254 SlideShare: https://es.slideshare.net/rene5254 46 Gracias