Previous Contents

9   Corrigé du DS du 15 juin 2004

Tous documents autorisés.
Le barème probable est de 7 points pour l'exercice sur Ethernet, de 7 points pour l'exercice sur le protocole FTP et également de 7 points pour les questions de réflexion. Il est à noter que les questions 6 et 7 de l'exercice sur Ethernet sont hors barème (chacune notée sur 2 points, ce qui fait que le DS est noté sur 25 points). Par contre la dernière question de l'exercice sur Ethernet est bien dans le barème.

9.1   Exercice sur Ethernet

L'exercice concerne un ancien réseau Ethernet à 10Mb/s. On rappelle que sur un tel réseau un bit est transmis en un temp bit de 0,1µs. Nous allons considérer 3 stations qui se trouvent placées de telle façon sur le bus Ethernet que la station 2 se trouve entre les stations 1 et 3. Le réseau est architecturé de telle façon que les signaux sont transmis de la station 1 vers la station 2 en 50 temps bit et que les signaux sont transmis de la station 3 vers la station 2 en 75 temps bit.
On note t=0 l'instant où la station 2 diffuse son message M1. Dans ce contexte répondez aux questions suivantes :
  1. Donc au temps t=0, la station 2 commence à emettre un message M1 de 250 octets. A quel moment le premier bit de ce message atteint la station 1 ? Même question pour la station 3.
    Le bit atteint la station 1 en 50*0,1=5µs et la station 3 en 75*0,1=7,5µs
  2. Au temps t=4,5µs, la carte ethernet de la station 1 reçoit de son CPU un message M2 de 380 octets à transmettre (on suppose qu'aucune transmission n'avait eu lieu avant le temps t=0 et donc qu'il n'y a pas besoin de prendre en compte un délai inter-trame). Que fait la carte ethernet de la station 1 ?
    Elle commence à transmettre M2, le premier bit de M1 n'arrivera qu'à t=5µs. A t=4,5µs la station 1 pense que le médium est libre depuis toujours (aucune transmission n'ayant eu lieu jusque là).
  3. Quel événement particulier se produit-il sur le réseau ethernet après t=4,5µs ? A quelle date exactement ? A cette date, que fait la carte ethernet de la station 1 ?
    Une collision va se produire puisque deux signaux sont présents simultanément sur le bus. A l'émission du premier bit de M2, le premier bit de M1 est à 0,5µs de la station 1. Les bits de S1 et S2 allant à la même vitesse, la collision se produit à t=4,5+0,5/2=4,75µs. A cette date la station 1 est entrain de transmettre le troisième bit de M2.
  4. A quelle date la station 1 s'arrête-t-elle d'émettre après l'événement de la question précédente (n'oubliez pas les 32 bits de bourrage) ? Même question pour la station 2.
    La collision se produit à t=4,75µs. Cette collision arrive à la station 1 à t=5,0µs et à la station 2 à t=2*4,75=9,5µs. Si on ajoute les 32*0,1µs pour l'émission des bits de bourrage on obtient l'arrêt d'émission à t=8,2µs pour la station 1 à t=12,7µs pour la station 2.
  5. Supposez que le générateur de nombres aléatoires de la carte ethernet de la station 2 tire un 0 et que celui de la station 1 tire un 1. A quelle date les deux cartes vont-elles programmer leur prochaine diffusion de message ? Attention, l'attente avant ré-émission commence dès que la carte a émis son dernier bit de bourrage (contrairement à ce qui était présenté dans la correction du DS de l'an passé). Par ailleurs l'émission d'un paquet ne se fait qu'après avoir respecté un délai inter-trames de 96 temps bit (avec à nouveau détection de disponibilité du médium après ce délai).
    La station 2 est prête à émettre à t=12,7µs et la station 1 est prête à émettre à t=8,2+512*0,1=59,4µs. La station 2 est la première à pouvoir émettre à t=12,7µs mais les bits de bourrage de la station 1 vont encore occuper le médium jusqu'à t=8,2+50*0,1=13,2µs. Il faut encore attendre le délai inter-trames de 96*0,1µs, le message M1 ne pourra donc être re-diffusé qu'à t=22,8µs. Le premier bit de M1 atteindra la station 1 à t=22,8+50*0,1=27,8µs soit avant la re-diffusion programmée de M2 : la collision sera évitée.
  6. On suppose que la station 3 souhaite envoyer un message M3 à t=51µs. Pouvez-vous dire quelle station va envoyer quel message après la fin de la diffusion de M1 ? A quelles dates ? Quel événement va suivre les éventuelles émissions ? à quelle date ? Attention de bien prendre en compte que dans les 250 octets de M1 la somme de contrôle ethernet est incluse mais pas les 64 bits de préambule débutant tout paquet ethernet. De plus, tenez à nouveau compte du délai inter-trames.
    La station 2 finit d'émettre à t=22,8+64*0,1+250*8*0,1=229,2µs. Le dernier bit sera propagé à la station 1 à t=229,2+5=234,2µs et à la station 3 à t=229,2+7,5=236,7µs. La station 1 va vouloir envoyer M2 à t=234,2+9,6=243,8µs et la station 3 va vouloir envoyer M3 à t=236,7+9,6=246,3µs. A la date t=246,3µs, le premier bit de M2 se trouve à 25 temps bit de la station 1 soit à 100 temps bit de S3. S3 va donc émettre M3 qui va entrer en collision avec M2 à t=246,3+100/2*0,1=251,3µs.
  7. A quelles dates les stations 1 et 3 arrêtent d'émettre après l'événement de la question précédente ?
    La collision se produit à 75 temps bits de la station 1 (soit à 50 temps bits de la station 3). Le signal de collision arrive donc à t=251,3+75*0,1=258,8µs sur la station 1 et à t=251,3+50*0,1=256,3µs sur la station 3. La station 1 arrête d'émettre à t=258,8+32*0,1=262,0µs et la station 3 à t=256,3+32*0,1=259,5µs.
  8. Dessinez un chronogramme des trames émises par les trois stations (pour l'axe du temps représentez les périodes de 0 à 25 µs puis de 225 à 265 µs).
    Voici un exemple de chronogramme :

9.2   Protocole FTP

Vous vous trouvez sur une machine du campus de l'université de Lille I. Cette machine se trouve derrière le pare-feu de l'université qui lui permet de se connecter sur n'importe quelle machine de l'Internet mais qui n'autorise que certaines connexions entrantes. Les machines d'Internet sont autorisées à se connecter sur les ports 22 (ssh) et 6000 (X11) de votre machine. La machine est bien sûr une machine Unix et son adresse IP est 193.48.65.100. Répondez aux questions suivantes :
  1. Si vous utilisez l'application Unix ftp, dans quel mode du protocole FTP pouvez-vous envisager de faire des transferts de données ? Expliquez pourquoi.
    Il est impossible d'utiliser le mode actif car une connexion du serveur FTP (sur l'Internet) vers la machine de l'université devrait être établie pour transférer les données. Le pare-feu l'interdirait. Il est donc impératif d'utiliser le mode passif (il n'y aura alors que des connexions de la machine vers le serveur FTP).
  2. Vous devez utiliser l'application Unix ftp pour récupérer la liste des fichiers de votre site web hébergé sur le serveur FTP webftp.monsite.org d'adresse IP 191.191.191.191. Sur ce serveur votre compte est brutus et le mot de passe bouledogue. Donnez toutes les commandes à taper dans un shell pour réaliser cette tâche.
    L'application ftp se charge d'envoyer les commandes du protocole FTP et gère toute seule la liaision de données. La seule difficulté ici est de basculer le serveur en mode passif par la commande passive.
    $ ftp webftp.monsite.org
    Connected to webftp.monsite.org
    Name: brutus
    331 Password required for brutus
    Password: bouledogue
    230 User brutus logged in.
    ftp> passive
    Passive mode on.
    ftp> ls
    ...
    ftp> quit
    $
    
  3. Déposez le fichier local index.html à la racine de votre compte sur le serveur FTP. Pour cela vous n'utiliserez que la commande Unix nc et le protocole FTP en mode passif. Donnez toutes les commandes à taper dans un ou plusieurs shells pour réaliser cette tâche.
    On commence par se connecter sur le port 21 du serveur avec la commande nc. Puis il faut s'identifier et passer le serveur en mode passif par la commande PASV. On récupère alors le numéro du port à utiliser pour transférer les données. Dans un second shell, on utilise une seconde instance de nc pour se connecter sur ce port. Il est ensuite loisible d'utiliser la commande STOR pour indiquer au serveur le nom sous lequel sauver le fichier transféré.
    shell_un$ nc webftp.monsite.org 21
    220 webftp.monsite.org FTP server
    USER brutus
    331 Password required for brutus.
    PASS bouledogue
    230 User brutus logged in.
    PASV
    227 Entering Passive Mode (191,191,191,191,131,170)
    STOR index.html
    150 Opening ASCII mode data connection for index.html.
    226 Transfer complete.
    QUIT
    221 Goodbye.
    shell_un$
    
    shell_deux$ port=`expr 131 \* 256 + 170`
    shell_deux$ cat index.html | nc webftp.monsite.org ${port}
    
  4. Enfin, en supposant que votre machine soit lancée en mode texte, indiquez comment vous pouvez effectuer un transfert en mode actif. Pouvez-vous utiliser l'application ftp pour réaliser ce transfert ? Donnez toutes les commandes à taper dans un ou plusieurs shells pour réaliser (mais en mode FTP actif cette fois) le transfert de la seconde question.
    Puisque la machine est en mode texte, le serveur X11 n'est pas lancé et donc le port 6000 est libre. On va donc pouvoir lancer le serveur TCP sur ce port qui est autorisé par le pare-feu de l'université.
    $ cat index.html | nc -l -p 6000
    
    Ensuite on utilise le protocole FTP comme vu en travaux pratiques.
    shell_un$ nc webftp.monsite.org 21
    220 webftp.monsite.org FTP server
    USER brutus
    331 Password required for brutus.
    PASS bouledogue
    230 User brutus logged in.
    PORT 193,48,65,100,23,112
    200 PORT command successful.
    STOR index.html
    150 Opening ASCII mode data connection for index.html.
    226 Transfer complete.
    QUIT
    221 Goodbye.
    $
    

9.3   Questions de réflexion

Des thèmes de réflexion vous ont été transmises par courriel. Quelques questions précises ont été choisies dans ces thèmes, veuillez y répondre succintement.
  1. Tous les utilisateurs ne peuvent pas utiliser le logiciel vmware version 5 comme vous avez pu le faire en travaux pratiques. Expliquez comment le contrôle d'accès est réalisé, donnez un autre groupe d'utilisateurs pouvant utiliser le logiciel.
    Il est possible de tracer l'exécution du script /vmware/vmware5/bin/vmware :
    $ strace -f /vmware/vmware5/bin/vmware 2> /tmp/vmware.trace
    $ grep -i exec /tmp/vmware.trace
    
    On s'aperçoit alors que les programmes lancés par le script sont :
    /vmware/vmware5/lib/vmware/lib/wrapper-gtk24.sh
    /vmware/vmware5/lib/vmware/bin/vmware
    /vmware/vmware5/lib/vmware/bin/vmware-vmx
    
    Le premier est un sous-script, le second correspond à l'interface graphique et enfin le dernier est le coeur de vmware à savoir l'émulateur de machine virtuelle. Lorsque l'on liste en mode détaillé ces fichiers, on s'aperçoit que vmware-vmx possède des droits d'accès étendus :
    $ cd  /vmware/vmware5/lib/vmware/bin
    $ ls -l vmware*
    -r-xr-xr-x  1 root root 6469884 Apr 14 22:20 vmware
    -rwsr-x---+ 1 root root 3636940 Apr 28 19:05 vmware-vmx
    
    Ces droits étendus sont :
    $ getfacl vmware-vmx
    # file: vmware-vmx
    # owner: root
    # group: root
    user::rwx
    group::---
    group:imaEns:r-x
    group:ima3i:r-x
    group:gisEns:r-x
    group:gis1:r-x
    group:sinfo:r-x
    group:gis3:r-x
    group:imaVac:r-x
    group:gisVac:r-x
    mask::r-x
    other::---
    
    Ces droits montrent bien que seuls certains groupes d'utilisateurs peuvent exécuter vmware5.
  2. Sur quel protocole le groupe de travail de l'IETF MARID travaillait-il (décrivez en quelques lignes le principe du protocole) ? Qu'est-il advenu des travaux de MARID ?
    L'acronyme de MARID signifie : MTA Authorization Records in DNS (enregistrements pour l'autorisation des serveurs de messagerie dans le DNS). Le groupe travaillait sur un protocole "Sender ID" permettant aux serveurs de messagerie de vérifier que les messages reçus étaient bien autorisés. Pour cela le domaine de l'expéditeur était utilisé pour trouver (dans le DNS) la liste des serveurs de messagerie autorisés à envoyer un message pour ce domaine. Il suffisait ensuite de vérifier que le serveur expéditeur était bien dans cette liste.

    Les travaux du groupe MARID ont été suspendus car micro$oft avait déposé (ou était entrain de déposer) des brevets autour du protocole "Sender ID". Cela aurait pu interdire à des logiciels "ouverts" (c'est à dire la plupart des logiciels dans le monde de la messagerie électronique) l'utilisation de ce protocole.
  3. Donnez un exemple de brevet logiciel.
    micro$oft a déposé le brevet (US Patent) numéro 6898604 concernant la sérialisation et la désérialisation d'un objet en XML (par exemple). Pour l'instant ce brevet n'est pas applicable en Europe.

Previous Contents