In addition to two- and four-octet integer
values, resource record data can contain
.
(From RFC 1035, page 10)
Domain names in messages are
expressed in terms of a sequence of labels.
Each
label is represented as a one-octet
length field followed by that number of octets. Since every domain
name ends with the null label of the root, a domain name is
terminated by a length byte of zero. The high order two bits of every
length octet must be zero, and the remaining six bits of the length
field limit the label to 63 octets or less.
(From RFC 1035, page 30)
In order to reduce the size of messages, the
domain system utilizes a compression scheme that eliminates the
repetition of domain names in a message. In this scheme, an entire
domain name or a list of labels at the end of a domain name is
replaced with a pointer to a prior occurrence of the same name.The pointer takes the form of a two-octet sequence:
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 1 1| OFFSET |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
The first two bits are ones. This allows a pointer to be
distinguished from a label, since the label must begin with two zero
bits because labels are restricted to 63 octets or less. (The 10 and
01 combinations are reserved for future use.) The OFFSET field
specifies an offset from the start of the message (i.e., the first
octet of the ID field in the domain header). A zero offset specifies
the first byte of the ID field, etc.
(From RFC 1035, page 13)
Character string is a
single length octet followed by that number of characters.
Character string is treated as binary
information, and can be up to 256 characters in length (including the
length octet).