2.2.1.1 Handshake Header Format
Both the initiator and sink devices transmit this header as part of all of its messages. The Handshake header format is defined as follows.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Proto_and_Msg_ID |
Flags |
Reserved |
Version |
Proto_and_Msg_ID (1 byte): This field distinguishes the qWave Protocol from other qWave protocols (see [MS-QDP]). It also identifies the type of message transmitted, and thus, the form of the message-specific header that immediately follows the Handshake header. This field MUST<2> be one of the following.
-
Value
Meaning
Sender Role
Uses TCP or UDP
0x00
Discard
Initiator
TCP
0x01
Packet Pair Connection Handshake
Initiator
TCP
Packet Pair Probe
UDP
0x02
Route Check Connection Handshake
Initiator
TCP
Route Check Probe
UDP
0x05
Probegap Probe
Initiator
UDP
0x06
Sink
0x0A
Packet Pair Summary
Sink
TCP
0x14
Route Check Summary
Sink
TCP
0x1E
Connection Handshake Success
Sink
TCP
Flags (1 byte): This field has message-specific meaning. In other words, depending on the value of Proto_and_Msg_ID, this field can be interpreted as follows:
-
If this is a Packet Pair Probe message (that is, Proto_and_Msg_ID is 0x01, UDP protocol is used and UDP source port is not 2177), this field takes the form of:
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1F
Reserved
-
F (1 bit): This field MUST be set to 1 to indicate that a Packet Pair Probe message is the first message in a train. Otherwise, this field MUST be set to 0.
-
Reserved (7 bits): This field MUST be set to 0 and ignored on receipt.
-
If this is a Route Check Probe message (that is, Proto_and_Msg_ID is 0x02, UDP protocol is used and UDP source port is not 2177), this field takes the form of:
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1O
Reserved
-
O (1 bit): This field MUST be set to 1 to indicate that a Route Check Probe message is oversized. Otherwise, this field MUST be set to 0. For more information about oversized packets, please see section 3.1.
-
Reserved (7 bits): This field MUST be set to 0 and ignored on receipt.
-
If this is a Route Check Summary message (that is, Proto_and_Msg_ID is 0x14, TCP protocol is used and TCP source port is 2177), this field takes the form of:
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1Obs (Observation)
Reserved
-
Obs (Observation) (2 bits): This field MUST contain one of the following values:
-
-
Value
Meaning
0x0
No issue detected
0x1
Packet inversion detected; that is, a packet did not arrive in the order it was sent
0x2
Packet loss detected
0x3
Reserved
-
-
-
For more information about how these values are used, please refer to section 3.1.
-
Reserved (6 bits): This field MUST be set to 0 and ignored on receipt.
-
For all other cases, the field takes the following form:
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1Reserved
-
Reserved (1 byte): This field MUST be set to 0 and ignored on receipt.
-
Reserved (1 byte): This field MUST be set to 0 and ignored on receipt.
Version (1 byte): This field identifies the protocol version. If Proto_and_Msg_ID has the value 0x05 or 0x06, this field MUST be set to 0x02. Otherwise, this field MUST be set to 0x01.