.


:




:

































 

 

 

 


.

.

( ) . , , . .

: , ; ; ; , ; ; ; .

- . , : ; , ; ; ; ; ; ; ; .

, , .

:

T-CONNECT-request; T-CONNECT-indication; T-CONNECT-response; T-CONNECT-confirmation.

, T-DISCONNECT-request T-DISCONNECT-indication . (T-DATA-) - - . - , .. - -.

- 8.1. .

 

 

8.2.

 

. 8.3. , , ().

 

, , , . , , , . , .

8.4. - . -. . , , , , .

 


.

 

, - .

 

T_CONNECT.REQ:

 

down N_CONNECT.REQ address $address

 

N_CONNECT.IND:

 

up T_CONNECT.IND

 

T_CONNECT.RESP:

 

down N_CONNECT.RESP address $address

 

N_CONNECT.CONF:

 

up T_CONNECT.CONF

 

T_DATA.REQ:

 

down N_DATA.REQ userdata $userdata address $address

 

N_DATA.IND:

 

up T_DATA.IND userdata $userdata

 

T_DISCONNECT.REQ:

 

down N_DISCONNECT.REQ address $address

 

N_DISCONNECT.IND:

 

up T_DISCONNECT.IND

 

- . , - . , ( ). .

 

( A c B):

A:

 

T_CONNECT.REQ:

set addrB $address

down N_CONNECT.REQ address $addrB

;

set connect_try 5

;

timer con_try CONNECT_TRY 200

;

 

N_CONNECT.CONF:

untimer $con_try

; -

up T_CONNECT.CONF

;

 

CONNECT_TRY:

set connect_try $connect_try-1

;

if $connect_try == 0 terminate

; ?

down N_CONNECT.REQ address $addrB

;

timer con_try CONNECT_TRY 200

;

goto exit

terminate:

down N_DISCONNECT.REQ address $addrB

; -

up T_DISCONNECT.IND

;

exit:

 

B:

 

N_CONNECT.IND:

up T_CONNECT.IND

 

T_CONNECT.RESP:

set addrA $address

down N_CONNECT.RESP address $addrA

 

, . . , , . , .. , .

 

8.2.1 , 8.2.1 -, 8.2.2, 8.2.3 8.2.4 , .

. 8.2.1. .

 

8.2.1. -.

  T_CON.REQ N_CON.CONF CON_TRY *
  2,- -,- -,- -,-
  -,- -,- -,- 3,N_CON.REQ
  -,- 4,T_CON.CONF 5,N_CON.REQ -,-
  -,- -,- -,- -,-
  -,- 4,T_CON.CONF 6,N_CON.REQ -,-
  -,- 4,T_CON.CONF 7,N_CON.REQ -,-
  -,- 4,T_CON.CONF 8,N_CON.REQ -,-
  -,- 4,T_CON.CONF 9,N_CON.REQ -,-
  -,- -,- -,- -,-

 

8.2.2. .

/
T_CON.REQ _
N_CON.CONF _
CON_TRY
*

8.2.3. C .

/
N_CON.REQ _
T_CON.CONF _
T_DISCON.REQ _
N_DISCON.REQ _

 

 

8.2.3. C .

/
 
 
 
  ,
  ,
  ,
  ,
  ,
  ,

 

 

. , , . . .

 

:

 

: [ ][]

 

:

{num_pac - ; data - ; buf - }

 

buffer buf sizeof(data)+4 $num_pac 4 $data sizeof(data)

 

. ( ):

{ num_pac - ; data - ; buf - , }

 

set num_pac 0

buffer 20 data 0 4

unbuffer buf num_pac 4 data sizeof(buf)-4

 

, :

: [crc(4)][ (4)][]

 

:

{num_pac - ; data - ; buf - ; buf1- ; crc - }

 

buffer buf1 sizeof(data)+4 $num_pac 4 $data sizeof(data)

crc crc $buf1

buffer buf sizeof(data)+8 $crc 4 $buf1 sizeof(data)+4

 

. ( ):

{num_pac - ; data - ; buf - , ; crc - ; crc1 - ; buf1- }

 

set num_pac 0

;

set crc1 0

;

buffer 20 data 0 4

;

buffer 20 buf1 0 4

;

unbuffer buf crc 4 buf1 sizeof(buf)-4

;

crc crc $buf1

;

if $crc!= $crc1 corrupted

;

;

unbuffer buf1 num_pac 4 data sizeof(data)-8

;

...

goto exit

:corrupted

;

...

goto exit

...

:exit

 

, . :

;

( , ), . . :

, ( ). , . .

 


 

.

1.1 .

. , .. , .. , . , ( , ) , , :

- , , ;

- , , ;

- ;

- , .. ;

- .

: , , .

, S-CONNECT , , .

.

S-DATA, S-GIVE-TOKENS, S-PLEASE-TOKENS, S-GIVE-CONTROL S-SYNC-MINOR, S-SYNC-MAJOR, S-RESYNCHRONIZE.

: S-RELEASE - ( TR), S-P-ABORT S-U-ABORT - .

(, provider, P), (, user, U), , - S-P-ABORT S-U-ABORT.

. , . . . : . , , . : , , , , .

- . - - .

, . .

. , . : , .

, , T-CONNECT, - , . , T-DATA, , .

, , . . 11 -, -.

1.1.1 , , .

 

1.1.2 - .

 

1.2 .

1.2.1 () . , . , , (), , ( 1.2.1()).

)

)

 

. 1.2.1. () ().

 

:
, ..
, ..()
, ..()
, ..
, ._.
, ._.
, ..
, ..
, ._.
,

 


 

2. .

 

( ) ( , ) :

- , , ;

- , , ;

- ;

- , .. .

: , . ( ). . , .

: , , .

, S-CONNECT.

S-CONNECT - :

 

S_CONNECT.REQ:

down T_CONNECT.REQ address $sysB

T_CONNECT.IND:

up S_CONNECT.IND

S_CONNECT.RESP:

down T_CONNECT.RESP address $sysA

T_CONNECT.CONF:

up S_CONNECT.CONF

sysB - , sysA - .

(, ) () , . 2.1, 2.1, 2.2 2.3 , . ( ), . , .

2.1. .

/
S_CON.REQ _
T_CON.CONF _
T_DATA.IND2 _ -
T_DATA.IND1 _ -
T_CON.IND _

 

2.2. C .

/
T_CON.REQ _
T_DATA.REQ1 _ -
S_CON.CONF _
T_CON.RESP _
T_DATA.REQ2 _-
S_CON.IND _

 

 

 

2.3. C .

/
1, 1
2
3
4
5
6 -
7
2
3
4
5 - ,

 

 

. S-DATA, S-GIVE-TOKENS, S-PLEASE-TOKENS S-SYNC-MINOR, S-SYNC-MAJOR, S-RESYNCHRONIZE.

, , :

 

 

, - . S-DATA :

S_DATA.REQ:

if $DK!=1 gettoken DK , gettoken

if qcount(outgoingq)==0 send

queue outgoingq $userdata , ,

goto exit

 

send:

buffer buf1 8 3 4 $userdata 4 3

down T_DATA.REQ userdata $buf1

set SP $SP+1

queue senddata $userdata

goto exit

 

gettoken:

timer timer45 S_RESYNC.REQ 0 token 1

queue outgoingq $userdata

goto exit

 

exit:

 

( ) T_DATA.IND. :

T_DATA.IND:

set ID 4

buffer data 4 4 4

unbuffer userdata ID 4 data 4 -

if $ID == 1 major_sync_ind

if $ID == 2 minor_sync_ind

if $ID == 3 data_ind

if $ID == 4 major_sync_conf

if $ID == 5 resync_ind

if $ID == 6 resync_conf

if $ID == 7 give_toc_ind

if $ID == 8 please_toc_ind

if $ID == 9 release_ind

if $ID == 10 u_abort_ind

goto exit

 

major_sync_ind:

timer t0 S_SYNC_MAJOR.IND 0 syncpoint $data

goto exit

 

minor_sync_ind:

timer t0 S_SYNC_MINOR.IND 0 syncpoint $data

goto exit

 

data_ind:

set SP $SP+1

queue ingoingq $data

if $SP % $SN == 0 major_sync SN ,

goto exit SN - ,

( )

major_sync:

timer t0 S_SYNC_MAJOR.REQ 0

goto exit

 

major_sync_conf:

timer t0 S_SYNC_MAJOR.CONF 0 syncpoint $data

goto exit

 

resync_ind:

timer t0 S_RESYNC.IND 0 syncpoint $data

goto exit

 

resync_conf:

timer t0 S_RESYNC.CONF 0 syncpoint $data

goto exit

 

give_toc_ind:

timer t0 S_GIVE_TOKEN.IND 0 syncpoint $data

goto exit

 

please_toc_ind:

timer t0 S_PLEASE_TOKEN.IND 0 syncpoint $data

goto exit

 

release_ind:

timer t0 S_RELEASE.IND 0 syncpoint $data

goto exit

 

u_abort_ind:

timer t0 S_U_ABORT.IND 0 syncpoint $data

goto exit

 

goto exit

exit:

 

DK - (1- , 0- ); ID - ( . 2.4.); data - ; senddata - , ; outgoingq - ; ingoingq - , .

2.4. .

 
 
 
 
 
 
 
 
 
 

 

, . .. , , , . , , . , , , , , .

, , , , , .

: , . , .

( ). , , .

: S-RELEASE - , S-P-ABORT S-U-ABORT - . , , . S-P-ABORT S-U-ABORT T_DISCONNECT. S_RELEASE , . :

 

S_P_ABORT.REQ:

 

buffer buf 8 10 4 $SP 4

down T_DATA.REQ userdata $buf

down T_DISCONNECT.REQ

 


 

.

1.1 .

() - - , . . , ( ).

, ( ) . . , .

. () , - , . , - .

1, , n - . . 1.1.1, 1, , m.

 

 

 

1 n

 

 

1 m 1 m

 

. 1.1.1. , .

. . , , .

, .

, ( ) . , - .

, .

. , .

, , , :

- ,

- ,

- ,

- .

() - . .

: (), , .

, , . . , . .

. , . , , , .. . . , , : . .

, . . , , . , , .

, , , .

1.2 .

1.2.1 () . , . , , (), , ( 1.2.1()).

)

. 1.2.1. () ().

 

..
..(+)
..(-)
..
._. ()
._. ()

 

, , - . , , . ., , .


1.3 .

1.3.1 , , .

1.3.2 -.

 

 

2. .

( ) .

. , , , - - - , , , .

. 1.1.1 , . , - . 2.1., - . 2.1. - . .

1 2 1 2

 

1 2

 

 

) )

. 2.1. , .

ASN. 1, - , . - , , , - . : {{}{}{}{}} ( - {}).

, , . . 1.1.1. , . .. ASN. 1, .

, , . .

:

 

, , . .

 
 
 
 
 
 
 
 

 

:

   

 

{{}{}{}{}} :

                     
 

:

. , - .

( ), , 1.

.

, . 1.

.

:

. - , - 47.

. - , - 3.

sound 3 . sound =

. - , - 7.

move 7 . move =

. - , - 5.

color 5 . color =

. - , - 0.

smell 0 . smell =

, .

([]), [[+$sound+][+$move][+$color][+$smell]] [[][][][]].

{{}{}{}{}} [[][][][]].

:

, , , , 255.

 

 

:

   
'd1f'e4f'f0f'e8  

 

{{}{}{}{}} :

                     
   

 

, (.. , ..) , . , ( ) .

3. .

 

( ) . : , , . .

, P-CONNECT.

P-CONNECT - :

P_CONNECT.REQ:

down S_CONNECT.REQ address $sysB

S_CONNECT.IND:

up P_CONNECT.IND

P_CONNECT.RESP:

down S_CONNECT.RESP address $sysA

S_CONNECT.CONF:

up P_CONNECT.CONF

sysB - , sysA - .

. , . . , , 866- 1251-. , , , . . . , , , .

.

P-DATA, . (. 2). , ( ), ({}), - ([]) {{}{}}. . .

P_DATA.REQ:

;datatype - ()

; clbrack - - ( 1) ( })

unbuffer userdata datatype 4 s sizeof(userdata)-4

if $datatype == 1 struct

if $datatype == 2 number

if $datatype == 3 string

if $datatype == 4 buff

goto send1

 

number:

buffer buf 12 2 4 4 4 $s 4

goto send1

 

string:

buffer buf sizeof(s)+8 3 4 sizeof(s) 4 $s 4

goto send1

 

buff:

buffer buf sizeof(s)+8 4 4 sizeof(s) 4 $s 4

goto send1

 

struct:

; userdata {{}{}{}{}}

; ( , .. {{)

;s {{}{}}

unbuffer s c 2 t sizeof(s)-2 t }{}}

 

;

unbuffer t sound pos($clbrack,t)-1 c 2 s sizeof(t)-2-$q s }} sound

unbuffer s move pos($clbrack,s)-1 c 2 t sizeof(s)-2-$q t move

 

;

buffer bufsound sizeof(sound)+8 10 4 sizeof(sound) 4 $sound sizeof(sound) bufsound 10 3

buffer bufmove sizeof(move)+8 20 4 sizeof(move) 4 $move sizeof(move) bufmove 20 7

 

;

set q sizeof(bufsound)+sizeof(bufmove)

;

buffer buf $q+8 1 4 $q 4 $bufsound sizeof(bufsound) $bufmove sizeof(bufmove)

;buf 1 26 10 3 20 7

goto send1

 

send1:

down S_DATA.REQ userdata $buf

goto exit

 

T_DATA.IND:

; clbrack - - ( 1) ( ])

; opbrack - - ( 1) ( [)

 

; (type - ; len - )

unbuffer userdata type 4 len 4 buf sizeof(userdata)-8

if $type == 1 struct1

if $type == 2 number1

if $type == 3 string1

if $type == 4 buff1

goto exit

 

number1:

 

unbuffer buf num $len

buffer data 8 2 4 $num 4

out $num

goto send

 

string1:

 

unbuffer buf str $len

buffer data sizeof(str)+4 3 4 $str sizeof(str)

out $str

goto send

 

buff1:

 

unbuffer buf buff $len

buffer data sizeof(buff)+4 4 4 $buff sizeof(buff)

goto send

 

struct1:

 

;userdata -1 26 10 3 20 7

; type - 1 len - 26 buf -10 3 20 7

 

next:

if sizeof(buf)==0 done

unbuffer buf type 4 len 4 buf1 sizeof(buf)-8 type - 10 len - 3 buf1 - 20 7

if $type==10 sound

if $type==20 move

goto error

sound:

unbuffer buf1 ssound $len buf sizeof(buf1)-$len ssound - buf - 20 7

goto next

move:

unbuffer buf1 smove $len buf sizeof(buf1)-$len smove - buf -

goto next

 

error:

out " "

goto exit

 

;

done:

 

set str $opscob+$opscob+$ssound+$clscob+$opscob+$smove+$clscob+$clscob str - [[][]]

buffer data sizeof(str)+4 1 4 $str sizeof(str)

goto send

 

send:

up P_DATA.IND userdata $data

 

exit:

 

, . : P-GIVE-TOKENS, P-PLEASE-TOKENS, P-GIVE-CONTROL P-SYNC-MINOR, P-SYNC-MAJOR, P-RESYNCHRONIZE. , . :

P_SYNC_MAJOR.REQ:

down S_SYNC_MAJOR.REQ

: S-RELEASE - , S-P-ABORT S-U-ABORT - . , .


 

1. .

 

1.1 .

 

() . , . . , , , .

, , . (application process, AP). - , . (Application Entity, AE).

, , (Application Service Elements, ASE). , , (, ACSE), (, SASE), , - (, UE), .1.1.1.

 

 

 

, .

() () - , . .

. , . , .

.

.



<== | ==>
|
:


: 2016-09-06; !; : 458 |


:

:

, - , ; , - .
==> ...

1465 - | 1469 -


© 2015-2024 lektsii.org - -

: 0.496 .