目录
C/S方式描述的是进程之间服务和被服务的关系,客户和服务器是指通信中所涉及的两个应用进程——客户是服务请求方,它必须知道服务器的地址,服务器是服务提供方,不需要知道客户的地址
服务器总是处于运行状态,并等待客户的服务请求,具有固定端口号(例如HTTP服务器的默认端口号为80),而运行服务器的主机也具有固定的IP地址。
C/S方式是因特网上传统的、同时也是最成熟的方式,包括万维网WWW.电子邮件、文件传输FTP等使用的都是这种方式
在P2P方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,称为对等方。对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者,所以从本质上看,P2P仍为C/S方式。
域名系统DNS是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.kaoyan.com)转换为便于机器处理的IP地址。DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口。
因特网采用层次树状结构的域名结构,域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。
·域名格式
1)每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。
2)级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。
3)完整的域名不超过255个字符。
·三大顶级域名
1)国家顶级域名(nTLD) 国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国。
2)通用顶级域名(gTLD) 常见的有“.com”(公司)、“.net" (网络服务机构)、“.org”(非营利性组织)和“gov" (国家或政府部门)等。
3)基础结构城名 该顶级域名只有一个,即arpa, 用于反向域名解析,又称反向域名。
·域名空间的树状结构
【注】:名称相同的域名其等级未必相同,如.com为顶级域名,但我国顶级域名cn下也有名为.com的二级域名
域名和IP地址的映射关系保存在域名服务器中,供所有其他应用查询。但不能将所有信息都储存在一台域名服务器中,DNS使用分布在各地的域名服务器实现域名到IP地址的转换。
·根域名服务器
根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器。由许多分布在世界各地的计算机服务器群集构成。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址
·顶级域名服务器
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。
·权限域名服务器
权限域名服务器这些域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,它还知道其下级域名服务器的地址。
·本地域名服务器
本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起代理的作用,会将该报文转发到上述的域名服务器的等级结构中。它有时也称为默认域名服务器,离用户较近一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需直接配置在需域名解析的主机中。
·递归查询(负载过大几乎不使用)
·递归+迭代
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪个顶级域名服务器进行查询”。然后让本地域名服务器向这个顶级域名服务器进行后续的查询
FTP是因特网上使用得最广泛的文件传输协议,提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,因而适合于在异构网络中的任意计算机之间传送文件。
FTP提供以下功能:
①提供不同种类主机系统(硬、软件体系都可以不同)之间的文件传输能力。
②以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力。
③以匿名FTP的方式提供公用文件共享的能力
FTP采用C/S方式,使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程负责接收新的请求;另有若干从属进程负责处理单个请求。工作步骤:
①打开熟知端口21 (控制端口),使客户进程能够连接上。
②等待客户进程发连接请求。
③启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客
户进程的请求处理完毕后即终止。
④回到等待状态,继续接收其他客户进程的请求。
FTP服务器必须在整个会话期间保留用户的状态信息。特别是服务器必须把指定的用户账户
与控制连接联系起来,服务器必须追踪用户在远程目录树上的当前位置。
·控制连接
建立在21端口上的连接称为控制连接,服务器监听21号端口等待客户连接,用来传输控制信息(如连接请求、传送请求等),控制信息都以7位ASCII格式传送。FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。
在传输文件时还可能使用到控制连接(当客户在传输中途发一个中止传输的命令),因此控制连接在整个会话期间一直保持打开状态。
·数据连接
服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就创建“数据传送进程”和
“数据连接”。数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
数据连接有两种传输模式:主动模式PORT和被动模式PASV:
PORT模式:客户端连接到服务器的21 端口,登录成功后要读取数据时,客户端随机开放一个端口,并发送命令告知服务器,服务器收到PORT命令和端口号后,通过20端口和客户端开放的端口连接发送数据。
PASV模式客户端要读取数据时,发送PASV命令到服务器,服务器在本地随机开放一个端口,并告知客户端,客户端再连接到服务器开放的端口进行数据传输。
用PORT模式还是PASV模式,选择权在客户端。主动模式传送数据是服务器连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。
·Def:电子邮件采用异步通信方式,通信时不需双方同时在场。电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器读取。
·组成结构
电子邮件系统具有用户代理(User Agent)、邮件服务器和电子邮件协议(SMTP、POP3、IMAP)三个主要的组成构件:
①用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件。
②邮件服务器是电子邮件系统的基础设施。因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱。
③协议包括邮件发送协议(SMTP) 和邮件读取协议(POP3, IMAP)
·简单邮件协议SMTP
SMTP是一种提供可靠且有效的电子邮件传输的协议,它控制两个相互通信的SMTP进程交换信息。SMTP使用客户/服务器方式,因此负责发送邮件的SMTP进程就是SMTP客户,而负责接收邮件的SMTP进程就是SMTP服务器。SMTP用的是TCP连接,端口号为25。
SMTP通信有连接建立、邮件传送、连接释放三个阶段:
·邮局协议POP3
邮局协议POP , POP3是第三个版本,非常简单、功能有限的邮件读取协议。POP也使用C/S方式,在传输层使用TCP,端口号为110。用户只能以下载并删除方式或下载并保留方式从邮件服务器下载邮件到用户方计算机。不允许在邮件服务器上管理自己的邮件。(如创建文件夹, 对邮件进行分类管理等)。
·因特网报文存取协议IMAP
因特网邮件访问协议IMAP ,IMAP4是第四个版本,是功能比POP3强大的邮件读取协议。用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,因此IMAP是联机协议。
·格式内容
一个电子邮件分为信封和内容两大部分,邮件内容又分为首部和主体两部分。
RFC 822规定邮件的首部格式,主体部分则让用户自由撰写。用户写好首部后,邮件系统自动地将信封所需的信息提取并写在信封上。
邮件内容的首部包含一些首部行,每个首部行由一个关键字后跟冒号再后跟值组成。有些关键字是必需的,有些则是可选的。
To是必需的关键字,后面填入一个或多个收件人的电子邮件地址。电子邮件地址的规定格式为:收件人邮箱名@邮箱所在主机的域名,这也就保证了这个邮件地址在整个因特网上是唯一的。
Subject是可选关键字,是邮件的主题主要内容。
From是必须关键字,但它通常由邮件系统自动填入。
·多用途网际邮件扩充MIME
由于SMTP不能满足传送多媒体邮件(如带有图片、音视频数据)的需要,且许多其他非英语国家的文字也无法用SMTP传送。为解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME,主要包括:
①增加了5个新的邮件首部字段,这些字段提供了有关邮件主体的信息。
②定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
③定义了传送编码, 可对任何内容格式进行转换,而不会被邮件系统改变。
·Def:万维网 WWW是一个分布式、联机式的信息存储空间。
空间中一样有用的事物称为一样“资源”,由一个全域统一资源定位符URL标识。
这些资源通过超文本传输协议HTTP传送给使用者,而后者通过单击链接来获取资源。链接能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取信息。
超文本标记语言HTML使得万维网页面的设计者可以很方便地用一个超链接从本页面的某处链接到因特网上的任何一个万维网页面,并能够在自己的计算机屏幕上显示这些页面。
·万维网的内核组成
1)统一资源定位符URL 负责标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符URL。
URL是对可从因特网上得到的资源的位置和访问方法的种简洁表示。相当于一个文件名在网络范围的扩展。一般形式是:
<协议>指用什么协议来获取万维网文档,常见的协议有http、 ftp 等;
<主机>是存放资源的主机在因特网中的域名或IP地址;
<端口>和<路径>有时可省略,在URL中不区分大小写。
2)超文本传输协议HTTP 一个应用层协议,它使用TCP连接进行可靠的传输,是万维网客户程序和服务器程序之间交互所必须严格遵守的协议。
3)超文本标记语言HTML 一种文档结构的标记语言,它使用一些约定的标记对页面上的各信息(包括文字、声音、图像、视频等)、格式进行描述。
·万维网的工作过程
万维网以C/S方式工作。浏览器是在用户主机上的万维网客户程序,万维网文档所驻留的主机运行服务器程序,这台主机称为万维网服务器。客户程序向服务器程序发出请求, 服务器程序向客户程序送回客户所要的万维网文档。工作流程:
1) Web用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求。
2)Web服务器把URL转换为文件路径,并返回信息给Web浏览器。
3)通信完成,关闭连接。
HTTP定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。
·工作过程
浏览器要访问WWW服务器时,首先要对WWW服务器的域名解析,一旦获得了服务器的IP地址,浏览器就通过TCP向服务器发送连接建立请求。
每个万维网站点都有一个服务器进程,不断地监听TCP的端口80 (默认),当监听到连接请求后便与浏览器建立TCP连接。然后浏览器就向服务器发送请求获取某个Web页面的HTTP请求。服务器收到请求后,将构建所请求Web 页的必需信息,并通过HTTP响应返回给浏览器。浏览器再将信息进行解释,然后将Web页显示给用户。最后,TCP连接释放。
·HTTP报文
HTTP是面向文本的,报文中的每一个字段都是一些ASCII码串, 每个字段长度都是不确定的。
1) 开始行:用于区分是请求报文还是响应报文。在请求报文中称为请求行,而在响应报文中称为状态行。开始行的三个字段之间都以空格分隔,最后的CR和LF分别代表回车和换行。请求报文的“请求行”有三个内容:方法、请求资源的URL及HTTP的版本。其中方法是对所请求对象进行的操作,这些方法实际上也就是一些命令。请求报文中的常用方法:
2)首部行 用来说明浏览器、服务器或报文主体的一些信息。可以有几行,但也可以不使用。在每个首部行中都有首部字段名和它的值,每行在结束的地方都要有回车和换行。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。
3)实体主体 在请求报文中一般不用这个字段,而在响应报文中也可能没有这个字段。
·特点
1)HTTP使用TCP作为运输层协议,保证了数据的可靠传输,不必考虑数据在传输过程中被丢弃后又怎样被重传。但HTTP本身是无连接的,也就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立ITTP连接。
2)HTTP是无状态的。同一个客户第二次访问同一服务器上的页面时,服务器的响应与第一次被访问时的相同。因为服务器并不记得曾经访问过这个客户,也不记得为该客户曾经服务过多少次。
3)非持久连接与持久连接
HTTP/1.0采用非持续连接方式。该方式下每次浏览器要请求一个文件都要与服务器建立TCP连接,当收到响应后就立即关闭连接。
每请求一个文档就要有两倍的RTT的开销。若一个网页上有很多引用对象 (如图片等),那么请求每一个对象都要花费2RTT的时间。
为了减小时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象。 但这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重。
HTTP/1.1采用持续连接方式。该方式下万维网服务器在发送响应后仍然保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行。
HTTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。这样的一个接一个的请求报文到达服务器后,服务器就发回一个接一个的响应报文。节省了很多个RTT时间,使TCP连接中的空闲时间减少,提高下载文档的效率。