⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1085.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:

               connectResponse
                   ConnectResponse-PDU,

               releaseRequest
                   ReleaseRequest-PDU,

               releaseResponse
                   ReleaseResponse-PDU,

               abort
                   Abort-PDU,

               userData
                   UserData-PDU,

               cL-userData
                   CL-UserData-PDU



Rose                                                           [Page 26]

RFC 1085               ISO Presentation Services           December 1988


           }



   -- connect request PDU

   ConnectRequest-PDU ::=
       [0]
           IMPLICIT SEQUENCE {
               version[0]          -- version-1 corresponds to to this
                                      memo
                   IMPLICIT INTEGER { version-1(0) },

               reference
                   SessionConnectionIdentifier,

               calling
                   PresentationSelector
                   OPTIONAL,

               called[2]
                   IMPLICIT PresentationSelector
                   OPTIONAL,

               asn[3]              -- the ASN for PCI #1
                   IMPLICIT OBJECT IDENTIFIER,

               user-data
                   UserData-PDU
           }

   SessionConnectionIdentifier ::=
       [0]
           SEQUENCE {
               callingSSUserReference
                   T61String,

               commonReference
                   UTCTime,

               additionalReferenceInformation[0]
                   IMPLICIT T61String
                   OPTIONAL
           }

   PresentationSelector ::=
       [1]
           IMPLICIT OCTET STRING



Rose                                                           [Page 27]

RFC 1085               ISO Presentation Services           December 1988


   -- connect response PDU

   ConnectResponse-PDU ::=
       [1]
           IMPLICIT SEQUENCE {
               reference           -- present only in the udp-based
                                   -- service
                   SessionConnectionIdentifier
                   OPTIONAL,

               responding
                   PresentationSelector
                   OPTIONAL,

               reason[2]           -- present only if the connection
                                   -- was rejected
                   IMPLICIT Rejection-reason
                   OPTIONAL,

               user-data           -- present only if reason is absent
                                   -- OR has the
                                   -- value rejected-by-responder
                   UserData-PDU
                   OPTIONAL
           }

   Rejection-reason ::=
           INTEGER {
               rejected-by-responder(0)
               called-presentation-address-unknown(1),
               local-limit-exceeded(3),
               protocol-version-not-supported(4),
           }


   -- release request PDU

   ReleaseRequest-PDU ::=
       [2]
           IMPLICIT SEQUENCE {
               reference           -- present only in the udp-based
                                   -- service
                   SessionConnectionIdentifier
                   OPTIONAL,

               user-data
                   UserData-PDU
           }



Rose                                                           [Page 28]

RFC 1085               ISO Presentation Services           December 1988


   -- release response PDU

   ReleaseResponse-PDU ::=
       [3]
           IMPLICIT SEQUENCE {
               reference           -- present only in the udp-based
                                   -- service
                   SessionConnectionIdentifier
                   OPTIONAL,

               user-data
                   UserData-PDU
           }

   -- abort PDU

   Abort-PDU ::=
       [4]
           SEQUENCE {
               reference           -- present only in the udp-based
                                   -- service
                   SessionConnectionIdentifier
                   OPTIONAL,

               user-data   -- MAY BE present on user-initiated abort
                   UserData-PDU
                   OPTIONAL,

               reason[1]   -- ALWAYS present on provider-initiated abort
                   IMPLICIT Abort-reason
                   OPTIONAL
           }

   Abort-reason ::=
           INTEGER {
               unspecified(0),
               unrecognized-ppdu(1),
               unexpected-ppdu(2),
               unrecognized-ppdu-parameter(4),
               invalid-ppdu-parameter(5),
               reference-mismatch(9)
           }


   -- data PDU

   UserData-PDU ::=
       [5]                         -- this is the ASN.1 object



Rose                                                           [Page 29]

RFC 1085               ISO Presentation Services           December 1988


           ANY                     -- if it is a top-level PDU, it
                                   -- is in PCI #1, otherwise PCI #3


   -- data PDU for the udp-based service

   CL-UserData-PDU ::=
       [6]
           IMPLICIT SEQUENCE {
               reference
                   SessionConnectionIdentifier,

               user-data[0]                -- this is the ASN.1 object
                   ANY                     -- it is always in PCI #1
           }

   END

Appendix B:

Example of Serialization


   Consider the following call to ROSE:

           RO-INVOKE (operation number      = 5
                      operation class       = synchronous
                      argument              = NONE
                      invocation identifier = 1
                      linked invocation id. = NONE
                      priority              = 0)
               .REQUEST

   Ultimately, ROSE will use the P-DATA service:

           P-DATA (user data = {
                                 1,        -- this is the PCI
                                 {         -- this is the ASN.1 object
                                    invokeID 1,
                                    operation-value 5,
                                    argument {}
                                 }
                               })
               .REQUEST

   The presentation provider will construct a UserData PDU and send this
   via the transport connection:




Rose                                                           [Page 30]

RFC 1085               ISO Presentation Services           December 1988


      [5] {
            {
              1,
              5,
              {}
            }
          }

   Applying the basic encoding rules for ASN.1, we have an stream of 12
   octets.

      a5  0a                                       [5]
      tag len

      a0  08                               [0]
      tag len
      02  01  01           invokeID 1
      tag len value

      02  01  05           operation-value 5
      tag len value

      30  00                       argument NULL
      tag len

   Of course, in actual use, the argument would not be NONE and this
   could be expected to dominate the size of the UserData PDU.  However,
   it is worth nothing that the overhead of the encoding mechanism used
   is on the order of 10 octets, hardly a staggering amount!

Appendix C:

Determination of Network Called Address

   As described in Section 10, when the P-CONNECT.REQUEST primitive is
   issued the presentation provider must determine which of the network
   addresses present in the called presentation address parameter to use
   for the presentation connection.  The first step in this
   determination is to examine the quality of service parameter and
   consider only those network addresses which support the corresponding
   transport service.  In practice, it is likely that each network
   address will support exactly the same transport services, so using
   quality of service as a discriminant will either permit all or none
   or the network addresses present to be selected.  This appendix
   describes a local policy which might be employed when deciding which
   network address to use.

   The policy distinguishes between "underlying failures" and



Rose                                                           [Page 31]

RFC 1085               ISO Presentation Services           December 1988


   "connection establishment failures".  An "underlying failure" occurs
   when, using the desired transport service, the initiating
   presentation provider is unable to contact the responding
   presentation provider.  For the tcp-based service, this means that a
   TCP connection could not be established for some reason.  For the
   udp-based service, it means that a response was not received before
   final time-out.  In contrast, a "connection establishment failure"
   occurs when the responding presentation provider can be contacted,
   but the presentation connection is rejected by either the
   presentation provider or the correspondent presentation user.

   The policy is simple: starting with the first network address
   present, attempt the connection procedure.  If the procedure fails
   due to an "underlying failure", then the next network address in the
   list is tried.  This process is repeated until either an underlying
   connection is established or all network addresses are exhausted.
   If, however, a "connection establishment failure" occurs, then the
   presentation provider immediately indicates this failure to the
   presentation user and no further network addresses are considered.

   Note that this is only one conformant policy of many.  For example,
   the presentation provider may wish to order network addresses based
   on the "intensity" associated with the members present in the set of
   transport services for each network address.

Author's Address:

   Marshall Rose
   The Wollongong Group
   1129 San Antonio Road
   Palo Alto, CA 94303

   Phone: (415) 962-7100

   EMail: mrose@TWG.COM
















Rose                                                           [Page 32]


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -