1980 - FTP (File Transfer Protocol)
Par Vincaria le vendredi 20 mars 2009, - Logiciels - Lien permanent
Au
commencement, FTP (ou File Transfer Protocol
) est l'un des protocoles
Internet qui fut le plus utilisé. Il permettait de transférer des données (sous
forme de fichiers) d'un ordinateur à l'autre au travers des réseaux
implémentant le protocole TCP. Le protocole FTP s'intègre dans la couche
application
du modèle OSI
Sa naissance est officialisée en juin 1980 par la publication du RFC765 dont l'auteur n'est autre que Jon Postel, l'un des pères de
l'Internet.
L'implémentation du protocole FTP nécessite : un serveur FTP et à minima
un client FTP (application du mode Client-Serveur). S'appuyant
sur la couche TCP/IP, le client initie une connexion au serveur et échange les
données sous forme de fichiers à l'aide d'un jeu de commandes pré-définies. Le
protocole FTP s'appuye en outre sur deux canaux de transmission, un pour les
flux de données et un pour les flux de contrôle.
Il existe deux modes de gestion des canaux de transmission :
- un mode
actif
- un port d'écoute est utilisé côté serveur pour le canal de contrôle
- un port d'écoute est utilisé côté client pourle canal de données
- un mode
passif
: deux ports d'écoute sont utilisés côté serveur pour les deux canaux
Lors de l'utilisation du mode actif
, on distingue les phases
suivantes :
- le client se connecte sur le port de contrôle en écoute du serveur (usuellement le port 21)
- le client ouvre un port en écoute sur un port défini dynamiquement
- il communique au serveur le numéro de ce port (via la commande PORT).
- le client se met en attente d'une connexion de la part du serveur
- le serveur établit un flux de donneés en se connectant sur le port en écoute côté client
- le serveur utilise le port 20 comme port source de son côté.
Lors de l'utilisation du mode passif
, on distingue les phases
suivantes :
- le client se connecte sur le port de contrôle en écoute du serveur (usuellement le port 21)
- le client communique au serveur qu'il utilisera le mode passif (via la commande PASV)
- le serveur ouvre un port en écoute sur un port défini dynamiquement
- le serveur communique au client l'adresse et le port à utiliser pour le flux de données
- le serveur se met en attente d'une connexion de la part du client
- le client utilise un port défini dynamiquement comme port source de son côté
Durant le transfert de données sur le canal de communication réservé à cet
effet, le canal de contrôle reste inactif. Ceci pose aujourd'hui des problèmes
lors de connexions au travers de pare-feux car ces derniers pouvant interpréter
au bout d'un certain temps l'inactivité d'un canal comme source d'erreur, il
ferme alors parfois les connexions établies entre le client et le
serveur.
Il existe également deux type de transfert de données entre un client et un
serveur: le transfert de type ASCII
(appelée aussi mode texte) et le
transfert de type BINARY
(appelé aussi mode binaire). In ASCII mode (see
below), resuming transfers can be troublesome if client and server use
different end of line characters :
- le transfert de type ASCII permet de transférer les données via leur code ASCII, chaque client assurant la retranscription du code reçu en un code qui lui est compréhensible
- le transfert de type BINARY permet de transférer les données en les recopiant octets par octets, entrainant ainsi parfois des erreurs lorsque des octets connus sur le système hôte du serveur ne sont pas reconnus sur le système hôte du client
Basé sur l'efficacité du protocole TCP pour son mode fiable et le contrôle
d'intégrité des données, le protocole FTP a rapidement permis l'échange de
fichiers entre ordinateurs de différents réseaux. Durant de nombreuses années
avant l'avènement du protocole HTTP, il fut avec l'email l'un des protocoles
les plus utilisés d'Internet.
Encore utilisé de nos jours, son implémentation a été étendue puisque de
nombreux applicatifs supportent le protocole (notamment les navigateurs
web).