Q:

DNS resource data types differantiation

In RFC1035, it says that in a DNS response, if the resource data is a pointer then the first two bits of those resource data should be 11. If it is a domain name, they should be 00. Two questions:

What happens in the case the resource data is an IP address, eg 201.1.2.3 where 0d201 = 0b11001001 ? Are there other fields taken into account as well?
Is this distinction between 11 and 00 for the first two bytes really needed? If the resource data length field is taken into account, then wouldn't a length of 2 uniquely identify a pointer in the resource? A domain name cannot be 2 bytes long in the notation used in DNS messages.

A:

For question b:
In the resource records inside a DNS response there is a field called "Resource data length". Using this, one could indeed figure out if the resource data is a pointer, a domain name or even a part of a domain name followed by a pointer to the rest of the domain name. However, in the beginning of every resource record, there is also a field that should carry the domain name/IP addr/etc that the client queried for. In this case, the use of the two bits as mentioned in the question is the only way to tell what is contained in this field; a domain name or a pointer.
For question a:
There is a "Domain type" field in the resource records that in the case of a PTR response would denote that the resource data is a 4 (or 16) octet address. No need to check on the first two bits of the resource data.

