Publicado el 5 de Julio del 2017
781 visualizaciones desde el 5 de Julio del 2017
86,9 KB
33 paginas
Creado hace 17a (16/10/2007)
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 cliente-servidor
– 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 cliente-servidor
– 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 Berners-Lee 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
2. El cliente HTTP envía al servidor el mensaje de petición solicitando el
el puerto 80.
objeto /index.php
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.
• User-agent: 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.
• Last-Modified: indica la fecha y hora en que el objeto fue creado
o modificado por última vez.
• Content-Length: indica el número de bytes del objeto enviado.
• Content-Type: 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 + If-Modificed-Since
– 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
HTTP: Identificación de usuarios
• Autorización: el usuario debe identificarse (login y password) al
acceder a un servidor Web.
– El usuario realiza una petición normal.
– El servidor responde con un mensaje 401
AuthorizationRequired.
• Campo WWW-Authenticate que especifica cómo se realiza la
autentificación.
– El navegador solicita el login y password al usuario e incluye una
cabecera Authorization.
– En las peticiones subsiguientes se repite el login y password.
• Cookies: mecanismo de almacenamiento en la máquina del cliente
– Línea de cabecera de cookie en el mensaje HTTP de respuesta
– Línea de cabecera de cookie en la petición (Cookie)
– Archivo de cookies almacenado en el ordenador cliente
(Set-cookie)
(gestionado por el navegador)
– Base de datos de apoyo en el servidor Web
– Ejemplo: carrito de la compra
RC - Bloque II - Tema 3
14
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 e-mail del usuario.
Integrado hoy en día
Comentarios de: Tema 3 - Aplicaciones orientadas a conexión (0)
No hay comentarios