(Parte 1 de 2)
Redes de Computadoras
Corriendo en hosts en espacio de usuario intercambian mensajes para implementar la aplicacin Ejemplos: email, transferencia de archivos, el Web
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
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, ...
Requerimientos de transporte
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
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.
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.
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
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).
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.
14
Modelo SMTP
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
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.
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.
21
22
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.
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.
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
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
27
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.
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
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?
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
30