View
216
Download
0
Category
Preview:
Citation preview
Probabilistic Search Verification of the Go-Back-N Protocol
Adeyemi AladesaweAnnjana Ramesh
Lingxue LiNanjun Lu
Agenda
Algorithm Assumptions Stopping Procedure Tests to verify Where we went wrong/What we did right What we would do differently
Algorithm
• At every state, there can be up to two packets- a message on the forward channel and an ACK on the reverse channel.
• When a message is lost at the initial state, there can be no ACK on the reverse channel.
• Transition of states take place depending on whether a message/ack/both are lost/received.
Assumptions
Tuple observed includes: Sender state
The oldest message yet to be acknowledged Receiver state
The expected message number Message no. on forward channel Acknowledgment no. on reverse channel
The no. of message expected by the receiver Window size Probability level Service Sequence
Assumptions Message/Acknowledgement placed on the
channel is received or lost by the receiver/sender in one state transition
There are two conditions on the duplex channel Only a message on the forward channel Message on the forward, Ack on the reverse
If message only, it can either be received or lost If both message and ack, then:
Message and ack can be lost Message can be lost, ack can be received Message can be received, ack can be lost Message and ack can be received
Assumption
If only one loss condition (message or ack), we drop down one probability level
If both message and ack lost, we drop down two probability level
The message processing time at the receiver is negligible
Cumulative acknowledgement is used
Stopping Procedure
On each probability level, we stop when we successfully send 1 message after 3 message losses (based on the problem statement of considering up to 3 message loss)
This is because the sequence will successfully repeat henceforth
Test cases
Case 1: If receiver is expecting M1, and the sender sends M2 or any other message>1, it immediately discards it. Where as, if receiver is expecting M1 (meaning M0 was received and acknowledged), and the sender sends M0, the receiver sends A1 again, thereby letting the sender know to send M1.
Test cases
Case 2: In case of message loss, the sender should not retransmit any message until the entire window has been exhausted. That is say M1 is lost (Window size will be 3 minus 1=2), therefore, this M1 cannot be resent until M2 and M3 are sent (which will be discarded by the receiver as verified in Case 1). We have checked all our states for this possibility, and retransmissions occur only after the current window has been exhausted.
What we did wrong
When 3 messages (including acks) are lost, the protocol stops as we are asked to design an algorithm up to 3 packet losses on the channel.
But, when there are 2 successes, followed by 1 failure, and then another success, the probability level goes back to 0. So 3 consecutive losses are identified.
* We could have avoided this by not including the probability level in each state
What we did wrong
- The modeling of the States
- We wrongly modeled the state as being the message number waiting to be acknowledged or message number being expected at the receiver
- The modeling of the Sender state
- Timeouts and Receipt of acknowledgement can happen concurrently while a message is being transmitted on the forward channel. We did not capture this in our model. Each event should be modeled as sub-machines having its own state
- We wrongly model the state as message waiting to be acknowledged.
What we did wrong
- The Stopping procedure
- We wrongly assume that the receiver can differentiate between messages if received out of order, and did not include this as one of the test objectives
- We considered a minimal number of possibilities that can realistically happen on the channel.
- We assumed that the messages all travel through the same connection and have the same propagation time
What we will do differently
- Model the states independently of the message or acknowledgement numbers
- The Sender state will be 3-tupled, consisting the timeout machine state, the Ack receive state and the Message sending state
- The test will stop only at the point when there is no reference to a message number still waiting to be acknowledged or received (when messages on the channel have been successfully sent and received
What we will do differently- The test will involve all possible combinations of
messages on the channel for as many as 3 message loss on it.
- Create modulus and real numbered fields to verify that the messages can be distinguished at the receiver
- We could have on the forward channel:
M0M1M2M3
..M1M2M3M0
..
..M2M3M0M1
..
..
..M3M0M1M2
Project split up
Member - Assignment Lingxue – State transition diagram Adeyemi – Pseudo code/algorithm for the
program Annjana – Program Nanjun - Table
Recommended