Bloque II: El nivel de aplicación
Tema 3: Aplicaciones orientadas a
conexión
Índice
• Bloque II: El nivel de aplicación
– Tema 3: Aplicaciones orientadas a conexión
• Introducción
• World Wide Web
• Transferencia de ficheros
• Correo electrónico
• Referencias
– Capítulo 2 de “Redes de Computadores: Un enfoque
descendente basdado en Internet”. James F. Kurose, Keith
W. Ross. Addison Wesley, 2ª edición. 2003.
– Capítulos 27 y 28 de “TCP/IP Illustrated, Volume 1: The
Protocols”, W. Richard Stevens, Addison Wesley, 1994.
RC Bloque II Tema 3
2
Introducción
• Dos procesos en dos sistemas finales (distintos) se comunican
intercambiando mensajes a través de una red de computadores.
• Modelo clienteservidor
– Cliente envía mensajes al servidor
– Servidor recibe los mensajes, procesa la respuesta y la envía
• Protocolos del nivel de aplicación:
– Definen el formato y el orden de intercambio de los mensajes
– Acciones en la transmisión o recepción de mensajes
FTP
HTTP
SMTP
Telnet
DNS
SNMP
TCP
UDP
RC Bloque II Tema 3
IP
Nivel de
Aplicación
ICMP IGMP
3
Introducción
• Protocolo del nivel de aplicación es sólo una parte de la aplicación de
red. Por ejemplo, en el Web:
– Formato de los documentos (HTML)
– Navegadores Web (Mozilla, Explorer, ...)
– Servidores Web (Apache, MIIS, ...)
– Protocolo de la capa de aplicación (HTTP)
• Protocolo del nivel de aplicación:
– Tipo de mensajes intercambiados (petición/respuesta)
– Sintaxis de los mensajes
– Semántica de los campos
– Reglas que determinan cuándo y cómo un proceso envía un
mensaje y responde a los mensajes.
• Aplicaciones y protocolos más utilizados:
– Web – HTTP (RFC 2616)
– Transferencia de ficheros – FTP (RFC 959)
– Correo electrónico – SMTP (2821)
– Acceso a terminales remotos – Telnet (RFC 854)
RC Bloque II Tema 3
4
Web
• Es una aplicación en Internet.
• El World Wide Web surgió a principios de los 90, en el CERN (Tim Berners
Lee), para organizar los documentos de investigación disponibles en Internet.
• Combina cuatro ideas que no eran nuevas:
– Hipertexto: formato de la información que permite moverse de una parte a
otra de un documento o entre documentos mediante conexiones internas
entre estos documentos (hiperenlaces o enlaces).
– Identificadores de recursos: identificadores únicos que permiten localizar
un recursos en la red (URL – Uniform Resource Locator o URI – Uniform
Resource Identifier)
– Modelo clienteservidor
– Lenguaje de marcas: caracteres o códigos embebidos en texto que
indican estructura, semántica o recomendaciones para su presentación
(HTML – HyperText Markup Language).
Tim BernersLee desarrolló el protocolo HTTP inicial, las URLs, HTML y el
primer servidor Web.
•
• Componentes:
– Página Web: archivo HTML base + objetos (imágenes)
– Navegador: agente de usuario para el Web
– Servidor Web: almacena objetos Web direccionables a través de una URL
– Protocolo HTTP: permite comunicarse al servidor y al navegador
RC Bloque II Tema 3
5
HTTP
•
•
•
•
•
HyperText Transfer Protocol
Especificado en RFC 1945 (HTTP/1.0) y RFC 2616 (HTTP/1.1)
– HTTP/1.1 compatible con HTTP/1.0
Define cómo los clientes (navegadores) solicitan páginas Web y cómo los servidores
transfieren estas páginas.
Utiliza el protocolo TCP (servicio orientado a conexión y fiable) Cada mensajes HTTP
emitido por el cliente o servidor llega al otro extremo sin modificaciones.
HTTP es un protocolo sin estado El servidor HTTP no guarda información sobre los
clientes.
Navegador
Servidor Web
Petición
GET /index.html HTTP/1.1 ...
H T T P / 1 . 1 2 0 0 O K . . .
Respuesta
RC Bloque II Tema 3
6
•
•
•
•
HTTP: Conexiones no persistentes
HTTP/1.0 usa conexiones no persistentes
Petición de una URL (http://www.tic.udc.es/index.php)
1. El cliente HTTP inicia la conexión TCP con el servidor www.tic.udc.es en
el puerto 80.
objeto /index.php
2. El cliente HTTP envía al servidor el mensaje de petición solicitando el
3. El servidor HTTP recibe la petición, lee el objeto, lo encapsula en el
mensaje HTTP de respuesta y lo envía.
4. El servidor finaliza la conexión TCP.
5. El cliente HTTP recibe la respuesta y finaliza la conexión TCP.
6. El cliente extrae el archivo del mensaje de respuesta, examina el archivo
HTML y encuentra referencias a otros objetos HTML (p.e. imágenes)
7. Volver al paso 1, para cada objeto.
Dependiendo del navegador, las nuevas conexiones podrían ser en paralelo.
Inconvenientes:
–
Se necesita una conexión (buffers, variables, timeouts, ...) para cada
objeto solicitado.
– Retardo de dos veces el RTT: establecimiento de conexión + petición y
recepción del objeto
RC Bloque II Tema 3
7
HTTP: Conexiones persistentes
• Por defecto, en HTTP/1.1
• El servidor HTTP deja abierta la conexión TCP, esperando
nuevas petición/respuestas.
– El servidor cerrará la conexión después de un tiempo de
inactividad.
• Sin pipeline: el cliente sólo envía una nueva petición cuando ha
• Con pipeline: el cliente realiza una petición tan pronto encuentra
recibido la respuesta previa.
una referencia a un objeto.
RC Bloque II Tema 3
8
Mensajes HTTP
GET /index.html HTTP/1.1
Host: www.tic.udc.es
User-agent: Mozilla/4.0
HTTP/1.1 200 OK
Date: Sat, 1 Jan 2000 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Fri, 24 Dic 1999 13:03:32 GMT
Content-Length: 6821
Content-Type: text/html
<HTML> <HEAD>
<TITLE> My homepage </TITLE>
...
Línea de petición
Líneas de cabecera
Línea en blanco
Cuerpo de entidad
Línea de estado
Líneas de
cabecera
Línea en blanco
Cuerpo de entidad
RC Bloque II Tema 3
9
Mensaje petición HTTP
•
•
Línea de petición + línea en blanco: obligatorio
Línea de petición:
– Método:
• GET: utilizando cuando el navegador solicita un objeto.
• HEAD: el servidor responde con un mensaje HTTP, pero sin incluir el
objeto solicitado.
• POST: incluye datos en el cuerpo de entidad (no en el caso de un
GET).
especificada.
• PUT (1.1): permite a un usuario cargar un objeto en la ruta
• DELETE (1.1): permite borrar un objeto de un servidor Web.
– URL: objeto al que se hace referencia
– Versión
• Host: especifica el host en el que reside el objeto.
• Useragent: especifica el tipo de navegador que está haciendo la petición.
• POST: utilizado comúnmente cuando un usuario rellena un formulario.
– El cuerpo de entidad contiene los datos introducidos por el usuario.
• GET: también soporta el envío de datos introducidos por el usuario.
– Se envían codificados en la URL real.
– Por ejemplo: www.google.com/search?keywords=information+retrieval
RC Bloque II Tema 3
10
Mensaje respuesta HTTP
• Línea de estado: Versión + Código de estado + Frase
– Códigos de estado y frases:
• 200 OK
• 400 Bad Request: petición no comprendida por el
servidor.
• 404 Not Found: el objeto pedido no existe en el servidor.
• Date: fecha y hora en la que se creó y envió la respuesta HTTP.
• Server: especifica el tipo de servidor Web que ha atendido a la
petición.
• LastModified: indica la fecha y hora en que el objeto fue creado
o modificado por última vez.
• ContentLength: indica el número de bytes del objeto enviado.
• ContentType: indica el tipo de objeto incluido en el cuerpo de
entidad.
– La extensión del archivo no especifica (formalmente) el tipo
de objeto.
RC Bloque II Tema 3
11
HTTP: GET condicional
•
La utilización de una caché reduce los retardos de recuperación de
objetos y reduce el tráfico que circula por la red.
• Problema: la copia de un objeto en caché puede ser obsoleta.
• Solución: GET + IfModificedSince
– Sólo devuelve el objeto si ha sido modificado después de la fecha
indicada.
• Solicitar un objeto por primera vez:
GET /images/udc.gif HTTP/1.1
User-agent: Mozilla/4.0
• Recibir la respuesta del servidor:
HTTP/1.1 200 OK
Date: Sat, 1 Jan 2000 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Fri, 24 Dic 1999 13:03:32 GMT
Content-Type: image/gif
(datos)...
RC Bloque II Tema 3
12
HTTP: GET condicional
• Pasado un tiempo, se vuelve a solicitar el mismo
objeto, sólo si se ha modificado:
GET /images/udc.gif HTTP/1.1
User-agent: Mozilla/4.0
If-modified-since: Fri, 24 Dic 1999 13:03:32
GMT
• Si no se ha modificado, el servidor no envía el
objeto de nuevo.
HTTP/1.1 304 Not Modified
Date: Wed, 5 Jan 2000 20:30:43 GMT
Server: Apache/1.3.0 (Unix)
RC Bloque II Tema 3
13
Transferencia de ficheros
• Se basa en el protocolo FTP (File Transfer Protocol).
• Transferencia de ficheros: permite copiar ficheros desde un
sistema a otro.
• Acceso a ficheros: permite acceder a un fichero desde un
sistema a otro NFS (Network File System).
• FTP fue diseñado para operar con sistemas heterogéneos
Soporte para distintos tipos de ficheros (ASCII, binarios, …)
• Las passwords y el contenido de los ficheros se envían sin
cifrar.
– FTP sobre SSH: secure FTP
• FTP anónimo: un usuario no necesita cuenta para acceder al
servidor FTP.
– Se “solicita” el email del usuario.
Integrado hoy en día en los principales navegadores:
– ftp://login:
[email protected]/
•
RC Bloque II Tema 3
14
FTP
• Se especifica en el RFC 959.
• Basado en TCP.
• Operación:
– El usuario se conecta al host remoto indicando su nombre (puerto
21).
– El usuario se identifica (login y password) y sus datos son enviados
a través de la conexión TCP.
– Cuando el servidor ha autorizado al usuario, éste puede
copiar/descargarse archivos al/del servidor de FTP.
• Utiliza dos conexiones TCP:
– Conexión de control: envía información de control entre los dos
hosts (login, password, comandos, ...) TOS: minimizar retardo
– Conexión de datos: se utiliza para enviar un archivo TOS:
maximizar throughput
• FTP envía su información de control fuera de banda.
– HTTP envía su información de control en banda: con los datos.
• El servidor FTP mantiene información de estado del usuario
– HTTP
Comentarios de: Tema 3 - Aplicaciones orientadas a conexión (0)
No hay comentarios