Publicado el 24 de Diciembre del 2019
919 visualizaciones desde el 24 de Diciembre del 2019
1,6 MB
82 paginas
Creado hace 9a (14/10/2014)
REDES DE COMPUTADORES
Tema 2: Nivel de Aplicación
2.1 Principios de las aplicaciones en red
2.2 DNS
2.3 Web y HTTP
2.4 Programación de la interfaz de acceso al servicio
de transporte fiable de Internet en JAVA: Sockets
con TCP
2.5 Programación de la interfaz de acceso al servicio
de transporte no fiable de Internet en JAVA:
Sockets con UDP
Some material copyright 1996-2010
J.F Kurose and K.W. Ross, All Rights Reserved
Departamento de
Tecnología Electrónica
Aplicación 2-1
Tema 2: Nivel de aplicación
Objetivos:
Conceptos, aspectos
de implementación de
protocolos de
aplicación en red
modelos de
servicio del nivel
de transporte
paradigma cliente-
servidor
paradigma P2P
Aprender más sobre
protocolos estudiando
dos protocolos de la
capa de aplicación de
internet
HTTP
DNS
Programando
aplicaciones en red
socket API
Aplicación 2-2
Algunas aplicaciones en red
Voz sobre IP (VoIP)
Videoconferencia
Computación en la nube
(cloud)
…
…
e-mail
web
mensajería instantánea
Acceso remoto
Compartición de
archivos P2P
Juegos online
multiusuario
Streaming de video
(ej. YouTube)
Aplicación 2-3
Creando una aplicación en red
Aplicación
transporte
red
enlace
físico
escribir programas que
Corran en (diferentes) sistemas
finales
Se comuniquen a través de la red
Ej: software de un servidor web
qué se comunica con el software
navegador web
no hay que hacer programas
para el núcleo de la red
Los dispositivos del núcleo no
corren las aplicaciones de los
usuarios
Al hacerlo en los sistemas finales
se acelera el tiempo de desarrollo
y propagación de la aplicación
Aplicación
transporte
red
enlace
físico
Aplicación
transporte
red
enlace
físico
Aplicación 2-4
Tema 2: Nivel de aplicación
2.1 Principios de las aplicaciones en red
2.2 DNS
2.3 Web y HTTP
2.4 Programación de la interfaz de acceso al servicio
de transporte fiable de Internet en JAVA:
Sockets con TCP
2.5 Programación de la interfaz de acceso al servicio
de transporte no fiable de Internet en JAVA:
Sockets con UDP
Aplicación 2-5
Arquitectura de las aplicaciones
cliente-servidor
peer-to-peer (P2P)
híbrido ente cliente-servidor y P2P
Dirección IP: identifica de forma única a los
Nota
equipos (sistemas finales, routers,…)
conectados a una red TCP/IP. La asigna el
ISP de forma estática (fija) o dinámica
(variable). Más en breve…
Aplicación 2-6
Arquitectura Cliente-servidor
cliente/servidor
Servidor:
Equipo siempre-ON
Dirección IP fija
Granjas de servidores
por escalabilidad
Clientes:
Se comunican con el
servidor
De manera intermitente
Con IPs dinámicas o fijas
No se comunican
directamente entre ellos
Aplicación 2-7
Arquitectura P2P
El servidor no está
siempre-ON
Los sistemas finales se
comunican entre si de
manera arbitraria
peer-peer
Los peers se comunican
de manera intermintente
y con direcciones IP
distintas en cada ocasión
muy escalable pero difícil
de gestionar
Aplicación 2-8
Híbrido cliente-servidor y P2P
Skype
Aplicación voz-sobre-IP arquitectura P2P
Servidor centralizado: encontrar dirección IP
del interlocutor remoto
Conexión cliente-cliente: directa (sin pasar por
el servidor)
Mensajería instantánea
La charla entre 2 usuarios es P2P
Servidor centralizado: detecta presencia y
localización de los clientes
• Los usuarios registran su IP con el servidor
central al conectarse
• Los usuarios dialogan con el servidor central
en busca de la IP de su contacto
Aplicación 2-9
¿Cómo se implementa la capa de
aplicación?
Protocolo aplicación
A_PDU
Interfaz Usuario
Aplicación
T_SAP
Transporte
Interfaz Usuario
Aplicación
T_SAP
Transporte
Internet
Navegadores Web, p.e: Mozilla firefox, Internet Explore, Safari,…
Aplicación 2-10
El protocolo de nivel de aplicación define:
Tipo de mensaje a
Protocolos de dominio
intercambiar,
e.g., petición, respuesta
Sintaxis del mensaje
Número de campos y
delimitación entre ellos
Semántica del mensaje
Significado de los campos
Reglas de cómo y
cuándo los procesos
envían y responden a los
mensajes
público:
definidos en RFCs
Permiten la inter-
operatibilidad
Ej: HTTP, SMTP
Protocolos propietarios:
Ej: Skype
Aplicación 2-11
Comunicación entre procesos
proceso: programa que corre en
Proceso cliente: proceso que
un equipo (en nuestro caso
implementa un determinado
protocolo de aplicación).
En un mismo equipo, 2
procesos se comunican usando
comunicación entre-procesos
(la proporciona SO).
Procesos en equipos
diferentes se comunican
intercambiando mensajes
(PDU) usando los servicios de
comunicación (en general los
proporciona SO)
inicia la comunicación
Proceso servidor: proceso
que espera a ser
contactado
nota: las aplicaciones
P2P combinan ambos
procesos, cliente y
servidor
Aplicación 2-12
Sockets (SAP)
Un proceso envía/recibe
mensajes a/de su socket
Analogía con una puerta:
El proceso emisor envía el
mensaje a través de la
puerta de salida
El proceso emisor confía en
la infraestructura de
transporte que hay detrás
de la puerta, encargada de
llevar el mensaje hasta la
puerta del receptor
cliente o
servidor
proceso
socket
TCP con
buffers,
variables
Controlado por
el desarrollador
Internet
cliente o
servidor
proceso
socket
TCP con
buffers,
variables
Controlado
por el SO
API: (1) elección del servicio de transporte ; (2)
posibilidad de fijar parámetros (a continuación...)
Aplicación 2-13
¿Cómo se identifica el socket?
Para enviar una carta a un amigo es necesario saber
su dirección para que llegue al buzón de su casa.
Cada sistema final tiene un dirección IP única
de 32 bits.
Nota
A las direcciones IP se les asocia un nombre, que
es el que se utiliza para identificar a los equipos.
Por ejemplo, www.dte.us.es = 150.214.141.196
Más sobre nombres en el apartado siguiente…
P: ¿es suficiente con la dirección para hacer que
llegue la carta a un amigo?
R: No, varias personas pueden estar viviendo en el
misma casa.
Varios protocolos de aplicación pueden estar
ejecutándose en un sistema final.
Navegador, lector de correo, Skype, …
Aplicación 2-14
¿Cómo se identifica el socket?
Cada protocolo de
La ICANN (Internet
aplicación se identifica
por un número de
puerto.
El número de puerto
usado para identificar al
proceso cliente y
servidor en general no
coinciden.
Corporation for Assigned Names
and Numbers), se encarga del
registro de los puertos de
protocolos de aplicación
públicos.
http://www.iana.org/assignments/port-numbers
Existen diferentes tipos
de puertos.
Ej. de número de puerto:
Un socket queda identificado
Servidor HTTP: 80
Servidor Email: 25
Servidor DNS: 53
por:
Dirección IP.
Número de puerto.
Aplicación 2-15
Ejemplo
Interfaz Usuario
Aplicación
Dir IP cliente, puerto
Transporte
Internet
Servidor web DTE
Interfaz Usuario
Aplicación
150.214.141.196, 80
Transporte
Aplicación 2-16
Localhost: Conectando 2 procesos del mismo sistema final
localhost: es un “nombre especial” que está asociado a una
dirección IP especial que sirve para identificar al propio sistema
final.
Permite probar aplicaciones en red en un único sistema final sin
necesidad de estar conectado a una red.
En general permite comunicar procesos en un mismo sistema final
usando los servicios de comunicaciones de Internet.
Nota
proceso1
socket1
proceso2
socket2
Servicio de
Comunicación de
Internet S.O.
Localhost suele tener asociado la IP
127.0.0.1, aunque puede ser otra. Más
en el tema 4…
P: ¿Por qué el Servicio de
Comunicación del sistema final
es capaz de distinguir a cada
proceso?
Aplicación 2-17
¿Qué servicios de transporte necesito?
Perdida de datos
Algunas aplicaciones
toleran algo de perdida
(ej: audio, video)
Otras requieren 100% de
fiabilidad (ej: login,
transferencia de archivos)
Temporización
Algunas aplicaciones
precisan de retardos
cortos para ser
'efectivas' (ej:
telefonía por internet,
juegos interactivos)
Tasa de transferencia
Algunas requieren una
tasa mínima para
funcionar adecuadamente
(ej: multimedia)
Otras, conocidas como
“aplicaciones elásticas”,
hacen uso de la tasa
disponible en cada
momento
Seguridad
Encriptación, integridad
de los datos, …
Aplicación 2-18
Requisitos de algunas aplicaciones comunes
Aplicación
transferencia ficheros
e-mail
páginas web
audio/vídeo en
tiempo real
audio/vídeo archivado
juegos interactivos
mensajería instantánea
Pérdida datos
sin pérdidas
sin pérdidas
sin pérdidas
tolerante
tolerante
tolerante
sin pérdidas
Tasa transferencia
elástica
elástica
elástica
audio: 5kbps-1Mbps
vídeo:10kbps-5Mbps
como la anterior
varios kbps
elástica
Sensible temp.
no
no
no
Sí, 100’s ms
Sí, pocos segs
Sí, 100’s ms
Sí y no
Aplicación 2-19
Servicios de los protocolos de Internet
Servicio TCP:
Orientado a conexión: requiere
Servicio UDP:
Transporte ligero, no
acuerdo previo entre los
procesos cliente y servidor
antes de iniciar la
transferencia
Transporte fiable entre
procesos emisor y receptor
Control de flujo: emisor no
saturará al receptor
Control de congestión: uso
equitativo del ancho de banda
No provee: temporización,
garantizar un ancho de banda,
seguridad
orientado a conexión y no
confiable entre procesos
emisor y receptor
No provee: acuerdo previo
entre procesos, fiabilidad,
contol de flujo, control de
conges
Comentarios de: Tema 2: Nivel de Aplicación - Redes de computadores (0)
No hay comentarios