Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capa de Aplicación
Copyright 1996-2002.
J.F Kurose y K.W. Ross.
Todos los derechos reservados.
Capítulo 2: Capa de aplicación
Nuestros objetivos: r Aprendizaje de
r Aspectos conceptuales protocolos por medio
y de implementación de del estudio de
los protocolos de las protocolos a nivel de
aplicaciones de red. aplicación.
m Modelos de servicio m HTTP.
m FTP.
de la capa de
m SMTP / POP3 / IMAP.
transportes
m DNS.
m Paradigma cliente-
servidor. r Programación de
m Paradigma entre iguales. aplicaciones de red.
m Socket de API.
Capítulo 2: Tabla de contenidos
r 2.6 Programación de
r 2.1 Principios de los sockets con TCP.
protocolos de la capa r 2.7 Programación de
de aplicación.
r 2.2 La Web y HTTP.
sockets con UDP.
r 2.8 Construcción de un
r 2.3 Transferencia de
archivos: FTP. servidor web sencillo.
r 2.4 Correo electrónico r 2.9 Distribución de
en Internet. contenidos:
m SMTP, POP3, IMAP. m Caché web.
r 2.5 DNS: el servicio de m Redes de distribución de
contenidos.
directorio de m Compartición de archivos
Internet. entre iguales.
Aplicaciones de red: jerga
Proceso: programa que se Agentes de usuario:
ejecuta en un host. interfaces con un
r En el mismo host, dos usuario por encima y
una red por debajo.
procesos se comunican
r Implementa interfaces
utilizando comunicación
de usuario y protocolos
interproceso (definidos
a nivel de aplicación.
por un sistema m Web: navegador.
operativo). m Correo electrónico:
r Los procesos que se lector de correo.
m Transmisión de
ejecutan en diferentes
audio/vídeo:
hosts se comunican con reproductor multimedia.
un protocolo de capa de
aplicación.
Aplicaciones y protocolos de la capa de aplicación
Aplicación: comunicación,
procesos distributivos. Aplicación
Transporte
Red
m Por ejemplo: correo electrónico, Enlace de datos
Física
web, compartición de archivos
entre iguales, mensajería
instantánea.
m Funcionamiento en sistemas finales
(hosts).
m Intercambio de mensajes para la
implementación de aplicaciones.
Protocolos de capa de aplicación
m Una parte de la aplicación. Aplicación
Aplicación
Transporte
Transporte
m Definición de mensajes Red
Red
Enlace de datos
Cliente: Petición
r Inicia el contacto con el servidor
(habla primero).
r Normalmente solicita un servicio
del servidor.
r Web: cliente implementado en el Respuesta
navegador; correo electrónico: en
Aplicación
el lector de correo. Transporte
Red
Servidor: Enlace de datos
Física
www.escuela.edu/departamento/imagen.gif
Retorno de carro y
avance de línea (Retorno de carro extra, avance de línea)
que indican el final
del mensaje
Mensaje HTTP de petición: formato general
Línea de
método versión
petición
Nombre del campo de
cabecera
valor
Líneas de
cabecera
Nombre del campo de valor
cabecera
Cuerpo de
entidad
Descarga de la entrada de formulario
Método POST:
r La página Web suele Método URL:
r Utiliza el método GET.
incluir una entrada de
r La entrada se descarga en
formulario.
el campo URL de la línea de
r La entrada se petición:
descarga al servidor
en el cuerpo de
entidad.
www.somesite.com/animalsearch?monkeys&banana
Tipos de métodos
HTTP/1.0 HTTP/1.1
r GET. r GET, POST, HEAD.
r POST. r PUT:
r HEAD. m Descarga el archivo en
el cuerpo de entidad a
m Pide al servidor que
la ruta especificada en
excluya el objeto
el campo URL.
solicitado de la
respuesta. r DELETE:
m Borra el archivo
especificado en el
campo URL.
Mensaje HTTP de respuesta
Línea de estatus
(protocolo del
código de estatus
HTTP/1.1 200 OK
y la frase
Connection close
de estatus) Date: Thu, 06 Aug 1998 12:00:15 GMT
Líneas de Server: Apache/1.3.0 (Unix)
cabecera Last-Modified: Mon, 22 Jun 1998
...
Content-Length: 6821
Content-Type: text/html
200 OK
m petición exitosa, el objeto requerido aparece
posteriormente en este mensaje.
301 Moved Permanently
m el objeto demandado ha sido movido, su nueva localización
se especifica posteriormente en este mensaje (Location:).
400 Bad Request
m el servidor no comprendió el mensaje de petición.
404 Not Found
m el documento pedido no existe en este servidor.
505 HTTP Version Not Supported
Ponga a prueba el HTTP (como cliente)
usted mismo
1. Telnet a su servidor web favorito:
telnet www.eurecom.fr 80 Abre la conexión TCP al puerto 80.
(por defecto puerto servidor HTTP) en
www.eurecom.fr.
Cualquier cosa que se escriba es enviada a
www.eurecom.fr
2. Escriba una petición HTTP tipo GET:
GET /~ross/index.html HTTP/1.0 Escribiendo esto (con doble retorno
de carro), está enviando esta petición
GET mínima (pero completa) al servidor
HTTP.
cliente servidor
en
Archivo Típico msj http de petición de trad
el servidor dat a en
de cookie os
Típico mensaje de crea un número de la ba
res se
ebay: 8734 respuesta + de identificación pa
ldo
Set-cookie: 1678 1678 para el usuario
Archivo
de cookie Típico mensaje http de
amazon: 1678 petición Acción
so
ebay: 8734 cookie: 1678 específica acce
Típico mensaje de respuesta
cookie
so
una semana más tarde:
ce
ac
Típico mensaje http de
Archivo Acción
petición
de cookie
amazon: 1678 cookie: 1678 específica
Típico mensaje de respuesta
ebay: 8734 cookie
Cookies aparte
Cookies y privacidad:
Qué aportan las cookies: r Las cookies permiten que
r Autorización. los sitios sepan mucho
sobre usted.
r Carro de la compra.
r Puede proporcionar su
r Recomendaciones. nombre y correo
r Sesión de usuario con electrónico a los sitios.
r Los motores de búsqueda
estado (correo
utilizan el redirección y las
electrónico web) cookies para saber aún más.
r Las empresas de publicidad
consiguen información a
través de los sitios.
GET condicional: caché por parte del cliente
cliente servidor
r Objetivo: no enviar objetos si
el cliente tiene una versión mensaje HTTP de
caché actualizada. petición objeto
If-modified-since:
r Cliente: especifica la fecha no
<date>
de la copia en caché en la modificado
respuesta HTTP
petición HTTP:
HTTP/1.0
If-modified-since: 304 Not Modified
<date>
r Servidor: su respuesta no
contiene ningún objeto si la mensaje HTTP de
copia en caché está petición
actualizada: If-modified-since: objeto
HTTP/1.0 304 Not
<date> modificado
Modified respuesta HTTP
HTTP/1.0 200 OK
<data>
Capítulo 2:Tabla de contenidos
r 2.6 Programación de
r 2.1 Principios de los
sockets con TCP.
protocolos de la capa
r 2.7 Programación de
de aplicación.
sockets con UDP.
r 2.2 La Web y HTTP.
r 2.8 Construcción de un
r 2.3 Transferencia de
servidor de web sencillo.
archivos: FTP.
r 2.9 Distribución de
r 2.4 Correo electrónico
contenidos:
en Internet. m Caché web.
m SMTP, POP3, IMAP. m Redes de distribución de
r 2.5 DNS: el servicio de contenidos.
directorio de m Compartición de archivos
entre iguales.
Internet.
FTP: El protocolo de transferencia de archivos
Interfaz Transferencia de
Cliente Servidor
de usuario archivo
FTP FTP
FTP
usuario
o host Sistema Sistema
local de remoto de
archivos archivos
Agente usuario
SMTP agente
de usuario
Servidores de correo:
agente
r Buzón de correo: contiene los de usuario
servidor agente
mensajes de entrada del de correo de usuario
usuario.
r Cola de mensajes: mensajes SMTP
servidor
de correo de salida (para ser de correo agente
enviados). SMTP de usuario
r Protocolo SMTP: entre
servidores para mandar SMTP
mensajes de correo servidor
electrónico. de correo agente
de usuario
m Cliente: envía correo al
servidor. agente
de usuario
m Servidor: recibe correo
de otro servidor. agente
de usuario
Correo electrónico: SMTP [RFC 2821]
r Utiliza TCP para transferir con seguridad el mensaje de
correo electrónico del cliente al servidor, puerto 25.
r Transferencia directa: del servidor que envía al servidor
que recibe.
r Las tres fases de la transferencia son:
m Acuerdo (saludo).
m Transferencia de mensajes.
m Cierre.
r Interacción comando/respuesta:
m Comandos: texto ASCII.
m Respuesta: código de estatus y frase.
1
servidor servidor
2 de correo
3 de correo 6 agente
agente 4 5 de usuario
de usuario
Ejemplo de interacción SMTP
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alicia@crepes.fr>
S: 250 alicia@crepes.fr... Sender ok
C: RCPT TO: <roberto@hamburger.edu>
S: 250 roberto@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: ¿Te gusta el ketchup?
C: ¿Y los encurtidos?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
Ponga a prueba la interacción SMTP por
usted mismo:
r Telnet nombreServidor 25.
r Mire la respuesta 220 del servidor.
r Introduzca los comandos HELO, MAIL FROM,
RCPT TO, DATA, QUIT.
Lo arriba mencionado le permite enviar el correo
electrónico sin utilizar el cliente de correo
electrónico (lector).
SMTP: últimos comentarios
r SMTP utiliza conexiones Comparación con HTTP:
persistentes.
r HTTP: demanda.
r SMTP requiere que el
r SMTP: oferta.
mensaje (cabecera y
cuerpo) esté contenido en r Ambos utilizan interacción
siete bits de ASCII.
ASCII comando/respuesta
r El servidor SMTP utiliza y códigos de estatus.
CRLF.CRLF para
determinar el final del r HTTP: encapsula cada
mensaje. objeto en su propio
mensaje de respuesta.
r SMTP: envía múltiples
objetos en mensajes
multipart.
Formato de los mensajes de correo
SMTP: protocolo para
intercambiar mensajes de
correo electrónico. cabecera
RFC 822: estándar para el Línea en
formato de texto del blanco
mensaje:
r Líneas de cabecera, por
ejemplo: cuerpo
m Para:
m De:
m Asunto:
diferentes de los comandos
SMTP
r Cuerpo:
m el mensaje, sólo
caracteres ASCII.
Formato del mensaje: extensiones multimedia
r MIME: extensiones de correo multimedia, RFC 2045,
2056
r Las líneas adicionales en la cabecera del mensaje
declaran el tipo de contenido MIME.
From: alicia@crepes.fr
Versión MIME To: roberto@hamburger.edu
Subject: Imagen de un delicioso
Método utilizado crepe.
de datos codificados MIME-Version: 1.0
Content-Transfer-Encoding: base64
Datos multimedia Content-Type: image/jpeg
tipo, subtipo,
declaración de parámetros datos codificados
base64........ ...................
Datos codificados .
........... .... datos
codificados base64
Tipos de MIME
Content-Type: tipo/subtipo; parametros
Texto Vídeo
r Ejemplos de subtipos: r Ejemplos de subtipos:
plain, html mpeg, quicktime
Imagen
r Ejemplos de subtipos: Aplicación
jpeg, gif r Otros datos que deben ser
procesados por el lector
antes de ser visionados.
Audio
r Ejemplos de subtipos: r Ejemplos de subtipos:
basic (codificados en ocho msword, octet-stream
bits mu-law), 32kadpcm
(32 kbps codificado).
Tipo multipart
From: alicia@crepes.fr
To: roberto@hamburger.edu
Subject: Imagen de un delicioso crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Querido Roberto, Te envío una imagen de un crepe.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
datos codificados base64 .....
.........................
...
datos codificados base64
--StartOfNextPart
Dime si quieres tener la receta
Protocolos de acceso al correo
SMTP SMTP Protocolo
Agente de acceso Agente
de usuario de usuario
a NSI Herndon, VA
c PSInet Herndon, VA k RIPE London
d U Maryland College Park, MD i NORDUnet Stockholm
g DISA Vienna, VA
h ARL Aberdeen, MD
j NSI (TBD) Herndon, VA m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto,
CA
Los 13 servidores de
raíz de nombres del
mundo
b USC-ISI Marina del Rey, CA
l ICANN Marina del Rey, CA
Ejemplo sencillo de DNS servidor raíz de
nombres
host surf.eurecom.fr 2 4
quiere la dirección IP de 5 3
gaia.cs.umass.edu
1. Contacta con su servidor DNS
local, dns.eurecom.fr.
2. dns.eurecom.fr contacta servidor local de Servidor autorizado
nombres de nombres
con el servidor raíz de dns.umass.edu
dns.eurecom.fr
nombres, si es necesario.
1 6
3. El servidor raíz de nombres
contacta con el servidor
autorizado de nombres,
Host peticionario
dns.umass.edu, si es surf.eurecom.fr
gaia.cs.umass.edu
necesario.
Ejemplo DNS servidor raíz de
nombres
Servidor raíz de 2 6
nombres: 7 3
r Puede que no conozca
el servidor autorizado
de nombres.
r Puede que conozca el servidor local de servidor intermedio
servidor de nombres de nombres
nombres
intermedio: con el que dns.eurecom.fr 4 5
dns.umass.edu
1 8
contactará para
encontrar al servidor Servidor autorizado
autorizado de de nombres
nombres. dns.umass.edu
Host peticionario
surf.eurecom.fr
gaia.cs.umass.edu
DNS: consultas iterativas servidor raíz de
nombres
Consulta recursiva: 2 Consulta
r Pone el peso de la 3 iterativa
resolución del nombre en
4
el servidor de nombre
contactado. 7
r ¿Demasiada
responsabilidad? servidor local de servidor intermedio
de nombres
nombres dns.umass.edu
Consulta iterativa: dns.eurecom.fr
1 8
5 6
r El servidor contactado
responde con el nombre Servidor autorizado
al servidor que contacta. de nombres
r No conozco ese dns.umass.edu
nombre, pero puedo Host peticionario
surf.eurecom.fr
consultar ese servidor.
gaia.cs.umass.edu
DNS: caché y actualización de registros
r Una vez que un servidor de nombres (cualquiera)
conoce la correspondencia, hace una copia caché.
m La copia caché se queda en punto muerto
(desaparece) tras un cierto tiempo.
r Mecanismos de actualización/notificación bajo
diseño de IETF.
m RFC 2136
m http://www.ietf.org/html.charters/dnsind-charter.html
Registros DNS
DNS: Base de datos distribuida que almacena registros de
recursos (RR).
r Tipo=A r Tipo=CNAME
m nombre es un nombre de m nombre es el alias de un nombre
Identificación Señales
Cabecera del mensaje: Número de RR de
número de cuestiones respuesta
r Identificación: 16 bits
Número de RR de
Número de RR
para la consulta, que se autorización adicionales
repiten en la respuesta a la
Cuestiones
consulta. (número variable de cuestiones)
r Flags (señales):
Respuestas
m consulta o respuesta. (número variable de registros de recurso )
m recursión deseada.
Autorización
m recursión disponible. (número variable de registros de recurso)
Cuestiones
RR en respuesta (número variable de cuestiones)
a una consulta. Respuestas
(número variable de registros de recurso)
Registros para Autorización
servidores autorizados. (número variable de registros de recurso)
Información adicional
(número variable de registros de recurso )
Información adicional
de ayuda que puede
ser utilizada.
Capítulo 2: Tabla de Contenidos
r 2.6 Programación de
r 2.1 Principios de los
protocolos de la capa sockets con TCP.
de aplicación. r 2.7 Programación de
r 2.2 La Web y HTTP. sockets con UDP.
r 2.8 Construcción de un
r 2.3 Transferencia de
archivos: FTP. servidor web sencillo.
r 2.9 Distribución de
r 2.4 Correo electrónico
en Internet. contenidos:
m Caché web.
m SMTP, POP3, IMAP. m Redes de distribución de
r 2.5 DNS: el servicio de contenidos.
directorio de m Compartición de archivos
entre iguales.
Internet.
Programación de sockets
Objetivo: aprender cómo se construye una aplicación
cliente/servidor que se comunique utilizando sockets.
Controlado por el
Controlado por el Proceso desarrollador de
desarrollador de Proceso
la aplicación
la aplicación Socket Socket
TCP con TCP con
Controlado por el
Controlado por el búferes y búferes y sistema operativo
Internet variables
sistema operativo variables
Host o Host o
servidor servidor
Programación de sockets con TCP
El cliente debe contactar con el r Cuando el cliente contacta con
servidor: él, el servidor TCP crea un
r El proceso del servidor en nuevo socket para que el
principio debe estar funcionando. proceso servidor se comunique
r El servidor debe haber creado un con el cliente.
socket (puerta) para dar la m Permite al servidor hablar
bienvenida al contacto del con múltiples clientes.
cliente. m Fuente de los números de
puerto utilizados para
El cliente contacta con el servidor:
distinguir a los clientes (más
r Creando un socket TCP local del en el Capítulo 3).
cliente.
r Especificando la dirección IP y el
número de puerto del proceso del Punto de vista de la aplicación
servidor.
r Cuando el cliente crea un socket: TCP propociona una transferencia
el cliente establece una conexión de bytes en orden y fiable
TCP con el servidor. (tubería) entre cliente y servidor.
Jerga relacionada con el flujo
r Un flujo es una secuencia
de caracteres que fluye
hacia o desde un proceso.
r Un flujo de entrada está
relacionado con una fuente
de entrada del proceso, por
ejemplo, el teclado o un
socket.
r Un flujo de salida está
relacionado con una fuente
de salida, por ejemplo, el
monitor o un socket.
Programación de sockets con TCP
Teclado Monitor
Ejemplo de aplicación
cliente-servidor:
entradaDesdeUsuario
1) El cliente lee una línea de su Flujo de
entrada
entrada estándar (flujo
inFromUser) , y se la envía al Proceso
Proceso
servidor por su socket (flujo cliente
outToServer).
2) El servidor lee una línea en su
entradaDesdeServidor
socket.
salidaAServidor
3) El servidor convierte la línea a Flujo de Flujo de
mayúsculas y se la envía de salida entrada
vuelta al cliente.
4) El cliente lee e imprime la Socketcliente
línea modificada de su socket TCP Socket
TCP
(flujo inFromServer).
Hacia la red Desde la red
Interacción socket cliente/servidor: TCP
Servidor (ejecutándose en hostid) Cliente
crear socket,
port=x, para petición
de entrada:
socketAcogida =
ServerSocket()
Escribir respuesta a
socketConexion Leer respuesta de
socketCliente
Cerrar
socketConexion Cerrar
socketCliente
Ejemplo: Cliente Java (TCP)
import java.io.*;
import java.net.*;
class TCPCliente {
frase = entradaDesdeUsuario.readLine();
Línea de envío
al servidor salidaAServidor.writeBytes(frase + '\n');
socketCliente.close();
}
}
Ejemplo: Servidor Java (TCP)
import java.io.*;
import java.net.*;
class TCPServidor {
Crea flujo de
salida relacionado DataOutputStream salidaACliente=
con el socket new DataOutputStream(socketConexion.getOutputStream());
Lee en línea desde
el socket fraseCliente = entradaDesdeCliente.readLine();
Escribir respuesta a
socketServidor Leer respuesta de
especificando dirección del host socketCliente
cliente, número de puerto.
Cerrar
socketCliente
Ejemplo: Cliente Java (UDP)
Teclado Monitor
entradaDesdeUsuario
Flujo de
entrada
Proceso
Proceso Entrada: recibe
Cliente
paquete (TCP
Salida: envía
recibido por flujo
paquete (TCP de bytes)
paqueteRecibido
Paqueteenvío
enviado por flujo Paquete Paquete
UDP UDP
de bytes)
Socketcliente
clientSocket
UDP socket
UDP
class UDPCliente {
public static void main(String args[]) throws Exception
{
Crea
flujo de entrada BufferedReader entradaDesdeUsuario =
new BufferedReader(new InputStreamReader(System.in));
Crea
socket cliente DatagramSocket socketCliente = new DatagramSocket();
Traduce el nombre del
host a una dirección
InetAddress direccionIP = InetAddress.getByName(nombrehost");
IP utilizando DNS
byte[] datosEnvio= new byte[1024];
byte[] datosRecepcion = new byte[1024];
class UDPServidor {
public static void main(String args[]) throws Exception
Crea {
socket datagrama
DatagramSocket socketServidor = new DatagramSocket(9876);
en puerto 9876
byte[] datosRecepcion = new byte[1024];
byte[] datosEnvio = new byte[1024];
while(true)
{
Crea espacio para
DatagramPacket paqueteRecepcion =
datagrama recibido
new DatagramPacket(datosRecepcion, datosRecepcion.length);
Recibe socketServidor.receive(paqueteRecepcion);
datagrama
Ejemplo: Servidor Java (UDP)
String frase = new String(paqueteRecepcion.getData());
Obtiene dirección
InetAddress DireccionIP = paqueteRecepcion.getAddress();
IP y puerto
del remitente int puerto = paqueteRecepcion.getPort();
datosEnvio = fraseMayusculas.getBytes();
Crea datagrama
DatagramPacket paqueteEnvio =
para envíar al cliente
new DatagramPacket(datosEnvio, datosEnvio.length, DireccionIP,
puerto);
Escribe datagrama
socketServidor.send(paqueteEnvio);
en el socket
}
}
} Acaba el bucle while y vuelve
al principio del bucle a esperar
otro datagrama
Construcción de un servidor Web sencillo
r Maneja sólo una petición r Tras crear el servidor,
HTTP. puede solicitar el
r Acepta la petición. archivo utilizando un
r Analiza la cabecera. browser (por ejemplo,
r Recupera el archivo pedido el explorador Internet
del sistema de archivos del
Explorer).
servidor.
r Crea un mensaje HTTP de r Lea el libro de texto
respuesta: para más información.
m líneas de cabecera + archivo
r Envía la respuesta al cliente.
Programación de sockets: referencias
Tutorial de C (audio/diapositivas):
r Unix Network Programming (J. Kurose),
http://manic.cs.umass.edu/~amldemo/courseware/
Tutorial de Java:
r All About Sockets (Sun tutorial),
http://www.javaworld.com/javaworld/jw-12-1996/jw-12-
sockets.html
r Socket Programming in Java: a tutorial,
http://www.javaworld.com/javaworld/jw-12-1996/jw-12-
sockets.html
Capítulo 2: Tabla de contenidos
r 2.6 Programación de
r 2.1 Principios de los sockets con TCP.
protocolos de la capa r 2.7 Programación de
de aplicación. sockets con UDP.
r 2.2 La Web y HTTP. r 2.8 Construcción de un
r 2.3 Transferencia de servidor web sencillo.
archivos: FTP. r 2.9 Distribución de
r 2.4 Correo electrónico contenidos:
en Internet. m Caché web.
m Redes de distribución de
m SMTP, POP3, IMAP. contenidos.
r 2.5 DNS: el servicio de m Compartición de archivos
directorio de entre iguales.
Internet.
Caché Web (servidor proxy)
Objetivo: satisfacer la solicitud del cliente sin involucrar
al servidor de origen.
r El usuario pone el Servidor
navegador: accesos web origen
vía caché.
Pet Servidor
r El navegador envía todas i ció TTP
nH proxy H
las peticiones HTTP al R
Clienteespue TT ión P
P tic
Pe TT H
caché. sta
e sta
HT p u
m Objecto en caché: el P
TP Res
caché devuelve el H TT
ión TTP
objecto. ic
Pe
t
st aH
m Otro caché solicita el sp ue
objeto de su servidor de Re
origen y luego devuelve
Cliente
el objeto al cliente. Servidor
origen
Más sobre el caché web
r El caché actúa tanto de
cliente como de servidor. ¿Por qué usar caché web?
r El caché puede hacer una r Porque reduce el tiempo de
revisión actualizada respuesta por petición del
utilizando If-modified-
since en la cabecera cliente.
HTTP. r Porque reduce el tráfico en el
m Asunto: ¿Debería un caché enlance de acceso de una
correr el riesgo de enviar institución.
objetos en caché sin
r Porque si Internet está
revisar?
m Se utiliza un método poblada de cachés, permite
heurístico. que los proveedores pobres
r Normalmente, el caché se puedan efectivamente enviar
instala por ISP contenido.
(universidad, empresa, ISP
residencial).
Ejemplo de caché
Supuestos
Servidores
r Tamaño medio de los objetos = origen
100.000 bits. Internet
r Tasa media por petición por parte pública
del browser de la institución a los
servidores de origen = 15/seg.
r Retraso del router de la
institución a cualquier servidor Enlace de acceso
origen y vuelta al router = 2 seg. de 1.5 Mbps
Consecuencias
Red
r Uso del LAN = 15% institucional
LAN de 10 Mbps
r Uso del enlace de acceso = 100%
r Retraso total = retraso de
Internet + retraso del acceso +
retraso del LAN =
Caché
= 2 seg + minutos + milisegundos.
institucional
Ejemplo de caché
Servidores
Solución posible
origen
r Aumento del ancho de banda
Internet
del enlace de acceso a,
pública
digamos, 10 Mbps.
Consecuencias
r Uso del LAN = 15%
r Uso del enlace de acceso = 15%
Enlace de acceso
de 1.5 Mbps
r Retraso total = retraso de
Red
Internet + retraso del acceso +
institucional
retraso del LAN = LAN de 10 Mbps
= 2 seg + msegs + msegs
r Suele suponer una mejora
costosa.
Caché
institucional
Ejemplo de caché
Instalación del caché Servidores
r Supongamos que la tasa de origen
acierto sea 0,4.
Consecuencias Internet
pública
r 40% de las peticiones serán
satisfechas casi inmediatamente.
r 60% de las peticiones serán
satisfechas por el servidor de
origen. Enlace de acceso
r EL uso del enlace de acceso se de 1.5 Mbps
reduce al 60%, lo cual tiene como Red
resultado retrasos insignificantes institucional
(digamos 10 mseg). LAN de 10 Mbps
r Retraso total = retraso de
Internet + retraso del acceso +
retraso del LAN =
= 0,6*2 seg + 0,6*0,01 segs + Caché
milisegundos < 1,3 segs institucional
Redes de distribución de contenidos (CDNs)
Servidor origen
r Los proveedores de contenido en Norteamérica
1 Servidor origen
conexión
Más sobre la inundación de
consultas entre iguales
Ventajas Inconvenientes
r Los iguales tienen r Tráfico de consultas
responsabilidades excesivo.
similares: no hay r Radio de consultas:
líderes de grupo. puede no tener
r Altamente contenido estando
descentralizado. presente.
r Ningún igual mantiene r Nodo de arranque.
un directorio de r Mantenimiento de la
información. red de superposición.
Capítulo 2: Resumen
Nuestro estudio sobre las aplicaciones de redes
ahora está completo.
r Protocolos específicos:
r Requerimientos de
m HTTP.
servicios de aplicación:
m FTP.
m Fiabilidad, ancho de banda,
m SMTP, POP, IMAP.
retraso.
m DNS.
r Paradigma cliente-
servidor. r Programación de
r Modelo de servicio de sockets.
transporte de Internet. r Distribución de
m Orientado a la conexión, contenidos.
fiable: TCP m Cachés, CDN.
m Poco fiable, datagramas: m Entre iguales.
UDP
Capítulo 2: Resumen
Lo más importante: lo aprendido sobre protocolos
r Típico intercambio de
mensajes petición/ r Mensajes de control frente a
respuesta. mensajes de datos.
m El cliente solicita una m En banda, fuera de banda.
información o un servicio. r Centralizado frente a
m El servidor contesta con
datos y un código estatus.
descentralizado.
r Formatos del mensaje: r Sin estado frente a en estado.
m Cabeceras: campos que dan r Transferencia de mensajes
la información sobre los fiable frente a poco fiable.
datos. r Complejidad al límite de la
m Datos: información que se
comunica.
red.
r Seguridad: autentificación.