目录
6.1网络应用模型
6.1.1客户/服务器模型
在客户/服务器(Client/Server,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。其工作流程如下:
1)服务器处于接收请求的状态。
2)客户机发出服务请求,并等待接收结果。
3)服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。
服务器上运行着专门用来提供某种服务的程序,可以同时处理多个远程或本地客户的请求。客户程序必须知道服务器程序的地址。服务器启动后就一直不断地运行着,被动等待并接收来自各地客户的请求。因此,服务器程序不需要知道客户程序的地址。
客户/服务器模型最主要的特征是:客户是服务请求方,服务器是服务提供方。如Web应用程序,其中总是打开的Web服务器服务于运行在客户机上的浏览器的请求。当Web服务器接收到来自客户机对某对象的请求时,它向该客户机发送所请求的对象以做出响应。使用客户/服务器模型的常见应用包括Web、文件传输协议(FTP)、远程登录和电子邮件等。
客户/服务器模型的主要特点还有:
1)网络中各计算机的地位不平等,服务器可通过对用户权限的限制来达到管理客户机的目的。整个网络的管理工作由少数服务器负责,因此网络的管理非常集中和方便。
2)客户机相互之间不直接通信。例如,在Web应用中两个浏览器并不直接通信。
3)可扩展性不佳。受服务器硬件和网络带宽的限制,服务器支持的客户机数量有限。
6.1.2 P2P模型
在CS模型中(图6.1),服务器性能的好坏决定了整个系统的性能,当大量用户请求服务时,服务器就必然成为系统的瓶颈。P2P模型(见图6.2)的思想是整个网络中的传输内容不再被保存在中心服务器上,每个节点都同时具有下载、上传的功能,其权利和义务都是大体对等的。
在P2P模型中,各计算机没有固定的客户和服务器划分。相反,任意一对计算机——称为对等方(Peer),直接相互通信。实际上;P2P模型从本质上来看仍然使用客户/服务器模型,每个节点既作为客户访问其他节点的资源,又作为服务器提供资源给其他节点访问。与C/S模型相比,P2P模型的优点主要体现如下:
1)减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个节点上,因此大大提高了系统效率和资源利用率。
2)多个客户机之间可以直接共享文档。
3)可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求。
4)网络健壮性强,单个节点的失效不会影响其他部分的节点。
P2P模型也有缺点。在获取服务的同时,还要给其他节点提供服务,因此会占用较多的内存,影响整机速度。例如,经常进行P2P下载还会对硬盘造成较大的损伤。据某互联网调研机构统计,某些年份P2P程序占了互联网50%~90%的流量,使网络变得非常拥塞,因此各大ISP(互联网服务提供商,如电信、网通等)通常都对P2P应用持反对态度。
6.2域名系统
域名系统(Domain Name System,DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.cskaoyan.com)转换为便于机器处理的IP地址。相对于IP地址,人们更喜欢使用具有特定含义的字符串来标识因特网上的计算机。DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口。从概念上可将DNS分为三部分:层次域名空间、域名服务器和解析器。
6.2.1层次域名空间
因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名(Domain Name)。域(Domain)是名字空间中一个可被管理的划分。域可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。每个域名都由标号序列组成,而各标号之间用点(“.”)隔开。一个典型的例子如图6.3所示,它是王道论坛用于提供WWW服务的服务器的域名,它由三个标号组成,其中标号com是顶级域名,标号cskaoyan是二级域名,标号www是三级域名。
关于域名中的标号有以下几点需要注意:
1)标号中的英文不区分大小写。
2)标号中除连字符(-)外不能使用其他的标点符号。
3)每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符。
4)级别最低的域名写在最左边,级别最高的顶级域名写在最右边。
顶级域名(Top Level Domain,TLD)分为如下三大类:
1)国家(地区)顶级域名(nTLD)。国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国,“.uk”表示英国。
2)通用顶级域名(gTLD)。常见的有“.com"(公司)、“net”(网络服务机构)、“.org”(非营利性组织)、“.edu”(教育机构)、和“.gov”(国家或政府部门)等。
3)基础结构域名(arpa)。用于反向域名解析,即IP地址反向解析为域名。
在域名系统中,各级域名由其上一级的域名管理机构管理,顶级域名由因特网名称与数字地址分配机构(ICANN)管理。国家顶级域名下注册的二级域名均由该国家自行确定,每个组织都可以将它的域再分成一定数量的子域,并将这些子域委托给其他组织去管理。例如,管理cn域的中国将edu.cn子域授权给中国教育和科研计算机网(CERNET)来管理。
6.2.2域名服务器
域名到IP地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)范围称为区(小于或等于域),一个区中的所有节点必须是能够连通的,每个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。每个域名服务器不但能够进行一些域名到IP地址的解析,而且必须具有连向其他域名服务器的信息。当自己不能进行域名到IP地址的转换时,能够知道到什么地方去找其他域名服务器。
DNS使用了大量的域名服务器,它们按层次方式组织。没有一台域名服务器具有因特网上所有主机的映射,相反,该映射分布在所有的域名服务器上。有4种类型的域名服务器。
1.根域名服务器
根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。根域名服务器是最重要的域名服务器,不管是哪个本地域名服务器,要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。因特网上有13个根域名服务器,尽管我们将这13个根域名服务器中的每一个都视为单个服务器,但每个“服务器”实际上是冗余服务器的集群,以提供安全性和可靠性。需要注意的是,根域名服务器用来管辖顶级域(如.com),通常它并不直接将待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询。
2.顶级域名服务器
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)。
3.权限域名服务器(授权域名服务器)