90 likes | 294 Views
Un programme pour l’analyse de protocoles de communication. Projet de synthèse proposé par Luigi Logrippo. Importance des modèles de machines communicantes.
E N D
Un programme pour l’analyse de protocoles de communication Projet de synthèse proposé par Luigi Logrippo
Importance des modèles de machines communicantes • Les modèles de machines communicantes se prêtent très bien à représenter les protocoles de communication, protocoles téléphoniques ou autres • En analysant le modèle, il est possible de valider le système et voir s’il est susceptible de fautes comme interblocages (deadlock) ou autres
Communication asynchrone C12 … … C21 A B Service Provider • DDans la communication asynchrone, les machines communiquent par des canaux pouvant contenir des messages • NNormalement modélisés par des files FIFO infinies et sans pertes de données • UUne machine peut donc mettre des données dans une file et continuer son travail, peut être mettant d’autres données dans la même file plus tard • LL’autre machine prendra des données de la file quand elle voudra. Machine B Machine A
Modèles de machines à états finis communicantes asynchrones(appelés aussi CSM ou CFSM, Communicating Finite-state Machines) C12 … … C21 • MMachines à états finis communicantes au moyen de files d’attentes Files FIFO et sans pertes 20 10 !3 ?1 ?3 !1 !4 ?4 21 11 !2 ?2 22 12 P.Ex un client et serveur. 1 requête d’accès 2 permission d’accès 3 refus d’accès 4 terminaison d’accès ! = envoi de message ? = réception de message
Exécution du système serveur client Files FIFO et Files FIFO et Files FIFO et 20 20 20 10 10 10 sans pertes sans pertes sans pertes !3 !3 !3 ?1 ?1 ?1 ?3 ?3 ?3 !1 !1 !1 C C 12 12 … … … … !4 !4 !4 ?4 21 21 21 11 11 11 … … … … !2 !2 !2 ?2 ?2 ?2 C C 21 21 22 22 22 12 12 12 • LL’état global initial est • lL’ensemble de tous les états initiaux des composants • eEt l’ensemble de tous les contenus de files initiales • DDans ce cas <10,20>,<ε, ε> • ε file vide… • DDans cet état, le seul événement qui peut se produire est l’envoi d’un 1 par le client • I1 est mis dans la file FIFO, puis la seule chose qui peut se produire est la réception de 1 de la part du serveur
Machine globale du système Files FIFO et Files FIFO et 20 20 10 10 sans pertes sans pertes !3 !3 ?1 ?1 ?3 ?3 !1 !1 C C C 12 12 12 … … … ?4 !4 !4 21 21 11 11 … … … !2 !2 ?2 ?2 C C C 21 21 21 22 22 12 12 • CChaque état global du système spécifie: • LL’état des deux machines communicantes • LLe contenu des deux files • PPar exemple, au début les deux machines sont dans leur état initial • LLe seul premier événement possible est que le client met 1 dans la file et passe à l’état suivant, tandis que la deuxième machine reste sur son état • LLe serveur peut puis recevoir cet 1 • AAprès ça, le client peut envoyer • un 3, ce qui change l’état global à <11,20>, avec un 3 dans la file de sortie du client • ou un 2, ce qui change l’état global à <11,22>, avec un 2 dans la file de sortie du client • Eetc.
La machine globale du système <10,20>,<ε, ε> !1 <11,20>,<1, ε> ?1 ?4 <11,21>,< ε, ε> !2 ?4 !3 <11,22>,< ε, 2> ?2 <11,20>,< ε, 3> <12,22>,< ε, ε> !4 <10,22>,< 4, ε> !1 <11,22>,<[4,1], ε> ?4 [4,1] :canal contenant 4 puis 1 ε : canal vide
Le projet • Écrire un programme • Préférablement en Java, cependant autres langages pourront être discutés • Qui accepte en entrée la description de deux machines à état fini communicantes • Petit GUI à programmer • Et construit l’automate global qui représente le comportement conjoint des machines • Indiquant aussi la possibilité d’interblocages et autres erreurs communs
Pour informations ultérieures • Chapitre 2 de mon cours gradué • http://w3.uqah.uquebec.ca/luigi/INF6001/index.html • Aussi livre de Tanenbaum: Réseaux. Dans l’édition que j’ai c’est la Section 3.5 ou sinon il y aura une section sur Spécification et Vérification de protocoles