Sie sind auf Seite 1von 25

Protocolo FTP

File Transfer Protocol


El uso de puertos

Diversos programas TCP/IP pueden ejecutarse simultneamente en
Internet
Cada uno de estos programas funciona con un protocolo.
A veces el equipo debe poder distinguir las diferentes fuentes de
datos.
Para facilitar este proceso, a cada una de estas aplicaciones puede
serle asignada una direccin nica en equipo, codificada en 16 bits:
un puerto
La combinacin de direccin IP + puerto es una direccin denominada
socket.
La direccin IP sirve para identificar de manera nica un equipo en
la red mientras que el nmero de puerto especifica la aplicacin a
la que se dirigen los datos.
Cuando el equipo recibe informacin que va dirigida a un puerto, los datos
se envan a la aplicacin relacionada.
Si se trata de una solicitud enviada a la aplicacin, la aplicacin se denomina
aplicacin servidor.
Si se trata de una respuesta, entonces hablamos de una aplicacin cliente.
El uso de puertos
Existen miles de puertos
Codificados en 16 bits, es decir que se cuenta
con 65536 posibilidades.
Los puertos del 0 al 1023 son los "puertos
conocidos" o reservados.
En trminos generales, estn reservados para
procesos del sistema (daemons) o programas
ejecutados por usuarios privilegiados. Sin
embargo, un administrador de red puede
conectar servicios con puertos de su eleccin.
Los puertos del 1024 al 49151 son los
"puertos registrados".
Los puertos del 49152 al 65535 son los
"puertos dinmicos y/o privados".
El uso de puertos
Puerto Servicio o aplicacin
21 FTP
23 Telnet
25 SMTP
53 Sistema de nombre de dominio
63 Whois
70 Gopher
79 Finger
80 HTTP
110 POP3
119 NNTP
El uso de puertos
Un servidor (un equipo conectado que ofrece
servicios como FTP, Telnet, etc.)
cuenta con nmeros de puerto fijos a los cuales
el administrador de red conecta los servicios.
Los puertos del servidor generalmente se
encuentran entre 0 y 1023 (rango de valores
relacionado con servicios conocidos).

Del lado del cliente, el sistema operativo
elige el puerto entre aqullos que estn
disponibles de forma aleatoria.
Los puertos del cliente nunca incluirn los
puertos que se encuentran entre 0 y 1023, ya
que este rango de valores representa a los
puertos conocidos.
PROTOCOLO FTP
Definicin
Siglas en ingls de File Transfer Protocol,
(Protocolo de Transferencia de Archivos')
Protocolo de red para la transferencia de
archivos entre sistemas conectados a una
red TCP (Transmission Control Protocol),
basado en la arquitectura cliente-servidor.
Desde un equipo cliente se puede conectar a
un servidor para descargar archivos desde l o
para enviarle archivos, independientemente del
sistema operativo utilizado en cada equipo.
El servicio FTP es ofrecido por la capa de
aplicacin del modelo de capas de red
TCP/IP al usuario, utilizando normalmente el
puerto 20 y el 21.
El Modelo FTP
El protocolo FTP est
incluido dentro del modelo
cliente-servidor
Un equipo enva rdenes (el
cliente) y el otro espera
solicitudes para llevar a cabo
acciones (el servidor).
Durante una conexin FTP,
se encuentran abiertos dos
canales de transmisin:
Un canal de comandos
(canal de control)
Un canal de datos

El Modelo FTP
el cliente y el servidor cuentan con dos
procesos que permiten la administracin
de estos dos tipos de informacin:
DTP (Proceso de transferencia de datos) es
el proceso encargado de establecer la
conexin y de administrar el canal de datos.
El DTP del lado del servidor se
denomina SERVIDOR DE DTP y el DTP del lado
del cliente se denomina USUARIO DE DTP.
PI (Intrprete de protocolo) interpreta el
protocolo y permite que el DTP pueda ser
controlado mediante los comandos
recibidos a travs del canal de control. Esto
es diferente en el cliente y el servidor

El Modelo FTP
El SERVIDOR PI es responsable:
De escuchar los comandos que
provienen de un USUARIO PI a travs
del canal de control en un puerto de
datos.
De establecer la conexin para el canal
de control, de recibir los comandos FTP
del USUARIO PI a travs de ste.
De responderles y de ejecutar el
SERVIDOR DE DTP.

El Modelo FTP
El USUARIO PI es responsable:
De establecer la conexin con el servidor
FTP.
De enviar los comandos FTP.
De recibir respuestas del SERVIDOR PI
De controlar al USUARIO DE DTP, si
fuera necesario.

El Modelo FTP
Cuando un cliente FTP se conecta
con un servidor FTP, el USUARIO
PI inicia la conexin con el servidor
de acuerdo con el protocolo Telnet.
El cliente enva comandos FTP al
servidor, el servidor los interpreta,
ejecuta su DTP y despus enva
una respuesta estndar.
Una vez que se establece la
conexin, el servidor PI
proporciona el puerto por el cual se
enviarn los datos al Cliente DTP.
El cliente DTP escucha el puerto
especificado para los datos
provenientes del servidor.

Los Comandos FTP
Toda comunicacin que se realice en el canal de control
sigue las recomendaciones del protocolo Telnet.
Por lo tanto, los comandos FTP son cadenas de caracteres
Telnet (en cdigo NVT-ASCII) que finalizan con el cdigo de
final de lnea Telnet (es decir, la secuencia <CR>+<LF>,
Retorno de carro seguido del carcter Avance de lnea
indicado como <CRLF>).
Si el comando FTP tiene un parmetro, ste se separa del
comando con un espacio (<SP>).
Los comandos FTP hacen posible especificar:
El puerto utilizado
El mtodo de transferencia de datos
La estructura de datos
La naturaleza de la accin que se va a realizar (Recuperar,
Enumerar, Almacenar, etc.)
Existen tres tipos de comandos FTP diferentes:
Comandos de control de acceso
Comandos de parmetros de transferencia
Comandos de servicio FTP
COMANDOS FTP
Protocolo FTP
Comandos de control de acceso
Comando Descripcin
USER
Cadena de caracteres que permite identificar al usuario. La identificacin del
usuario es necesaria para establecer la comunicacin a travs del canal de
datos.
PASS
Cadena de caracteres que especifica la contrasea del usuario. Este
comando debe ser inmediatamente precedida por el comando USER. El
cliente debe decidir si esconder la visualizacin de este comando por razones
de seguridad.
ACCT
Cadena de caracteres que especifica la cuenta del usuario. El comando
generalmente no es necesario. Durante la respuesta que acepta la
contrasea, si la respuesta es 230, esta etapa no es necesaria; Si la
respuesta es 332, s lo es.
CWD
Change Working Directory (Cambiar el directorio de trabajo): este comando
permite cambiar el directorio actual. Este comando requiere la ruta de
acceso al directorio para que se complete como un argumento.
CDUP
Change to Parent Directory (Cambiar al directorio principal): este comando
permite regresar al directorio principal. Se introdujo para resolver los
problemas de denominacin del directorio principal segn el sistema
(generalmente "..").
SMNT Structure Mount (Montar estructura):
REIN Reinitialize (Reinicializar):
QUIT
Comando que permite abandonar la sesin actual. Si es necesario, el
servidor espera a que finalice la transferencia en progreso y despus
proporciona una respuesta antes de cerrar la conexin.
Comandos de parmetros de transferencia
Comando Descripcin
PORT
Cadena de caracteres que permite especificar el nmero de puerto
utilizado.
PASV
Comando que permite indicar al servidor de DTP que permanezca a
la espera de una conexin en un puerto especfico elegido
aleatoriamente entre los puertos disponibles. La respuesta a este
comando es la direccin IP del equipo y el puerto.
TYPE
Este comando permite especificar el tipo de formato en el cual se
enviarn los datos.
STRU
Carcter Telnet que especifica la estructura de archivos (F de File
[Archivo], R de Record [Registro], P de Page [Pgina]).
MODE
Carcter Telnet que especifica el mtodo de transferencia de datos
(S deStream [Flujo], B de Block [Bloque], C de Compressed
[Comprimido]).


Comandos de servicio FTP
Comando Descripcin
RETR
Este comando (RETRIEVE [RECUPERAR]) le pide al servidor de DTP una copia del archivo
cuya ruta de acceso se da en los parmetros.
STOR
Este comando (store [almacenar]) le pide al servidor de DTP que acepte los datos
enviados por el canal de datos y que los almacene en un archivo que lleve el nombre que
se da en los parmetros. Si el archivo no existe, el servidor lo crea; de lo contrario, lo
sobrescribe.
STOU
Este comando es idntico al anterior, slo le pide al servidor que cree un archivo cuyo
nombre sea nico. El nombre del archivo se enva en la respuesta.
APPE
Gracias a este comando (append [adjuntar]) los datos enviados se concatenan en el
archivo que lleva el nombre dado en el parmetro si ya existe; si no es as, se crea.
ALLO
Este comando (allocate [reservar]) le pide al servidor que reserve un espacio de
almacenamiento lo suficientemente grande como para recibir el archivo cuyo nombre se
da en el argumento.
REST
Este comando (restart [reiniciar]) permite que se reinicie una transferencia desde donde
se detuvo. Para hacer esto, el comando enva en el parmetro el marcador que
representa la posicin en el archivo donde la transferencia se haba interrumpido.
Despus de este comando se debe enviar inmediatamente un comando de transferencia.
RNFR
Este comando (rename from [renombrar desde]) permite volver a nombrar un archivo. En
los parmetros indica el nombre del archivo que se va a renombrar y debe estar
inmediatamente seguido por el comando RNTO.
RNTO
Este comando (rename from [renombrar a]) permite volver a nombrar un archivo. En los
parmetros indica el nombre del archivo que se va a renombrar y debe estar
inmediatamente seguido por el comando RNFR.
ABOR
Este comando (abort [cancelar]) le indica al servidor de DTP que abandone todas las
transferencias asociadas con el comando previo. Si no hay conexin de datos abierta, el
servidor de DTP no realiza ninguna accin; de lo contrario, cierra la conexin. Sin
embargo, el canal de control permanece abierto.
Comandos de servicio FTP
Comando Descripcin
DELE
Este comando (delete [borrar]) permite que se borre un archivo, cuyo nombre se da en
los parmetros. Este comando es irreversible y la confirmacin slo puede darse a nivel
cliente.
RMD
Este comando (remove directory [eliminar directorio]) permite borrar un directorio. El
nombre del directorio que se va a borrar se indica en los parmetros.
MKD
Este comando (make directory [crear directorio]) permite crear un directorio. El nombre
del directorio que se va a crear se indica en los parmetros.
PWD
Este comando (print working directory [mostrar el directorio actual]) hace posible volver a
enviar la ruta del directorio actual completa.
LIST
Este comando permite que se vuelva a enviar la lista de archivos y directorios presentes
en el directorio actual. Esto se enva a travs del DTP pasivo. Es posible indicar un
nombre de directorio en el parmetro de este comando. El servidor de DTP enviar la lista
de archivos del directorio ubicado en el parmetro.
NLST
Este comando (name list [lista de nombres]) permite enviar la lista de archivos y
directorios presentes en el directorio actual.
SITE
Este comando (site parameters [parmetros del sistema]) hace que el servidor
proporcione servicios especficos no definidos en el protocolo FTP.
SYST
Este comando (system [sistema]) permite el envo de informacin acerca del servidor
remoto.
STAT
Este comando (Estado: [estado]) permite transmitir el estado del servidor; por ejemplo,
permite conocer el progreso de una transferencia actual. Este comando acepta una ruta
de acceso en el argumento y despus devuelve la misma informacin que LISTA pero a
travs del canal de control.
HELP
Este comando permite conocer todos los comandos que el servidor comprende. La
informacin se devuelve por el canal de control.
NOOP
Este comando (no operations [no operacin]) slo se utiliza para recibir un comando OK
del servidor. Slo se puede utilizar para no desconectarse despus de un perodo de
inactividad prolongado.
Tipos de transferencia de
archivos en FTP
Es importante conocer cmo debemos transportar un
archivo a lo largo de la red.
Si no utilizamos las opciones adecuadas podemos
destruir la informacin del archivo.
Por eso, al ejecutar la aplicacin FTP, debemos
acordarnos de utilizar uno de estos comandos (o poner
la correspondiente opcin en un programa con interfaz
grfica):
Tipo ASCII
Adecuado para transferir archivos que slo contengan
caracteres imprimibles (archivos ASCII, no archivos
resultantes de un procesador de texto), por ejemplo
pginas HTML, pero no las imgenes que puedan
contener.
Tipo Binario
Este tipo es usado cuando se trata de archivos
comprimidos, ejecutables para PC, imgenes, archivos de
audio...
Modos de conexin del cliente
FTP
FTP admite dos modos de conexin del
cliente. Estos modos se denominan
activo (o Estndar, o PORT, debido a
que el cliente enva comandos tipo
PORT al servidor por el canal de control
al establecer la conexin) y pasivo (o
PASV, porque en este caso enva
comandos tipo PASV). Tanto en el modo
Activo como en el modo Pasivo, el
cliente establece una conexin con el
servidor mediante el puerto 21, que
establece el canal de control.
Modo activo
El servidor siempre crea el canal de
datos en su puerto 20, mientras que
en el lado del cliente el canal de
datos se asocia a un puerto
aleatorio mayor que el 1024. Para
ello, el cliente manda un comando
PORT al servidor por el canal de
control indicndole ese nmero de
puerto, de manera que el servidor
pueda abrirle una conexin de datos
por donde se transferirn los
archivos y los listados, en el puerto
especificado.
Lo anterior tiene un grave problema
de seguridad, y es que la mquina
cliente debe estar dispuesta a
aceptar cualquier conexin de
entrada en un puerto superior al
1024, con los problemas que ello
implica si tenemos el equipo
conectado a una red insegura como
Internet. De hecho, los cortafuegos
que se instalen en el equipo para
evitar ataques seguramente
rechazarn esas conexiones
aleatorias. Para solucionar esto se
desarroll el modo pasivo

Modo pasivo
Cuando el cliente enva un comando
PASV sobre el canal de control, el
servidor FTP le indica por el canal
de control, el puerto (mayor a 1023
del servidor. Ejemplo:2040) al que
debe conectarse el cliente. El cliente
inicia una conexin desde el puerto
siguiente al puerto de control
(Ejemplo: 1036) hacia el puerto del
servidor especificado anteriormente
(Ejemplo: 2040).1
Antes de cada nueva transferencia
tanto en el modo Activo como en el
Pasivo, el cliente debe enviar otra
vez un comando de control (PORT o
PASV, segn el modo en el que
haya conectado), y el servidor
recibir esa conexin de datos en un
nuevo puerto aleatorio (si est en
modo pasivo) o por el puerto 20 (si
est en modo activo). En el
protocolo FTP existen 2 tipos de
transferencia en ASCII y en binarios.
Conexin a un servidor FTP
protegido desde navegador
Para iniciar sesin en un servidor FTP
que requiere una contrasea teclee la
URL de esta forma:
ftp://<usuario>:<contrasea>@<servidor
ftp>/<url-ruta>
Donde
<usuario> es el nombre de usuario
<servidor ftp> es el servidor FTP
<contrasea> es la contrasea de acceso
<url-ruta> es el directorio donde iniciamos
sesin.
Ejemplo:
ftp://alumno:alumnopass@ftp.example.com
/public
Ms informacin

Para obtener ms informacin sobre
el protocolo FTP, consulte los
siguientes documentos:
El RFC 959
El RFC 959
Tarea
Investigar como instalar el FTP Server
para Windows 8.
Investigar cada uno de los comandos
FTP.
Usar mximo una lnea para explicar
cada comando.
Entregar la prxima clase.