INRES Service & Protocol Stanislaw BUDKOWSKI NATIONAL INSTITUTE - - PowerPoint PPT Presentation

inres service protocol
SMART_READER_LITE
LIVE PREVIEW

INRES Service & Protocol Stanislaw BUDKOWSKI NATIONAL INSTITUTE - - PowerPoint PPT Presentation

INRES Service & Protocol Stanislaw BUDKOWSKI NATIONAL INSTITUTE OF TELECOMMUNICATIONS (INT) 9, Rue Charles Fourier, 91011 EVRY Cedex, FRANCE tel: +33 1 60 76 42 03 fax: +33 1 60 78 41 36 Email: stan@int-evry.fr 1 General Information


slide-1
SLIDE 1

1

Stanislaw BUDKOWSKI NATIONAL INSTITUTE OF TELECOMMUNICATIONS (INT) 9, Rue Charles Fourier, 91011 EVRY Cedex, FRANCE tel: +33 1 60 76 42 03 fax: +33 1 60 78 41 36 Email: stan@int-evry.fr

INRES Service & Protocol

slide-2
SLIDE 2

2

General Information

  • INRES services and a protocol:
  • cannot be related to any specific layers of the OSI-BRM
  • it does contain many basic OSI-BRM concepts
  • it is used as a common example in the ISO/CCITT work on

"Formal Methods and Conformance Testing"

  • it has originally been published by D. Hogrefe
  • it is an abridged version of the Abracadabra system

described in K.J. Turner (Ed.) book

slide-3
SLIDE 3

3

INRES-user INRES-user

INRES Service primitives INRES Service primitives

Medium Service primitives Medium Service primitives

INRES entity Medium Service

INRES protocol

INRES entity

Basic structure of the INRES system

slide-4
SLIDE 4

4

INRES Service General information

  • INRES Service is:

– connection-oriented – asymmetrical

  • connection may be initiated through the service only by

the Initiator-user,

  • only the Initiator-user may send data once a connection

is established,

  • only Responder-user may terminate an establish

connection

slide-5
SLIDE 5

5

INRES service

ICONconf IDISind ICONreq IDATreq ISAPini ISAPres INITIATOR User RESPONDER User ICONind IDATind IDISreq ICONresp

INRES Service Structure

slide-6
SLIDE 6

6

INRES Service Service Primitives

Pha se Kin d Name Parameters Req u est ICONreq In d icatio n ICONin d Respons e ICONresp C o n n ectio n C o n firmatio n ICONco n f Req u est ID A T req Service Da ta Un it Data Trans fer In d icatio n ID A T in d Service Da ta Un it Req u est IDISreq Disconn ectio n In d icatio n IDISin d

slide-7
SLIDE 7

7

INRES Service Connection Phase

  • Connection may be initiated only by the Initiator-user

using ICONreq. An ICONreq should be issued only once to establish a connection and it may be repeated only

  • nce a connection has been terminated.

ICONreq ICONconf ICONind ICONresp

slide-8
SLIDE 8

8

IDATind IDATreq

INRES Service Data Transmission Phase

  • Once a connection is established the Initiator-user may send a

IDATreq which will be delivered as IDATind to the Responder-user

slide-9
SLIDE 9

9

ICONreq ICONind IDISreq IDISind ICONconf ICONresp

IDATind IDATreq IDISreq IDISind

INRES Service Disconnection Phase - normal course (1)

  • Successful disconnection of an established connection
slide-10
SLIDE 10

10

ICONreq ICONind IDISreq IDISind

INRES Service Disconnection Phase - normal course (2)

  • Abandon of a connection establishment attempt
slide-11
SLIDE 11

11

ICONreq IDISind

IDISind IDATreq

INRES Service Disconnection Phase - spontaneous disconnection

slide-12
SLIDE 12

12

INRES Service - User Errors

  • Should the behavior of the service under incorrect use of

it by the service user be described ? -- YES for robustness. – An ICONreq should be ignored if issued when a connection is already established or is currently being established – An ICONresp should be ignored if issued before any attempt to establish a connection was done, or if issued too late, after such an attempt was made – A IDISreq should be ignored if issued before any attempt to establish a connection was done – A IDATreq should be ignored if issued when a connection is not established.

slide-13
SLIDE 13

13

INRES Service

Estelle High Level Description

specification Inres_service; {INR_ServHL.stl} default individual queue; timescale seconds; (************Outermost Interface *********) type ISDUType = ... ; {undefined type def} channel ISAPchn1(User,Service); by User : ICONreq; IDATreq(ISDU : ISDUType); by Service : ICONconf; IDISind; channel ISAPchn2(User,Service); by User : ICONresp; IDISreq; by Service : ICONind; IDATind(ISDU : ISDUType); (******** Service Module ******) module Service systemprocess; ipISAPini : ISAPchn1(Service); ISAPres : ISAPchn2(Service); end ; body Service_Body for Service; end; {of Service_Body} modvar {of specification} SP: Service; initialize {of specification} begin init SP with Service_Body; end ;

  • end. {of specification}
slide-14
SLIDE 14

14

INRES Service Estelle Specification - Service_body

const d = any INTEGER; state DISCONNECTED, I_CALLING_R, CONNECTED; stateset ACTIVE = [ I_CALLING_R, CONNECTED]; ignoreICONreq = [I_CALLING_R, CONNECTED]; ignoreICONresp = [DISCONNECTED, CONNECTED]; ignoreIDATreq = [DISCONNECTED, I_CALLING_R]; initialize {of Service_Provider_Body} to DISCONNECTED begin end ;

(*************CONNECTION PHASE **************)

trans {of Service_Provider_Body} from DISCONNECTED to I_CALLING_R when ISAPini.ICONreq begin output ISAPres.ICONind end ; from I_CALLING_R to CONNECTED when ISAPres.ICONresp begin output ISAPini.ICONconf end ;

(******* DATA TRANSFER PHASE ***************)

from CONNECTED when ISAPini.IDATreq(ISDU) begin output ISAPres.IDATind(ISDU) end ;

(******** DISCONNECTION PHASE **************)

from ACTIVE to DISCONNECTED when ISAPres.IDISreq begin output ISAPini.IDISind end ;

(***spontaneous disconnect **)

from ACTIVE to DISCONNECTED delay (d) begin output ISAPini.IDISind end ;

slide-15
SLIDE 15

15

DISCONNECTED I_CALLING_R CONNECTED ICONreq ICONind IDISreq IDISind delay(d) IDISind ICONresp ICONconf

IDATreq(ISDU) IDATind(ISDU)

INRES Service Service_body, Automaton - gaph

slide-16
SLIDE 16

16

INRES Service Service_body, Automaton - table

DISCONN ECTED I_CALLING_R CONNECTED I_CALLING_R ICON re q ICONind CONNECTED ICON re sp ICONconf CONNECTED IDAT re q(I S

DU)

IDATind(I S

DU)

DISCONNECTED DISCONNECTED IDISreq IDISind IDISind DISCONNECTED DISCONNECTED del ay(d) IDISind IDISind

slide-17
SLIDE 17

17

INRES Service Estelle Specification - Service_body - robuste

const d = any INTEGER; state DISCONNECTED, I_CALLING_R, CONNECTED; stateset ACTIVE = [ I_CALLING_R, CONNECTED]; ignoreICONreq = [I_CALLING_R, CONNECTED]; ignoreICONresp = [DISCONNECTED, CONNECTED]; ignoreIDATreq = [DISCONNECTED, I_CALLING_R]; initialize {of Service_Provider_Body} to DISCONNECTED begin end ;

(*************CONNECTION PHASE **************)

trans {of Service_Provider_Body} from DISCONNECTED to I_CALLING_R when ISAPini.ICONreq begin output ISAPres.ICONind end ; from I_CALLING_R to CONNECTED when ISAPres.ICONresp begin output ISAPini.ICONconf end ;

(******* DATA TRANSFER PHASE ***************)

from CONNECTED when ISAPini.IDATreq(ISDU) begin output ISAPres.IDATind(ISDU) end ;

(******** DISCONNECTION PHASE **************)

from ACTIVE to DISCONNECTED when ISAPres.IDISreq begin output ISAPini.IDISind end ;

(***spontaneous disconnect **)

from ACTIVE to DISCONNECTED delay (d) begin output ISAPini.IDISind end ;

(*******USER ERRORS PROCESSING***********)

from ignoreICONreq when ISAPini.ICONreq begin end ; from ignoreICONresp to same when ISAPres.ICONresp begin end ; from ignoreIDATreq to same when ISAPini.IDATreq begin end ; from DISCONNECTED when ISAPres.IDISreq begin end ;

slide-18
SLIDE 18

18

INRES Protocol General information

  • INRES protocol is a connection-oriented protocol that
  • perates between two protocol entities Initiator and

Responder

  • The protocol entities communicate by exchange of the

protocol data units (PDU) CR, CC, DT, AK and DR

  • The protocol renders the INRES service to users located

in the imaginary next higher layer

slide-19
SLIDE 19

19

ICONreq IDATreq INITIATOR RESPONDER CC, DR, AK CR, DT

Initiator User Responder User

ICONconf IDISind IDATind ICONind IDISreq ICONresp

ISA P1 ISA P2 PDU1 PDU2

I N RES protocol

INRES Protocol Structure

slide-20
SLIDE 20

20

INRES Protocol Protocol data units (PDU)

PDU meaning parameter respecti v e SPs

CR co n n e ct i o n re q u e st n o n e ICONr e q ,ICONi n d CC co n n e ct i o n co n f ir m at i o n n o n e ICONr e sp,ICONc o n f DT d a t a tra n sf e r se q u e n ce n u m be r , I S DU IDATre q ,IDATin d AK ack n o wle d g em e n t se q u e n ce n u m be r n o n e DR disco n n e ct i o n re q u e st n o n e IDI S re q ,IDI S in d

slide-21
SLIDE 21

21

INRES Protocol Protocol Phases

  • Communication between INITIATOR and

RESPONDER takes place in three distinct phases:

  • connection establishment phase
  • data transmission phase
  • disconnection phase
  • an error processing phase exists which corresponds to the

spontaneous disconnection's of the INRES service

slide-22
SLIDE 22

22

INRES Protocol Connection establishment phase

  • Connection establishment phase is initiated by Initiator-user by

sending an ICONreq to Initiator – Upon receipt of ICONreq Initiator sends a CR to Responder – Responder can answer to Initiator with CC or DR

  • If it responds by CC, Initiator issues an ICONconf to its user, and

the data transmission phase can start

  • If it responds by DR, the disconnection phase is entered

– If Initiator receives nothing at all within 5 seconds, CR is transmitted again to Responder – If, after 4 attempts, still nothing is received by Initiator, it enters the disconnection phase

slide-23
SLIDE 23

23

INRES Protocol Connection establishment phase (cont.)

  • If Responder receives a CR from Initiator, the

Responder-user gets an ICONind

  • Responder-user can respond with ICONresp or IDISreq
  • ICONresp indicates the willingness to accept the

connection

  • Upon receipt of an ICONresp, Responder sends a CC to

Initiator, and the data transmission phase is entered

  • Upon receipt of an IDISreq, Responder enters the

disconnection phase

slide-24
SLIDE 24

24

INRES Protocol Data transmission phase (1)

  • If Initiator-user issues an IDATreq, the Initiator sends a

DT and is then ready to receive another IDATreq

  • IDATreq has one parameter - a service data unit ISDU -

transmitted by Initiator as a parameter of DT

  • After having sent a DT, Initiator waits for an AK
  • DT and AK carry a one-bit sequence number (0 or 1)
  • First DT sent by Initiator carry sequence number 1
  • A correct AK of a DT has the same sequence number
slide-25
SLIDE 25

25

INRES Protocol Data transmission phase (cont.)

  • After receipt of a correct acknowledgement, the next DT

with the next (i.e. other) sequence number can be sent

  • If Initiator receives an AK with incorrect sequence

number, it sends the last DT once again

  • Last DT is also sent again if the respective AK does not

arrive within 5 seconds

  • A DT can only be sent (retransmitted !!!) 4 times;

afterwards Initiator enters the disconnection phase

slide-26
SLIDE 26

26

INRES Protocol Data transmission phase (cont.)

  • Responder expects first DT with the sequence number 1
  • Upon receipt of a DT with the expected sequence

number (and ISDU), Responder sends IDATind to its user (with the received ISDU as a parameter), and sends to the Initiator an AK with the same sequence number

  • Upon receipt of a DT with an unexpected sequence

number Responder sends an AK with the sequence number of the last correctly received DT

  • The user data ISDU of an incorrect received DT is

ignored.

slide-27
SLIDE 27

27

INRES Protocol Disconnection phase

  • It is initiated by Responder-user by sending an IDISreq

to Responder

  • Upon receipt of IDISreq Responder sends a DR to

Initiator and it is ready to receive another connection establishment attempt CR from Initiator

  • Upon receipt of a DR Initiator sends an IDISind to its

use

  • An IDISind is also sent by Initiator to its user after DT or

CR have been sent unsuccessfully to the Responder

slide-28
SLIDE 28

28

INRES Protocol Estelle Specification -HLD

specification Inres_protocol; {INR_Pr-ner.stl ; without error processing (reliable transmission assumed, no-user errors} default individual queue; (**********Outermost Interface ************) type ISDUtype = ...; {undefined data type} SeqNb = 0..1; PDUtype = (CR, CC, DT, AK, DR); channel ISAPchn1(Usr, P_E); by Usr: ICONreq; IDATreq(ISDU: ISDUtype); by P_E: ICONconf; IDISind; channel ISAPchn2(Usr,P_E); by Usr: ICONresp; IDISreq; by P_E: ICONind; IDATind(ISDU: ISDUtype); channel IPDU(IorR, Coder); by IorR: CR; DT(Num:SeqNb; ISDU:ISDUtype); by Coder CC; AK(Num:SeqNb); DR; (********** Protocol Entity module **********) module Protocol_Entity systemprocess; ip ISAP1: ISAPchn1(P_E); ISAP2: ISAPchn2(P_E); PDU2: IPDU(Coder); PDU1: IPDU(IorR); end; (**************** Initiator *******************) body Initiator for Protocol_Entity ; #include "Initiator-ner" end; {of Initiator} (*************** Responder **************) body Responder for Protocol_Entity ; #include "Responder-ner" end; {of Responder} modvar {of specification} Ini, Res: Protocol_Entity; initialize {of specification} begin init Ini with Initiator; init Res with Responder; connect Ini.PDU1 to Res.PDU2; end;

  • end. { of specification}
slide-29
SLIDE 29

29

INRES Protocol Estelle Specification - Initiator-ner

{Initiator body-no error processing}

var number: SeqNb; state DISCONNECTED, WAIT, CONNECTED, SENDING; stateset notignoreDR = [WAIT, CONNECTED, SENDING]; initialize {of Initiator} to DISCONNECTED begin end; trans {of Initiator} { Connection Phase } from DISCONNECTED to WAIT when ISAP1.ICONreq begin

  • utput PDU1.CR end;

from WAIT to CONNECTED when PDU1.CC begin number:= 1;

  • utput ISAP1.ICONconf end;

{ Data Transfer Phase } from CONNECTED to SENDING when ISAP1.IDATreq(ISDU) begin

  • utput PDU1.DT(number, ISDU); end;

from SENDING when PDU1.AK(Num) provided Num = number to CONNECTED begin number:= 1 - number; end; { Disconnection Phase } from notignoreDR to DISCONNECTED when PDU1.DR begin

  • utput ISA P1.IDISind end;
slide-30
SLIDE 30

30

DISCONNECT IDAT req(ISDU) DT(number, ISDU) A K (Num), Num=number number:=1-number W A IT C O NNECT ED SEN DI N G ICONreq CR DR IDISind CC number:=1; ICONconf

INRES Protocol Initiator-ner-graph

slide-31
SLIDE 31

31

INRES Protocol Estelle Specification - Responder-ner

{Responder body - no error processing } var number: SeqNb; state DISCONNECTED, WAIT, CONNECTED; stateset notignoreIDISreq = [WAIT, CONNECTED]; initialize {of Responder} to DISCONNECTED begin end; trans {of Responder}

{ Co nnection Phase }

from DISCONNECTED to WAIT when PDU2.CR begin

  • utput ISAP2.ICONind end;

from WAIT to CONNECTED when ISAP2.ICONresp begin number:= 1; output PDU2.CC end;

{ Data Transfer Phase }

from CONNECTED when PDU2.DT(Num, ISDU) provided Num = number begin

  • utput

ISAP2.IDATind(ISDU);

  • utput PDU2.AK(Num);

number:= 1 - number end;

{ Disconnection Phase }

from notignoreIDISreq to DISCONNECTED when ISAP2.IDISreq begin

  • utput PDU2.DR end;
slide-32
SLIDE 32

32

DI SCONNECTED W A IT C O N N ECT ED CR I CON ind I CON resp number:=1; CC IDISreq DR

DT(Num, ISDU), Num = number IDAT ind(ISDU); A K (Num); number:=1-number

INRES Protocol Responder-ner-graph

slide-33
SLIDE 33

33

INRES Protocol Estelle Specification - Initiator

{ Initiator body with error processing } Var number: SeqNb;

  • lddata: ISDUtype;

counter: 0..4; state DISCONNECTED, WAIT, CONNECTED, SENDING; stateset notignoreDR = [WAIT, CONNECTED, SENDING]; ignoreICONreq = [WAIT, CONNECTED, SENDING]; ignoreIDATreq = [DISCONNECTED, WAIT]; ignoreCC = [DISCONNECTED, CONNECTED, SENDING]; ignoreAK = [DISCONNECTED, WAIT, CONNECTED]; initialize {of Initiator} to DISCONNECTED begin end; trans {of Initiator} { User-Errors Processing Phase } from ignoreICONreq to same when ISAP1.ICONreq begin end; from ignoreIDATreq to same when ISAP1.IDATreq begin end; {Connection Phase } from DISCONNECTED to WAIT when ISAP1.ICONreq begin counter:= 0;

  • utput PDU1.CR end;

from WAIT to CONNECTED when PDU1.CC begin number:= 1; counter:= 0;

  • utput ISAP1.ICONconf end;

from WAIT delay(5) provided counter < 4 to same begin

  • utput PDU1.CR;

counter:= counter + 1;end; provided otherwise to DISCONNECTED begin

  • utput ISAP1.IDISind end;
slide-34
SLIDE 34

34

INRES Protocol Estelle Specification - Initiator ( cont.)

{ Data Transfer Phase } from CONNECTED to SENDING when ISAP1.IDATreq(ISDU) begin

  • lddata:= ISDU ;
  • utput PDU1.DT(number, ISDU);end;

from SENDING when PDU1.AK(Num) provided Num = number to CONNECTED begin counter:= 0 ; number:= 1 - number; end; provided (Num <> number) and (counter < 4) to same begin

  • utput PDU1.DT(number, olddata);

counter:= counter + 1 end; provided otherwise to DISCONNECTED begin

  • utput ISAP1.IDISind end;

from SENDING delay(5) provided counter < 4 to same begin

  • utput PDU1.DT(number, olddata);

counter:= counter + 1 end; provided otherwise to DISCONNECTED begin

  • utput ISAP1.IDISind end;

{ Errors/Time-outs Processing Phase } from ignoreCC to same when PDU1.CC begin end; from ignoreAK to same when PDU1.AK(NUM) begin end; from DISCONNECTED when PDU1.DR begin end; { Disconnection Phase } from notignoreDR to DISCONNECTED when PDU1.DR begin

  • utput ISAP1.IDISind end;
slide-35
SLIDE 35

35

INRES Protocol Medium

  • INRES protocol have to be mapped on Medium service

to realise INRES system

  • Medium service is symmetrical and operates

connectionless

  • Medium service is unreliable (SPs can be lost)
  • Medium Service Primitives (SPs) MDATreq and

MDATind, carry a parameter Medium-Service Data Units (MSDU)

slide-36
SLIDE 36

36

MSAP[1] MSAP[2] MDATreq (MPDU) MDATind (MPDU)

Medium Service

User User MDATreq (MPDU) MDATind (MPDU)

INRES Protocol Medium Structure

slide-37
SLIDE 37

37

MDATind MDATreq MDATreq MDATind

MDATreq MDATreq

Successful data transfer in both direction Unsuccessful data transfer in both direction

INRES System Medium Service

slide-38
SLIDE 38

38

Initiator

CR, DT

Responder Responder User Initiator User

ICONconf IDISind ICONreq IDATreq

Medium Service

MSAP[1] MDATind MSAP[2] MDATind CC, DR, AK MDATreq MDATreq CC, DR, AK CR, DT

Coder Coder

IDATind ICONind IDISreq ICONresp

ISA P1 ISA P2 ISA P2 ISA P1 PDU 1 PDU 2 PDU 1 PDU 2 M SA P M SA P

INRES System Structure

slide-39
SLIDE 39

39

INRES System - Estelle Specification-HLD

specification Inres_protocol; {INR_Sy-ner.stl }

default individual queue; (******Outermost Interface **************) type ISDUtype = ...; {undefined data type} SeqNb = 0..1; PDUtype = (CR, CC, DT, AK, DR); type MSDUtype = record id: PDUtype; num : SeqNb; data: ISDUtype; end; channel ISAPchn1(Usr, P_E); by Usr: ICONreq; IDATreq(ISDU: ISDUtype); by P_E: ICONconf; IDISind; channel ISAPchn2(Usr,P_E); by Usr: ICONresp; IDISreq; by P_E: ICONind; IDATind(ISDU: ISDUtype); channel IPDU(IorR, Coder); by IorR: CR; DT(Num:SeqNb; ISDU:ISDUtype); by Coder: CC; AK(Num:SeqNb); DR;

channel MSAPchn(P_E, M_S); by P_E: MDATreq(MSDU: MSDUtype); by M_S: MDATind(MSDU: MSDUtype); (***********User module ****************) module User systemprocess; ip ISAP1: ISAPchn1(Usr); ISAP2: ISAPchn2(Usr); end; body User_body1 for User; end; body User_body2 for User; end; (********* Medium_Service module *******) module Medium_Service systemprocess; ip MSAP: array [1..2] of MSAPchn(M_S); end; body Medium_body for Medium_Service; #include "Medium-ner" end; {Medium_body} (********** Protocol Entity module ********) module Protocol_Entity systemprocess; ip ISAP1: ISAPchn1(P_E); ISAP2: ISAPchn2(P_E); PDU2: IPDU(Coder); PDU1: IPDU(IorR); end;

slide-40
SLIDE 40

40

INRES System - Estelle Specification-HLD (cont.)

(******************** Initiator ***************) body Initiator for Protocol_Entity ; #include "Initiator-ner" end; {of Initiator} (**************** Responder ***************) body Responder for Protocol_Entity ; #include "Responder-ner" end; {of Responder} (*********** Coder module ***************) module Coder systemprocess; ip PDU1: IPDU(Coder); PDU2: IPDU(IorR); MSAP: MSAPchn(P_E); end; body Coder_body_Ini for Coder; #include "Coder_body_Ini" end; {of Coder_body_Ini} body Coder_body_Res for Coder; #include "Coder_body_Res"

end; { of Coder_body_Res}

modvar {of specification} Ini, Res: Protocol_Entity; Usr_Ini, Usr_Res: User; Cod_Ini, Cod_Res: Coder; Med: Medium_Service; initialize {of specification} begin init Ini with Initiator; init Res with Responder; init Usr_Ini with User_body1; init Usr_Res with User_body2; init Cod_Ini with Coder_body_Ini; init Cod_Res with Coder_body_Res; init Med with Medium_body connect Usr_Ini.ISAP1 to Ini.ISAP1; connect Ini.PDU1 to Cod_Ini.PDU1; connect Cod_Ini.MSAP to Med.MSAP[1]; connect Med.MSAP[2] to Cod_Res.MSAP; connect Cod_Res.PDU2 to Res.PDU2; connect Res.ISAP2 to Usr_Res.ISAP2; end;

  • end. { of specification}
slide-41
SLIDE 41

41

INRES System - Coder for Initiator

{Coder_body_ini } var MSDU: MSDUtype; trans {of Coder_body_ini} when PDU1.CR begin MSDU.id:= CR;

  • utput MSAP.MDATreq(MSDU)

end; when PDU1.DT(Num, ISDU) begin MSDU.id:= DT; MSDU.num:= Num; MSDU.data:= ISDU;

  • utput MSAP.MDATreq(MSDU)

end; when MSAP.MDATind (MSDU) begin case MSDU.id of CC: output PDU1.CC; AK: output PDU1.AK (MSDU.num); DR: output PDU1.DR; end;

slide-42
SLIDE 42

42

INRES System Coder for Responder

{Coder_body_res } var MSDU: MSDUtype; trans {of Coder_body_res} when PDU2.CC begin MSDU.id:= CC;

  • utput MSAP.MDATreq(MSDU)

end; when PDU2.AK(Num) begin MSDU.id:= AK; MSDU.num:= Num;

  • utput MSAP.MDATreq(MSDU)

end; when PDU2.DR begin MSDU.id:= DR;

  • utput MSAP.MDATreq(MSDU)

end; when MSAP.MDATind(MSDU) begin case MSDU.id of CR: output PDU2.CR;

DT:outputPDU2.DT(MSDU.num,MSD.data)

; end; end;

slide-43
SLIDE 43

43

INRES System Medium

trans when MSAP[1].MDATreq(MSDU) begin

  • utput MSAP[2].MDATind(MSDU) end;

when MSAP[2].MDATreq(MSDU) begin

  • utput MSAP[1].MDATind(MSDU) end;

{Message loss} when MSAP[1].MDATreq(MSDU) begin end; when MSAP[2].MDATreq(MSDU) begin end;

slide-44
SLIDE 44

44

ENJOY ENJOY PROTOCOL DESIGN WITH

ESTELLE

INRES System