连接到Internet的设备称为节点(node)。计算机节点称为主机(host)。每个节点或主机都由至少一个唯一的数来标识,这称为Internet地址或IP地址。目前大多数IP地址是四字节长,这被称作IPv4地址。不过,一小部分IP地址是16字节长(而且这种地址的数量正在增加),这被称作IPv6地址(4和6指Internet协议的版本,不是地址中的字节数)。IPv4和IPv6地址都是字节的有序序列,和数组一样。它们不是数,它们的顺序也不具有任何可预测或有用的意义。
IPv4地址一般写为四个无符号字节,每字节范围从0到255,最高字节在前。为方便人们查看,各字节用点号分隔。例如,www.hamiltonweather.tk 的地址是2400:cb00:2048:0001:0000:0000:6ca2:c665 。前导的0不需要写出,因此,www.hamiltonweather.tk 的地址可以写为 2400:cb00:2048:1:0:0:6ca2:c665 。两个冒号表示多个0区块,但每个地址中双冒号至多出现一次。例如,2001:4860:4860:0000:0000:0000:8888可以写为紧缩的2001:4860:4860::8888 。在IPv6和IPv4的混合网络中,IPv6地址的最后4字节有时写为IPv4的点分四段地址。例如,FEDC:BA98:7654:3210:FEDC:BA98:7654:3210可以写为FEDC:BA98:7654:3210:FEDC:BA98:118.84.50.16 。
IP地址对于计算机来说很不错,但对人来说是个问题。人们很难记忆长的数字。为了避免处理带记满IP地址的通讯录,Internet的设计者发明了域名系统(Domain Name System,DNS)。DNS将人们可以记忆的主机名(如login.ibiblio.org)与计算机可以记忆的IP地址(如152.19.134.132)关联在一起。服务器通常至少有一个主机名,有些机器有多个名,例如,www.beand.com和xom.nu实际上是同一台Linux主机。名www.beand.com实际上指示一个Web网站而不是一个特定的机器。在过去,当这个Web网站从一台机器移到另一台机器时,这个名字将重新指派给这台新机器,使它永远指向网站的当前服务器。通过这种方式,就不会因为网站迁移到一个新主机而要更新Web上的URL。例如,news.speakeasy.net是我的ISP的新闻服务器别名。由于服务器可能随着时间而改变,别名可能跟着服务转移。
有时,一个名会映射到多个IP地址,这时就要由DNS服务器负责随机选择一台机器来响应各个请求。这个特性在业务流量非常大的Web网站经常使用,它将负载分摊到多个系统上。例如,www.oreilly.com实际上是两台机器,一台位于208.201.239.100,一台位于208.201.239.101。
每台连接到Internet的计算机都应当能访问一个称为域名服务器(domain name server)的机器,它通常是一个运行特殊DNS软件的UNIX主机,这种软件了解不同主机名和IP地址之间的映射。大多数域名服务器只知道其本地网络上主机的地址,以及其他网站中一些域名服务器的地址。如果客户端请求本地域之外一个机器的地址,本地域名服务器就会询问远程位置的域名服务器,再将答案转发给请求者。