2.2.1.1 Connect Command Fields

Connect command fields are defined in the following table.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

CommandID

CommandLength

MajorVersionNumber

MinorVersionNumber

Reserved

TargetDeviceURL (variable)

...

A

SourceDeviceURLs (variable)

...

AuthenticationTokenLength

AuthenticationToken (variable)

...

PeerProductVersion (variable)

...

PeerProductCapabilities (variable)

...

CommandID (1 byte): The command identifier. This field MUST be set to 0x01.

CommandLength (2 bytes): The total length of the command, in bytes.

MajorVersionNumber (1 byte): The SSTP major version of the sending device. This field MUST be set to 0x01.

MinorVersionNumber (1 byte): The SSTP minor version number of the sending device. If the sending device supports SSTP 1.6, this field MUST be set to 0x06; otherwise, this field MUST be set to 0x05.

Reserved (1 byte): A reserved field that MUST be set to 0x00.

TargetDeviceURL (variable): A variable-length ASCII string terminated by the byte 0x00 containing the expected DeviceURl of the device that is receiving this message.

A - NumSourceDeviceURLs (1 byte): The number of device URLs in the SourceDeviceURLs field of this command.

SourceDeviceURLs (variable): A list of variable-length ASCII strings, each terminated by the byte 0x00, that identify the sending device. The number of strings MUST be as specified in the NumSourceDeviceURL field.

AuthenticationTokenLength (2 bytes): The length in bytes of the AuthenticationToken field of the Connect command.

AuthenticationToken (variable): A byte sequence that is used to authenticate the connecting device. The length of this byte sequence MUST be as specified in the AuthenticationTokenLength field. The receiving device interprets the contents of this token as an SSTP Security Protocol message, as specified in [MS-GRVSSTPS].

PeerProductVersion (variable): A variable-length ASCII string terminated by 0x00 containing the sender’s product version.<1> This field is informational and usage is application-dependent. The field SHOULD contain a series of application-defined tokens, where each token is separated by a space, and MUST contain at least one token.

PeerProductCapabilities (variable): A variable length ASCII string terminated by 0x00 containing the sender’s product capabilities.<2> This field is informational, and usage is application-dependent The format of this string is "<token1>;<token2>;…;<tokenN>" where each of <token1> through <tokenN> MUST be separated by a semicolon (;). Each token is a string and MUST NOT contain leading or trailing spaces. Tokens SHOULD be short capitalized abbreviations and SHOULD NOT contain spaces. An example of this string is as follows:

 ABC;MDF