File Transfer Protocol
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.
Pile de protocoles
Application
Présentation
Session
Transport
Réseau
Liaison de données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.)
Physique (La physique (du grec φυσις, la nature) est étymologiquement la « science de la nature ». Dans un...)
Modèle OSI

Le File Transfer Protocol (Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication dédié à l'échange informatique de fichiers sur un réseau TCP/IP. Il permet, depuis...) (protocole de transfert de fichiers), ou FTP, est un protocole de communication (Dans les réseaux informatiques et les télécommunications, un protocole de communication est une spécification de plusieurs règles pour un type de communication particulier.) dédié à l'échange informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement automatique de l'information par des machines telles que les...) de fichiers sur un réseau (Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet (un réseau est un « petit rets », c'est-à-dire un petit filet), on appelle...) TCP/IP. Il permet, depuis un ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits électroniques permettant de manipuler des données sous forme...), de copier des fichiers depuis ou vers un autre ordinateur du réseau, d'administrer un site web (Un site Web est un ensemble de pages Web hyperliées entre elles et mises en ligne à une adresse Web. On dit aussi site Internet par métonymie, le World Wide Web reposant sur Internet.), ou encore de supprimer ou modifier des fichiers sur cet ordinateur.

La variante sécurisée de FTP avec les protocoles SSL ou TLS s'appelle FTPS.

FTP obéit à un modèle client-serveur (L'architecture client/serveur désigne un mode de communication entre plusieurs ordinateurs d'un réseau qui distingue un ou plusieurs postes clients du serveur : chaque logiciel client peut envoyer des...), 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 (En informatique, un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un appareil informatique. Y sont inclus les instructions de traitement, regroupées sous forme de programmes, des...) lui-même appelé serveur FTP, qui rend publique 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 (Une interface est une zone, réelle ou virtuelle qui sépare deux éléments. L’interface désigne ainsi ce que chaque élément a besoin de connaître de l’autre pour pouvoir fonctionner correctement.) graphique ou en ligne de commande).

Le protocole, qui appartient à la couche session du modèle OSI et à la couche application du modèle ARPA, utilise une connexion TCP. Il peut s'utiliser de deux façons différentes :

  1. 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. Ce mode est donc moins sécurisé que le FTP passif pour le client. De plus il peut s'avérer problématique pour les utilisateurs essayant d'accéder à des serveurs FTP lorsqu'ils sont derrière une passerelle NAT. Vu la façon dont fonctionne le NAT, le serveur FTP initie la connexion de données en se connectant à l'adresse (Les adresses forment une notion importante en communication, elles permettent à une entité de s'adresser à une autre parmi un ensemble d'entités....) externe de la passerelle NAT sur le port choisi. La passerelle NAT n'ayant pas de correspondance (La correspondance est un échange de courrier généralement prolongé sur une longue période. Le terme désigne des échanges de courrier personnels plutôt qu'administratifs.) pour le paquet reçu dans sa table d'état le paquet sera ignoré et ne sera pas délivré au client.
  2. 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. Dans le cas de l'existence d'un pare-feu devant le serveur FTP 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. Dans le cas des clients FTP sur un réseau local (Un réseau local, souvent désigné par l'acronyme anglais LAN de Local Area Network, est un réseau informatique à une échelle géographique...), ce mode est beaucoup plus sécurisé que le FTP en mode actif, car le pare-feu ne devra laisser passer (Le genre Passer a été créé par le zoologiste français Mathurin Jacques Brisson (1723-1806) en 1760.) que les flux (Le mot flux (du latin fluxus, écoulement) désigne en général un ensemble d'éléments (informations / données, énergie, matière, ...) évoluant dans un sens...) sortant vers internet (Internet est le réseau informatique mondial qui rend accessibles au public des services variés comme le courrier électronique, la...) pour permettre aux clients d'échanger des données avec le serveur. Il fonctionne donc sans problèmes avec une passerelle NAT.

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 (L'Internet Protocol version 4 ou IPv4 est la première version d'IP à avoir été largement déployée, et forme encore la base (en 2007) de l'Internet. Elle est décrite dans la RFC numéro 791 (RFC 791).) et IPv6 (IPv6 (Internet Protocol version 6) est un protocole réseau sans connexion de la couche 3 du modèle OSI.).

Utilisation

Pour accéder à un serveur FTP, on utilise un client ftp, en ligne de commande (Commande : terme utilisé dans de nombreux domaines, généralement il désigne un ordre ou un souhait impératif.) ou avec une interface graphique.

Les utilisateurs de GNU-Linux ou d'un Unix peuvent consulter une documentation (la plupart du temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) 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 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é.

Logiciels de FTP

Il existe de nombreux clients en ligne de commande, comme par exemple ftp, Wget, Curl (Le logiciel cURL est une interface en ligne de commande destinée à récupérer le contenu d'une ressource accessible par un réseau informatique. La ressource est désignée à l'aide d'une URL et doit être d'un type...) en téléchargement (En informatique, le téléchargement (en anglais download) est l’opération de transmission d’informations — programmes, données, images, sons, vidéos — d’un ordinateur...) ou Wput pour déposer des fichiers.

La plupart des logiciels possèdent désormais une interface graphique permettant de mettre en place un serveur FTP ou de se connecter à celui-ci pour y copier des données (client FTP). Certains logiciels tels que CuteFTP (Windows) sont payants ; d'autres, tels que FileZilla (Windows), Cyberduck (Cyberduck est un client FTP et SFTP pour la plateforme Mac OS X développé par David Kocher et distribué selon les termes de la licence GNU GPL.) (MacOSX) ou gftp (Linux), tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) aussi pratiques et efficaces, sont gratuits et libres. On peut également citer FTP explorer (Shareware pour Windows), aussi pratique à utiliser que l'explorateur de fichiers, ou encore FireFtp (FireFTP est une extension libre pour Firefox qui remplace un client FTP. Une fois installé il est accessible depuis le menu Outils de Firefox.), plugin (En informatique, un plugin ou plug-in (aussi nommé module d'extension, greffon ou plugiciel au Québec) est un logiciel qui complète un logiciel hôte pour lui apporter de nouvelles...) de Firefox. Pour des utilisations plus poussées ( commandes spéciales etc ... ) un logiciel tels que FlashFXP ( payant ) est d'une aide précieuse.

Diagramme (Un diagramme est une représentation visuelle simplifiée et structurée des concepts, des idées, des constructions, des relations, des données statistiques, de l'anatomie etc. employé dans tous les aspects des...) des flux

Connexion Data en mode Actif :

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).

Connexion de contrôle

Cette connexion utilise le protocole 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, ou 0D0A en hexadécimal).

Par exemple, la commande suivante demande le téléchargement du fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par exemple : fichier des patients d'un médecin, ...) "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.

A 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 (L’about est un terme de charpenterie désignant l’extrémité façonnée d’une pièce de bois.) to open data connection. 
 

Selon ce que le client et le serveur ont convenu, l'un des deux écoute (Sur un voilier, une écoute est un cordage servant à régler l'angle de la voile par rapport à l'axe longitudinal du voilier et en conséquence l'angle d'incidence du vent sur la...) 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. 
 

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 (en général, le port 20). Le port écouté par le serveur est indiqué dans la réponse :

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

h1 à h4 sont 4 nombres entiers entre 0 et 255 représentant l'adresse IP (Une adresse IP (avec IP pour Internet Protocol) est le numéro qui identifie chaque ordinateur connecté à Internet, ou plus généralement et précisément, l'interface avec le réseau de tout...) 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, 2 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 sur un système UNIX , et par la paire (On dit qu'un ensemble E est une paire lorsqu'il est formé de deux éléments distincts a et b, et il s'écrit alors :) sous Windows (Windows est une gamme de systèmes d'exploitation produite par Microsoft, principalement destinées aux machines compatibles PC. C'est le remplaçant de MS-DOS. Depuis les années 1990, avec la sortie de...). Une machine Windows recevant un fichier texte par FTP récupère donc au final un fichier avec des en mode ASCII et des 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.

Pour cela, le client établit une connexion de contrôle par serveur. Au moment d'établir la connexion de données, le client demande à un serveur d'attendre la connexion (commande PASV), et capture (Une capture, dans le domaine de l'astronautique, est un processus par lequel un objet céleste, qui passe au voisinage d'un astre, est retenu dans la gravisphère de...) l'adresse IP et le port TCP écouté. Ces deux paramètres sont envoyés à l'autre serveur en utilisant la commande PORT. A partir de là, la connexion de données est établie entre les deux serveurs.

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

On appelle couramment ce protocole le FXP.

Variantes

  • Trivial File Transfert Protocol
  • Secure file transfer protocol
  • File Transfer Protocol over SSL
Page générée en 0.281 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique