File Transfer Protocol

ÔĽŅ
File Transfer Protocol
Page d'aide sur l'homonymie Pour les articles homonymes, voir FTP.
File Transfer Protocol
Fonction Transfert de fichier
Sigle FTP
Port 21 (écoute)
20 (données par défaut)
RFC RFC 3659[1]
Pile de protocoles
7.  Application
6.  Pr√©sentation
5.  Session
4.  Transport
3.  R√©seau
2.  Liaison
1.  Physique
Modèle Internet
Modèle OSI

File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l'échange informatique de fichiers sur un réseau TCP/IP. Il permet, depuis un ordinateur, de copier des fichiers vers un autre ordinateur du réseau, ou encore de supprimer ou de modifier des fichiers sur cet ordinateur. Ce mécanisme de copie est souvent utilisé pour alimenter un site web hébergé chez un tiers.

La variante de FTP protégée par les protocoles SSL ou TLS (SSL étant le prédécesseur de TLS) s'appelle FTPS.

FTP obéit à un modèle client-serveur, c'est-à-dire qu'une des deux parties, le client, envoie des requêtes auxquelles réagit l'autre, appelé serveur. En pratique, le serveur est un ordinateur sur lequel fonctionne un logiciel lui-même appelé serveur FTP, qui rend public une arborescence de fichiers similaire à un système de fichiers UNIX. Pour accéder à un serveur FTP, on utilise un logiciel client FTP (possédant une interface graphique ou en ligne de commande).

Le protocole, qui appartient à la couche application du modèle OSI et à la couche application du modèle ARPA, utilise une connexion TCP.

Deux ports sont standardis√©s (well known ports) pour les connexions FTP : le port 21 pour les commandes et le port 20 pour les donn√©es.

Ce protocole peut fonctionner avec IPv4 et IPv6.

Sommaire

Histoire

FTP est issu de la RFC 114[2] créée le 16 avril 1971. Cette spécification fut remplacée par la RFC 765[3] en juin 1980. Elle fut elle-même rendue obsolète par la RFC 959[4] en octobre 1985, version finale de la spécification.

Plusieurs RFC viennent compléter cette spécification, comme la RFC 2228[5] de juin 1997 pour l'ajout d'extensions de sécurité ou la RFC 2428[6] de septembre 1998 qui ajoute la prise en charge du protocole IPv6 et définit un nouveau type de mode passif.

Utilisation

Pour accéder à un serveur FTP, on utilise un client FTP, en ligne de commande ou avec une interface graphique.

Les utilisateurs de Linux ou d'un autre UNIX peuvent consulter une documentation (la plupart du temps install√©e par d√©faut) en tapant ¬ę man ftp ¬Ľ.

La plupart des navigateurs r√©cents autorisent les connexions FTP en utilisant une URL de type :

ftp://nom_d'utilisateur:mot_de_passe@nom_ou_adresse_du_serveur:port_ftp
En informatique anglophone on utilise login ou username pour utilisateur et passwd ou password pour mot de passe.

Par sécurité, il est conseillé de ne pas préciser le mot de passe, le serveur le demandera. Cela évite de le laisser visible dans l'historique du navigateur, mais ne change rien au fait qu'il soit transmis en clair à travers le réseau.

La partie port_ftp est optionnelle. S'il est omis le port par défaut (21) sera utilisé.

Implémentations

Logiciels clients de FTP

Logiciels libres :

  • ftp (en ligne de commande sous Unix/Linux)
  • Cyberduck (pour Mac OS X et Windows)
  • FileZilla (pour Linux, Mac OS X et Windows)
  • FireFTP (extension pour Firefox)
  • gFTP (pour GNOME)
  • NcFTP (Windows et syst√®mes de type UNIX)

Logiciels propriétaires:

Logiciels serveurs de FTP

Logiciels libres :

Le protocole

Le protocole utilise deux types de connexions TCP :

  • Une connexion de contr√īle initialis√©e par le client, vers le serveur (port 21 en g√©n√©ral), pour transmettre les commandes de fichiers (transfert, suppression de fichiers, renommage, liste des fichiers‚Ķ).
  • Une connexion de donn√©es initialis√©e par le client ou le serveur pour transf√©rer les donn√©es requises (contenu des fichiers, liste de fichiers).

√Čtablissement des connexions

FTP peut s'utiliser de deux façons différentes.

Mode actif : √Čtablissement des connexions TCP en mode actif

En mode actif, c'est le client FTP qui d√©termine le port de connexion √† utiliser pour permettre le transfert des donn√©es. Ainsi, pour que l'√©change des donn√©es puisse se faire, le serveur FTP initialisera la connexion de son port de donn√©es (port 20) vers le port sp√©cifi√© par le client. Le client devra alors configurer son pare-feu pour autoriser les nouvelles connexions entrantes afin que l'√©change des donn√©es se fasse. De plus, il peut s'av√©rer probl√©matique pour les utilisateurs essayant d'acc√©der √† des serveurs FTP lorsque ces utilisateurs sont derri√®re une passerelle NAT. √Čtant donn√©e la fa√ßon dont fonctionne le NAT, le serveur FTP lance la connexion de donn√©es en se connectant √† l'adresse externe de la passerelle NAT sur le port choisi. Certaines passerelles NAT n'ayant pas de correspondance pour le paquet re√ßu dans la table d'√©tat, le paquet sera ignor√© et ne sera pas d√©livr√© au client.

Mode passif : √Čtablissement des connexions TCP en mode passif

En mode passif, le serveur FTP d√©termine lui-m√™me le port de connexion √† utiliser pour permettre le transfert des donn√©es (data connexion) et le communique au client. En cas de pr√©sence d'un pare-feu devant le serveur, celui-ci devra √™tre configur√© pour autoriser la connexion de donn√©es. L'avantage de ce mode est que le serveur FTP n'initialise aucune connexion. Ce mode fonctionne sans probl√®mes avec des clients derri√®re une passerelle NAT. Dans les nouvelles impl√©mentations, le client initialise et communique directement par le port 21 du serveur ; cela permet de simplifier les configurations des pare-feu serveur.

La connexion de contr√īle

Cette connexion fonctionne en mode texte et est donc aisée à simuler avec Telnet.

Le client envoie une commande sous la forme d'une ligne de texte terminée par un retour à la ligne (CR suivi de LF, soit \r\n,0A0D en hexadécimal, ou le caractère 13 et le caractère 10 [En QuickBasic: CHR$(13)+CHR$(10)] ).

Par exemple, la commande suivante demande le t√©l√©chargement du fichier "fichier.txt" :

RETR fichier.txt

N.B.: Les commandes telles que GET ou PUT ne sont pas reconnues dans le protocole FTP, mais souvent utilisées par les logiciels de client FTP.

À la suite de l'envoi de la commande, le client reçoit une ou plusieurs réponses du serveur. Chaque réponse est précédée d'un code décimal permettant au client FTP de traiter la réponse qui peut comporter une ou plusieurs lignes de texte.

Pour l'exemple pr√©c√©dent, si le serveur trouve le fichier demand√©, il envoie au client :

150 File status okay; about to open data connection.

Selon ce que le client et le serveur ont convenu, l'un des deux √©coute sur le port TCP convenu, et l'autre s'y connecte pour √©tablir la connexion de donn√©es. Puis le serveur envoie au client le contenu du fichier demand√©, ferme la connexion de donn√©es, et envoie la r√©ponse suivante sur la connexion de contr√īle :

226 Closing data connection.

La connexion de données

La connexion de données est établie pour la durée de transmission de données (contenu de fichiers, ou liste de fichiers). En général, elle est établie pour le transfert de données d'une seule commande, à moins qu'un autre mode de transmission soit sélectionné et supporté par le serveur.

La commande PASV indique au serveur qu'il doit attendre passivement la connexion en √©coutant un port TCP. Le port √©cout√© par le serveur est indiqu√© dans la r√©ponse :

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).

O√Ļ h1 √† h4 sont 4 nombres entiers entre 0 et 255 repr√©sentant l'adresse IP du serveur, et p1 et p2 repr√©sentent le port TCP o√Ļ le serveur attend la connexion, sous la forme de deux entiers entre 0 et 255 (port_TCP = p1 * 256 + p2).

Dans le cas contraire o√Ļ le client attend la connexion sur un port TCP, il indique sous la m√™me forme le port √©cout√© en envoyant la commande PORT :

PORT h1,h2,h3,h4,p1,p2

Si tout se passe bien, le serveur r√©pond :

200 Command okay.

Mode de transfert

Lors du transfert de fichier sur la connexion de donn√©es, deux modes peuvent √™tre utilis√©s :

  • Le mode binaire : le fichier est transmis tel quel.
  • Le mode ASCII : uniquement destin√© aux fichiers texte. Le fichier est examin√© et des transformations apport√©es pour conserver un format correct. Par exemple, la fin de ligne est repr√©sent√©e par le caract√®re <LF> sur un syst√®me UNIX, et par la paire <CR><LF> sous Windows. Une machine Windows recevant un fichier texte par FTP r√©cup√®re donc au final un fichier avec des <CR><LF> en mode ASCII et des <LF> en mode binaire. Ce mode a donc ses avantages, mais peut √™tre source de corruption de fichiers (non texte) pendant le transfert si on utilise un client ancien / en ligne de commande, incapable de s'adapter au type de fichier. Il faut alors basculer de mode (en utilisant g√©n√©ralement la commande BIN) avant le transfert, afin de le conserver intact.

Transfert entre deux serveurs

La spécification du protocole FTP (RFC 959) précise qu'il est possible d'effectuer un transfert de fichiers directement entre deux serveurs FTP. Cette fonctionnalité est peu connue, car non disponible dans les logiciels de client FTP.

On appelle couramment ce protocole le FXP (File eXchange Protocol).

Applications

  • Le FXP permet par exemple de r√©aliser un miroir.
  • Il est beaucoup utilis√© pour diffuser du contenu rapidement, par exemple dans le domaine du warez

Fonctionnement

Le protocole FXP est une technique particulière d'utilisation du protocole FTP.

Par défaut, un serveur FTP est serveur pour les échanges au regard de la signalisation (on vient se connecter à lui) mais paradoxalement client au regard des transferts de données (c'est lui qui vient se connecter pour procéder aux téléchargements montant ou descendant).

Il est cependant possible d'utiliser un serveur FTP en serveur pur (signalisation et données), pour cela, on bascule la session en mode dit "passif". Au moment d'établir la connexion de données, le client demande à un serveur d'attendre la connexion (commande PASV), et capture l'adresse IP et le port TCP écouté. Ces deux paramètres sont envoyés à l'autre serveur en utilisant la commande PORT. À partir de là, la connexion de données est établie entre les deux serveurs.

La possibilité de transférer directement un fichier, entre deux serveurs FTP sans passer par le client, vient notamment du fait que l'on puisse basculer l'un de ces deux serveurs en mode passif alors que l'autre se trouvera par défaut en mode actif.

Le client est informé de la fin du transfert en recevant une réponse positive de chaque serveur.

Prenons le cas d'un transfert de fichier entre le serveur FTP A et le serveur FTP B :

  1. Le client se connecte aux deux serveurs
  2. Le client bascule alors en mode passif l'un des deux serveurs et obtient les coordonnées de connexion (couple IP + port)
  3. Le client fourni au second serveur, qui est encore en mode actif, les coordonnées de connexion du premier serveur

À partir de ce moment-là, pour faire passer un fichier d'un serveur à l'autre, le client n'a plus qu'à informer le serveur destinataire qu'il envoie un fichier puis le serveur expéditeur qu'il souhaite récupérer un fichier donné. Le fichier est alors directement échangé entre les deux serveurs FTP distant.

Il est important de noter que la transmission des données est possible dans les deux sens, du serveur actif vers le passif et vice-versa.

Notes et références

Voir aussi

Liens internes

Liens externes

Logiciels prenant en charge le protocole FXP


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article File Transfer Protocol de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • File Transfer Protocol ‚ÄĒ (FTP) is a network protocol used to transfer data from one computer to another through a network such as the Internet.FTP is a file transfer protocol for exchanging and manipulating files over a TCP computer network. A FTP client may connect to a ‚Ķ   Wikipedia

  • File transfer protocol ‚ÄĒ Pour les articles homonymes, voir FTP. Pile de protocoles 7 ‚ÄĘ Application 6 ‚ÄĘ ‚Ķ   Wikip√©dia en Fran√ßais

  • File Transfer Protocol ‚ÄĒ (FTP) Familia: Familia de protocolos de Internet Funci√≥n: protocolo de transferencia de archivos Puertos: 20/TCP DATA Port 21/TCP Control Port Ubicaci√≥n en la pila de protocolos Aplicaci ‚Ķ   Wikipedia Espa√Īol

  • file transfer protocol ‚ÄĒ (FTP) client server protocol which allows a computer user to transfer files from one computer to another over a network ‚Ķ   English contemporary dictionary

  • file transfer protocol ‚ÄĒ UK }} US }} noun [U] IT ‚Ėļ FTP(Cf. ‚ÜĎFTP) ‚Ķ   Financial and business terms

  • File Transfer Protocol ‚ÄĒ FTP (File Transfer Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Daten√ľbertragung, Dateiverwaltung Port: 20/TCP DATA Port, 21/TCP Control Port FTP im TCP/IP‚ÄĎProtokollstapel: Anwendung FTP ‚Ķ   Deutsch Wikipedia

  • file transfer protocol ‚ÄĒ ftp ftp, FTP FTP([e^]f t[=e]*p[=e] ), n. [acronym from File Transfer Protocol.] (Computers) An acronym for {file transfer protocol}, a standardized protocol used to allow transmission of files between computers; as, send me the file by ftp. It… ‚Ķ   The Collaborative International Dictionary of English

  • file transfer protocol ‚ÄĒ noun protocol that allows users to copy files between their local system and any system they can reach on the network ‚ÄĘ Syn: ‚ÜĎFTP ‚ÄĘ Derivationally related forms: ‚ÜĎFTP (for: ‚ÜĎFTP) ‚ÄĘ Topics: ‚ÜĎcomputer science, ‚ÜĎ ‚Ķ   Useful english dictionary

  • File Transfer Protocol ‚ÄĒ FTP es uno de los diversos protocolos de la red Internet, concretamente significa File Transfer Protocol (Protocolo de Transferencia de Archivos) y es el ideal para transferir grandes bloques de datos por la red. Se precisa de un Servidor de FTP… ‚Ķ   Enciclopedia Universal

  • File Transfer Protocol ‚ÄĒ FTP * * * File Transfer Protocol, ¬† FTP ‚Ķ   Universal-Lexikon


Share the article and excerpts

Direct link
… Do a right-click on the link above
and select ‚ÄúCopy Link‚ÄĚ

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.