📄 rfc1085.txt
字号:
- flushes the serialization module, and
- releases TCP or UDP resources
Following are the interpretation of and the defaults assigned to the
parameters of the P-P-ABORT service.
Rose [Page 13]
RFC 1085 ISO Presentation Services December 1988
1. Provider reason
An integer code detailing why the connection was aborted. Codes
include, but are not limited to: invalid PPDU parameter,
unexpected PPDU, unrecognized PPDU, and specified reason.
2. Abort data
None.
9. Information Transfer
Although the Information Transfer facility consists of many services,
only one, the P-DATA service, is provided by this memo.
9.1. The P-DATA Service
This services provides the service user with a data transfer
capability. This service has effects which are sequenced and non-
destructive.
If the udp-based service is selected, then there is an upper-bound on
the size of the serialized ASN.1 objects which may be transmitted.
This limit, imposed by the UDP, is 65536 octets. As a practical
matter, it is probably a good idea to keep datagrams less than or
equal to 536 octets in size.
For our purposes, the P-DATA service:
- sends user data
Following are the interpretation of and the defaults assigned to the
parameters of the P-DATA service:
1. User data
A single ASN.1 object is present, a remote operations APDU,
carried in presentation context 1.
10. Elements of Procedure
The service provider is in one of the following states:
IDLE, WAIT1, WAIT2, DATA, WAIT3, or WAIT4
The possible events are:
PS-user P-CONNECT.REQUEST
Rose [Page 14]
RFC 1085 ISO Presentation Services December 1988
P-CONNECT.RESPONSE
P-RELEASE.REQUEST
P-RELEASE.RESPONSE
P-DATA.REQUEST
P-U-ABORT.REQUEST
network TCP closed or errored(*)
receive ConnectRequest PDU
receive ConnectResponse PDU
receive ReleaseRequest PDU
receive ReleaseResponse PDU
receive UserData(*) or CL-UserData(**) PDU
receive user-initiated Abort PDU
receive provider-initiated Abort PDU
timer expires(**)
The possible actions are:
PS-user P-CONNECT.INDICATION
P-CONNECT.CONFIRMATION
P-RELEASE.INDICATION
P-RELEASE.CONFIRMATION
P-DATA.INDICATION
P-U-ABORT.INDICATION
P-P-ABORT.INDICATION
network open TCP(*)
close TCP(*)
send ConnectRequest PDU
send ConnectResponse PDU
send ReleaseRequest PDU
send ReleaseResponse PDU
send UserData(*) or CL-UserData(**) PDU
send user-initiated Abort PDU
send provider-initiated Abort PDU
set timer(**)
(*) tcp-based service only
(**) udp-based service only
10.1. Elements of Procedure specific to the tcp-based service
The provider maintains the following information for each
presentation connection:
- a local designator for the PS-user
Rose [Page 15]
RFC 1085 ISO Presentation Services December 1988
- a local designator for a TCP connection
- the state of the connection (e.g., IDLE, WAIT1, and so on)
Upon receiving an event from the network, the provider finds the
associated presentation connection. Matching is done by simply
comparing local designators for the TCP connection. Whenever a
connection remains in or returns to the IDLE state, any associated
resources, such as an attachment to a local TCP port, are released.
In the procedures which follow, outgoing PDUs are "placed on the
input queue for the serializer". This has a different meaning
depending on the type of PDU being enqueued. If the PDU is not an
abort PDU (user-initiated or provider-initiated), then the PDU is
simply appended to the input queue regardless of the number of PDUs
present. If however, the PDU is an abort PDU, then the provider
checks the size of the input queue. If the input queue is non-empty
or if the serializer is busy transmitting to the network, then the
abort PDU is discarded, and the serializer is flushed, aborting any
output to the network in progress. However, if the input queue is
empty, then the Abort PDU is appended to the queue, and a small timer
started. If the timer expires before the PDU has been serialized and
transmitted, then the serializer is flushed, aborting any output to
the network in progress.
Further, in general, whenever the TCP connection is closed (either
locally by the provider, or remotely by the network) or has errored,
the serializer is flushed. The one exception to this is if a
ReleaseResponse PDU is being serialized and transmitted to the
network. In this case, the provider will not close the TCP
connection until after the serializer has finished.
10.2. Elements of Procedure specific to the udp-based service
The provider maintains the following information for each
presentation connection:
- a local designator for the PS-user
- the 32-bit IP address and 16-bit UDP port number of the
initiating host
- the 32-bit IP address and 16-bit UDP port number of the
responding host
- the session connection identifier used to establish the
presentation connection
Rose [Page 16]
RFC 1085 ISO Presentation Services December 1988
- a local designator for an UDP endpoint
- the state of the connection (e.g., IDLE, WAIT1, and so on)
- a retransmission counter
Upon receiving an event from the network, the provider finds the
associated presentation connection. Matching is done on the basis of
addresses, ports, and the session connection identifier (i.e., two
different presentation connections may differ only in their session
connection identifier). If no presentation connection can be found,
then for the purposes of discussion, it may be assumed that a
"vanilla" presentation connection is created and initialized to the
IDLE state. Further, whenever a connection remains in or returns to
the IDLE state, any associated resources, such as an attachment to a
local UDP port, are released.
In the procedures which follow, outgoing PDUs are "placed on the
input queue for the serializer". This means that the ASN.1 object is
serialized and the resulting sequence of octets is sent as a single
UDP datagram.
10.3. State Transitions
Following are the rules for transitioning states. If an event
associated with a user-generated primitive is omitted, then it is an
interface error for the user to issue that primitive in the given
state. Each state considers all possible incoming PDUs.
We assume that for the tcp-based service, that some entity starts a
passive TCP open. When the passive open completes, the entity, using
some local rule, locates a PS-user to be associated with the incoming
presentation connection. This presentation connection is then placed
in the IDLE state. The entity then continues listening for other
passive opens to complete. The mechanisms associated with this
entity are entirely a local matter, the concept of this listener is
introduced solely as a modeling artifact.
Finally, if the udp-based service is selected, then CL-UserData PDUs
are exchanged by the provider instead of UserData PDUs.
IDLE state
Event: P-CONNECT.REQUEST primitive issued
Based on the quality of service parameter and the list of network
addresses in the called presentation address parameter, the provider
Rose [Page 17]
RFC 1085 ISO Presentation Services December 1988
selects an address for the use of the presentation connection. The
method for making this determination is a local matter. (Appendix C
discusses a strategy which might be used.) For the discussion that
follows, we assume that a network address supporting the desired
quality of service has been determined.
Based on the network address chosen from the called presentation
address parameter, the provider selects a compatible network address
from the calling presentation address parameter. The provider
attaches itself to the port associated with this network address.
(By local determination, this address need not be used, and an
"ephemeral" port may be chosen by the provider.)
For the tcp-based service, the provider attempts to establish a TCP
connection to the network address listed in the called presentation
address. If the connection can not be established, the P-
CONNECT.CONFIRMATION(-) primitive is issued with a reason of
provider-rejection, and the provider remains in the IDLE state.
Regardless, the user data parameter is placed in a ConnectRequest
PDU, which is put on the input queue for the serializer.
For the udp-based service, the provider sets the retransmission
counter to a small value (e.g., 2), and now starts a small timer.
Regardless, the provider enters the WAIT1 state.
Event: ConnectRequest PDU received
The provider issues the P-CONNECT.INDICATION primitive and enters the
WAIT2 state.
Event: any other PDU received
If the PDU is not an Abort PDU, the provider constructs a provider-
initiated Abort PDU, which is put on the input queue for the
serializer. Regardless, the provider remains in the IDLE state.
WAIT1 state
Event: P-U-ABORT.REQUEST primitive issued
The user data parameter is placed in an Abort PDU, which is put on
the input queue for the serializer. The provider enters the IDLE
state.
Rose [Page 18]
RFC 1085 ISO Presentation Services December 1988
Event: ConnectResponse PDU received
For the udp-based service, the timer is cancelled. If the PDU
indicates rejection, the P-CONNECT.CONFIRMATION(-) primitive is
issued and the provider enters the IDLE state. Otherwise, the P-
CONNECT.CONFIRMATION(+) primitive is issued and the provider enters
the DATA state.
Event: user-initiated Abort PDU received
The provider issues the P-U-ABORT.INDICATION primitive and enters the
IDLE state.
Event: any other PDU received
If the PDU not an Abort PDU, the provider constructs a provider-
initiated Abort PDU, which is put on the input queue for the
serializer. Regardless, The provider issues the P-P-ABORT.INDICATION
primitive and enters the the IDLE state.
Event: timer expires
The provider decrements the retransmission counter. If the resulting
value is less than or equal to zero, the provider issues the P-
CONNECT.CONFIRMATION(-) primitive and enters the IDLE state.
Otherwise, a ConnectRequest PDU is put on the input queue for the
serializer, the small timer is started again, and the provider
remains in the WAIT1 state.
WAIT2 state
Event: P-CONNECT.RESPONSE primitive issued
The user data parameter is placed in a ConnectResponse PDU, which is
put on the input queue for the serializer. If the result parameter
had the value user-rejection, the provider enters the IDLE state.
Otherwise if the parameter had the value acceptance, the provider
enters the DATA state.
Rose [Page 19]
RFC 1085 ISO Presentation Services December 1988
Event: P-U-ABORT.REQUEST primitive issued
The user data parameter is placed in an Abort PDU, which is put on
the input queue for the serializer. The provider enters the IDLE
state.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -