2.2.3.3 $D (Data) Packet

The $D (Data) packet is used by the server to transfer an ASF packet to the client.

The $D packet MUST start with a Framing header (section 2.2.3.1.1), followed by an MMS data packet (section 2.2.3.1.2), with the following additional details:

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 "D" (0x44) character.

PacketLength (2 bytes): As specified in section 2.2.3.1.1

Reason (4 bytes): This field MUST NOT be present.

Payload (variable): This field MUST contain exactly one complete ASF packet. If the ASF packet contains a Padding Data field, as specified in [ASF] section 5.2.4, that field SHOULD be removed before encapsulating the ASF packet in the $D packet, except if the client identifies itself as "NSServer" with a version earlier than 5.0 on the User-Agent (section 2.2.1.8) header. If the Padding Data field is removed, the Padding Length field in the ASF payload parsing information section, as specified in [ASF] section 5.2.2, MUST be updated to indicate a nonexistent Padding Data field.