Anda di halaman 1dari 30

Capa de Aplicacin

(Parte 1 de 2)

Redes de Computadoras

Aplicaciones y protocolos de capa de aplicacin


Aplicacin en red: procesos distribuidos que se comunican

Corriendo en hosts en espacio de usuario intercambian mensajes para implementar la aplicacin Ejemplos: email, transferencia de archivos, el Web

Protocolos de capa de aplicacin


una pieza de una aplicacin define mensajes intercambiados por aplicaciones y acciones a tomar usa (depende de) servicios provistos por protocolos de capas mas bajas

Aplicaciones en red: conceptos


Un proceso es un programa que corre en un host. Dentro del mismo host, dos procesos se comunican via comunicacin interprocesos (IPC) definida por el sistema operativo. Los procesos corriendo en hosts diferentes se comunican mediante un protocolo de aplicacin. Un agente usuario es una interface entre el usuario y la aplicacin de red.

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

Ni el agente usuario ni la aplicacin de red conforman el protocolo de aplicacin sino que usan los servicios que brinda el protocolo.

Paradigma cliente-servidor
La aplicacin tpica tiene dos elementos: cliente y servidor Cliente: inicia contacto con el servidor tpicamente pide un servicio para el Web, el cliente est implementado en el navegador; para e-mail, en el lector; etc Servidor: provee el servicio requerido por el cliente Ejemplos: servidor web enva pgina solicitada, servidor de correo entrega mensajes, ...

Servicios de transporte para aplicaciones


Prdidas de datos Algunas aplicaciones (e.g., audio sin comprimir) pueden tolerar algunas prdidas otras (e.g., e-mail, ftp, telnet) requieren transferencias 100% confiables Temporizacion Algunas aplicaciones (e.g., telefona en Internet, juegos interactivos) requieren poco retardo para ser efectivas Ancho de banda Algunas aplicaciones (e.g., multimedia tiempo real) requieren un ancho de banda mnimo garantizado para poder ser efectivas otras (aplicaciones elsticas) usan cualquier ancho de banda que encuentren disponible

Requerimientos de transporte

Aps. en Internet: sus protocolos y su transporte

FTP (File Transfer Protocol)

Transferencia de archivos
Copiar archivos de una mquina a otra, usando un protocolo confiable como TCP, puede parecer simple. Sin embargo la transferencia puede complicarse:

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

FTP
FTP (File Transfer Protocol) est basado en el modelo cliente servidor. Permite operaciones bsicas involucradas en transferencia de archivos:

autentificar usuarios y dejarlos accesar el sistema remoto. listar directorios. copiar archivos remotamente, etc

Ver RFC 959.

FTP
Normalmente, el servidor FTP se encuentra escuchando en el puerto 21. Se mantienen dos conexiones TCP abiertas: una para control y otra para datos. La conexin de control usa el protocolo de Telnet y sirve para autentificar al cliente, dar mensajes de xito/falla, etc.

FTP

FTP
Primero se abre la conexin de control para autentificar al usuario y enseguida se pueden transferir datos mediante la otra conexin.
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
Los clientes de FTP proveen una serie de comandos, los cuales son mapeados a comandos del protocolo mismo.

FTP
Cdigos 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
Algunos comandos de FTP (se pasan en la conexin 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.

FTP
Al solicitar un archivo, se abre una conexin de datos con el comando PORT.

Telnet

Telnet
Antes, los vendedores permitan a clientes conectarse a sus sistemas solo mediante las terminales que ellos fabricaban. Telnet permite conexin a sistemas remotos independientemente del fabricante.

El protocolo hace una negociacin entre cliente y servidor para determinar el tipo de terminal a emular.

Ver RFC 854.

Telnet
Telnet ofrece tres servicios bsicos: Una terminal virtual en red. Un mecanismo que permite a clientes y servidores negociar opciones.

Ejemplos: modo ascii/binario, etc. no se requiere que uno sea un servidor y el otro una terminal. ambos extremos pueden ser aplicaciones.

Manejo simtrico de los extremos.

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
Los comandos tienen entonces la forma:
IAC, <tipo operacin>, <opcin> (IAC = Interpret As Command)

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
El correo electrnico es quizs el servicio ms usado en Internet. Los primeros sistemas de E-mail en ARPAnet eran bsicamente servicios de transferencia de archivos.

La primera lnea de los archivos contena la direccin del destinatario. Por supuesto, rpidamente se hicieron evidentes las limitaciones de este esquema.

E-mail
En 1982 se publicaron propuestas para E-mail con el RFC 821 (protocolo de transmisin) y el RFC 822 (formato de los mensajes).

desde entonces se convirtieron en los estndares de facto en Internet.

Dos aos despus el CCITT emiti la recomendacin X.400

sta form luego la base de MOTIS de OSI.

Eventualmente los sistemas X.400 (y MOTIS) fueron desapareciendo.

13

SMTP
El trmino SMTP (Simple Mail Transfer Protocol) se usa para referirse a la combinacin de 3 protocolos:

El estndar (STD 10/RFC 821) que especifica el protocolo para enviar correo entre hosts TCP/IP. El estndar (STD 11) para el formato de mensajes. El RFC 822 describe la sintaxis de los encabezados y su interpretacin. El RFC 1049 describe el manejo de mensajes que no son texto. Un estndar para el encaminamiento de correo usando DNS (RFC 974) llamado DNS-MX.

SMTP
El STD 10/ RFC 821 establece que los datos enviados son ASCII de 7 bits.

Esto es adecuado para mensajes en ingls, pero no para otros idiomas o mensajes que no son texto. 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.

Hay dos estrategias para superar estas limitaciones:

14

Modelo SMTP

UA = User Agent MTA = Message Transfer Agent

Modelo SMTP
El intercambio de correos usando TCP/IP es realizado por los MTA. Los usuarios interactan con los UA para leer/escribir mensajes. El MTA mete los mensajes recibidos en buzones.

15

Mensajes
Cada mensaje contiene: Un encabezado, tal como lo define el RFC 822

el encabezado termina con una lnea nula.

El cuerpo, formado por todo lo que viene despus de la lnea nula.


secuencia de lneas con caracteres ASCII de 7 bits. el mensaje es terminado por una lnea conteniendo solamente un punto.

Mensajes
Algunos campos habituales en encabezados:

16

Protocolo SMTP
SMTP es un protocolo ASCII simple. Primero el cliente establece una conexin al servidor en el puerto 25. El servidor responde identificndose y anunciando si est listo o no para recibir.

si no lo est, el cliente reintenta luego. Todas las rplicas tienen un cdigo numrico al comienzo de la lnea.

Se siguen intercambiando lneas de texto.

Protocolo SMTP
Algunos cdigos de SMTP:

17

Protocolo SMTP

Protocolo SMTP
1.

2.

El cliente establece una conexin y espera a que el servidor enve un mensaje "220 Service ready" o "421 Service not available". El cliente enva 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-lnea 250 OK que incluye una lista de las extensiones de servicio que soporta.

18

Protocolo SMTP
3.

4.

El enva 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". Luego se le d al servidor el destino del mensaje(puede haber ms de un receptor). Esto se hace enviando uno o ms 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 envan todos los comandos RCPT, el emisor enva un comando DATA para notificar al receptor que a continuacin se envan los contenidos del mensaje. El servidor replica con "354 Start mail input, end with <CRLF>.<CRLF>". Ntese que se trata de la secuencia de terminacin que el emisor debera usar para terminar los datos del mensaje.

19

Protocolo SMTP
6.

7.

El cliente enva los datos lnea a lnea, acabando con la lnea <CRLF>. <CRLF> que el servidor reconoce con "250 OK" o el mensaje de error apropiado si cualquier cosa fue mal. Ahora hay varias acciones posibles:

El cliente no tiene ms mensajes que enviar; cerrar la conexin con un comando QUIT, que ser respondido con "221 Service closing transmission channel". El cliente no tiene ms 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 conversacin en envo:
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
Aunque el usuario solo tecle la lnea 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 Users Shell (7.2.5 10/14/92) To: rstevens@noao.edu Subject: testing 1, 2, 3.

POP (Post Office Protocol)


Siendo que SMTP es una aplicacin punto a punto ms que de retransmisin, es necesario que el servidor est disponible cuando un cliente desea enviarle correo. Esto no suele ser un problema en sistemas multiusuario porque estn disponibles la mayor parte del tiempo. En sistemas monousuario, sin embargo, este no es el caso, y se requiere un mtodo para asegurar que el usuario tenga un buzn disponible en otro servidor.

21

POP (Post Office Protocol)


Hay varias razones por las que es deseable descargar a la estacin de trabajo de las funciones del servidor de correo, entre ellas la falta de recursos en estaciones de trabajo pequeas, la falta o encarecimiento de la conectividad TCP, etc. El POP describe cmo un programa que se ejecuta en una estacin de trabajo final puede recibir correo almacenado en sistema servidor de correo.

POP (Post Office Protocol)


La versin 3 (POP3) se describe en el RFC 1725. El protocolo es en texto plano. Normalmente el servidor usa el puerto 110. Al hacer la conexin, el servidor responder con algo parecido a:
+OK POP3 cs.ensenada.edu v4.38 server ready

Las respuestas de POP inician con +OK o -ERR

22

POP (Post Office Protocol)


Inicialmente se est en modo login y los unicos comandos vlidos son USER, PASS y QUIT. Una vez hecho login se puede trabajar con el buzn. Para ello hay varios comandos, algunos de los cuales se muestran enseguida.

POP (Post Office Protocol)

23

Mensajera instantnea

MSN Messenger
MSN Messenger tiene bsicamente dos etapas en su funcionamiento: Fase de autentificacin. Cuando los usuarios se dan de alta y obtienen la lista de otros usuarios. Fase de mensajera. Cuando se est en condiciones de interactuar con los otros usuarios.

24

MSN IM - Protocolo
IM tiene un protocolo de texto ASCII. Los comandos tienen un mnemnico de 3 letras, seguido de parmetros y terminados en \r\n.

El primer parmetro es un nmero de transaccin. los mensajes (MSG) son comandos especiales, despus de la primera lnea va un encabezado MIME indicando la longitud del mensaje.

El servidor trabaja en el puerto 1863 con una conexin TCP.

Ver http://www.hypothetic.org/docs/msn/

MSN IM - Protocolo
Hay tres tipos de servidores:

Dispatch server. Punto inicial de conexin. Notification server. El dispatch server enva hacia ste; se mantiene el status de la sesin, 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
Cuando algo sale mal, el servidor enva un mensaje de error. Estos son nmeros de tres dgitos, seguidos por el ID de la transaccin a cual responden.

cualquier tipo de servidor puede enviar estos mensajes de error.

MSN IM - Protocolo
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 - Conexin
Se inicia una sesin conectndose al dispatch server. Se inicia luego el proceso de login mandando las versiones para las cuales el cliente tiene soporte.
VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVRO

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 - Conexin
Enseguida, el cliente pide iniciar la autentificacin:
INF 1

El servidor responde con INF y el tipo de autentificacin utilizada:


INF 1 MD5

Se manda luego la identidad del usuario:


USR 2 MD5 jim@doors.org

El servidor responde con la direccin (y puerto) del notification server:


XFR 2 NS 64.4.12.132:1863 0

Se cierra la conexin y se abre otra al notification server.

27

MSN IM Algunas acciones


Agregar/borrar usuarios: Se agrega con ADD:
ADD 10 AL ex@passport.com

Se borra con REM:


REM 12 AL ex@passport.com

El servidor notifica al usuario que fue agregado con un ADD con nmero de transaccin 0. En forma similar para notificar que ha sido borrado, solo que con REM.

MSN IM Algunas acciones


Algunas acciones en el Notification Server: Se cambia status con CHG:
CHG 8 AWY

Los cdigos 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

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 sesin con el switchboard server: Para iniciar una sesin de mensajes, se solicita con un comando como:
XFR 10 SB

El NS responde con la direccin (y puerto) del servidor, y un cdigo hash necesario para hacer login:
XFR 10 SB 64.4.12.193:1863 CKI 16925950.1016955577.17693

MSN IM - Mensajes
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
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?

El segundo parmetro indica si se requiere verificacin de recepcin de mensajes.


U=no verificar, A=ack, N=nack

El formato indica tipo de letra, color, charset (ASCII=0).

MSN IM - logout
Para salir del sistema, se enva un comando OUT sin parmetros ni ID de transaccin.

similarmente para terminar una sesin de chat (se manda el OUT al switchboard). Le manda lo siguiente si lo desconecta porque ya estaba conectado desde otra parte:
OUT 5 OTH

El servidor puede desconectar a un usuario

Si se desconecta por problemas del servidor se manda:


OUT 5 SSD

30

Anda mungkin juga menyukai