2. INF6001 Chap 2 2
Exemple:
un automate qui modè le le comportement d’un
ordinateur
Au début il est en état éteint
L’événement allumer le met en état allumé
L’événement CtrAltDel le met en état login
L’événement login le fait passer à un des deux états:
Login accepté
Login refusé
S’il accepte, l’événement clique sur icône Word le fait passer en état: prêt pour
WordProcessing
Noter:
Ce qui précède est une abstraction. Certaines choses ne sont pas dites: p.ex.
quel sera le résultat si
CtrAltDel ne sont pas frappés simultanément
On frappe CtrAltDel avant d’allumer
On fait des erreurs de frappe pendant le login
Etc.
3. INF6001 Chap 2 3
Concept d’é tat
Le concept d’état du système est une abstraction utile
Représente une instantanée (snapshot) du contenu de
la machine à un moment donné
Déterminé par ce qui s’est produit dans la machine
avant
Détermine ce qui peut se produire dans le futur
État:
global: état de tout le système dans son entièreté
local: état d’une entité dans le système
Transitions d’état: événements qui causent
changements d’états
4. INF6001 Chap 2 4
Machines à é tats
Comportements possibles de
cette machine:
Elle peut:
Envoyer un message 1,
Puis recevoir un message 3
Puis envoyer un 4
Recevoir un 5, etc.
Ou
Recevoir un message 2
Puis recevoir un message 5
Puis envoyer un message 4 et
retourner à pouvoir recevoir 5,
etc.
L’état 5 est un état ‘final’
! 4
état 1 état 2
état 3 état 4
! 1
? 2
? 3
? 5
état 5
? 2
5. INF6001 Chap 2 5
Tableaux de transition d’é tats
état 1 état 2
état 3 état 4
! 1
? 2
? 3
? 5
! 4
!1 !4 ?2 ?3 ?5
1 3 2
2 4
3 4
4 2 5
Machine partiellement spécifiée:
Les transitions impossibles ne sont pas
spécifiées.
Nous pouvons interpréter ces transitions
comme transitions à un état erreur
état 5
? 2
6. INF6001 Chap 2 6
Diffé rents modè les à é tats
Les machines à états, aussi appelés automates, sont
un concept très utilisé en informatique
Un bon nombre de défs différentes existe, chacun avec
sa propre théorie avec des légères différences
Tous les modèles suivants sont utilisés dans la
conception des protocoles, et aussi dans la conception
de circuits
7. INF6001 Chap 2 7
Systè mes de transition
Le concept le plus général
Nous avons un ensemble d’états (pas nécess. fini) et
une relation de successeur entre états
Exemple de s.d.t.:
état 1 état 2
état 3 état 4
8. INF6001 Chap 2 8
Systè mes de transition é tiqueté s (LTS, labeled transition
systems)
Les transitions sont nommées
état 1 état 2
état 3 état 4
a
b c d
e
9. INF6001 Chap 2 9
Utilisation des é tiquettes
Nous pouvons donner une signification aux étiquettes,
p.ex.
?x Veut dire une entrée (input) d’une valeur x
!y Veut dire une sortie (output) d’une valeur y
état 1 état 2
état 3 état 4
! 1
? 2
? 5
! 4
10. INF6001 Chap 2 10
Notation
+ et – sont aussi utilisés pour indiquer la réception ou
l’envoi d’un message, respectivement
? et ! sont plus utilisés récemment
11. INF6001 Chap 2 11
Machines de Mealy
Chaque arête est étiquetée par une paire
Entrée/Sortie
Voulant dire que quand une entrée comme spécifié se vérifie, il
y a la sortie spécifiée et la transition d’état a aussi lieu
état 1 état 2
état 3 état 4
1/b
2/a
3/d
5/c
4/b
Quand l’entité spécifiée reçoit
un 2 en état 1, elle fait sortir
un a et le système effectue
une transition à l’état 2
12. Spec partielle du comportement d’un té lé ph.
dé crit comme machine de Mealy
Idle
Dialing
OffHook
DialTone
Path
Active
DialDIgits
Clicks
Ringing
OnHook
Click
CallAlert
StartRinging
OffHook
StopRing
13. INF6001 Chap 2 13
Le service TCP dé crit comme machine de
Mealy
http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html
Quelques états n’ont
pas de sortie
14. INF6001 Chap 2 15
Ceci est une application du concept de:
Établissement en trois étapes: Three-way handshake
Client: Je suis prêt à envoyer (SYN)
Serveur: D’accord (SYN+ACK)
Client: Allons-y donc (ACK)
Le client et le serveur peuvent alors commencer à transférer
des données
Invitation
Acceptation (ou non)
Confirmation
15. INF6001 Chap 2 16
Machines de Moore
Plus semblables aux systèmes de transitions étiquetés
Chaque arête est associé à un symbole, qui dénote un
événement abstrait (une entrée,une sortie…) qui cause la
transition
état 1 état 2
état 3 état 4
b
a
d
c
b
16. INF6001 Chap 2 17
T-ConReq
T-ConConf
T-ConInd
T-ConResp
A B
Connexion avec Succès AB
T-ConReq
T-DiscInd
T-ConInd
T-DiscReq
A B
Connexion refusée par B
A B
Tentative de
connexion de A
refusée
par le fourniss. de service
T-ConReq
T-DiscInd
T-DatReq
T-DatInd
A B
Transfert Données
AB
T-DiscReq
T-DiscInd
A B
A décide de
déconnecter
T-DiscReq
T-DiscReq
A B
Les deux décident
de déconnecter
(collision)
T-DiscInd
T-DiscInd
A B
Service de la couche transport,
Cas d’usage
17. INF6001 Chap 2 18
Le service de transport OSI dé crit
comme machine de Moore (un seul T-
SAP)
Idle
Incoming
Connection
Pending
Outgoing
Connection
Pending
Data
Transfer
Ready
T-DiscReq
T-DiscInd
T-DiscReq
T-DiscInd
T-ConReq T-ConInd
T-DiscReq
T-DiscInd
T-ConConf
T-ConResp
T-DatReq, T-DatInd
Simplifié!
18. Le protocole Transport OSI
dé crit comme machine de Mealy
INF6001 Chap 2 20
(Notes de cours du Prof. Bochmann)
Très simplifié!
20. INF6001 Chap 2 22
Le passage du temps dans les
machines
En principe, les transitions sont instantanées
Le temps passe quand le système est dans un état
Cependant il y a plusieurs variations à ce concept
Différents types de machines temporisées
21. INF6001 Chap 2 23
Machines communicantes
Une machine à états peut définir un système entier ou
une partie de système
Si elle définit une partie d’un système, elle sera
composée avec autres machines
Plusieurs méthodes de communications ont été
utilisées
Nous en discuterons ici deux:
Synchrones
Asynchrones
22. INF6001 Chap 2 24
Communication asynchrone
Dans la communication asynchrone, les machines communiquent par des
canaux pouvant contenir des primitives de communication (PDUs ou
SDUs)
Normalement modélisés par des files FIFO infinies et sans pertes de
données
Ces canaux sont une abstraction pour le fournisseur de service sous-
jacent
Une 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
L’autre machine prendra des données de la file quand elle le voudra.
…
…
CAB
CBA
Machine A Machine B
A B
Service Provider
23. INF6001 Chap 2 25
Modè les de machines à é tats finis
communicantes asynchrones
(appelé s aussi CSM ou CFSM, Communicating Finite-state Machines)
Machines à états finis communicantes à moyen de files
d’attentes
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
…
…
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
?4
24. INF6001 Chap 2 26
Exé cution du systè me
L’état global initial est
l’ensemble de tous les états
initiaux des composants
et l’ensemble de tous les
contenus de files initiales
Dans ce cas <10,20>,<ε, ε>
ε file vide…
Dans cet état, le seul événement
qui peut se produire est l’envoi
d’un 1 par le client
Il est mis dans la file, puis la seule
chose qui peut se produire est la
réception de 1 de la part du
serveur
client serveur
…
…
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
…
…
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
……
……
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
?4
25. INF6001 Chap 2 27
Construction de la machine globale du
systè me
Chaque état global du système spécifie:
L’état des deux machines communicantes
Le contenu des deux files
Par exemple, au début les deux machines sont dans leur état initial
Le 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
Le serveur peut puis recevoir
Après ça, le serveur peut envoyer
un 3, ce qui change l’état global à <11,20>, avec un 3 dans la file de sortie du serveur
ou un 2, ce qui change l’état global à <11,22>, avec un 2 dans la file de sortie du serveur
Etc.
…
…
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
……
……
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
C12
C21
?4
26. Transitions possibles à l’é tat initial?
INF6001 Chap 2 28
…
…
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
?4
Transitions possibles à l’état initial?
29. Retrouver un é tat pré cé dent
INF6001 Chap 2 31
…
…
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
?4
Après la trace: !1, ?1, !3 nous nous retrouvons à l’état global suivant:
3
La seule transition possible nous ramène à un état déjà vu.
30. INF6001 Chap 2 32
La machine globale du systè me (composition
asynchrone)
<10,20>,<ε, ε>
<11,20>,<1, ε>
<11,21>,< ε, ε>
<11,20>,< ε, 3>
<11,22>,< ε, 2>
<12,22>,< ε, ε >
<10,22>,< 4, ε >
<11,22>,<[4,1], ε >
…
…
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
……
……
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
C12
C21
!1
?1
!3
!2
?2
!4
!1
?4
?4
ε : canal vide
[4,1] :canal contenant 4 puis 1
?4
?3
31. INF6001 Chap 2 33
É quivalence d’é tats
Pourquoi sommes-nous retournés à un état précédent
après certaines transitions?
Car nous avons détecté que le nouveau état était
équivalent à un état déjà trouvé avant
Car les deux machines sont dans les mêmes états et
le contenu des canaux est le même
Plus en général, deux états sont équivalents s’ils
permettent les mêmes séquences d’événements futurs
32. INF6001 Chap 2 34
Machines globales finies et infinies
On voit que C12 n’aura jamais plus de 2 messages et
C21 jamais plus d’1
Nous avons ici une machine globale qui est finie
La machine globale d’un système n’est pas nécessairement
finie
Nous pouvons avoir un nombre infini d’états si les files
peuvent grandir à longueurs arbitrairement grandes
Le fait qu’une file puisse être infinie est une caractéristique à
prendre en considération (nous verrons…)
33. INF6001 Chap 2 35INF6001 Chap 2
Machines infinies
Une file peut grandir ‘à jamais’
Dans ce cas, il y aura (au moins) un chemin dans l’arbre
d’accessibilité dans lequel la machine pourra avoir un
nombre toujours grandissant d’états.
Dans ce chemin, la machine globale ne retournera jamais à
un état déjà vu
Donc, machine globale infinie.
!a ?a
La machine de
droite n’est pas
obligée à prendre
tout de suite
canaux
34. INF6001 Chap 2 36
Analyse d’accessibilité
Le processus d’obtenir la machine globale à partir des
machines locales s’appelle
Analyse d’accessibilité, reachability analysis
Le graphe obtenu faisant l’analyse d’accessibilité
s’appelle
Graphe d’accessibilité
35. INF6001 Chap 2 37
Critique du modè le de communication
asynchrone
Le modèle de communication asynchrone représente bien la
façon de penser des ingénieurs de protocoles
Envoyer et continuer
Plusieurs langages et outils de spec et V&V utilisent ce modèle
Notamment SDL
Cependant il peut fausser la réalité:
Il force à mettre des files partout, même quand la communication devrait
être directe
Les files FIFO infinies et parfaites n’existent pas en réalité:
Les médias de communication peuvent perdre des données et
peuvent permettre aux données de se chevaucher
Surtout dans le cas de transmission sans connections
Ils ne sont pas infinis, même si leur capacité peut être très grande
36. INF6001 Chap 2 38
Repré sentation de canaux avec files non-
FIFO
Deux manières:
Représenter la perte ou autres dans une des deux machines
communicantes, p.ex. dans le récepteur:
Ou sinon définir les canaux avec un troisième processus,
voir modèle synchrone
?perte
?réception
Dans ce cas le message
est ignoré
37. INF6001 Chap 2 39
Modè le de communication synchrone
Dans le modèle synchrone, nous n’avons pas de canaux prédéfinis
Les entités communiques directement par un mécanisme de communication
partagé
La communication entre deux entités est un fait qui implique les deux
simultanément
Une entrée et une sortie deviennent une seule action
Mécani
sme de
commu
nication
Machine A Machine B
38. INF6001 Chap 2 40
Machine globale pour le cas synchrone
(aussi appelé e composition synchrone)
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
?4
La combinaison de !
1 et ?1 donne une
seule action 1
13
2
10,20
11,21
12,22
4
39. INF6001 Chap 2 41
Critique du modè le synchrone
L’envoyeur et le récepteur sont bloqués ensemble
pendant l’exécution d’une opération en commun
Peu apprécié par les ingénieurs de télécom car ils
sont plutôt habitués à penser en termes de envoyer-
continuer
Utilisé dans les algèbres de processus: CCS, CSP,
LOTOS
40. INF6001 Chap 2 42
Ré lation entre les deux modè les
Le modèle synchrone peut modéliser le modèle
asynchrone par l’utilisation d’entités ‘canaux’
intermédiaires
Le modèle asynchrone avec files de longueur 0
correspond au modèle synchrone
canaux
A
B
41. INF6001 Chap 2 43
Conditions d’erreur dans les systè mes
synchrones
Dans les systèmes synchrones, il y a essentiellement une seule possibilité d’erreur, l’impasse
(deadlock), le fait que il n’y a pas façon de sortir d’un état global
Étant donné que normalement un système réparti est censé être toujours en fonctionnement, une
impasse est considérée un problème
!1?3
?2
!6
10
11
12
?1!3
!2
20
21
22
?4
13
2
10,20
11,21
12,22Impasse, pas
d’état successeur
42. INF6001 Chap 2 44
Conditions d’erreur dans les systè mes
asynchrones
Dans le cas asynch, il y a plusieurs cas d’erreur
Impasse = deadlock: un état accessible dans lequel tous les
canaux sont vides et aucun processus ne peut envoyer
Réception non spécifiée: il y a un message au début d’un
canal qui ne peut pas être reçu car il n’y a pas de transition
appropriée (spec incomplète)
Réception non-spécifiée bloquante: il y a une réception non
spécifiée et à cause de ça le système se trouve en impasse
Transitions non-exécutables: pas une erreur bloquante, mais
pourrait être un symptome d’un problème de conception
Etats non-exécutables: pas une erreur bloquante, mais
pourrait être un symptome d’un problème de conception
44. INF6001 Chap 2 46
Arbre d’accessibilité partiel
<10,20>,< ε, ε >
<11,20>,<a, ε> <10,21>,< ε,b>
<12,20>,<ac,ε> <11,21>,<a, b> <11,21>,< ε, ε >
<12,21>,<a, ε > <12,21>,< c, ε >
<12,22>,< ε, ε >
!a !b
etc. etc.
!c !b
?b
?a
?b
!c
Impasse
Canaux vides,
Aucune action possible
Réceptions
non specifiées:
a ne peut pas
être reçu, mais il y
a d’autres actions
possibles
Réception non specifiée
bloquante: c ne peut pas être
reçu et il n’y a pas d’autres
actions possibles
a!
45. Ré ception non-spé cifié e bloquante
Après la trace !b, ?b, !c
INF6001 Chap 2 47
!a?d
10
11
12
?b !c
?b
?b
…
…
C12
C21
20
21
22
23
?c
!b
?a
!d
?a
!a?d
10
11
12
?b !c
?b
?b
……
……
C12
C21
C12
C21
20
21
22
23
?c
!b
?a
!d
?a
<12,21>,< c, ε >
Machine 2 ne peut pas recevoir le c
Machine 1 ne peut rien envoyer, ni
recevoir
c
46. Impasse - deadlock
INF6001 Chap 2 48
<12,22>,< ε, ε >
Les deux machines ne peuvent
rien envoyer
Et il n’y a rien à recevoir dans les
files!
!a?d
10
11
12
?b !c
?b
?b
…
…
C12
C21
20
21
22
23
?c
!b
?a
!d
?a
!a?d
10
11
12
?b !c
?b
?b
……
……
C12
C21
C12
C21
20
21
22
23
?c
!b
?a
!d
?a
47. Ré ception non spé cifié e non bloquante
INF6001 Chap 2 49
!a?d
10
11
12
?b !c
?b
?b
…
…
C12
C21
20
21
22
23
?c
!b
?a
!d
?a
!a?d
10
11
12
?b !c
?b
?b
……
……
C12
C21
C12
C21
20
21
22
23
?c
!b
?a
!d
?a
<12,20>,<ac,ε>
La file C12 contient a au début mais
la machine 2 est dans son état 20 et
ne peut pas le recevoir
Ceci ne bloque pas le système car les
deux machines peuvent envoyer des
messages
Possibilité d’erreur, cas à étudier
ac
49. INF6001 Chap 2 52
Gé né ralisation au cas de plusieurs
machines
Jusqu’à présent, nous avons discuté le cas de 2 machines communicantes
Les mêmes idées peuvent être généralisées au cas de 3, 4, … machines
communicantes
Tant dans le cas de composition synchrone, que asynchrone
Et effectivement, tout système de protocoles a besoin d’au moins 4
machines pour pouvoir être exprimé complètement:
Usager A
ProtocoleProtocole
Usager B Les machines pour les
usagers pourraient être
extrêmement simples:
Prendre des données,
les utiliser, prendre,
utiliser…
50. INF6001 Chap 2 54
Problè mes fondamentaux dans
l’analyse des protocoles
Problèmes d’indécidabilité
Problèmes d’explosion d’états
51. INF6001 Chap 2 55
Problè mes d’indé cidabilité
Une des conséquences de l’insolvabilité du problème de l’arrêt
de machines de Turing est que
déterminer si un canal est borné ou non est indécidable
On peut chercher à construire la machine globale, si cette
construction s’achève nous saurons, mais cette construction
pourrait continuer à jamais
Malheureusement, le problème de décider l’impasse, etc. pour
les protocoles dont les canaux ne sont pas bornés est aussi
indécidable
Nous pouvons toujours faire l’analyse en faisant l’hypothèse
qu’aucun canal ne contienne jamais plus de n éléments, pour
un n donné
Cette analyse ne sera pas complètement valable si un canal
peut en fait excéder cette borne
52. INF6001 Chap 2 56
Entrelacement d’é vé nements et
explosion d’é tats
Malheureusement, même dans le cas de canaux bornés, nous aurons toujours
l’explosion d’états, à cause du besoin de considérer toutes les possibilités
d’entrelacement d’événements qui ne sont pas directement reliés
P. ex. considérer toutes les possibilités d’entrelacement d’exécution de 2 machines
de 2 états.
Et ce nombre monte de façon exponentielle!
A
B
X
Y
!m !n
A,X
B,X
B,Y
A,Y
!m
!m
!n
!n
Deux scénarios possibles
53. INF6001 Chap 2 57
Calcul du nombre d’é tat globaux
(Cas Asynchrone)
Si nous composons deux machines de M et N états, nous
pourrions avoir pour ce fait MxN états
Ceci se trouve augmenté par le nombre de configurations
possibles des deux canaux
Pour calculer ce dernier, il faut faire une hypothèse concernant leur
longueur maximale
Un canal de dimension maximale 1 et avec p messages
possibles peut être ou bien vide ou bien contenir un des
messages
Ceci fait p0
+p1
possibilités
Un canal de dimension maximale 2 et avec p messages
possibles peut être vide, ou peut contenir un message, ou peut
contenir 2 messages
Ceci fait p0
+p1
+p2
possibilités
54. INF6001 Chap 2 58
Formule gé né rale de calcul
Donc pour
deux machines de M et N états,
deux canaux de longueur m et n,
pouvant contenir respectivement p et q messages différents,
le nombre maximal d’états possibles est:
Ceci implique que la construction de la machine
globale en principe est un problème de complexité
exponentielle
M x N x (p0
+p1
+...+pm
) x (q0
+q1
+...+qn
)
55. INF6001 Chap 2 59
Exemple – diapo suivante
Dans le cas du protocole client-serveur déjà discuté, nous
avons:
M=N=3
p=2 (les deux messages sont 1 et 4)
q=2 (les deux messages sont 3 et 2)
Supposant qu’on sache que :
Le canal C12 ne sera jamais plus long de2
Le canal C21 ne sera jamais plus long de 1
Le nombre maximum total d’états est:
3 x 3 x (20
+21
+22
) x (20
+21
) = 9 x 7 x 3 = 189
Dont seulement 8 sont accessibles comme nous avons vu.
56. INF6001 Chap 2 60INF6001 Chap 2 60
La machine globale du systè me (composition asynchrone)
<10,20>,<ε, ε>
<11,20>,<1, ε>
<11,21>,< ε, ε>
<11,20>,< ε, 3>
<11,22>,< ε, 2>
<12,22>,< ε, ε >
<10,22>,< 4, ε >
<11,22>,<[4,1], ε >
…
…
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
……
……
!1?3
?2
!4
10
11
12
?1!3
!2
20
21
22
Files FIFO et
sans pertes
C12
C21
C12
C21
!1
?1
!3
!2
?2
!4
!1
?4
?4
ε : canal vide
[4,1] :canal contenant 4 puis 1
?4
?3
57. INF6001 Chap 2 61
Analyse d’accessibilité
Cas synchrone
Dans le cas synchrone, le nombre max d’états est le
produit des nombre des états des machines
communicantes
Cependant il faudra avoir plus de machines, car il
faudra représenter les canaux en utilisant des
machines additionnelles
canaux
A
B
58. INF6001 Chap 2 63
En pratique
Malgré la complexité élevée du problème de l’analyse
d’accessibilité, des logiciels optimisés disponibles
aujourd’hui permettent de construire le graphe
d’accessibilité de protocoles réels
Centaines de millions d’états
59. INF6001 Chap 2 66
Question
Dans le modèle asynchrone, pouvons-nous admettre que deux
événements, c’est-à dire deux transitions d’états, soient
simultanés?
Le modèle asynchrone discuté dans ce cours admet qu’un seul
événement, une seule transition d’états se produise à la fois dans le
système.
En informatique, celle-ci est une hypothèse commune. Cette hypothèse
est justifiée par le fait que deux événements exactement simultanés sont
rares ou non-existants en nature (il y en aura normalement un qui se
produit ou commence ‘un peu avant’ l’autre).
On étudie cependant parfois des modèles de parallélisme dits de
‘simultanéité véritable’ (true parallelism), où ceci est possible, mais ceci
n’est pas le sujet de ce cours.
60. Process P1 Process P2
0
31
2
0
1 2
3
!1
?4
?3
!2
?3
?3
?3
!3
?2
?1
?1
?1!4
Reachability Analysis Example
Both Processes initially at state ”0”
Chapter 2: Protocol specification
61. 0 E
E 0
0 E
3 1
1 E
E 1
2 2
E 1
1 1
3 1
2 1,2
3 1
1 1
E 0
1 E
E 2
2 1
E 1
2 E
E 2
0 1,2
E 1
P1!1 P2!3
P1?3P1!1P2?1
!3!2
P1?3 P1!2
?3P2?1
P1!2P2?1
SS0
SS2
SS3
SS5
SS4
SS9
SS10
SS6
SS7
DEADLOCKDEADLOCK
UNSPECIFIEDUNSPECIFIED
RECEPTIONRECEPTION
SS1
SS12
Reachability Analysis Example…
Chapter 2: Protocol specification
62. Example: Alternating bit protocol
It is a flow control Protocol
PHYSICAL LAYER
SENDER RECEIVER
n n
u u
Chapter 2: Protocol specification
63. Alternating Bit Protocol…
ASPs for Sender Entity
Send_Request
Send_Confirm
PDUs for Sender
DT0
DT1
ASPs for Receiver Entity
Send_Response
Send_Indication
PDUs for Receiver
ACK0
ACK1
Chapter 2: Protocol specification
64. Alternating Bit Protocol…
Initially Sender is in READY state
⇒ At this state, the only possible input is Send_request
The functions D and L are as follows:
L(u.send_request, READY) = n.DT0
D(u.send_request, READY) = WFACK0
Chapter 2: Protocol specification
65. Alternating Bit Protocol…
At state WFACK0; the normal input expected is
ACK0 PDU at the connection point n;
⇒ This means that the receiver received DT0
PDU
⇒ Sender should notify the user by sending a
Send_Confirm
⇒ The next state is READY2
Chapter 2: Protocol specification
69. Process P1 Process P2
0
31
2
0
1 2
3
!1
?4
?3
!2
?3
?3
?3
!3
?2
?1
?1
?1!4
Perturbation Analysis Example
Both Processes initially at state ”0”
Chapter 2: Protocol specification
70. 0 E
E 0
0 E
3 1
1 E
E 1
2 2
E 1
1 1
3 1
2 1,2
3 1
1 1
E 0
1 E
E 2
2 1
E 1
2 E
E 2
0 1,2
E 1
P1!1 P2!3
P1?3P1!1P2?1
!3!2
P1?3 P1!2
?3P2?1
P1!2P2?1
SS0
SS2
SS3
SS5
SS4
SS9
SS10
SS6
SS7
DEADLOCKDEADLOCK
UNSPECIFIEDUNSPECIFIED
RECEPTIONRECEPTION
SS1
SS12
Perturbation Analysis Example…
Chapter 2: Protocol specification
71. Alternating Bit Protocol-Reachability Analysis
R2S!ACK0
R2S!ACK1
S2R?DT1
R2S?ACK0
SR0
RR0
E
E
S2R!DT0
SW0
RR0
DT0
E
S2R?DT0
SW0
RW0
E
E
SW0
RR1
E
ACK0
SW1
RW1
E
E
SW1
RR1E
S2R!DT1
SR1
RR1
E
E
R2S?ACK1 SW1
RR0
E
DT1
ACK0
Chapter 2: Protocol specification