3.3.1 Abstract Data Model

For relay server connection (1) with a client, on which the client is performing SSTP Security protocol authentication, the following state variables MUST be maintained for each transport layer connection (2):

AttachSessionIds: A set of SessionIds used by Attach sessions.

RegisterSessionIds: A set of SessionIds used by a Register sessions.

Additional state variables as specified in [MS-GRVSSTPS] are required for a relay server to authenticate a connecting client.

In addition to the common state variables specified in section 3.1.1, a session receiver on a relay server MUST maintain the following state variables for each inbound fanout session:

MessageProcessingState: A variable associated with a specific message sequence received for a fanout session, which tracks the processing state of the resource handler in handling of submitted application data. The message processing state is either ‘processing’ or ‘complete’.

FanoutAddressingList: The list of addressing entries for a received fanout session, consisting of a common ResourceURL, and a list of IdentityURL, DeviceURL, and RelayURLs identifying the recipient resource handlers. In SSTP 1.6, each fanout addressing entry has an additional FailoverDeviceIndexes field. For each entry in the list, there is an associated:

  • ResourceHandlerAvailability state

  • Reference to an outbound single-hop session

  • MessageProcessingState for each message sequence received by the fanout session

    The FanoutAddressingList is maintained for the life of the session. The original list entry order MUST be maintained with no entries added or deleted.

 

AggregateResourceHandlerAvailability: A variable which indicates the aggregate readiness of the collection of all ResourceHandlerAvailability states for all identified resource handlers contained in the FanoutAddressingList. The aggregate state is either ‘ready’ or ‘notReady’.