Você está na página 1de 30

Capa de Aplicación

Objetivos  Protocolos conocidos de


 Aspectos conceptuales la capa de Aplicación
de protocolos de  HTTP
Aplicación de red e  FTP
implementacion  SMTP / POP3 / IMAP
 Modelos de servicio  DNS
capa transporte  Aplicaciones de
 Paradigma cliente- programación de red
servidor  socket API
 Paradigma peer-to-
peer
Algunas Aplicaciones de red
 e-mail  voice sobre IP
 Web  video conferencia
 mensajería instantánea tiempo-real
 login remoto  grid computing
 compartimiento de
archivos P2P
 juegos en red multi-
usuarios
Creando una app de red aplicación
transporte

Escribir programas que


red
enlace
física
 corran sobre (diferentes)
sistemas finales
 comunicación sobre la red
 software servidor web se
comunica con software
browser
No hay necesidad de escribir aplicación
transporte
software para dispositivos red
enlace
network-core física aplicación
transporte
red
 Dispositivos network-core enlace

no ejecutan app de usuario


física

 Aplicaciones sobre sistemas


finales tienen en cuenta el
desarrollo de aplicación
Arquitecturas de Aplicación
 Cliente-servidor
 Peer-to-peer (P2P)
 Hibrido entre cliente-servidor y P2P
Arquitectura cliente-servidor
servidor:
 siempre conectado
 dirección IP permanente
 granjas de servidores

clientes:
 comunicación con servidor
cliente/servidor  puede estar conectado
intermitentemente
 puede tener direcciones IP
dinámicas
 no se comunican directamente
entre sí
Arquitectura P2P
 servidorno siempre
conectado
 arbitrariamente end peer-peer
systems se comunican
directamente
 peers son conectados
intermitentemente y
cambian direcciones IP
Hibrido cliente-servidor y P2P
Skype
 Aplicación voice-sobre-IP P2P
 server centralized: encontrando direcciones de
grupos remotos:
 conección cliente-cliente: direct (no a través de
servidor)
Mensajería instantánea
 chatting entre dos usuarios es P2P
 Service centralized: cliente presencia
deteccion/locacion
• usuarios registran su IP con servidor central
para conectarse online
• usuarios contactan servidor central para
encontrar IP de buddies
Comunicando Procesos
Proceso: programa Proceso cliente: inicia
ejecutándose en un comunicación
host. Proceso servidor: espera
 dentro mismo host, dos ser contactado
procesos usan
comunicación inter-
proceso (SO).
 Procesos diferentes  Nota: aplicaciones con
hosts comunican arquitecturas P2P
intercambiando tienen cliente procesos
mensajes y procesos servidor
Sockets
host o host o
 procesos envían/reciben server
servidor
mensajes a/desde su socket
 socket es una puerta controlado por
desarrollador app
 enviar procesos empujando proceso proceso
mensajes fuera de la puerta socket socket
 enviar el proceso depende de TCP con TCP con
la infraestructura de buffers, Internet buffers,
transporte al otro lado de la variables variables
puerta que lleva mensaje al
socket en el proceso receptor controlado
por SO

 API: (1) elige del protocolo transporte; (2) fijar


parámetros
Direccionando procesos
 para recibir mensajes, el
proceso debe tener
identificador
 dispositivo host tiene una
unica dirección IP 32-bit
 P: ¿la dirección IP del
host basta para
identificar el proceso?
Direccionando procesos
 para recibir mensajes,  identificador incluye
el proceso debe tener dirección IP y números de
identificador puerto asociado con
 dispositivo host tiene proceso en el host.
una unica dirección IP  números de puerto:
32-bit  servidor HTTP: 80
 P: la dirección IP del  servidor Mail: 25
host donde se ejecuta  para enviar un mensaje
el proceso basta para HTTP al servidor web
identificar el proceso? gaia.cs.umass.edu:
 R:  dirección IP: 128.119.245.12
 número puerto: 80
¿Qué definen los protocolos de
capa de aplicación?
 Tipos de mensajes Protocolos de dominio
intercambiados, público:
 solicitud, respuesta  definidos en RFCs
 Sintaxis del mensaje:  Interoperabilidad
 campos en los mensajes
 HTTP, SMTP
 Semántica del mensaje
Protocolos proprietarios:
 significado de la
 Skype
información en campos
 Reglas para cuándo y
cómo procesos envían &
responden mensajes
Qué servicio transporte necesitan App?
Pérdida de datos Throughput
 apps (ej. audio) toleran  apps (ej. multimedia)
pérdida de datos requieren minima cantidad
 apps (ej. transferencia de throughput
archivos, telnet) requieren  other apps (“elastic apps”)
100% confiabilidad en
make use of whatever
transferencia de datos
throughput they get
Temporización
 apps (ej. telefonía
Seguridad
 Encripcion, integridad
Internet, juegos
interactivos) requieren datos
bajos retardos
Requerimientos de transporte de App comunes

Aplicacion Data loss Throughput Time Sensitive

file transfer no loss elastica no


e-mail no loss elastica no
Web documents no loss elastica no
real-time audio/video loss-tolerant audio: 5kbps-1Mbps yes, 100’s msec
video:10kbps-5Mbps
stored audio/video loss-tolerant anterior yes, few secs
interactive games loss-tolerant few kbps up yes, 100’s msec
instant messaging no loss elastica yes and no
Internet apps: aplication, protocolos transporte

Protocolo Capa Protocolo transport


Aplicacion Application
TCP
e-mail SMTP [RFC 2821] TCP
remote terminal access Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
file transfer FTP [RFC 959] TCP o UDP
streaming multimedia HTTP (ej Youtube),
RTP [RFC 1889]
Internet telephony SIP, RTP, proprietario tipicamente UDP
(ej., Skype)
Web y HTTP

 Página Web consiste de objectos


 Objectos pueden ser archivo HTML, imagen JPEG,
appletJava, archivo audio,…
 Página Web consiste de archivo base HTML que
incluye objectos referenciados
 URL
 Ejemplo URL:

www.someschool.edu/someDept/pic.gif

nombre host nombre ruta


HTTP

HTTP: protocolo de
transferencia de sol
icit
ud
hipertexto PC ejecutando resp
ues
HT
TP
 El protocolo de capa de Explorer ta
HT
TP
aplicación de la Web
 Model cliente/servidor
TTP
H
 cliente: browser i tud TP Server
i c T
 servidor: servidor Web sol s ta H ejecutando
e
e s pu Servidor
r Web
Apache

Mac ejecutando
Navigator
HTTP
Usa TCP: HTTP es “sin estado”
 cliente inicia TCP coneccion  servidor no mantiene
(crea socket) al servidor, informacion solicitudes
puerto 80 pasadas de clientes
 servidor acepta
coneccionTCP del cliente
 mensajes HTTP
intercambiados entre
browser (cliente HTTP) y
servidor Web (servidor
HTTP )
 coneccionTCP se cierra
conexiones HTTP
HTTP no persistente HTTP persistente
 un objeto es enviado  múltiples objetos
sobre una conección pueden ser enviados
TCP. sobre una conección
TCP.
HTTP no persistente
(contiene texto,
www.someSchool.edu/someDepartment/home.index referencias a 10
Imágenes jpeg)

1a. cliente HTTP inicia conexion


TCP a servidor HTTP (proceso)
en www.someSchool.edu en
1b. servidor HTTP en host
www.someSchool.edu espera
puerto 80
por conexionTCP en puerto 80.
“accepta” conexion, notificando
al cliente.
2. cliente HTTP envía mensaje
petición HTTP (URL) en
socket conexion TCP. Mensaje 3. servidor HTTP recibe
indica que quiere el objecto mensaje petición, construye
someDepartment/home.index mensaje respuesta
conteniendo el objecto
solitado, y envía mensaje a su
socket
tiempo
HTTP no persistente

4. servidor HTTP cierra


conexion TCP.
5. cliente HTTP recibe mensaje
respuesta conteniendo archivo
html. Analiza archivo html,
encuentra 10 objetos
referenciados jpeg.
tiempo6. Pasos 1-5 repetidos para cada
uno de 10 objetos jpeg
HTTP No-Persistente: Tiempo de
Respuesta
Definición de RTT: tiempo para
un paquete viajar desde
cliente a servidor y volver.
Tiempo de Respuesta: inicia conexión
 un RTT para iniciar conexión TCP
RTT
TCP
 un RTT para petición HTTP y solicita
archivo
primeros bytes de respuesta RTT
tiempo
HTTP. transmisión
archivo
 tiempo transmisión archivo archivo
recibido
total = 2RTT+ tiempo de
transmisión tiempo
tiempo
HTTP Persistente

HTTP no persistente: HTTP Persistente


 requiere 2 RTTs por objeto  servidor deja conexion
 SO overhead para cada abierta después de
conexión TCP responder al cliente
 browser abre conexiones  posteriores mensajes HTTP
TCP paralelas para traer entre cliente/servidor
objetos referenciados enviados sobre conexión
abierta
 cliente envía petición tan
pronto encuentra un objeto
referenciado
 Un RTT para todos los
objetos referenciados
mensaje de petición HTTP
 dos tipos de mensajes HTTP: petición, respuesta
 mensaje de petición HTTP:
 ASCII (formato leíble personas)

línea petición
(comandos GET, POST, GET /somedir/page.html HTTP/1.1
HEAD) Host: www.someschool.edu
User-agent: Mozilla/4.0
línea Connection: close
cabecera Accept-language:fr

line feed
indica fin del (cuerpo de entidad)
mensaje
mensaje petición HTTP: formato
general
llenando un formulario
método Post:
 páginas Web incluyen
formularios método URL:
 Entrada es cargada al  Usa método GET
servidor en entity  Entrada es cargada en
body campo URL de línea de
petición :

www.somesite.com/animalsearch?monkeys&banana
Tipos de métodos
HTTP/1.0 HTTP/1.1
 GET  GET, POST, HEAD
 POST  PUT
 HEAD  carga archivo en entity
body a ruta especificada en
 Pide al servidor dejar el
campo URL
objeto solicitado fuera
de la respuesta  DELETE
 borra archivo especificado
en campo URL
Mensaje de respuesta HTTP
Linea de estado
(protocolo
código estado HTTP/1.1 200 OK
frase estado) Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
líneas Server: Apache/1.3.0 (Unix)
header Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html

datos, ej., datos datos datos datos datos ...


archivo
HTML
Códigos de estado respuesta HTTP
En la primera línea del mensaje de respuesta
servidor - > cliente.
200 OK
 La solicitud tuvo éxito
301 Moved Permanently
 requested object moved, new location specified later in
this message (Location:)
400 Bad Request
 mensaje solicitado no entendido por servidor
404 Not Found
 documento solicitado no encontrado en este servidor
505 HTTP Version Not Supported
Probando HTTP

1. Telnet a su servidor Web favorito:


telnet cis.poly.edu 80 Abre conexión TCP a puerto 80
(puerto servidor default) en cis.poly.edu.
Cualquier cosa digitada es enviada
al puerto 80 en cis.poly.edu

2. Escribe en una petición GET HTTP:


GET /~ross/ HTTP/1.1 Digitandoiesto (return dos veces),
Host: cis.poly.edu enviando petición GET a servidor
HTTP

3. Mira el mensaje de respuesta enviado por servidor


HTTP

Você também pode gostar