78
Tema 11 Aplicaciones distribuidas F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de Madrid

Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

  • Upload
    others

  • View
    33

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Tema 11Aplicaciones distribuidas

F. García-Carballeira, Mª. Soledad Escolar,

Luis Miguel Sánchez, Fco. Javier García

Sistemas Distribuidos

Grado en Ingeniería Informática

Universidad Carlos III de Madrid

Page 2: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Contenido

� Aplicaciones distribuidas� Telnet

� FTP (File Transfer Protocol)

� HTTP (HiperText Transfer Protocol)

� DNS (Domain Name System)

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

DNS (Domain Name System)

� Correo electrónico

2

Page 3: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Telnet� Telnet (TELecommunication NETwork) es un protocolo que permite la conexión remota desde un cliente a un servidor (RFC 854, 855)� Útil para la administración remota de sistemas UNIX en modo terminal (texto)

� Los clientes se conectan al puerto 23 de TCP de los servidores telnet y envían al servidor comandos UNIX que se ejecutarán en el

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

3

telnet y envían al servidor comandos UNIX que se ejecutarán en el servidor� Datos en formato ASCII codificados en 8 bits� Conexión bidireccional

� No proporciona seguridad � Los datos se envían sin cifrar � Base de otros protocolos que añaden seguridad (SSH, secure shell)

Page 4: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Comandos de telnet

� Los clientes telnet usan los siguientes comandos para conectar y desconectar del servidor? mostrar ayuda

close Cerrar sesión Telnet

displayMostrar la configuración de la conexión en pantalla (tipo de terminal y puerto)

entorno Para definir las variables del entorno del sistema operativo

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

4

entorno Para definir las variables del entorno del sistema operativo

logout Para cerrar la sesión

modeCambia entre los modos de transferencia ASCII (transferencia de un archivo como texto) y los modos BINARIOS (transferencia de un archivo en modo binario)

open Abre otra conexión de la actual

quit Sale de la aplicación Telnet

set Cambia la configuración de conexión

unset Carga la configuración de conexión predeterminada

Page 5: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

EjemploEstablecimiento de la conexión$user> telnet manwe.ainulindale.es. Trying 192.168.0.12... Connected to manwe.ainulindale.es. Escape character is '^]'. Debian GNU/Linux 2.2 manwe.ainulindale.es login: carlosPassword: Last login : Wed Nov 7 18:20:19 2001 from iluvatar on pts /0

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

5

Last login : Wed Nov 7 18:20:19 2001 from iluvatar on pts /0 Linux Manwe 2.4.4 #14 Fri Oct 19 14:09:15 CEST 2001 i586 unknownNo mail.

Comandos UNIX$telnet>

Cierre de conexión$telnet>logout

Page 6: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo: conexión al puerto 80 usando telnet

Establecimiento de la conexión$user>telnet www.esqsoft.globalservers.com 80Trying 64.136.56.122... Connected to www.esqsoft.globalservers.com. Escape character is '^]'.

Petición de la página

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

6

Petición de la página www.esqsoft.globalservers.com/index.htmlGET /index.htm HTTP/1.1 host: www.esqsoft.globalservers.com <line feed>

RespuestaHTTP/1.1 200 OK Date: Mon, 18 Apr 2005 16:38:00 GMT…

Page 7: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

FTP (File Transfer Protocol)� FTP es un protocolo cliente-servidor para la transferencia de ficheros sobre TCP (RFC 114,765,959,2228,2428) � El servidor utiliza dos puertos well-known:

� 20/TCP DATA Port ���� Conexión de datos

� 21/TCP Control Port ���� Conexión de control

� El cliente debe abrir dos puertos cualesquiera mayores que 1024

� Una vez establecida la conexión el cliente envía una serie de órdenes o comandos FTP al servidor y el servidor responderá con el resultado

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

7

comandos FTP al servidor y el servidor responderá con el resultado

� La conexión de datos es bidireccional

� FTP admite dos modos de conexión:

� Modo activo

� Modo pasivo

� Todo el intercambio de información entre cliente y servidor se realiza en texto plano

� Aplicaciones que cifran todo el tráfico: SSH, SFTP, SCP

� FTP anónimo

Page 8: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo

Establecimiento de la conexión$user> ftp sonne.uiuc.eduConnected to sonne.uiuc.edu220 sonn FTP server (SunOS 4.1) readyName (ux.uiuc.edu:krol): krol send login name krol

331 password required for krolPassword : type the password , it isn’t echoed

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

8

Password : type the password , it isn’t echoed

230 user krol logged in

Comandos FTP --- Transferencia de informaciónftp> get source-file

Cierre de conexiónftp> quit221 Goodbye$user>

Page 9: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Lista de comandos FTP! Asociado a comando local

$ Ejecuta Macro

? Imprime información de ayuda local

account Envia comando a la cuenta del servidor remoto

append Concatena un archivo

ascii Para configurar y transferir archivos tipo ascii

bell Sonido de campanilla cuando el comando se ha completado

binary Para configurar y transferir archivos tipo binario

bye Finalización de la sesión de ftp y salirse

case Mapeo de letras iguales

cd Cambiarse de directorio en el servidor remoto

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

9

cd Cambiarse de directorio en el servidor remoto

cdup Cambiarse al directorio padre en el servidor remoto

chmod Cambio de permisos en el servidor remoto

close Finalizar la sesión ftp

cr Retorno de carro

delete Borrar un archivo en el servidor remoto

debug Configura modo de supresión de errores

dir Lista contenido de directorio remoto

disconnect Finalizar la sesión ftp

form Configurar formato de transferencia de archivo

get Recibir archivo o traerlo al servidor local

glob Transponer nombre de archivo local con un metacarácter

hash Imprimir el metacarácter "#" por cada buffer transferido

help Inprime información de ayuda local

Page 10: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Lista de comandos FTPidle Configurar el tiempo disponible en el lado remoto

image Para configurar y transferir archivos tipo binario

lcd Cambiarse de directorio en el servidor local

ls Lista el contenido de el directorio remoto

macdef Define una macro

mdelete Borrar varios archivos

mdir Lista contenido de varios directorios remotos

mget Recibe varios archivos

mkdir Crear un directorio en la máquina remota

mls Lista contenido de varios directorios remotos

mode Configura el modo de transferencia

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

10

mode Configura el modo de transferencia

modetime Modo de reloj

mput Envia varios archivos

newer Recibe el archivo remoto si es ms nuevo que el de la máquina local

nmap Configura nombre de archivo de acuerdo a plantilla

nlist Lista el contenido de varios directorios remotos

ntrans Configura tabla de traducción para mapeo de nombres de archivos

open Abre conexión remota

prompt Fuerza la ejecución de múltiples comandos

proxy Comando para conexión alternativa

sendport Activa/desactiva use del comando PORT para cada conexión de de datos

put Enviar un archivo al sistema remoto

pwd Imprime directorio de trabajo en la máquina remota

reset Limpia las respuestas de los comandos encolados

Page 11: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Lista de comandos FTP

rmdir Borrar un directorio de la máquina remota

runique Activa/Desactiva almacenamiento único sobre los archivos locales

send Enviar un archivo al servidor remoto

site Envia un comando específico a la máquina remota/TD>

size Muestra el tamaño de un archivo

status Muestra el status local

struct Configura la estructra de la transferencia de los archivos

system Muestra el tipo del sistema remoto

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

11

system Muestra el tipo del sistema remoto

sunique Activa/desactiva almacenamiento único sobre la máquina remota

tenex Transferencia de archivos de tipo tenex

trace Activa/desactiva trazado de transferencia de paquetes

type Configura el tipo de archivo a transferir

user Envia información de usuario nuevo

umask Configura el sistema de permisos en el lado remoto

verbose Activa/Desactiva modo de entrega de información completa

Page 12: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo activo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

12

Page 13: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo activo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21

PORT 1050

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

13

Page 14: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo activo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21

PORT 1050

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

14

ACK

Page 15: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo activo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21

PORT 1050

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

15

ACK

Connectpuerto 1050

Page 16: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo activo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21

PORT 1050

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

16

ACK

Connectpuerto 1050

Comando de FTP

Page 17: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo FTP activotestbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2

Connected to testbox2.slacksite.com.

220 testbox2.slacksite.com FTP server ready.

Name (testbox2:slacker): slacker

---> USER slacker

331 Password required for slacker.

Password: TmpPass

---> PASS XXXX

230 User slacker logged in.

---> SYST

215 UNIX Type: L8

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

17

215 UNIX Type: L8

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

ftp: setsockopt (ignored): Permission denied

---> PORT 192,168,150,80,14,178

200 PORT command successful.

---> LIST

150 Opening ASCII mode data connection for file list.

drwx------ 3 slacker users 104 Jul 27 01:45 public_html

226 Transfer complete.

ftp> quit

---> QUIT

221 Goodbye.

Comandos FTP enviados al servidorComandos de la interfaz de usuario

Page 18: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo pasivo

Puerto de datos: 20Puerto de control: 21Puerto de datos: 1080

Puerto de datos: 1050Puerto de control: 1051

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

18

Page 19: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo pasivo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21Puerto de datos: 1080PASV

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

19

Page 20: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo pasivo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21Puerto de datos: 1080PASV

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

20

Puerto de datos 1080

Page 21: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo pasivo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21Puerto de datos: 1080PASV

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

21

ACK

Connectpuerto 1080

Page 22: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Modo pasivo

Puerto de datos: 1050Puerto de control: 1051

Puerto de datos: 20Puerto de control: 21Puerto de datos: 1080PASV

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

22

ACK

Connectpuerto 1080

ACK

Page 23: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2

Connected to testbox2.slacksite.com.

220 testbox2.slacksite.com FTP server ready.

Name (testbox2:slacker): slacker

---> USER slacker

331 Password required for slacker.

Password: TmpPass

---> PASS XXXX

230 User slacker logged in.

---> SYST

215 UNIX Type: L8

Ejemplo FTP pasivo

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

215 UNIX Type: L8

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> passive

Passive mode on.

ftp> ls

� PASV

227 Entering Passive Mode (192,168,150,90,195,149).

---> LIST

150 Opening ASCII mode data connection for file list.

drwx------ 3 slacker users 104 Jul 27 01:45 public_html

226 Transfer complete.

ftp> quit

---> QUIT

221 Goodbye.23

Comandos FTP enviados al servidorComandos de la interfaz de usuario

Page 24: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo HTTP� HyperTextTransfer Protocol se usa en web para transferir hipertexto (páginas HTML con hiperenlaces)� Paradigma cliente-servidor� Orientado a transacciones

� Una transacción es un mensaje de petición y respuesta

� El servidor usa el puerto TCP 80 para aceptar conexiones entrantes� Protocolo sin estado

Cookies

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

24

� Cookies

� Existen cuatro versiones de HTTP (la primera de ellas no es estándar de Internet)� HTTP 0.9 � Sólo soporta el comando GET� RFC 1945 (HTTP/1.0, 1996) � Especifica la versión del protocolo� RFC 2616 (HTTP/1.1, 1999) � Versión más extendida

� RFC 2774 (HTTP/1.2, 2000) � Protocolo de extensión de protocolo

Page 25: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Petición: métodos� Se establece una conexión al host al puerto 80 del servidor

� Línea de petición:

<Método> <espacio><URIsolicitado><espacio><protocolo>\r\n

� Dondemétodo:

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

� GET solicita una páginaWEB� HEAD solicita la cabecera de una páginaWeb� POST envía datos a una aplicaciónWeb� PUT solicita almacenar una página web� DELETE solicita el borrado de una página web� TRACE incluye los datos de la petición en la respuesta� OPTIONS devuelve los métodos HTTP soportados para una URL� CONNECT convierte la conexión en un túnel TCP/IP para facilitar la

comunicación cifrada

25

Page 26: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Petición: URI� Cada servicioWeb contiene una URI (Uniform Resource Identifier) que identifica unívocamente un recurso� URL (Uniform Resource Locator)

� Especificado en RFC 1630, 1738, 1808� Incluyen la localización del recurso (hostname+pathname)� El formato general de una URL es:

esquema://máquina/directorio/archivo

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

esquema://máquina/directorio/archivo� Ejemplo: http://www.arcos.inf.uc3m.es/~infosd

� URN (Uniform Resource Name)� Especificado en RFC 2141� Nombres de recursos que no incluyen su localización� <URN> ::= "urn:" <NID> ":" <NSS>

� Los clientes usan la URI para referenciar el servicio

26

Page 27: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Petición: protocolo� donde protocolo

� HTTP/1.0� HTTP/1.1� HTTP/1.2

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

27

Page 28: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo de petición

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

GET /index.html HTTP/1.1

Host: www.arcos.inf.uc3m.es

User-Agent: nombre-cliente

[Línea en blanco]

28

Page 29: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Respuesta� Contenido de la respuesta:

<protocolo> <código>

<cabeceras>

<recurso>

donde protocolo es aquel que entiende el servidor

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

donde protocolo es aquel que entiende el servidor� HTTP/1.0� HTTP/1.1� HTTP/1.2

donde recurso es el recurso solicitado en la petición (enHTML)

29

Page 30: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Cabeceras

� HTTP define una serie de cabeceras válidas para los mensajes de petición y respuesta� Permiten definir parámetros de los mensajes

� En HTTP 1.0 las cabeceras son opcionales

� En HTTP 1.1 algunas cabeceras son obligatorias:En el cliente: Host y User-Agent

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

30

� En el cliente: Host y User-Agent

� En el servidor: Content-type, Content-Length, Date

� Listado completo de cabeceras: http://en.wikipedia.org/wiki/List_of_HTTP_headers

Page 31: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Códigos de respuesta:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

� Clasificados en 5 grupos� 1xx: Mensaje de información

� 100 Continue

� 101 Switching Protocols

� 2xx: Mensajes de éxito� 200 OK

� 201 Created

� 5xx: Mensajes de error en el servidor

� 500 Internal Server Error

� 501 Not Implemented

� 503 Service Unavailable

� 505 HTTP Version Not Supported

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

31

� 202 Accepted

� 3xx: Mensajes de redirección� 301 Moved Permanently

� 302 Found

� 4xx: Mensajes de error en el cliente� 400 Bad Request

� 401 Unauthorized

� 403 Forbidden

� 404 Not found

Supported

Page 32: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo: HTTP

Navegador www.uc3m.es

1) Petición

2) Respuesta

1) Petición: 2) Respuesta:

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

1) Petición:GET /index.html HTTP/1.1 Host: www.example.com User-Agent: nombre-cliente [Línea en blanco]

2) Respuesta:HTTP/1.1 200 OK Date: Fri, 31 Dec 2003 23:59:59 GMT Content-Type: text/htmlContent-Length: 1221

<html> <body>

<h1>Página www.uc3m.es</h1> (Contenido) . . . </body> </html>

32

Page 33: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

DNS� DNS (Domain Name System) es el servicio de nombres usado en Internet (RFC 1034, RFC 1035) � Usa el puerto 53 de UDP o TCP

� Permite la resolución de nombres para la localización de recursos en Internet� Asocia información a cada nombre de dominio y subdominio

La información más común es la dirección IP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

� La información más común es la dirección IP

� Permite también el registro de los nombres y su eliminación

� Estructura en árbol� Basada en dominios y subdominios� Los nombres de los recursos se inscriben dentro de dominios o subdominios

� Base de datos distribuida y jerárquica que almacena información de los nombres de dominios y subdominios

33

Page 34: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Nombres de dominios� Un nombre de dominio es una secuencia de “etiquetas” separadas por puntos “.” � Cada etiqueta representan un nivel del árbol � Cada etiqueta identifica un conjunto de equipos en la red

� Ejemplos de nombres de primer nivel o nivel superior� COM (Organizaciones comerciales)� EDU (Instituciones de Educación)� GOV (Instituciones del Gobierno)� MIL (Grupos Militares)

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

� MIL (Grupos Militares)� NET (Centros de soporte de la red)� ORG (Otras organizaciones)� ARPA (Dominio temporal de ARPANET)� ES (España)� UK (Reino Unido)� MX (Méjico)

� IANA (Internet Assigned Numbers Authority) es la organización con autoridad para asignar nombres de dominios de países y dominios de organizaciones en USA

� http://www.iana.org/

� Gráfico de dominios en el mundo (2010)� http://www.animartec.com/descargas/grafico_dominios_del_mundo.pdf

34

Page 35: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Dominios de primer y segundo nivel

Root server

Dominios de primer nivel

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

35

Dominios de segundo nivel

Page 36: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Nombrado en Internet

� Ejemplos de dominios, subdominios y máquinas:� fi.upm.es: dominio

� datsi.fi.upm.es: dominio

� roble.datsi.fi.upm.es: máquina

� zape.fi.upm.es: máquina

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

es be

upm cecupc

fi dg13etsiiac

datsi

root

dis

A B C

36

Page 37: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Historia de DNS

� Inicialmente la traducción de nombres de máquina a direcciones IP se almacenaba en un único archivo denominado HOSTS.txt� Un archivo centralizado

� Problema de crecimiento (escalabilidad)“Un servidor que en 1993 recibía 10 peticiones por minuto recibía

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

� “Un servidor que en 1993 recibía 10 peticiones por minuto recibía en 1995 250 peticiones por segundo”

� Servidores muy cargados

� Poca capacidad de crecimiento

� Problema grave en aplicaciones Web

37

Page 38: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Uso de DNS� Protocolo cliente-servidor

� Búsquedas recursivas e iterativas

� El uso de DNS en Internet es transparente para los clientes� Cuando una aplicación cliente necesita la dirección IP de un nombre de dominio inicia una operación denominada resolución de nombre

� Ejemplo: http://www.uc3m.es

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

38

� Ejemplo: http://www.uc3m.es

� Cada máquina cliente en Internet mantiene un archivo /etc/hosts con las relaciones máquina – dirección IP� Generalmente, no almacenan la información relativa a las direcciones IP

� Los clientes usan una memoria caché para almacenar las IP de nombres previamente solicitados

� En el archivo /etc/resolv.conf se indica la dirección del servidor de nombres

Page 39: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Resolución de nombres

� El cliente intenta resolver localmente mirando /etc/hosts

� Si encuentra la IP asociada al nombre � Devuelve la IP a la aplicación

127.0.0.1 localhost

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

39

� Devuelve la IP a la aplicación

� Sino � Resuelve el nombre preguntando al servidor en /etc/resolv.conf

domain lab.inf.uc3m.es

search lab.inf.uc3m.es

nameserver 163.117.142.236

nameserver 163.117.142.237

Page 40: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

� Los servidores mantienen registros con distintos tipos de información

� Formato de los registros (definido en RFC 1035):

� donde

Configuración en el servidor

NAME TYPE CLASS TTL LENGTH DATA

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

� dondeNAME Nombre del recursoTYPE Tipo de registroTTL Time to Live, número de segundos que los servidores de

DNS pueden mantener ese registro en cachéCLASS Clase del registro. IN especifica InternetLENGTH Longitud del campo de datosDATA Valor asignado al recurso (depende de TYPE y CLASS)

40

Page 41: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Tipos de registros� A 1 a host address

� AAAA a host address IPv6

� NS 2 an authoritative name server

� MD 3 a mail destination (Obsolete - use MX)

� MF 4 a mail forwarder (Obsolete - use MX)

� CNAME 5 the canonical name for an alias

� SOA 6 marks the start of a zone of authority

� MB 7 a mailbox domain name (EXPERIMENTAL)

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

41

� MB 7 a mailbox domain name (EXPERIMENTAL)

� MG 8 a mail group member (EXPERIMENTAL)

� MR 9 a mail rename domain name (EXPERIMENTAL)

� NULL 10 a null RR (EXPERIMENTAL)

� WKS 11 a well known service description

� PTR 12 a domain name pointer

� HINFO 13 host information

� MINFO 14 mailbox or mail list information

� MX 15 mail exchange

� TXT 16 text strings

Page 42: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo; zone fragment example.com; mail servers in the same zone; will support email with addresses of the format; [email protected]$TTL 2d ; zone default = 2 days or 172800 seconds$ORIGIN example.com.example.com. IN SOA ns1.example.com. root.e xample.com. (

2003080800 ; serial number3h ; refresh = 3 hours15M ; update retry = 15 minutes3W12h ; expiry = 3 weeks + 12 hours

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

42

3W12h ; expiry = 3 weeks + 12 hours2h20M ; minimum = 2 hours + 20 minutes)

IN MX 10 mail ; short form; the line above is functionally the same as the line belo w; example.com. IN MX 10 mail.example.com.; any number of mail servers may be defined

IN MX 20 mail2.example.com.; use an external back-up

IN MX 30 mail.example.net.; the local mail server(s) need an A record mail IN A 192.168.0.3mail2 IN A 192.168.0.3

Page 43: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Algoritmo

La aplicación cliente solicita una página web

www.dominio.subdominio.net DNS 1

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

43

Page 44: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Algoritmo

1) Búsqueda en local/etc/hosts

www.dominio.subdominio.net DNS 1

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

44

Page 45: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Algoritmowww.dominio.subdominio.net DNS 1

1) Búsqueda en local/etc/hosts

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

2) Si existe� Devolver IP

45

Page 46: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Algoritmowww.dominio.subdominio.net DNS 1

1) Búsqueda en local/etc/hosts

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

2.2) Si no existe� Preguntar al servidor de DNS

resolv(www.uc3m.es, direccion-DNSI)

46

Page 47: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Algoritmowww.dominio.subdominio.net DNS 1

1) Búsqueda en local/etc/hosts

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

2.2) Si no existe� Preguntar al servidor de DNS

3) Búsqueda en local

resolv(www.uc3m.es, direccion-DNSI)

47

Page 48: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Algoritmowww.dominio.subdominio.net DNS 1

1) Búsqueda en local/etc/hosts

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

2.2) Si no existe� Preguntar al servidor de DNS

3) Búsqueda en local

3.1) Si existe� Devolver IP cliente

IP

resolv(www.uc3m.es, direccion-DNSI)

48

Page 49: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Algoritmowww.dominio.subdominio.net DNS 1

1) Búsqueda en local/etc/hosts

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

2.2) Si no existe� Preguntar al servidor de DNS

3) Búsqueda en local

3.2) Si NO existe� Preguntar al siguiente servidor de DNS

resolv(www.uc3m.es, direccion-DNSI)

IP

49

Page 50: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Algoritmowww.dominio.subdominio.net

DNS 1 DNS 2 DNS N

1) Búsqueda en local/etc/hosts

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

2.2) Si no existe� Preguntar al servidor de DNS

resolv(www.uc3m.es, direccion-DNSI)

IPIP

50

Page 51: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Correo electrónico� Servicio de red que permite a los usuarios enviar y recibir mensajes

� Elementos:� Dirección de correo� Proveedor de correo� Interfaz de usuario

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

51

� Interfaz de usuario� Cliente de correo

� Thunderbird

� Outlook

� Correo Web� Gmail� Yahoo! Mail� Hotmail

Page 52: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Direcciones de correo electrónico� Cada usuario de correo electrónico tiene una o varias direcciones de correo en la red� Las direcciones tienen típicamente el siguiente formato:usuario@dominio

� Ejemplo: [email protected]

� Se envían mensajes de correo a usuarios identificados mediante direcciones de correo electrónico

� El formato de los mensajes:

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

52

� El formato de los mensajes:� Envoltorio� Cabecera

� From: indica quién envía el mensaje.� To: destinatario del mensaje, puede no aparecer� Subject: Asunto del mensaje. Es conveniente que aparezca aunque no imprescindible

� Cuerpo� Texto� Firma� Adjuntos (“attachments”)

Page 53: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Historia del correo electrónico

� En 1971Ray Tomlinson incorporó el uso de la arroba (@)� Eligió la arroba como divisor entre el usuario y la computadora en la que se aloja la casilla de correo porque no existía la arroba en ningún nombre ni apellido

� Los primeros sistemas de correo electrónico simplemente consistían en protocolos de transferencia de archivos

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

53

consistían en protocolos de transferencia de archivos incluyendo en la primera línea del archivo contenía la dirección del destinatario

� En 1982 se diseñó el primer sistema para intercambiar correos electrónicos en ARPANET � RFC 821. Protocolo de transmisión SMTP

� RFC 822. Formato de mensaje

Page 54: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

� Todos son protocolos del nivel de aplicación (usan TCP)� Basado en modelo cliente-servidor

� De envió y retransmisión de mensajes� SMTP

� Puertos por defecto: 25

� Puerto seguro: 465 (no oficial)

Protocolos usados en correo electrónico

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

� Puerto seguro: 465 (no oficial)

� De acceso a los mensajes de correo� POP3

� Puertos por defecto: 110

� Puerto seguro: 995

� IMAP4� Puertos por defecto: 143

� Puerto seguro: 993

54

http://wiki.adwys.es/index.php?title=SMTP

Page 55: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

SMTP� Simple Mail Transfer Protocol (RFC 821,2821,5321) es el protocolo de intercambio de correo electrónico entre máquinas u otros dispositivos (PDAs, móviles, etc.)� Basado en el modelo cliente-servidor

� Usa el puerto 25 de TCP

� Inicialmente, basado en texto� MIME (Multipurpose Internet Mail Extensions)

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

55

MIME (Multipurpose Internet Mail Extensions)

� Participantes:� Protocolo SMTP: especifica el formato del mensaje de correo electrónico que se transmite entre dos MTAs

� Programa cliente: realiza la interacción con el usuario y la MTA.� Ejemplos: Evolution, Eudora, Outlook

� Agente de transferencia de mensajes (MTA): El mas utilizado en UNIX es el sendmail

Page 56: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

SMTP y POP3, IMAP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

56

http://wiki.adwys.es/index.php?title=SMTP

Page 57: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Formato de los mensajes SMTP� Cliente y servidor intercambian los siguientes mensajes:

� Las peticiones de los clientes:

� Donde ORDEN es un comando de SMTP

� Donde TEXTO es una línea de texto ASCII de longitud máxima 1000 caracteres

ORDEN TEXTO

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

57

� Las respuestas del servidor:

� Donde CODIGO es un número de tres dígitos (xxx) indicando error o éxito

� 2XX � la orden se ejecutó con éxito

� 3XX � la orden está pendiente de ejecutarse

� 4XX � error en la ejecución

� 5XX � condición de error permanente

� Donde TEXTO es una frase con la descripción del CODIGO

CODIGO TEXTO

Page 58: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Órdenes de SMTP� HELO abre una sesión con el servidor� MAIL FROM origen del mensaje� RCPT TO destinatario del mensaje� DATA, comienzo del mensaje, éste finalizará cuando haya una línea

únicamente con un punto.� QUIT cierra la sesión� RSET aborta la transacción en curso � SEND inicia una transacción para enviar el mensaje a una máquina

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

58

� SEND inicia una transacción para enviar el mensaje a una máquina terminal

� SOML el mensaje se entrega a un terminal o a un buzón� SAML el mensaje se entrega a un terminal y a un buzón� VRFY solicita al servidor la verificación del argumento� EXPN solicita al servidor la confirmación del argumento� HELP Permite solicitar información sobre un comando� NOOP Se emplea para reiniciar los temporizadores� TURN Solicita al servidor que intercambien los papeles

Page 59: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTP

El cliente solicita una conexión al puerto 23

Cliente SMTP Servidor SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

59

Page 60: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

220 Service Ready El servidor acepta (código 220) o bien rechaza la conexión (código 421)

El cliente solicita una conexión al puerto 23

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

60

(código 421)

Page 61: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El servidor acepta (código 220) o bien rechaza la conexión (código 421)El cliente envía HELO

220 Service Ready

El cliente solicita una conexión al puerto 23

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

61

(código 421)El cliente envía HELO

HELO

Page 62: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El servidor acepta (código 220) o bien rechaza la conexión (código 421)El cliente envía

220 Service Ready

HELO

El cliente solicita una conexión al puerto 23

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

62

(código 421)El cliente envía HELO

El cliente envía MAIL FROM <dir-correo> MAIL FROM x@y

HELO

Page 63: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El servidor acepta (código 220) o bien rechaza la conexión (código 421)El cliente envía

220 Service Ready

HELO

El cliente solicita una conexión al puerto 23

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

63

(código 421)El cliente envía HELO

250 OKEl servidor comprueba el formato de la dirección

HELO

El cliente envía MAIL FROM <dir-correo> MAIL FROM x@y

Page 64: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El servidor acepta (código 220) o bien rechaza la conexión (código 421)El cliente envía

220 Service Ready

HELO

El cliente solicita una conexión al puerto 23

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

64

(código 421)El cliente envía HELO

250 OKEl servidor comprueba el formato de la dirección

HELO

El cliente envía MAIL FROM <dir-correo> MAIL FROM x@y

RCPT y@zEl cliente envía destinatarioRCPT <dir-correo>(pueden existir N RCPT)

Page 65: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El servidor acepta 250 OK

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

65

Page 66: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El cliente se prepara para DATA

El servidor acepta 250 OK

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

66

El cliente se prepara para enviar los datos del mensajeDATA

DATA

Page 67: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

DATA

El servidor acepta 250 OK

El cliente se prepara para

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

67

DATA

El servidor dice al cliente que envíe los datos354 Start mail input, end with<CRLF>.<CRLF>

354 Start mail input, endwith <CRLF>.<CRLF>

El cliente se prepara para enviar los datos del mensajeDATA

Page 68: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

DATA

El servidor acepta 250 OK

El cliente se prepara para

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

68

DATA

El servidor dice al cliente que envíe los datos354 Start mail input, end with<CRLF>.<CRLF>

354 Start mail input, endwith <CRLF>.<CRLF>

El cliente se prepara para enviar los datos del mensajeDATA

El cliente envía línea a línea el cuerpo del mensaje

Page 69: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El cliente envía línea a línea el cuerpo del mensaje

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

69

El cliente envía última línea:<CRLF>.<CRLF>

Page 70: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El cliente envía línea a línea el cuerpo del mensaje

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

70

El cliente envía última línea:<CRLF>.<CRLF>

El servidor indica OK250 OK

Page 71: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Protocolo SMTPServidor SMTP

El cliente envía línea a línea el cuerpo del mensaje

Cliente SMTP

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

71

El cliente envía última línea:<CRLF>.<CRLF>

El servidor indica OK250 OK

El cliente envía el último mensaje:QUIT

Page 72: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo S: 220 Servidor ESMTP

C: HELO miequipo.midominio.com

S: 250 Hello, please to meet you

C: MAIL FROM: [email protected]

S: 250 Ok

C: RCPT TO: [email protected]

S: 250 Ok

C: DATA

S: 354 End data with <CR><LF>.<CR><LF>

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

72

C: Subject: Campo de asunto

C: From: [email protected]

C: To: [email protected]

C:

C: Hola,

C: Esto es una prueba.

C: Adiós.

C:

C: .

S: 250 Ok: queued as 12345

C: QUIT

S: 221 Bye

Page 73: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

MIME� MIME (Multipurpose Internet Mail Extensions) es una especificación dirigida al intercambio de datos distinto a texto de forma transparente para el usuario. (RFC 2045, RFC 2046, RFC 2047, RFC 4288, RFC 4289 y RFC 2077)

� En general, las extensiones de MIME van encaminadas a soportar:� Texto en conjuntos de caracteres distintos de US-ASCII;� Adjuntos que no son de tipo texto;� Cuerpos de mensajes con múltiples partes (multi-part);

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

73

� Cuerpos de mensajes con múltiples partes (multi-part);� Información de encabezados con conjuntos de caracteres distintos de ASCII.

� Codificaciones usadas:� 7bit � Quoted printable (basado en 7bit)� base64 (basado en 7bit)� 8bit (ampliación de 7bit)� binary

Page 74: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

POP3� POP3(Post Office Protocol) protocolo usado para obtener los mensajes de correo electrónico almacenados en un servidor remoto (RFC 1939)

� Permite a los usuarios con conexiones intermitentes ó muy lentas descargar su correo electrónico mientras tienen conexión y revisarlo posteriormente incluso estando desconectados

� Funcionamiento: � un cliente que utilice POP3 se conecta,

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

74

� un cliente que utilice POP3 se conecta, � obtiene todos los mensajes, � los almacena en la computadora del usuario como mensajes nuevos,� los elimina del servidor � y finalmente se desconecta.

� Sistema de autenticación:� Usuario y contraseña ()� APOP, basado en MD5.

Page 75: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo de dialogo POP3

S: <wait for connection on TCP port 110>C: <open connection>S: +OK POP3 server ready <[email protected] ew.ca.us>C: APOP mrose c4c9334bac560ecc979e58001b3e22fbS: +OK mrose's maildrop has 2 messages (320 octets)C: STATS: +OK 2 320C: LISTS: +OK 2 messages (320 octets)S: 1 120S: 2 200S: .

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

75http://tools.ietf.org/html/rfc1939#page-16

S: .C: RETR 1S: +OK 120 octetsS: <the POP3 server sends message 1>S: .C: DELE 1S: +OK message 1 deletedC: RETR 2S: +OK 200 octetsS: <the POP3 server sends message 2>S: .C: DELE 2S: +OK message 2 deletedC: QUITS: +OK dewey POP3 server signing off (maildrop empt y)C: <close connection>S: <wait for next connection>

Page 76: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

Ejemplo de POP3 sin APOPC: USER mroseS: +OK User acceptedC: PASS tanstaafS: +OK Pass accepted

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

76

Page 77: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

IMAP� IMAP (Internet MessageAccess Protocol) protocolo de red de acceso a mensajes electrónicos almacenados en un servidor. � Mediante IMAP se puede tener acceso al correo electrónico desde cualquier equipo que tenga una conexión a Internet.

� La versión actual es la 4.1 (RFC 3501)� Usa el puerto bien conocido 143

� IMAP fue diseñado por Mark Crispin en 1986 como un protocolo para el acceso al correo electrónico.Características:

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

77

� Características:� Permite visualizar los mensajes de manera remota� Permite ver únicamente los encabezados del mensaje antes de decidir si abrirlo o eliminarlo.

� Puede consultarse el mismo correo desde diferentes computadoras ya que solo se lee lo que hay en el servidor.

� El servidor retiene el correo hasta que se solicite su eliminación.� Permite operaciones avanzadas como creación de carpetas y buzones en el servidor.

Page 78: Tema11 aplicaciones distribuidas - UC3Mocw.uc3m.es/ingenieria-informatica/sistemas... · Telnet Telnet (TELecommunicationNETwork) es un protocolo que permite la conexión remota desde

POP3 vs IMAP4

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

78

http://www.e-sort.net/blog/index.php/2009/06/05/diferencias-entre-protocolos-pop-e-imap-de-correo-electronico/#comment-144