Protocolu de tresferencia de ficheros
{{Redirixe equí|FTP}}
{{Ficha de protocolu de rede |
nome = Protocolu de tresferencia de ficheros |
familia = [[Familia de protocolos d'Internet]]
| función = Tresferencia de ficheros
| puertos = 20/TCP DATA Port<br />21/TCP Control Port
| nivel = aplicación
<!-- Descripción de la pila -->
| aplicación = FTP
| tresporte = [[Transmission Control Protocol|TCP]]
| rede = [[Protocolu d'Internet|IP]]
<!-- Fin descripción de la pila -->
| estándares = FTP: RFC 959 ([[1985]])<br />Estensiones de FTP para IPv6 y NATs: RFC 2428 ([[1998]])}}
El '''Protocolu de tresferencia de ficheros''' (n'inglés '''File Transfer Protocol''' o '''FTP''') ye un [[protocolu de rede]] pa la [[tresferencia de ficheros]] ente sistemes coneutaos a una rede [[Transmission Control Protocol|TCP]] (Transmission Control Protocol), basáu na arquiteutura [[veceru-sirvidor]]. Dende un equipu veceru puede coneutase a un sirvidor pa baxar ficheros dende él o pa unvia-y ficheros, independientemente del sistema operativu utilizáu en cada ordenador.

El serviciu FTP ye ufiertáu pola capa d'aplicación del modelu de capes de rede [[TCP/IP]] al usuariu, utilizando de normal el [[puertu de rede]] 20 y el 21. Un problema básicu de FTP ye que ta pensáu pa ufiertar la máxima velocidá na conexón, pero non la máxima seguridá, yá que tol intercambiu d'información, dende l'usuariu y contraseña del usuariu nel sirvidor hasta la tresferencia de cualquier ficheru, realízase en [[testu planu]] ensin nengún tipu de cifráu, colo qu'un posible atacante puede prindar esti tráficu, aportar al sirvidor y/o apoderase de los ficheros tresferíos.

Pa solucionar esti problema son de gran utilidá aplicaciones como [[SCP]] y [[SFTP]], incluyíes nel paquete [[Secure Shell|SSH]], que dexen tresferir ficheros pero [[Criptografía|cifrando]] tol tráficu.

== Historia ==
El protocolu FTP empezó a utilizase n'abril de 1971, publicáu como'l RFC 114, primero qu'esistiera la pila TCP/IP. La estructura xeneral foi establecida en 1973. Foi modificáu delles vegaes, añadiendo nuevos comandos y funcionalidades. A la fin publicóse'l RFC 959 n'ochobre de 1985, que ye la que s'utiliza anguaño.<ref>{{Cita web |títulu=La hestoria del protocolu FTP saludu 1004(y les sos desventaxes actuales) |url=http://managefiletransfer.wordpress.com/2011/08/02/mft-b2bconsulting/ |fechaaccesu=26 de xunu de 2014}}</ref>

== El Modelu FTP ==
[[Ficheru:modelo ftp.jpg|thumb|400px|El siguiente modelu representa la diagrama d'un serviciu FTP.]]

Nel modelu, l'intérprete de protocolu (PI) d'usuariu empecipia la conexón de control nel [[Puertu de red|puerto]] 21. Les órdenes FTP estándar xenerar la PI d'usuariu y tresmítense al procesu sirvidor al traviés de la conexón de control. Les respuestes estándar unviar dende la PI del sirvidor hasta la PI d'usuariu pola conexón de control como respuesta a les órdenes.

Estes órdenes FTP especifiquen parámetros pa la conexón de datos (puertu de datos, mou de tresferencia, tipu de representación y estructura) y la naturaleza de la operación sobre'l [[sistema de ficheros]] (atroxar, recuperar, añader, desaniciar, etc.). El procesu de tresferencia de datos (DTP) d'usuariu o otru procesu nel so llugar, tien d'esperar a que'l sirvidor empecipie la conexón al puertu de datos especificáu (puertu 20 en mou activu o estándar) y tresferir los datos en función de los parámetros que s'especificaren.

Vemos tamién na diagrama que la comunicación ente [[Vecera (informática)|vecera]] y [[sirvidor]] ye independiente del sistema de ficheros utilizáu en cada [[Ordenador electrónica|ordenador]], de manera que nun importa que los sos sistemes operativos sían distintos, porque les entidaes que se comuniquen ente sigo son les PI y los DTP, qu'usen el mesmu protocolu estandarizado: el FTP.

Tamién hai que destacar que la conexón de datos ye bidireccional, esto ye, puede usase simultáneamente pa unviar y pa recibir, y nun tien por qué esistir tol tiempu que dura la conexón FTP. Pero tenía nos sos empiezos un problema, y yera la llocalización de los sirvidores na rede. Esto ye, l'usuariu que quería baxar dalgún ficheru por aciu trump tenía de conocer en qué máquina taba allugáu. La única ferramienta de busca d'información qu'esistía yera Gopher, con toles sos llimitaciones.

=== Primer buscador d'información ===
Gopher significa 'llanzase sobre' la información. Ye un serviciu que'l so oxetivu ye la llocalización de ficheros a partir del so títulu. Consiste nun conxuntu de menús de recursos allugaos en distintes máquines que tán intercomunicadas. Cada máquina sirve una área d'información, pero la so organización interna dexa que toes elles funcionen como si tratar d'una sola máquina. L'usuariu salea al traviés d'estos menús hasta alcontrar la información buscada, y desconoz esautamente de qué máquina ta descargando dicha información. Cola llegada d'Internet, los potentes motores de busca dexaron el serviciu Gopher, y la llocalización de los sirvidores FTP dexó de ser un problema. Na actualidá, cuando l'usuariu descarga un ficheru a partir d'un enllaz d'una páxina web nun llega nin a saber que lo ta faciendo dende un sirvidor FTP. El serviciu FTP evolucionó a lo llargo del tiempu y güei día ye bien utilizáu n'Internet, en redes corporatives, Intranets, etc. Soportáu por cualesquier sistema operativu, esiste gran cantidá de software basáu nel protocolu FTP.

== Servidor FTP ==
Un sirvidor FTP ye un programa especial que s'executa nun equipu sirvidor de normal conectáu a Internet (anque pue tar conectáu a otros tipos de redes, [[Rede d'área llocal|LAN]], [[Rede d'área metropolitana|MAN]], etc.). La so función ye dexar l'intercambiu de datos ente distintos sirvidores/ordenadores.

Polo xeneral, los programes sirvidores FTP nun suelen atopase nos ordenadores personales, polo qu'un usuariu de normal va utilizar el FTP pa conectase remotamente a unu y asina intercambiar información con él.

Les aplicaciones más comunes de los sirvidores FTP suelen ser el [[alojamiento web]], nel que los sos veceros utilicen el serviciu pa xubir les sos páxines web y los sos ficheros correspondientes; o como sirvidor de copia de seguridá de los ficheros importantes que pueda tener una empresa. Pa ello, esisten protocolos de comunicación FTP por que los datos tresmítanse cifraos, como'l [[SFTP]] (''Secure File Transfer Protocol'').

== Veceru FTP ==
{{AP|Veceru FTP}}
Cuando un navegador nun ta forníu cola función FTP, o si quier cargase ficheros nun ordenador remotu, va precisase utilizar un programa veceru FTP. Un veceru FTP ye un programa que s'instala nel ordenador del usuariu, y qu'emplega el protocolu FTP pa conectase a un sirvidor FTP y tresferir ficheros, yá sía pa baxalos o pa xubilos.

Pa utilizar un veceru FTP, precísase conocer el nome del ficheru, l'ordenador en que mora (sirvidor, nel casu de descarga de ficheros), l'ordenador al que quier tresferise'l ficheru (en casu de querer xubilo nós al sirvidor), y la carpeta na que s'atopa.

Dellos veceros de FTP básicos en modo consola vienen integraos nos [[sistema operativu|sistemes operativos]], incluyendo [[Microsoft Windows]], [[DOS]], [[GNU/Linux]] y [[Unix]]. Sicasí, hai disponibles veceros con opciones añadíes y interfaz gráfica. Anque munchos navegadores tienen yá integráu FTP, ye más confiable a la de conectase con sirvidores FTP non anónimos utilizar un programa veceru.

=== Accesu anónimu ===
Los sirvidores FTP anónimos ufierten los sos servicios llibremente a tolos usuarios, dexen aportar a los sos ficheros ensin necesidá de tener un 'USER ID' o una cuenta d'usuariu. Ye la manera más cómoda fuera del serviciu web de dexar que tol mundu tenga accesu a cierta información ensin que pa ello l'alministrador d'un sistema tenga que crear una cuenta pa cada usuariu.

Si un sirvidor tien serviciu 'FTP anonymous' solamente con teclear la pallabra «anonymous», cuando pregunte pol to usuariu vas tener accesu a esi sistema. Nun se precisa nenguna contraseña preestablecida, anque vas tener qu'introducir una namái pa esi momentu, de normal suelse utilizar la direición de corréu electrónicu propia.

Solamente con eso consíguese accesu a los ficheros del FTP, anque con menos privilexos qu'un usuariu normal. De normal solo vas poder lleer y copiar los ficheros que sían públicos, asina indicaos pol alministrador del sirvidor al que queramos coneutar.

De normal, utilízase un sirvidor FTP anónimu pa depositar grandes ficheros que nun tienen utilidad si nun son tresferíos a la máquina del usuariu, como por casu programes, y acútense los sirvidores de páxina web (HTTP) p'almacenar información testual destinada a la llectura en llinia.

=== Accesu d'usuariu ===
Si deseyar tener privilexos d'accesu a cualesquier parte del sistema de ficheros del sirvidor FTP, de cambéu de ficheros esistentes, y de posibilidá de xubir los nuesos propios ficheros, xeneralmente suelse realizar por aciu una cuenta d'usuariu. Nel sirvidor guarda la información de les distintes cuentes d'usuariu que pueden aportar a él, de manera que pa empecipiar una sesión FTP tenemos d'introducir una [[autentificación]] (n'[[idioma inglés|inglés]]: ''login'') y una [[contraseña]] (n'inglés: ''password'') que nos identifica unívocamente.

=== Veceru FTP basáu en Web ===
Un «veceru FTP basáu en Web» nun ye más qu'un veceru FTP al cual podemos aportar al traviés del nuesu navegador web ensin necesidá de tener otra aplicación pa ello. L'usuariu coneutar por aciu HTTP a un sirvidor web, y el sirvidor web coneutar por aciu FTP al sirvidor de ficheros. El sirvidor web actúa d'intermediariu faciendo pasar la información dende'l sirvidor FTP nos puertos 20 y 21 escontra'l puertu 80 HTTP que ve l'usuariu.

Siempres hai momentos en qu'atopamos fora de casa, nun llevamos l'ordenador portátil enriba y precisamos realizar dalguna xera urxente dende un ordenador d'accesu públicu, d'un amigu, del trabayu, la universidá, etc. Lo más común ye que nun tean instalaes les aplicaciones que precisamos y en munchos casos hasta escarecemos de los permisos necesarios pa realizar la so instalación. Otres vegaes tamos detrás d'un proxy o cortafueos que nun nos dexa aportar a sirvidores FTP esternos.

Al disponer d'un veceru FTP basáu en Web podemos aportar al sirvidor FTP remotu como si tuviéramos realizando cualesquier otru tipu de navegación web. Al traviés d'un veceru FTP basáu en Web vas poder, crear, copiar, camudar el nome de y esaniciar ficheros y direutorios. Camudar permisos, editar, ver, xubir y baxar ficheros, según cualesquier otra función del protocolu FTP que'l sirvidor FTP remotu dexe.

=== Accesu de convidáu ===
L'accesu ensin restricciones al sirvidor qu'apurren les cuentes d'usuariu implica problemes de seguridá, lo que dio llugar a un tercer tipu d'accesu FTP denomináu convidáu (guest), que puede contemplase como un amiestu de los dos anteriores.

La idea d'esti mecanismu ye la siguiente: tratar de dexar que cada usuariu conecte a la máquina por aciu la so login y la so password, pero evitando que tenga accesu a partes del sistema de ficheros que nun precisa pa realizar el so trabayu, d'esta forma va aportar a una redolada acutada, daqué bien similar a lo qu'asocede nos accesos anónimos, pero con más privilexos.

=== Exemplos de Veceros FTPs ===
Ente los varios veceros FTP qu'esisten, pueden mentase los siguientes:<ref>{{Cita web |autor=Micaela |títulu=Los meyores 10 veceros FTP |url=http://www.elwebmaster.com/articulos/los meyores-10-veceros-ftp |fechaaccesu=27 de xunu de 2014}}</ref>
* Free FTP Upload Manager
* F->IT
* net2ftp
* Web FTP.co.uk
* Web-Ftp
* Jambai FTP
* ftp4net
* PHP FTP Client
* Asuk PHP FTP
* Weeble File Manager
* FileZilla

== Moos de conexón del veceru FTP ==
FTP almite dos moos de conexón del veceru. Esteos moos denómense ''activu'' (o Estándar, o PORT, por cuenta de que'l veceru unvia comandos triba PORT al sirvidor pola canal de control al establecer la conexón) y ''pasivu'' (o PASV, porque nesti casu unvia comandos triba PASV). Tantu nel mou Activu como nel mou Pasivu, el veceru establez una conexón col sirvidor por aciu el puertu 21, qu'establez la canal de control.

=== Mou activu ===
[[Ficheru:activo.svg|thumb|420px|Mou activu.]]
En mou Activu, el sirvidor siempres crea la canal de datos nel so puertu 20, ente que nel llau del veceru la canal de datos acomuñar a un puertu aleatoriu mayor que'l 1024. Pa ello, el veceru manda un comandu PORT al sirvidor pola canal de control indicándo-y esi númberu de puertu, de manera que'l sirvidor pueda abrir una conexón de datos por onde se van tresferir los ficheros y los enumeraos, nel puertu especificáu.

Lo anterior tien un grave problema de seguridá, y ye que la máquina vecera ten de tar dispuesta a aceptar cualquier conexón d'entrada nun puertu cimeru al 1024, colos problemes qu'ello implica si tenemos l'equipu conectáu a una rede insegura como Internet. Ello ye que los [[cortafueos (informática)|cortafueos]] que s'instalen nel equipu pa evitar ataques de xuru van refugar eses conexones aleatories. Pa solucionar esto desenvolvióse'l mou ''pasivu''.

=== Mou pasiva ===
[[Ficheru:pasivo.svg|thumb|420px|Mou pasivu.]]
Cuando'l veceru unvia un comandu PASV sobre la canal de control, el sirvidor FTP indíca-y pela canal de control, el puertu (mayor a 1024 del sirvidor. Exemplu:2040) al que tien de conectase'l veceru. El veceru empecipia una conexón dende'l puertu siguiente al puertu de control (Exemplu: 1036) escontra'l puertu del sirvidor especificáu enantes (Exemplu: 2040).<ref>{{Cita web |url=http://slacksite.com/other/ftp.html#passive |títulu=Active FTP vs. Passive FTP, a Definitive Explanation |idioma=inglés}}</ref>

Antes de cada nueva tresferencia tantu nel mou Activu como nel Pasivu, el veceru tien d'unviar otra vegada un comandu de control (PORT o PASV, según el mou nel que coneutara), y el sirvidor va recibir esa conexón de datos nun nuevu puertu (aleatoriu si ye en mou pasivu o pol puertu 20 si ye en mou activu).

=== Tipos de tresferencia de ficheros en FTP ===
Nel protocolu FTP esisten 2 tipos de tresferencia en ASCII y en binarios. Ye importante conocer cómo tenemos de tresportar un ficheru a lo llargo de la rede, si nun utilizamos les opciones fayadices podemos destruyir la información del ficheru. Por eso, al executar l'aplicación FTP, tenemos d'alcordanos d'utilizar unu d'estos comandos (o poner la correspondiente opción nun programa con interfaz gráfica):

* Tipu ASCII
Fayadizu pa tresferir ficheros que solo contengan calteres imprimibles (ficheros ASCII, non ficheros resultantes d'un procesador de testu), por casu páxina HTML, pero non les imáxenes que puedan contener. Tresfórmense dellos símbolos de control pa caltenelos compatibles ente distintos sistemes, por casu, si'l ficheru ta agospiáu sobre un sirvidor Linux, el saltu de llinia pa los ficheros de testu ye "\n" (byte 10 en decimal). Si'l veceru ye un sistema Mac, el saltu de llinia ye "\r" (byte 13 en decimal), esti mou camuda estos símbolos de control por que el ficheru sía legible en dambos llaos, al igual que si s'unvia a un sistema Windows, el saltu de llinia ye "\r\n" (dos bytes, 13 y 10). Si usa esti mou en ficheros que nun son de testu ensin formatu, nel casu d'intercambiase ente distintos sistemes, esi archivu va quedar corruptu.

* Tipu Binariu
Esti tipu ye usáu cuando se trata de ficheros comprimíos, executables pa PC, imáxenes, archivos d'audio, ente otros.

Exemplos de cómo tresferir dellos tipos de ficheru dependiendo de la so estensión:

{| {{tablaguapa}}
|-
! Estensión de ficheru
!Tipu de tresferencia
|-
| txt (testu)
| ascii
|-
| html (páxina WEB)
| ascii
|-
| doc (documentu)
| binariu
|-
| ps (PostScript)
| ascii
|-
| hqx (comprimíu)
| ascii
|-
| Z (comprimíu)
| binariu
|-
| ZIP (comprimíu)
| binariu
|-
| ZOO (comprimíu)
| binariu
|-
| Sit (comprimíu)
| binariu
|-
| pit (comprimíu)
| binariu
|-
| shar (comprimíu)
| binariu
|-
| uu (comprimíu)
| binariu
|-
| ARC (comprimíu)
| binariu
|-
| tar (empaquetáu)
| binariu
|}

Na rede esisten diverses soluciones de software que desenvuelve esti tipu de teunoloxía, los más conocíos, son [[Filezilla]] ([[software llibre]]) y [[CuteFTP]] ([[shareware]]).

== Comandos FTP ==
{| {{tablaguapa}}
|-
! Comandu y argumentos
! Aición que realiza
|-
| '''open''' ''sirvidor''
| Empecipia una conexón con un sirvidor FTP.
|-
| '''close''' o '''disconnect'''
| Remata una conexón FTP ensin cerrar el programa veceru.
|-
| '''bye''' o '''quit'''
| Remata una conexón FTP y la sesión de trabayu col programa veceru.
|-
| '''cd''' ''direutoriu''
| Camuda'l direutoriu de trabayu nel sirvidor.
|-
| '''delete''' ''ficheru''
| Borra un ficheru nel sirvidor
|-
| '''mdelete''' ''patrón''
| Borra múltiples ficheros basáu nun patrón que s'aplica al nome.
|-
| '''dir'''
| Amuesa'l conteníu del direutoriu nel que tamos nel sirvidor.
|-
| '''get''' ''ficheru''
| Llogra un ficheru
|-
| '''noop''' ''No Operation''
| Comunícase-y al sirvidor que'l veceru ta en mou de non operación, el sirvidor usualmente respuende con un «ZZZ» y enfresca el contador de tiempu inactivu del usuariu.
|-
| '''mget''' ''ficheros''
| Llogra múltiples ficheros
|-
| '''hash'''
| Activa la impresión de caráuteres a midida que se tresfieren ficheros, a manera de barra de progresu.
|-
| '''lcd''' ''direutoriu''
| Camuda'l direutoriu de trabayu local.
|-
| '''ls'''
| Amuesa'l conteníu del direutoriu nel sirvidor.
|-
| '''prompt'''
| Activa/desactiva la confirmación per parte del usuariu de la execución de comandos. Por casu al borrar múltiples ficheros.
|-
| '''put''' ''ficheru''
| Unvia un ficheru al direutoriu activu del sirvidor.
|-
| '''mput''' ''ficheros''
| Unvia múltiples ficheros.
|-
| '''pwd'''
| Amuesa'l direutoriu activu nel sirvidor.
|-
| '''rename''' ''ficheru''
| Camuda'l nome a un ficheru nel sirvidor.
|-
| '''rmdir''' ''direutoriu''
| Esanicia un direutoriu nel sirvidor si esi direutoriu ta vacíu.
|-
| '''status'''
| Amuesa l'estáu actual de la conexón.
|-
| '''bin''' o '''binary'''
| Activa'l mou de tresferencia binariu.
|-
| '''ascii'''
| Activa'l mou de tresferencia de testu ASCII.
|-
| '''!'''
| Dexa salir a llinia de comandos temporalmente ensin cortar la conexón. Pa volver, teclear '''exit''' na llinia de comandos.
|-
| '''?''' ''nome de comandu''
| Amuesa la información relativa al comandu.
|-
| '''?''' o '''help'''
| Amuesa una llista de los comandos disponibles.
|-
| '''append''' ''nome del ficheru''
| Continua una descarga que se cortó primeramente.
|-
| '''bell'''
| Activa/desactiva la reproducción d'un soníu cuando terminó cualquier procesu de tresferencia de ficheros.
|-
| '''glob'''
| Activa/desactiva la visualización de nomes llargos del nuesu ordenador.
|-
| '''literal'''
| Con esta orde pueden executase comandos del sirvidor de forma remota. Pa saber los disponibles utilízase: '''literal help'''.
|-
| '''mkdir'''
| Crea'l direutoriu indicáu de forma remota.
|-
| '''quote'''
| Fai la mesma función que '''literal'''.
|-
| '''send''' ''nome del ficheru''
| Unvia'l ficheru indicáu al direutoriu activu del sirvidor.
|-
| '''user'''
| Pa camudar el nuesu nome d'usuariu y contraseña ensin necesidá de salir de la sesión ftp.
|}

== Códigos de respuesta de FTP ==
De siguío amuésase un resume de la respuesta de los códigos FTP que pue devolver un sirvidor FTP. Estos códigos hanse normalizáu en RFC 959 pola IETF. El códigu de respuesta ye un valor de tres díxitos. El primer díxitu utilizar pa indicar una de trés posibles resultaos-l'ésitu, el fracasu o pa indicar un error o una respuesta incompleta:

* 2yz - rempuesta Éxitu
* 4yz o 5yz - Nun hai respuesta
* 1yz o 3yz - Un error o una respuesta incompleta

El segundu díxitu define la clas d'error:

* x0z - Sintaxis. Estes respuestes referir a errores de sintaxis.
* x1z - Información. Les respuestes a les solicitúes d'información.
* x2z - Conexones. Respuestes en referencia al control y les conexones de datos.
* x3z - Autenticación y contabilidá. Respuestes pal procesu d'entamu de sesión y los procedimientos contables.
* x4z - Non definíu.
* x5z - Sistema de ficheros. Estes respuestes tresmiten códigos d'estáu del sistema de ficheros del sirvidor.

El tercer díxitu del códigu de respuesta utilizar p'apurrir detalles adicionales pa caúna de les categoríes definíes pol segundu díxitu.<ref>{{cita llibru|apellíos=Forouzan |nome=Behrouz |títulu=TCP/IP Protocol Suite |editorial=McGraw Hill}}</ref>

== Conexón a un sirvidor FTP protexíu dende navegador ==
P'aniciar una sesión nun sirvidor FTP que rique una contraseña teclee l'URL d'esta forma:

<code><nowiki>ftp://<usuariu>:<contraseña>@<sirvidor ftp>/<url-ruta></nowiki></code>

Onde <code><usuariu></code> ye'l nome d'usuariu, <code><sirvidor ftp></code> ye'l sirvidor FTP, <code><contraseña></code> ye la contraseña d'accesu, y <code><url-ruta></code> ye'l direutoriu onde empecipiamos sesión.

Exemplu: <code><nowiki>ftp://alumnu:alumnopass@ftp.example.com/public</nowiki></code>

== Ver tamién ==
* [[Archie (Buscador FTP)|Archie]]
* [[FTPS]]
* [[TFTP]]
* [[OFTP]]
* [[File eXchange Protocol]]
* [[Picture Transfer Protocol|PTP]], Picture Transfer Protocol
* [[MTP]], Media Transfer Protocol (una estensión del PTP)
* [[SSH File Transfer Protocol]]
* [[Network File System]]
* [[Sistema de ficheros]]
* [[Sistema de ficheros distribuyíu]]

== Sirvidores FTP ==
* [[Sirvidor FTP]] (Llista)
* [[FileZilla Server]] (Windows)
* [[Pure-FTPd]] (Unix)
* [[VsFTPd]] (Unix)
* [[ProFTPd]] (Unix)

== Enllaces esternos ==
* RFC 959 – File Transfer Protocol
* RFC 1579 – Firewall Friendly FTP
* RFC 2228 – FTP Security Extensions
* RFC 2428 – FTP Extensions for [[IPv6]] and [[Network Address Translation|NATs]]
* RFC 2640 – Internationalization of the File Transfer Protocol

;Protocolu *
[http://www.nsftools.com/tips/RawFTP.htm Raw FTP command list]
* [http://www.eventhelix.com/RealtimeMantra/Networking/FTP.pdf FTP Sequence Diagram] {{Webarchive|url=https://web.archive.org/web/20100206120644/http://eventhelix.com/RealtimeMantra/Networking/FTP.pdf |date=2010-02-06 }}
* [https://servertest.online/ftp FTP Server Test] (Online)

== Referencies ==
{{llistaref}}

{{Tradubot|Protocolo de transferencia de archivos}}

{{control d'autoridaes}}
[[Categoría:FTP]]
[[Categoría:Protocolos de nivel d'aplicación]]
[[Categoría:Historia d'Internet]]
[[Categoría:Wikipedia:Artículos con plantía Redirixe equí a páxines que nun esisten]]
El Protocolu de tresferencia de ficheros (n'inglés File Transfer Protocol o FTP) ye un protocolu de rede pa la tresferencia de ficheros ente sistemes coneutaos a una rede TCP (Transmission Control Protocol), basáu na arquiteutura veceru-sirvidor. Dende un equipu veceru puede coneutase a un sirvidor pa baxar ficheros dende él o pa unvia-y ficheros, independientemente del sistema operativu utilizáu en cada ordenador.

El serviciu FTP ye ufiertáu pola capa d'aplicación del modelu de capes de rede TCP/IP al usuariu, utilizando de normal el puertu de rede 20 y el 21. Un problema básicu de FTP ye que ta pensáu pa ufiertar la máxima velocidá na conexón, pero non la máxima seguridá, yá que tol intercambiu d'información, dende l'usuariu y contraseña del usuariu nel sirvidor hasta la tresferencia de cualquier ficheru, realízase en testu planu ensin nengún tipu de cifráu, colo qu'un posible atacante puede prindar esti tráficu, aportar al sirvidor y/o apoderase de los ficheros tresferíos.

Pa solucionar esti problema son de gran utilidá aplicaciones como SCP y SFTP, incluyíes nel paquete SSH, que dexen tresferir ficheros pero cifrando tol tráficu.

 Historia 
El protocolu FTP empezó a utilizase n'abril de 1971, publicáu como'l RFC 114, primero qu'esistiera la pila TCP/IP. La estructura xeneral foi establecida en 1973. Foi modificáu delles vegaes, añadiendo nuevos comandos y funcionalidades. A la fin publicóse'l RFC 959 n'ochobre de 1985, que ye la que s'utiliza anguaño.

 El Modelu FTP 
thumb|400px|El siguiente modelu representa la diagrama d'un serviciu FTP.

Nel modelu, l'intérprete de protocolu (PI) d'usuariu empecipia la conexón de control nel puerto 21. Les órdenes FTP estándar xenerar la PI d'usuariu y tresmítense al procesu sirvidor al traviés de la conexón de control. Les respuestes estándar unviar dende la PI del sirvidor hasta la PI d'usuariu pola conexón de control como respuesta a les órdenes.

Estes órdenes FTP especifiquen parámetros pa la conexón de datos (puertu de datos, mou de tresferencia, tipu de representación y estructura) y la naturaleza de la operación sobre'l sistema de ficheros (atroxar, recuperar, añader, desaniciar, etc.). El procesu de tresferencia de datos (DTP) d'usuariu o otru procesu nel so llugar, tien d'esperar a que'l sirvidor empecipie la conexón al puertu de datos especificáu (puertu 20 en mou activu o estándar) y tresferir los datos en función de los parámetros que s'especificaren.

Vemos tamién na diagrama que la comunicación ente vecera y sirvidor ye independiente del sistema de ficheros utilizáu en cada ordenador, de manera que nun importa que los sos sistemes operativos sían distintos, porque les entidaes que se comuniquen ente sigo son les PI y los DTP, qu'usen el mesmu protocolu estandarizado: el FTP.

Tamién hai que destacar que la conexón de datos ye bidireccional, esto ye, puede usase simultáneamente pa unviar y pa recibir, y nun tien por qué esistir tol tiempu que dura la conexón FTP. Pero tenía nos sos empiezos un problema, y yera la llocalización de los sirvidores na rede. Esto ye, l'usuariu que quería baxar dalgún ficheru por aciu trump tenía de conocer en qué máquina taba allugáu. La única ferramienta de busca d'información qu'esistía yera Gopher, con toles sos llimitaciones.

 Primer buscador d'información 
Gopher significa 'llanzase sobre' la información. Ye un serviciu que'l so oxetivu ye la llocalización de ficheros a partir del so títulu. Consiste nun conxuntu de menús de recursos allugaos en distintes máquines que tán intercomunicadas. Cada máquina sirve una área d'información, pero la so organización interna dexa que toes elles funcionen como si tratar d'una sola máquina. L'usuariu salea al traviés d'estos menús hasta alcontrar la información buscada, y desconoz esautamente de qué máquina ta descargando dicha información. Cola llegada d'Internet, los potentes motores de busca dexaron el serviciu Gopher, y la llocalización de los sirvidores FTP dexó de ser un problema. Na actualidá, cuando l'usuariu descarga un ficheru a partir d'un enllaz d'una páxina web nun llega nin a saber que lo ta faciendo dende un sirvidor FTP. El serviciu FTP evolucionó a lo llargo del tiempu y güei día ye bien utilizáu n'Internet, en redes corporatives, Intranets, etc. Soportáu por cualesquier sistema operativu, esiste gran cantidá de software basáu nel protocolu FTP.

 Servidor FTP 
Un sirvidor FTP ye un programa especial que s'executa nun equipu sirvidor de normal conectáu a Internet (anque pue tar conectáu a otros tipos de redes, LAN, MAN, etc.). La so función ye dexar l'intercambiu de datos ente distintos sirvidores/ordenadores.

Polo xeneral, los programes sirvidores FTP nun suelen atopase nos ordenadores personales, polo qu'un usuariu de normal va utilizar el FTP pa conectase remotamente a unu y asina intercambiar información con él.

Les aplicaciones más comunes de los sirvidores FTP suelen ser el alojamiento web, nel que los sos veceros utilicen el serviciu pa xubir les sos páxines web y los sos ficheros correspondientes; o como sirvidor de copia de seguridá de los ficheros importantes que pueda tener una empresa. Pa ello, esisten protocolos de comunicación FTP por que los datos tresmítanse cifraos, como'l SFTP (Secure File Transfer Protocol).

 Veceru FTP 

Cuando un navegador nun ta forníu cola función FTP, o si quier cargase ficheros nun ordenador remotu, va precisase utilizar un programa veceru FTP. Un veceru FTP ye un programa que s'instala nel ordenador del usuariu, y qu'emplega el protocolu FTP pa conectase a un sirvidor FTP y tresferir ficheros, yá sía pa baxalos o pa xubilos.

Pa utilizar un veceru FTP, precísase conocer el nome del ficheru, l'ordenador en que mora (sirvidor, nel casu de descarga de ficheros), l'ordenador al que quier tresferise'l ficheru (en casu de querer xubilo nós al sirvidor), y la carpeta na que s'atopa.

Dellos veceros de FTP básicos en modo consola vienen integraos nos sistemes operativos, incluyendo Microsoft Windows, DOS, GNU/Linux y Unix. Sicasí, hai disponibles veceros con opciones añadíes y interfaz gráfica. Anque munchos navegadores tienen yá integráu FTP, ye más confiable a la de conectase con sirvidores FTP non anónimos utilizar un programa veceru.

 Accesu anónimu 
Los sirvidores FTP anónimos ufierten los sos servicios llibremente a tolos usuarios, dexen aportar a los sos ficheros ensin necesidá de tener un 'USER ID' o una cuenta d'usuariu. Ye la manera más cómoda fuera del serviciu web de dexar que tol mundu tenga accesu a cierta información ensin que pa ello l'alministrador d'un sistema tenga que crear una cuenta pa cada usuariu.

Si un sirvidor tien serviciu 'FTP anonymous' solamente con teclear la pallabra «anonymous», cuando pregunte pol to usuariu vas tener accesu a esi sistema. Nun se precisa nenguna contraseña preestablecida, anque vas tener qu'introducir una namái pa esi momentu, de normal suelse utilizar la direición de corréu electrónicu propia.

Solamente con eso consíguese accesu a los ficheros del FTP, anque con menos privilexos qu'un usuariu normal. De normal solo vas poder lleer y copiar los ficheros que sían públicos, asina indicaos pol alministrador del sirvidor al que queramos coneutar.

De normal, utilízase un sirvidor FTP anónimu pa depositar grandes ficheros que nun tienen utilidad si nun son tresferíos a la máquina del usuariu, como por casu programes, y acútense los sirvidores de páxina web (HTTP) p'almacenar información testual destinada a la llectura en llinia.

 Accesu d'usuariu 
Si deseyar tener privilexos d'accesu a cualesquier parte del sistema de ficheros del sirvidor FTP, de cambéu de ficheros esistentes, y de posibilidá de xubir los nuesos propios ficheros, xeneralmente suelse realizar por aciu una cuenta d'usuariu. Nel sirvidor guarda la información de les distintes cuentes d'usuariu que pueden aportar a él, de manera que pa empecipiar una sesión FTP tenemos d'introducir una autentificación (n'inglés: login) y una contraseña (n'inglés: password) que nos identifica unívocamente.

 Veceru FTP basáu en Web 
Un «veceru FTP basáu en Web» nun ye más qu'un veceru FTP al cual podemos aportar al traviés del nuesu navegador web ensin necesidá de tener otra aplicación pa ello. L'usuariu coneutar por aciu HTTP a un sirvidor web, y el sirvidor web coneutar por aciu FTP al sirvidor de ficheros. El sirvidor web actúa d'intermediariu faciendo pasar la información dende'l sirvidor FTP nos puertos 20 y 21 escontra'l puertu 80 HTTP que ve l'usuariu.

Siempres hai momentos en qu'atopamos fora de casa, nun llevamos l'ordenador portátil enriba y precisamos realizar dalguna xera urxente dende un ordenador d'accesu públicu, d'un amigu, del trabayu, la universidá, etc. Lo más común ye que nun tean instalaes les aplicaciones que precisamos y en munchos casos hasta escarecemos de los permisos necesarios pa realizar la so instalación. Otres vegaes tamos detrás d'un proxy o cortafueos que nun nos dexa aportar a sirvidores FTP esternos.

Al disponer d'un veceru FTP basáu en Web podemos aportar al sirvidor FTP remotu como si tuviéramos realizando cualesquier otru tipu de navegación web. Al traviés d'un veceru FTP basáu en Web vas poder, crear, copiar, camudar el nome de y esaniciar ficheros y direutorios. Camudar permisos, editar, ver, xubir y baxar ficheros, según cualesquier otra función del protocolu FTP que'l sirvidor FTP remotu dexe.

 Accesu de convidáu 
L'accesu ensin restricciones al sirvidor qu'apurren les cuentes d'usuariu implica problemes de seguridá, lo que dio llugar a un tercer tipu d'accesu FTP denomináu convidáu (guest), que puede contemplase como un amiestu de los dos anteriores.

La idea d'esti mecanismu ye la siguiente: tratar de dexar que cada usuariu conecte a la máquina por aciu la so login y la so password, pero evitando que tenga accesu a partes del sistema de ficheros que nun precisa pa realizar el so trabayu, d'esta forma va aportar a una redolada acutada, daqué bien similar a lo qu'asocede nos accesos anónimos, pero con más privilexos.

 Exemplos de Veceros FTPs 
Ente los varios veceros FTP qu'esisten, pueden mentase los siguientes:
 Free FTP Upload Manager
 F->IT
 net2ftp
 Web FTP.co.uk
 Web-Ftp
 Jambai FTP
 ftp4net
 PHP FTP Client
 Asuk PHP FTP
 Weeble File Manager
 FileZilla

 Moos de conexón del veceru FTP 
FTP almite dos moos de conexón del veceru. Esteos moos denómense activu (o Estándar, o PORT, por cuenta de que'l veceru unvia comandos triba PORT al sirvidor pola canal de control al establecer la conexón) y pasivu (o PASV, porque nesti casu unvia comandos triba PASV). Tantu nel mou Activu como nel mou Pasivu, el veceru establez una conexón col sirvidor por aciu el puertu 21, qu'establez la canal de control.

 Mou activu 
thumb|420px|Mou activu.
En mou Activu, el sirvidor siempres crea la canal de datos nel so puertu 20, ente que nel llau del veceru la canal de datos acomuñar a un puertu aleatoriu mayor que'l 1024. Pa ello, el veceru manda un comandu PORT al sirvidor pola canal de control indicándo-y esi númberu de puertu, de manera que'l sirvidor pueda abrir una conexón de datos por onde se van tresferir los ficheros y los enumeraos, nel puertu especificáu.

Lo anterior tien un grave problema de seguridá, y ye que la máquina vecera ten de tar dispuesta a aceptar cualquier conexón d'entrada nun puertu cimeru al 1024, colos problemes qu'ello implica si tenemos l'equipu conectáu a una rede insegura como Internet. Ello ye que los cortafueos que s'instalen nel equipu pa evitar ataques de xuru van refugar eses conexones aleatories. Pa solucionar esto desenvolvióse'l mou pasivu.

 Mou pasiva 
thumb|420px|Mou pasivu.
Cuando'l veceru unvia un comandu PASV sobre la canal de control, el sirvidor FTP indíca-y pela canal de control, el puertu (mayor a 1024 del sirvidor. Exemplu:2040) al que tien de conectase'l veceru. El veceru empecipia una conexón dende'l puertu siguiente al puertu de control (Exemplu: 1036) escontra'l puertu del sirvidor especificáu enantes (Exemplu: 2040).

Antes de cada nueva tresferencia tantu nel mou Activu como nel Pasivu, el veceru tien d'unviar otra vegada un comandu de control (PORT o PASV, según el mou nel que coneutara), y el sirvidor va recibir esa conexón de datos nun nuevu puertu (aleatoriu si ye en mou pasivu o pol puertu 20 si ye en mou activu).

 Tipos de tresferencia de ficheros en FTP 
Nel protocolu FTP esisten 2 tipos de tresferencia en ASCII y en binarios. Ye importante conocer cómo tenemos de tresportar un ficheru a lo llargo de la rede, si nun utilizamos les opciones fayadices podemos destruyir la información del ficheru. Por eso, al executar l'aplicación FTP, tenemos d'alcordanos d'utilizar unu d'estos comandos (o poner la correspondiente opción nun programa con interfaz gráfica):

 Tipu ASCII
Fayadizu pa tresferir ficheros que solo contengan calteres imprimibles (ficheros ASCII, non ficheros resultantes d'un procesador de testu), por casu páxina HTML, pero non les imáxenes que puedan contener. Tresfórmense dellos símbolos de control pa caltenelos compatibles ente distintos sistemes, por casu, si'l ficheru ta agospiáu sobre un sirvidor Linux, el saltu de llinia pa los ficheros de testu ye "\n" (byte 10 en decimal). Si'l veceru ye un sistema Mac, el saltu de llinia ye "\r" (byte 13 en decimal), esti mou camuda estos símbolos de control por que el ficheru sía legible en dambos llaos, al igual que si s'unvia a un sistema Windows, el saltu de llinia ye "\r\n" (dos bytes, 13 y 10). Si usa esti mou en ficheros que nun son de testu ensin formatu, nel casu d'intercambiase ente distintos sistemes, esi archivu va quedar corruptu.

 Tipu Binariu
Esti tipu ye usáu cuando se trata de ficheros comprimíos, executables pa PC, imáxenes, archivos d'audio, ente otros.

Exemplos de cómo tresferir dellos tipos de ficheru dependiendo de la so estensión:

 Estensión de ficheruTipu de tresferencia txt (testu) ascii html (páxina WEB) ascii doc (documentu) binariu ps (PostScript) ascii hqx (comprimíu) ascii Z (comprimíu) binariu ZIP (comprimíu) binariu ZOO (comprimíu) binariu Sit (comprimíu) binariu pit (comprimíu) binariu shar (comprimíu) binariu uu (comprimíu) binariu ARC (comprimíu) binariu tar (empaquetáu) binariu

Na rede esisten diverses soluciones de software que desenvuelve esti tipu de teunoloxía, los más conocíos, son Filezilla (software llibre) y CuteFTP (shareware).

 Comandos FTP 
 Comandu y argumentos Aición que realiza open sirvidor Empecipia una conexón con un sirvidor FTP. close o disconnect Remata una conexón FTP ensin cerrar el programa veceru. bye o quit Remata una conexón FTP y la sesión de trabayu col programa veceru. cd direutoriu Camuda'l direutoriu de trabayu nel sirvidor. delete ficheru Borra un ficheru nel sirvidor mdelete patrón Borra múltiples ficheros basáu nun patrón que s'aplica al nome. dir Amuesa'l conteníu del direutoriu nel que tamos nel sirvidor. get ficheru Llogra un ficheru noop No Operation Comunícase-y al sirvidor que'l veceru ta en mou de non operación, el sirvidor usualmente respuende con un «ZZZ» y enfresca el contador de tiempu inactivu del usuariu. mget ficheros Llogra múltiples ficheros hash Activa la impresión de caráuteres a midida que se tresfieren ficheros, a manera de barra de progresu. lcd direutoriu Camuda'l direutoriu de trabayu local. ls Amuesa'l conteníu del direutoriu nel sirvidor. prompt Activa/desactiva la confirmación per parte del usuariu de la execución de comandos. Por casu al borrar múltiples ficheros. put ficheru Unvia un ficheru al direutoriu activu del sirvidor. mput ficheros Unvia múltiples ficheros. pwd Amuesa'l direutoriu activu nel sirvidor. rename ficheru Camuda'l nome a un ficheru nel sirvidor. rmdir direutoriu Esanicia un direutoriu nel sirvidor si esi direutoriu ta vacíu. status Amuesa l'estáu actual de la conexón. bin o binary Activa'l mou de tresferencia binariu. ascii Activa'l mou de tresferencia de testu ASCII. ! Dexa salir a llinia de comandos temporalmente ensin cortar la conexón. Pa volver, teclear exit na llinia de comandos. ? nome de comandu Amuesa la información relativa al comandu. ? o help Amuesa una llista de los comandos disponibles. append nome del ficheru Continua una descarga que se cortó primeramente. bell Activa/desactiva la reproducción d'un soníu cuando terminó cualquier procesu de tresferencia de ficheros. glob Activa/desactiva la visualización de nomes llargos del nuesu ordenador. literal Con esta orde pueden executase comandos del sirvidor de forma remota. Pa saber los disponibles utilízase: literal help. mkdir Crea'l direutoriu indicáu de forma remota. quote Fai la mesma función que literal. send nome del ficheru Unvia'l ficheru indicáu al direutoriu activu del sirvidor. user Pa camudar el nuesu nome d'usuariu y contraseña ensin necesidá de salir de la sesión ftp.

 Códigos de respuesta de FTP 
De siguío amuésase un resume de la respuesta de los códigos FTP que pue devolver un sirvidor FTP. Estos códigos hanse normalizáu en RFC 959 pola IETF. El códigu de respuesta ye un valor de tres díxitos. El primer díxitu utilizar pa indicar una de trés posibles resultaos-l'ésitu, el fracasu o pa indicar un error o una respuesta incompleta:

 2yz - rempuesta Éxitu
 4yz o 5yz - Nun hai respuesta
 1yz o 3yz - Un error o una respuesta incompleta

El segundu díxitu define la clas d'error:

 x0z - Sintaxis. Estes respuestes referir a errores de sintaxis.
 x1z - Información. Les respuestes a les solicitúes d'información.
 x2z - Conexones. Respuestes en referencia al control y les conexones de datos.
 x3z - Autenticación y contabilidá. Respuestes pal procesu d'entamu de sesión y los procedimientos contables.
 x4z - Non definíu.
 x5z - Sistema de ficheros. Estes respuestes tresmiten códigos d'estáu del sistema de ficheros del sirvidor.

El tercer díxitu del códigu de respuesta utilizar p'apurrir detalles adicionales pa caúna de les categoríes definíes pol segundu díxitu.

 Conexón a un sirvidor FTP protexíu dende navegador 
P'aniciar una sesión nun sirvidor FTP que rique una contraseña teclee l'URL d'esta forma:

ftp://<usuariu>:<contraseña>@<sirvidor ftp>/<url-ruta>

Onde <usuariu> ye'l nome d'usuariu, <sirvidor ftp> ye'l sirvidor FTP, <contraseña> ye la contraseña d'accesu, y <url-ruta> ye'l direutoriu onde empecipiamos sesión.

Exemplu: ftp://alumnu:alumnopass@ftp.example.com/public

 Ver tamién 
 Archie
 FTPS
 TFTP
 OFTP
 File eXchange Protocol
 PTP, Picture Transfer Protocol
 MTP, Media Transfer Protocol (una estensión del PTP)
 SSH File Transfer Protocol
 Network File System
 Sistema de ficheros
 Sistema de ficheros distribuyíu

 Sirvidores FTP 
 Sirvidor FTP (Llista)
 FileZilla Server (Windows)
 Pure-FTPd (Unix)
 VsFTPd (Unix)
 ProFTPd (Unix)

 Enllaces esternos 
 RFC 959 – File Transfer Protocol
 RFC 1579 – Firewall Friendly FTP
 RFC 2228 – FTP Security Extensions
 RFC 2428 – FTP Extensions for IPv6 and NATs
 RFC 2640 – Internationalization of the File Transfer Protocol

Protocolu *
Raw FTP command list
 FTP Sequence Diagram 
 FTP Server Test (Online)

 Referencies 

Categoría:FTP
Categoría:Protocolos de nivel d'aplicación
Categoría:Historia d'Internet
Categoría:Wikipedia:Artículos con plantía Redirixe equí a páxines que nun esisten