Publicado el 10 de Junio del 2021
442 visualizaciones desde el 10 de Junio del 2021
2,3 MB
30 paginas
Creado hace 16a (11/06/2008)
COMUNICACIÓN ENTRE PROCESOS
SOCKETS
Diseño de Sistemas Operativos
Curso 2007/08
Grupo: Mi30
Martín Santana, A. David
Martínez Santana, Luis Ignacio
¿¿QuQuéé son?(Definici
son?(Definicióón)n)
Los
son mecanismos de comunicacióón n
sockets son mecanismos de comunicaci
Los sockets
entre procesos que permiten que un proceso hable
entre procesos que permiten que un proceso hable
( emita o reciba informacióón ) con otro proceso
n ) con otro proceso
( emita o reciba informaci
incluso estando en distintas mááquinas.
quinas.
incluso estando en distintas m
Una forma de conseguir que dos programas se
Una forma de conseguir que dos programas se
transmitan datos.
transmitan datos.
socket no es m
Un Un socket
no es máás que un "canal de
s que un "canal de
comunicacióón" entre dos programas que corren
n" entre dos programas que corren
comunicaci
sobre ordenadores distintos o incluso en el mismo
sobre ordenadores distintos o incluso en el mismo
ordenador.
ordenador.
Desde el punto de vista de programaci
Desde el punto de vista de programacióón, un
n, un
socket no es m
socket
una manera especial.
una manera especial.
no es máás que un "fichero" que se abre de
s que un "fichero" que se abre de
¿¿QuQuéé son? (Caracter
son? (Caracteríísticas)
sticas)
Una vez abierto se pueden escribir y leer datos
Una vez abierto se pueden escribir y leer datos
de de éél con las funciones de
l con las funciones de readread()() y y writewrite()(). .
La forma de referenciar un
La forma de referenciar un socket
procesos implicados, es mediante un descriptor
descriptor
procesos implicados, es mediante un
del mismo tipo que el utilizado para referenciar
del mismo tipo que el utilizado para referenciar
ficheros.
ficheros.
socket por los
por los
Se podráá realizar redirecciones de los archivos de
realizar redirecciones de los archivos de
Se podr
E/S estáándar (descriptores 0,1 y 2) a los
ndar (descriptores 0,1 y 2) a los sockets
sockets
E/S est
y asy asíí combinar entre ellos aplicaciones de la red.
combinar entre ellos aplicaciones de la red.
Propiedades
Propiedades
Fiabilidad de la Transmisi
Fiabilidad de la Transmisióón. No se pierden los datos transmitidos.
n. No se pierden los datos transmitidos.
Conservaci
Conservacióón del Orden de los Datos. Los datos llegan en el orden
n del Orden de los Datos. Los datos llegan en el orden
en que se emitieron.
en que se emitieron.
No Duplicaci
No Duplicacióón de los Datos. El Dato s
n de los Datos. El Dato sóólo llega una vez.
lo llega una vez.
Comunicaci
n estáá establecida
establecida
Comunicacióón en modo conectado. La conexi
antes de iniciar la comunicacióón. De este modo, la emisi
antes de iniciar la comunicaci
un extremo va destinada al otro (implíícitamente).
citamente).
un extremo va destinada al otro (impl
n en modo conectado. La conexióón est
n. De este modo, la emisióón desde
n desde
Conservaci
Conservacióón de los l
mensajes emitidos pueden encontrarse o conocerse en el destino.
mensajes emitidos pueden encontrarse o conocerse en el destino.
mites de los mensajes. Los líímites de
mites de
n de los líímites de los mensajes. Los l
EnvEnvíío de Mensajes
o de Mensajes ““urgentes
. Permite el envíío de datos fuera de
o de datos fuera de
flujo o fuera de banda. Al enviar datos fuera del flujo normal, son
son
flujo o fuera de banda. Al enviar datos fuera del flujo normal,
accesibles de inmediato.
accesibles de inmediato.
urgentes””. Permite el env
Atributos
Atributos
Un Un socket
socket se caracteriza por tres atributos:
se caracteriza por tres atributos:
–– Dominio
utilizaráá..
Dominio: Especifica el medio de comunicaci
la red que el socket
la red que el
: Especifica el medio de comunicacióón de
n de
socket utilizar
–– Protocolo
Protocolo: Especifica que protocolo se va a usar.
: Especifica que protocolo se va a usar.
–– TipoTipo: Los protocolos de
: Los protocolos de internet
internet proveen dos
proveen dos
niveles distintos de servicio : flujo y datagramas
datagramas..
niveles distintos de servicio : flujo y
Atributos (Dominio)
Atributos (Dominio)
AF_UNIX
AF_UNIX: : Sockets
Sockets internos de UNIX
internos de UNIX
Sockets del sistema de archivos).
((Sockets
del sistema de archivos).
AF_INET
AF_INET: Protocolos de
: Protocolos de internet
Sockets de redes de UNIX).
((Sockets
de redes de UNIX).
internet ARPA
ARPA
AF_ISO
AF_ISO: Protocolos est
: Protocolos estáándar ISO.
ndar ISO.
AF_NS
AF_NS: Protocolos de redes
: Protocolos de redes Xerox
Xerox
Atributos (Protocolo)
Atributos (Protocolo)
Se usa donde el mecanismo de transporte
Se usa donde el mecanismo de transporte
permite máás de un protocolo a ser usado.
s de un protocolo a ser usado.
permite m
En las redes de UNIX y en los
En las redes de UNIX y en los sockets
de archivos no necesitamos seleccionar otro
de archivos no necesitamos seleccionar otro
protocolo diferente al default
default..
protocolo diferente al
sockets de sistema
de sistema
Atributos(Tipo))
Atributos(Tipo
SOCK_STREAM: Para flujo
: Para flujo
SOCK_STREAM
Son implementados en el dominio
Son implementados en el dominio
AF_INET por conexiones TCP/IP.
por conexiones TCP/IP.
AF_INET
Son el tipo usual en el dominio AF_UNIX
AF_UNIX..
Son el tipo usual en el dominio
SOCK_DGRAM : Para
SOCK_DGRAM
No establecen ni mantienen una conexi
Tambi
No establecen ni mantienen una conexióón.n.
Tambiéén existe un l
mite en el tamañño del
o del
datagrama que se puede enviar.
que se puede enviar.
datagrama
Se transmite como un solo mensaje en la
Se transmite como un solo mensaje en la
red que se puede perder, duplicar o llegar
red que se puede perder, duplicar o llegar
fuera de secuencia.
fuera de secuencia.
: Para datagramas
datagramas
n existe un líímite en el tama
Tipos de Sockets
Sockets
Tipos de
Existen báásicamente dos tipos
sicamente dos tipos::
Existen b
Los nono orientados a conexi
Los
El programa de aplicacióón da la
•• El programa de aplicaci
n da la
fiabilidad
fiabilidad
orientados a conexióónn
Los
orientados a conexióónn. .
Los orientados a conexi
•• Comunicaciones fiables
Comunicaciones fiables
•• Circuito Virtual
Circuito Virtual
Tipos de Sockets
Sockets
Tipos de
Un Un socket
direccióón IP, un
n IP, un
direcci
queda definido por una
socket queda definido por una
protocolo y un núúmero de puerto.
mero de puerto.
protocolo y un n
En el caso concreto de TCP--IP, un
En el caso concreto de TCP
se define por
se define por
IP, un socket
socket
una dupla Origen –– Destino.
Destino.
una dupla Origen
Tanto el origen como el destino vienen
Tanto el origen como el destino vienen
indicados por un
indicados por un
par (ipip, puerto).
, puerto).
par (
Tipos de Sockets
Tipos de
Sockets (Diagrama)
(Diagrama)
Tipos de Sockets(Puertos
Sockets(Puertos))
Tipos de
Servidor
Sockets
Puerto acordado
Cualquier puerto
Mensaje
Cliente
Sockets
Dirección Internet:
XXX.XXX.XXX.XXX
Dirección Internet:
YYY.YYY.YYY.YYY
Sockets no orientado a conexi
Sockets
no orientado a conexióónn
Es el llamado protocolo
Es el llamado protocolo UDP.UDP.
No es necesario que los programas se conecten.
No es necesario que los programas se conecten.
Cualquiera de ellos puede transmitir datos en
Cualquiera de ellos puede transmitir datos en
cualquier momento, independientemente de que
cualquier momento, independientemente de que
el otro programa estéé "escuchando" o no.
"escuchando" o no.
el otro programa est
Garantiza que los datos que lleguen son
Garantiza que los datos que lleguen son
correctos, pero no garantiza que lleguen todos.
correctos, pero no garantiza que lleguen todos.
Se utiliza cuando es muy importante que el
Se utiliza cuando es muy importante que el
programa no se quede bloqueado.
programa no se quede bloqueado.
No importa que se pierdan datos.
No importa que se pierdan datos.
Sockes orientado a conexi
Sockes
orientado a conexióón.n.
del protocolo TCP/IP
TCP/IP, ,
Primero hay que establecer correctamente la
Primero hay que establecer correctamente la
conexióón.n.
conexi
Ninguno de los dos puede transmitir datos.
Ninguno de los dos puede transmitir datos.
Se usa el protocolo TCPTCP del protocolo
Se usa el protocolo
para gestionar la conexióón.n.
para gestionar la conexi
Se garantiza que todos los datos van a llegar de
Se garantiza que todos los datos van a llegar de
un programa al otro correctamente.
un programa al otro correctamente.
Se utiliza cuando la informacióón a transmitir es
n a transmitir es
importante, no se puede perder ningúún dato.
n dato.
importante, no se puede perder ning
No importa que los programas se queden
No importa que los programas se queden
"bloqueados" esperando o transmitiendo datos.
"bloqueados" esperando o transmitiendo datos.
Se utiliza cuando la informaci
Arquitectura de Conexióónn
Arquitectura de Conexi
Cliente – Servidor
• Servidor: es el programa que permanece pasivo a la espera de que
alguien solicite conexión con él.
• Cliente: es el programa que solicita la conexión para pedir datos al
servidor
Servidor
Cliente
Cliente
Sockets
Sockets
Red
Arquitectura de la conexióón.n.
Arquitectura de la conexi
Servidor:
Servidor:
•• EstEstáá ejecut
ejecutáándose y esperando a que otro
ndose y esperando a que otro
quiera conectarse a éél. l.
quiera conectarse a
Nunca da "el primer paso" en la conexióón. n.
Es el que "sirve" informacióón al que se la pida.
n al que se la pida.
•• Nunca da "el primer paso" en la conexi
•• Es el que "sirve" informaci
Cliente:
Cliente:
•• Es el programa que da el
primer paso”” en la
en la
Es el programa que da el ““primer paso
conexióón. n.
conexi
•• En el momento de ejecutarlo o cuando lo
En el momento d
Comentarios de: Comunicación entre procesos Sockets (0)
No hay comentarios