Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Alumno:
Becerril Domı́nguez Óscar Azeem
Grupo:
8CM1
9 de febrero de 2015
Índice
1. Introducción y terminologı́a 1
1.1. Modelo SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Procedimiento de SMTP 2
2.1. Comandos de SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Diagramas de Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. Respuestas de SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4. Implementación Mı́nima de SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Bibliografı́a 8
Índice de figuras
1. Modelo Básico del Protocolo SMTP . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Sesión Clásica del Protocolo SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Diagrama de estado SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1. Introducción y terminologı́a
SMTP se diseñó para proporcionar mecanismos eficientes, fiables, para la transferencia de
correo electrónico. SMTP transfiere mensajes de un cliente a un servidor y entre servidores,
pero no es responsable del manejo de los buzones de correo ni de permitir al ciente obtener su
correo entrante. Se basa en la secuencia comando/respuesta; el cliente debe recibir una única
respuesta antes de poder enviar otro comando y al servidor no se le permite enviar más de una
respuesta a cualquier comando.
SMTP es independiente del subsistema particular de transmisión, y requiere únicamente un
canal confiable de transmisión de información. En la seccion 3 se puede obtener una mejor des-
cripción de SMTP implementado en varios servicios de transporte. Una importante caracterı́sti-
ca de SMTP es la capacidad de relevar correo a través de entornos de servicio de transporte.
Un servicio de transporte proporciona un entorno de comunicación de interproceso (IPCE- in-
terprocess communication environment). Es importante recalcar que un sistema de transporte
es también conocido cómo: IPCE. Un proceso puede comunicar directamente con otro proceso
atraves de cualquier IPCE mutuamente conocido. Mail puede ser comunicado entre procesos
en diferentes IPCEs siendo relevado a través de un proceso conectado a dos (o más) IPCEs.
Más especı́ficamente, mail puede ser relevado entre hosts en diferentes sistemas de transporte
por un host en ambos sistemas de transporte. Esto es importante cuando existe un sistema
de transporte basado en TCP, y desea llegar a un servidor de correo en el que su sistema de
transporte está basado en NCP.
SMTP se define en la RFC821; en el siguiente listado se muestran algunos términos que usa
SMTP, para su funcionamiento:
Proceso emisor de SMTP (sender). Inicia una conexión de SMTP con el proceso
receptor para enviar correo. Envı́a comandos y recibe respuestas.
Proceso receptor de SMTP (receiver). Proceso que espera a que un proceso emisor
de SMTP establezca una conexión, a continuación recibe comandos del emisor de SMTP
y lleva a cabo la operación especificada en los comandos.
Canal de transmisión. El canal full-dúplex que se abre entre los procesos emisor y recep-
tor de SMTP con el objetivo de enviar secuencias de comandos/respuestas y transferencia
de correo.
Ruta inversa. Especifica al emisor del correo. La ruta inversa puede ser simplemente
el nombre del usuario que envı́a el correo o puede incluir una lista de hosts por los que
reenvı́a el coreo desde su emisor de SMTP original. El primer host de la lista es el reemisor
más reciente, y el último es el primer reemisor.
Ruta directa. Especifica al receptor o receptores del correo. Opcionalmente la ruta direc-
ta puede especificar una lista de reemisores que se pueden utilizar para enrutar el correo
a su receptor, siendo el receptor actual de SMTP el primero de la lista de reenvı́o y el
destino final el último de la lista.
Búfer de la ruta inversa. Se usa para guardar la lista de los parámetros de la ruta
inversa para una transacción, posiblemente incluye una lista de hosts que reenvı́an el
correo. Se puede eliminar como consecuencia del envı́o de distintos comandos.
Búfer de la ruta directa. Se usa para guardar la lista de los parámetros de la ruta directa
para una transacción, posiblemente incluyendo una lista de hosts de reenvio a quienes se
enruta el correo. También se puede eliminar como resultado de distintos comandos.
1
1.1. Modelo SMTP
A pesar de que las mejores que se han añadido a SMTP desde la RFC 821, sigue siendo un
protocolo relativamente simple. SMTP, como HTTP y FTP, es un protocolo del nivel de apli-
cación que utiliza los protocolos inferiores para asegurar la entrega de los datos. Aunque SMTP
puede utilizar otros protocolos, la descripción que sigue en este escrito, se hará suponiendo que
TCP es el protocolo subyacente que se emplea. Una imagen del modelo básico se puede observar
en la figura 1.
SMTP para ser capaz de proveer la capacidad de relevo, el servidor SMTP debe ser sumi-
nistrado con el nombre del último host destino, ası́ como el nombre de la bandeja de correo de
destino.
Los comandos y respuestas no son sensibles a las mayúsculas. Esto es, un comando o respues-
ta puede ser letra mayúscula, letra minúscula, o cualquier mezcla entre mayúscula y minúscula.
Hay que tener en cuenta que esto no es cierto en los nombres de bandeja de correo de los usuarios.
Para algunos hosts el nombre de usuario es sensible a las mayúsculas, y las implementaciones
de SMTP deben tomar lugar para preservar los nombres de usuario y como aparecen en los
argumentos de la bandeja de correo. Los nombres de Host no son sensibles a las mayúsculas.
Comandos y respuestas están compuestas de caracteres del conjunto ASCII. Esto significa que
cuando el servicio de transporte proporciona un byte en el control de transmisión, cada carácter
de 7 bits es transmitido justificado como octeto, con el bit de orden más alto colocado en cero.
2. Procedimiento de SMTP
Está sección presenta los procedimientos usados en SMTP en múltiples partes, siendo el
siguiente listado el proceso clásico, definido sencillamente como: transacción de mail.
1. La comunicación de SMTP la inicia un sistema de correo de un usuario, referido aquı́ como
el cliente o emisor de SMTP. El cliente establece un canal de transmisión full-dúplex con
un servidor de SMTP, o receptor de SMTP, enviando un comando HELO o EHLO para
comenzar la sesión.
3. El emisor de SMTP (cliente) envı́a uno o más comandos RCPT que identifican al receptor
del mensaje, o mensajes, a quien se desea enviar; cada comando RCPT representa un
2
único receptor de correo. Los receptores pueden ser otros usuarios en el mismo sistema de
correo o usuarios en dominios externos.
Si el servidor de SMTP es capaz de recibir correo dirigido al receptor indicado en el
comando RCPT, envı́a una respuesta OK al cliente y el cliente puede enviar otro comando
RCPT.
Como puede que no todos los receptores estén usando el mismo sistema SMTP, el cliente
debe proporcionar el nombre del host de destino final ası́ como el nombre del correo en dicho
sistema de correo. La sintaxis de una dirección de correo de SMTP es el familiar formato: usua-
rio@dominio. Dónde a la derecha del sı́mbolo “@” se indica el host destino y el usuario identifica
el nombre del buzón de correo en el que se debe entregar el correo.
SMTP diferencia entre enviar y entregar ; si se entrega correo, el cliente está indicando que el
correo deberı́a entregarse inmediatamente en la interfaz de correo del receptor, si el receptor
está en lı́nea y usando el sistema de correo con está funcionalidad. Más a menudo el correo se
envı́a, lo que indica que se entrega en el buzón del receptor en el servidor del receptor. Además,
la funcionalidad de entrega no se requiere en las implementaciones de SMTP.
El correo de SMTP tiene tanto una ruta directa como una inversa. La ruta directa es la ruta
que debe seguir el correo para llegar a su destino final, ya utilice una ruta directa o una serie
de reenvı́os. Es importante no confundir los reenvı́os de SMTP con enrutadores; los reemisores
de SMTP son servidores de SMTP que reciben correo de un host de SMTP y lo reenvı́an a
otro host de SMTP, independiente del mecanismo de enrutamiento utilizado. La ruta inversa
en un correo de SMTP es el nombre del emisor de SMTP, que puede ser tan simple como: usua-
rio@algundominio; o puede consistir en una lista de hosts de reemisión entre el emisor original
y el receptor actual de SMTP. El comando mail utiliza la ruta inversa como su argumento, y el
comando RCPT usa la ruta directa.
4. Una vez que el receptor de SMTP ha aceptado la dirección del receptor y ha dado la
respuesta apropiada, el cliente puede continuar con el comando DATA, que informa al
servidor de su intención de empezar la transferencia del mensaje. El servidor responde
con un código de aceptación del intento del emisor de SMTP, y el cliente puede enviar
los datos. Los datos de correo incluye no sólo el cuerpo del mensaje, sino también la
información de cabecera de memo, como el To:, cc., bcc: y lineas de subject.
5. Cuando el cliente desea terminar la sesión de SMTP, lo indica enviando el comando QUIT
y el servidor cierra la conexión. Ası́ mismo también se ocupa la instrucción hCRLF i .
hCRLF i
3
Figura 2: Sesión Clásica del Protocolo SMTP
4
Comando Descripción Sintaxis
AUTH AUTHENTICATE. Se usa para iniciar una se- ATRN { hSP i nombre
sión de transferencia de correo con autenticación de dominio } hCRLF i
(en la que el usuario proporciona su nombre de
usuario y contraseña al receptor de SMTP para
continuar la sesión)
DATA DATA. Las lineas que siguen a este comando DATA hCRLF i
forman los datos del correo del emisor al receptor
EHLO EXTENDED HELLO. Un cliente que dispone EHLO hSP i hdominioi
de las extensiones de SMTP envı́a este comando hCRLF i
en lugar del comando HELO al iniciar una se-
sión. Si el servidor de SMTP qu erecibe este co-
mando admite las extensiones de SMTP, devuel-
ve una respuesta 250 (Requested Mail Action
Okay, completed). Si el servidor de SMTP que
recibe el mensaje no las admite, devolverá un
mensaje 500 (Syntax Error, Command Unrecog-
nized) para indicar al emisor que no puede usar
comandos extendidos.
HELO HELLO. Se usa para identifica al emisor de HELO hSP i
SMTP ante el receptor y empezar una nueva hHostEmisorSM T P i
transacción hCRLF i
MAIL MAIL. Se usara para iniciar una transacción de Mail hSP i hRutaInvi
correo entre un emisor y un receptor de SMTP, hCRLF i
limpia el búfer de la ruta inversa, el búfer de
la ruta directa y el búfer de correo e inserta el
argumento de ruta inversa de este comando en
el búfer de ruta inversa
NOOP NO OP. No tiene ningún efecto en ningún búfer NOOP hCRLF i
y no especifica ninguna acción salvo que el re-
ceptor devuelve una respuesta OK.
QUIT QUIT. Especifica que el receptor devuelve una QUIT hCRLF i
respuesta OK y cierra el canal de transmisión.
RCPT RECIPIENT. Identifica que el receptor devuelve RCPT hSP i TO:
una respuesta OK y cierra el canal de transmi- hRutaDirectai
sión hCRLF i
RSET RESET. Especifica que la transacción actual de RSET hCRLF i
correo se abortó y se limpiaron todos los búfer.
El receptor de SMTP responde con un mensaje
de OK
5
Dónde el diagrama de la figura 3, modela los siguientes comandos: HELO, MAIL, RCPT,
RSET, SEND, SOML, SAML, VRFY, EXPN, HELP, NOOP, QUIT, TURN.
6
3. SMTP y los servicios de transporte
3.1. TCP servicio de transporte
El Protocolo de control de transmisión (TCP) es usado en ARPA Internet, y en cualquier
red siguiendo los estándares para protocolos de redes de internet.
3.3. NITS
El servicio de transporte de red independiente (Network Independent Transport Service
-NITS), puede ser usado.
7
4. Bibliografı́a
Referencias
[1] RFC821, IETF. “https://www.ietf.org/rfc/rfc0821.txt”.
[4] Thomas Lee, Joseph Davies “Windows 2000 TCP/IP Protocolos y servicios. Referencia
técnica”. Microsoft, 2000.