Chapter 6. Looking Up Internet Addresses
Devices connected to the Internet are
called
nodes.
Nodes that are computers are called
hosts.
Each node or host is identified by at least one unique number called
an Internet address or an IP address. Most current IP addresses
are four bytes long; these are referred to as IPv4 addresses.
However, a small but growing number of IP addresses are 16 bytes
long; these are called IPv6 addresses. (4 and 6 refer to the version
of the Internet Protocol, not the number of the bytes in the
address.) Both IPv4 and IPv6 addresses are ordered sequences of
bytes, like an array. They aren't numbers, and they
aren't ordered in any predictable or useful sense.An IPv4 address is normally written as
four unsigned bytes, each ranging from 0 to 255, with the most
significant byte first. Bytes are separated by periods for the
convenience of human eyes. For example, the address for
hermes.oit.unc.edu is 152.2.21.2. This is called the
dotted quad format.An IPv6 address is normally written as
eight blocks of four hexadecimal digits separated by colons. For
example, at the time of this writing, the address of www.ipv6.com.cn is 2001:0250:02FF:0210:0250:8BFF:FEDE:67C8.
Leading zeros do not need to be written. Thus, the address of
www.ipv6.com.cn can be written as
2001:250:2FF:210:250:8BFF:FEDE:67C8. A double
colon, at most one of which may appear in any address, indicates
multiple zero blocks. For example, FEDC:0000:0000:0000:00DC:0000:7076:0010 could
be written more compactly as FEDC::DC:0:7076:10. In mixed networks of IPv6
and IPv4, the last four bytes of the IPv6 address are sometimes
written as an IPv4 dotted quad address. For example, FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 could
be written as FEDC:BA98:7654:3210:FEDC:BA98:118.84.50.16.
IPv6 is only supported in Java 1.4 and later. Java 1.3 and earlier
only support four byte addresses.IP addresses are great for computers, but they are a problem for
humans, who have a hard time remembering long numbers. In the 1950s,
it was discovered that most people could remember about seven digits
per number; some can remember as many as nine, while others remember
as few as five. ("The Magic Number Seven, Plus or
Minus Two: Some Limits on Our Capacity for Processing
Information," by G. A. Miller, in the
Psychological Review, Vol. 63, pp. 81-97.) This
is why phone numbers are broken into three- and four-digit pieces
with three-digit area codes. Obviously, an IP address, which can have
as many as 12 decimal digits, is beyond the capacity of most humans
to remember. I can remember about two IP addresses, and then only if
I use both daily and the second is on the same subnet as the first.To avoid the need to carry around Rolodexes full of IP addresses, the
Internet's designers invented the
Domain Name System (DNS). DNS associates
hostnames that humans can remember (such as hermes.oit.unc.edu) with IP addresses that
computers can remember (such as 152.2.21.2). Most hosts have at least one
hostname. An exception is made for computers that
don't have a permanent IP address (like many PCs);
because these computers don't have a permanent
address, they can't be used as servers and therefore
don't need a name, since nobody will need to refer
to them.
rather than a particular machine. In the past, when this web site
moved from one machine to another, the name was reassigned to the new
machine so it always pointed to the site's current
server. This way, URLs around the Web don't need to
be updated just because the site has moved to a new host. Some common
names like www and news are
often aliases for the machines providing those services. For example,
www.oreilly.com is
actually two machines, one at 208.201.239.36 and one at 208.201.239.37.Every computer connected to the Internet should have access to a
machine called a domain name
server, generally a Unix box running special
DNS software that knows the mappings between different hostnames and
IP addresses. Most domain name servers only know the addresses of the
hosts on their local network, plus the addresses of a few domain name
servers at other sites. If a client asks for the address of a machine
outside the local domain, the local domain name server asks a domain
name server at the remote location and relays the answer to the
requester.Most of the time, you can use hostnames and let DNS handle the
translation to IP addresses. As long as you can connect to a domain
name server, you don't need to worry about the
details of how names and addresses are passed between your machine,
the local domain name server, and the rest of the Internet. However,
you will need access to at least one domain name server to use the
examples in this chapter and most of the rest of this book. These
programs will not work on a standalone computer. Your machine must be
connected to the Internet.
• Table of Contents• Index• Reviews• Reader Reviews• Errata• AcademicJava Network Programming, 3rd EditionBy
Elliotte Rusty Harold Publisher: O'ReillyPub Date: October 2004ISBN: 0-596-00721-3Pages: 706
Thoroughly revised to cover all the 100+ significant updates
to Java Developers Kit (JDK) 1.5, Java Network
Programming is a complete introduction to
developing network programs (both applets and applications)
using Java, covering everything from networking fundamentals
to remote method invocation (RMI). It includes chapters on
TCP and UDP sockets, multicasting protocol and content
handlers, servlets, and the new I/O API. This is the
essential resource for any serious Java developer.
