2.2.3.7 $P (Packet-Pair) Packet

A $P packet starts with a Framing header (section 2.2.3.1.1) followed by a variable-length payload field, with the following additional field details<57>:

B (1 bit): As specified in section 2.2.3.1.1.

Frame (7 bits): As specified in section 2.2.3.1.1.

PacketID (1 byte): This field MUST be set to the "P" (0x50) character.

PacketLength (2 bytes): This field MUST be set according to one of the following values.

Value

Meaning

504

This field MUST be set to this value for the first and second $P packets.

1048

This field MUST be set to this value for the third $P packet.

Reason (4 bytes): This field MUST be present and is treated as an unsigned integer. The field MUST be set to the smaller of 504 and the number of bytes in the header portion of the HTTP response, counted from the first byte of the response up to the start of the first $P packet.

Payload (variable): This field MUST consist of random bytes with highly entropic values. For the first $P packet the size of the Payload field MUST be 504 bytes minus the value of the Reason field. However, if Reason is equal to 504, the size of the Payload field MUST be 0 bytes. For the second $P packet, the size of the Payload field MUST be 504 bytes. For the third packet, the size of the Payload field MUST be 1,048 bytes plus the value of the Reason field.