Capítulo 2: Capa Aplicación - III
ELO322: Redes de Computadores
Tomás Arredondo Vidal
Este material está basado en:
r material de apoyo al texto ComputerNetworking: A TopDownApproach
FeaturingtheInternet 3rd edition. Jim Kurose, Keith Ross Addison-Wesley,
2004.
r material del curso anterior ELO322 del Prof. Agustín Gonzales
2: Capa Aplicación
1
Capítulo 2: Capa Aplicación
r 2.1 Principios de la
aplicaciones de red
r 2.2 Web y HTTP
r 2.3 FTP
r 2.4 Correo Electrónico
m SMTP, POP3, IMAP
r 2.5 DNS
r 2.6 P2P Compartición
de archivos
r 2.7 Programación de
Socket con TCP
r 2.8 Programación de
socket con UDP
r 2.9 Construcción de
un servidor WEB
2: Capa Aplicación
2
FTP: El protocolo de transferencia de
archivos (File Transfer Protocol)
usuario
en host
FTP
user
interface
FTP
client
file transfer
FTP
server
Sistema de
archivo
local
Sistema de
archivo
remoto
r Transferencia de archivos a/desde el host remoto
r Sigue modelo cliente/servidor
m cliente:sitio que inicia la transferencia (ya sea
a/desde sitio remoto)
m servidor:host remoto
ftp: RFC 959
r Servidor ftp: puerto 21
2: Capa Aplicación
3
r
puerto 21
TCP conexión de control
FTP: Conexiones separadas de control y
datos
Cliente FTP contacta servidor
FTP en puerto 21, especificando
TCP como protocolo de
transporte
El cliente obtiene autorización
sobre el control de la conexión
El cliente navega el directorio
remoto enviando comando sobre
la conexión de control.
Cuando el servidor recibe una
petición de transferencia de
archivo, el servidor abre una
conexión de datos hacia el
cliente.
El servidor abre una segunda
conexión TCP de datos para
transferir otro archivo.
Conexión de control: “out of
band” (fuera de banda)
r Servidor FTP mantiene
TCP conexión de datos
Cliente
FTP
puerto 20
Servidor
FTP
r Después de la transferencia un
archivo, el servidor cierra la
conexión.
“estado”: directorio actual,
cuenta de usuario conectado.
2: Capa Aplicación
4
r
r
r
r
r
r
FTP comandos, respuestas
Muestra de comandos:
r Son enviados como texto
ASCII vía el canal de
control
USER username
PASS password
LIST retorna la lista de
archivos del directorio
actual
RETR filename baja un
archivo (gets)
STOR filename almacena
(puts) archivo en host
remoto
Algunos códigos
retornados
Código estatus y frases
(como en HTTP)
331 Username OK,
password required
125 data connection
already open;
transfer starting
425 Can’t open data
connection
452 Error writing
file
2: Capa Aplicación
5
r
r
r
r
r
r
r
r
r
r
Capítulo 2: Capa Aplicación
r 2.1 Principios de la
aplicaciones de red
r 2.2 Web y HTTP
r 2.3 FTP
r 2.4 Correo Electrónico
m SMTP, POP3, IMAP
r 2.5 DNS
r 2.6 P2P Compartición de
archivos
r 2.7 Programación de
Socket con TCP
r 2.8 Programación de
socket con UDP
r 2.9 Construcción de un
servidor WEB
2: Capa Aplicación
6
Correo Electrónico
Tres mayores componentes:
r Agente usuario
r Servidor de correo
r Simple Mail Transfer
Protocol: SMTP
Agente Usuario
r También conocido como
“lector de correo”
Escritura, edición, lectura de
mensajes de correos
e.g., Eudora, Outlook, elm,
Netscape Messenger
r Mensajes de salida, entrada
son almacenados en servidor
Cola de
mensajes de salida
Casilla usuario
user
agent
mail
server
user
agent
user
agent
user
agent
mail
server
SMTP
SMTP
user
agent
SMTP
mail
server
user
agent
2: Capa Aplicación
7
r
r
Correo Electrónico: Servidor de
correo
Servidor de Correo
casilla contiene mensajes
de entrada para el
usuario
mail
server
user
agent
r Cola (queue) de mensajes
de los correos de salida
r SMTP: Protocolo entre
servidores de correo
para enviar mensajes e-
mail
m cliente: servidor que
envía el correo
m “servidor”: servidor
que recibe el correo
SMTP
mail
server
user
agent
SMTP
user
agent
SMTP
mail
server
user
agent
user
agent
user
agent
2: Capa Aplicación
8
r
Correo Electrónico: SMTP [RFC 2821]
r Usa TCP para transferir confiablemente mensajes e-mail
desde el cliente al servidor, puerto 25.
r Transferencia directa: servidor envía correos al servidor
receptor
r Tres fases de la transferencia
m handshaking (apretón de manos, establecer conexión)
m Transferencia de mensajes
m cierre
Interacción comandos/respuestas
m comandos: Texto ASCII
m respuesta: código de estatus y frase.
r Mensajes deben ser enviados en ASCII de 7-bits
2: Capa Aplicación
9
r
Escenario: Alicia envía mensaje a Bob
1) Alicia usa agente usuario para
componer el mensaje para
[email protected]
2) El agente de Alicia envía en
mensaje a su servidor de
correo; el mensaje es puesto
en cola de salida
3) Lado cliente de SMTP abre
una conexión TCP con el
servidor de correo de Bob
4) El cliente SMTP envía el
mensaje de Alicia por la
conexión TCP
5) EL servidor de correo de
Bob pone el mensaje en su
casilla
6) Bob invoca su agente usuario
para leer el mensaje
1
user
agent
2
mail
server
3
mail
server
5
4
user
agent
6
2: Capa Aplicación
10
Ejemplo de Interacción SMTP
Luego de: $telnet hamburger.edu 25 <enter>
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <
[email protected]>
S: 250
[email protected]... Sender ok
C: RCPT TO: <
[email protected]>
S: 250
[email protected] ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
2: Capa Aplicación
11
Ejemplo de Interacción SMTP (cont)
tarredondo@aragorn:~$ telnet smtp_server.elo.utfsm.cl 25
Trying 200.1.17.5...
Connected to mx1.elo.utfsm.cl.
Escape character is '^]'.
220 mx1.elo.utfsm.cl ESMTP Postfix
HELO tomas.fr
250 mx1.elo.utfsm.cl
MAIL FROM:<
[email protected]>
250 Ok
RCPT TO:<
[email protected]>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Que paso?
.
250 Ok: queued as 49E7365CA2
QUIT
221 Bye
Connection closed by foreign host.
2: Capa Aplicación
12
Prueben la interacción SMTP :
r telnet servername 25
r Ver respuesta 220 desde el servidor
Ingresar los comandos HELO, MAIL FROM, RCPT
TO, DATA, QUIT
Lo de arriba nos permite enviar correo sin usar el
cliente de correo.
2: Capa Aplicación
13
r
SMTP: palabras finales
r SMTP usa conexiones
persistentes
r SMTP requiere que el
mensaje (encabezado y
cuerpo) sean en ASCII de
7-bits
r Servidor SMTP usa
CRLF.CRLF para terminar
el mensaje
Comparación con HTTP:
r HTTP: pull (saca contenido
desde servidor)
r SMTP: push (pone
contenido en servidor)
r Ambos tienen interacción
comando/respuesta en
ASCII, y tienen códigos de
estatus
r HTTP: cada objeto es
encapsulado en su propio
mensaje
r SMTP: múltiples objetos
son enviados en un mensaje
multiparte
2: Capa Aplicación
14
Formato de mensajes de correo
SMTP: protocolo para
intercambio de mensajes
de correo
RFC 822: estándar para el
formato de los mensajes:
E.g. líneas de encabezado,
m To:
m From:
m Subject:
diferentea los comandos
SMTP!
Cuerpo
m El “mensaje”, sólo
caracteres ASCII
encabezado
cuerpo
Línea
en blanco
2: Capa Aplicación
15
r
r
Formato de mensaje: extensiones
multimedia
r MIME: “multimedia mail extension”, RFC 2045, 2056
Líneas adicionales en el encabezado del mensaje declaran
el tipo de contenido MIME
La codificacion Base64 usa solo los caracters: A-Z, a-z,
0-9 y +/=
Versión MIME
Método de
codificación usado
Tipo datos multimedia,
subtipo,
declaración de parámetros
Datos binarios codificados
en base64
From:
[email protected]
To:
[email protected]
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
2: Capa Aplicación
16
r
r
Protocolos de acceso de correo
SMTP
SMTP
user
agent
Puerto 25
Servidor mail
de la fuente
Servidor mail
del receptor
user
agent
protocolo
de acceso:
POP3 (110)
IMAP (143)
o HTTP
SMTP: permite envió y almacenamiento de correo en servidor
del destinatario
Protocolo de acceso a correo: permite extraer correo desde el
servidor
m POP: Post Office Protocol [RFC 1939]
• autenticación (agent <-->server) y bajada
m IMAP: Internet Mail Access Protocol [RFC 1730]
• Más características (más complejo)
• Permite manipulación de los mensajes almacenados en el
servidor
m HTTP: Hotmail , Yahoo! Mail, etc.
2: Capa Aplicación
17
r
r
Protocolo POP3
Fase de autorización
Comandos del cliente:
m user: declara username
m pass: password
Respuestas del servidor:
m +OK
m -ERR
Fase transaccional, cliente:
list: lista números de
mensajes
retr: extrae mensajes por
su número
dele: borra
quit
S: +OK POP3 server ready
C: user bob
S: +OK
C: pass hungry
S: +OK user successfully logged on
Tamaño del mensaje
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: <message 1 contents>
S: .
C: dele 1
C: retr 2
S: <message 1 contents>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
2: Capa Aplicación
18
r
r
r
r
r
r
POP3 (más) e IMAP
Más sobre POP3
IMAP
r Ejemplo previo usa
r Mantiene todos los
modo “bajar y borrar”.
r Bob no puede releer el
correo si cambia el
cliente
“bajada y conserva”:
obtiene copia de los
mensajes en
diferentes clientes.
POP3 no mantiene el
estado de una sesión a
otra (“stateless”)
mensajes en un lugar:
el servidor
Permite que el usuario
organice sus correos
en carpetas
IMAP mantiene el
estado del usuario de
una sesión a otra:
m Nombre de carpetas
mapeo entre Ids
(identificadores) de
mensajes y nombres de
carpetas.
2: Capa Aplicación
19
r
r
r
r
Capítulo 2: Capa Aplicación
r 2.1 Principios de la
aplicaciones de red
r 2.2 Web y HTTP
r 2.3 FTP
r 2.4 Correo Electrónico
m SMTP, POP3, IMAP
r 2.5 DNS
r 2.6 P2P Compartición de
archivos
r 2.7 Programación de
Socket con TCP
r 2.8 Programación de
socket con
Comentarios de: Capítulo 2: Capa Aplicación - III (0)
No hay comentarios