PDF de programación - Servidores de ficheros mediante FTP y TFTP

Imágen de pdf Servidores de ficheros mediante FTP y TFTP

Servidores de ficheros mediante FTP y TFTPgráfica de visualizaciones

Publicado el 18 de Marzo del 2019
284 visualizaciones desde el 18 de Marzo del 2019
185,8 KB
18 paginas
Creado hace 6a (10/09/2013)
Administración y Gestión de Redes

Servidores de ficheros mediante FTP y TFTP

Servidores de ficheros mediante FTP y TFTP.

Autor: Enrique V. Bonet Esteban

Introducción.

Los usuarios de una red necesitan, en múltiples ocasiones, hacer públicos
archivos para que el resto de usuarios de la red puedan acceder a los mismos. Esto
puede hacerse con el servicio de FTP, el cual permite que dos ordenadores intercambien
archivos entre sí de forma transparente para el usuario.

El intercambio de archivos entre dos ordenadores es una operación teóricamente
sencilla, pero que en la práctica presenta innumerables problemas, debidos,
principalmente, a la existencia de multitud de sistemas de archivos distintos, los cuales
difieren en un gran número de aspectos. Entre estos aspectos se encuentra:

• Convenciones diferentes para nombrar los archivos.

• Reglas diferentes para recorrer los sistemas de directorios.

• Restricciones de acceso a archivos.

• Formas diferentes de representar texto y datos dentro de los archivos.

Para resolver estos problemas, se desarrolló el protocolo de transferencia de
archivos (File Transfer Protocol). FTP es un programa muy básico para la transferencia
de archivos entre ordenadores, pero a la vez es muy sencillo y fácil de usar, permitiendo
ser utilizado de forma interactiva por un usuario, o bien, desde cualquier otra aplicación.

En FTP, un cliente de FTP establece una conexión con un servidor de FTP a
través de lo que se conoce como conexión de control, siendo esta conexión de control
una sencilla sesión de NVT1. El cliente envía los comandos al servidor a través de la
conexión de control y el servidor envía respuestas al cliente a través de la misma.

El conjunto de comandos ha ido creciendo con el tiempo y es bastante amplio,
aunque no todos los clientes y/o servidores de FTP tienen porque implementar todos los
comandos2. Si un cliente no contiene un comando que el usuario quiere enviar al
servidor, las implementaciones de FTP suelen disponer del comando QUOTE (que
puede entenderse como citar literalmente), que permite escribir el comando formal tal
como se quiere enviar. La expresión escrita se transmitirá a través de la conexión de
control exactamente como fue introducida.

La respuesta general a un comando de control enviado por un cliente es un
código de respuesta numérico formado por tres dígitos. Los códigos 1xx indican, de
forma general, que se ha comenzado a realizar una acción, los códigos 2xx que el

1 Network Virtual Terminal es un modelo de terminal de red (virtual) que se verá con más detalle en
temas posteriores.
2 Un listado completo de los comandos existentes puede encontrarse en el apéndice A del tema.

Doble Titulación Informática + Telemática

1

Administración y Gestión de Redes

Servidores de ficheros mediante FTP y TFTP

comando se realizó con éxito, los códigos 3xx que se ha alcanzado con éxito un punto
intermedio, los códigos 4xx indican un error temporal que puede recuperarse con
posterioridad, y los códigos 5xx indican un error permanente y no recuperable.

Sin embargo, si el cliente de FTP ejecuta un comando que solicita la
transferencia de archivos, además de la respuesta por la conexión de control, se
establece una nueva conexión, conocida como conexión de datos, que es independiente
de la conexión de control y por la que se transfiere el archivo solicitado3. En la figura
siguiente se muestra este modelo, donde suponemos que el servidor está en modo activo
y utiliza, por tanto, el puerto 20 para su extremo de la conexión de datos4.



Cliente de

FTP

Puerto 5122

Conexión NVT de control

Puerto 21

Servidor de

FTP

Transferencia de

datos

Puerto 5137

Conexión de datos

Puerto 20

Transferencia de

datos

Transferencia de datos en FTP.

Además de los problemas del nombre de los archivos, etc., el principal problema
existente en la transferencia de archivos entre ordenadores es el diferente formato que
tienen los mismos datos en función del hardware y sistema operativo que se ejecute. Por
tanto, en una transferencia de archivos entre dos ordenadores, ambos necesitan conocer
el formato de los datos que van a transmitir y recibir. Para definir el formato de
transferencia, FTP utiliza tres atributos: Tipo de los datos, estructura de los datos y
modo de transmisión.

El tipo de los datos que se van a transmitir se indica mediante el comando de
control TYPE. Los tres tipos de datos más utilizados son texto ASCII, texto EBCDIC y
datos binarios, siendo el tipo ASCII el establecido generalmente por defecto.

El envío de datos de tipo ASCII entre computadoras con distinto sistema
operativo Linux/UNIX, Windows y MacOS, principalmente, posee el problema de la
distinta codificación del final de línea, etc. Para evitar este problema, los archivos de
texto son convertidos desde ASCII al formato de NVT en el emisor y de forma inversa
en el receptor, con lo que el problema es subsanado.

La transmisión de datos de texto EBCDIC se suele producir solo entre
ordenadores IBM, de forma que en ellos no suceden los problemas que ocurren en los
datos de tipo ASCII, por lo que los datos son enviados sin ser convertidos a NVT.

Por último, los datos binarios son enviados sin ningún tipo de conversión y sin
tener en cuenta si los ordenadores son del mismo tipo (little-endian o big-endian), con lo
que la transferencia, aún siendo correcta, puede ser ilegible en el ordenador destino.

3 La conexión de datos también se utiliza para transferir los listados de los directorios y en general,
cualquier respuesta que exceda de una sola línea.
4 El modo activo y el modo pasivo de funcionamiento del servidor se explican con posterioridad.

Doble Titulación Informática + Telemática

2

Administración y Gestión de Redes

Servidores de ficheros mediante FTP y TFTP

La estructura de los datos a enviar, se indica mediante el comando de control
STRU. Existen dos tipos de estructuras, estructura de archivo y estructura de registro.
La estructura de archivo es la predeterminada y corresponde a que los datos a enviar son
una secuencia de bytes. Por el contra, la estructura de registro indica que el archivo esta
compuesto por una secuencia de registros de datos.

Por último, el modo de transmisión, indicado por el comando de control MODE,
junto con la estructura de los datos vista con anterioridad, determina cuál será el
formato de los datos durante la transferencia. Los tres modos de transmisión existentes
son flujo, bloque y comprimido, siendo el modo de flujo el predeterminado.

En modo flujo con estructura de datos de archivo, el archivo se transmite como
un flujo de bytes. FTP confía que TCP garantizará la integridad de los datos y no inserta
ni cabeceras ni delimitadores entre los datos. La única forma de señalar que se ha
llegado al final del archivo es terminando la conexión de datos. Sin embargo, si la
estructura de datos es de registro, cada registro se delimita con un código de control de
fin de registro (End Of Record) de dos bytes (0xFF 0x01). El fin de archivo (End Of
File) se representa por otro código de 2 bytes (0xFF 0x02). Para el último registro del
archivo, EOR y EOF se pueden representar como 0xFF 0x03. Si el archivo contiene un
byte de valor 0xFF, este debe duplicarse antes del envío.

En modo bloque, se transmite un archivo como una serie de bloques de datos.
Cada bloque comienza con una cabecera de 3 bytes. La cabecera esta formada por 1
byte que contiene las banderas del descriptor (fin de bloque, fin de fichero, reinicio de
marcador) y 2 bytes con la cuenta de bytes, esto es, el número de bytes siguientes. La
ventaja principal del uso de este modo es cuando la estructura de datos es de registro,
pues el final del archivo aparece claramente identificado, por lo que se puede mantener
activada la conexión utilizándola para varias transferencias.

Por último, el modo comprimido, raramente disponible, proporciona un método
burdo de comprimir cadenas de bytes repetidos, por lo que para un usuario es mucho
mejor utilizar la compresión que proporciona cualquiera de los programas de
compresión disponibles antes que utilizar este modo.

El cliente de FTP.

En este punto nos limitaremos a exponer el uso interactivo del cliente de FTP
por parte de un usuario. Una explicación de cómo usar el cliente FTP desde un
programa de aplicación puede obtenerse mediante una consulta a las páginas de
manual5.

Las funciones esenciales de transferencia de archivos permiten a los usuarios
copiar archivos de un sistema a otro, ver listados de directorios y realizar tareas
normales, como cambiar de directorio y cambiar el nombre o borrar un archivo.

El cliente de FTP se encuentra en /usr/bin/ftp, es ejecutado como:

5 Además del cliente FTP aquí expuesto, que funciona en modo texto, existen multitud de clientes que
funcionan en modo gráfico y que pueden ser usados para acceder a cualquier servidor de FTP, pues
internamente ejecutan lo comandos, etc., aquí expuestos.

Doble Titulación Informática + Telemática

3

Administración y Gestión de Redes

Servidores de ficheros mediante FTP y TFTP

> ftp [nombre del ordenador]

Un ejemplo de conexión desde nuestro ordenador a glup.irobot.uv.es es el

siguiente:

> ftp glup.irobot.uv.es
Connected to glup.irobot.uv.es (147.156.222.65).
220 Bienvenido al servicio de FTP del Instituto de Robotica
Name (glup.irobot.uv.es: quique): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /dist/ssh
250 Directory successfully changed.
ftp> get putty.zip
local: putty.zip remote: putty.zip
227 Entering Passive Mode (147,156,222,65,19,244)
150 Opening BINARY mode data connectio
  • Links de descarga
http://lwp-l.com/pdf15542

Comentarios de: Servidores de ficheros mediante FTP y TFTP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad