Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

File Transfer Protocol

Un article de Wikipédia, l'encyclopédie libre.

Page d’aide sur l’homonymie

Pour les articles homonymes, voirFTP.

File Transfer Protocol

Informations
FonctionPartage de fichiers
SigleFTP
Date de création16 avril 1971
Port21 (écoute)
20 (données par défaut)
RFCRFC 3659[1]

modifier

File Transfer Protocol (protocole detransfert de fichier), ouFTP, est unprotocole de communication destiné aupartage de fichiers sur unréseauTCP/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 unsite webhébergé chez un tiers.

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

FTP obéit à un modèleclient-serveur, c'est-à-dire qu'une des deux parties, leclient, 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 publique une arborescence de fichiers similaire à unsystème de fichiersUNIX. Pour accéder à un serveur FTP, on utilise un logiciel client FTP (possédant uneinterface graphique ou enligne de commande). Il y a plusieurs décennies, les clients FTP n’étaient que des applications d’interface de ligne de commande (CLI). Ils disposent désormais de leurs propres interfaces faciles à utiliser et intuitives pour simplifier et faciliter le transfert de fichiers, qui sont disponibles sous forme d’applications autonomes, de clients web et de simples extensions denavigateur web.

FTP, qui appartient à lacouche application dumodèle OSI et dumodèle ARPA, utilise une connexionTCP.

Par convention, deuxports sont attribués (well known ports) pour les connexions FTP : le port 21 pour les commandes et le port 20 pour les données. Pour le FTPS ditimplicite, les ports conventionnels sont le 990 pour les commandes et le 989 pour les données.

Ce protocole peut fonctionner avecIPv4 etIPv6.

Histoire

[modifier |modifier le code]

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

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

Interopérabilité

[modifier |modifier le code]

Le protocole FTP ne permet pas toujours d'assurer l'interopérabilité entre plates-formes différentes et régions différentes par une gestion adéquate de l'encodage des noms de fichiers. Seuls les logiciels serveur et client respectant le standardRFC 2640[7] en donnent la garantie[8], grâce à l'utilisation de l'encodageUTF-8 et accessoirement d'une nouvelle commande LANG permettant de choisir la langue des messages retournés par le serveur lors de lasession FTP. L'encodage UTF-8 permet d'encoder les noms des fichiers provenant de n'importe quel pays, bien qu'un encodage plus spécifique puisse toujours être utilisé localement par le serveur, la conversion vers l'UTF-8 restant à sa discrétion.

Utilisation

[modifier |modifier le code]

Pour accéder à un serveur FTP, on utilise un logiciel (client FTP). Ces logiciels existent avec ligne de commande ou avec une interface graphique. Le standard FTP est si répandu que ces logiciels sont à présent inclus avec les dernières distributions Windows & Linux.

L'utilisation en ligne de commande, sous Windows comme sous Linux, se fait généralement au moyen de la commandeftp adresse_du_serveur saisie dans une console. (ici, ftp est le nom du logiciel, et le paramètre le nom du serveur)

Dans les interfaces graphiques, comme les navigateurs Web, la forme usuelle est utilisée, à savoir :ftp://adresse_du_serveur. Ici, ftp est le nom du protocole, suivi du nom du serveur.

SousWindows (Vista et7), un logiciel client FTP est installé sur la machine, car inclus dans Windows. On peut y accéder à travers le dossierOrdinateur puis la commandeAjouter un emplacement réseau.

Le support de FTP est déprécié surGoogle Chrome depuis[9] et surMozilla Firefox depuis.

Implémentations

[modifier |modifier le code]

Logiciels clients de FTP

[modifier |modifier le code]

Logiciels libres

[modifier |modifier le code]
Article détaillé :Logiciel libre.

Logiciels propriétaires

[modifier |modifier le code]
Article détaillé :Logiciel propriétaire.
  • CrossFTP (en) (pour Java SE)
  • CuteFTP (pour Mac OS X et Windows)
  • Fetch (en) (pour Mac OS X)
  • FTP Rush (Windows 2000, Windows XP (32/64 bits), Windows 2003 (32/64 bits), Windows Vista (32/64 bits), Windows 7(32/64 bits)FTP Rush prend en charge les protocoles FTP, FXP, SFTP et TFTP. C'est un partagiciel.
  • FTP Voyager (en) (pour Windows)
  • Steed (en) (pour Windows)
  • Transmit (en) (pour Mac OS X)
  • WebDrive (Windows 7, Windows 10, Windows 2008, Windows 2012, Windows 2016, Mac OS X) WebDrive prend en charge les protocoles FTP, SFTP, WebDAV et S3.
  • Yummy FTP (en) (pour Mac OS X)

Logiciels serveurs de FTP

[modifier |modifier le code]

Logiciels serveurs de FTP[10] :

Logiciels libres

[modifier |modifier le code]
Article détaillé :Logiciel libre.

Logiciels propriétaires

[modifier |modifier le code]
Article détaillé :Logiciel propriétaire.
  • Titan FTP ServerTitan FTP Server prend en charge les protocoles FTP, SFTP et SSL
  • AXWAY Gateway

Le protocole

[modifier |modifier le code]

Le protocole utilise deux types de connexions TCP :

  • Une connexion decontrôle initialisée par le client, vers le serveur (port 21 en général), pour transmettre les commandes concernant les fichiers (suppression de fichiers, renommage, liste des fichiers…).
  • Une connexion dedonné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

[modifier |modifier le code]

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 passerelleNAT. Étant donné la façon dont fonctionne leNAT, le serveur FTP lance la connexion de données en se connectant à l'adresse externe de la passerelleNAT sur le port choisi. Certaines passerellesNAT 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. La plage de port est variable de 1024 à 65535. 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ème avec des clients derrière une passerelleNAT. 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

[modifier |modifier le code]

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

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,0D0A en hexadécimal, ou le caractère 13 et le caractère 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 sont convenus, 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 contrôle réutilise le protocole de contrôle du terminal NVT introduite au départ pourTelnet, sous une forme simplifiée. Cela signifie en particulier que le code de code décimal 255 sert à introduire des séquences de contrôle de l'affichage.

La connexion de données

[modifier |modifier le code]
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 commandePASV 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).

h1 àh4 sont 4 nombres entiers entre 0 et 255 représentant l'adresse IP du serveur, etp1 etp2 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 commandePORT :

PORTh1,h2,h3,h4,p1,p2

Si tout se passe bien, le serveur répond :

200 Command okay.

Mode de transfert

[modifier |modifier le code]

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 modeASCII : 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 lecaractè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 finalement 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 en mode binaire (en utilisant généralement la commande BIN) avant le transfert, afin de le conserver intact.

Transfert entre deux serveurs

[modifier |modifier le code]
Article détaillé :File eXchange Protocol.

La spécification du protocole FTP précise qu'il est possible d'effectuer un transfert de fichiers directement entre deux serveurs FTP.

Notes et références

[modifier |modifier le code]
  1. (en) « Extensions to FTP »,Request for commentsno 3659,
  2. (en) « A FILE TRANSFER PROTOCOL »,Request for commentsno 114,
  3. (en) « FILE TRANSFER PROTOCOL »,Request for commentsno 765,
  4. (en) « FILE TRANSFER PROTOCOL (FTP) »,Request for commentsno 959,
  5. (en) « FTP Security Extensions »,Request for commentsno 2228,
  6. (en) « FTP Extensions for IPv6 and NATs »,Request for commentsno 2428,
  7. (en) « Internationalization of the File Transfer Protocol »,Request for commentsno 2640,
  8. http://www.linuxfromscratch.org/blfs/view/cvs/introduction/locale-issues.html#locale-wrong-filename-encoding Beyond Linux® From Scratch - Version 2012-08-12 - Chapter 2. Important Information - Going Beyond BLFS - Locale Related Issues.
  9. (en) « Deprecations and removals in Chrome 87 | Web », surGoogle Developers(consulté le)
  10. « 4 Popular FTP Servers Reviewed », surTechWench / All Things Tech,(consulté le).

Voir aussi

[modifier |modifier le code]

Articles connexes

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]
v ·m
Protocoles de transfert de fichier
Transfert de fichier
v ·m
7.Application
6.Présentation
5.Session
4.Transport
3.Réseau
2.Liaison
1.Physique
v ·m
Officiel
Non-officiel
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=File_Transfer_Protocol&oldid=229406508 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp