FTP (File Transfer Protocol)

34
FTP Presentado por: Juan Camilo Sacanamboy Gerardo Andrés Suárez Héctor Alexis Narváez

description

-Descripción general -Comandos básicos -Diagrama de estados -Capturas en Wireshark

Transcript of FTP (File Transfer Protocol)

Page 1: FTP (File Transfer Protocol)

FTPPresentado por:Juan Camilo SacanamboyGerardo Andrés SuárezHéctor Alexis Narváez

Page 2: FTP (File Transfer Protocol)

Contenido

● Glosario● Descripción del protocolo● Comandos principales● Máquina de estados del protocolo● Captura con Wireshark● Conclusiones● Referencias

Page 3: FTP (File Transfer Protocol)

Glosario

Page 4: FTP (File Transfer Protocol)

Glosario● RFC (Request for Comments): son publicaciones de la IETF(Internet

Engineering Task Force) y de la Internet Society que contienen información técnica y organizacional relacionada con redes de comunicaciones. Se pueden encontrar protocolos, procedimientos, conceptos, opiniones, notas, entre otros.

● ARPANET (Advanced Research Projects Agency Network): red creada por encargo del DOD (Departamento de Defensa de Estados Unidos). Fue la espina dorsal de Internet hasta 1990, tras finalizar la transición a TCP/IP.

● NCP (Network Control Protocol): predecesor de TCP. Establecía dos puertos de comunicación, para comunicar en dos vías.

1/25

Page 5: FTP (File Transfer Protocol)

Descripción del protocolo

Page 6: FTP (File Transfer Protocol)

● RFC 141 - 1971: primera propuesta para implementarlo en hosts en el M.I.T. ● RFC 172 - 1971: protocolo de transferencia de archivos orientado a un nivel de

usuario entre computadores (Incluidos los IMPs).● RFC 354 - 1972: FTP se define como un protocolo para la transferencia de

archivos entre hosts en ARPANET. Transmisión de archivos de manera eficiente y confiable.

● RFC 454 - 1973: primera versión “oficial” de FTP.● RFC 542 - 1973: nueva versión “oficial” de FTP. Varios cambios, pero la

estructura general era la misma.● RFC 765 - 1980: Debido a la transición de NCP a TCP, se especifica FTP para

TCP● RFC 959 - 1985: corrección en documentación, mejor explicación y algunos

comandos nuevos (opcionales).

Historia2/25

Page 7: FTP (File Transfer Protocol)

Modelo FTP3/25

Tomado de (Postel and Reynolds,1985)

PUERTOS20/TCP DATA Port21/TCP Control Port

Page 8: FTP (File Transfer Protocol)

Modelo FTP● El user-PI(Protocol Interpreter) inicia la conexión de control. Cuando el

usuario inicia, los comandos son generados por el User PI y se transmiten al servidor, a través de la conexión de control.

● El server-PI responde al user-PI sobre la conexión de control en respuesta a los comandos.

● Los comandos FTP especifican los parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo de representación y estructura) y la operación (store, retrieve, append,delete, etc.).

● El user-DTP debe escuchar en el puerto de datos y el servidor inicia la conexión de datos y la transferencia de datos, de acuerdo a los parámetros especificados. La conexión de datos puede ser usada para enviar y recibir de manera simultánea.

4/25

Page 9: FTP (File Transfer Protocol)

Modelo FTP● Transferencia de archivos entre dos hosts, desde un usuario:

El usuario establece la conexión de control hacia los dos servidores y luego establece la conexión de datos entre los dos servidores.

La información de control se pasa al user-PI, pero la información se transfiere entre los servidores.

Se requiere que la conexión de control esté abierta mientras la transferencia de datos esté en progreso. El usuario debe cerrar las conexiones de control cuando finalice el servicio FTP.

Tomado de (Postel and Reynolds,1985)

5/25

Page 10: FTP (File Transfer Protocol)

Modelo FTP

Relación entre Telnet y FTPFTP usa el protocolo Telnet en la conexión de control. Esto sepuede hacer de dos maneras:

1. El user-PI o el server-PI pueden implementar las reglas del protocolo Telnet en sus propios procedimientos → Eficiencia e independencia.

2. El user-PI o el server-PI pueden hacer uso de un módulo existente de Telnet dentro del sistema → Fácil implementación y programación modular.

6/25

Page 11: FTP (File Transfer Protocol)

Comandos principales

Page 12: FTP (File Transfer Protocol)

Categorías de comandos

● De control de Acceso● Parámetros de transferencia● De servicios FTP

7/25

Page 13: FTP (File Transfer Protocol)

De control de acceso○ USER NAME (USER)○ PASSWORD (PASS)○ ACCOUNT (ACCT)○ CHANGE WORKING DIRECTORY (CWD)○ CHANGE TO PARENT DIRECTORY (CDUP)○ STRUCTURE MOUNT (SMNT)○ REINITIALIZE (REIN)○ LOGOUT (QUIT)

8/25

Page 14: FTP (File Transfer Protocol)

Parámetros de transferencia○ DATA PORT (PORT)○ PASSIVE (PASV)○ REPRESENTATION TYPE (TYPE)○ FILE STRUCTURE (STRU)○ TRANSFER MODE (MODE)

9/25

Page 15: FTP (File Transfer Protocol)

De servicios FTP○ RETRIEVE (RETR)○ STORE (STOR)○ STORE UNIQUE (STOU)○ APPEND (APPE)○ ALLOCATE (ALLO)○ RESTART (REST)○ RENAME FROM (RNFR)○ RENAME TO (RNTO)

10/25

Page 16: FTP (File Transfer Protocol)

De servicios FTP○ ABORT (ABOR)○ DELETE (DELE)○ REMOVE DIRECTORY (RMD)○ MAKE DIRECTORY (MKD)○ PRINT WORKING DIRECTORY (PWD)○ LIST (LIST)○ NAME LIST (NLST)○ SITE PARAMETERS (SITE)

11/25

Page 17: FTP (File Transfer Protocol)

De servicios FTP○ SYSTEM (SYST)○ STATUS (STAT)○ HELP (HELP)○ NOOP (NOOP)

12/25

Page 18: FTP (File Transfer Protocol)

Diagrama de Estados

Page 19: FTP (File Transfer Protocol)

RESPUESTAS

● Aseguran la sincronización de solicitudes y acciones.

● Garantizan que el usuario conozca siempre el estado del servidor.

● Cada comando tiene al menos una respuesta.

● Se componen de 3 bits seguidos de texto.

13/25

Page 20: FTP (File Transfer Protocol)

RESPUESTAS Significados del primer bit:● 1yz Positive Preliminary reply: la solicitud se inició.

Esperando otra respuesta antes de proceder con un nuevo comando. (120 Service ready in n minutes).

● 2yz Positive Completion reply: se completó la solicitud. Una nueva solicitud puede ser iniciada (220 Service ready for new user)

14/25

Page 21: FTP (File Transfer Protocol)

RESPUESTAS● 3yz Positive Intermediate reply: se aceptó el comando,

pero la solicitud de respuesta se encuentra suspendida. El usuario debe enviar otro comando. (332 Need account for login).

● 4yz Transient Negative Completion reply: el comando no fue aceptado, pero la condición de error es temporal (421 Service not available, closing control connection).

● 5yz Permanent Negative Completion reply: el comando no fue aceptado (500 Syntax error, command unrecognized).

15/25

Page 22: FTP (File Transfer Protocol)

Diagramas de estados

GRUPO DE COMANDOS:ABOR, ALLO, DELE, CWD, CDUP, SMNT, HELP, MODE, NOOP, PASV,QUIT, SITE, PORT, SYST, STAT, RMD, MKD, PWD, STRU, and TYPE.

ESTADOS:Success (S)Failure (F)Error (E)Begin (B)Wait for reply(W)

HELP: Lista los comandos que se pueden usar y brinda información sobre alguno en específico.

16/25

Page 23: FTP (File Transfer Protocol)

Diagramas de estados

GRUPO DE COMANDOS:APPE, LIST, NLST, REIN, RETR, STOR, and STOU.

LIST:se transfiere una lista de archivos al servidor.

17/25

Page 24: FTP (File Transfer Protocol)

Diagramas de estados - Rename 18/25

Page 25: FTP (File Transfer Protocol)

Diagramas de estados - Restart

REST:inicia el proceso para reiniciar la transferencia de un archivo. Debe ser seguido por otro comando como RETR.

19/25

Page 26: FTP (File Transfer Protocol)

Diagramas de estados - Login20/25

Page 27: FTP (File Transfer Protocol)

Captura con Wireshark

Page 28: FTP (File Transfer Protocol)

Conexión a servidor FTP21/25

Page 29: FTP (File Transfer Protocol)

Captura realizada22/25

Page 30: FTP (File Transfer Protocol)

Reconstrucción de flujo23/25

Page 31: FTP (File Transfer Protocol)

Conclusiones

Page 32: FTP (File Transfer Protocol)

Conclusiones● FTP surge como solución a un problema identificado desde

los inicios de las redes de comunicaciones: la transmisión de archivos de manera eficiente y confiable.

● FTP hace uso de los protocolos TCP y Telnet.● Hay diferentes diagramas de estados del protocolo,

dependiendo del comportamiento del comando.● El protocolo utiliza una conexión de datos y otra de control.

La primera para el envío de datos(por el puerto 20) y la segunda para el control (por el puerto 21).

24/25

Page 33: FTP (File Transfer Protocol)

Referencias

Page 34: FTP (File Transfer Protocol)

Referencias● Postel, J. and Reynolds, J. (1985). RFC 959: FILE

TRANSFER PROTOCOL (FTP). Request for Comments.

● Ietf.org, (2014). Request for Comments (RFC) Pages. [online] Available at: http://www.ietf.org/rfc.html [Accessed 4 Sep. 2014].

25/25