Laboratoire de SEG 3550: Token ring

19 Février  2004

 

Fichiers à télécharger:

 

Les Fichiers contenus dans le zip file, avec le même nom qu'utilisé précédemment, peut avoir été modifié. Veuillez employer les nouvelles versions!

Quand  vous decompressez  le zip fichier, et charger Tau, ajoutez "add existing" les fichiers suivant:

Note: Si vous cochez  l'option “expand substructure”, ceci devrait charger les fichiers restants.

 

Objectif

L'objectif de ce laboratoire est de modifier les travaux précédents pour mettre en application une architecture simplifiée d'un reseau local a  token ring avec un nombre arbitraire de postes.

Le mecanisme du passage du jeton sera semblable à la norme IEEE 802.5 parce qu'une trame de données est mise sur l'anneau par un poste, fait un circuit entier de l'anneau, et alors est enlevé de l'anneau par le poste d'envoi. Le poste de destination devrait prendre une copie de la trame quand elle arrive, mais continue à expédier la trame le long de l'anneau. Une trame de données ne peut pas être envoyée jusqu'à ce que la trame a jeton arrive. 

Après qu'un poste d'envoi enlève une trame de données, il doit remplacer la trame de données par une trame a jeton. 

Quoique tous les messages apparaissent à tous les postes, seulement le poste de destination devrait accepter la trame et la transmettre à sa couche supérieure. 

Une adresse spéciale de diffusion (broadcast address)  indique que tous les postes devraient accepter la trame.

La simplification: aucunes priorités ou réservations du jeton.

Les formats du trame sont illustrés ci-dessous:

Contenu du paquet téléchargé

Le paquet des fichiers  fournit le service d'envoyer un octet (byte) a travers un reseau local a token ring simulé.

L'architecture réelle de système emploiera une configuration d'étoile avec un concentrateur (hub), où le concentrateur fait le routage du message à un autre poste de sorte qu'il y ait une configuration d'anneau logique. Le jeton initiale est produite automatiquement par le concentrateur et envoyée au poste qui contient la plus basse adresse.

 

Quand un octet est envoyé au concentrateur, le concentrateur l'envoie au poste suivant dans le LAN. C'est-à-dire, un message octetReq est envoyé par le poste N à la couche physique aura comme conséquence un message octetInd envoyé au poste N + 1 (modulo le nombre de poste.) On suppose que le service est fiable; c'est-à-dire, aucun octet ne sera perdu, sera changé, ou ré-arrangé à nouveau.

Puisque nous appliquons maintenant une méthode pour un contrôle d'accès au medium (MAC), certaines parties dans les laboratoires précédents ne s'appliquent plus:

En outre dans le paquet téléchargé on a:

 

Pour voir le contenu du paquet téléchargé  en tant que pages web, cliquetez ici .

Qu'est ce que vous devez faire?

Le RingHost processus à l'intérieur du RingHost de type bloc est actuellement non defini. Votre tâche est de prendre votre  processus LANFramer  du laboratoire précédent, et le modifient de sorte qu'il puisse fournir les services suivants:

  1. Initialisation de système (identique (sans changement) au laboratoire précédent)  
    • Au démarrage, chaque instance du processus doit acquérir une adresse. Ce sera une valeur de type OCTET. Pour que cette instance annonce sa présence, sur la transition initiale, un signal registerReq (aucuns paramètres) devrait être envoyé à la couche physique. Il devrait alors attendre un signal registerInd comme réponse. Le signal registerInd a un seul paramètre type OCTET. C'est l'adresse assignée de l'instance du processus.
  1. Réception de la couche supérieure
    •   Le processus peut recevoir de la couche supérieure (actuellement, l'environnement de SDL), un string d'octets de la longueur arbitraire dans un signal a appelé frameReq . Ce signal a deux paramètres. Le premier paramètre est un OCTET et contient l'adresse de destination du string à envoyer. Le deuxième paramètre identique a celui du lab precedant; un OCTET_STRING qui porte les octets à envoyer. La trame à envoyer est ajoutée à un buffer.
      • NOTE: La couche supérieure peut envoyer plus d'une trame demande (request) avant qu'un jeton arrive. Quand la jeton arrive, seulement une trame peut être envoyée, de sorte que le récepteur puisse récupérer la trame originale.  
  1. Réception du réseau  
    • Rassemblez les octets pendant qu' ils arrivent du RingHub par l'intermédiaire des signaux octetInd. À moins que le centre serveur aille échanger une trame jeton pour une trame des données ou vice versa, les octets devraient être accumulés dans un buffer pour les renvoyer, c'est-à-dire, pour être passé au prochain poste dans l'anneau.
    • Quand un octet SOH arrive, le processus devrait être prêt à recevoir un octet indiquant le type de trame.
    • Si le type de trame est tokenFrame, le processus devrait être prêt à recevoir un octet EOT .
        • Si le poste va absorber la jeton, alors un octet dataFrame devrait remplacer l'octet tokenFrame et sera mis dans le buffer d'envoi, le long avec la prochaine trame de données bourrée  "stuffed" venant de la couche supérieure. Seulement les données d'utilisateur devraient être bourrées "stuffed"; les autres champs du trame n'auront pas des octets 01 (SOH ) ou 04 (EOT), et les adresses seront assignés tels que 01 ou 04 ne sera pas assigné comme adresse.
    • Si le type de trame est dataFrame le processus devrait alors être prêt à recevoir un octet avec l'adresse de source, et puis un octet suivant avec l'adresse de destination. Ceci serait alors suivi des données bourrées "stuffed" d'utilisateur.
    • Quand l'EOT arrive, on doit l'ajouter au buffer d'envoi et procéder à la phase d'envoi.
        • Si l'octet d'adresse de destination correspond à l'adresse de receiver, ou est l'adresse d'une diffusion "broadcast" (verifier la valeur prédéfini  pour le broadcastID), le récepteur devrait donc expédier une copie non-bourrée "unstuffed" des données d'utilisateur à la couche supérieure en utilisant un signal frameInd. Ce signal a deux paramètres: un OCTET c'est l'adresse de l'expéditeur du trame, et un OCTET_STRING pour les données qui ont été transmises.
        • Si l'adresse de source correspond a  l'adresse du récepteur, alors le poste doit substituer une trame de jeton dans le buffer d'envoi, car la trame de données a fini son circuit autour de l'anneau.
  1. Envoi au réseau