Accéder au contenu principal

Histoire d'Internet

Chronologie globale   Documents historiques  A venir: les newsgroups, le protocole UUCP, Craig's List, Amazon, eBay, Facebook, Youtube, ...  A venir: RSS, Javascript, Google, Wikipedia, AOL, UUNet, le spam, ... et bien d'autres secrets ...

1980 - FTP (File Transfer Protocol)

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'appuie 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 pour le 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 données 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).

Posts les plus consultés de ce blog

2009 - Rétrospective Arpanet

Le professeur Leonard Kleinrock, pionnier de l'Internet à l'UCLA ( University of California, Los Angeles ), présente l'architecture de connexion des premières machines au sein du réseau ARPANET en septembre 1969 et le premier envoi de données en octobre 1969. The first Internet connection

1969 - Arpanet (ARPA Network)

A partir de 1940, le département de la Défense américain crée une agence chargée des projets de recherche en matière de défense militaire. Cette agence nommée DARPA ("Defense Advanced Research Projects Agency") va être à l'origine de la naissance du réseau prédécesseur d'Internet, mais aussi du programme Transit ancêtre du GPS, ainsi que des programmes d'avions furtifs Jusqu'alors, les communications informatiques reposaient sur l'utilisation de circuits dédiés, tout comme les communications téléphoniques. L'agence DARPA lance donc en 1966 un projet de réseau informatique reliant certaines universités américaines. Sans objectif particulier d'un point de vue militaire, ce projet devient le réseau ARPA et en 1969 il relie quatre centres :

1997 - Peer-to-peer (P2P)

Dès sa conception à la fin des années 1960, le réseau ARPANET pose les bases d'un réseau d'interconnexion non hiérarchique et non centralisé. En théorie, la communication entre utilisateurs finaux ne dépend d'aucun élément central et d'aucune liaison point-à-point . Il est donc pas définition possible d'échanger des informations avec n'importe quel ordinateur relié au réseau. Les premiers échanges de données, via les protocoles telnet ou ftp notamment illustrent bien cette idée de connexions non centralisées, inutile de se référencer auprès d'un serveur central pour communiquer entre utilisateurs. La réalité est un peu plus contrastée puisque pour beaucoup de protocoles IP, un modèle client-serveur est nécessaire : un serveur héberge les données et des clients s'y connecte pour les lire ou les modifier.