Pile de protocoles
| Couche
| Protocoles
|
| Application
| Gopher, Telnet, SSH, FTP, HTTP, HTTPS, NNTP, DNS, SNMP, SMTP, POP3, IMAP, IRC, VoIP, WebDAV, SIMPLE, …
|
|
| Présentation
| Videotex, Unicode, MIME, HTTP/HTML, XML, TDI, ASN.1, XDR, UUCP, NCP, AFP, SSP, SSL, TLS, …
|
|
| Session
| RTSP, H323, SIP, NFS, NetBIOS, CIFS, AppleTalk, …
|
|
| Transport
| TCP, UDP, SCTP, RTP, SPX, TCAP, DCCP, …
|
|
| Réseau
| NetBEUI, IPv4, IPv6, ARP, IPX, BGP, ICMP, OSPF, RIP, IGMP, IS-IS, CLNP, WDS, …
|
|
| Liaison
| Ethernet, Token Ring, LocalTalk, FDDI, X.21, X.25, Frame Relay, BitNet, CAN, ATM, Wi-Fi, …
|
|
| Physique
| CSMA/CD, CSMA/CA, Codage NRZ, Codage Manchester, Codage Miller, RS-232, RS-449, V.21-V.23, V.42-V.90, Câble coaxial, 10Base2, 10BASE5, Paire torsadée, 10BASE-T, 100BASE-TX, ISDN, PDH, SDH, T-carrier, EIA-422, EIA-485, SONET, ADSL, SDSL, VDSL, DSSS, FHSS, IrDA, USB, IEEE 1394, Wireless USB, …
|
|
Le File Transfer Protocol (protocole de transfert de fichiers) ou FTP est dédié à l'échange informatique de fichiers sur un réseau TCP/IP. Il permet, depuis un ordinateur, de copier des fichiers depuis ou vers un autre ordinateur du réseau, d'administrer un site web, ou encore de supprimer ou modifier des fichiers sur cet ordinateur.
La mise en place du protocole FTP date de 1971, date à laquelle un mécanisme de transfert de fichiers (décrit dans la RFC 141) entre les machines du MIT avait été mis au point. De nombreux RFC ont ensuite apporté des améliorations au protocole de base, mais les plus grandes innovations datent de juillet 1973.
Le protocole FTP est actuellement défini par la RFC 959.
Vue d'ensemble
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 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 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 differentes :
- 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 initiera 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 la NAT, le serveur FTP initie la connexion de données en se connectant à l'adresse externe de la passerelle NAT sur le port choisi. La passerelle NAT n'ayant pas de correspondance pour le paquet reçu dans sa table d'état le paquet sera ignoré et ne sera pas délivré au client.
- 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. 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'initie aucune connexion. Dans le cas des clients FTP sur un réseau local, ce mode est beaucoup plus sécurisé que le ftp actif, car le pare-feu ne devra laisser passer que les flux sortant vers internet pour permettre aux clients d'échanger des données avec le serveur.
Deux ports sont standardisés (well known ports) pour les connexions FTP : 21 pour la connexion de commandes et 20 pour la connexion data.
Commandes FTP
Cette section décrit le fonctionnement des commandes FTP d'une façon générale, et ensuite chacune des commandes individuellement.
Fonctionnement
Lors d'une utilisation classique, le client se connecte au serveur, s'identifie, puis travaille sur les répertoires distants. Toute commande envoyée par le client fait de 3 à 4 lettres (en lettres majuscules) suivies éventuellement d'un espace et d'informations. Lorsque le serveur reçoit une requête, il doit automatiquement répondre par un nombre de 3 chiffres suivi d'un espace, puis de texte commentaire. Pour plus d'informations sur les réponses du serveur, voyez la page qui leur est consacrée sur le site Comment ça marche? .
Commandes principales
- USER <login>
- USER : « Utilisateur » - Ouvre une session FTP avec le nom d'utilisateur <login>. En FTP anonyme, taper « anonymous » ou rien du tout (dépend des serveurs FTP).
- PASS <mdp>
- PASS : « Mot de passe » - <mdp> représente le mot de passe de l'utilisateur <login>. En FTP anonyme, taper « anonymous » ou votre adresse électronique.
- CWD <chemin>
- Change Working Directory : « Changer le répertoire de travail » - Change le répertoire de travail. <chemin> doit être le chemin du nouveau répertoire depuis la racine du serveur (Chemin absolu).
- CDUP
- Change Directory UP : « Changer de répertoire vers le haut » - Change le répertoire de travail et l'établit sur le dossier parent.
- PWD
- Print Working Directory : « Imprimer le répertoire courant » - Récupère le chemin sur le serveur du dossier courant.
- LIST
- LIST : « Liste » - Liste les fichiers présents dans le répertoire courant du serveur.
- STAT
- STATus : « Status » : Permet de s'informer sur l'état du serveur. Elle peut servir à connaître l'avancement d'un transfert en cours et accepte en argument un chemin d'accès, elle retourne alors les mêmes informations que LIST mais sur le canal de contrôle.
- HELP ou « ? »
- HELP : « Aide » - Permet de connaître toutes les commandes que le serveur accepte (Informations retournées sur le canal de contrôle).
- DELE <fichier>
- DELEte : « Supprimer » - Supprime le fichier <fichier>, le chemin devant être donné par rapport à la racine du serveur distant.
- RMD <dossier>
- ReMove Directory : « Supprimer répertoire » - Supprime <dossier>, le chemin devant être donné par rapport à la racine du serveur distant.
- RNFR <ancien nom>
- ReName FRom : « Renommé depuis » - 1ère étape pour renommer un fichier.
- RNTO <nouveau nom>
- ReName TO : « Renommé en » - 2ème étape pour renommer un fichier.
- MKD <nom>
- MaKe a new Directory : « Faire un nouveau dossier » - Crée un nouveau répertoire <nom> dans le dossier courant.
- QUIT
- QUIT : « Quitter » - Permet de quitter le serveur.
- GET <fichier>
- GET : « Obtenir » - Récupère <fichier> du répertoire distant courant pour le sauvegarder dans le répertoire local.
- MGET <pattern>
- Multiple GET - Récupère un ensemble de fichiers définis par le <pattern>. Exemple : MGET *.tgz qui défini l'ensemble des fichiers dont l'extension est tgz.
- PUT <fichier>
- PUT : « Mettre » - Envoie <fichier> dans le répertoire courant du serveur.
- MPUT <pattern>
- Multiple PUT - Envoi un ensemble de fichiers définis par le <pattern>. Exemple : MPUT *.tgz qui envoi l'ensemble des fichiers dont l'extension est tgz.
Autres commandes ftp
- ABOR
- ABORt : « Annuler » - Indique au serveur FTP d'abandonner tous les transferts associés à la commande précédente. Si aucune connexion de données n'est ouverte, le serveur FTP ne fait rien, sinon il la ferme. Le canal de contrôle reste toutefois ouvert.
- ACCT <login>
- ACCounT : Compte - Ouvre une session FTP avec le nom d'utilisateur <login>. Si la réponse est 332, il faut envoyer le mot de passe. Si la réponse est 230, la connexion est réussie.
- ALLO
- ALLOcate : « Allouer » - Cette commande demande au serveur de prévoir un espace de stockage suffisant pour contenir le fichier dont le nom est passé en argument.
- APPE <nom>
- APPEnd : - Concaténations des données envoyées dans le fichier portant le nom <nom> s'il existe déjà, sinon dans un nouveau fichier <nom>.
- MODE <lettre>
- Précision du mode de transfert des données (S pour Stream, B pour Block, C pour Compressed).
- NLST
- Name LiST : « Liste des noms » - Retourne la liste des fichiers et des répertoires dans le répertoire distant courant.
- NOOP
- NO OPeration : « Pas d'opérations » - Sert uniquement à obtenir une commande OK du serveur, pour ne pas être déconnecté après un temps d'inactivité trop élevé.
- PASV
- PASsiVe mode - Commande permettant d'indiquer au serveur DTP de se mettre en attente une connexion sur un port spécifique choisi aléatoirement parmi les ports disponibles. La réponse à cette commande est l'adresse IP de la machine et le port.
- PORT i1,i2,i3,i4,p1,p2
- Précise le port (p1*256+p2) et l'adresse ip (i1.i2.i3.i4) auxquels le serveur devra se connecter pour le transfert suivant.
- REST <marqueur>
- RESTart : « Recommencer » - Reprends un transfert là où il s'est arrêté. Pour cela, cette commande envoie <marqueur>, représentant la position dans le fichier à laquelle le transfert avait été interrompu. Elle doit être immédiatement suivie d'une commande de transfert.
- SITE
- Permet au serveur de proposer des services spécifiques, non définis dans le protocole FTP.
- SMNT
- Structure Mount : ??? - ???.
- RETR
- Cette commande (RETRIEVE) demande au serveur DTP une copie du fichier dont le chemin d'accès est passé en paramètre.
- STOR
- Cette commande (store) demande au serveur DTP d'accepter les données envoyées sur le canal de données et de les stocker dans le fichier portant le nom passé en paramètre. Si le fichier n'existe pas, le serveur le crée, sinon il l'écrase
- STOU
- Cette commande est identique à la précédente, si ce n'est qu'elle demande au serveur de créer un fichier dont le nom est unique. Le nom du fichier est retourné dans la réponse.
- STRU
- Caractère Telnet précisant la structure du fichier (F pour File, R pour Record, P pour Page)
- SYST
- SYSTem : « Système » - Permet de recevoir des informations sur le serveur distant.
- TYPE
- Permet de préciser le type de format dans lequel les données seront envoyées.
Utilisation
Pour accéder a un serveur FTP on utilise un client ftp, en ligne de commande ou avec une interface graphique.
Les utilisateurs de GNU-Linux ou d'un 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_du_serveur:port_ftp
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 en clair ou réutilisable.
La partie port_ftp est optionnelle. S'il est omis le port par défaut (21) sera utilisé.
Logiciel de FTP
Il existe des logiciels avec 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 mais d'autres tels que FileZilla (Windows) ou gftp (Linux) tout aussi pratiques et efficaces sont gratuits.
Diagramme des flux
Image:Diagramme des Flux de FTP.png
Annexes
Voir également
Une petite partie de cet article est basée sur cette page.ar:FTP
be:FTP
bg:File Transfer Protocol
bs:FTP
ca:Protocol de transferència de fitxers
cs:FTP
da:FTP
de:File Transfer Protocol
el:FTP
en:File Transfer Protocol
eo:Dosiero-Transiga Protokolo
es:File Transfer Protocol
fi:FTP
gl:File Transfer Protocol
he:FTP
hr:FTP
hu:File Transfer Protocol
ia:FTP
id:FTP
is:FTP
it:FTP
ja:File Transfer Protocol
ko:FTP
ku:FTP
lt:FTP
lv:FTP
nl:File Transfer Protocol
nn:File Transfer Protocol
no:FTP
pl:FTP
pt:File Transfer Protocol
ru:File Transfer Protocol
sl:FTP
sq:Protokolli i transmetimit te regjistrave FTP
sr:ФТП
sv:File Transfer Protocol
th:File Transfer Protocol
tl:FTP
tr:Dosya Transfer Protokolü
uk:FTP
zh:文件传输协议
-
-
-
-
-
-
-
-
-
-
-
-
-
-