DICOM PS3.8 2020a - Network Communication Support for Message Exchange |
Page 41 |
9.2 DICOM Upper Layer Protocol for TCP/IP State Machine
9.2.1 Machine States Definition
|
Table 9-1. No Association |
|
|
State |
Definition |
Sta 1 |
Idle |
|
|
Table 9-2. Association Establishment |
|
State |
Definition |
|
Sta 2 |
Transport connection open (Awaiting A-ASSOCIATE-RQ PDU) |
|
Sta 3 |
Awaiting local A-ASSOCIATE response primitive (from local user) |
|
Sta 4 |
Awaiting transport connection opening to complete (from local transport service) |
|
Sta 5 |
Awaiting A-ASSOCIATE-AC or A-ASSOCIATE-RJ PDU |
|
|
Table 9-3. Data Transfer |
|
State |
Definition |
|
Sta 6 |
Association established and ready for data transfer |
|
|
Table 9-4. Association Release |
|
State |
Definition |
|
Sta 7 |
Awaiting A-RELEASE-RP PDU |
|
Sta 8 |
Awaiting local A-RELEASE response primitive (from local user) |
|
Sta 9 |
Release collision requestor side; awaiting A-RELEASE response (from local user) |
|
Sta 10 |
Release collision acceptor side; awaiting A-RELEASE-RP PDU |
|
Sta 11 |
Release collision requestor side; awaiting A-RELEASE-RP PDU |
|
Sta 12 |
Release collision acceptor side; awaiting A-RELEASE response primitive (from local user) |
|
|
Table 9-5. Waiting for Transport Connection Close |
|
State |
Definition |
|
Sta 13 |
Awaiting Transport Connection Close Indication (Association no longer exists) |
|
9.2.2 State Machine Actions Definition |
|
|
|
Table 9-6. Association Establishment Related Actions |
|
Action |
Definition |
|
AE-1 |
Issue TRANSPORT CONNECT request primitive to local transport service |
|
|
Next state is Sta4 |
|
AE-2 |
Send A-ASSOCIATE-RQ-PDU |
|
|
Next state is Sta5 |
|
AE-3 |
Issue A-ASSOCIATE confirmation (accept) primitive |
|
|
Next state is Sta6 |
|
- Standard -
Page 42 |
DICOM PS3.8 2020a - Network Communication Support for Message Exchange |
Action |
Definition |
AE-4 |
Issue A-ASSOCIATE confirmation (reject) primitive and close transport connection |
|
Next state is Sta1 |
AE-5 |
Issue Transport connection response primitive; start ARTIM timer |
|
Next state is Sta2 |
AE-6 |
Stop ARTIM timer and if A-ASSOCIATE-RQ acceptable by service-provider: |
|
•issue A-ASSOCIATE indication primitive |
|
Next state is Sta3 |
|
otherwise: |
|
•issue A-ASSOCIATE-RJ-PDU and start ARTIM timer |
|
Next state is Sta13 |
AE-7 |
Send A-ASSOCIATE-AC PDU |
|
Next state is Sta6 |
AE-8 |
Send A-ASSOCIATE-RJ PDU and start ARTIM timer |
|
Next state is STA13 |
|
Table 9-7. Data Transfer Related Actions |
State |
Definition |
DT-1 |
Send P-DATA-TF PDU |
|
Next state is Sta6 |
DT-2 |
Send P-DATA indication primitive |
|
Next state is Sta6 |
|
Table 9-8. Association Release Related Actions |
Action |
Definition |
AR-1 |
Send A-RELEASE-RQ PDU |
|
Next state is Sta7 |
AR-2 |
Issue A-RELEASE indication primitive |
|
Next state is Sta8 |
AR-3 |
Issue A-RELEASE confirmation primitive, and close transport connection |
|
Next state is Sta1 |
AR-4 |
Issue A-RELEASE-RP PDU and start ARTIM timer |
|
Next state is Sta13 |
AR-5 |
Stop ARTIM timer |
|
Next state is Sta1 |
AR-6 |
Issue P-DATA indication |
|
Next state is Sta7 |
- Standard -
|
DICOM PS3.8 2020a - Network Communication Support for Message Exchange |
Page 43 |
Action |
Definition |
|
AR-7 |
Issue P-DATA-TF PDU |
|
|
Next state is Sta8 |
|
AR-8 |
Issue A-RELEASE indication (release collision): |
|
|
•if association-requestor, next state is Sta9 |
|
|
•if not, next state is Sta10 |
|
AR-9 |
Send A-RELEASE-RP PDU |
|
|
Next state is Sta11 |
|
AR-10 |
Issue A-RELEASE confirmation primitive |
|
|
Next state is Sta12 |
|
|
Table 9-9. Association Abort Related Actions |
|
Action |
Definition |
|
AA-1 |
Send A-ABORT PDU (service-user source) and start (or restart if already started) ARTIM timer |
|
|
Next state is Sta13 |
|
AA-2 |
Stop ARTIM timer if running. Close transport connection |
|
|
Next state is Sta1 |
|
AA-3 |
If (service-user inititated abort): |
|
|
•issue A-ABORT indication and close transport connection |
|
otherwise (service-provider inititated abort): |
|
•issue A-P-ABORT indication and close transport connection |
|
Next state is Sta1 |
AA-4 |
Issue A-P-ABORT indication primitive |
|
Next state is Sta1 |
AA-5 |
Stop ARTIM timer |
|
Next state is Sta1 |
AA-6 |
Ignore PDU |
|
Next state is Sta13 |
AA-7 |
Send A-ABORT PDU |
|
Next state is Sta13 |
AA-8 |
Send A-ABORT PDU (service-provider source-), issue an A-P-ABORT indication, and start ARTIM |
|
timer |
|
Next state is Sta13 |
9.2.3 DICOM Upper Layer Protocol for TCP/IP State Transition Table
The DICOM Upper Layer Protocol State transitions are specified in Table 9-10. This table addresses both the normal and error cases for the protocol operation. Both the called and the calling aspects of an association are described in this table.
- Standard -
Page 44 DICOM PS3.8 2020a - Network Communication Support for Message Exchange
Table 9-10. DICOM Upper Layer Protocol State Transition Table
STATES |
No Association establishment |
Data |
Association release (normal & collision) Wait |
||
assocn |
transfer |
for Tp |
|||
|
|
|
|
|
Close |
EVENTS |
Sta1 Sta2 Sta3 Sta4Sta5 |
Sta6 |
Sta7 Sta8 Sta9 Sta10Sta11Sta12Sta13 |
||
A-ASSOCIATE AE-1 |
|
|
|
|
|
Request (local user) |
Sta4 |
|
|
|
|
|
|
|
|
|
|
Transport Conn. |
AE-2 |
|
|
|
|
Confirmn (local |
|
Sta5 |
|
|
|
transport service) |
|
|
|
|
|
A-ASSOCIATE-AC |
AA-1 AA-8 |
AE-3 |
AA-8 |
AA-8 AA-8 AA-8 AA-8 AA-8 AA-8 AA-6 |
|
PDU (received on |
Sta13 Sta13 |
Sta6 Sta13 Sta13 Sta13 Sta13Sta13Sta13Sta13 Sta13 |
|||
transport |
|||||
connection) |
|
|
|
|
|
A-ASSOCIATE-RJ |
AA-1 AA-8 |
AE-4 |
AA-8 |
AA-8 AA-8 AA-8 AA-8 AA-8 AA-8 AA-6 |
|
PDU (received on |
Sta13 Sta13 |
Sta1 Sta13 Sta13 Sta13 Sta13Sta13Sta13Sta13 Sta13 |
|||
transport |
|||||
connection) |
|
|
|
|
|
Transport |
AE-5 |
|
|
|
|
Connection |
Sta2 |
|
|
|
|
Indication (local |
|
|
|
|
|
transport service) |
|
|
|
|
|
A-ASSOCIATE-RQ |
AE-6 AA-8 |
AA-8 |
AA-8 |
AA-8 AA-8 AA-8 AA-8 AA-8 AA-8 AA-7 |
|
PDU (received on |
Sta3 orSta13 |
Sta13 Sta13 Sta13 Sta13 Sta13Sta13Sta13Sta13 Sta13 |
|||
transport |
|||||
connection) |
13 |
|
|
|
|
A-ASSOCIATE |
AE-7 |
|
|
|
|
response primitive |
Sta6 |
|
|
|
|
(accept) |
|
|
|
|
|
A-ASSOCIATE |
AE-8 |
|
|
|
|
response primitive |
Sta13 |
|
|
|
|
(reject) |
|
|
|
|
|
P-DATA request |
|
|
DT-1 |
AR-7 |
|
primitive |
|
|
Sta6 |
Sta8 |
|
|
|
|
|
||
P-DATA-TF PDU |
AA-1 AA-8 |
AA-8 DT-2 AR-6 AA-8 AA-8 AA-8 AA-8 AA-8 AA-6 |
|||
|
Sta13 Sta13 |
Sta13 Sta6 |
Sta7 Sta13 Sta13Sta13Sta13Sta13 Sta13 |
||
A-RELEASE |
|
|
AR-1 |
|
|
Request primitive |
|
|
Sta7 |
|
|
|
|
|
|
|
|
A-RELEASE-RQ |
AA-1 AA-8 |
AA-8 AR-2 AR-8 AA-8 AA-8 AA-8 AA-8 AA-8 AA-6 |
|||
PDU (received on |
Sta13 Sta13 |
Sta13 Sta8 Sta9 orSta13 Sta13Sta13Sta13Sta13 Sta13 |
|||
open transport |
|||||
connection) |
|
|
|
10 |
|
A-RELEASE-RP |
AA-1 AA-8 |
AA-8 AA-8 |
AR-3 AA-8 AA-8 AR-10AR-3 AA-8 AA-6 |
||
PDU (received on |
Sta13 Sta13 |
Sta13 Sta13 Sta1 Sta13 Sta13Sta12 Sta1 Sta13 Sta13 |
|||
transport |
|||||
connection) |
|
|
|
|
|
A-RELEASE |
|
|
|
AR-4 AR-9 |
AR-4 |
Response primitive |
|
|
|
Sta13 Sta11 |
Sta13 |
|
|
|
|
||
- Standard -
|
DICOM PS3.8 2020a - Network Communication Support for Message Exchange |
Page 45 |
||||
STATES |
No Association establishment |
Data |
Association release (normal & collision) |
Wait |
||
assocn |
transfer |
|
for Tp |
|||
|
|
|
|
|
|
Close |
EVENTS |
Sta1 Sta2 Sta3 Sta4Sta5 |
Sta6 |
Sta7 Sta8 |
Sta9 Sta10Sta11Sta12Sta13 |
||
A-ABORT Request |
AA-1AA-2AA-1 |
AA-1 |
AA-1 AA-1 |
AA-1 AA-1 AA-1 AA-1 |
||
primitive |
Sta13Sta1Sta13 Sta13 Sta13 Sta13 Sta13Sta13Sta13Sta13 |
|||||
|
||||||
A-ABORT PDU |
AA-2 AA-3 |
AA-3 AA-3 |
AA-3 AA-3 AA-3 AA-3 AA-3 AA-3 AA-2 |
|||
(received on open |
Sta1 Sta1 |
Sta1 |
Sta1 |
Sta1 Sta1 |
Sta1 Sta1 Sta1 Sta1 |
Sta1 |
transport |
||||||
connection) |
|
|
|
|
|
|
Transport |
AA-5 AA-4AA-4AA-4 |
AA-4 |
AA-4 AA-4 |
AA-4 AA-4 AA-4 AA-4 AR-5 |
||
connection closed |
Sta1 Sta1 Sta1Sta1 |
Sta1 |
Sta1 Sta1 |
Sta1 Sta1 Sta1 Sta1 |
Sta1 |
|
indication (local |
||||||
transport service) |
|
|
|
|
|
|
ARTIMtimerexpired |
AA-2 |
|
|
|
|
AA-2 |
(Association |
Sta1 |
|
|
|
|
Sta1 |
reject/release timer) |
|
|
|
|
||
Unrecognized or |
AA-1 AA-8 |
AA-8 |
AA-8 |
AA-8 AA-8 |
AA-8 AA-8 AA-8 AA-8 AA-7 |
|
invalidPDUreceived |
Sta13 Sta13 |
Sta13 Sta13 Sta13 Sta13 Sta13Sta13Sta13Sta13 Sta13 |
||||
|
||||||
9.3 DICOM Upper Layer Protocol for TCP/IP Data Units Structure
9.3.1 General
The Protocol Data Units (PDUs) are the message formats exchanged between peer entities within a layer. A PDU shall consist of protocol control information and user data. PDUs are constructed by mandatory fixed fields followed by optional variable fields that contain one or more items and/or sub-items.
Itemsofunrecognizedtypesshallbeignoredandskipped.Itemsshallappearinanincreasingorderoftheiritemtypes.Severalinstances of the same item shall be acceptable or shall not as specified by each item.
The DICOM UL protocol consists of seven Protocol Data Units:
a.A-ASSOCIATE-RQ PDU
b.A-ASSOCIATE-AC PDU
c.A-ASSOCIATE-RJ PDU
d.P-DATA-TF PDU
e.A-RELEASE-RQ PDU
f. A-RELEASE-RP PDU
g.A-ABORT PDU
The encoding of the DICOM UL PDUs is defined as follows (Big Endian byte ordering) :
Note
The Big Endian byte ordering has been chosen for consistency with the OSI and TCP/IP environment. This pertains to the DICOM UL PDU headers only. The encoding of the PDV message fragments is defined by the Transfer Syntax negotiated at association establishment.
a.Each PDU type shall consist of one or more bytes that when represented, are numbered sequentially, with byte 1 being the lowest byte number.
- Standard -