Please Whitelist This Site?

I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don't want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. And I have a family to support, just like you. :)

If you like The TCP/IP Guide, please consider the download version. It's priced very economically and you can read all of it in a convenient format without ads.

If you want to use this site for free, I'd be grateful if you could add the site to the whitelist for Adblock. To do so, just open the Adblock menu and select "Disable on tcpipguide.com". Or go to the Tools menu and select "Adblock Plus Preferences...". Then click "Add Filter..." at the bottom, and add this string: "@@||tcpipguide.com^$document". Then just click OK.

Thanks for your understanding!

Sincerely, Charles Kozierok
Author and Publisher, The TCP/IP Guide

NOTE: Using software to mass-download the site degrades the server and is prohibited.If you want to read The TCP/IP Guide offline, please consider licensing it. Thank you.

UDP is a simple connectionless protocol
that provides no real features but is very fast. It is ideally suited
for small, quick exchanges of information, and can be faster than TCP
because there is no need to establish a connection. This makes it a
good choice for most of the conventional queries used in DNS, because
they are normally very short, and fast data exchange is important. For
this reason, the DNS standards recommend use of UDP for queries and
replies as part of regular and reverse name resolution. UDP DNS messages
are limited to 512 bytes; longer messages are truncated and a special
bit in the header is set to indicate that
this has occurred. If a message being truncated causes a problem for
its recipient, the query must be repeated using TCP, as described below.

Note: The 512 byte limit on DNS UDP messages can be surpassed if the optional Extension Mechanisms for DNS (EDNS0) are implemented. These are described in RFC 2671.

TCP Message Transport

Since UDP does not provide reliable
delivery of messages, DNS clients must keep track of requests they have
sent. If no response is received after a particular amount of time,
the request must be retransmitted. The need to take care of these details
is considered an acceptable trade-off for the lower setup costs involved
with UDP, such as not requiring a connection. The rate at which retransmissions
is sent is usually set at a minimum of 2 to 5 seconds to prevent excessive
DNS traffic on the internetwork.

For certain special DNS transactions,
UDP is simply inappropriate. The most common example of such a transaction
is a zone transfer. While the query for a zone transfer is small in
size, the amount of data sent in response can be quite large. The limit
of 512 bytes for UDP is not even close to enough. Furthermore, we really
do need to make sure that a zone transfer is accomplished reliably and
with flow control and other data transfer management features, or we
risk having corrupted zone information in our secondary DNS server databases.

The solution is to use TCP for these
types of exchanges. TCP allows messages to be of arbitrary length, and
as a connection-oriented,
acknowledged, reliable protocol, automatically
provides the mechanisms we need to ensure that zone transfers and other
lengthy operations complete successfully. The cost is the small amount
of overhead needed to establish the connection, but since zone transfers
are infrequent (compared to the sheer volume of regular name resolutions)
this is not a problem.

You can see how DNS nicely illustrates
the roles of both TCP and UDP in TCP/IP. Since both transport protocols
can be used, name servers listen for both UDP and TCP requests on the
same well-known
port number, 53. The device acting as
the client uses an ephemeral
port number for the transaction. All DNS
messages are sent unicast
from one device directly to another.

Key Concept: DNS uses both UDP and TCP to send messages. Conventional message exchanges are short and sweet and thus well-suited to the use of the very fast UDP; DNS itself handles the detection and retransmission of lost requests. For larger or more important exchanges of information, especially zone transfers, TCP is usedboth for its reliability and its ability to handle messages of any size.

If you find The TCP/IP Guide useful, please consider making a small Paypal donation to help the site, using one of the buttons below. You can also donate a custom amount using the far right button (not less than $1 please, or PayPal gets most/all of your money!) In lieu of a larger donation, you may wish to consider purchasing a download license of The TCP/IP Guide. Thanks for your support!