Sei sulla pagina 1di 82

REDES DE COMPUTADORES

Tema 2: Nivel de Aplicacin


2.1 Principios de las aplicaciones en red
2.2 DNS
2.3 Web y HTTP
2.4 Programacin de la interfaz de acceso al servicio
de transporte fiable de Internet en JAVA: Sockets
con TCP
2.5 Programacin de la interfaz de acceso al servicio
de transporte no fiable de Internet en JAVA:
Sockets con UDP
Departamento de
Tecnologa Electrnica
Some material copyright 1996-2010
J.F Kurose and K.W. Ross, All Rights Reserved

Aplicacin 2-1

Tema 2: Nivel de aplicacin


Objetivos:
Conceptos, aspectos
de implementacin de
protocolos de
aplicacin en red
modelos de
servicio del nivel
de transporte
paradigma clienteservidor
paradigma P2P

Aprender ms sobre
protocolos estudiando
dos protocolos de la
capa de aplicacin de
internet
HTTP
DNS

Programando
aplicaciones en red
socket API

Aplicacin 2-2

Algunas aplicaciones en red


e-mail
web
mensajera instantnea
Acceso remoto
Comparticin de
archivos P2P
Juegos online
multiusuario
Streaming de video
(ej. YouTube)

Voz sobre IP (VoIP)


Videoconferencia
Computacin en la nube
(cloud)

Aplicacin 2-3

Creando una aplicacin en red


escribir programas que

Corran en (diferentes) sistemas


finales
Se comuniquen a travs de la red
Ej: software de un servidor web
qu se comunica con el software
navegador web

no hay que hacer programas


para el ncleo de la red
Los dispositivos del ncleo no
corren las aplicaciones de los
usuarios
Al hacerlo en los sistemas finales
se acelera el tiempo de desarrollo
y propagacin de la aplicacin

Aplicacin
transporte
red
enlace
fsico

Aplicacin
transporte
red
enlace
fsico

Aplicacin
transporte
red
enlace
fsico

Aplicacin 2-4

Tema 2: Nivel de aplicacin


2.1 Principios de las aplicaciones en red
2.2 DNS
2.3 Web y HTTP
2.4 Programacin de la interfaz de acceso al servicio
de transporte fiable de Internet en JAVA:
Sockets con TCP
2.5 Programacin de la interfaz de acceso al servicio
de transporte no fiable de Internet en JAVA:
Sockets con UDP

Aplicacin 2-5

Arquitectura de las aplicaciones


cliente-servidor
peer-to-peer (P2P)
hbrido ente cliente-servidor y P2P
Nota
Direccin IP: identifica de forma nica a los
equipos (sistemas finales, routers,)
conectados a una red TCP/IP. La asigna el
ISP de forma esttica (fija) o dinmica
(variable). Ms en breve

Aplicacin 2-6

Arquitectura Cliente-servidor
Servidor:
Equipo siempre-ON
Direccin IP fija
Granjas de servidores
por escalabilidad
Clientes:
cliente/servidor

Se comunican con el
servidor
De manera intermitente
Con IPs dinmicas o fijas
No se comunican
directamente entre ellos
Aplicacin 2-7

Arquitectura P2P
El servidor no est
siempre-ON
Los sistemas finales se peer-peer
comunican entre si de
manera arbitraria
Los peers se comunican
de manera intermintente
y con direcciones IP
distintas en cada ocasin
muy escalable pero difcil
de gestionar
Aplicacin 2-8

Hbrido cliente-servidor y P2P


Skype
Aplicacin voz-sobre-IP arquitectura P2P
Servidor centralizado: encontrar direccin IP
del interlocutor remoto
Conexin cliente-cliente: directa (sin pasar por
el servidor)
Mensajera instantnea
La charla entre 2 usuarios es P2P
Servidor centralizado: detecta presencia y
localizacin 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
Aplicacin 2-9

Cmo se implementa la capa de


aplicacin?
Interfaz Usuario

Aplicacin

Interfaz Usuario

Protocolo aplicacin
A_PDU

T_SAP

Aplicacin
T_SAP

Transporte

Transporte

Internet
Internet

Navegadores Web, p.e: Mozilla firefox, Internet Explore, Safari,


Aplicacin 2-10

El protocolo de nivel de aplicacin define:


Tipo de mensaje a
intercambiar,
e.g., peticin, respuesta

Sintaxis del mensaje


Nmero de campos y
delimitacin entre ellos

Semntica del mensaje


Significado de los campos

Reglas de cmo y
cundo los procesos
envan y responden a los
mensajes

Protocolos de dominio
pblico:
definidos en RFCs
Permiten la interoperatibilidad
Ej: HTTP, SMTP
Protocolos propietarios:
Ej: Skype

Aplicacin 2-11

Comunicacin entre procesos


proceso: programa que corre en Proceso cliente: proceso que
un equipo (en nuestro caso
inicia la comunicacin
implementa un determinado
Proceso servidor: proceso
protocolo de aplicacin).
que espera a ser
En un mismo equipo, 2
contactado
procesos se comunican usando
comunicacin entre-procesos
(la proporciona SO).
nota: las aplicaciones
Procesos en equipos
P2P combinan ambos
diferentes se comunican
procesos, cliente y
intercambiando mensajes
servidor
(PDU) usando los servicios de
comunicacin (en general los
proporciona SO)
Aplicacin 2-12

Sockets (SAP)
Un proceso enva/recibe
mensajes a/de su socket
Analoga con una puerta:
El proceso emisor enva el
mensaje a travs de la
puerta de salida
El proceso emisor confa en
la infraestructura de
transporte que hay detrs
de la puerta, encargada de
llevar el mensaje hasta la
puerta del receptor

cliente o
servidor

cliente o
servidor

proceso

Controlado por
el desarrollador

proceso
socket

socket
TCP con
buffers,
variables

Internet

TCP con
buffers,
variables

Controlado
por el SO

API: (1) eleccin del servicio de transporte ; (2)


posibilidad de fijar parmetros (a continuacin...)
Aplicacin 2-13

Cmo se identifica el socket?


Para enviar una carta a un amigo es necesario
saber su direccin para que llegue al buzn de su
casa.
Cada sistema final tiene unNota
direccin IP nica
de 32 bits. 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
Ms sobre nombres en el apartado siguiente

P: es suficiente con la direccin para hacer que


llegue la carta a un amigo?
R: No, varias personas pueden estar viviendo en el
misma casa.
Varios protocolos de aplicacin pueden estar
ejecutndose en un sistema final.
Aplicacin 2-14

Cmo se identifica el socket?


Cada protocolo de
La ICANN (Internet
aplicacin se identifica
Corporation for Assigned Names
por un nmero de
and Numbers), se encarga del
puerto.
registro de los puertos de
protocolos de aplicacin
El nmero de puerto
usado para identificar al pblicos.
http://www.iana.org/assignments/port-numbers
proceso cliente y
Existen diferentes tipos
servidor en general no
de puertos.
coinciden.
Un socket queda identificado
Ej. de nmero de
por:
puerto:
Servidor HTTP: 80
Direccin IP.
Servidor Email: 25
Nmero de puerto.
Servidor DNS: 53

Aplicacin 2-15

Ejemplo
Servidor web DTE

Interfaz Usuario

Interfaz Usuario

Aplicacin

Aplicacin
150.214.141.196, 80

Dir IP cliente, puerto

Transporte

Transporte

Internet
Internet
Aplicacin 2-16

Localhost: Conectando 2 procesos del mismo sistema final


localhost: es un nombre especial que est asociado a una
direccin 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

proceso2

socket1

socket2

Servicio
Servicio de
de
Comunicacin
Comunicacin de
de
Internet
Internet S.O.
S.O.

Localhost suele tener asociado la IP


127.0.0.1, aunque puede ser otra. Ms
en el tema 4

P: Por qu el Servicio de
Comunicacin del sistema final
es capaz de distinguir a cada
proceso?
Aplicacin 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)
Temporizacin
Algunas aplicaciones
precisan de retardos
cortos para ser
'efectivas' (ej:
telefona por internet,
juegos interactivos)

Tasa de transferencia
Algunas requieren una
tasa mnima para
funcionar adecuadamente
(ej: multimedia)
Otras, conocidas como
aplicaciones elsticas,
hacen uso de la tasa
disponible en cada
momento
Seguridad
Encriptacin, integridad
de los datos,
Aplicacin 2-18

Requisitos de algunas aplicaciones comunes


Aplicacin Prdida datos Tasa transferencia Sensible temp.

transferencia ficheros
e-mail
pginas web
audio/vdeo en
tiempo real
audio/vdeo archivado
juegos interactivos
mensajera instantnea

sin prdidas
sin prdidas
sin prdidas
tolerante
tolerante
tolerante
sin prdidas

elstica
elstica
elstica
audio: 5kbps-1Mbps
vdeo:10kbps-5Mbps
como la anterior
varios kbps
elstica

no
no
no
S, 100s ms
S, pocos segs
S, 100s ms
S y no

Aplicacin 2-19

Servicios de los protocolos de Internet


Servicio TCP:

Orientado a conexin: requiere


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 congestin: uso
equitativo del ancho de banda
No provee: temporizacin,
garantizar un ancho de banda,
seguridad

Servicio UDP:
Transporte ligero, no
orientado a conexin y no
confiable entre procesos
emisor y receptor
No provee: acuerdo previo
entre procesos, fiabilidad,
contol de flujo, control de
congestin, temporizacin,
ancho de banda
garantizado, ni seguridad.
P: Qu utilidad tiene UDP?

Aplicacin 2-20

Ejemplos: Protocolos de aplicacin y transporte


Aplicacin
e-mail
acceso remoto
web
transferencia de ficheros
streaming multimedia
telefona IP
Traduccin de nombres
en direcciones IP

Protocolo del
nivel de aplicacin

Protocolo de
transporte

SMTP [RFC 2821]


Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (ej: YouTube),
RTP [RFC 1889]
SIP, RTP, propietario
(ej: Skype)

TCP
TCP
TCP
TCP
TCP
o UDP

DNS [RFC 1034]

TCP o UDP (usual)

usualmente UDP

Aplicacin 2-21

Tema 2: Nivel de aplicacin


2.1 Principios de las aplicaciones en red
2.2 DNS
2.3 Web y HTTP
2.4 Programacin de la interfaz de acceso al servicio
de transporte fiable de Internet en JAVA: Sockets
con TCP
2.5 Programacin de la interfaz de acceso al servicio
de transporte no fiable de Internet en JAVA:
Sockets con UDP

Aplicacin 2-22

DNS: Domain Name System


personas: muchos IDs:
DNI, nombre, n
seguridad social...

equipos y routers de
Internet:
direcciones IP (32 bit)
sirven para direccionar
datagramas
nombre, ej:
www.google.com usado
por humanos

P: cmo mapeamos entre


direcciones IP y
nombres y viceversa?

Domain Name System:

Base de datos distribuida


implementada con una jerarqua
de servidores de nombres
Protocolo de nivel de aplicacin:
equipos y servidores de
nombres se comunican para
resolver nombres (traduccin
de direcciones y de nombres)
nota: caracterstica
fundamental de Internet,
implementada en el nivel de
aplicacin!

Aplicacin 2-23

DNS
por qu no centralizar el
Servicio DNS
Traduccin de nombre a IP servicio de DNS?
nico punto de falla
(directa)
Traduccin de IP a nombre Volumen de trfico
(inversa)
Distancia a la base de
Creacin de alias
datos
Mantenimiento
Alias de email
en definitiva...
@dominio
Distribucin de carga
no sera escalable!
Servidores web replicados: Usa UDP
conjunto de Ips para un nico
El cliente enva mensajes
nombre cannico
al puerto 53 del servidor
a travs del socket. Aplicacin 2-24

DNS: cach y actualizacin entradas


Una vez que un servidor DNS aprende una
traduccin, sta se guarda en una memoria cach
Las traducciones ms habituales suelen estar en
cach y no hace falta consultar a otros DNS.
Las entradas de la cach caducan tras un
tiempo determinado (timeout)
Hay mecanismos de actualizacin y notificacin
entre DNS propuestos por el IETF standard
RFC 2136

Aplicacin 2-25

DNS: cmo funciona? (simplificacin)

Cuando una aplicacin en un sistema final consulta al


servicio DNS la direccin IP asociada a un nombre de
equipo, o viceversa. El servicio DNS busca en su cach de
DNS para ver si tiene una entrada para la direccin IP o
el nombre, segn corresponda, puede ocurrir que
encuentre la entrada.
En este caso le devuelve a la aplicacin la IP o el nombre.

no encuentre la entrada.
Enva un mensaje (DNS_PDU) de Solicitud de DNS al servidor de
DNS que tenga configurado y se espera a recibir la Respuesta de
DNS del servidor con la informacin solicitada que entregar a la
aplicacin que solicit su servicio.
En caso de que no sea posible resolver un nombre o una direccin IP
avisa a la aplicacin que solicit su servicio

Nota
Un servidor de DNS al recibir una Solicitud DNS se comporta como el
servicio de DNS en el sistema final, busca en su cach y consulta a otros
servidores de DNS si no encuentra la informacin solicitada.
Aplicacin 2-26

DNS: Cmo funciona? Cont.

Servicio

Cliente

Servidor

Transporte

Nivel

Nivel

No fiable

Aplicacin

Aplicacin

Envo DNS_PDU

Servicio no confirmado

Recepcin DNS_PDU
Envo DNS_PDU

Recepcin DNS_PDU

tiempo

tiempo
Aplicacin 2-27

Tema 2: Nivel de aplicacin


2.1 Principios de las aplicaciones en red
2.2 DNS
2.3 Web y HTTP
2.4 Programacin de la interfaz de acceso al servicio
de transporte fiable de Internet en JAVA: Sockets
con TCP
2.5 Programacin de la interfaz de acceso al servicio
de transporte no fiable de Internet en JAVA:
Sockets con UDP

Aplicacin 2-28

WWW (World-Wide-Web)
Primero, un repaso
Una pgina web contiene una serie de objetos
Esos objetos pueden ser: fichero HTML, imagen
JPEG, applet Java, fichero audio,
Consiste en un fichero base HTML que incluye
objetos referenciados
Cada objeto es direccionable a travs de su URL
Ejemplo de URL (Uniform Resource Locator):
www.informatica.us.es/index.php/organizacion-docente

host name

(nombre del servidor


donde est el objeto)

path name

(nombre de la ruta
al objeto en el servidor)
Aplicacin 2-29

Formato del lenguaje HTML


Sirve para elaborar las pginas web, desde 1991. Se usan elementos con
etiquetas entre <>. Cada elemento suele tener 4 campos: una etiq. inicio
(<html>) y una etiq. cierre (</html>), unos atributos (en la de inicio) y un
contenido (entre ambas).
<!DOCTYPE html>
define inicio documento (opcional)
<html>pgina</html>
define inicio/fin documento
<head>cabecera</head> el contenido de la cabecera
(informacin no visible al usuario, como ttulo,
estilos, metainformacin, etc)
<body>cuerpo</body>
define el cuerpo, contiene:
de <h1> a <h6> encabezados
<table>tabla</table> crea una tabla filas/cols
<a href=URL>enlace</a> hipervnculo: al hacer click
en enlace se solicita la pgina de URL.
<img src=URL/> imagen referenciada, el navegador la
carga a continuacin desde URL para visualizarla.

Nota

Se puede ver el cdigo HTML de una pgina en el


navegador, botn derecho -> ver cdigo fuente
Aplicacin 2-30

Vistazo de HTTP
HTTP: HyperText
Transfer Protocol
Protocolo de nivel de
aplicacin para la web
Modelo cliente/servidor
cliente: navegador que
pide, recibe y muestra
los objetos web
servidor: proceso que
enva los objetos
pedidos por los clientes

Pet
ici
nH
TT
R
PC corriendo esp
P
u
e
s
IExplorer
ta
HT
TP

TP
T
nH

TP Servidor
i
T
c
i
t
H
corriendo
a
Pe
t
s
e
servidor web
spu
e
R
Apache

Linux corriendo
Firefox

Aplicacin 2-31

Vistazo de HTTP (cont.)


Usa TCP:
El cliente inicia una conexin
TCP (crea un socket), con
el puerto 80 del servidor
El servidor acepta la
conexin TCP del cliente
Se intercambian mensajes
HTTP (de nivel de aplicacin)
el navegador web (cliente) y
el servidor web (servidor)
Se cierra la conexin TCP

HTTP es sin estado


El servidor no guarda
informacin acerca de las
peticiones anteriores de
los clientes
Nota
Los protocolos que recuerdan el
estado son complejos:
El histrico de estados
anteriores se debe mantener
Si el cliente o el servidor
caen sus estados pueden ser
inconsistentes y tienen que
sincronizarse
Aplicacin 2-32

Tipo de conexiones HTTP


HTTP no-persistente
Cmo mximo se enva
un objeto por cada
conexin TCP.

HTTP persistente
Se pueden enviar
multiples objetos por
una misma conexin
TCP entre cliente y
servidor.

Aplicacin 2-33

HTTP No-persistente
Supongamos que un usuario introduce esta URL:
http://www.dte.us.es/personal/smartin/lab3/referencias.html

(contiene texto y
referencias a 13 objetos)

1a. La aplicacin cliente HTTP solicita establecer una conexin


Servicio
TCP con el proceso servidor en el equipo www.dte.us.es
Transporte
Aplicacin
Aplicacin
al puerto 80
fiable
1b. La aplicacin servidora HTTP en el equipo www.dte.us.es,
que estaba a la espera de conexiones TCP en el puerto
80, acepta esta conexin, notificndoselo al cliente.
2. El cliente HTTP enva un mensaje de peticin (qu contiene
la URL) en la conexin TCP establecida. El mensaje indica
que el cliente quiere el objeto
/personal/smartin/lab3/referencias.html

Cliente

1a.

Servidora

1b.
2.

3. El servidor HTTP recibe la peticin, forma un mensaje de


respuesta conteniendo el objeto solicitado y lo enva a
travs de su socket.
4. El servidor HTTP solicita cierre de la conexin TCP. (Tambin
lo ha podido hacer el cliente)
5. El cliente HTTP recibe el mensaje de respuesta, conteniendo tiempo
el fichero HTML, muestra el contenido y lo analiza
encontrando 13 referencias a otros objetos.
6. Los pasos 1-5 se repiten para cada una de los 13 objetos (4
imgenes y 9 scripts JavaScript) con URLs distintas.

3.
4.

Aplicacin 2-34

HTTP No-persistente: Tiempo de respuesta

RTT (Round-Trip Time,


tiempo de ida y vuelta):
el tiempo que tarda
Cliente
Servidor
desde que se solicita un
Servicio
Nivel
Nivel
servicio al nivel de
Transporte
Aplicacin
Aplicacin
transporte hasta que
fiable
Peticin Solicitud conexin
este est completado o
solicita envo mensaje
Indicacin Solicitud conexin
RTT
peticin y se empieza a
Respuesta Solicitud conexin
Confirmacin
Solicitud
conexin
recibir primeros bytes
Envo HTTP_PDU
respuesta.
Recepcin HTTP_PDU
RTT
Tiempo de respuesta (TR):
Envo HTTP_PDU
1 RTT, inicio conexin.
TTO
1 RTT, peticin HTTP y
Recepcin HTTP_PDU
primeros bytes de
respuesta HTTP.
tiempo
tiempo
Tiempo transmisin
TR= 2RTT + TTO
bytes objeto solicitado
Aplicacin 2-35
(TTO).
Servicio confirmado

Servicio no confirmado

HTTP Persistente
Inconvenientes del HTTP nopersistente:
Requiere 2 RTTs por objeto
(ms lo que tarde en
transmitirse dicho objeto).
Sobrecarga SO con cada
conexin TCP

Nota
Conexiones HTTP en paralelo:
Los navegadores a menudo
abren varias conexiones TCP
en paralelo para obtener los
objetos referenciados ms
rpidamente, los cuales se
piden de forma simultnea por
cada conexin (sean estas
persistentes o no).

HTTP persistente
El servidor mantiene la
conexin abierta tras
enviar la respuesta
Los siguientes mensajes
HTTP entre el mismo
cliente y el servidor se
envan por la conexin
abierta
El cliente enva una nueva
peticin cuando acaba de
recibir el objeto anterior
Cada objeto referenciado
tarda slo 1 RTT (ms lo
que tarde en transmitirse
dicho objeto).
Aplicacin 2-36

Mensajes HTTP (HTTP_PDU)


Hay 2 tipos de mensajes:
Peticin HTTP:
Enviada por el cliente
Transporta informacin necesaria (HTTP_PCI)
para solicitar un objeto del servidor (HTTP_UD)
Se compone de caracteres ASCII (texto
inteligible)

Respuesta HTTP:
Enviada por el servidor
Transporta si procede el objeto (HTTP_UD)
solicitado por el cliente adems de informacin de
control (HTTP_PCI)

Aplicacin 2-37

Mensaje de Peticin HTTP


Nota

<CR>: Carriage-Return : \r
<LF>: Line-Feed: \n

UD
Lnea de peticin
(comandos GET,
POST, HEAD)

Carcter retorno-de-carro
Carcter nueva-lnea

GET /index.html HTTP/1.1\r\n


Host: www-net.cs.umass.edu \r\n
User-Agent: Firefox/3.6.10\r\n
Lneas de Accept: text/html,Aplicacin/xhtml+xml\r\n
Accept-Language: en-us,en;q=0.5\r\n
cabecera Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
\r y \n al principio
Keep-Alive: 115\r\n
de una lnea indican Connection: keep-alive\r\n
el final de las lneas \r\n

de cabecera

Aplicacin 2-38

Algunas Cabeceras HTTP que puede enviar el cliente


Host: hostname (nombre del servidor web)
User-Agent: versin_del_navegador
Accept-xxx: lista_de_preferencias_para_xxx
Connection: keep-alive
El cliente solicita al servidor una conexin
persistente al servidor
Keep-Alive: nnn
El cliente solicita al servidor el tiempo mximo
de nnn segundos para las conexiones
persistentes

Aplicacin 2-39

Mensaje de Peticin HTTP: formato general


UD
lnea de
peticin

PDU

lneas de
cabecera

PCI

Cuerpo

UD

Aplicacin 2-40

Subida de parmetros (de un formulario)


Una pgina web a menudo incluye un formulario
con unos parmetros que se envan al
servidor. Hay 2 mtodos de envo:

Mtodo POST:
Los parmetros se suben al servidor
en el CUERPO de la peticin
Mtodo GET:
Las entradas se pasan al servidor en
la propia URL, con la lnea de peticin
(separado por ? y &):
GET /buscar?monos&platanos HTTP/1.1\r\n
Host: www.unbuscador.com\r\n

Aplicacin 2-41

Tipos de mtodos
HTTP/1.0 (RFC-1945)
GET
POST
HEAD
Idntico al GET, salvo
que no se incluye el
objeto en el cuerpo de
la respuesta (slo las
cabeceras
correspondientes)

HTTP/1.1 (RFC-2616)
GET, POST, HEAD
PUT
Sube el fichero en el
CUERPO de la peticin
al path especificado en
la URL

DELETE
Borra del servidor el
fichero especificado en
la URL

Aplicacin 2-42

Mensaje de Respuesta HTTP


lnea de estado
(protocolo,
cdigo estado,
frase estado)
lneas de
cabecera

CUERPO
ej: archivo
HTML pedido

HTTP/1.1 200 OK\r\n


Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
Server: Apache/2.0.52 (CentOS)\r\n
Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n
ETag: "17dc6-a5c-bf716880"\r\n
PCI
Accept-Ranges: bytes\r\n
Content-Length: 2652\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html; charset=ISO-8859-1\r\n
\r\n
data data data data data data data data data data
data data data data data data data data data
UD
data data data data data data data data data
data data data data data data data ...

Aplicacin 2-43

Algunas Cabeceras HTTP que puede enviar el servidor


Date: fecha (en el que se enva el mensaje)
Last-Modified: fecha (en la que el objeto se
modific por ltima vez)
Server: versin_del_servidor
Content-Type: tipo_del_objeto (HTML, imagen, )
Content-Length: tamao_del_cuerpo (en bytes)
Connection: keep-alive
El servidor confirma al cliente que esa
conexin ser persistente
Keep-Alive: timeout=ttt, max=nnn
El servidor cerrar la conexin persistente
tras ttt segundos de inactividad o tras nnn
segundos en cualquier caso.
Aplicacin 2-44

Cdigos de estado (Respuesta)


El cdigo de estado aparece en la primera lnea de
la respuesta del servidor al cliente.
Algunos cdigos habituales:
200 OK

Peticin exitosa, el objeto solicitado va a continuacin...

301 Moved Permanently

El objeto se ha movido permanentemente, se especifica la


ubicacin nueva (cabecera Location:)

400 Bad Request

Mensaje de peticin no entendido por el servidor

404 Not Found

El documento solicitado no se encuentra en el servidor

505 HTTP Version Not Supported


Aplicacin 2-45

Prueba el HTTP t mismo


1. Telnet a tu servidor Web favorito:
telnet www.dte.us.es 80

Abre conexin TCP al puerto 80


(puerto HTTP por defecto) de www.dte.us.es
Todo lo que escribas se enva all

2. Escribe una peticin GET:


GET /docencia/ HTTP/1.1
Host: www.dte.us.es

Escribe esto (con doble-enter al


final) para enviar un GET request
reducido a un servidor HTTP

3. Mira el mensaje de respuesta del servidor!


(o puedes usar Wireshark!)
P. Qu ocurre si envo hola?

Aplicacin 2-46

Cookies: manteniendo el estado


Ejemplo de uso:
Muchos servicios web
Susana siempre accede a
usan cookies
Internet desde su PC
4 componentes:
1) cabecera Set-cookie: en Visita una tienda online
el mensaje de respuesta
(ej: Amazon) por
2) cabecera Cookie: en el
primera vez
mensaje de peticin
Al llegar las peticiones,
3) archivo de cookies
almacenado por el
el servidor crea:
equipo del usuario y
Un ID nico
gestionado por el
navegador
Una entrada para esa
4) base de datos back-end
ID en la base de
en el servidor web
datos back-end
Aplicacin 2-47

Cookies: Ejemplo de uso

Cliente visita
AMAZON
ebay 8734

Almacn cookies
ebay 8734
amazon 1678

Servidor de
AMAZON
Mensaje pet. normal
Mensaje resp. normal +

Set-cookie: 1678
Mensaje pet. Normal +

cookie: 1678

...y 1 semana despus


ebay 8734
amazon 1678

Mensaje resp. normal

Amazon crea
el ID 1678
para el usuario creacin
entrada

accin
acceso
especfica
de la cookie

Back-end

acceso
Mensaje pet. normal +

cookie: 1678

Mensaje resp. normal

accin
especfica
de la cookie
Aplicacin 2-48

Cookies: discusin
Posibles aplicaciones:
autorizacin
carritos de la compra
recomendaciones
mantenimiento de
sesin de usuario (ej:
webmail)

Nota

cookies y la intimidad:
las cookies permiten a
los sitios conocer
mucho sobre ti
puedes estar dando
informacin personal a
esas pginas: emails,
nombres, etc...

Aplicacin 2-49

Servidor Proxy (Cach de la Web)


Objetivo: satisfacer la peticin del cliente sin involucrar al
servidor web original
servidor
El navegador se
original
configura para usar el
Proxy-Cach.
Pet
TP
ici
T
nH
nH
Res
Entonces se envan
TT

i
P
TP
tic
cliente puest
T
e
P
aH
aH
t
todas las peticiones
TT
s
ue
P
p
s
Re
P
HTTP al Proxy
T
T
objeto en la cach: se
devuelve el objeto
si no: cach solicita el
objeto al servidor
original y lo devuelve al
cliente.

P
nH

T
i
c
T
ti
Pe
a H Proxy
t
s
ue
p
server
s
Re
cliente

servidor
original

Aplicacin 2-50

Ms acerca del Proxy


El cach acta como
cliente (del servidor
original) y como
servidor (del cliente)
Normalmente se
instalan en los ISP
(universidades,
compaias, ISPs
residenciales)

por qu es interesante?
Reducir el tiempo de
respuesta de la
peticin del cliente
Reducir el trfico de
enlace de datos de una
institucin
Permitir a proveedores
pequeos entregar
de forma eficiente los
contenidos (algo que
tambin permite P2P)
Aplicacin 2-51

GET Condicional

Objetivo
Que el servidor web no enve el objeto si
la cach tiene una versin
actualizada del mismo

Servidor
Proxy o Cach
Proxy (o cach del
navegador): especifica la
Peticin HTTP
fecha de la copia cacheada en
Si el objeto NO
If-modified-since:<fecha>
fue modificado
la peticin HTTP
If-modified-since: <date>

Servidor: en la respuesta van


cabeceras y
a) no va ningn objeto si la
copia no se ha modificado...
HTTP/1.0 304 Not Modified

Respuesta HTTP

despus de
<fecha>

HTTP/1.0 304 Not Modified

Peticin HTTP

b) o bien se enva el objeto si


est modificado, junto con la
fecha de modificacin:

If-modified-since:<fecha>

Last-modified:<fecha>

HTTP/1.0 200 OK
Last-modified:<fecha>

Respuesta HTTP

Si el objeto S
fue modificado
despus de
<fecha>

<data>
Aplicacin 2-52

Tema 2: Nivel de aplicacin


2.1 Principios de las aplicaciones en red
2.2 DNS
2.3 Web y HTTP
2.4 Programacin de la interfaz de acceso al servicio
de transporte fiable de Internet en JAVA: Sockets
con TCP
2.5 Programacin de la interfaz de acceso al servicio
de transporte no fiable de Internet en JAVA:
Sockets con UDP

Aplicacin 2-53

Programacin de Sockets
Objetivo: aprender cmo se programa una aplicacin
cliente/servidor que se comunique usando sockets
Socket API
Se introdujo en BSD4.1
UNIX, 1981
Los sockets se crean, usan y
liberan de forma explcita
por las aplicaciones
Paradigma cliente/servidor
2 tipos de servicios:
No fiable, orientado a
datagramas (UDP)
Fiable, orientado a flujo
de bytes (TCP)

socket
Un interfaz del equipo
local, creado por una
aplicacin y controlado
por el SO (una puerta)
por la que el proceso de
aplicacin puede tanto
envar/recibir mensajes
a/desde otros procesos
remotos (o incluso locales)

Aplicacin 2-54

Protocolo aplicacin
Cliente

Servidor

Interfaz Usuario

Interfaz Usuario

Aplicacin

Aplicacin
Dir IP servidor, puerto

Dir IP cliente, puerto

Transporte

Transporte

Internet
Internet
Aplicacin 2-55

Programacin de Sockets con TCP


Socket: la interfaz entre el proceso y el protocolo de
transporte extremo a extremo (TCP o UDP)
servicio TCP: transferencia fiable de un flujo de
bytes (stream) de un proceso a otro

Controlado por el
desarrollador de
la aplicacin
Controlado por
el Sist.Operativo

proceso

proceso

socket
TCP con
buffers,
variables

socket
TCP con
buffers,
variables

Cliente o
servidor

internet

Controlado por el
desarrollador de
la aplicacin
Controlado por
el Sist.Operativo

Cliente o
servidor
Aplicacin 2-56

Programacin de Sockets con TCP


El cliente debe contactar con el
Cuando es contactado por un
servidor
cliente, el servidor TCP crea
un nuevo socket para que el
Proceso servidor debe estar
proceso servidor se
corriendo primero
comunique con l
El servidor debe haber creado un
Permite al servidor hablar
socket (una puerta) que
con mltiples clientes
aceptar la solicitud de conexin
de cualquier cliente.
El n de puerto de origen
se usa para distinguir a los
El cliente para contactar
clientes [ms en Tema 3]
crear un socket TCP local
especificar la IP y el n de
Punto de vista de la aplicacin
puerto del proceso servidor
TCP provee una transferencia
fiable y ordenada de bytes
Al crearse el socket en el cliente
entre un cliente y un servidor
se crea una conexin TCP con el
servidor
Aplicacin 2-57

Interaccin cliente/servidor con TCP


Servidor

(corriendo en hostid)

crea socket-servidor,
puerto=x, para
recibir peticiones:
welcomeSocket =
ServerSocket()

Esperar primitiva:
Conexin.indication
Conexin.response

Esperar primitiva:
Data.indication

TCP setup

espera peticiones
de conexin entrantes establecimiento
connectionSocket =
de la conexin
welcomeSocket.accept()

Enviar primitiva:

lee peticin de
connectionSocket
escribe respuesta a
connectionSocket
cierra
connectionSocket

hostid = IP o nombre

Cliente

crea socket, se conecta


a hostid, puerto=x
clientSocket =
Socket()

Enviar primitiva:
Conexin.request

envia peticin usando


clientSocket

Esperar primitiva:
Conexin .confirm

Enviar primitiva:
Data.request

lee respuesta de
clientSocket
cierra
clientSocket
Aplicacin 2-58

Process
proceso
cliente

output
output
stream
stream

monitor
monitor

inFromUser

inputinput
stream
stream

outToServer

stream (flujo) es una


secuencia de
caracteres/bytes que entran
o salen a/de un proceso
input stream est conectado a
una fuente de entrada de
datos, como un teclado o un
socket
output stream est conectado
a una fuente de salida de
datos, como un monitor o un
socket
Ej: en el cliente vamos a usar
3 streams y 1 nico socket

keyboard
teclado

inFromServer

Stream de Java

inputinput
stream
stream

Socket
clientSocket
cliente TCP
to network

a la capa
de transporte

TCP
socket

from network

de la capa
de transporte

Aplicacin 2-59

Ejemplo: aplicacin con sockets TCP


Aplicacin de ejemplo
cliente/servidor TCP:
1) el cliente lee una lnea de
entrada standard
(inFromUser stream) , y la
enva al servidor por un
socket (outToServer
stream)
2) el servidor lee la lnea de un
socket
3) el servidor convierte la lnea a
maysculas y la enva de
vuelta al cliente por el socket
4) el cliente la lee del socket
(inFromServer stream) y la
muestra en el monitor
Aplicacin 2-60

Ejemplo: cliente Java (TCP)


import java.io.*;
import java.net.*;
class TCPClient {

Crea
input stream
Crea objeto
clientSocket
de tipo Socket,
conecta al servidor
Crea
output stream
conectado al socket

Este paquete contiene las clases


Socket() y ServerSocket()

public static void main(String argv[]) throws Exception


{
Nombre del servidor
String sentence;
ej: www.dte.us.es
String modifiedSentence;
ICI
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("hostname", 6789);
DataOutputStream outToServer = N de puerto del servidor
ICI
new DataOutputStream(clientSocket.getOutputStream());

Aplicacin 2-61

Ejemplo: cliente Java (TCP) (cont)


Crea
input stream
conectado al socket

BufferedReader inFromServer =
new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));

Enviar primitiva:

sentence = inFromUser.readLine(); PDU

Data.request

Envia lnea
al servidor

outToServer.writeBytes(sentence + '\n');

Lee lnea
del servidor

Esperar primitiva:
Data.indication

modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);

Cierra socket

clientSocket.close();

(cierra la puerta al salir!)

}
}
Aplicacin 2-62

Ejemplo: servidor Java (TCP)


import java.io.*;
import java.net.*;
class TCPServer {

Crea
socket de acogida
en el puerto 6789
El socket de acogida espera
con el mtodo accept()
al contacto de un cliente,
retorna un nuevo socket

Crea
input stream
conectado al socket

public static void main(String argv[]) throws Exception


{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new
InputStreamReader(connectionSocket.getInputStream()));

Aplicacin 2-63

Ejemplo: servidor Java (TCP) (cont)


Crea
output stream
conectado al
socket

DataOutputStream outToClient =
new DataOutputStream(connectionSocket.getOutputStream());
PDU
Esperar primitiva:
clientSentence = inFromClient.readLine();
Data.indication

Lee lnea
del socket

capitalizedSentence = clientSentence.toUpperCase() + '\n';


Escribe lnea
al socket

outToClient.writeBytes(capitalizedSentence);
connectionSocket.close();
}
}

Enviar primitiva:

PDU

Data.request

Fin del bucle while,


vuelve y espera la
conexin de otro cliente
Aplicacin 2-64

Tema 2: Nivel de aplicacin


2.1 Principios de las aplicaciones en red
2.2 DNS
2.3 Web y HTTP
2.4 Programacin de la interfaz de acceso al servicio
de transporte fiable de Internet en JAVA: Sockets
con TCP
2.5 Programacin de la interfaz de acceso al servicio
de transporte no fiable de Internet en JAVA:
Sockets con UDP

Aplicacin 2-65

Programacin de Sockets con UDP


UDP: no hay conexin entre
cliente y servidor
Sin negociacin
El cliente explcitamente
adjunta la direccin IP y
puerto de destino de cada
mensaje (PDU) que quiera
enviar.
El servicio de transporte
debe pasar al servidor la
direccin IP y el puerto del
mensaje recibido.
UDP: los datos transmitidos
pueden ser recibidos de
forma desordenada, o
algunos pueden perderse

Punto de vista de la aplicacin:


UDP proporciona una transferencia
no fiable de datagramas
(grupos de bytes) entre el
cliente y el servidor

Aplicacin 2-66

Interaccin cliente/servidor con UDP


Servidor

(corriendo en hostid)

crea socket-datagrama,
puerto= x, para
solicitudes entrantes
serverSocket =
DatagramSocket()

crea socket-datagrama,
clientSocket =
DatagramSocket()
Esperar primitiva:
Data.indication

lee solicitud de
serverSocket

Cliente

crea datagrama con IP del servidor


y puerto=x; enva datagrama va
clientSocket
Enviar primitiva:
Data.request

escribe respuesta en
serverSocket
especificando
direccin IP
y n de puerto

hostid = IP o nombre

lee datagrama de
clientSocket
cierra
clientSocket

Aplicacin 2-67

Ejemplo: cliente (con datagramas UDP)


Input
input
stream
stream

proceso
Process

monitor
monitor

inFromUser

keyboard
teclado

Entrada: recibe

cliente

paquete (TCP
reciba streams
de bytes)

UDP
Paquete
packet
UDP

receivePacket

paquete (TCP
enviaba streams
de bytes)

sendPacket

Salida: enva
UDP
Paquete
packetUDP

Socket
cliente UDP
clientSocket

to network

a la capa
de transporte

UDP
socket

from network

de la capa
de transporte

Aplicacin 2-68

Ejemplo: cliente Java (UDP)


import java.io.*;
import java.net.*;

Crea
input stream
Crea socket UDP
en puerto libre
Traduce nombre
del servidor
a direccin IP
usando DNS

class UDPClient {
public static void main(String args[]) throws Exception
{
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("hostname");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
Aplicacin 2-69

Ejemplo: cliente Java (UDP) (cont)


Crea T_IDU con
A_PDU a enviar,
longitud, direccin
IP y n de puerto

A_PDU

T_ICI

DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);

Enva T_IDU

T_IDU

Creamos T_IDU
en blanco

Data.request

DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);

Recibimos
T_IDU

Enviar primitiva:

Esperar primitiva:
Data.indication

String modifiedSentence =
new String(receivePacket.getData(),0,
String(receivePacket.getLength());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
}

Aplicacin 2-70

Ejemplo: servidor Java (UDP)


import java.io.*;
import java.net.*;

Crea socket UDP en


puerto 9876
conocido por cliente

class UDPServer {
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{

Creamos T_IDU
en blanco
Recibimos
T_IDU

DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
Esperar primitiva:
Data.indication

Aplicacin 2-71

Ejemplo: servidor Java (UDP) (cont)


String sentence = new String(receivePacket.getData(),0,
receivePacket.getLength());
InetAddress IPAddress = receivePacket.getAddress();

Obtiene de la
T_ICI la direccin
IP y n de puerto
del emisor

int port = receivePacket.getPort();


String capitalizedSentence = sentence.toUpperCase();

Crea T_IDU con


A_PDU a enviar,
longitud, direccin
IP y n de puerto

sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
port);

Enva
T_IDU

serverSocket.send(sendPacket);
}
}
}

Fin del bucle while,


vuelve y espera la llegada
de otro datagrama
Aplicacin 2-72

Departamento de
Tecnologa Electrnica

Redes de Computadores
Tema 2: Nivel de Aplicacin

EJERCICIOS

Aplicacin 2-73

Pr1: Verdadero o Falso?


a) Un usuario solicita una pgina web que consta de texto y 3
referencias a imgenes. Para obtener esa pgina, el cliente enva
un mensaje de solicitud y recibe cuatro mensajes de respuesta.
b) Dos pginas web diferentes (www.mit.edu/research.html y
www.mit.edu/students.html ) se pueden enviar a travs de la
misma conexin persistente.
c) Con las conexiones no persistentes entre un navegador y un
servidor de origen, un nico segmento TCP puede transportar
dos mensajes de solicitud HTTP distintos.
d) La lnea de cabecera Date: del mensaje de respuesta HTTP
indica cundo el objeto fue modificado por ltima vez.
e) Los mensajes de respuesta HTTP nunca incluyen un cuerpo de
mensaje vaco.
Aplicacin 2-74

Pr2: Aplicacin-Transporte
Un cliente HTTP desea recuperar un documento web que
se encuentra en una URL dada. Inicialmente, la direccin
IP del servidor HTTP es desconocida.

Qu protocolos de la capa de aplicacin y de


la capa de transporte, adems de HTTP, son
necesarios en este escenario?

Aplicacin 2-75

Pr3: Cabeceras Cliente HTTP


La siguiente cadena ASCII ha sido capturada cuando el navegador enviaba un mensaje GET HTTP.
NOTA: La anchura de las lneas del recuadro es 60 caracteres
GET /cs453/index.html HTTP/1.1Host: gaia.cs.umass.eduUse
r-Agent: Mozilla/5.0 (Windows;U; Windows NT 5.1; en-US; rv:1
.7.2) Gecko/20040804 Netscape/7.2 (ax)Accept: ext/xml, app
lication/xml, application/xhtml+xml, text/html;q=0.9, text/p
lain;q=0.8, image/png, */*;q=0.5Accept-Language: en-us,en;
q=0.5Accept-Encoding: zip,deflateAccept-Charset: ISO-885
9-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-a
live

NOTA: es un retorno de carro y es un fin de lnea.


Responda a las siguientes cuestiones, indicando en que parte del mensaje GET HTTP se encuentra la respuesta a la cuestin:
a) Cul es la URL del documento solicitado?
b) Qu versin de HTTP se est ejecutando en el navegador?
c) Solicita el navegador una conexin persistente o no?
d) Cul es la direccin IP del host que corre el navegador?
e) Qu tipo de navegador enva el mensaje? Por qu es necesario indicar el tipo de navegador en el mensaje?
f) Cuntos bytes ocupa la HTTP_PDU enviada por el cliente?
g) Cuntos bytes de HTTP_UD transporta?

Aplicacin 2-76

Pr4: Cabeceras Servidor HTTP


La siguiente cadena muestra la respuesta devuelta por el servidor web al mensaje del problema anterior.
NOTA: La anchura de las lneas del recuadro es 60 caracteres
HTTP/1.1 200 OKDate: Tue, 07 Mar 2008 12:39:45 GMTServer
: Apache/2.0.52 (Fedora)Last-modified: Sat, 10 Dec 2005 18
:27:46 GMTETag: 526c3-f22-a88a4c80Accept-Ranges: bytes
Content-Length: 3874Keep-Alive: timeout=max=100Connect
ion: keep-aliveContent-Type: text/html; charset=ISO-8859-1
<!doctype html public -//w3c//dtd html 4.0 transitional
//en><html><head><meta name=GENERATOR content=Mozi
lla/4.79 [en] (Windows NT 5.0; U) Netscape]><title></he
ad>...Aqu seguira el resto del documento HTML...

NOTA: es un retorno de carro y es un fin de lnea.


Responda a las siguientes cuestiones, indicando en que parte del mensaje respuesta HTTP se encuentra la respuesta a la cuestin:
a) Ha encontrado el servidor el documento? En qu momento se suministra la respuesta con el doc.?
b) Cundo fue modificado por ltima vez el documento?
c) Cuntos bytes contiene el documento devuelto?
d) Cules son los primeros 5 bytes del documento devuelto?
e) Ha acordado el servidor emplear una conexin persistente? (si es que s diga el tiempo mximo de inactividad que se permite)
f) Cuntos bytes de HTTP_UD transporta?
g) Cuntos bytes ocupa la HTTP_PDU enviada por el servidor?

Aplicacin 2-77

Pr5: Tiempo de transferencia (I)


Suponga que en su navegador hace clic en un vnculo a una pgina
web. La direccin IP correspondiente al URL asociado no est
almacenada en la cach de su host local, por lo que es necesario
realizar una bsqueda DNS.
Suponga que el tiempo de ida y vuelta (RTT) de la consulta al
servidor DNS es RTTDNS
Suponga tambin que la pgina web asociada con el vnculo es un
pequeo fichero HTML (lo que supone un tiempo de transmisin
despreciable) y que no contiene referencias a otros objetos.
Sea RTT0 el tiempo RTT entre el host local y el servidor web.
Cunto tiempo transcurre desde que el cliente hace clic en el
vnculo hasta que recibe el objeto?

Aplicacin 2-78

Pr6: Tiempo de transferencia (II)


Continuando con el Problema 5, suponga que el archivo
base HTML hace referencia a 8 objetos muy pequeos que
se encuentran en el mismo servidor.
Despreciando los tiempos de transmisin, para cargar la
pgina web completa, cunto tiempo transcurre si se
utiliza
a) HTTP no persistente sin conexiones TCP en paralelo?
b) HTTP no persistente con 5 conexiones en paralelo?
c) 1 nica conexin HTTP persistente?

Aplicacin 2-79

Pr7: Proxy (I)


Servidores
originales

Supongamos una universidad


Tamao objetos web = 100 Kbits
Tasa de peticiones media de los
navegadores a los servidores web
originales = 15 peticiones/seg
Retardo Internet del router superior a
cualquier servidor original = 2 seg
Las peticiones web son pequeas y no
Red
generan retardo.

En consecuencia tenemos:

Internet

institucional

Enlace de acceso
1,5 Mbps
10 Mbps LAN

Uso de la LAN = 15%


Uso del enlace = 100%
Al tener un uso del enlace del 100% (La/R ~ 1)
las colas pueden crecen indefinidamente (y
con ellas el retardo de cola).
Aplicacin 2-80

Pr7: Proxy (II)


Propuesta de solucin:
Aumentar ancho de banda del
enlace a 10 Mbps

Uso de la LAN ?
Uso del enlace?
Retardo total medio?
Comentarios?

Servidores
originales
Internet

Enlace de acceso
10Mbps
Red
institucional

10 Mbps LAN

Aplicacin 2-81

Pr7: Proxy (III)


Servidores
originales

Otra posible solucin:

Instalar proxy-cach
Supongamos tasa xito 0.4:

Internet

40% peticiones satisfechas


inmediatamente
60% peticiones satisfechas
por el servidor original

Uso de la LAN ?
Uso del enlace?
Retardo total medio?
Comentarios?

Enlace de acceso
1,5 Mbps
Red
institutional

10 Mbps LAN

Proxy
institucional

Aplicacin 2-82

Potrebbero piacerti anche