Sei sulla pagina 1di 30

Capa de Aplicación

(Parte 1 de 2)

Redes de
Computadoras

Aplicaciones y protocolos de capa


de aplicación
z Aplicación en red: procesos
distribuidos que se comunican
– Corriendo en hosts en “espacio de
usuario”
– intercambian mensajes para
implementar la aplicación
– Ejemplos: email, transferencia de
archivos, el Web

z Protocolos de capa de
aplicación
– una “pieza” de una aplicación
– define mensajes intercambiados por
aplicaciones y acciones a tomar
– usa (depende de) servicios provistos
por protocolos de capas mas bajas

1
Aplicaciones en red: conceptos
z Un proceso es un programa que corre en un host.

z Dentro del mismo host, dos procesos se comunican via comunicación


interprocesos (IPC) definida por el sistema operativo.

z Los procesos corriendo en hosts diferentes se comunican mediante un


protocolo de aplicación.

z Un agente usuario es una interface entre el usuario y la aplicación de red.


– Web: navegador
– E-mail: “lector” de correos, MUA
– streaming de audio/video: player

z Ni el agente usuario ni la aplicación de red conforman el protocolo de


aplicación… sino que usan los servicios que brinda el protocolo.

Paradigma cliente-servidor
La aplicación típica tiene dos
elementos: cliente y servidor

Cliente:
z inicia contacto con el servidor
z típicamente pide un servicio
z para el Web, el cliente está
implementado en el navegador;
para e-mail, en el lector; etc…

Servidor:
z provee el servicio requerido por
el cliente
z Ejemplos: servidor web envía
página solicitada, servidor de
correo entrega mensajes, ...

2
Servicios de transporte para
aplicaciones

Pérdidas de datos
z Algunas aplicaciones (e.g., audio sin comprimir) pueden tolerar algunas
pérdidas
z otras (e.g., e-mail, ftp, telnet) requieren transferencias 100% confiables

Temporizacion
z Algunas aplicaciones (e.g., telefonía en Internet, juegos interactivos) requieren
poco retardo para ser “efectivas”

Ancho de banda
z Algunas aplicaciones (e.g., multimedia tiempo real) requieren un ancho de
banda mínimo garantizado para poder ser “efectivas”
z otras (“aplicaciones elásticas”) usan cualquier ancho de banda que encuentren
disponible

Requerimientos de transporte

3
Aps. en Internet: sus protocolos y su
transporte

FTP (File Transfer Protocol)

4
Transferencia de archivos

z Copiar archivos de una máquina a otra, usando un


protocolo confiable como TCP, puede parecer
simple.

z Sin embargo la transferencia puede complicarse:


– El usuario debe autentificarse.
– Una vez autorizado puede efectuarse la transferencia.
– Deben localizarse los archivos solicitados.

FTP

z FTP (File Transfer Protocol) está basado en


el modelo cliente servidor.
z Permite operaciones básicas involucradas
en transferencia de archivos:
– autentificar usuarios y dejarlos accesar el sistema
remoto.
– listar directorios.
– copiar archivos remotamente, etc…
z Ver RFC 959.

5
FTP

z Normalmente, el servidor FTP se encuentra


escuchando en el puerto 21.

z Se mantienen dos conexiones TCP abiertas: una


para control y otra para datos.

z La conexión de control usa el protocolo de Telnet y


sirve para autentificar al cliente, dar mensajes de
éxito/falla, etc.

FTP

6
FTP

z Primero se abre la conexión de control para


autentificar al usuario y enseguida se pueden
transferir datos mediante la otra conexión.
host% ftp fcqi.tij.uabc.mx
Connected to ftp fcqi.tij.uabc.mx.
220 fcqi FTP server (SunOS 5.7) ready.
Name (fcqi.tij.uabc.mx :(none)): palafox
331 Password required for palafox.
Password:
230 User palafox logged in.
ftp>

FTP
z Los clientes de FTP proveen una serie de
comandos, los cuales son mapeados a comandos
del protocolo mismo.

7
FTP
z Códigos indicando éxito o falla (ver mas en
http://www.ftpplanet.com/ftpresources/ftp_codes.htm).

500 Syntax error, command unrecognized.


530 Not logged in.
550 Requested action not taken. File unavailable .
200 Command OK.
220 Service ready for new user.
221 Service closing control connection.
226 Closing data connection.
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
230 User logged in, proceed.
250 Requested file action OK, completed.
125 Data connection already open; transfer starting.
150 File status okay; about to open data connection.

FTP
z Algunos comandos de FTP (se pasan en la conexión de
control):
CWD Change the current directory on the server.
PWD Print the current directory on the server.
LIST List the contents of a directory.
MKD Creates a directory on the server.
RMD Removes a directory from the server.
DELE Removes a file from the server.
USER Sends the username for the login.
PASS Sends the password for the login.
ABOR Abort the transfer.
QUIT Closes the connection with the server.
TYPE Toggles the binary flag on the server.
PORT Asks the server to connect to the client.
PASV Requests a data connection on a new port.
RETR Requests the server to send a file.
STOR Sends a file from the client to the server
SYST Gets the OS information of the server.
HELP Get help on a verb.
NOOP No operation.

8
FTP
z Al solicitar un archivo, se abre una conexión de datos con el
comando PORT.

Telnet

9
Telnet

z Antes, los vendedores permitían a clientes


conectarse a sus sistemas solo mediante las
terminales que ellos fabricaban.
z Telnet permite conexión a sistemas remotos
independientemente del fabricante.
– El protocolo hace una negociación entre cliente y
servidor para determinar el tipo de terminal a
emular.
z Ver RFC 854.

Telnet

Telnet ofrece tres servicios básicos:


z Una terminal virtual en red.
z Un mecanismo que permite a clientes y servidores
negociar opciones.
– Ejemplos: modo ascii/binario, etc.
z Manejo simétrico de los extremos.
– no se requiere que uno sea un servidor y el otro una
terminal.
– ambos extremos pueden ser aplicaciones.

10
Telnet

Servicio de terminal virtual con Telnet:

Telnet
Algunos comandos de Telnet:
SE 240 End of subnegotiation parameters.
NOP 241 No operation
DM 242 Data mark.
BRK 243 Break. Indicates that the "break" or "attention" key was hit.
IP 244 Suspend, interrupt or abort the process.
AO 245 Abort output.
AYT 246 Are you there?
EC 247 Erase character.
EL 248 Erase line.
GA 249 Go ahead.
SB 250 Subnegotiation of the indicated option follows.
WILL 251 Indicates the desire to begin performing, or confirmation that you are now performing, the
indicated option.
WONT 252 Indicates the refusal to perform, or continue performing, the indicated option.
DO 253 Indicates the request that the other party perform, or confirmation that you are expecting the
other party to perform, the indicated option.
DONT 254 Indicates the demand that the other party stop performing, or confirmation that you are no
longer expecting the other party to perform, the indicated option.
IAC 255 Interpret as command

11
Telnet

z Los comandos tienen entonces la forma:


IAC, <tipo operación>, <opción>
(IAC = Interpret As Command)

z En el sig. ejemplo el cliente pide establecer


un tipo de terminal y el servidor responde
diciendo que lo haga:

Ver http://www.scit.wlv.ac.uk/~jphb/comms/telnet.html

Protocolos para E-mail

12
E-mail

z El correo electrónico es quizás el servicio


más usado en Internet.
z Los primeros sistemas de E-mail en
ARPAnet eran básicamente servicios de
transferencia de archivos.
– La primera línea de los archivos contenía la
dirección del destinatario.
– Por supuesto, rápidamente se hicieron evidentes
las limitaciones de este esquema.

E-mail

z En 1982 se publicaron propuestas para E-mail con


el RFC 821 (protocolo de transmisión) y el RFC 822
(formato de los mensajes).
– desde entonces se convirtieron en los estándares de facto
en Internet.
z Dos años después el CCITT emitió la
recomendación X.400
– ésta formó luego la base de MOTIS de OSI.
z Eventualmente los sistemas X.400 (y MOTIS) fueron
desapareciendo.

13
SMTP

z El término SMTP (Simple Mail Transfer Protocol) se


usa para referirse a la combinación de 3 protocolos:

– El estándar (STD 10/RFC 821) que especifica el protocolo


para enviar correo entre hosts TCP/IP.
– El estándar (STD 11) para el formato de mensajes. El RFC
822 describe la sintaxis de los encabezados y su
interpretación. El RFC 1049 describe el manejo de
mensajes que no son texto.
– Un estándar para el encaminamiento de correo usando
DNS (RFC 974) llamado DNS-MX.

SMTP

z El STD 10/ RFC 821 establece que los datos


enviados son ASCII de 7 bits.
– Esto es adecuado para mensajes en inglés, pero no para
otros idiomas o mensajes que no son texto.
z Hay dos estrategias para superar estas limitaciones:
– MIME (Multipurpose Internet Mail Extensions), que
especifica un mecanismo para codificar texto y datos
binarios en ASCII de 7 bits en el mensaje (RFC 1521 y
1522).
– SMTPSE (SMTP Service Extensions), que permite
mensajes codificados en 8 bits.

14
Modelo SMTP

UA = User Agent
MTA = Message Transfer Agent

Modelo SMTP

z El intercambio de correos usando TCP/IP es


realizado por los MTA.
z Los usuarios interactúan con los UA para
leer/escribir mensajes.
z El MTA mete los mensajes recibidos en
“buzones”.

15
Mensajes

Cada mensaje contiene:

z Un encabezado, tal como lo define el RFC 822


– el encabezado termina con una línea nula.
z El cuerpo, formado por todo lo que viene después
de la línea nula.
– secuencia de líneas con caracteres ASCII de 7 bits.
– el mensaje es terminado por una línea conteniendo
solamente un punto.

Mensajes

Algunos campos habituales en encabezados:

16
Protocolo SMTP

z SMTP es un protocolo ASCII simple.


z Primero el cliente establece una conexión al servidor
en el puerto 25.
z El servidor responde identificándose y anunciando si
está listo o no para recibir.
– si no lo está, el cliente reintenta luego.
z Se siguen intercambiando líneas de texto.
– Todas las réplicas tienen un código numérico al comienzo
de la línea.

Protocolo SMTP
z Algunos códigos de SMTP:

17
Protocolo SMTP

Protocolo SMTP

1. El cliente establece una conexión y espera a que el servidor


envíe un mensaje "220 Service ready" o "421 Service not
available".
2. El cliente envía un HELO con su nombre de dominio.
– Si el cliente soporta extensiones de SMTP (RFC 1651), puede
sustituir HELO por EHLO.
– Un servidor que no soporte las extensiones responderá con "500
Syntax error, command unrecognized".
– El emisor SMTP debe reintentar con HELO, o si no puede
retransmitir el mensaje sin extensiones, enviar un mensaje QUIT.
– Si el servidor soporta las extensiones de servicio, responde con
un mensaje multi-línea 250 OK que incluye una lista de las
extensiones de servicio que soporta.

18
Protocolo SMTP

3. El envía el comando MAIL al servidor. Este


comando contiene la ruta de vuelta al emisor que
se puede emplear para informar de errores. Si se
acepta, el receptor replica con un "250 OK".
4. Luego se le dá al servidor el destino del
mensaje(puede haber más de un receptor). Esto se
hace enviando uno o más comandos RCPT
TO:<forward-path>. Cada uno de ellos recibirá una
respuesta "250 OK" si el servidor conoce el destino,
o un "550 No such user here" si no.

Protocolo SMTP

5. Cuando se envían todos los comandos


RCPT, el emisor envía un comando DATA
para notificar al receptor que a continuación
se envían los contenidos del mensaje. El
servidor replica con "354 Start mail input,
end with <CRLF>.<CRLF>". Nótese que se
trata de la secuencia de terminación que el
emisor debería usar para terminar los datos
del mensaje.

19
Protocolo SMTP

6. El cliente envía los datos línea a línea, acabando con la línea


<CRLF>. <CRLF> que el servidor reconoce con "250 OK" o el
mensaje de error apropiado si cualquier cosa fue mal.
7. Ahora hay varias acciones posibles:
– El cliente no tiene más mensajes que enviar; cerrará la conexión
con un comando QUIT, que será respondido con "221 Service
closing transmission channel".
– El cliente no tiene más mensajes que enviar, pero está preparado
para recibir mensajes (si los hay) del otro extremo. Mandará el
comando TURN. Los dos extremos intercambian sus papeles
empezando por el paso 3.
– El cliente tiene otro mensaje que enviar, y simplemente vuelve al
paso 3 para enviar un nuevo MAIL.

Protocolo SMTP
Ejemplo de conversación en envío:

sun % mail -v rstevens@noao.edu


To: rstevens@noao.edu
Subject: testing
1, 2, 3.
.
Sending Letter...rstevens@noao@edu
Connecting to mailhost via ether...Trying 140.252.1.54... connected
220 noao.edu Sendmail 4.1/SAG-Noao.G89 ready at Mon, 19 Jul 93 12:47:34 MST
>>> HELO sun.tuc.noao.edu
250 noao.edu Hello sun.tuc.noao.edu., pleased to meet you
>>> MAIL From:rstevens@sun.tuc.noao.edu
250 <rstevens@sun.tuc.noao.edu>... Sender ok
>>> RCPT To:rstevens@noao.edu
250 <rstevens@noao.edu>... Recipient ok
>>> DATA
354 Enter mail, end with “.” on a line by itself
>>> .
250 Mail accepted
>>> QUIT
221 noao.edu delivering mail rstevens@noao.edu... Sent
sent.

20
Protocolo SMTP
z Aunque el usuario solo tecleó la línea “1, 2, 3.” el
UA y el MTA agregan otras mas:

Received: by sun.tuc.noao.edu. (4.1/SMI-4.1)


id AA00502; Mon, 19 Jul 93 12:47:32 MST
Message-Id: 9307191947.AA00502@sun.tuc.noao.edu.
From: rstevens@sun.tuc.noao.edu (Richard Stevens)
Reply-To: rstevens@noao.edu
X-Phone: +1 602 676 1676
X-Mailer: Mail User’s Shell (7.2.5 10/14/92)
To: rstevens@noao.edu
Subject: testing
1, 2, 3.

POP (Post Office Protocol)

z Siendo que SMTP es una aplicación punto a punto


más que de retransmisión, es necesario que el
servidor esté disponible cuando un cliente desea
enviarle correo.
z Esto no suele ser un problema en sistemas
multiusuario porque están disponibles la mayor parte
del tiempo.
z En sistemas monousuario, sin embargo, este no es
el caso, y se requiere un método para asegurar que
el usuario tenga un buzón disponible en otro
servidor.

21
POP (Post Office Protocol)

z Hay varias razones por las que es deseable


descargar a la estación de trabajo de las funciones
del servidor de correo, entre ellas la falta de
recursos en estaciones de trabajo pequeñas, la falta
o encarecimiento de la conectividad TCP, etc.
z El POP describe cómo un programa que se ejecuta
en una estación de trabajo final puede recibir correo
almacenado en sistema servidor de correo.

POP (Post Office Protocol)

z La versión 3 (POP3) se describe en el RFC 1725.


z El protocolo es en texto plano.
z Normalmente el servidor usa el puerto 110.
z Al hacer la conexión, el servidor responderá con
algo parecido a:
+OK POP3 cs.ensenada.edu v4.38 server ready
z Las respuestas de POP inician con “+OK” o “-ERR”

22
POP (Post Office Protocol)

z Inicialmente se está en modo login y los


unicos comandos válidos son USER, PASS y
QUIT.
z Una vez hecho login se puede trabajar con el
buzón.
z Para ello hay varios comandos, algunos de
los cuales se muestran enseguida.

POP (Post Office Protocol)

23
Mensajería instantánea

MSN Messenger

MSN Messenger tiene básicamente dos etapas


en su funcionamiento:
z Fase de autentificación. Cuando los usuarios
se dan de alta y obtienen la lista de otros
usuarios.
z Fase de mensajería. Cuando se está en
condiciones de interactuar con los otros
usuarios.

24
MSN IM - Protocolo

z IM tiene un protocolo de texto ASCII.


z Los comandos tienen un mnemónico de 3 letras,
seguido de parámetros y terminados en \r\n.
– El primer parámetro es un número de transacción.
– los mensajes (MSG) son comandos especiales, después de
la primera línea va un encabezado MIME indicando la
longitud del mensaje.
z El servidor trabaja en el puerto 1863 con una
conexión TCP.
– Ver http://www.hypothetic.org/docs/msn/

MSN IM - Protocolo

Hay tres tipos de servidores:

– Dispatch server. Punto inicial de conexión.


– Notification server. El dispatch server envía hacia
éste; se mantiene el status de la sesión, notifica
de usuarios que entran y salen, peticiones de
chats, etc.
– Switchboard server. Atiende las ventanas de
chats, transferencias de archivos, etc.

25
MSN IM - Protocolo

z Cuando algo sale mal, el servidor envía un


mensaje de error.

z Estos son números de tres dígitos, seguidos


por el ID de la transacción a cual responden.
– cualquier tipo de servidor puede enviar estos
mensajes de error.

MSN IM - Protocolo
z Algunos mensajes de error:

200 Syntax error


201 Invalid parameter
205 Invalid user
217 User not online
280 Switchboard failed
281 Transfer to switchboard failed
302 Not logged in
500 Internal server error
600 Server is busy
707 Could not create connection
711 Write is blocking
712 Session is overloaded
713 Too many active users
714 Too many sessions
715 Not expected
717 Bad friend file
911 Authentication failed
913 Not allowed when offline
920 Not accepting new users

26
MSN IM - Conexión
z Se inicia una sesión conectándose al dispatch
server.
z Se inicia luego el proceso de login mandando las
versiones para las cuales el cliente tiene soporte.

VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVRO

z Si todo sale bien, el servidor responde con un


mensaje similar.
– hasta aquí ya se pusieron de acuerdo en las versiones de
protocolo que pueden manejar.

MSN IM - Conexión
z Enseguida, el cliente pide iniciar la autentificación:
INF 1
z El servidor responde con INF y el tipo de
autentificación utilizada:
INF 1 MD5
z Se manda luego la identidad del usuario:
USR 2 MD5 jim@doors.org
z El servidor responde con la dirección (y puerto) del
notification server:
XFR 2 NS 64.4.12.132:1863 0
z Se cierra la conexión y se abre otra al notification
server.

27
MSN IM – Algunas acciones
Agregar/borrar usuarios:
z Se agrega con ADD:
ADD 10 AL ex@passport.com

z Se borra con REM:


REM 12 AL ex@passport.com

z El servidor notifica al usuario que fue agregado con


un ADD con número de transacción 0.
z En forma similar para notificar que ha sido borrado,
solo que con REM.

MSN IM – Algunas acciones


z Algunas acciones en el Notification Server:
z Se cambia status con CHG:
CHG 8 AWY
– Los códigos son: NLN – online, FLN – offline,
HDN - hidden, IDL – iddle, AWY – away, BSY –
busy, BRB – be right back, PHN – on the phone,
LUN – out to lunch
z El servidor informa a los usuarios de
cambios con los comandos NLN (usuario
sale) o FLN (cambio de status).

28
MSN IM – Algunas acciones
Iniciar sesión con el switchboard server:
z Para iniciar una sesión de mensajes, se
solicita con un comando como:
XFR 10 SB
z El NS responde con la dirección (y puerto)
del servidor, y un código hash necesario
para hacer login:
z XFR 10 SB 64.4.12.193:1863 CKI
16925950.1016955577.17693

MSN IM - Mensajes
z Para notificar que el usuario se encuentra
tecleando texto, se manda un mensaje que
tiene la forma:

MSG 3 U 93
MIME-Version: 1.0
Content-Type: text/x-msmsgscontrol
TypingUser: example@passport.com

29
MSN IM - Mensajes
z Un mensaje tiene la forma:
MSG 3 A 157
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=I;
CO=000000; CS=0; PF=22
Hello! How are you?
z El segundo parámetro indica si se requiere
verificación de recepción de mensajes.
U=no verificar, A=ack, N=nack
z El formato indica tipo de letra, color, charset
(ASCII=0).

MSN IM - logout
z Para salir del sistema, se envía un comando
OUT sin parámetros ni ID de transacción.
– similarmente para terminar una sesión de chat
(se manda el OUT al switchboard).
z El servidor puede desconectar a un usuario
– Le manda lo siguiente si lo desconecta porque ya
estaba conectado desde otra parte:
OUT 5 OTH
– Si se desconecta por problemas del servidor se
manda:
OUT 5 SSD

30

Potrebbero piacerti anche