70 likes | 241 Views
CS4550: Data and Computer Networks Protocol Specification and Analysis Communicating Finite State Machines. protocol specification. protocols are algorithms, critical to network operation; these are/will be standardized, and must be clearly specified, without ambiguity, so that
E N D
CS4550:Data and Computer NetworksProtocol Specification and AnalysisCommunicating Finite State Machines
protocol specification • protocols are algorithms, critical to network operation; these are/will be standardized, and must be clearly specified, without ambiguity, so that • implementations by different vendors will be the same, and • protocol can be thoroughly analyzed (checked for errors) • communicating finite state machines (CFSM) - a very often used tool for protocol specification
communicating finite state machines • formally defined, widely accepted model for protocols • network N is a set of communicating machines, {m1, m2, ... mn} • each machine mi is a finite state machine, with a set of states and transitions between the states. • transitions t, drawn as arcs from 1 state to another, are sending (-t), receiving (+t), or internal (t). • machines communicate through implicit, infinite length queues. (these represent communication channels).
protocol analysis • protocol specified as a CFSM may be analyzed mechanically using reachability analysis. • global state, local state • protocol errors • deadlock • unspecified reception • unexecutable transitions
protocol analysis • State Diagram for Protocol • reachability analysis of A-B protocol • examples of protocol analysis: • deadlock • unspecified reception • unexecutable transition • never terminating protocol • undecidability of protocol analysis
stop and wait protocol • finite state machine specification • no timeout and retransmission • reachability analysis • what happens if a message is lost? • Add timeout and retransmission
stop and wait • Are there any “never terminating conditions?” • What happens if the channel dies? • Modify the specification to include a timeout counter.