Le bit atteint la station 1 en 50*0,1=5µs et la station 3 en 75*0,1=7,5µs
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à).
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.
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.
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.
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.
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.
Voici un exemple de chronogramme :
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).
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 $
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}
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 6000Ensuite 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. $
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.traceOn 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-vmxLe 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-vmxCes 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.
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.
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.