Download presentation
Presentation is loading. Please wait.
Published byMarilyn Brown Modified over 9 years ago
1
Probabilistic Verification of GBN Group Members: Lin Huang(lh2647), Yuechen Qin(yq2158), Xi Chen(xc2257), Runxi Zhou(rz2286), Shuang Zhang(sz2426) 04/08/2014
2
Probabilistic Verification of GBN Introduction Test Algorithm Discussion
3
Introduction Probabilistic Verification of GBN ( Applied Tests ) For any possible state in the GBN protocol, we need to generate all the possible next state. For each of the possible next state, call the step above recursively to check if it could successfully end up at a stop point. If the protocol is right, the verification would end within a finite amount of time.
4
Test Algorithm Components of States Assumption Algorithm Modules Stack Sender Receiver Channel(Forward, Reverse) Implementation Optimization
5
Test Algorithm : Components of States S: sender state, range R: receiver state, range Fc: forward channel Rc: reverse channel Prob: low probability action: service sequence num: indices of messages father: predecessor of the current state son: successor of the current state
6
Test Algorithm : Assumption At most 8 packets can be simultaneously in the forward channel At most 4 packets can be simultaneously in the reverse channel Channel would lose 1 packet at a time; Sender and Receiver process 1 packet at a time. Given Window size of 4, for both sender and receiver, states that have the same value of S(or R) mod 4 are considered to be identical
7
Test Algorithm : Assumption Time out Fc == E & Rc == E Stopping Points S > 4 & R > 4 True stopping points for the protocol: S mod 4 ==1; R mod 4 == 1; Fc == E; Rc == E; prob 4 The appearance of a state that has already been in the stack.
8
Test Algorithm : Algorithm Modules Stack Push Check if the state already existed in the stack Check if the prob == 4 Bubble sort to ensure that the stack locates the states with monotonically increasing low probability Pop Pop the state on top of the stack
9
Test Algorithm : Algorithm Modules Sender Input the current state to the sender function ; Let base = S; If Fc == E & Rc == E, put Msg[base] ~ Msg[base + 3] in Fc Extract the1 st packet in Rc, name it ack If ack < base, do nothing If ack == base, put Msg[base + 4] in Fc, base ++ If ack > base, put Msg[base + 4] ~ Msg[ack + 4] in Fc, base = ack +1 Return the new state
10
Test Algorithm : Algorithm Modules Receiver Input the current state to the receiver function ; Let ExpectedNum = R; If Fc == E, do nothing; Extract 1 st packet in Fc, name it Msg If Msg == ExpectedNum, put Ack[ExpectedNum] in Rc If Msg != ExpectedNum, put Ack[ExpectedNum - 1] in Rc Return the new state
11
Test Algorithm : Algorithm Modules Channel Functionality Generate all possible error situation (1 packet lost), low probability increases by 1 ( prob ++ ) ; Push the generated state into the stack.
12
Test Algorithm : Implementation Problem Assume the current state is, what is the next state? : ack1 arrives at sender first; : msg2 arrives at receiver first; : msg2 and msg3 are faster than ack1; : msg2, msg3 and msg4 are all faster than ack1; Solution For a certain state, input it into three functions, which are sender, receiver, channel; Output State sender: sender gets ack first; state receiver: receiver gets msg first; state channel: all possible packet-lost situation
13
Test Algorithm : Implementation Example
14
Test Algorithm : Implementation Steps Push the initial state into the stack; Check if stack is empty, if so, end; if not, continue; Pop the top state in the stack; Put the popped state into channel; Put the popped state into sender and receiver, get the new state S1 and S2 accordingly; if S1 or S2 is different from the popped state, push it into the stack; Go back to the 2 nd step
15
Test Algorithm : Optimization Problem (a): push E child of D into the stack, there’s already a E node in the stack (b): push E child of C into the stack, there’s no E node in the stack (c): E can be produced by another E
16
Test Algorithm : Optimization Solution Use an array to store all the states(/nodes) that have been in the stack Check if the popped state is already in the array: if so, check if this identical state in the array is one of the predecessor of the popped state; if so, push it into the stack, otherwise discard; If not, push it into the stack Results # of steps: 15,000+ 400+
17
Discussion Here the protocol failure is only possible when there are four packet losses happening continuously. Although this state is wiped out from the simulation due to its low probability, it may still happen, leading to the deadlock. Theoretically it may happen twice continuously so that the average sequence length is 0. However, only when the length is large enough, the probability can be larger than ”sufficiently small”, where we define as. We mention that the time interval is the same as length interval, since the source xmits message once per second.
18
Discussion Calculation of the probabilistic minimal interval The failure rate Here we make And we can find out that
19
Thank you for attention! Questions are warmly welcomed!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.