You are on page 1of 86

Instituto Politcnico Nacional

Escuela Superior de Cmputo


Ingeniera en Sistemas Computacionales

Aplicaciones para Comunicaciones en Red

UNIDAD I: SOCKETS DE FLUJO

2016-2017/1

M. en C. Sandra Ivette Bautista Rosales

1
Introduccin
Qu es?

Capa (nivel)
Protocolo
Iguales (peers)
Interfaz
ciones para Comunicaciones en Red 2
M. en C. Sandra Ivette Bautista Rosales
Introduccin
Capa: Contiene los protocolos o procedimientos
El nmero de capas, su nombre, contenido y funcin difieren de red en red.
Ofrece servicios a las capas superiores, a las cuales no se les muestran los
detalles reales de implementacin de los servicios ofrecidos (abstraccin,
encapsulamiento, etc.)
La mayora de las redes est organizada como una pila de capas, cada una
construida a partir de la que est debajo de ella, con el propsito de reducir la
complejidad de su diseo.
El modelo de capas describe el funcionamiento de los protocolos que se producen
en cada capa y a su vez describe la interaccin entre las diferentes capas.
Proporciona un lenguaje comn para la comunicacin en las redes informticas.
Evita que los continuos cambios tecnolgicos afecten a los protocolos y a las distintas
capas.

Protocolo: Acuerdo entre las partes en comunicacin sobre cmo se


debe de llevar a cabo la misma.
La capa n de una mquina mantiene una conversacin con la capa n de otra
mquina. Las reglas y convenciones utilizadas en esta conversacin se conocen
de manera colectiva como protocolo de capa n.
Violar el protocolo har ms difcil la comunicacin, si no es que imposible.

ciones para Comunicaciones en Red 3


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Iguales: Las entidades que abarcan las capas
correspondientes en diferentes mquinas.
Podran ser procesos, dispositivos de hardware o
incluso seres humanos, es decir, los iguales son
los que se comunican a travs del protocolo.

Interfaz: Define qu operaciones y servicios


primitivos pone la capa ms baja a disposicin de
la capa superior inmediata.
Es una conexin entre dos mquinas o entidades de
cualquier tipo, a las cuales les brinda un soporte para la
comunicacin a diferentes estratos.

ciones para Comunicaciones en Red 4


M. en C. Sandra Ivette Bautista Rosales
Comunicac
in virtual

Comunica
cin real

Figura 1. Capas, protocolos e interfaces [1]

ciones para Comunicaciones en Red 5


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Arquitectura de red: Conjunto de capas y protocolos
Su especificacin debe contener informacin suficiente
para permitir que un implementador escriba el programa
o construya el hardware para cada capa de modo que se
cumpla correctamente con el protocolo apropiado.
Ni los detalles de implementacin, ni las especificaciones
de las interfaces son parte de la arquitectura porque
estn ocultas en las mquinas.
Las interfaces no necesitan ser las mismas, siempre y
cuando utilice correctamente los protocolos.
Pila de protocolos: Lista de protocolos utilizados por
un sistema (un protocolo por capa)

ciones para Comunicaciones en Red 6


M. en C. Sandra Ivette Bautista Rosales
Repaso
Identificar emisores y receptores

ciones para Comunicaciones en Red 7


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Identificar emisores y receptores
Mtodo para que un proceso en una
mquina especifique con cul de las
dems quiere hablar.

ciones para Comunicaciones en Red 8


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Identificar emisores y receptores
Mtodo para que un proceso en una
mquina especifique con cul de las
dems quiere hablar.
Mltiples destinos Destino
especfico

ciones para Comunicaciones en Red 9


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Identificar emisores y receptores
Mtodo para que un proceso en una
mquina especifique con cul de las
dems quiere hablar.
Mltiples destinos Destino
especfico

Direccionamiento
ciones para Comunicaciones en Red 10
M. en C. Sandra Ivette Bautista Rosales
Introduccin
Reglas de transferencia de datos
Dependiendo del sistema viajan los
datos
Protocolo determina a cuntos canales
lgicos corresponde la conexin y cules
son sus prioridades.
Muchas redes proporcional al menos dos
canales lgicos por conexin: uno para
datos normales y otro para urgentes.

ciones para Comunicaciones en Red 11


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Los circuitos de comunicacin fsica
no son perfectos.

ciones para Comunicaciones en Red 12


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Los circuitos de comunicacin fsica
no son perfectos.
Deteccin de errores

ciones para Comunicaciones en Red 13


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Los circuitos de comunicacin fsica no
son perfectos.

Deteccin de errores
Cdigos de deteccin y correccin de
errores
Ambos extremos de la conexin deben estar
de acuerdo en cul utilizar
Receptor: decirle al emisor cules mensajes se
han recibido correctamente y cules no

ciones para Comunicaciones en Red 14


M. en C. Sandra Ivette Bautista Rosales
Introduccin
No todos los canales de comunicacin
conservan el orden de envo de
mensajes.
Prdida de secuencia
El protocolo debe incluir mecanismo que
permita al receptor volver a unir los
pedazos adecuadamente.
Numerar las piezas
Qu se debe hacer con las piezas que llegan
sin orden?

ciones para Comunicaciones en Red 15


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Cmo evitar que un emisor rpido
sature de datos a un receptor ms
lento?

ciones para Comunicaciones en Red 16


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Cmo evitar que un emisor rpido
sature de datos a un receptor ms
lento?
Control de flujo

ciones para Comunicaciones en Red 17


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Cmo evitar que un emisor rpido
sature de datos a un receptor ms
lento?
Control de flujo

Limitar al emisor a una velocidad de


transmisin acordada

ciones para Comunicaciones en Red 18


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Incapacidad de todos los procesos de
aceptar de manera arbitraria
mensajes largos.
Mecanismos para:
Desensamblar
Transmitir y
Reensamblar mensajes

ciones para Comunicaciones en Red 19


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Qu hacer cuando los procesos
insisten en transmitir datos en
unidades tan pequeas que enviarlas
por separado es ineficaz?

ciones para Comunicaciones en Red 20


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Qu hacer cuando los procesos
insisten en transmitir datos en
unidades tan pequeas que enviarlas
por separado es ineficaz?
Reunir en un solo mensaje grande varios
mensajes pequeos que vayan dirigidos
a un destino comn y desmembrar
dicho mensaje una vez llegado a su
destino.

ciones para Comunicaciones en Red 21


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Cuando es inconveniente o costoso
establecer una conexin separada
para cada par de procesos de
comunicacin, la capa subyacente
podra decidir utilizar la misma
conexin para mltiples
conversaciones sin relacin entre s.

ciones para Comunicaciones en Red 22


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Cuando es inconveniente o costoso
establecer una conexin separada
para cada par de procesos de
comunicacin, la capa subyacente
podra decidir utilizar la misma
conexin para mltiples
multiplexin y desmultiplexin
conversaciones sin relacin entre s.

ciones para Comunicaciones en Red 23


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Cuando es inconveniente o costoso establecer
una conexin separada para cada par de
procesos de comunicacin, la capa subyacente
podra decidir utilizar la misma conexin para
mltiples conversaciones sin relacin entre s.

multiplexin y desmultiplexin
Siempre y cuando esta multiplexin y
desmultiplexin se realice de manera
transparente , cualquier capa la podr utilizar.

ciones para Comunicaciones en Red 24


M. en C. Sandra Ivette Bautista Rosales
Introduccin
La multiplexin se necesita en la
capa fsica, ej. Donde mltiples
conversaciones comparten un
nmero limitado de circuitos fsicos.

ciones para Comunicaciones en Red 25


M. en C. Sandra Ivette Bautista Rosales
Introduccin
La multiplexin se necesita en la capa
fsica, ej. Donde mltiples
conversaciones comparten un nmero
limitado de circuitos fsicos.
Cuando hay mltiples rutas entre el
origen y el destino, se debe elegir la
mejor o las mejores entre todas ellas.

ciones para Comunicaciones en Red 26


M. en C. Sandra Ivette Bautista Rosales
Introduccin
A veces esta decisin se debe dividir en
dos o ms capas
Alto nivel: ej. Leyes de privacidad
Bajo nivel: ej. Carga de trfico

ciones para Comunicaciones en Red 27


M. en C. Sandra Ivette Bautista Rosales
Introduccin
A veces esta decisin se debe dividir en
dos o ms capas
Alto nivel: ej. Leyes de privacidad
Bajo nivel: ej. Carga de trfico

Enrutamiento

ciones para Comunicaciones en Red 28


M. en C. Sandra Ivette Bautista Rosales
Introduccin
Servicio vs Protocolo [1]

ciones para Comunicaciones en Red 29


M. en C. Sandra Ivette Bautista Rosales
1.1 Servicios definidos en la Capa
de Transporte

Modelo de referencia TCP/IP [1]

Modelo de referencia OSI [1]

ciones para Comunicaciones en Red 30


M. en C. Sandra Ivette Bautista Rosales
1.1 Servicios definidos en la Capa
de Transporte
El deber primario de la capa de
Transporte es proporcionar la
comunicacin de un programa de
aplicacin a otro, que es llamada de
extremo a extremo (end-to-end).
Puede regular el flujo de la
informacin y proporcionar fiabilidad
en el transporte, garantizando que los
datos llegan sin error y en secuencia.
ciones para Comunicaciones en Red 31
M. en C. Sandra Ivette Bautista Rosales
Servicios orientados a la conexin y
no orientados a la conexin

Servicio orientado a
la conexin

Para usar un servicio de red orientado a la


conexin, el usuario:
Establece una conexin
La utiliza
La abandona
ciones para Comunicaciones en Red 32
M. en C. Sandra Ivette Bautista Rosales
Servicios orientados a la conexin

Conexin: el emisor empuja objetos (bits) en un


extremo y el receptor los toma en el otro
extremo.
Generalmente se conserva el orden de los bits
Al establecer la conexin, el emisor, el receptor
y la subred utilizan una negociacin sobre los
parmetros que se van a utilizar, por ejemplo:
Tamao mximo del mensaje
Calidad del servicio solicitado
Uno hace la propuesta y el otro la acepta,
rechaza o hace una contrapropuesta.

ciones para Comunicaciones en Red 33


M. en C. Sandra Ivette Bautista Rosales
Servicios No orientados a la
conexin

Cada mensaje (carta) lleva la direccin destino y


cada una se enruta a travs del sistema,
independientemente de las dems.
ciones para Comunicaciones en Red 34
M. en C. Sandra Ivette Bautista Rosales
Servicios No orientados a la
conexin
Generalmente, cuando se envan dos
mensajes al mismo destino el
primero que se enve ser el primero
en llegar.
Es posible que el primero se dilate y
llegue primero el segundo mensaje.

ciones para Comunicaciones en Red 35


M. en C. Sandra Ivette Bautista Rosales
Servicios orientados a la conexin y
no orientados a la conexin
Cada servicio se puede clasificar por la
calidad del servicio
Servicio confiable: el receptor confirma la
recepcin de cada mensaje para que el emisor
est seguro de que lleg
Introduce sobre cargas y retardos, que con frecuencia
son valiosos pero a veces son indeseables.

Ejemplo: Servicio
orientado a la
conexin

ciones para Comunicaciones en Red 36


M. en C. Sandra Ivette Bautista Rosales
Servicios orientados a la conexin

Un servicio orientado a la conexin


confiable tiene dos variantes
menores :
1. Secuencias de mensaje: se conservan
losbytes
1024 lmites del mensaje
1024 bytes

1024 bytes 1024 bytes

2048 bytes

ciones para Comunicaciones en Red 37


M. en C. Sandra Ivette Bautista Rosales
Servicios orientados a la conexin

2. Flujo de bytes: la conexin es


simplemente un flujo de bytes sin
lmites en el mensaje.
1024 bytes

1024 bytes

2048 bytes
2048 bytes

1 1 1
1 1 1
byte1 byte1 byte1
byte1 byte1 byte
byte byte byte
.
byte byte
ciones para Comunicaciones en Red 38
M. en C. Sandra Ivette Bautista Rosales
Servicios No orientados a la
conexin
No todas las aplicaciones requieren
conexiones.
Ejemplo:

Al servicio no orientado a la conexin no


confiable (sin confirmacin de recepcin)
se le conoce como servicio de
datagramas.
ciones para Comunicaciones en Red 39
M. en C. Sandra Ivette Bautista Rosales
Servicios No orientados a la
conexin
En otras situaciones se desea la
conveniencia de no tener que
establecer una conexin para enviar
un mensaje corto, pero la fiabilidad
es esencial
Servicio de datagramas
confirmados
RECEPTO
EMISOR
R

ciones para Comunicaciones en Red 40


M. en C. Sandra Ivette Bautista Rosales
Servicios No orientados a la
conexin
Servicio de solicitud-respuesta:
El emisor transmite un solo datagrama
que contiene una solicitud, a
continuacin el servidor enva la
respuesta
SERVIDO
CLIENTE
R

ciones para Comunicaciones en Red 41


M. en C. Sandra Ivette Bautista Rosales
Servicios No orientados a la
conexin

Seis diferentes tipos de servicio [1]

ciones para Comunicaciones en Red 42


M. en C. Sandra Ivette Bautista Rosales
1.2 Modelo Cliente-Servidor
Es el modelo de ejecucin que siguen todas las
aplicaciones de red.

Un SERVIDOR es un proceso que se est ejecutando


en un nodo de la red
Su funcin es gestionar el acceso a un determinado
recurso.

Un CLIENTE es un proceso que se ejecuta en el


mismo o diferente nodo y realiza peticiones al
servidor.
Las peticiones estn originadas por la necesidad de
acceder al recurso que gestiona el servidor.
ciones para Comunicaciones en Red 43
M. en C. Sandra Ivette Bautista Rosales
MODELO
CLIENTE/SERVIDOR
Muchas aplicaciones actuales se
realizan siguiendo un modelo cliente
y servidor
Permite distribuir la carga de cada
programa en distintas mquinas,
aumenta la seguridad y flexibilidad.
La comunicacin entre cliente y
servidor puede ser orientada a la
conexin o bien sin conexin.
ciones para Comunicaciones en Red 44
M. en C. Sandra Ivette Bautista Rosales
SERVIDOR
Est continuamente esperando
peticiones de servicio.
Cuando se produce una peticin, el
servidor despierta y atiende al
cliente.
Cuando el servicio concluye, el
servidor vuelve al estado de espera.
Almacena y valida datos, realiza clculos
complejos, contesta las respuestas

ciones para Comunicaciones en Red 45


M. en C. Sandra Ivette Bautista Rosales
SERVIDOR
De acuerdo con la forma de prestar servicio ,
se pueden considerar 2 tipos de servidores:

SERVIDORES INTERACTIVOS:
El
servidor no solo recoge la peticin de
servicio, sino que l mismo se encarga
de atenderla.
Inconveniente: Si el servidor es lento
en atender a los clientes y hay una
demanda de servicio muy elevada, se
van a originar tiempos de espera muy
grandes.
Solo pueden procesar una peticin a la
vez

ciones para Comunicaciones en Red 46


M. en C. Sandra Ivette Bautista Rosales
SERVIDOR
SERVIDORES CONCURRENTES:
El servidor recoge cada un de las
peticiones de servicio y crea otros
procesos para que se encarguen de
atenderlas.
Este tipo de servidores solo es aplicable
en sistemas multiproceso.
Ventaja: El servidor puede recoger
peticiones a muy alta velocidad, porque
esta descargado de la tarea de atencin
al cliente.
En aplicaciones donde los tiempos de
servicio son variables, es recomendable
implementar este tipo de servidores.
ciones para Comunicaciones en Red 47
M. en C. Sandra Ivette Bautista Rosales
SERVIDOR
Su papel es pasivo en el establecimiento
de la comunicacin.
Para esto dispone de un socket de escucha,
enlazado al puerto TCP correspondiente al
servicio, sobre el que espera las peticiones
de conexin.
Cuando llega al sistema una peticin de este
tipo, se despierta el proceso servidor y se
crea un nuevo socket, que se llama socket
de servicio, el cual se conecta al cliente.

ciones para Comunicaciones en Red 48


M. en C. Sandra Ivette Bautista Rosales
SERVIDOR
Entonces el servidor podr:
Delegar el trabajo necesario para la
realizacin del servicio a un nuevo
proceso, que utilizar entonces la
conexin.
Volver al socket de escucha.

ciones para Comunicaciones en Red 49


M. en C. Sandra Ivette Bautista Rosales
CLIENTE
Es la entidad activa en el establecimiento
de una conexin, puesto que es el que
toma la iniciativa de la demanda de
conexin a un servidor.
Esta demanda se realiza por medio de la
primitiva connect() solicitando el
establecimiento de una conexin que ser
conocida por los dos extremos.
Adems el cliente est informado del xito o
el fracaso del establecimiento de la conexin.

ciones para Comunicaciones en Red 50


M. en C. Sandra Ivette Bautista Rosales
CLIENTE
Captura los datos, los muestra, solicita
consultas, mantiene la interfaz de usuario.

ciones para Comunicaciones en Red 51


M. en C. Sandra Ivette Bautista Rosales
ESQUEMA

SERVIDOR CLIENTE
Inicializar
Inicializar
Abrir canal de peticiones
Conectar con el Servidor
MIENTRAS()
EnviarPeticin (datos peticin)
Leer(Peticin)
EsperarRespuesta (datos
ElaborarRespuesta
respuesta)
(Peticin, resultado)
ProcesarRespuesta (datos
Enviar(resultado)
respuesta)
FIN-MIENTRAS

ciones para Comunicaciones en Red 52


M. en C. Sandra Ivette Bautista Rosales
Comunicacin entre procesos

ciones para Comunicaciones en Red 53


M. en C. Sandra Ivette Bautista Rosales
Comunicacin entre
procesos
Equipo
Aplicacin
Proceso
Socket

ciones para Comunicaciones en Red 54


M. en C. Sandra Ivette Bautista Rosales
Mecanismos de
comunicacin

Internos

Externos

ciones para Comunicaciones en Red 55


M. en C. Sandra Ivette Bautista Rosales
Mecanismos de comunicacin
Internos (Entre procesos dentro de una misma
mquina)
Bsicos
Seales: Informan de sucesos pero no sirven para enviar o
recibir datos adicionales
Ficheros con bloqueos: Relativamente lento accesos a
disco. Se puede decir que es una pseudo Base de datos
Tuberas: Fifo internas (pipe) y fifo externas con nombre
(memoria RAM, ms rpida pero capacidad limitada)
Mecanismos IPC de UNIX
Semforos: Mecanismos de sincronizacin
Colas de mensajes: Intercambio ordenado de cantidades
discretas de datos
Memoria compartida: Acceso compartido a un mismo espacio
de memoria
ciones para Comunicaciones en Red 56
M. en C. Sandra Ivette Bautista Rosales
Mecanismos de comunicacin

Externos (Entre procesos de distintas


mquinas conectadas mediante una
red)
Comunicacin basada en sockets
AF_UNIX: Similar a los fifos con nombre pero
bidireccionales
AF_INET: Mediante el uso del protocolo
TCP/IP Protocolos TCP y UDP de la capa
de transporte.

ciones para Comunicaciones en Red 57


M. en C. Sandra Ivette Bautista Rosales
Comunicacin entre procesos

Intercambio de mensajes (emisor-


receptor(es))
Uno a uno (unicast)
Uno a muchos (multicast y broadcast)
Esquema tpico: mecanismo
peticin-respuesta
Distintos niveles de abstraccin
Ejemplos: interfaz sockets, mecanismos
RPC (llamada a procedimiento remoto)

ciones para Comunicaciones en Red 58


M. en C. Sandra Ivette Bautista Rosales
Sincronizacin en mecanismos
de paso de mensajes
Qu es?
Primitiva de
servicio:
Un servicio est definido por
un conjunto de operaciones
ms sencillas llamadas
PRIMITIVAS.
En general, las primitivas se
utilizan para realizar alguna
accin o para informar de
un suceso ocurrido en una
entidad par.
ciones para Comunicaciones en Red 59
M. en C. Sandra Ivette Bautista Rosales
Sincronizacin en mecanismos
de paso de mensajes
Conceptualmente todo mecanismo de
paso de mensajes contar con las
siguientes primitivas bsicas:
Enviar: proceso emisor transmite datos a un
proceso receptor.
Recibir: proceso receptor acepta los datos de
un emisor.
Iniciar conexin: (opcional, en sistemas
orientados a conexin) un proceso indica que
desea iniciar una conexin con otro
Proceso activo, tpica mente un cliente

ciones para Comunicaciones en Red 60


M. en C. Sandra Ivette Bautista Rosales
Sincronizacin en mecanismos
de paso de mensajes
Esperar conexin: (opcional, en
sistemas orientados a conexin) un
proceso indica que est dispuesto a
recibir conexiones
Proceso pasivo, tpicamente un servidor
Aceptar conexin: (opcional, en
sistemas orientados a conexin) un
proceso acepta la comunicacin con
otro
Proceso pasivo, tpicamente un servidor

ciones para Comunicaciones en Red 61


M. en C. Sandra Ivette Bautista Rosales
Sincronizacin
Para asegurar el establecimiento de la
conexin: Esperar conexin
INICIAR ACEPTAR
CONEXIN CONEXIN

Para asegurar la transferencia de un


mensaje:
ENVIAR RECIBIR

Esquemas de
ENVIAR / RECIBIR
peticin+respuesta
peticin
RECIBIR / ENVIAR
(2
mensajes): respuesta

ciones para Comunicaciones en Red 62


M. en C. Sandra Ivette Bautista Rosales
Sincronizacin
Dependiendo del modo en que se
implementen las primitivas anteriores,
existen diversos esquemas de
sincronizacin entre procesos:
Primitivas bloqueantes
Primitivas no bloqueantes

ciones para Comunicaciones en Red 63


M. en C. Sandra Ivette Bautista Rosales
Qu es un socket?

Aplicacin Aplicacin

Proceso Proceso

Proceso Proceso

Proceso Proceso

ciones para Comunicaciones en Red 64


M. en C. Sandra Ivette Bautista Rosales
Qu es un socket?

Aplicacin Aplicacin

Proceso Proceso

Proceso Proceso
Cliente Servidor

Proceso Proceso

ciones para Comunicaciones en Red 65


M. en C. Sandra Ivette Bautista Rosales
Qu es un socket?

Aplicacin Aplicacin

Proceso Proceso

Proceso Proceso
Cliente Servidor

Proceso Proceso

ciones para Comunicaciones en Red 66


M. en C. Sandra Ivette Bautista Rosales
Qu es un socket?

Aplicacin Aplicacin

Proceso Proceso
S

Proceso Proceso
Cliente S Servidor

Proceso Proceso
S

ciones para Comunicaciones en Red 67


M. en C. Sandra Ivette Bautista Rosales
Qu es un socket?
Aparecieron a principios de los 80s con el
sistema UNIX de Berkeley
Con el fin de proporcionar un medio de
comunicacin a los procesos.
Es un punto de comunicacin por el cual un
proceso puede emitir o recibir informacin
En el interior de un proceso, un socket se
identifica por un descriptor de la misma
naturaleza que los que identifican a los archivos
SD: Es un nmero entero asociado a un
fichero (archivo) abierto (conexin de red, una
terminal, etc.)

ciones para Comunicaciones en Red 68


M. en C. Sandra Ivette Bautista Rosales
Interfaz de Sockets
Socket: Interfaz de programacin (API) sobre el
nivel de transporte
Abstraccin que facilita al programador el acceso a
los servicios y recursos del nivel de transporte
Ofrece un servicio punto a punto entre emisor y
receptor

Los Los
procesos procesos de
de las los
aplicacion protocolos
es residen de
en el transporte
espacio forman
de parte del
usuario S.O.

ciones para Comunicaciones en Red 69


M. en C. Sandra Ivette Bautista Rosales
Pila de protocolos TCP/IP
Nivel de transporte:
Servicio de envo de datos extremo a
extremo
Hace uso de servicios del nivel de red (IP)
Protocolo TCP:
Servicio orientado a conexin, fiable,
ordenado, con control de flujo y errores
Requiere establecimiento previo de una
conexin entre ambos extremos
Ofrece flujo permanente entre los extremos
en ambas direcciones
Controla la recepcin en orden, completa y
sin errores, gestionando el reenvo de
paquetes perdidos

ciones para Comunicaciones en Red 70


M. en C. Sandra Ivette Bautista Rosales
Pila de protocolos TCP/IP
Protocolo UDP:
servicio no orientado a
conexin, no fiable y sin
control de flujo y errores
Cada mensaje UDP
(datagrama) es independiente
y se trata de forma aislada
No se garantiza la entrega de
datagramas enviados ni que
estos lleguen en orden

ciones para Comunicaciones en Red 71


M. en C. Sandra Ivette Bautista Rosales
Primitivas para la utilizacin de
sockets
Secuencia de primitivas para la
utilizacin de sockets que el cliente y
el servidor tienen que usar para
ambos tipos de servicio:
Orientado a conexin
No orientado a conexin

Diagrama de primitivas de sockets

ciones para Comunicaciones en Red 72


M. en C. Sandra Ivette Bautista Rosales
Dominio de un socket
Representa una familia de protocolos
Una familia o dominio de la conexin, agrupa
todos aquellos sockets que comparten
caractersticas comunes y con los cules se
puede establecer una comunicacin.
Un socket est asociado a un dominio desde
su creacin.
Existen diferentes dominios de comunicacin,
los formatos reconocidos actualmente son:

ciones para Comunicaciones en Red 73


M. en C. Sandra Ivette Bautista Rosales
Dominio de un socket
AF_UNIX, AF_LOCAL
AF_INET
AF_INET6
AF_IPX
AF_NETLINK Los servicios de
sockets son
AF_X25 independientes del
AF_AX25 dominio

AF_ATMPVC
AF_APPLETALK
AF_PACKET
AF_ALG
ciones para Comunicaciones en Red 74
M. en C. Sandra Ivette Bautista Rosales
Tipos de sockets
Define las propiedades de las
comunicaciones en las que se ve envuelto
un socket, esto es, el tipo de comunicacin
que se puede dar entre cliente y servidor.
Estas pueden ser:
Fiabilidad de la transmisin: Ningn dato
transmitido se pierde
Conservacin del orden de los datos. Los datos
llegan en el orden en que han sido emitidos.
No duplicacin de datos. Solo llega a destino
un ejemplar de cada dato emitido
ciones para Comunicaciones en Red 75
M. en C. Sandra Ivette Bautista Rosales
Tipos de sockets
El modo conectado en la comunicacin
Envo de mensajes urgentes

SOCK_STREAM
SOCK_DGRAM
SOCK_RAW
SOCK_SEQPACKET
SOCK_RDM
SOCK_PACKET
ciones para Comunicaciones en Red 76
M. en C. Sandra Ivette Bautista Rosales
Interfaz de Sockets
Puertos: identificadores usados para asociar los
datos entrantes a un proceso concreto de la mquina.
Usados tanto en TCP como en UDP
Nmeros de 16 bits
0-1023: reservados por convenio (puertos bien
conocidos)
Asignados a los servidores de servicios bsicos

1024-65535: uso libre


Son los usados con los clientes al establecer conexiones
Suelen asignarse de forma aleatoria

ciones para Comunicaciones en Red 77


M. en C. Sandra Ivette Bautista Rosales
Interfaz de Sockets
Direccionamiento: Para comunicarse
con otro proceso usando sockets debe
conocerse:
1. Direccin IP (32 bits) de la mquina donde
se ejecuta el proceso
Alternativamente, su nombre para consultar
servicio de nombre DNS (traduccin dominio IP)
2. No. De puerto (TCP o UDP) que utiliza el
proceso en su mquina
Por lo tanto, la interfaz de sockets no
ofrece transparencia de localizacin
ciones para Comunicaciones en Red 78
M. en C. Sandra Ivette Bautista Rosales
Implementacin de sockets

ciones para Comunicaciones en Red 79


M. en C. Sandra Ivette Bautista Rosales
Sockets bloqueantes

Sockets Orientados a Sockets No


Conexin Orientados a
Conexin
TCP UDP
Flujo (stream) Datagrama

ciones para Comunicaciones en Red 80


M. en C. Sandra Ivette Bautista Rosales
Creacin de un socket
La funcin socket crea un nuevo
socket:
int socket(int dom, int tipo, int proto)

ciones para Comunicaciones en Red 81


M. en C. Sandra Ivette Bautista Rosales
Diferencia entre los tipos de sockets

Flujo de bytes

TCP

Mensajes separados

UDP

ciones para Comunicaciones en Red 82


M. en C. Sandra Ivette Bautista Rosales
Sockets UDP

ciones para Comunicaciones en Red 83


M. en C. Sandra Ivette Bautista Rosales
Sockets UDP
En las comunicaciones basadas en datagramas
(p. ej. UDP), el paquete de datagramas contiene
el nmero de puerto de su destino y UDP
encamina el paquete a la aplicacin apropiada.
El API de Java para UDP proporciona una
abstraccin del paso de mensajes.
Esto hace posible a un proceso emisor transmitir
un nico mensaje a un proceso receptor.
Los paquetes independientes que contienen esos
mensajes se denominan datagramas.

ciones para Comunicaciones en Red 84


M. en C. Sandra Ivette Bautista Rosales
Sockets UDP
Un datagrama enviado mediante UDP es
transmitido desde un proceso emisor a un
proceso sin reconocimiento de recomprobaciones.
Si tiene lugar un fallo, el mensaje puede no llegar.
Un datagrama es transmitido entre procesos
cuando un proceso lo enva y otro proceso lo
recibe.
Cualquier proceso que necesite enviar o recibir
mensajes debe en primer lugar crear un socket a
una direccin de Internet y a un puerto local.

ciones para Comunicaciones en Red 85


M. en C. Sandra Ivette Bautista Rosales
Sockets UDP
Un servidor enlazar ese socket a un
puerto servidor (uno que es conocido por
los clientes de manera que puedan
enviarle mensajes).
Un cliente enlaza su socket a cualquier
puerto local libre.
El mtodo receptor devuelve la direccin
de Internet y el puerto del emisor, adems
del mensaje, permitiendo a los receptores
enviar una respuesta.
ciones para Comunicaciones en Red 86
M. en C. Sandra Ivette Bautista Rosales

You might also like