Les Réseaux Informatiques Clients & Serveurs Le protocole FTP Laurent JEANPIERRE DEUST AMMILoR
Résumé de la structure en couches Couche 1 : Accès au médium physique Couche 2 : Accès multiple au médium, résolution des collisions Couche 3 : Accès à une machine au sein d’un réseau Routage et résolution d’adresses Couche 4 : Transport de bout en bout Transport fiable des données Gestion des connexions Multiplexage de services sur une même interface
Notion de service réseau Fonctionnalité particulière Offerte par une machine Utilisée par d’autres machines Hébergée par un serveur Accessible sur le réseau Multiplexage Plusieurs Services Plusieurs Clients
Exemple de services réseau Serveur DHCP Fournit des adresses IP dynamiques Serveur DNS Traduit un « nom » en adresse IP Serveur NIS Fournit des informations sur les utilisateurs Serveur de fichiers Permet d’accéder à des fichiers distants de façon transparente Serveur de dates Fournit une horloge « juste » Serveur FTP Permet le transfert de fichiers à longue distance Entre machine hétérogènes …………
Notion de serveur Fournit au moins un service Ne fait rien tout seul Attend des « clients » Ouverture passive d’un port Numéro fixe, caractéristique du service offert Pas de session réseau ouverte « Ecoute » sur le port Attend la connexion d’un client Fournit un service au client Revient en attente
Notion de client Logiciel utilisant un serveur Utilisation éphémère Ouverture active d’un port Numéro souvent variable Initialisation de la connexion réseau Envoi de requête(s) Réception de données Clôture du port
Classes de serveurs Serveur UDP Basé sur des « messages » simples Reçoit une requête, Envoie une réponse Multiplexage temporel des clients Serveur TCP Basé sur une connexion Echange soutenu d’informations Souvent Full-Duplex En général, service simultané de plusieurs clients
Le protocole FTP File Transfer Protocol Transfert interactif de fichiers Différent des serveurs de fichiers Machine hétérogènes Souvent à longue distance Utilisation interactive volontaire Utilise TCP Naturellement fiable
Principes de FTP Ouverture passive du port 21 Attente de client(s) Identification du client Réception de commandes Envoi de messages Echange de fichiers Fin de connexion
Un scénario complet Connexion à un serveur distant Blanche.loria.fr Serveur War FTP Version Affichage d’un répertoire distant Commande « ls » Déconnexion du serveur Commande « bye »
Un scénario particulier Serveur Client 21
C:\temp> ftp blanche.loria.fr Connect‚ … blanche.loria.fr.
Un scénario particulier Serveur Client SYN ACK + SYN ACK
Un scénario particulier Serveur Client Message ACK
Transfert de messages Problème : Machines hétérogènes Normes différentes Structure différentes Besoin d’une couche de présentation des données Code ASCII NVT 128 caractères codé sur 8 bits (0 devant) Chaque ligne finit par un saut de ligne #13 : retour en colonne 1 #10 : ligne suivante
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name.
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name. Utilisateur (blanche.loria.fr:(none)) : test
Un scénario particulier Serveur Client USER test ACK + MSG
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name. Utilisateur (blanche.loria.fr:(none)) : test 331 User name okay, Need password. Mot de passe :
Un scénario particulier Serveur Client PASS xxxxxxx ACK + MSG
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name. Utilisateur (blanche.loria.fr:(none)) : test 331 User name okay, Need password. Mot de passe : 230 User logged in. ftp> ls
Un scénario particulier Serveur Client NLST ACK + Listing
Nouveau problème Et si le listing est très long ? Transféré comme un fichier Interruption du transfert Envoi d’un signal ? Sera envoyé après le fichier ! (ordre garanti) Envoi d’un signal URGENT ? Est envoyé tout de suite Mais le transfert du fichier continue… après.
Nouvelle connexion Mêmes adresses IP Nouveaux ports Serveur : Port TCP 20 Client : Port TCP quelconque Avantages Liaison spécialisée (TOS : débit maximum) Signaux/Messages pendant transfert
Ouverture 2° connexion Qui ouvre la connexion de données ? Le serveur ? Comment associer les deux connexions ? Le client ? Comment le serveur connaît-il le port ? Commande PORT Résumé Serveur : attend les clients pour le contrôle Client : est client pour le contrôle Client : attend le serveur pour les données Serveur : est client pour les données
Fin de fichier Comment la reconnaître ? Marqueur Et si le marqueur apparaît dans le fichier ? Ajout de caractères de transparence Longueur Peut être délicate à calculer Et si interruption ? Entête de paquets Encore une ? Fermeture de la connexion
Un scénario particulier Serveur Client PORT IP:1047 ACK + MSG
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name. Utilisateur (blanche.loria.fr:(none)) : test 331 User name okay, Need password. Mot de passe : 230 User logged in. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls (46 bytes).
Un scénario particulier Serveur Client Fichier ACK
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name. Utilisateur (blanche.loria.fr:(none)) : test 331 User name okay, Need password. Mot de passe : 230 User logged in. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls (46 bytes). Adresse LORIA.txt DebugTrace-ROCKALLDLL.log
Un scénario particulier Serveur Client Message ACK
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name. Utilisateur (blanche.loria.fr:(none)) : test 331 User name okay, Need password. Mot de passe : 230 User logged in. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls (46 bytes). Adresse LORIA.txt DebugTrace-ROCKALLDLL.log 226 Transfer complete. 46 bytes in 0.00 sec. ( Kb/s) ftp : 46 octets re‡us dans 0.17Secondes 0.27Ko/sec. ftp> bye
Un scénario particulier Serveur Client QUIT ACK + MSG
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name. Utilisateur (blanche.loria.fr:(none)) : test 331 User name okay, Need password. Mot de passe : 230 User logged in. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls (46 bytes). Adresse LORIA.txt DebugTrace-ROCKALLDLL.log 226 Transfer complete. 46 bytes in 0.00 sec. ( Kb/s) ftp : 46 octets re‡us dans 0.17Secondes 0.27Ko/sec. ftp> bye 221 Goodbye. Control connection closed.
Un scénario particulier Serveur Client FIN ACK + FIN ACK
C:\temp>ftp blanche.loria.fr Connect‚ … blanche.loria.fr. 220-BlancheWarFtp WarFTPd (Dec ) Ready (C)opyright by Jarle (jgaa) Aase - all rights reserved. 220 Please enter your user name. Utilisateur (blanche.loria.fr:(none)) : test 331 User name okay, Need password. Mot de passe : 230 User logged in. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls (46 bytes). Adresse LORIA.txt DebugTrace-ROCKALLDLL.log 226 Transfer complete. 46 bytes in 0.00 sec. ( Kb/s) ftp : 46 octets re‡us dans 0.17Secondes 0.27Ko/sec. ftp> bye 221 Goodbye. Control connection closed. C:\temp>