TP2 : Bus de terrain Comparaison de Protocoles d'arbitrage Objectif : Important : Un rapport électronique doit être envoyé au plus tard 15 jours après le TP à l adresse : rachedi@univ-mlv.fr. Comprendre les deux méthodes d accès : FIP et Ethernet. Simuler en C les deux méthodes d accès. Etudier le comportement temporel d une application répartie sur un bus. Pré-requis : Principes de base du réseau FIP et Ethernet Programmation C Introduction FIP (Factory Instrumentation Protocol) Ethernet (IEEE802.3) Présentation du problème Le cas FIP Le cas CSMA/CD L'objectif de ce TP est de comparer les temps d'accès induits par deux protocoles d'arbitrage d'un bus : le protocole du réseau industriel FIP qui offre des garanties temporelles sur la transmission des informations et le protocole utilisé par Ethernet (IEEE 802.3) qui n'offre pas de garantie temporelle. FIP (Factory Instrumentation Protocol) Le protocole FIP est basé sur un modèle Producteur/Distributeur/Consommateur dont le fonctionnement repose sur un mécanisme de diffusion (broadcasting). Il utilise une topologie bus (max 4000m avec 3 répéteurs) ; l'utilisation de répéteurs et autres éléments de raccordement permet l'obtention de structures en étoile ou arborescentes. Le débit de transmission caractéristique de 1 Mbits/s, pouvant aller jusqu'à 5Mbits/s pour des applications spécifiques. Fonctionnement du protocole FIP : Le protocole FIP offre les services suivants : échange de variables identifiées (données de processus de contrôle de procédé) et le transfert de messages (pour la configuration, la gestion, le diagnostic de système, etc). Il existe deux modes pour l échange de données : le mode point-à-point avec ou sans acquittement et le mode multipoints avec échange périodique ou apériodique. Le contrôle d'accès au réseau est assuré par une fonction centralisée appelée "arbitre de bus" implanté dans une station dédiée. Le mode d'accès est du type time slice multiplexing (IEEE 802.2 LLC). Les stations connectées peuvent être définies comme producteur et/ou consommateurs d'informations. Une information (une variable) n'est produite que par un SEUL producteur et est référencée par un identificateur unique. OC2 TP Bus de terrain M. Abderrezak RACHEDI - 1/5
FIP est basé sur deux modes d adressage : adressage par variable identificateur (unique, un seul producteur) de 16 bits et adressage par messages utilisé en communication point-à-point uniquement (adresse sue 24 bits). La figure ci-dessous présente le modèle producteur/consommateur : Ethernet CSMA/CA Le protocole CSMA/CD (Carrier Sense Multiple Access with Collision Detection, ou accès multiple avec détection de porteuse) est un protocole aléatoire où les stations peuvent émettre à tout instant, ce qui donne lieu à des contentions d accès. Cette méthode est dite probabiliste puisque le délai d attente après collision entre plusieurs trames suit une loi aléatoire. Elle est basée sur la connaissance de l activité récente du canal. Le CSMA/CD consiste à forcer l attente de la station tant que le canal est occupé. Principe de fonctionnement La figure ci-dessous montre un exemple d accès au canal de communication avec le protocole CSMA/CA. Détection de collision : Elle se produit lorsque deux stations constatent en même temps que le support de transmission est disponible et transmettent simultanément. Physiquement une collision est donc un signal brouillé violant les règles du codage en bande de base. Afin de détecter une collision éventuelle les stations scrutent le canal durant leurs propres émissions. Si elles détectent un signal résultant d une collision (i.e. non conforme aux règles de codage), elles émettent une séquence de bourrage (Jam sequence) pour avertir les autres stations de la collision. Cette séquence doit être suffisamment longue pour que les autres stations puissent s en apercevoir. Elle est au minimum de 32 bits. OC2 TP Bus de terrain M. Abderrezak RACHEDI - 2/5
I. Présentation du problème FIP vs Ethernet Station Message émis 0 Périodique (période = 3 ms) 1 Périodique (période = 9 ms) 2 Apériodique Pour se faire, on se propose de construire un petit simulateur en C. Le simulateur étudie le comportement temporel d'une application répartie sur un bus constitué de 3 stations maîtres (cad 3 émetteurs). Les deux premières stations émettent des messages périodiques et la dernière, des messages apériodiques (cf. table ci-dessus). Le délai entre la demande d'émission de deux messages apériodiques est généré de façon aléatoire (pour simplifier, la distribution est uniforme). Le délai moyen entre deux messages apériodiques est passé en paramètre du simulateur. On vous demande de compléter deux programmes C qui simulent l'arbitrage sur le bus de la transmission de ces messages. Vous pouvez utiliser ce Makefile pour les compiler. On considère que les temps de transmission, de propagation et de traversée des couches prennent en tout une milliseconde. II. Avec le protocole du réseau FIP L'objectif de ce premier exercice consiste à simuler le protocole d'arbitrage du réseau FIP. Pour ce faire, vous disposez du fichier «fip.c». On rappelle que pour ce réseau, le protocole d'arbitrage est caractérisé par les éléments suivants : Un arbitre centralisé exploite une table (dit table d'arbitrage) qui indique pour chaque instant les stations qui peuvent émettre des messages. Le fonctionnement de l'arbitre est cyclique : il arbitre d'abord l'émission des messages périodiques, puis, s'il reste du temps, autorise l'émission du trafic apériodique. La période de base utilisée par l'arbitre est le microcycle. La durée d'un microcycle doit permettre l'émission du trafic périodique, et éventuellement du trafic apériodique. Le microcycle constitue l'unité de temps sur laquelle la table d'arbitrage est construite. La taille de cette table est appelée macrocycle. Questions : 1. Déterminez le macrocycle, le microcyle et la table d'arbitrage pour l'ensemble des messages du précédent tableau. Calculer le temps d'accès maximum de chacun des messages. 2. Etudiez le fonctionnement du fichier fip.c et complétez les zones indiquées par le mot ACOMPLETER. 3. Exécutez le simulateur avec plusieurs délais moyens différents (ex : 1, 2, 10, 100). Que constatez-vous pour les temps d'accès de la station 0, 1 et 2. Les contraintes temporelles des messages sont elles respectées? Vérifiez que ces résultats correspondent bien à ceux déterminés dans la question 1. Remarque : pour compiler le fichier fip.c il suffit d utiliser la commande gcc o fip fip.c III. Avec le protocole CSMA/CD OC2 TP Bus de terrain M. Abderrezak RACHEDI - 3/5
Nous regardons maintenant le cas du protocole CSMA/CD. Ce protocole n'est pas déterministe mais probabiliste. Son fonctionnement est le suivant (cf figure ci-dessus) : Lorsqu'une station souhaite émettre une trame, elle écoute la porteuse. Si elle détecte que la porteuse est libre, elle émet sa trame. Durant l'émission de sa trame, elle continue à écouter la porteuse. Si elle détecte une collision (plusieurs stations qui émettent simultanément), elle suspend son émission, attend un délai variable, puis, fait une nouvelle tentative d'émission (algorithme dit du backoff) Au bout de 16 tentatives infructueuses, la trame est perdue et les couches supérieures doivent faire une nouvelle demande d'émission de trame. Vous trouverez le fichier «csma.c» est un fichier contenant la simulation du protocole décrit ci-dessus. Dans le simulateur le délai aléatoire d'attente avant réémission est un tirage aléatoire (distribution uniforme) entre 1 et délais_max (cf figure ci-dessus). Questions : 1. Complétez le fichier csma.c en ajoutant le code nécessaire à la simulation du protocole CSMA/CD. La zone à compléter est signalée par le mot ACOMPLETER. 2. Nous allons utiliser gnuplot pour visualiser les temps d'accès de la station 0. Pour ce faire : o Récuperez le fichier csma.cmd suivant. o Exécutez la simulation codée dans le fichier csma.c. o Grâce au fichier csma.dta ainsi généré, visionnez les résultats grâce à la commande : gnuplot csma.cmd 3. ATTENTION : deux courbes sont affichées successivement : gnuplot affiche la première et attend que vous frappiez une touche pour présenter la seconde. 4. Refaite les étapes précédentes avec des valeurs différentes pour le temps moyen entre deux messages apériodiques (ex : 1000, 100, 10). OC2 TP Bus de terrain M. Abderrezak RACHEDI - 4/5
5. Que constatez vous concernant le temps d'accès des messages de la station 0, le nombre de messages émis par la station 0 et le respect des contraintes temporelles de la station 0? Pourquoi? Concluez sur l'intérêt d'un tel protocole pour une application temps réel. OC2 TP Bus de terrain M. Abderrezak RACHEDI - 5/5