CS-522 (Modelling and Simulation) Project Statechart Modelling of - - PowerPoint PPT Presentation

cs 522 modelling and simulation
SMART_READER_LITE
LIVE PREVIEW

CS-522 (Modelling and Simulation) Project Statechart Modelling of - - PowerPoint PPT Presentation

CS-522 (Modelling and Simulation) Project Statechart Modelling of TCP protocol Shah Asaduzzaman Zaki Hasnain Patel The total system Client Data Server Application Generator Application Data packet Data Buffer Data Channel (C-to-S) TCP


slide-1
SLIDE 1

CS-522 (Modelling and Simulation)

Project Statechart Modelling of TCP protocol

Shah Asaduzzaman Zaki Hasnain Patel

slide-2
SLIDE 2

The total system

Data Generator App Controller Data Channel (C-to-S) Data Buffer TCP Driver (client) TCP Driver (server) Data Channel (S-to-C) Data packet Control packet Server Application Client Application

slide-3
SLIDE 3

Top level statechart

Client Application Server Application TCP Driver (Client) Channel (Client-to-Server) Channel (Server-to-Client) TCP Driver (Server) H* Paused Stopped Normal TCPSimulator

gStop/ gPause/ gResume/

slide-4
SLIDE 4

Client Application

Generating Closing ClientApp

Notify/ CmdSend(Data)

Generator Transmitter Stopped

after(IAT) [guard(count<MAX)]/ genBuffer.append() count++ after(IAT) [guard(count>=MAX)]/

Sending Waiting Connecting

after(ChkIntrval) [guard(Buffer empty)]/ after(ChkIntrval) [guard(Data in Buffer)]/ pop(Data) CmdConnect Notify/ CmdClose Notify/

slide-5
SLIDE 5

TCPDriver (Toplevel)

Closed TCPDriver

CmdListen/

SynSent Listen SynRcvd Established

CmdClose/ Receive(SYN)/ Send(SYN+ACK) CmdClose/ CmdConnect/ Send(SYN) Receive(ACK)/ after(WaitTime)/ Notify(Close) CmdClose/ Send(FIN) Receive(FIN)/ Send(ACK) Receive(SYN+ACK)/ Send(ACK) Notify (Connected) Receive(ACK)/ Receive(RST)/

ActiveClose PassiveClose

Receive(SYN)/ Send(SYN+ACK) CmdSend/ Send(SYN)

slide-6
SLIDE 6

TCPDriver (components)

Idle TCPDriver.Established

CmdSend(Data)/

Busy

After(TimetoFeed(Data))/ Send(Data) Notify(DataSent) Receive(Data)/

slide-7
SLIDE 7

TCPDriver (components)

CloseWait TCPDriver.PassiveClose LastAck

CmdClose/ Send(FIN)

LastAck2

CmdCloseListen/ Send(FIN)

Closed Listen

Receive(ACK)/ Receive(ACK)/

FinWait1 TCPDriver.ActiveClose Closing FinWait2 TimedWait

Receive(FIN)/ Send(ACK) Receive(ACK)/ Receive(ACK)/ Receive(FIN)/ Send(ACK) Receive(FIN+ACK)/ Send(ACK)

Closed

after(waittime)

slide-8
SLIDE 8

Channel

Feeder Channel Transmitter

Send(Data)/ ChannelBuffer.append(Data)

Waiting Busy

after(ChkIntrval) [guard(Buffer empty)]/ after(ChkIntrval) [guard(Data in Buffer)]/ pop(Data) after(Delay)/ Receive(Target, Data)

slide-9
SLIDE 9

Channel (alternative)

Feeder Channel2

Send(Data)/ ChannelBuffer.append(Data) Schedule(Channel.Receive)

Transmitter

SchedulerNotify(Channel.Receive)/ Receive(Target, Data)

slide-10
SLIDE 10

ServerApplication

ServerApp Idle Started

Notify(FinReceived)/ CmdCloseListen after(StartupTime) / CmdListen after(TimetoFail)/ CmdClose

slide-11
SLIDE 11

Graphical output