2.1.11 因特网
因特网起源于20世纪70年代美国国防部高级计划研究局(Defense Advanced Research Project Agency,DARPA)为应对冷战时代核战争的需要,当网络的某一部分因遭受攻击而失去工作能力时,网络的其他部分应当能够维持正常通信。
1969年,DARPA建立了一个覆盖全国的著名网络(Advanced Research Project Agency Network,ARPANet),其采用分组交换技术,使用报文处理机(Interface Message Processor,IMP)实现网络互联,最基本的服务是资源共享,互换信息,可实现异地的电子会议和网上的文件传输。
ARPANet的成功极大地促进了网络互联技术的发展,于1979年完成了传输控制协议/互联网络协议(TCP/IP)规范,1980年开始在ARPANet全面推广,1983年完成。1986年,美国国家科学基金会(National Science Foundation,NSF)采用TCP/IP通信协议建立起NSFNet网络,且与ARPANet相连,并逐渐取代了ARPANet网络,形成了因特网的雏形。1988年后,NSFNet以全美国13个节点为主干节点,成为因特网的主干网,此后各国也相继建立了本国的TCP/IP网络,并连接到美国的因特网,逐步形成了覆盖全世界的因特网。
因特网是一个全球范围的计算机网络,它把全世界数以百万计的计算机设备互连在一起。这些计算设备大多是传统的台式PC机、UNIX工作站,以及存储并传输诸如Web页面和电子邮件消息等信息的服务器。诸如WebTV、手机等非传统的计算设备也越来越多地连接到因特网当中。因特网以相互交流信息资源为目的,它是基于一些共同的协议,并通过许多路由器和公共互联而成的,信息资源和资源共享的集合。
1.TCP/IP协议体系结构
TCP/IP协议集由Internet工作委员会发布并已成为互联网标准。与OSI的情况不同,不存在正式的TCP/IP层次结构模型。但根据已开发的协议标准,可以根据通信任务将其分成4个比较独立的层次,如表2-5所示。
表2-5 TCP/IP层次结构
(1)网络接口层
大致对应于OSI模型的数据链路层和物理层,TCP/IP协议不包含具体的物理层和数据链路层,只定义了网络接口层作为物理层的接口规范。网络接口层处在TCP/IP协议的最底层,主要负责管理为物理网络准备数据所需的全部服务程序和功能。该层处理数据的格式化并将数据传输到网络电缆,为TCP/IP的实现基础,其中可包含IEEE802.3的CSMA/CD、IEEE802.5的TokenRing等。
(2)网络互联层
网络互联层也称网络层或互联网层,负责将数据报独立地从信源传送到信宿,主要解决路由选择、阻塞控制和网络互联等问题,在功能上类似于OSI体系结构中的网络层。网络互联层是TCP/IP体系结构的核心,该层最重要的协议称为IP协议,因此,网络互联层又称IP层。
(3)传输层
传输层负责在源主机和目的主机之间提供端到端的数据传输服务,相当于OSI体系结构中的传输层。本层主要定义了两个传输协议,一个是可靠的、面向连接的传输控制协议(TCP),另一个是不可靠的、无连接的用户数据报协议(UDP)。TCP和网络层的IP协议是互联网中的两个最重要的协议,以至于TCP/IP体系结构和TCP/IP协议集就以这两个协议的名称来命名。
(4)应用层
应用层包含了所有的高层协议,常见的如简单网络管理协议(SNMP)、超文本传输协议(HTTP)、文件传输协议(FTP)、简单邮件传输协议(SMTP)、域名服务(DNS)和远程终端访问协议(Telnet)。
TCP/IP协议集作为一种十分流行的网络体系结构,已成为事实上的工业标准。但是,TCP/IP体系结构没有明显地区分每一层中“服务”、“接口”与“协议”的概念,各层中“接口”与“层”之间的区分也较模糊。OSI/RM与TCP/IP的层次对应关系如表2-6所示。
表2-6 OSI/RM与TCP/IP的层次对应关系
2.IP协议
网间协议IP是TCP/IP的核心,是因特网最基本、最重要的协议。IP协议用来在因特网中提供最基本的计算机之间的数据寻址,并管理这些数据的拆分,同时还负责数据的路由——数据报从一台主机到另一台主机将要经过的路径,以及利用合适的路由器完成数据在不同网络之间的传输。IP协议实现的是无连接、不可靠的数据报服务。
(1)IP地址
为区别因特网上几百万台计算机、成千上万的组织和上亿用户,必须给因特网上的每台计算机(或路由器)与因特网的每个接口规定一个唯一的地址,即IP地址。
IP地址是一个32位(bit)的二进制数。为了书写和记忆的方便,通常将IP地址分为4字节(Byte),每个字节用一个十进制数来表示,字节之间用圆点分隔,这就是点分十进制表示。例如IP地址:
11000000 101010001100100010000000
可分成4字节:
11000000 10101000 11001000 10000000
每字节用十进制数来表示,字节之间用圆点分隔,表示为192.168.200.64。
每个IP地址都由两部分组成:网络标识(Net-ID)和主机标识(Host-ID)。网络标识用于唯一标识一个网络,主机标识则确定了某一网络上的某一台主机。为保证IP地址的唯一性,专门设立了一个权威机构InterNIC负责IP地址的管理。InterINC只分配IP地址中的网络标识,主机标识由各个网络的管理员负责分配。
网络部分所占位数决定了整个互联网最多可以有多少个网络,而主机标识所占位数则决定了一个网络中最多可有多少台主机。由于因特网上网络规模有很大区别,IP地址空间被划分为5类,每类都具有不同位数的网络标识和主机标识:A类地址分配给少数规模很大的网络;B类地址分配给中等规模的网络;C类地址分配给小规模的网络;D类地址用于组播(Multicast)业务,E类地址作为保留。IP地址编码分类如表2-7所示。
表2-7 IP地址编码分类
根据上述编址规则,IP地址的第1字节,A类为0~126,B类为128~191,C类为192~223,D类为224~239,E类为240~255。
需要记住以下几种特殊的IP地址。
1)网络地址
在互联网中,经常需要使用网络地址,那么,怎么来表示一个网络呢?IP地址方案规定,网络地址包含一个有效的网络号和一个全“0”的主机号。例如,在A类网络中,地址113.0.0.0就表示该网络的网络地址,而一个具有IP地址为202.93.120.44的主机所处的网络为202.93.120.0,它的主机号为44。
2)广播地址
当一个设备向网络上的所有设备发送数据时,就产生了广播。为了使网络上的所有设备能够注意到这样一个广播,必须使用一个可进行识别和侦听的IP地址。通常,这样的IP地址以全“1”结尾。IP广播有两种形式,一种称为直接广播,另一种称为有限广播。如果广播地址包含一个有效的网络号和一个全“1”的主机号,那么技术上称之为直接广播地址。在IP互联网中,任意一台主机均可向其他网络进行直接广播。
例如,C类地址202.93.120.55就是一个直接广播地址。互联网上的一台主机如果使用该IP地址作为数据报的目的IP地址,那么这个数据报将同时发送到202.93.120.0网络上的所有主机。
直接广播的一个主要问题是在发送前必须知道目的网络的网络号。
32位全“1”的IP地址(255.255.255.255)用于本网广播,该地址称为有限广播地址。实际上,有限广播将广播限制在最小的范围内。如果采用标准的IP编址,那么有限广播将被限制在本网络之中。
有限广播不需要知道网络号。因此,在主机不知道本机所处的网络时(如在主机的启动过程中),只能采用有限广播方式。
3)保留地址
为了满足内网的使用需求,保留了一部分不在公网使用的IP地址,如表2-8所示。
表2-8 三类保留地址
4)回送(Loopback)地址
A类网络地址127.0.0.0是一个保留地址,用于网络软件测试及本地机器进程间通信,这个IP地址称为回送地址。无论什么程序,一旦使用回送地址发送数据,协议软件不进行任何网络传输,立即将之返回。因此,含有网络号127的数据报不可能出现在任何网络上。
(2)子网和子网掩码
在实际应用中,仅靠网络标识来划分网络会有许多问题。例如某大学的B类网络最多允许接入65534台计算机,但实际上不可能将这么多计算机都连接到一个单一的网络中。如果按照学院划分为十多个子网,每个子网最多只允许接入几千台计算机,会给网络寻址和管理带来很大方便。
划分子网的思路如下。
·一个拥有许多物理网络的单位,可以将所属于的物理网划分为若干个子网。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍表现为一个网络。
·划分子网的方法是从网络中的主机号借用若干位作为子网号,于是两级的IP地址变为三级IP地址:网络号、子网号和主机号。
·凡是从其他网络发给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号找到链接到本单位网络上的路由器。但此路由器收到IP数据报后,再按照目的网络号和子网号找到目的子网,把IP数据报交付给目的主机。
在一个网络中引入子网,就是将主机标识进一步划分为子网标识和主机标识,通过灵活定义子网标识的位数,可以控制每个子网的规模。例如在上面的例子中,将子网标识位数定为4,则划分为16个子网,每个子网最多允许接入4094台计算机。
注意:子网划分会导致实际可分配IP地址的数目减少。例如上面例子中,子网划分前的可分配IP地址数为65534,划分后的可分配IP地址数为65504(4094*16),减少了30个。但这点损失与子网划分所带来的巨大收益相比是微不足道的。
为了使得路由器能从目的IP地址中提取出所要找的子网的网络地址,路由器就要使用子网掩码。
子网掩码也是32位,由一连串的1和一连串的0组成,子网掩码中的1对应IP地址的网络号+子网号,子网掩码中的0对应主机号。路由器将子网掩码和收到数据报的目的IP地址逐位相“与”,得出了所要找的子网网络地址。
使用子网掩码的好处就是:不管网络是如何划分子网掩码的,只要把子网掩码和IP地址进行逐位相“与”运算,就能立即得到网络地址。
这里还需要弄清一个问题,在不划分子网时,为什么还要使用子网掩码呢?这就是为了更便于查找路由表。现在因特网的标准规定,所有网络必须使用子网掩码,同时,在路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。
注意:根据已成为因特网标准的RFC950文档,子网号不能为全0和全1,但随着无分类域间路由选择CIDR的广泛使用,现在全1和全0的子网号也可以使用了。
判断两台机器是否在同一个子网内,需要用到子网掩码。子网掩码同IP地址一样,也是一个32位的二进制数,但其网络标识和子网标识部分全为1,主机标识部分全为0。例如,上面例子的子网掩码为11111111 1111111111110000 00000000,即255.255.240.0。
判断两个IP地址是不是在同一个子网内,只要判断这两个IP地址与子网掩码做逻辑“与”的结果是否相同即可。例如,设IP地址A、B、C分别为190.78.240.1、190.78.250.1、190.78.230.1,子网掩码为255.255.240.0。将A、B、C分别转换为二进制表示形式:
10111110 01001110 11110000 00000001
10111110 01001110 11111010 00000001
10111110 01001110 11100110 00000001
与子网掩码11111111111111111111000000000000逻辑“与”的结果分别为:
10111110 01001110 11110000 00000000
10111110 01001110 11110000 00000000
10111110 01001110 11100000 00000000
因此,IP地址190.78.240.1与190.78.250.1在一个子网内,而IP地址190.78.240.1与190.78.230.1不在一个子网内。
3.ARP
在互联网中,IP地址能够屏蔽各个物理网络地址的差异,为上层用户提供“统一”的地址形式。但是这种“统一”是通过在物理网络上覆盖一层IP软件实现的,互联网并不对物理地址做任何修改。高层软件通过IP地址来指定源地址和目的地址,而低层的物理网络则通过物理地址来发送和接收信息。
将IP地址映射到物理地址的实现方法有多种,每种网络都可以根据自身的特点选择适合自己的映射方法。地址解析协议(Address Resolution Protocol,ARP)是以太网经常使用的映射方法,它充分利用了以太网的广播能力,将IP地址与物理地址进行动态绑定(Dynamic Binding)。
以太网一个很大的特点就是具有强大的广播能力。针对这种具备广播能力、物理地址长但长度固定的网络,IP互联网采用动态联编方式进行IP地址到物理地址的映射,并制定了相应的协议ARP。
假定在一个以太网中,主机A欲获得主机B的IP地址与MAC地址的映射关系。ARP的基本工作过程如下。
1)主机A广播发送一个请求信息包,请求主机B用它的IP地址和MAC地址的映射关系进行响应。
2)以太网上的所有主机接收这个请求信息(包括主机B在内)。
3)主机B识别该请求信息,并向主机A发送带有自己的IP地址和MAC地址映射关系的响应信息包。
4)主机A得到主机B的IP和MAC的映射关系,并可以在随后的发送过程中使用该映射关系。
ARP请求信息和响应信息的频繁发送和接收必然对网络的效率产生影响。为了提高效率,可以采用高速缓存等多种方法对基本的ARP进行改进。
在采用高速缓存技术的ARP中,每台主机都保留了一个专用的高速缓存区(Cache),用于保存已知的ARP表项。一旦收到ARP应答,主机就将获得的IP地址与物理地址的映射关系存入高速Cache的ARP表中。当发送信息时,主机首先到高速Cache的ARP表中查找相应的映射关系,若找不到,再利用ARP进行地址解析。利用高速缓存技术,主机不必为每个发送的IP数据报使用ARP,这样就可以减少网络流量,提高处理的效率。
主机的物理地址通常存储在网卡上,一旦网卡从一台主机换到另一台主机,其IP地址与物理地址的对应关系也就发生了变化。为了保证主机中ARP表的正确性,ARP表必须经常更新。为此,ARP表中的每一个表项都被分配了一个计时器,一旦某个表项超过了计时时限,主机就会自动将它删除,以保证ARP表的有效性。
4.ICMP
ICMP(Internet Control Message Protocol,Internet控制报文协议)通常被认为是网络互联层的协议,更确切地说,是工作在IP协议之上又不属于传输层的协议。
为了能够更加有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议(ICMP),ICMP作为IP数据报中的数据,封装在IP数据包中发送。
ICMP报文种类分为ICMP差错报告报文和ICMP询问报文。
(1)ICMP差错报告报文
·终点不可达:主机或路由器无法交付数据报的时候就向源点发送终点不可达报文。如果收到UDP数据报而且目的端口与某个正在使用的进程不相符,那么返回一个ICMP不可达报文。
·源站抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送源站抑制报文,使源站知道应当将数据报的发送速率放慢。
·时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源站发送时间超过报文。当目的站在预先规定的时间内不能收到一个数据报的全部数据报片时,就将已收到的数据报片都丢弃,并向源站发送时间超过报文。
·参数问题:当路由器或目的主机收到的数据报的首部中的字段的值不正确时,就丢弃该数据报,并向源站发送参数问题报文。
·改变路由(重定向):路由器将改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
(2)ICMP询问报文
回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的机器必须给源主机发送ICMP回送应答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
ICMP时间戳请求允许系统向另一个系统查询当前的时间。ICMP报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间只能提供秒级的分辨率。
5.TCP和UDP
利用互联层,互联网提供了一个虚拟的通信平台。在这个平台中,数据报从一站转发到另一站,又从一个节点传送给另一个节点,其主要的传输控制是在相邻两个节点之间进行的。与互联层不同,传输层需要提供一个直接从一台计算机到另一台远程计算机上的端到端通信控制。传输层利用互联层发送数据,每一传输层数据都需要封装在一个互联层的数据报中通过互联网。当数据报到达目的主机后,互联层再将数据提交给传输层。注意,尽管传输层使用互联层来携带报文,但互联层并不阅读或干预这些报文。因而,传输层只把互联层看做一个包通信系统,这一通信系统负责连接两端的主机。
传输层上有两个主要的协议:一个是可靠的、面向连接的传输控制协议(TCP),另一个是不可靠的、无连接的用户数据报协议(UDP)。
(1)传输控制协议
TCP为传输控制协议,是一个面向连接的协议,它提供双向的、可靠的、有流量控制的字节流的服务。字节流服务的意思是,在一个TCP连接中,源节点发送一连串的字节给目的节点。可靠服务是指数据有保证地传递,按序,没有重复。发送方TCP实体将应用程序的输出不加分隔地放在数据缓冲区中,输出时将数据块划分成长度适中的段,每个段封装在一个IP数据报中传输。
表2-9给出了一些著名的TCP端口号。由于这些TCP端口已被著名的应用程序占用,因此,在编写其他应用程序时应尽量避免使用。
表2-9 著名的TCP端口号
(2)用户数据报协议
与传输控制协议(TCP)相同,用户数据报协议(UDP)也位于传输层。但是,它的可靠性远没有TCP高。
从用户的角度看,UDP协议提供了面向非连接的、不可靠的传输服务。它使用IP数据报携带数据,但增加了对给定主机上多个目标进行区分的能力。
由于UDP是面向非连接的,因此它可以将数据直接封装在IP数据报中进行发送。这与TCP发送数据前需要建立连接有很大的区别。UDP既不使用确认信息对数据的到达进行确认,也不对收到的数据进行排序。因此,利用UDP传送的数据有可能会出现丢失、重复或乱序现象,一个使用UDP的应用程序要承担可靠性方面的全部工作。
UDP的最大优点是运行的高效性和实现的简单性。尽管UDP的可靠性不如TCP,但很多著名的应用程序还是采用了UDP。
表2-10给出了一些著名的UDP端口号。由于这些UDP端口已被著名的应用程序占用,因此,在编写其他应用程序时也应尽量避免使用。
表2-10 著名的UDP端口号
6.域名系统
域名系统(Domain Name System,DNS)是因特网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域”(Domain),因此就出现了“域名”这个名词。“名字系统”没有说清用在什么地方,而“域名系统”就很明确地指明这种系统是用在因特网中。
许多应用层软件经常直接使用域名系统,但计算机的用户只是间接而不是直接使用域名系统。用户与因特网上某个主机通信时,显然不愿意使用很难记忆的长达32位的二进制主机地址。即使是点分十进制IP地址,也并不太容易记忆。相反,大家愿意使用比较容易记忆的主机名字。早在ARPANet时代,整个网络上只有数百台计算机,那时使用一个叫做hosts的文件,列出所有主机名字和相应的IP地址。只要用户输入一个主机名字,计算机就可很快地把这个主机名字转换成机器能够识别的二进制IP地址。
为什么机器在处理IP数据报时要使用IP地址而不使用域名呢?这是因为IP地址的长度是固定的32位(如果是IPv6地址,那就是128位,也是定长的),而域名的长度并不是固定的,机器处理起来比较困难。从理论上讲,整个因特网可以只使用一个域名服务器,使它装入因特网上所有的主机名,并回答所有对IP地址的查询。然而,这种做法并不可取。因为因特网规模很大,这样的域名服务器肯定会因过负荷而无法正常工作,而且一旦域名服务器出现故障,整个因特网就会瘫痪。因此,早在1983年,因特网就开始采用层次树状结构的命名方法,并使用分布式的域名系统。DNS的因特网标准是RFC1034、1035。
因特网的域名系统被设计成为一个联机分布式数据库系统,并采用客户服务器方式。DNS使大多数名字都在本地进行解析,仅少量解析需要在因特网上通信,因此DNS的效率很高。由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个DNS的正常运行。域名到IP地址的解析是由分布在因特网上的许多域名服务器程序(可简称为域名服务器)共同完成的。域名服务器程序在专设的节点上运行,而人们也常把运行域名服务器程序的机器称为域名服务器。
域名到IP地址的解析过程的要点如下:当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回,应用进程获得目的主机的IP地址后即可进行通信。若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求。这个过程直至找到能够回答该请求的域名服务器为止。
早期的因特网使用了非等级的名字空间,其优点是名字简短。但当因特网上的用户数急剧增加时,用非等级的名字空间来管理一个很大的而且是经常变化的名字集合是非常困难的。因此,因特网后来就采用了层次树状结构的命名方法,就像全球邮政系统和电话系统那样。采用这种命名方法,任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(Domain Name)。这里,“域”(Domain)是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。
从语法上讲,每一个域名都是由标号(Label)序列组成,而各标号之间用点隔开(请注意,是小数点“.”,不是中文的句号“。”)。例如mail.cctv.com就是中央电视台用于收发电子邮件的计算机(即邮件服务器)的域名,它由三个标号组成,其中标号com是顶级域名,标号cctv是二级域名,标号mail是三级域名。
DNS规定:域名中的标号都由英文字母和数字组成,每一个标号都不超过63个字符(但为了记忆方便,最好不要超过12个字符),也不区分大小写字母(例如,CCTV或cctv在域名中是等效的);标号中除连字符(-)外不能使用其他的标点符号;级别最低的域名写在最左边,级别最高的顶级域名则写在最右边;由多个标号组成的完整域名不能超过255个字符。DNS既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由ICANN进行管理。用这种方法可使每一个域名在整个因特网范围内是唯一的,并且也容易设计出一种查找域名的机制。
需要注意的是,域名只是逻辑概念,并不代表计算机所在的物理地点。变长的域名和使用有助于记忆的字符串,是为了便于使用。而IP地址是定长的32位二进制数字则非常便于机器进行处理。域名中的“点”和点分十进制IP地址中的“点”并无一一对应的关系。点分十进制IP地址中一定包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。
据不完全统计,现在顶级域名(Top Level Domain,TLD)已有265个,分为如下所述三大类。
(1)国家顶级域名(nTLD)
国家顶级域名采用ISO3166的规定。如cn表示中国,us表示美国,uk表示英国。国家顶级域名又常记为ccTLD(cc表示国家代码country-code)。
(2)通用顶级域名(gTLD)
到2006年12月为止,通用顶级域名的总数已经达到18个。最常见的通用顶级域名有7个,即com(公司企业),net(网络服务机构),org(非营利性的组织),int(国际组织),edu(美国专用的教育机构),gov(美国的政府部门),mil(美国的军事部门)。其余11个通用顶级域名是:aero(航空运输企业),biz(公司和企业),cat(加泰隆人的语言和文化团体),coop(合作团体),info(各种情况),jobs(人力资源管理者),mob(移动产品与服务的用户和提供者),museum(博物馆),name(个人),pro(有证书的专业人员),travel(旅游业)。
(3)基础结构域名
这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称为反向域名。
在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为jp的日本,其教育和企业机构的二级域名定为ac和co,而不用edu和com。
我国把二级域名划分为“类别域名”和“行政区域名”两大类。“类别域名”共7个,分别为ac(科研机构)、com(工、商、金融等企业)、edu(教育机构)、gov(政府机构)、mil(国防机构)、net(提供互联网络服务的机构)、org(非营利性的组织)。“行政区域名”共34个,适用于我国的各省、自治区、直辖市,例如bj(北京市)、js(江苏省)等。值得注意的是,我国修订的域名体系允许直接在cn的顶级域名下注册二级域名。这显然给我国的因特网用户提供了很大的方便。例如,某公司abc以前要注册为三级域名abc.com.cn,但现在可以注册为二级域名abc.cn。
用域名树表示的因特网的域名系统是最清晰的。它实际上是一个倒过来的树,在最上面的是根,但没有对应的名字。根下面一级的节点就是最高一级的顶级域名(由于根没有名字,所以在根下面一级的域名就叫做顶级域名);顶级域名可往下划分子域,即二级域名;再往下划分就是三级域名、四级域名,依此类推。
7.HTTP协议
WWW是TCP/IP互联网上一个完全分布式的信息系统,最早由欧洲核物理研究中心(CERN)的TimBerners-Lee主持开发,其目的是为研究中心分布在世界各地的科学家提供一个共享信息的平台。当每一个图形界面的WWW浏览器Mosaic在美国国家超级计算应用中心(NCSA)诞生后,WWW系统逐渐成为TCP/IP互联网上不可或缺的服务系统。
(1)WWW服务系统
WWW服务采用客户机/服务器工作模式。它以超文本标记语言(Hyper Text Markup Language,HTML)与超文本传输协议(Hyper Text Transfer Protocol,HTTP)为基础,为用户提供界面一致的信息浏览系统。在WWW服务系统中,信息资源以页面(也称网页或Web页面)的形式存储在服务器(通常称为Web站点)中,这些页面采用超文本方式对信息进行组织,通过链接将一页信息链接到另一页信息。这些相互链接的页面信息既可放置在同一主机上,也可放置在不同的主机上。页面到页面的链接信息由统一资源定位符(Uniform Resource Locator,URL)维持,用户通过客户端应用程序(即浏览器)向WWW服务器发出请求,服务器根据客户端的请求内容将保存在服务器中的某个页面返回给客户端,浏览器接收到页面后对其进行解释,最终将图、文、声并茂的画面呈现给用户。
与其他服务相比,WWW服务具有其鲜明的特点。它具有高度的集成性,能将各种类型的信息(如文本、图像、声音、动画、视频等)与服务(如News、FTP、Gopher等)紧密连接在一起,提供生动的图形用户界面。WWW不仅为人们提供了查找和共享信息的简便方法,还为人们提供了动态多媒体交互的最佳手段。
总的来说,WWW服务具有以下主要特点。
·以超文本方式组织网络多媒体信息。
·用户可以在世界范围内任意查找、检索、浏览及添加信息。
·提供生动直观、易于使用、统一的图形用户界面。
·服务器之间可以相互链接。
·可访问图像、声音、影像和文本信息。
(2)WWW服务器
WWW服务器可以分布在互联网的各个位置,每个WWW服务器都保存着可以被WWW客户机共享的信息。WWW服务器上的信息通常以页面(也称为Web页面)的方式进行组织。页面一般都是超文本文档,也就是说,除了普通文本外,它还包含指向其他页面的指针(通常称这个指针为超链接)。利用Web页面上的超链接,可以将WWW服务器上的一个页面与互联网上其他服务器的任意页面进行关联,使用户在检索一个页面时,可以方便地查看与其相关页面。
超链接不但可以将一个Web页面与另一个Web页面进行关联,而且可以将一个Web页面与图形图像、音频、视频等多媒体信息进行关联,形成所谓的超媒体信息。WWW服务器不但需要保存大量的Web页面,而且需要接收和处理浏览器的请求,实现HTTP服务器功能。通常情况下,WWW服务器通常在TCP的常用端口80侦听来自WWW浏览器的连接请求。当WWW服务器接收到浏览器对某一页面的请求信息时,服务器搜索该页面,并将该页面返回给浏览器。
(3)WWW浏览器
WWW的客户机程序称为WWW浏览器,它是用来浏览服务器中Web页面的软件。在WWW服务系统中,WWW浏览器负责接收用户的请求(例如,用户的键盘输入或鼠标输入),并利用HTTP将用户的请求传送给WWW服务器。在服务器请求的页面送回到浏览器后,浏览器再将页面进行解释,显示在用户的屏幕上。
浏览器的结构由一个控制单元和一系列的客户机单元、解释单元组成。控制单元是浏览器的中心,它协调和管理客户机单元和解释单元。控制单元接收用户的键盘或鼠标输入,并调用其他单元完成用户的指令。例如,用户输入了一个请求某一 Web页面的命令或用鼠标单击了一个超链接,控制单元接收并分析这个命令,然后调用HTML客户机单元并由客户机单元向WWW服务器发出请求。当服务器返回用户指定的页面后,控制单元再调用HTML解释器解释该页面,并将解释后的结果通过显示驱动程序显示在用户的屏幕上。通常,利用WWW浏览器,用户不仅可以浏览WWW服务器上的Web页面,而且可以访问互联网中的其他服务器和资源(例如FTP服务器、Gopher服务器等)。当用户访问这些服务器和资源时,控制单元将调用其他的客户机单元和解释单元,完成其资源的请求和解释工作。
浏览器软件应具备的主要功能如下。
·通过键盘指定请求的页面。通过键盘指定需要访问的页面是最传统、最有效的方法之一。
·利用浏览器显示的超链接指定页面。浏览器通常以加亮或加下划线方式显示还有超链接的文字内容,用户可以简单地单击这段文字请求另一个页面。当然,图像或图标也可以带有超链接,用户也可以通过单击来指定下一个页面。
·历史与书签功能。当用户使用历史(History)命令时,能得到最后访问过的一些页面。实际上,History命令只记录一个用户最新访问过的页面地址列表。书签(Bookmark)命令能够提供更多的网页地址的记录。当用户将一个网页地址加入书签表中时,只要用户不将它移出或更换,它将一直被保留在书签中。
·自由定制浏览器窗口。浏览器窗口通常是可以定制的,用户可以根据自己的喜好选择浏览器窗口的样式(如是否显示工具按钮等)。
·选择起始页。起始页是打开窗口后第一个在屏幕中出现的页面。用户可以自行设置和修改起始页,也可以随时将起始页恢复到默认状态(Default)。
·图像的下载与显示。通常,图像与文本、表格等元素是同时显示在页面上的。与文本相比,图像的字节数一般较大,因此图像传输的时间也较长。为此,浏览器允许用户将图像的下载方式设置为不下载不显示,取而代之,在图像处显示一个小小的标记。当用户单击这一标记时,浏览器再下载和显示该图像。
·保存与打印页面。一般的浏览器软件都提供了将页面作为一个文件保存到用户计算机中的功能。用户可以将一个页面保存为一个磁盘文件,而不是将该网页显示在屏幕上。当将这个文件存入磁盘后,用户可以正常打开文件的方式显示页面。另外,用户也可以根据需要打印当前网页。
·缓存功能。目前的WWW浏览器通常都具有缓存功能,它将近期访问过的Web页面存放在本地磁盘中。当用户通过键盘或鼠标请求一个页面时,浏览器首先从本地缓冲区中进行查找,只要缓冲区中保存有该页面而且该页面没有过期,浏览器就不再请求远程的WWW服务器。当然,浏览器需要一定的机制保证缓存区中页面的有效性。一旦发现过期的页面,立即将其删除,以免造成缓冲区中的页面与远程服务器中的页面不一致。
(4)页面地址和URL
互联网中存在着众多的WWW服务器,而每台WWW服务器中又包含很多页面,那么用户如何指明要请求和获得的页面呢?这就要求助于统一 URL了。利用URL,用户可以指定要访问什么协议类型的服务器、互联网上的哪台服务器及服务器中的哪个文件。URL一般由协议类型、主机名和路径及文件名3部分组成。例如,南开大学网络实验室WWW服务器中一个页面的URL如图2-11所示。
图2-11 URL示意图
其中,http:指明要访问的服务器为WWW服务器;nankai.edu.cn指明要访问的服务器的主机名,主机名可以是该主机的IP地址,也可以是该主机的域名;而/index.html指明要访问页面的路径及文件名。
实际上,URL是一种较为通用的网络资源定位方法。除了指定http:访问WWW服务器之外,URL还可以通过指定其他协议类型访问其他类型的服务器。例如,可以通过指定ftp:访问FTP文件服务器,通过指定gopher:访问Gopher服务器。在WWW服务系统中,可以使用忽略路径及文件名的URL指定WWW服务器上的默认页面。例如,如果浏览器请求的页面为http://csairk.com/,那么,服务器将使用它的默认页面(文件名通常为index.html或default.html)进行响应。
8.FTP
文件传输协议(FTP)是因特网上使用得最为广泛的协议之一,它提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件,很早就成了因特网的正式标准。
与大多数因特网服务一样,FTP也采用客户机/服务器模式,客户机与服务器之间利用TCP建立连接。与其他客户机/服务器模式不同,FTP客户机和服务器之间要建立双重连接,一个是控制连接,一个是数据连接。
FTP是一个交互式会话系统,控制连接用于维持会话,负责在客户机和服务器之间传送FTP命令和响应。利用控制连接,客户机可以向服务器发出多次数据传输请求,对于每次数据传输请求,客户机和服务器之间要建立一个独立的数据连接,进行实际的数据传输。
FTP服务器选用用户账号来控制用户对服务器的访问权限。用户在访问FTP服务器之前必须先登录,登录时要求用户给出用户在FTP服务器上的合法账号和密码。只有成功登录的用户才能访问该FTP服务器,并对授权的目录进行访问。FTP的这种工作方式限制了因特网上一些公用文件及资源的发布,为此因特网上的多数FTP服务器都提供了一种匿名FTP服务。
目前大多数提供公共资料的FTP服务器都提供匿名FTP服务,因特网用户可以随时访问这些服务器而不需要预先向服务器申请账号。当用户访问提供匿名服务的FTP服务器时,用户登录时一般不需要输入账号和密码或使用匿名账号和密码。匿名账户和密码是公开的,如果没有特殊声明,通常用anonymous作为账号,用guest作为密码,有些FTP服务器会要求用户输入自己的电子邮件地址作为密码。如果FTP服务器不使用anonymous和guest作为账号和密码,那么在用户登录时FTP服务器会告诉用户使用该FTP服务器匿名服务的方法。
匿名FTP服务是目前因特网上发布软件的常用方法。当FTP服务器提供匿名FTP服务时会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。为了保证FTP服务器的安全性,几乎所有的匿名FTP服务器都只允许用户从其下载文件,而不允许用户向其上传文件。即使此匿名FTP服务器确实允许用户上传文件,用户也只能将文件上传至某一指定目录。随后,系统管理员会检查这些文件,将这些文件移至另一个公共下载目录中,供其他用户下载。
9.DHCP
在一个TCP/IP网络中,每一台计算机都必须至少有一个IP地址,才能与其他计算机连接通信。为了便于统一规划和管理网络中的IP地址,动态主机配置协议(DHCP)应运而生了。这种网络服务有利于对局域网中的客户机IP地址进行有效管理,而不需要一个一个手动指定IP地址。
DHCP允许计算机快速动态地获得IP地址,即动态分配IP地址的机制。DHCP支持三种类型的IP地址分配方式,分别为自动分配、动态分配和手工分配。
·自动分配,即DHCP给主机指定一个永久的IP地址。
·动态分配,即DHCP给主机指定一个有时间限制的IP地址。
·手工分配,即主机IP地址实际上是由网络管理员指定的,DHCP只是把这个指定的IP地址传递给主机。显然,动态分配可以回收IP,在IP不够用的情况下是一个较好的选择。
10.Telnet协议
在分布式计算环境中,常常需要远程计算机同本地计算机协同工作,利用多台计算机来共同完成一个较大的任务。这种协同工作操作的工作方式要求用户能够登录到远程计算机,启动某些远程进程,并使进程之间能够相互通信。为了达到这个目的,人们开发了远程终端协议,即Telnet协议。Telnet协议是TCP/IP协议的一部分,它精确地定义了本地客户机与远程服务器之间的交互过程。
远程登录是因特网最早提供的基本服务功能之一。因特网中的用户远程登录是指用户使用Telnet命令,使自己的计算机暂时成为远程计算机的一个仿真终端的过程。一旦用户计算机成功地实现了远程登录,就可以像一台与远程计算机直接连接的本地终端一样工作。
远程登录允许任意类型的计算机之间进行通信。远程登录之所以能拥有这种功能,主要是因为所有的运行操作都是在远程计算机上完成的,用户的计算机仅仅是作为一台仿真终端向远程计算机传送击键命令信息和显示命令的执行结果。
利用因特网提供的远程登录服务可以实现以下几种功能。
·本地用户与远程计算机上运行的程序交互。
·用户登录到远程计算机时,可以执行远程计算机上的任何应用程序(只要该用户具有足够的权限),并且能屏蔽不同型号计算机之间的差异。
·用户可以利用个人计算机去完成许多只有大型计算机才能完成的任务。
Telnet采用了客户机/服务器模式,在远程登录过程中,用户的实终端(Real Terminal)采用用户终端的格式与本地Telnet客户机进程通信;远程主机采用远程系统的格式与远程Telnet服务器进程通信。通过TCP连接,Telnet客户机进程与Telnet服务器进程之间采用了网络虚拟终端(NVT)标准来进行通信。网络虚拟终端格式将不同的用户本地终端格式统一起来,使得各个不同的用户终端格式只跟标准的网络虚拟终端格式打交道,而与各种不同的本地终端格式无关。Telnet客户机进程与Telnet服务器进程一起完成用户终端格式、远程主机系统格式与标准网络虚拟终端格式的转换。
11.电子邮件协议
电子邮件系统采用客户机/服务器工作模式。电子邮件服务器(有时简称为邮件服务器)是邮件服务系统的核心,它的作用与人工邮递系统中邮局的作用非常相似。邮件服务器一方面负责接收用户送来的邮件,并根据邮件所要发送的目的地址,将其传送到对方的邮件服务器中;另一方面则负责接收从其他邮件服务器发来的邮件,并根据收件人地址将邮件分发到各自的电子邮箱(可简称为邮箱)中。
电子邮箱是在邮件服务器中为每个合法用户开辟的一个存储用户邮件的空间,类似于人工邮递系统中的信箱。电子邮箱是私人的,拥有账号和密码属性,只有合法用户才能阅读邮箱中的邮件。
电子邮件系统中,用户发送和接收邮件需要借助于装载在客户机中的电子邮件应用程序来完成。电子邮件应用程序一方面负责将用户要发送的邮件传送到邮件服务器,另一方面负责检查用户邮箱,读取邮件。因而,电子邮件应用程序的两项最基本的功能如下。
·创建和发送邮件。
·接收、阅读和管理邮件。
除此之外,电子邮件应用程序通常还提供通讯簿管理、收件箱助理及账号管理等附加功能。
在TCP/IP互联网中,邮件服务器之间使用简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)相互传递电子邮件。而电子邮件应用程序使用SMTP协议向邮件服务器发送邮件,使用POP3(Post Office Protocol)或IMAP(Interactive Mail Access Protocol)从邮件服务器的邮箱中读取邮件。目前,尽管IMAP是一种比较新的协议,但支持IMAP协议的邮件服务器并不多,大量的服务器仍然使用POP3。
传统的邮政系统要求发信人在信封上写清楚收件人的姓名和地址,这样,邮递员才能为其投递信件。互联网上的电子邮件系统也要求用户有一个电子邮件地址。TCP/IP互联网上电子邮件地址的一般形式为Local-part@domain-name,这里@把邮件地址分成两部分,其中,domain-name是邮件服务器(有时也称为邮件交换机)的域名,而local-part则表示邮件服务器上的用户邮箱名。例如,南开大学网络实验室的一台邮件服务器的域名为csai.cn,如果这台服务器上有一个名为johnny的用户邮箱,那么,这个用户的电子邮件地址就是johnny@csai.cn。实际上,所谓的用户邮箱就是邮件服务器为这个用户分配的一块存储空间。
从电子邮件地址的一般形式看,只要保证邮件服务器域名在整个电子邮件系统中是唯一的,用户邮箱名在这台邮件服务器上是唯一的,就可以保证电子邮件地址在这个互联网上是唯一的。
电子邮件系统在投递电子邮件时,需要利用域名系统将电子邮件地址中的域名转换成邮件服务器的IP地址。一旦有了IP地址,电子邮件系统就知道需要把邮件送到哪里了。当目的邮件服务器收到邮件后,取出电子邮件地址中的本地部分,据此将邮件放入合适的用户邮箱。
电子邮件系统不仅支持两个用户之间的通信,而且可以利用所谓的邮寄列表(MailingList)向多个用户发送同一邮件。邮寄列表是一组电子邮件地址,这组电子邮件地址有一个共同的名称,即别名。发给该别名的邮件会自动分发到它所包含的每一个电子邮件地址。
12.IPv6协议
网络层协议IPv4是因特网核心协议。它的成功应用推进了因特网的迅猛发展,企业通过因特网来发布信息,个人通过因特网来轻松获取所需信息,因特网几乎已经成为我们这一代人生活中最不可缺少的一部分。而且近些年来,因特网接入的用户数量还在不断地增长,这样IPv4地址不足的问题也显得越来越严重。虽然IPv4协议拥有40多亿(232 )个IP地址,但是由于IPv4协议对IP地址分类策略使得可供外部可分配使用的IP地址却没有这么多。目前可用的IPv4地址已经基本分配完毕,而且由于因特网最早是从美国发展起来的,他们把大部分 IPv4地址都留给了自己,留给发展中国家的地址却很少,但正是这些发展中国家(如中国、印度)的因特网应用目前正以前所未有的速度发展壮大。所有的这一切(还有IPv4的移动性和安全性等方面的不足)都迫切需要开发出新一代互联网的网络层IP协议,特别是发展中国家。
为了彻底解决互联网的地址危机,互联网工程任务组(IETF)早在20世纪90年代中期就提出了拥有128位地址的IPv6互联网协议,并在1998年进行了进一步的标准化工作。除了对地址空间的扩展以外,还对IPv6地址的结构做了全新的定义,而且IPv6的地址分配方案优于IPv4协议,它提供了自动配置以及对移动性和安全性的更好支持等新的特性。目前IPv6的主要协议都已经过全世界众多专家长时间的讨论,成熟后形成了RFC标准,它作为新一代互联网的网络层标准的地位已经得到了世界的一致的认可。而且国外各大通信设备厂商都在IPv6的应用与研究方面投入了大量的资源,并开发出了相应的软硬件。
(1)IPv6地址特点
IPV6对IPv4的主要改进如下。
1)扩展地址
把原来32位地址扩展到128位,采用16进制表示,每四位构成一组,每组间用一个冒号隔开。为了更好地将IPv4过渡到IPv6,IPv6提供了两类嵌有IPv4地址的特殊地址,分别为0000:0000:0000:0000:0000:FFFF:xxxx:xxxx或0000:0000:0000:0000:0000:0000:xxxx:xxxx,其中xxxx:xxxx是原来的IPv4的IP地址。在IPv6中有两个特殊了地址:一个是全0,表示未指定地址;另一个是0:0:0:0:0:0:0:1,表示回环(Loopback)地址。
2)简化的报头
IPv6的报头共有8个字段,总长为40字节;而IPv4的报头则包含至少12个字段,长度在没有选项时为20字节,有选项时达60字节。IPv6采用固定格式的报头减少了需要检查和处理的字段的数量,提高选路效率。
3)对扩展和选项支持的改进
IPv4可以在IP的尾部加入选项,则IPv6则将选项加到单独的扩展头中。
4)流标志
IPv4对所有的包大致同等对待,这意味着每个包都是由中间路由器按照自己的方式来处理。而路由器并不跟踪任意两台主机间发送的包,因此不能“记住”如何对将来的包进行处理。而IPv6中引入了流概念,可以对流中的包进行高效处理。
5)身份验证和保密
IPv6使用了两种安全性扩展,即IP身份验证头和IP封装安全性净荷。
(2)IPv6地址表示
IPv6地址为128位长,但通常写作8组每组4个十六进制数的形式。例如,2001:0db8:85a3:08d3:1319:8a2e:0370:7344是一个合法的IPv6地址。
如果4个数字都是零,则可以被省略。例如,2001:0db8:85a3:0000:1319:8a2e:0370:7344等价于2001:0db8:85a3::1319:8a2e:0370:7344。
遵守这些规则,如果因为省略而出现了两个以上的冒号,则可以压缩为一个,但这种零压缩在地址中只能出现一次。因此:
2001:0DB8:0000:0000:0000:0000:1428:57ab
2001:0DB8:0000:0000:0000::1428:57ab
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:0DB8::1428:57ab
以上都是合法的地址,并且它们是等价的。同时前导的零可以省略,因此,2001:0DB8:02de::0e13等价于2001:DB8:2de::e13。
如果这个地址实际上是IPv4的地址,后32位可以用十进制数表示。因此,ffff:192.168.89.9等价于ffff:c0a8:5909。