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.