capa de aplicación - uabcfcqi.tij.uabc.mx/usuarios/lpalafox/cursos/redes/...1 capa de aplicación...

30
1 Capa de Aplicación (Parte 1 de 2) Redes de Computadoras 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 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 Aplicaciones y protocolos de capa de aplicación

Upload: others

Post on 18-Mar-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

1

Capa de Aplicación(Parte 1 de 2)

Redes de Computadoras

Aplicación en red: procesosdistribuidos que se comunican

– Corriendo en hosts en “espacio de usuario”

– intercambian mensajes paraimplementar la aplicación

– Ejemplos: email, transferencia de archivos, el Web

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

Aplicaciones y protocolos de capa de aplicación

2

Aplicaciones en red: conceptos

Un proceso es un programa que corre en un host.

Dentro del mismo host, dos procesos se comunican via comunicacióninterprocesos (IPC) definida por el sistema operativo.

Los procesos corriendo en hosts diferentes se comunican mediante un protocolo de aplicación.

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

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-servidorLa aplicación típica tiene dos

elementos: cliente y servidor

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

Servidor:provee el servicio requerido porel clienteEjemplos: servidor web envíapágina solicitada, servidor de correo entrega mensajes, ...

3

Servicios de transporte para aplicaciones

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

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

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

Requerimientos de transporte

4

Aps. en Internet: sus protocolos y su transporte

FTP (File Transfer Protocol)

5

Transferencia de archivos

Copiar archivos de una máquina a otra, usando un protocolo confiable como TCP, puede parecersimple.

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 básicas involucradasen transferencia de archivos:– autentificar usuarios y dejarlos accesar el sistema

remoto.– listar directorios.– copiar archivos remotamente, etc…

Ver RFC 959.

6

FTP

Normalmente, el servidor FTP se encuentraescuchando en el puerto 21.

Se mantienen dos conexiones TCP abiertas: unapara control y otra para datos.

La conexión de control usa el protocolo de Telnet y sirve para autentificar al cliente, dar mensajes de éxito/falla, etc.

FTP

7

FTP

Primero se abre la conexión de control paraautentificar al usuario y enseguida se puedentransferir datos mediante la otra conexión.

host% ftp fcqi.tij.uabc.mxConnected to ftp fcqi.tij.uabc.mx.220 fcqi FTP server (SunOS 5.7) ready.Name (fcqi.tij.uabc.mx :(none)): palafox331 Password required for palafox.Password:230 User palafox logged in.ftp>

FTPLos clientes de FTP proveen una serie de comandos, los cuales son mapeados a comandosdel protocolo mismo.

8

FTPCódigos indicando éxito o falla (ver mas enhttp://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.

FTPAlgunos 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 serverSYST Gets the OS information of the server.HELP Get help on a verb.NOOP No operation.

9

FTPAl solicitar un archivo, se abre una conexión de datos con el comando PORT.

Telnet

10

Telnet

Antes, los vendedores permitían a clientesconectarse a sus sistemas solo mediante lasterminales que ellos fabricaban.Telnet permite conexión a sistemas remotosindependientemente del fabricante.– El protocolo hace una negociación entre cliente y

servidor para determinar el tipo de terminal a emular.

Ver RFC 854.

Telnet

Telnet ofrece tres servicios básicos:Una terminal virtual en red.Un mecanismo que permite a clientes y servidoresnegociar opciones.

– Ejemplos: modo ascii/binario, etc.

Manejo simétrico de los extremos.– no se requiere que uno sea un servidor y el otro una

terminal.– ambos extremos pueden ser aplicaciones.

11

Telnet

Servicio de terminal virtual con Telnet:

TelnetAlgunos comandos de Telnet:SE 240 End of subnegotiation parameters.NOP 241 No operationDM 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

12

Telnet

Los comandos tienen entonces la forma:IAC, <tipo operación>, <opción>(IAC = Interpret As Command)

En el sig. ejemplo el cliente pide establecerun tipo de terminal y el servidor respondediciendo que lo haga:

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

Protocolos para E-mail

13

E-mail

El correo electrónico es quizás el serviciomás usado en Internet.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

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.

Dos años después el CCITT emitió la recomendación X.400

– ésta formó luego la base de MOTIS de OSI.Eventualmente los sistemas X.400 (y MOTIS) fuerondesapareciendo.

14

SMTP

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 protocolopara 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 suinterpretación. El RFC 1049 describe el manejo de mensajes que no son texto.

– Un estándar para el encaminamiento de correo usandoDNS (RFC 974) llamado DNS-MX.

SMTP

El STD 10/ RFC 821 establece que los datosenviados son ASCII de 7 bits.

– Esto es adecuado para mensajes en inglés, pero no paraotros idiomas o mensajes que no son texto.

Hay dos estrategias para superar estas limitaciones:– MIME (Multipurpose Internet Mail Extensions), que

especifica un mecanismo para codificar texto y datosbinarios en ASCII de 7 bits en el mensaje (RFC 1521 y 1522).

– SMTPSE (SMTP Service Extensions), que permitemensajes codificados en 8 bits.

15

Modelo SMTP

UA = User AgentMTA = Message Transfer Agent

Modelo SMTP

El intercambio de correos usando TCP/IP esrealizado por los MTA.Los usuarios interactúan con los UA paraleer/escribir mensajes.El MTA mete los mensajes recibidos en “buzones”.

16

Mensajes

Cada mensaje contiene:

Un encabezado, tal como lo define el RFC 822– el encabezado termina con una línea nula.

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:

17

Protocolo SMTP

SMTP es un protocolo ASCII simple.Primero el cliente establece una conexión al servidoren el puerto 25.El servidor responde identificándose y anunciando siestá listo o no para recibir.

– si no lo está, el cliente reintenta luego.

Se siguen intercambiando líneas de texto.– Todas las réplicas tienen un código numérico al comienzo

de la línea.

Protocolo SMTPAlgunos códigos de SMTP:

18

Protocolo SMTP

Protocolo SMTP

1. El cliente establece una conexión y espera a que el servidorenví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 lasextensiones de servicio que soporta.

19

Protocolo SMTP

3. El envía el comando MAIL al servidor. Estecomando contiene la ruta de vuelta al emisor quese 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á unarespuesta "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 comandosRCPT, el emisor envía un comando DATA para notificar al receptor que a continuaciónse 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 datosdel mensaje.

20

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á preparadopara recibir mensajes (si los hay) del otro extremo. Mandará el comando TURN. Los dos extremos intercambian sus papelesempezando por el paso 3.

– El cliente tiene otro mensaje que enviar, y simplemente vuelve al paso 3 para enviar un nuevo MAIL.

Protocolo SMTPEjemplo de conversación en envío:

sun % mail -v [email protected]: [email protected]: testing1, 2, 3..Sending Letter...rstevens@noao@eduConnecting to mailhost via ether...Trying 140.252.1.54... connected220 noao.edu Sendmail 4.1/SAG-Noao.G89 ready at Mon, 19 Jul 93 12:47:34 MST>>> HELO sun.tuc.noao.edu250 noao.edu Hello sun.tuc.noao.edu., pleased to meet you>>> MAIL From:[email protected] <[email protected]>... Sender ok>>> RCPT To:[email protected] <[email protected]>... Recipient ok>>> DATA354 Enter mail, end with “.” on a line by itself>>> .250 Mail accepted>>> QUIT221 noao.edu delivering mail [email protected]... Sentsent.

21

Protocolo SMTPAunque 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 MSTMessage-Id: [email protected]: [email protected] (Richard Stevens)Reply-To: [email protected]: +1 602 676 1676X-Mailer: Mail User’s Shell (7.2.5 10/14/92)To: [email protected]: testing1, 2, 3.

POP (Post Office Protocol)

Siendo que SMTP es una aplicación punto a puntomás que de retransmisión, es necesario que el servidor esté disponible cuando un cliente deseaenviarle correo.Esto no suele ser un problema en sistemasmultiusuario porque están disponibles la mayor partedel tiempo.En sistemas monousuario, sin embargo, este no esel caso, y se requiere un método para asegurar queel usuario tenga un buzón disponible en otroservidor.

22

POP (Post Office Protocol)

Hay varias razones por las que es deseabledescargar a la estación de trabajo de las funcionesdel servidor de correo, entre ellas la falta de recursos en estaciones de trabajo pequeñas, la faltao encarecimiento de la conectividad TCP, etc.El POP describe cómo un programa que se ejecutaen una estación de trabajo final puede recibir correoalmacenado en sistema servidor de correo.

POP (Post Office Protocol)

La versión 3 (POP3) se describe en el RFC 1725.El protocolo es en texto plano.Normalmente el servidor usa el puerto 110.Al hacer la conexión, 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”

23

POP (Post Office Protocol)

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

POP (Post Office Protocol)

24

Mensajería instantánea

MSN Messenger

MSN Messenger tiene básicamente dos etapasen su funcionamiento:Fase de autentificación. Cuando los usuariosse dan de alta y obtienen la lista de otrosusuarios.Fase de mensajería. Cuando se está en condiciones de interactuar con los otrosusuarios.

25

MSN IM - Protocolo

IM tiene un protocolo de texto ASCII.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.

El servidor trabaja en el puerto 1863 con unaconexió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, notificade usuarios que entran y salen, peticiones de chats, etc.

– Switchboard server. Atiende las ventanas de chats, transferencias de archivos, etc.

26

MSN IM - Protocolo

Cuando algo sale mal, el servidor envía un mensaje de error.

Estos son números de tres dígitos, seguidospor el ID de la transacción a cual responden.– cualquier tipo de servidor puede enviar estos

mensajes de error.

MSN IM - ProtocoloAlgunos mensajes de error:

200 Syntax error201 Invalid parameter205 Invalid user217 User not online280 Switchboard failed281 Transfer to switchboard failed302 Not logged in500 Internal server error600 Server is busy707 Could not create connection711 Write is blocking712 Session is overloaded713 Too many active users714 Too many sessions715 Not expected717 Bad friend file911 Authentication failed913 Not allowed when offline920 Not accepting new users

27

MSN IM - ConexiónSe inicia una sesión conectándose al dispatch server.Se inicia luego el proceso de login mandando lasversiones 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 - ConexiónEnseguida, el cliente pide iniciar la autentificación:

INF 1

El servidor responde con INF y el tipo de autentificación utilizada:

INF 1 MD5

Se manda luego la identidad del usuario: USR 2 MD5 [email protected]

El servidor responde con la dirección (y puerto) del notification server:

XFR 2 NS 64.4.12.132:1863 0

Se cierra la conexión y se abre otra al notification server.

28

MSN IM – Algunas accionesAgregar/borrar usuarios:

Se agrega con ADD:ADD 10 AL [email protected]

Se borra con REM:REM 12 AL [email protected]

El servidor notifica al usuario que fue agregado con un ADD con número de transacción 0.En forma similar para notificar que ha sido borrado, solo que con REM.

MSN IM – Algunas accionesAlgunas acciones en el Notification Server: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

El servidor informa a los usuarios de cambios con los comandos NLN (usuariosale) o FLN (cambio de status).

29

MSN IM – Algunas accionesIniciar sesión con el switchboard server:

Para iniciar una sesión de mensajes, se solicita con un comando como:

XFR 10 SB

El NS responde con la dirección (y puerto) del servidor, y un código hash necesariopara hacer login:

XFR 10 SB 64.4.12.193:1863 CKI 16925950.1016955577.17693

MSN IM - MensajesPara notificar que el usuario se encuentratecleando texto, se manda un mensaje quetiene la forma:

MSG 3 U 93MIME-Version: 1.0Content-Type: text/x-msmsgscontrolTypingUser: [email protected]

30

MSN IM - MensajesUn mensaje tiene la forma:

MSG 3 A 157MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=I;CO=000000; CS=0; PF=22Hello! How are you?

El segundo parámetro indica si se requiereverificación de recepción de mensajes.

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

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

MSN IM - logoutPara salir del sistema, se envía un comandoOUT sin parámetros ni ID de transacción.– similarmente para terminar una sesión de chat

(se manda el OUT al switchboard).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