<Desc/Clms Page number 1>
"Procédé et dispositif d'accusé de réception d'ensembles de données".
Fondement de l'invention 1. Domaine de l'invention
Cette invention se rapporte à une unité qui envoie des ensembles de données à une autre unité via un moyen de communication ou une liaison reliée entre les unités, et à un accusé de réception d'ensembles de données par l'unité réceptrice.
2. Description de l'art antérieur
Différentes techniques d'accusé de réception d'ensembles de messages, dans un système de communication, ont été utilisées, y compris des protocoles ACK/NAK et de mise en séquence.
Avec le protocole ACK/NAK, une unité de transmission transmet un ensemble de données à une unité de réception. Si une unité de réception reçoit un ensemble de données, l'unité de réception accuse réception de l'ensemble de données en transmettant en retour soit un signal d'accusé de réception"ACK"qui indique que l'ensemble de données est correctement reçu soit un signal d'accusé de réception négatif"NAK"qui indique que le message est reçu mais n'est pas utilisé. Le signal NAK peut indiquer qu'il y a une erreur dans les données reçues ou que l'unité de réception est occupée et ne peut pas accepter ou utiliser les données avant un moment ultérieur.
Si un NAK est reçu, l'unité de transmission peut automatiquement retransmettre l'ensemble des données. Le signal ACK ou NAK est retourné après que chaque ensemble de données est envoyé et avant que le prochain ensemble de données soit envoyé. Si l'unité de transmission ne reçoit pas le ACK ou le NAK attendu en provenance de l'unité de réception pendant un intervalle de temps (appelé intervalle de temps imparti) après une transmission, l'unité de transmission retransmet le même ensemble de données. Si un signal ACK est perdu ou déformé pendant une transmission en retour vers l'unité de trans-
<Desc/Clms Page number 2>
mission, celle-ci attendra que l'intervalle de temps imparti soit écoulé et elle retransmettra ensuite l'ensemble de données même si l'ensemble de données n'était pas correctement reçu et utilisé.
Si le moyen de communication est bruyant ou incertain, du temps est gaspillé en attendant pour des délais impartis et en retransmettant des données qui ont déjà été transmises correctement, ce qui réduit le débit de données ou la qualité du système de communication.
Avec le protocole de mise en séquence cependant, un accusé de réception n'est pas nécessairement envoyé après chaque ensemble de données ; un accusé de réception peut être envoyé après qu'un groupe d'ensembles de données soit envoyé. Le nombre d'ensembles de données d'un groupe peut être sélectionné sur base de la fiabilité du moyen et sur des délais de temps de propagation ou de transit qui font attendre qu'un accusé de réception revienne via le moyen.
Lorsque le moyen transporte fiablement des données, le protocole de mise en séquence peut réaliser des taux de données plus élevés que par le protocole ACK/NAK parce que moins de temps est utilisé par le récepteur qui envoie des accusés de réception et par le transmetteur qui attend des accusés de réception.
Avec le protocole de mise en séquence, des compteurs des unités de transmission et de réception sont synchronisés au démarrage de la transmission d'un groupe d'ensembles de données. Le compteur de l'unité de transmission est augmenté chaque fois qu'un ensemble de données est envoyé. L'ensemble de données comprend des données qui indiquent le compte du compteur de l'unité de transmission. Le compteur de l'unité de réception n'est augmenté que si un ensemble de données est reçu correctement et suivant une séquence convenable indiquée par le compte. Donc, si un ensemble de données n'est pas reçu correctement, tous les ensembles de données suivants sont ignorés même s'ils sont reçus correctement.
Après qu'un ensemble de données ou qu'une série d'ensembles de données a été correctement reçu, le compte du compteur de réception est renvoyé à l'unité de transmission comme signal d'accusé de réception, pour être comparé au compte du compteur de transmission. Si aucune réponse n'est reçue par l'unité de transmission après un intervalle de temps (intervalle de temps
<Desc/Clms Page number 3>
imparti), l'unité de transmission commence à retransmettre des ensembles de données en commençant par le premier ensemble pour lequel aucun accusé de réception n'a été reçu. Ensuite, tous les ensembles de données envoyés après ce premier ensemble de données perdu doivent être retransmis, même si plusieurs d'entre eux peuvent avoir été déjà reçus correctement.
Le processus de transmission est
EMI3.1
r é é é jusqu'à ce que to e répété jusqu'à ce que tous les ensembles de données du groupe soient reçus, comme cela est indiqué lorsque le compteur de transmission est égal au dernier compteur de réception reçu en retour.
Dans des systèmes de communication qui utilisent un moyen de communication qui n'est pas fiable à près de 100 %, tant le protocole ACK-NAK que celui de mise en séquence souffrent d'augmentations importantes du temps nécessaire pour envoyer une série d'ensembles de messages. Avec le protocole ACK-NAK, du temps est consommé par des temps impartis qui ne sont pas nécessaires et par des transmissions répétées. Avec le protocole de mise en séquence, du temps est consommé en des transmissions inutiles d'ensembles répétées.
Donc est souhaité un protocole de communication qui transmet des ensembles de données sans attendre un accusé de réception, après que chaque ensemble de données est envoyé, en provenance du noeud de réception, et de plus, avec une transmission réduite d'ensembles de messages répétés qui ne sont pas nécessaires.
Exposé de l'invention
Dans la présente invention, une unité de transmission envoie un groupe d'ensembles de données à une unité de réception.
L'unité de réception répond en transmettant en retour à l'unité de transmission une sortie d'accusé de réception qui accuse réception si le dernier ensemble de données reçu et aussi un nombre sélectionné d'ensembles précédents de données, envoyés à l'unité de réception par de l'unité de transmission, ont été chacun reçus correctement.
En réponse à l'accusé de réception, l'unité de transmission retransmet sélectivement les ensembles de données indiqués qui n'ont pas été reçus correctement. Un système comprend deux ou plusieurs unités, appelées aussi noeuds, qui relient entre eux des réseaux de communi-
<Desc/Clms Page number 4>
cation comme cela se fait dans un système de commande de processus.
Dans un tel système, un accusé de réception d'un premier ensemble de données peut quelquefois ne pas revenir à l'unité de transmission à cause d'un bruit, d'une collision dans la voie ou d'autres causes même si le premier ensemble de données a été reçu et utilisé par l'unité de réception. Par la présente invention, l'unité de transmission transmet des ensembles de données successifs sans attendre un long intervalle"de temps imparti", même s'il peut ne pas recevoir un accusé de réception du premier ensemble de données. Après qu'un ensemble de données subséquent est transmis, un signal d'accusé de réception subséquent est reçu en retour et le signal d'accusé de réception subséquent contient des données qui remplacent l'accusé de réception perdu du premier ensemble de données.
L'unité de transmission répond alors d'une manière qui fait bon usage du temps disponible sur la voie. Si le premier ensemble de données a été reçu correctement, elle ne réalise pas une retransmission inutile de l'ensemble de données. Si le premier ensemble de données n'a pas été reçu correctement ou n'a pas été reçu du tout, l'unité de transmission retransmet l'ensemble de données perdu. L'unité de transmission peut ne retransmettre que l'ensemble de données ou les ensembles de données qui ont été perdus. Elle n'a pas besoin de retransmettre un groupe entier d'ensembles de données lorsqu'un seul ensemble de données est perdu. Une retransmission d'ensembles de données peut donc n'être sélectivement limitée qu'aux ensembles de données qui ont été perdus.
Lorsque chaque ensemble de données est envoyé, les données de chaque ensemble comprennent un mot de données redondantes calculées à partir des données non traitées que l'on souhaite transmettre. Cette information redondante prend habituellement la forme de chiffres de contrôle ou de sommes de contrôle. Lorsque chaque ensemble de données est reçu, l'unité de réception calcule indépendamment les données redondantes et les compare aux données redondantes transmises afin de vérifier que la transmission est correcte. L'unité de réception stocke le résultat de cette comparaison, appelé"état", pour chaque ensemble de données à renvoyer en tant que partie d'un accusé de réception.
<Desc/Clms Page number 5>
Chaque noeud comprend un nombre de compteurs de transmission. Chaque compteur de transmission est associé à un noeud correspondant du système auquel le noeud de transmission transmet des ensembles de données. Chaque compteur de transmission d'une unité de transmission engendre une sortie de numéro d'ordre qui est augmentée chaque fois qu'un ensemble de données est envoyé au noeud associé à ce compteur. Chaque ensemble de données comporte une couche de données qui indiquent le numéro d'ordre ou le compte du compteur. L'unité de réception stocke le numéro d'ordre, associé à chaque ensemble de données, avec l'état de cet ensemble de données dans une mémoire ou dans un tampon.
Lorsqu'un noeud renvoie un accusé de réception, l'accusé de réception comporte des données qui indiquent l'état du dernier ensemble de données reçu et aussi l'état associé à un numéro sélectionné des numéros d'ordre précédents.
Si un ensemble de données transmis précédemment n'a pas été reçu, l'état indique cela aussi. De nombreuses classes d'états peuvent être indiquées pour chaque ensemble de données. Par exemple, trois classes différentes d'états de chaque ensemble de données peuvent, sans y être limitées, être : reçues et acceptées (ACK), reçues mais non acceptées (BUSY) ou non reçues (NAK).
Dans une forme de réalisation avantageuse, par exemple l'accusé de réception contient une information d'état des huit derniers ensembles de données. Ceci est choisi sur base de l'évaluation par l'utilisateur des caractéristiques du moyen de transmission, telles que la fiabilité et le retard de propagation, et sur base de la tolérance de l'utilisateur pour des erreurs de transmission. Dans cet exemple, un noeud de transmission, désigné par"noeud A", envoie des ensembles de données à un noeud de réception désigné par"noeud B". Le noeud A comprend un modulo compteur, associé au numéro d'ordre contenu dans des messages transmis au noeud B, qui compte de manière répétée de 0 à 255.
Après chaque transmission d'un ensemble de données du noeud A au noeud B, le noeud B répond en transmettant en retour au noeud A un accusé de réception qui comprend le nombre courant du compteur, l'état du dernier ensemble de données reçu du noeud A et l'état des sept ensembles de données, avec les
<Desc/Clms Page number 6>
nombres précédents du compteur, qui étaient précédemment attendus en provenance du noeud A. Donc, à moins que huit accusés de réception consécutifs provenant du noeud B soient perdus, le noeud A sera toujours informé des ensembles de données de la séquence transmise qui ont été correctement reçus par le noeud B, des ensembles de données qui ont été mal reçus ou qui n'ont pas du tout été reçus, et des ensembles de données qui ont été reçus alors que le noeud B était occupé.
Le noeud A numérote à nouveau ces ensembles de données qui n'ont pas été correctement reçus par le noeud B et il les place à la fin de la séquence dans laquelle ils sont retransmis au noeud B, avec de nouveaux numéros d'ordre. Ce processus continue jusqu'à ce que la séquence complète soit correctement reçue par le noeud B. De plus, à n'importe quel moment, le noeud A peut interroger le noeud B au sujet de l'état des huit derniers messages reçus par le noeud B.
Il est aussi possible de transporter ou d'ajouter cette information d'état à des ensembles de données en cours de transmission du noeud B au noeud A. Donc, lorsqu'il y a une séquence de messages en cours d'échange, tant du noeud A au noeud B qu'aussi du noeud B au noeud A, une information d'état concernant l'ensemble de données reçu le plus récemment et les sept ensembles de données précédemment reçues est échangée en un temps de système très court par le moyen de communication.
En utilisant ce nouveau protocole, des ensembles de messages sont échangés à une vitesse accrue en éliminant une transmission de messages répétés. En outre, moins incertain est le moyen de communication dans le système de communication, plus grands sont les avantages d'utiliser ce nouveau protocole de communication par rapport aux autres protocoles de communication. Le protocole est particulièrement utile dans un système de commande de processus qui ne nécessite pas que des ensembles d'informations soient reçus dans une séquence ou un ordre particulier. Le protocole est aussi particulièrement utile dans un système de commande de processus dans lequel il est souhaité d'éviter la réception d'ensembles de données répétés comme des ensembles de données comportant des instructions d'augmenter ou de diminuer un compteur.
<Desc/Clms Page number 7>
Brève description des dessins
La figure 1 montre deux noeuds qui transmettent des données entre deux systèmes de commande de processus suivant la présente invention.
La figure 2 montre des données provenant d'un ensemble de messages et d'un accusé de réception transmis dans le système de communication de la figure 1.
La figure 3 montre une section du champ d'état utilisé dans l'ensemble de messages de la figure 2.
La figure 4 montre une section du champ d'état utilisé dans l'ensemble de messages de la figure 2.
La figure 5 montre une partie d'un système de communication qui comporte des noeuds avec des liaisons de communication multiples.
Description détaillée des formes de réalisation avantageuses
A la figure 1, un premier système de commande de processus 11 comporte une station de console d'opérateur 101 (avec clavier 102 et écran 103 connus) et des stations d'organes de contrôle 104, reliées l'une à l'autre par une voie de communication 13 et destinées à détecter des paramètres de processus par des détecteurs 105 et à commander des paramètres de processus par des dispositifs de commande de processus 106. Un second système de commande de processus 15 qui peut être semblable au système 11 est interconnecté par une seconde voie de communication 17. Les systèmes de commande 11 et 15 exécutent des fonctions de commande pour le même processus ou pour des processus en relations mutuelles.
Un transfert automatique d'ensembles de données ou d'informations entre les voies de communication Il et 15 et d'autres systèmes est souhaité pour améliorer la commande des processus. Différentes formes de liaisons de communication telles qu'un câble coaxial 19, une liaison par modem téléphonique 21 et une voie de données 12 sont disponibles pour transférer des ensembles de données entre les voies 13 et 17 et les voies d'autres systèmes. Les liaisons de communication sont cependant quelquefois moins qu'absolument fiables et un dispositif d'interface, qui corrige automatiquement des erreurs apparaissant dans la transmission, est
<Desc/Clms Page number 8>
souhaité entre les voies du système de commande et les liaisons de données.
A la figure 1, des ensembles de données sont transférés de la voie 13, via un dispositif d'interface ou noeud 14A, ensuite le long d'une voie 12 à un dispositif d'interface ou noeud 14B et finalement à la voie 17. Des ensembles de données sont transférés aussi à partir de la voie 17 via le dispositif d'interface 14B, ensuite le long de la voie 12 au dispositif d'interface 14A et finalement à la voie 13. Le dispositif d'interface 14B est de conception semblable au dispositif d'interface 14A et la description ci-dessous de l'agencement interne du dispositif d'interface 14A par rapport au système de commande 11 s'applique aussi bien au dispositif d'interface 14B par rapport au système de commande 15.
Le dispositif d'interface 14A comprend un ordinateur 18 qui exécute un calcul et des fonctions de commande et qui transmet des données par une voie 28 à l'intérieur du dispositif d'interface 14A. La voie interne 28 peut s'adapter à des transferts bidirectionnels de données. Un émetteur-récepteur 23 du dispositif d'interface 14A transmet dans les deux sens des ensembles de données entre la voie de système de commande 13 et la voie interne 28. Un émetteurrécepteur 20 du dispositif d'interface 14A transmet dans les deux sens des ensembles de données entre la voie interne 28 et la liaison de données 12. L'émetteur-récepteur 20 transmet aussi des ensembles de données entre la voie interne 28 et un autre dispositif d'interface 14C semblable (représenté à la figure 5) par un câble coaxial 19.
L'émetteur-récepteur 20 du dispositif d'interface 14B est cependant connecté à une liaison par modem téléphonique 21 plutôt que par une liaison par câble coaxial. L'émetteur-récepteur 20 du dispositif d'interface 14A comporte un transmetteur 20A destiné à la transmission d'ensembles de données aux liaisons 12 et 19 et un récepteur 20B destiné à recevoir des ensembles de données en provenance des liaisons 12 et 19. Une mémoire 26 est reliée à l'ordinateur 18 via une voie 28. La mémoire 26 comprend une partie destinée à des compteurs de réception 30, des compteurs de transmission 32 et des mots d'état 34.
L'ordinateur 18 commande un transfert de données à l'inté-
<Desc/Clms Page number 9>
rieur du dispositif d'interface 14A afin de réaliser un transfert d'ensembles de données entre les voies 12 et 13, et il réalise un accusé de réception et des fonctions de correction de messages suivant l'invention.
Les ensembles de messages transmis par les liaisons 12,19 et 21 peuvent prendre une diversité de formes. Différents procédés connus de modulation, de superposition de mots de commande, de préliminaires, de délimiteurs, de formats en série ou en parallèle, etc., peuvent être mis en oeuvre dans des ensembles de messages afin de les rendre compatibles avec le type de liaison ou de couche physique de communication qui a été sélectionné pour être utilisé. Deux ensembles de messages sont représentés schématiquement à la figure 2. L'ensemble 36A représente un ensemble envoyé à partir du dispositif d'interface 14A au dispositif d'interface 14B de la figure 1. L'ensemble 36B représente des ensembles envoyés à partir du dispositif d'interface 14B au dispositif d'interface 14A de la figure 1.
Les ensembles de données 36A et 36B ont un certain nombre de champs différents qui comportent des sections de protocole 38A et 38B suivies par des champs de données de messages 40A et 40B respectivement.
Les sections de protocole 38A et 38B comportent des champs de comptes binaires 42A et 42B qui indiquent le nombre total de bits des ensembles 36A et 36B respectivement. Les sections de protocole 38A et 38B comportent aussi des champs de séquence de transfert 44A et 44B qui indiquent la séquence des données dans les champs de données de messages 40A et 40B (par exemple de 0 à 255) respectivement, des champs de séquence de réception 46A et 46B qui indiquent le numéro d'ordre du dernier message reçu (par exemple de 0 à 255), des bits d'interrogation d'état 48A et 48B, des champs d'accusé de réception (ACK) 50A et 50B et des champs d'occupation 52A et 52B respectivement.
Les ensembles de messages 36A et 36B comportent aussi un champ de données redondantes 54A et 54B respectivement comme par exemple une somme de contrôle calculée par le dispositif qui envoie, à partir des données de messages 40A ou 40B. Les données de messages 40A ou 40B sont habituellement constituées par un grand nombre de groupes de bits, par exemple 128
<Desc/Clms Page number 10>
groupes de bits, et elles peuvent comporter des données redondantes supplémentaires, comme des chiffres de contrôle.
Après qu'un ensemble de données 36A a été envoyé par le dispositif d'interface 14A au dispositif d'interface 14B, l'ensemble de données 36B représenté à la figure 2 est renvoyé en tant qu'accusé de réception. L'ensemble de données 36B comporte un champ de compte de bits 42B qui indique la longueur des données de message 40B. L'ensemble de données 36B comprend un champ de séquence de réception 46B qui indique le nombre séquentiel de messages de l'ensemble de données en cours d'accusé de réception. Un champ ACK 50B et un champ d'occupation 52B indiquent respectivement si chacun des huit derniers ensembles de données a été reçu et si le dispositif d'interface 14B était occupé lorsque l'ensemble de données a été reçu.
Les champs 50B et 52B indiquent ensemble un état des ensembles de données précédemment envoyés au dispositif d'interface 14A par la liaison 12 de la figure 1.
La figure 3 montre une vue détaillée du champ ACK 50B. Le champ d'accusé de réception 50B comprend des bits d'accusé de réception 50BO à 50B7 qui indiquent si chacun des huit derniers ensembles de données a été reçu. Le champ d'occupation 52B montré à la figure 4 comporte des bits d'occupation 52BO à 52B7 qui indiquent si le dispositif d'interface 14B était occupé lorsque chacun des huit derniers ensembles de données a été reçu.
En fonctionnement, les noeuds 14A et 14B montrés à la figure 1 sont en communication l'un avec l'autre en utilisant la liaison de communication 12. Des ensembles de messages tels que 36A et 36B sont transmis à la liaison de communication 12, de façon bidirectionnelle, entre le noeud 14A et le noeud 14B. Une section de protocole, 38A ou 38B par exemple, qui accuse réception d'un premier ensemble de données allant dans un premier sens dans la liaison 12 peut comporter des données dans le champ de données 40A ou 40B qui reviennent, en sens opposé, dans la liaison 12, au dispositif qui a transmis le premier ensemble de données. Par exemple, en supposant que le noeud 14A transmet au noeud 14B une séquence d'ensembles de messages semblables à l'ensemble 36A.
Le numéro
<Desc/Clms Page number 11>
de message, dans le champ de séquence de transmission 44A de la section de protocole 38A de chaque ensemble de messages 36A envoyés à partir du noeud 14A au noeud 14B, contiendra le numéro d'ordre de message de cet ensemble de messages. Ces numéros de message peuvent être compris dans la gamme allant de 0 à 255. La séquence répète une fois le numéro de message quand le champ de séquence de transmission 44 atteint le nombre 255. En se référant à la figure 1, le noeud 14A reçoit des données d'entrée par la voie de données d'entrée 13. Ces données d'entrée sont passées et déplacées vers le champ de données de messages 40A par l'ordinateur 18. L'ordinateur 18 forme l'ensemble de messages 36A en additionnant la section de protocole 38A au champ de données de messages 40A.
L'ordinateur 18 du noeud 14A ajoute aussi des accusés de réception, pour d'autres ensembles, au champ ACK 50A et au champ d'occupation 52A de la section de protocole 36A. Le numéro de message dans le champ de séquence de transmission 44A de la section de protocole 38A est extrait des compteurs de transmission 32 de l'agencement de mémoire 26 du noeud 14A. Le numéro de réception d'un champ de séquence de réception 46A de la section de protocole 38A est extrait des compteurs de réception 30 de l'agencement de mémoire 26 du noeud 14A. L'ordinateur 18 du noeud 14A extrait, de la mémoire 34, une information du champ d'accusé de réception 50A et du champ d'occupation 52 A, comme expliqué ci-dessous. Un bit d'interrogation d'état 48A est ajouté par l'ordinateur 18 comme expliqué ci-dessous.
Après avoir formé l'ensemble de messages 36A, l'ordinateur 18 passe l'ensemble
EMI11.1
de messages 36A à l'émetteur-récepteur 20 par la voie interne 28. L'émetteur-récepteur 20 formate cet ensemble de messages destiné à une transmission par la liaison de communication 12.
Comme le noeud 14A envoie une séquence d'ensembles de messages 36A, ceux-ci sont reçus au noeud 14B. En réponse à chaque ensemble de messages 36A reçu en provenance du noeud 14A, le noeud 14B forme un ensemble de données 36B à transmettre en retour au noeud 14A. Par exemple, après qu'un message a été reçu par le noeud 14B en provenance du noeud 14A, le noeud 14B devrait transmettre un ensemble de données 36B comportant des champs
<Desc/Clms Page number 12>
de numéro de messages qui correspondent à ceux des ensembles dont sont accusés la réception.
En se reportant à la figure 3, les bits individuels 50BO à 50B7, qui comprennent les données du champ ACK 50B, y sont représentés. Par exemple, le chiffre"1"du bit ACK 50BO indique que le dernier message provenant du noeud 14A a été correctement reçu. Le chiffre"0"du bit d'accusé de réception 50B1 indique que les messages, du deuxième au dernier, reçus par le noeud 14B et provenant du noeud 14A, soit n'ont pas été reçus soit ont été reçus d'une manière incorrecte comme cela est indiqué en comparant les données de somme de contrôle en 54A avec la somme de contrôle calculée par le noeud 14B.
Ce code continue pour les bits d'accusé de réception 50B2 à 50B7. Donc, chaque bit d'accusé de réception 50BO à 50B7 représente un numéro de message décalé de sorte que le numéro de message réel est repéré à partir d'une valeur de base stockée dans le champ de séquence de réception 46B qui indique le numéro de message du dernier message reçu par le noeud 14B en provenance du noeud 14A. Par exemple, lorsque le champ de séquence de réception 46B contient"22", le bit d'accusé de réception 50B représente un message"22", le bit d'accusé de réception 50B1 représente un message"21", le bit d'accusé de réception 50B2 représente un message"20"et ainsi de suite.
Le champ d'occupation 52B transporte l'état d'occupation des huit derniers messages reçus par le noeud 14B en provenance du noeud 14A. Par exemple, lorsque le champ d'occupation 52 du noeud B contient le nombre"16" (en binaire : 0001 0000), le bit d'occupation 52B3 montré à la figure 4 transporte un"1"tandis que les bits d'occupation 52BO à 52B2 et 52B3 à 52B7 transportent un"0".
Ceci indique que le noeud 14B était occupé lorsque les messages, du quatrième au dernier, étaient reçus. Ceci peut être arrivé parce que les mémoires du noeud 14B étaient pleines ou parce que le noeud 14B était incapable, pour toute autre raison, d'accepter le message.
De même que pour le champ ACK 50B, chaque bit d'occupation 52BO à 52B7 du champ d'occupation 52 représente une valeur décalée à
<Desc/Clms Page number 13>
partir d'une valeur de message de base contenue dans le champ de séquence de réception 46B. Par exemple, lorsque le champ de séquence de réception 46B transporte le nombre"22", le bit d'occupation 52BO représente l'état d'occupation du numéro de message"22"reçu par le noeud 14B en provenance du noeud 14A, le bit d'occupation 52B1 correspond au message "21", le bit d'occupation 52B2 correspond au message"20", et ainsi de suite.
Lorsque le noeud 14A reçoit l'ensemble 36B, le noeud 14A calculera que les messages "19" à "21" n'ont pas eu d'accusé de réception et que, lorsque le message 111911 a été reçu par le noeud 14B, le noeud 14B était occupé. Le noeud 14A devrait placer ensuite les messages "19" à "21" au sommet de la pile de messages en ligne pour être transmis au noeud 14B. Les messages "19" à "21" devraient être renumérotés d'une manière correspondante, dans la séquence, avant d'être transmis au noeud 14B.
Dans des conditions critiques, huit messages consécutifs pourraient être perdus dans la transmission du noeud 14A au noeud 14B tandis que soit le noeud 14B n'aurait transmis aucun ensemble de messages 36B au noeud 14A soit ces ensembles de messages auraient aussi été perdus dans la transmission.
Dans cette situation, le noeud 14A peut envoyer un ensemble de messages avec un bit d'interrogation d'état (SIB), dans le champ 48A de la section de protocole 38A, qui est mis à"l". Lorsque le noeud 14B reçoit l'ensemble de messages 36A avec le SIB 48A mis à"l", si cet ensemble 36A ne contient pas de données dans le champ de données de messages 40A comme cela est indiqué par les contenus du champ de compte de bits 42A, le noeud 14B répond immédiatement par un ensemble de messages 36B qui comporte sa section de protocole courante 38B sans mise à jour du numéro reçu et stocké dans la mémoire 30 du noeud 14B.
Le noeud 14A continue à transmettre des ensembles de messages 36A avec un bit d'interrogation d'état, dans le champ de données 48A, qui est mis à "1" jusqu'à ce que le noeud 14A reçoive une réponse du noeud 14B. Donc le système ne manquera à un protocole du type de temps imparti qu'après que huit ensembles consécutifs de messages 36A ont été perdus dans la transmission au noeud 14B.
<Desc/Clms Page number 14>
La figure 5 montre un schéma d'un réseau de communication 60 complexe qui comporte de nombreux noeuds 14A à 14H interconnectés par des liaisons 12,19, 21 et 61 à 73. Les noeuds du réseau peuvent passer des ensembles de données entre leurs systèmes de commande de processus associés (qui ne sont pas représentés) et les liaisons connectées et, en outre, à partir d'une liaison connectée à une autre liaison connectée, de façon que des messages peuvent être passés de noeud à noeud. De tels réseaux de communication comportent souvent un nombre de"niveaux"différents, responsables du transport du message de noeud à noeud. Par exemple le réseau de communication peut comporter un niveau élevé qui n'a pour but que la configuration et l'adressage du réseau dans sa totalité.
Il peut y avoir un niveau intermédiaire ou un niveau de transport qui s'occupe de fonctions de communication intermédiaires telles que le trajet qu'un message est supposé suivre entre deux noeuds. Par exemple, des flèches de la figure 5 indiquent un trajet possible pour des ensembles de messages entre les noeuds 14A et 14H. Enfin, il peut y avoir un niveau bas ou un niveau de liaison qui ne s'occupe que de transmettre un message par une liaison de communication unique, comme la liaison 12. Donc, c'est le niveau de liaison qui effectue les fonctions associées à la transmission d'un message entre le noeud 14A et le noeud 14B, entre les noeuds 14B et 14D, entre les noeuds 14D et 14E et entre les noeuds 14E et 14H, en utilisant le trajet indiqué par les flèches, entre les noeuds 14A et 14H de la figure 5.
En supposant que chaque liaison de communication, telle que les liaisons 12,19, 21 et 61 à 73 montrées à la figure 5, a une fiabilité de 70 %, chaque liaison de communication du trajet entre 14A et 14H abaisse individuellement la probabilité que le message atteigne le noeud de destination. Par exemple, en utilisant des liaisons de communication ayant une fiabilité de 70 %, la probabilité que
EMI14.1
le message atteigne le noeud 14H, en provenance du noeud 14A en suivant le trajet indiqué par les flèches, est de 0, 74 = 0, 24, soit 24 %. Après réception du message en provenance du noeud 14A, le noeud 14H doit d'une certaine manière accuser réception du message. L'accusé de réception du noeud 14H n'a aussi que 24 % de probabilité d'atteindre
<Desc/Clms Page number 15>
le noeud 14A suivant le trajet inverse de celui indiqué par les flèches de la figure 5.
Donc, la probabilité totale concernant le noeud 14A qui transmet un message au noeud 14H et qui reçoit correctement
EMI15.1
Q une réponse du noeud 14H est de 0, 78 = 0, 058, soit 5, 8 %.
Dans un système de communication tel que représenté à la figure 5, la technique améliorée pour accuser réception d'ensembles de données, de la présente invention, est bien adaptée à l'exécution du niveau de liaison. Le niveau de liaison assure donc essentiellement à 100 % de probabilité que le message soit reçu entre deux noeuds adjacents, de façon que le niveau de transport et le niveau élevé puissent être configurés comme si le niveau de liaison est essentiellement fiable à 100 %.
Pour chaque noeud avec lequel un noeud d'un système de communication échangera des ensembles de messages comme ceux 36A ou 36B, des compteurs de réception 30 séparés, des compteurs de transmission 32 et une information d'état de messages reçus précédemment doivent être stockés dans l'agencement de mémoire 26 montrée dans le noeud 14A de la figure 1. Par exemple, dans le système de communication de la figure 5, chaque noeud 14A, 14B, 14C, etc., n'échangerait des ensembles de messages semblables à 36A et 36B qu'avec les noeuds directement connectés, si le protocole de la présente invention était exécuté au niveau de la liaison. Donc, des noeuds 14D et 14G du système 60 de la figure 5 nécessiteraient chacun quatre compteurs de réception 30 et quatre compteurs de transmission 32.
Chaque noeud 14A, 14B, 14C, etc., serait aussi nécessaire pour stocker l'état des huit messages reçus précédemment et provenant de chacun des quatre noeuds adjacents 14 de la mémoire 34 dans l'agencement de mémoire 26. En utilisant une mémoire d'ordinateur supplémentaire et des ensembles de données qui contiennent des champs d'adresses, la présente invention peut être exécutée à un niveau de communication supérieur, par exemple au niveau intermédiaire.
Cette technique pour accuser réception d'ensembles de messages assure une communication à grande vitesse entre des noeuds d'un système de communication même lorsque les liaisons de communication 12 du système offrent une fiabilité faible. La
<Desc/Clms Page number 16>
technique réduit le nombre de transmissions de messages répétées et diminue la somme de temps dépensée en attendant que des temps impartis aient lieu.
Quoique la présente invention soit décrite en faisant référence à des formes de réalisation avantageuses, des hommes du métier reconnaîtront que des modifications peuvent être apportées à la forme et aux détails sans se départir de l'esprit ou de la portée de l'invention. Par exemple, bien qu'un système et un procédé soient décrits et qu'ils ne retiennent que trois types d'état pour les huit messages précédents, d'autres numéros de message pourraient être utilisés ou des sections de protocole présentant plus de trois types d'état pourraient être comprises dans les ensembles de messages.