6 Emulation d'une carte Ethernet
Le but de cet exercice est d'émuler le fonctionnement d'une carte Ethernet.
Il n'est pas question de programmer une réelle carte Ethernet mais de l'émuler
à l'aide d'un script PHP. Les messages représentant les paquets Ethernet seront
envoyés par votre script PHP via une liaison TCP vers un processus serveur
simulant le comportement d'un répéteur Ethernet. En particulier le pseudo-répéteur
détecte les collisions et permet aux pseudo-stations d'en tenir compte. Le
pseudo-serveur permet aussi d'obtenir un schéma temporel des derniers paquets
reçus en utilisant un navigateur classique.
Les messages envoyés par les pseudo-cartes Ethernet ne respectent pas le format des
vrais paquets Ethernet pour obtenir un schéma temporel facilement exploitable :
-
les entités fondamentales transmises ne sont pas des bits mais des symboles
(les caractères alphanumériques) ;
- la période de contention n'est pas de 512 temps bits mais de 5 temps symboles ;
- une entité fondamentale n'est pas transmise en 0,1 microseconde comme avec
l'Ethernet 10mb/s mais en une seconde ;
- les messages sont précédés du symbole '=' pour pouvoir repérer le
début des messages ;
- les messages sont constitués de deux chiffres pour représenter l'adresse
de destination, de deux chiffres pour l'adresse source et de caractères
alphanumériques pour les données (il est entendu que la taille totale du message
doit être un multiple de 5 symboles).
Vous devez compléter le script PHP des pseudo-stations (voir en annexe) :
-
dans un premier temps pour envoyer les messages contenus dans la
variable globale $messages en utilisant le protocole 802.3 vu en cours ;
- faites ensuite des tests pour voir comment se comporte le système
avec seulement quelques stations et quelques messages puis avec un nombre
plus important de messages et de stations ;
- ensuite vous pouvez écrire la partie concernant la récupération des
messages à destination de votre station avec affichage du message complet
en fin de réception et indication du top d'horloge de fin de réception.