REDES DE COMPUTADORES
Tema
1 Principios de las aplicaciones en red
2 DNS
3 Web y HTTP
4 Programación de la interfaz de acceso al servicio de transporte fiable de Internet en JAVA: Sockets con TCP
5 Programación de la interfaz de acceso al servicio de transporte no fiable de Internet en JAVA: Sockets con UDP
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
Algunas aplicaciones en red
e-mail
web
mensajería instantánea
Acceso remoto
Compartición de archivos P2P
Juegos online multiusuario
Streaming de video (ej. YouTube)
Voz sobre IP (VoIP)
Videoconferencia
Computación en la nube (cloud)
Creando una aplicación en red
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
(Gp:) Aplicación
transporte
red
enlace
físico
(Gp:) Aplicación
transporte
red
enlace
físico
(Gp:) Aplicación
transporte
red
enlace
físico
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 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
Nota
Arquitectura 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
(Gp:) cliente/servidor
Arquitectura P2P
El servidor no está siempre-ON
Los sistemas finales se comunican entre si de manera arbitraria
Los peers se comunican de manera intermintente y con direcciones IP distintas en cada ocasión
muy escalable pero difícil de gestionar
(Gp:) peer-peer
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
¿Cómo se implementa la capa de aplicación?
Internet
Interfaz Usuario
Interfaz Usuario
Protocolo aplicación
A_PDU
T_SAP
T_SAP
Navegadores Web, p.e: Mozilla firefox, Internet Explore, Safari,
El protocolo de nivel de aplicación define:
Tipo de mensaje a 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
Protocolos de dominio público:
definidos en RFCs
Permiten la inter-operatibilidad
Ej: HTTP, SMTP
Protocolos propietarios:
Ej: Skype
Comunicación entre procesos
proceso: programa que corre en 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)
Proceso cliente: proceso que inicia la comunicación
Proceso servidor: proceso que espera a ser contactado
nota: las aplicaciones P2P combinan ambos procesos, cliente y servidor
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
(Gp:) proceso
(Gp:) TCP con
buffers,
variables
(Gp:) socket
(Gp:) cliente o
servidor
(Gp:) proceso
(Gp:) TCP con
buffers,
variables
(Gp:) socket
(Gp:) cliente o
servidor
Internet
Controladopor el SO
Controlado porel desarrollador
API: (1) elección del servicio de transporte ; (2) posibilidad de fijar parámetros (a continuación…)
Página siguiente |