7 August 2010 19 Comments

Women better at multitasking than men

Women better at multitasking than men

Reaffirming the age-old belief that men are incapable of doing more than one thing at once, a new study has shown that men really are worse at multitasking than women, although it does depend on the task. Professor Keith Laws, a psychologist at the University of Hertfordshire, who led the research, and colleagues found that [...]

7 August 2010 45 Comments

How to manage your boss?

How to manage your boss?

Arranging seminars and discussion forums to explore how to manage a troublesome boss is common. Diane Stafford of The Kansas City Star gives some common takeaways from those seminars. The first one is that you can’t change your boss, you can only change your own reactions. It’s up to you to figure out the communication [...]

5 December 2009 153 Comments

HR – ‘Human Resource’ or ‘Harassing Resource’?

Some call it ‘Hardly Required’, while others prefer ‘Harassing Resource’. What are we talking about? HR = once known as ‘Human Resources’. With changing times, the Human got lost somewhere and the Resources are no more accessible. We’ve all had our rather unpleasant experiences (99% of the time) with this species that every company hires [...]

22 July 2009 494 Comments

RFC 1035 – Domain names – implementation and specification

DOMAIN NAMES – IMPLEMENTATION AND SPECIFICATION


1. STATUS OF THIS MEMO


This RFC describes the details of the domain system and protocol, and

assumes that the reader is familiar with the concepts discussed in a

companion RFC, "Domain Names - Concepts and Facilities" [RFC-1034].

The domain system is a mixture of functions and data types which are an

official protocol and functions and data types which are still

experimental. Since the domain system is intentionally extensible, new

data types and experimental behavior should always be expected in parts

of the system beyond the official protocol. The official protocol parts

include standard queries, responses and the Internet class RR data

formats (e.g., host addresses). Since the previous RFC set, several

definitions have changed, so some previous definitions are obsolete.

Experimental or obsolete features are clearly marked in these RFCs, and

such information should be used with caution.

The reader is especially cautioned not to depend on the values which

appear in examples to be current or complete, since their purpose is

primarily pedagogical. Distribution of this memo is unlimited.

       Table of Contents

 1. STATUS OF THIS MEMO            1

 2. INTRODUCTION              3

  2.1. Overview             3

  2.2. Common configurations          4

  2.3. Conventions            7

   2.3.1. Preferred name syntax        7

   2.3.2. Data Transmission Order        8

   2.3.3. Character Case          9

   2.3.4. Size limits           10

 3. DOMAIN NAME SPACE AND RR DEFINITIONS       10

  3.1. Name space definitions         10

  3.2. RR definitions           11

   3.2.1. Format            11

   3.2.2. TYPE values           12

   3.2.3. QTYPE values          12

   3.2.4. CLASS values          13

Mockapetris              [Page 1]


RFC 1035  Domain Implementation and Specification November 1987

   3.2.5. QCLASS values          13

  3.3. Standard RRs            13

   3.3.1. CNAME RDATA format         14

   3.3.2. HINFO RDATA format         14

   3.3.3. MB RDATA format (EXPERIMENTAL)      14

   3.3.4. MD RDATA format (Obsolete)       15

   3.3.5. MF RDATA format (Obsolete)       15

   3.3.6. MG RDATA format (EXPERIMENTAL)      16

   3.3.7. MINFO RDATA format (EXPERIMENTAL)     16

   3.3.8. MR RDATA format (EXPERIMENTAL)      17

   3.3.9. MX RDATA format          17

   3.3.10. NULL RDATA format (EXPERIMENTAL)     17

   3.3.11. NS RDATA format         18

   3.3.12. PTR RDATA format         18

   3.3.13. SOA RDATA format         19

   3.3.14. TXT RDATA format         20

  3.4. ARPA Internet specific RRs        20

   3.4.1. A RDATA format          20

   3.4.2. WKS RDATA format         21

  3.5. IN-ADDR.ARPA domain          22

  3.6. Defining new types, classes, and special namespaces  24

 4. MESSAGES              25

  4.1. Format             25

   4.1.1. Header section format        26

   4.1.2. Question section format        28

   4.1.3. Resource record format        29

   4.1.4. Message compression         30

  4.2. Transport             32

   4.2.1. UDP usage           32

   4.2.2. TCP usage           32

 5. MASTER FILES             33

  5.1. Format             33

  5.2. Use of master files to define zones      35

  5.3. Master file example          36

 6. NAME SERVER IMPLEMENTATION          37

  6.1. Architecture            37

   6.1.1. Control            37

   6.1.2. Database           37

   6.1.3. Time            39

  6.2. Standard query processing         39

  6.3. Zone refresh and reload processing      39

  6.4. Inverse queries (Optional)        40

   6.4.1. The contents of inverse queries and responses  40

   6.4.2. Inverse query and response example     41

   6.4.3. Inverse query processing       42

Mockapetris              [Page 2]


RFC 1035  Domain Implementation and Specification November 1987

  6.5. Completion queries and responses       42

 7. RESOLVER IMPLEMENTATION           43

  7.1. Transforming a user request into a query     43

  7.2. Sending the queries          44

  7.3. Processing responses          46

  7.4. Using the cache           47

 8. MAIL SUPPORT             47

  8.1. Mail exchange binding          48

  8.2. Mailbox binding (Experimental)       48

 9. REFERENCES and BIBLIOGRAPHY          50

 Index                54

2. INTRODUCTION


2.1. Overview


The goal of domain names is to provide a mechanism for naming resources

in such a way that the names are usable in different hosts, networks,

protocol families, internets, and administrative organizations.

From the user's point of view, domain names are useful as arguments to a

local agent, called a resolver, which retrieves information associated

with the domain name. Thus a user might ask for the host address or

mail information associated with a particular domain name. To enable

the user to request a particular type of information, an appropriate

query type is passed to the resolver with the domain name. To the user,

the domain tree is a single information space; the resolver is

responsible for hiding the distribution of data among name servers from

the user.

From the resolver's point of view, the database that makes up the domain

space is distributed among various name servers. Different parts of the

domain space are stored in different name servers, although a particular

data item will be stored redundantly in two or more name servers. The

resolver starts with knowledge of at least one name server. When the

resolver processes a user query it asks a known name server for the

information; in return, the resolver either receives the desired

information or a referral to another name server. Using these

referrals, resolvers learn the identities and contents of other name

servers. Resolvers are responsible for dealing with the distribution of

the domain space and dealing with the effects of name server failure by

consulting redundant databases in other servers.

Name servers manage two kinds of data. The first kind of data held in

sets called zones; each zone is the complete database for a particular

"pruned" subtree of the domain space. This data is called

authoritative. A name server periodically checks to make sure that its

zones are up to date, and if not, obtains a new copy of updated zones

Mockapetris              [Page 3]


RFC 1035  Domain Implementation and Specification November 1987

from master files stored locally or in another name server. The second

kind of data is cached data which was acquired by a local resolver.

This data may be incomplete, but improves the performance of the

retrieval process when non-local data is repeatedly accessed. Cached

data is eventually discarded by a timeout mechanism.

This functional structure isolates the problems of user interface,

failure recovery, and distribution in the resolvers and isolates the

database update and refresh problems in the name servers.

2.2. Common configurations


A host can participate in the domain name system in a number of ways,


depending on whether the host runs programs that retrieve information

from the domain system, name servers that answer queries from other

hosts, or various combinations of both functions. The simplest, and

perhaps most typical, configuration is shown below:

     Local Host      | Foreign

             |

 +---------+    +----------+   | +--------+

 |   | user queries |   |queries | |  |

 | User |-------------->|   |---------|->|Foreign |

 | Program |    | Resolver |   | | Name |

 |   |<--------------|   |<--------|--| Server |

 |   | user responses|   |responses| |  |

 +---------+    +----------+   | +--------+

        |  A   |

    cache additions |  | references |

        V  |   |

        +----------+   |

        | cache |   |

        +----------+   |

User programs interact with the domain name space through resolvers; the

format of user queries and user responses is specific to the host and

its operating system. User queries will typically be operating system

calls, and the resolver and its cache will be part of the host operating

system. Less capable hosts may choose to implement the resolver as a

subroutine to be linked in with every program that needs its services.

Resolvers answer user queries with information they acquire via queries

to foreign name servers and the local cache.

Note that the resolver may have to make several queries to several

different foreign name servers to answer a particular user query, and

hence the resolution of a user query may involve several network

accesses and an arbitrary amount of time. The queries to foreign name

servers and the corresponding responses have a standard format described

Mockapetris              [Page 4]


RFC 1035  Domain Implementation and Specification November 1987

in this memo, and may be datagrams.

Depending on its capabilities, a name server could be a stand alone

program on a dedicated machine or a process or processes on a large

timeshared host. A simple configuration might be:

     Local Host      | Foreign

             |

  +---------+         |

  /   /|         |

 +---------+ |    +----------+   | +--------+

 |   | |    |   |responses| |  |

 |   | |    | Name |---------|->|Foreign |

 | Master |-------------->| Server |   | |Resolver|

 | files | |    |   |<--------|--|  |

 |   |/    |   | queries | +--------+

 +---------+    +----------+   |

Here a primary name server acquires information about one or more zones

by reading master files from its local file system, and answers queries

about those zones that arrive from foreign resolvers.

The DNS requires that all zones be redundantly supported by more than

one name server. Designated secondary servers can acquire zones and

check for updates from the primary server using the zone transfer

protocol of the DNS. This configuration is shown below:

     Local Host      | Foreign

             |

  +---------+         |

  /   /|         |

 +---------+ |    +----------+   | +--------+

 |   | |    |   |responses| |  |

 |   | |    | Name |---------|->|Foreign |

 | Master |-------------->| Server |   | |Resolver|

 | files | |    |   |<--------|--|  |

 |   |/    |   | queries | +--------+

 +---------+    +----------+   |

        A  |maintenance | +--------+

        |  +------------|->|  |

        |  queries  | |Foreign |

        |     | | Name |

        +------------------|--| Server |

        maintenance responses | +--------+

In this configuration, the name server periodically establishes a

virtual circuit to a foreign name server to acquire a copy of a zone or

to check that an existing copy has not changed. The messages sent for

Mockapetris              [Page 5]


RFC 1035  Domain Implementation and Specification November 1987

these maintenance activities follow the same form as queries and

responses, but the message sequences are somewhat different.

The information flow in a host that supports all aspects of the domain

name system is shown below:

     Local Host      | Foreign

             |

 +---------+    +----------+   | +--------+

 |   | user queries |   |queries | |  |

 | User |-------------->|   |---------|->|Foreign |

 | Program |    | Resolver |   | | Name |

 |   |<--------------|   |<--------|--| Server |

 |   | user responses|   |responses| |  |

 +---------+    +----------+   | +--------+

        |  A   |

    cache additions |  | references |

        V  |   |

        +----------+   |

        | Shared |   |

        | database |   |

        +----------+   |

        A  |   |

  +---------+  refreshes |  | references |

  /   /|    |  V   |

 +---------+ |    +----------+   | +--------+

 |   | |    |   |responses| |  |

 |   | |    | Name |---------|->|Foreign |

 | Master |-------------->| Server |   | |Resolver|

 | files | |    |   |<--------|--|  |

 |   |/    |   | queries | +--------+

 +---------+    +----------+   |

        A  |maintenance | +--------+

        |  +------------|->|  |

        |  queries  | |Foreign |

        |     | | Name |

        +------------------|--| Server |

        maintenance responses | +--------+

The shared database holds domain space data for the local name server

and resolver. The contents of the shared database will typically be a

mixture of authoritative data maintained by the periodic refresh

operations of the name server and cached data from previous resolver

requests. The structure of the domain data and the necessity for

synchronization between name servers and resolvers imply the general

characteristics of this database, but the actual format is up to the

local implementor.

Mockapetris              [Page 6]


RFC 1035  Domain Implementation and Specification November 1987

Information flow can also be tailored so that a group of hosts act

together to optimize activities. Sometimes this is done to offload less

capable hosts so that they do not have to implement a full resolver.

This can be appropriate for PCs or hosts which want to minimize the

amount of new network code which is required. This scheme can also

allow a group of hosts can share a small number of caches rather than

maintaining a large number of separate caches, on the premise that the

centralized caches will have a higher hit ratio. In either case,

resolvers are replaced with stub resolvers which act as front ends to

resolvers located in a recursive server in one or more name servers

known to perform that service:

     Local Hosts      | Foreign

             |

 +---------+         |

 |   | responses       |

 | Stub |<--------------------+    |

 | Resolver|      |    |

 |   |----------------+ |    |

 +---------+ recursive  | |    |

    queries  | |    |

        V |    |

 +---------+ recursive  +----------+   | +--------+

 |   | queries  |   |queries | |  |

 | Stub |-------------->| Recursive|---------|->|Foreign |

 | Resolver|    | Server |   | | Name |

 |   |<--------------|   |<--------|--| Server |

 +---------+ responses  |   |responses| |  |

        +----------+   | +--------+

        | Central |   |

        | cache |   |

        +----------+   |

In any case, note that domain components are always replicated for

reliability whenever possible.

2.3. Conventions


The domain system has several conventions dealing with low-level, but

fundamental, issues. While the implementor is free to violate these

conventions WITHIN HIS OWN SYSTEM, he must observe these conventions in

ALL behavior observed from other hosts.

2.3.1. Preferred name syntax


The DNS specifications attempt to be as general as possible in the rules

for constructing domain names. The idea is that the name of any

existing object can be expressed as a domain name with minimal changes.

Mockapetris              [Page 7]


RFC 1035  Domain Implementation and Specification November 1987

However, when assigning a domain name for an object, the prudent user

will select a name which satisfies both the rules of the domain system

and any existing rules for the object, whether these rules are published

or implied by existing programs.

For example, when naming a mail domain, the user should satisfy both the

rules of this memo and those in RFC-822. When creating a new host name,

the old rules for HOSTS.TXT should be followed. This avoids problems

when old software is converted to use domain names.

The following syntax will result in fewer problems with many

applications that use domain names (e.g., mail, TELNET).

<domain> ::= <subdomain> | " "

<subdomain> ::= <label> | <subdomain> "." <label>

<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]

<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>

<let-dig-hyp> ::= <let-dig> | "-"

<let-dig> ::= <letter> | <digit>

<letter> ::= any one of the 52 alphabetic characters A through Z in

upper case and a through z in lower case

<digit> ::= any one of the ten digits 0 through 9

Note that while upper and lower case letters are allowed in domain

names, no significance is attached to the case. That is, two names with

the same spelling but different case are to be treated as if identical.

The labels must follow the rules for ARPANET host names. They must

start with a letter, end with a letter or digit, and have as interior

characters only letters, digits, and hyphen. There are also some

restrictions on the length. Labels must be 63 characters or less.

For example, the following strings identify hosts in the Internet:

A.ISI.EDU XX.LCS.MIT.EDU SRI-NIC.ARPA

2.3.2. Data Transmission Order


The order of transmission of the header and data described in this

document is resolved to the octet level. Whenever a diagram shows a

Mockapetris              [Page 8]


RFC 1035  Domain Implementation and Specification November 1987

group of octets, the order of transmission of those octets is the normal

order in which they are read in English. For example, in the following

diagram, the octets are transmitted in the order they are numbered.

  0     1

  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |  1  |  2  |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |  3  |  4  |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 |  5  |  6  |

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Whenever an octet represents a numeric quantity, the left most bit in

the diagram is the high order or most significant bit. That is, the bit

labeled 0 is the most significant bit. For example, the following

diagram represents the value 170 (decimal).

  0 1 2 3 4 5 6 7

 +-+-+-+-+-+-+-+-+

 |1 0 1 0 1 0 1 0|

 +-+-+-+-+-+-+-+-+

Similarly, whenever a multi-octet field represents a numeric quantity

the left most bit of the whole field is the most significant bit. When

a multi-octet quantity is transmitted the most significant octet is

transmitted first.

2.3.3. Character Case


For all parts of the DNS that are part of the official protocol, all

comparisons between character strings (e.g., labels, domain names, etc.)

are done in a case-insensitive manner. At present, this rule is in

force throughout the domain system without exception. However, future

additions beyond current usage may need to use the full binary octet

capabilities in names, so attempts to store domain names in 7-bit ASCII

or use of special bytes to terminate labels, etc., should be avoided.

When data enters the domain system, its original case should be

preserved whenever possible. In certain circumstances this cannot be

done. For example, if two RRs are stored in a database, one at x.y and

one at X.Y, they are actually stored at the same place in the database,

and hence only one casing would be preserved. The basic rule is that

case can be discarded only when data is used to define structure in a

database, and two names are identical when compared in a case

insensitive manner.

Mockapetris              [Page 9]


RFC 1035  Domain Implementation and Specification November 1987

Loss of case sensitive data must be minimized. Thus while data for x.y

and X.Y may both be stored under a single location x.y or X.Y, data for

a.x and B.X would never be stored under A.x, A.X, b.x, or b.X. In

general, this preserves the case of the first label of a domain name,

but forces standardization of interior node labels.

Systems administrators who enter data into the domain database should

take care to represent the data they supply to the domain system in a

case-consistent manner if their system is case-sensitive. The data

distribution system in the domain system will ensure that consistent

representations are preserved.

2.3.4. Size limits


Various objects and parameters in the DNS have size limits. They are

listed below. Some could be easily changed, others are more

fundamental.

labels   63 octets or less

names   255 octets or less

TTL    positive values of a signed 32 bit number.

UDP messages 512 octets or less

3. DOMAIN NAME SPACE AND RR DEFINITIONS


3.1. Name space definitions


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.

To simplify implementations, the total length of a domain name (i.e.,

label octets and label length octets) is restricted to 255 octets or

less.

Although labels can contain any 8 bit values in octets that make up a

label, it is strongly recommended that labels follow the preferred

syntax described elsewhere in this memo, which is compatible with

existing host naming conventions. Name servers and resolvers must

compare labels in a case-insensitive manner (i.e., A=a), assuming ASCII

with zero parity. Non-alphabetic codes must match exactly.

Mockapetris             [Page 10]


RFC 1035  Domain Implementation and Specification November 1987

3.2. RR definitions


3.2.1. Format


All RRs have the same top level format shown below:

         1 1 1 1 1 1

  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |            |

 /            /

 /      NAME      /

 |            |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |      TYPE      |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |      CLASS      |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |      TTL      |

 |            |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     RDLENGTH     |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|

 /      RDATA      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

NAME   an owner name, i.e., the name of the node to which this

    resource record pertains.

TYPE   two octets containing one of the RR TYPE codes.

CLASS   two octets containing one of the RR CLASS codes.

TTL    a 32 bit signed integer that specifies the time interval

    that the resource record may be cached before the source

    of the information should again be consulted. Zero

    values are interpreted to mean that the RR can only be

    used for the transaction in progress, and should not be

    cached. For example, SOA records are always distributed

    with a zero TTL to prohibit caching. Zero values can

    also be used for extremely volatile data.

RDLENGTH  an unsigned 16 bit integer that specifies the length in

    octets of the RDATA field.

Mockapetris             [Page 11]


RFC 1035  Domain Implementation and Specification November 1987

RDATA   a variable length string of octets that describes the

    resource. The format of this information varies

    according to the TYPE and CLASS of the resource record.

3.2.2. TYPE values


TYPE fields are used in resource records. Note that these types are a

subset of QTYPEs.

TYPE   value and meaning

A 1 a host address


NS    2 an authoritative name server

MD    3 a mail destination (Obsolete - use MX)

MF    4 a mail forwarder (Obsolete - use MX)

CNAME   5 the canonical name for an alias

SOA    6 marks the start of a zone of authority

MB    7 a mailbox domain name (EXPERIMENTAL)

MG    8 a mail group member (EXPERIMENTAL)

MR    9 a mail rename domain name (EXPERIMENTAL)

NULL   10 a null RR (EXPERIMENTAL)

WKS    11 a well known service description

PTR    12 a domain name pointer

HINFO   13 host information

MINFO   14 mailbox or mail list information

MX    15 mail exchange

TXT    16 text strings

3.2.3. QTYPE values


QTYPE fields appear in the question part of a query. QTYPES are a

superset of TYPEs, hence all TYPEs are valid QTYPEs. In addition, the

following QTYPEs are defined:

Mockapetris             [Page 12]


RFC 1035  Domain Implementation and Specification November 1987

AXFR   252 A request for a transfer of an entire zone

MAILB   253 A request for mailbox-related records (MB, MG or MR)

MAILA   254 A request for mail agent RRs (Obsolete - see MX)

*    255 A request for all records

3.2.4. CLASS values


CLASS fields appear in resource records. The following CLASS mnemonics

and values are defined:

IN    1 the Internet

CS    2 the CSNET class (Obsolete - used only for examples in

    some obsolete RFCs)

CH    3 the CHAOS class

HS    4 Hesiod [Dyer 87]

3.2.5. QCLASS values


QCLASS fields appear in the question section of a query. QCLASS values

are a superset of CLASS values; every CLASS is a valid QCLASS. In

addition to CLASS values, the following QCLASSes are defined:

*    255 any class

3.3. Standard RRs


The following RR definitions are expected to occur, at least

potentially, in all classes. In particular, NS, SOA, CNAME, and PTR

will be used in all classes, and have the same format in all classes.

Because their RDATA format is known, all domain names in the RDATA

section of these RRs may be compressed.

<domain-name> is a domain name represented as a series of labels, and

terminated by a label with zero length. <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).

Mockapetris             [Page 13]


RFC 1035  Domain Implementation and Specification November 1987

3.3.1. CNAME RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /      CNAME      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

CNAME   A <domain-name> which specifies the canonical or primary

    name for the owner. The owner name is an alias.

CNAME RRs cause no additional section processing, but name servers may

choose to restart the query at the canonical name in certain cases. See

the description of name server logic in [RFC-1034] for details.

3.3.2. HINFO RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /      CPU      /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /      OS      /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

CPU    A <character-string> which specifies the CPU type.

OS    A <character-string> which specifies the operating

    system type.

Standard values for CPU and OS can be found in [RFC-1010].

HINFO records are used to acquire general information about a host. The

main use is for protocols such as FTP that can use special procedures

when talking between machines or operating systems of the same type.

3.3.3. MB RDATA format (EXPERIMENTAL)


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     MADNAME      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

MADNAME   A <domain-name> which specifies a host which has the

    specified mailbox.

Mockapetris             [Page 14]


RFC 1035  Domain Implementation and Specification November 1987

MB records cause additional section processing which looks up an A type

RRs corresponding to MADNAME.

3.3.4. MD RDATA format (Obsolete)


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     MADNAME      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

MADNAME   A <domain-name> which specifies a host which has a mail

    agent for the domain which should be able to deliver

    mail for the domain.

MD records cause additional section processing which looks up an A type

record corresponding to MADNAME.

MD is obsolete. See the definition of MX and [RFC-974] for details of

the new scheme. The recommended policy for dealing with MD RRs found in

a master file is to reject them, or to convert them to MX RRs with a

preference of 0.

3.3.5. MF RDATA format (Obsolete)


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     MADNAME      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

MADNAME   A <domain-name> which specifies a host which has a mail

    agent for the domain which will accept mail for

    forwarding to the domain.

MF records cause additional section processing which looks up an A type

record corresponding to MADNAME.

MF is obsolete. See the definition of MX and [RFC-974] for details ofw

the new scheme. The recommended policy for dealing with MD RRs found in

a master file is to reject them, or to convert them to MX RRs with a

preference of 10.

Mockapetris             [Page 15]


RFC 1035  Domain Implementation and Specification November 1987

3.3.6. MG RDATA format (EXPERIMENTAL)


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     MGMNAME      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

MGMNAME   A <domain-name> which specifies a mailbox which is a

    member of the mail group specified by the domain name.

MG records cause no additional section processing.

3.3.7. MINFO RDATA format (EXPERIMENTAL)


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     RMAILBX     /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     EMAILBX     /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

RMAILBX   A <domain-name> which specifies a mailbox which is

    responsible for the mailing list or mailbox. If this

    domain name names the root, the owner of the MINFO RR is

    responsible for itself. Note that many existing mailing

    lists use a mailbox X-request for the RMAILBX field of

    mailing list X, e.g., Msgroup-request for Msgroup. This

    field provides a more general mechanism.

EMAILBX   A <domain-name> which specifies a mailbox which is to

    receive error messages related to the mailing list or

    mailbox specified by the owner of the MINFO RR (similar

    to the ERRORS-TO: field which has been proposed). If

    this domain name names the root, errors should be

    returned to the sender of the message.

MINFO records cause no additional section processing. Although these

records can be associated with a simple mailbox, they are usually used

with a mailing list.

Mockapetris             [Page 16]


RFC 1035  Domain Implementation and Specification November 1987

3.3.8. MR RDATA format (EXPERIMENTAL)


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     NEWNAME      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

NEWNAME   A <domain-name> which specifies a mailbox which is the

    proper rename of the specified mailbox.

MR records cause no additional section processing. The main use for MR

is as a forwarding entry for a user who has moved to a different

mailbox.

3.3.9. MX RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     PREFERENCE     |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     EXCHANGE     /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

PREFERENCE  A 16 bit integer which specifies the preference given to

    this RR among others at the same owner. Lower values

    are preferred.

EXCHANGE  A <domain-name> which specifies a host willing to act as

    a mail exchange for the owner name.

MX records cause type A additional section processing for the host

specified by EXCHANGE. The use of MX RRs is explained in detail in

[RFC-974].

3.3.10. NULL RDATA format (EXPERIMENTAL)


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     <anything>     /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Anything at all may be in the RDATA field so long as it is 65535 octets

or less.

Mockapetris             [Page 17]


RFC 1035  Domain Implementation and Specification November 1987

NULL records cause no additional section processing. NULL RRs are not

allowed in master files. NULLs are used as placeholders in some

experimental extensions of the DNS.

3.3.11. NS RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     NSDNAME      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

NSDNAME   A <domain-name> which specifies a host which should be

    authoritative for the specified class and domain.

NS records cause both the usual additional section processing to locate

a type A record, and, when used in a referral, a special search of the

zone in which they reside for glue information.

The NS RR states that the named host should be expected to have a zone

starting at owner name of the specified class. Note that the class may

not indicate the protocol family which should be used to communicate

with the host, although it is typically a strong hint. For example,

hosts which are name servers for either Internet (IN) or Hesiod (HS)

class information are normally queried using IN class protocols.

3.3.12. PTR RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     PTRDNAME     /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

PTRDNAME  A <domain-name> which points to some location in the

    domain name space.

PTR records cause no additional section processing. These RRs are used

in special domains to point to some other location in the domain space.

These records are simple data, and don't imply any special processing

similar to that performed by CNAME, which identifies aliases. See the

description of the IN-ADDR.ARPA domain for an example.

Mockapetris             [Page 18]


RFC 1035  Domain Implementation and Specification November 1987

3.3.13. SOA RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /      MNAME      /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /      RNAME      /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     SERIAL      |

 |            |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     REFRESH     |

 |            |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |      RETRY      |

 |            |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     EXPIRE      |

 |            |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     MINIMUM     |

 |            |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

MNAME   The <domain-name> of the name server that was the

    original or primary source of data for this zone.

RNAME   A <domain-name> which specifies the mailbox of the

    person responsible for this zone.

SERIAL   The unsigned 32 bit version number of the original copy

    of the zone. Zone transfers preserve this value. This

    value wraps and should be compared using sequence space

    arithmetic.

REFRESH   A 32 bit time interval before the zone should be

    refreshed.

RETRY   A 32 bit time interval that should elapse before a

    failed refresh should be retried.

EXPIRE   A 32 bit time value that specifies the upper limit on

    the time interval that can elapse before the zone is no

    longer authoritative.

Mockapetris             [Page 19]


RFC 1035  Domain Implementation and Specification November 1987

MINIMUM   The unsigned 32 bit minimum TTL field that should be

    exported with any RR from this zone.

SOA records cause no additional section processing.

All times are in units of seconds.

Most of these fields are pertinent only for name server maintenance

operations. However, MINIMUM is used in all query operations that

retrieve RRs from a zone. Whenever a RR is sent in a response to a

query, the TTL field is set to the maximum of the TTL field from the RR

and the MINIMUM field in the appropriate SOA. Thus MINIMUM is a lower

bound on the TTL field for all RRs in a zone. Note that this use of

MINIMUM should occur when the RRs are copied into the response and not

when the zone is loaded from a master file or via a zone transfer. The

reason for this provison is to allow future dynamic update facilities to

change the SOA RR with known semantics.

3.3.14. TXT RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 /     TXT-DATA     /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

TXT-DATA  One or more <character-string>s.

TXT RRs are used to hold descriptive text. The semantics of the text

depends on the domain where it is found.

3.4. Internet specific RRs


3.4.1. A RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     ADDRESS     |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

ADDRESS   A 32 bit Internet address.

Hosts that have multiple Internet addresses will have multiple A

records.

Mockapetris             [Page 20]


RFC 1035  Domain Implementation and Specification November 1987

A records cause no additional section processing. The RDATA section of


an A line in a master file is an Internet address expressed as four

decimal numbers separated by dots without any imbedded spaces (e.g.,

"10.2.0.52" or "192.0.5.6").

3.4.2. WKS RDATA format


 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     ADDRESS     |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |  PROTOCOL  |      |

 +--+--+--+--+--+--+--+--+      |

 |            |

 /     <BIT MAP>     /

 /            /

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

ADDRESS   An 32 bit Internet address

PROTOCOL  An 8 bit IP protocol number

<BIT MAP>  A variable length bit map. The bit map must be a

    multiple of 8 bits long.

The WKS record is used to describe the well known services supported by

a particular protocol on a particular internet address. The PROTOCOL

field specifies an IP protocol number, and the bit map has one bit per

port of the specified protocol. The first bit corresponds to port 0,

the second to port 1, etc. If the bit map does not include a bit for a

protocol of interest, that bit is assumed zero. The appropriate values

and mnemonics for ports and protocols are specified in [RFC-1010].

For example, if PROTOCOL=TCP (6), the 26th bit corresponds to TCP port

25 (SMTP). If this bit is set, a SMTP server should be listening on TCP


port 25; if zero, SMTP service is not supported on the specified

address.

The purpose of WKS RRs is to provide availability information for

servers for TCP and UDP. If a server supports both TCP and UDP, or has

multiple Internet addresses, then multiple WKS RRs are used.

WKS RRs cause no additional section processing.

In master files, both ports and protocols are expressed using mnemonics

or decimal numbers.

Mockapetris             [Page 21]


RFC 1035  Domain Implementation and Specification November 1987

3.5. IN-ADDR.ARPA domain


The Internet uses a special domain to support gateway location and

Internet address to host mapping. Other classes may employ a similar

strategy in other domains. The intent of this domain is to provide a

guaranteed method to perform host address to host name mapping, and to

facilitate queries to locate all gateways on a particular network in the

Internet.

Note that both of these services are similar to functions that could be

performed by inverse queries; the difference is that this part of the

domain name space is structured according to address, and hence can

guarantee that the appropriate data can be located without an exhaustive

search of the domain space.

The domain begins at IN-ADDR.ARPA and has a substructure which follows

the Internet addressing structure.

Domain names in the IN-ADDR.ARPA domain are defined to have up to four

labels in addition to the IN-ADDR.ARPA suffix. Each label represents

one octet of an Internet address, and is expressed as a character string

for a decimal value in the range 0-255 (with leading zeros omitted

except in the case of a zero octet which is represented by a single

zero).

Host addresses are represented by domain names that have all four labels

specified. Thus data for Internet address 10.2.0.52 is located at

domain name 52.0.2.10.IN-ADDR.ARPA. The reversal, though awkward to

read, allows zones to be delegated which are exactly one network of

address space. For example, 10.IN-ADDR.ARPA can be a zone containing

data for the ARPANET, while 26.IN-ADDR.ARPA can be a separate zone for

MILNET. Address nodes are used to hold pointers to primary host names

in the normal domain space.

Network numbers correspond to some non-terminal nodes at various depths

in the IN-ADDR.ARPA domain, since Internet network numbers are either 1,

2, or 3 octets. Network nodes are used to hold pointers to the primary

host names of gateways attached to that network. Since a gateway is, by

definition, on more than one network, it will typically have two or more

network nodes which point at it. Gateways will also have host level

pointers at their fully qualified addresses.

Both the gateway pointers at network nodes and the normal host pointers

at full address nodes use the PTR RR to point back to the primary domain

names of the corresponding hosts.

For example, the IN-ADDR.ARPA domain will contain information about the

ISI gateway between net 10 and 26, an MIT gateway from net 10 to MIT's

Mockapetris             [Page 22]


RFC 1035  Domain Implementation and Specification November 1987

net 18, and hosts A.ISI.EDU and MULTICS.MIT.EDU. Assuming that ISI

gateway has addresses 10.2.0.22 and 26.0.0.103, and a name MILNET-

GW.ISI.EDU, and the MIT gateway has addresses 10.0.0.77 and 18.10.0.4

and a name GW.LCS.MIT.EDU, the domain database would contain:

 10.IN-ADDR.ARPA.   PTR MILNET-GW.ISI.EDU.

 10.IN-ADDR.ARPA.   PTR GW.LCS.MIT.EDU.

 18.IN-ADDR.ARPA.   PTR GW.LCS.MIT.EDU.

 26.IN-ADDR.ARPA.   PTR MILNET-GW.ISI.EDU.

 22.0.2.10.IN-ADDR.ARPA. PTR MILNET-GW.ISI.EDU.

 103.0.0.26.IN-ADDR.ARPA. PTR MILNET-GW.ISI.EDU.

 77.0.0.10.IN-ADDR.ARPA. PTR GW.LCS.MIT.EDU.

 4.0.10.18.IN-ADDR.ARPA. PTR GW.LCS.MIT.EDU.

 103.0.3.26.IN-ADDR.ARPA. PTR A.ISI.EDU.

 6.0.0.10.IN-ADDR.ARPA.  PTR MULTICS.MIT.EDU.

Thus a program which wanted to locate gateways on net 10 would originate

a query of the form QTYPE=PTR, QCLASS=IN, QNAME=10.IN-ADDR.ARPA. It

would receive two RRs in response:

 10.IN-ADDR.ARPA.   PTR MILNET-GW.ISI.EDU.

 10.IN-ADDR.ARPA.   PTR GW.LCS.MIT.EDU.

The program could then originate QTYPE=A, QCLASS=IN queries for MILNET-

GW.ISI.EDU. and GW.LCS.MIT.EDU. to discover the Internet addresses of

these gateways.

A resolver which wanted to find the host name corresponding to Internet


host address 10.0.0.6 would pursue a query of the form QTYPE=PTR,

QCLASS=IN, QNAME=6.0.0.10.IN-ADDR.ARPA, and would receive:

 6.0.0.10.IN-ADDR.ARPA.  PTR MULTICS.MIT.EDU.

Several cautions apply to the use of these services:

 - Since the IN-ADDR.ARPA special domain and the normal domain

  for a particular host or gateway will be in different zones,

  the possibility exists that that the data may be inconsistent.

 - Gateways will often have two names in separate domains, only

  one of which can be primary.

 - Systems that use the domain database to initialize their

  routing tables must start with enough gateway information to

  guarantee that they can access the appropriate name server.

 - The gateway data only reflects the existence of a gateway in a

  manner equivalent to the current HOSTS.TXT file. It doesn't

  replace the dynamic availability information from GGP or EGP.

Mockapetris             [Page 23]


RFC 1035  Domain Implementation and Specification November 1987

3.6. Defining new types, classes, and special namespaces


The previously defined types and classes are the ones in use as of the

date of this memo. New definitions should be expected. This section

makes some recommendations to designers considering additions to the

existing facilities. The mailing list NAMEDROPPERS@SRI-NIC.ARPA is the

forum where general discussion of design issues takes place.

In general, a new type is appropriate when new information is to be

added to the database about an existing object, or we need new data

formats for some totally new object. Designers should attempt to define

types and their RDATA formats that are generally applicable to all

classes, and which avoid duplication of information. New classes are

appropriate when the DNS is to be used for a new protocol, etc which

requires new class-specific data formats, or when a copy of the existing

name space is desired, but a separate management domain is necessary.

New types and classes need mnemonics for master files; the format of the

master files requires that the mnemonics for type and class be disjoint.

TYPE and CLASS values must be a proper subset of QTYPEs and QCLASSes

respectively.

The present system uses multiple RRs to represent multiple values of a

type rather than storing multiple values in the RDATA section of a

single RR. This is less efficient for most applications, but does keep

RRs shorter. The multiple RRs assumption is incorporated in some

experimental work on dynamic update methods.

The present system attempts to minimize the duplication of data in the

database in order to insure consistency. Thus, in order to find the

address of the host for a mail exchange, you map the mail domain name to

a host name, then the host name to addresses, rather than a direct

mapping to host address. This approach is preferred because it avoids

the opportunity for inconsistency.

In defining a new type of data, multiple RR types should not be used to

create an ordering between entries or express different formats for

equivalent bindings, instead this information should be carried in the

body of the RR and a single type used. This policy avoids problems with

caching multiple types and defining QTYPEs to match multiple types.

For example, the original form of mail exchange binding used two RR

types one to represent a "closer" exchange (MD) and one to represent a

"less close" exchange (MF). The difficulty is that the presence of one

RR type in a cache doesn't convey any information about the other

because the query which acquired the cached information might have used

a QTYPE of MF, MD, or MAILA (which matched both). The redesigned

Mockapetris             [Page 24]


RFC 1035  Domain Implementation and Specification November 1987

service used a single type (MX) with a "preference" value in the RDATA

section which can order different RRs. However, if any MX RRs are found

in the cache, then all should be there.

4. MESSAGES


4.1. Format


All communications inside of the domain protocol are carried in a single

format called a message. The top level format of message is divided

into 5 sections (some of which are empty in certain cases) shown below:

 +---------------------+

 |  Header  |

 +---------------------+

 |  Question  | the question for the name server

 +---------------------+

 |  Answer  | RRs answering the question

 +---------------------+

 |  Authority  | RRs pointing toward an authority

 +---------------------+

 |  Additional  | RRs holding additional information

 +---------------------+

The header section is always present. The header includes fields that

specify which of the remaining sections are present, and also specify

whether the message is a query or a response, a standard query or some

other opcode, etc.

The names of the sections after the header are derived from their use in

standard queries. The question section contains fields that describe a

question to a name server. These fields are a query type (QTYPE), a

query class (QCLASS), and a query domain name (QNAME). The last three

sections have the same format: a possibly empty list of concatenated

resource records (RRs). The answer section contains RRs that answer the

question; the authority section contains RRs that point toward an

authoritative name server; the additional records section contains RRs

which relate to the query, but are not strictly answers for the

question.

Mockapetris             [Page 25]


RFC 1035  Domain Implementation and Specification November 1987

4.1.1. Header section format


The header contains the following fields:

         1 1 1 1 1 1

  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |      ID      |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |QR| Opcode |AA|TC|RD|RA| Z | RCODE |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     QDCOUNT     |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     ANCOUNT     |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     NSCOUNT     |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 |     ARCOUNT     |

 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

ID    A 16 bit identifier assigned by the program that

    generates any kind of query. This identifier is copied

    the corresponding reply and can be used by the requester

    to match up replies to outstanding queries.

QR    A one bit field that specifies whether this message is a

    query (0), or a response (1).

OPCODE   A four bit field that specifies kind of query in this

    message. This value is set by the originator of a query

    and copied into the response. The values are:

    0    a standard query (QUERY)

    1    an inverse query (IQUERY)

    2    a server status request (STATUS)

    3-15   reserved for future use

AA    Authoritative Answer - this bit is valid in responses,

    and specifies that the responding name server is an

    authority for the domain name in question section.

    Note that the contents of the answer section may have

    multiple owner names because of aliases. The AA bit

Mockapetris             [Page 26]


RFC 1035  Domain Implementation and Specification November 1987

    corresponds to the name which matches the query name, or

    the first owner name in the answer section.

TC    TrunCation - specifies that this message was truncated

    due to length greater than that permitted on the

    transmission channel.

RD    Recursion Desired - this bit may be set in a query and

    is copied into the response. If RD is set, it directs

    the name server to pursue the query recursively.

    Recursive query support is optional.

RA    Recursion Available - this be is set or cleared in a

    response, and denotes whether recursive query support is

    available in the name server.

Z Reserved for future use. Must be zero in all queries


    and responses.

RCODE   Response code - this 4 bit field is set as part of

    responses. The values have the following

    interpretation:

    0    No error condition

    1    Format error - The name server was

        unable to interpret the query.

    2    Server failure - The name server was

        unable to process this query due to a

        problem with the name server.

    3    Name Error - Meaningful only for

        responses from an authoritative name

        server, this code signifies that the

        domain name referenced in the query does

        not exist.

    4    Not Implemented - The name server does

        not support the requested kind of query.

    5    Refused - The name server refuses to

        perform the specified operation for

        policy reasons. For example, a name

        server may not wish to provide the

        information to the particular requester,

        or a name server may not wish to perform

        a particular operation (e.g., zone

Mockapetris             [Page 27]


RFC 1035  Domain Implementation and Specification November 1987

        transfer) for particular data.

    6-15   Reserved for future use.

QDCOUNT   an unsigned 16 bit integer specifying the number of

    entries in the question section.

ANCOUNT   an unsigned 16 bit integer specifying the number of

    resource records in the answer section.

NSCOUNT   an unsigned 16 bit integer specifying the number of name

    server resource records in the authority records

    section.

ARCOUNT   an unsigned 16 bit integer specifying the number of

    resource records in the additional records section.

4.1.2. Question section format

The question section is used to carry the "question" in most queries,

i.e., the parameters that define what is being asked. The section

contains QDCOUNT (usually 1) entries, each of the following format:

1 1 1 1 1 1

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

| |

/ QNAME /

/ /

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

| QTYPE |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

| QCLASS |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

QNAME a domain name represented as a sequence of labels, where

each label consists of a length octet followed by that

number of octets. The domain name terminates with the

zero length octet for the null label of the root. Note

that this field may be an odd number of octets; no

padding is used.

QTYPE a two octet code which specifies the type of the query.

The values for this field include all codes valid for a

TYPE field, together with some more general codes which

can match more than one type of RR.

10 January 2009 30 Comments

Professional Summary

  • Amit Mani Mishra (a.k.a – Amit Mishra)

            Project Manager (Head – SEO/SEM Process) at Wildnet Technologies Pvt. Ltd.                (An ISO 9001-2000 Certified Company) A Top strategist & tactician with knowledge             of latest industry trends… more 

  • Amit Mishra’s Open description:                                                                                                                                                                                               A strategic online distribution specialist, focused on generating profitability and cost efficiencies, through selective channel management. An enthusiastic, highly motivated team player, who thrives in a dynamic environment, and enjoys optimising the challenges of this fast evolving arena.
  • Amit Mishra’s Specialties:

    Online marketing, Online brand campaigns, Measurement analysis, SEO, Content managment, managing eCommerce projects, distribution knowledge, understanding the competive landscape, identifying opportunities in new and emerging channels.

  • Amit Mishra’s Specialties

           Ø  Provide website development, marketing and usability consulting services to clients.
           Ø  Lead and develop Internet marketing activities from: Google AdWords,
              

6 January 2009 106 Comments

Amit Mani Mishra: A Terms Goes for Self Motivation

Heyyyy Frienzzz

I am glad to join this new blog website