第四章 Internet 基本服务
1. 客户机/服务器模式
在分布式计算中,这种一个应用进程被动地等待,而另一个应用进程通过请求启动通信的模式就是客户机/服务器交互模式。
实际上,客户机( Client)和服务器( Server)分别指两个应用进程。客户机向服务器发出服务请求,服务器作出响应。客户机发出请求, 该请求经互联网传送给服务器。一旦服务器接收到这个请求, 就可以执行请求指定的任务,并将执行的结果经互联网回送给客户机。
2. C/S 模式解决的主要问题
1) 标识一个特定的服务
在 TCP/IP 互联网中, 服务器进程通常使用 TCP 协议或 UDP 协议的端口号作为自己的特定标识。
在服务器进程启动时,它首先在本地主机注册自己使用的 TCP 或 UDP 端口号。
在客户机进程需要访问某个服务时,可以通过与服务器进程使用的 TCP 端口建立连接( 或直接向服务器进程使用的 UDP 端口发送信息)来实现。
2) 响应并发请求
为解决多个请求同时到达服务器的问题。服务器必须具备处理多个并发请求的能力。为此,服务器可以有以下两种实现方案:
重复服务器( Iterative Server) 方案。
① 该方案实现的服务器进程中包含一个请求队列,客户机请求到达后,首先进入队列中等待,服务器按照先进先出( First In First Out) 的原则顺序作出响应。
② 重复服务器对系统资源要求不高,重复服务器解决方案一般用于处理可在预期时间内处理完的请求,针对面向无连接的客户机/服务器模型。
并发服务器( Concurrent Server) 方案。
① 并发服务器是一个守护进程( Daemon), 在没有请求到达时它处于等待状态。一旦客户机请求到达,服务器立即再为之创建一个子进程,然后回到等待状态,由子进程响应请求。当下一个请求到达时, 服务器再为之创建一个新的子进程。其中,并发服务器叫作主服务器( Master), 子进程叫作从服务器
( Slave)。
② 并发服务器解决方案具有实时性和灵活性的特点。
③ 并发服务器解决方案通常对主机的软硬件资源要求较高。一般用于处理不可在预期时间内处理完的请求,针对面向连接的客户机/服务器模型。
3) 服务器进程的安全问题
由于服务器进程的特殊地位,它需要经常性地读取系统文件、保存日志、访问保护数据,具有相当高的特权。因此,
它必须承担保障系统安全性的责任,负责实施系统访问和保护策略。
3. 对等计算模型
对等计算( PeertoPeer,P2P)可以简单地定义成通过直接交换来共享计算机资源和服务,而对等计算模型在应用层形成的网络通常称为对等网络。
网络中的每一台计算机既能充当网络服务的请求者,又能对其他计算机的请求作出响应,提供资源与服务。通常这些资源和服务包括:信息的共享与交换、计算资源(如 CPU 的共享)、存储资源( 如缓存和磁盘空间的使用)等。
4. 四种对等计算模型
对等计算模型主要有四种:集中目录式结构、分布式非结构化 P2P 网络结构、分布式结构化 P2P 网络结构和混合式 P2P 网络结构。
集中目录式结构:
① 以一个中心服务器来负责记录共享信息以及回答这些信息的查询。
② 采用集中式拓扑结构的 P2P 系统被称为第一代 P2P 系统,其代表性的软件有 Napster 和 Maze。
分布式非结构化 P2P 网络结构:
① 采用随即图的组织方式形成一个松散的网络;
② 支持复杂查询,比如带有规则表达式的多关键字查询、模糊查询等;
③ 分布式非结构化拓扑的 P2P 网络模型中,每个结点都具有相同的功能, 既是客户机又是服务器, 因而结点也被称为对等点;
④ 这种拓扑的网络中多采用洪泛方式查询和定位资源;
⑤ 釆有分布式非结构化拓扑的P2P 即时通信软件的典型代表有Gnutella、Shareaza、LimeWire 和BearShare。
分布式结构化P2P 网络结构:
① 采用基于 DHT(分布式散列表)的分布式算法和路由算法组成一个网络结构;
② 目前采用分布式结构化拓扑的 P2P 网络系统有 Pastry、Tapestry、Chord 和CAN。
混合式 P2P 网络结构:
① 混合式结合了集中式和分布式 P2P 网络的优点进行优化网络结构。
② 混合式拓扑的P2P 网络系统有 Skype、Kazaa、eDonkey、BitTorrent 和 PPLive。5.混合式 P2P 网络 3 种结点
●用户结点。
普通的结点就是用户结点,它不具有任何特殊的功能。
●搜索结点。
搜索结点处理搜索请求,从其子结点中搜索文件列表。这些结点必须有较高的网络连接速度,而且往往需要采用高性能的处理器。
●索引结点。
① 要以连接速度快、内存充足的结点作为索引结点。
② 索引结点保存可以利用的搜索结点信息、搜集状态信息以及尽力维护网络的结构。
③ 一个结点既可以是搜索结点又可以是索引结点。
6. 层次型命名机制
层次型命名机制( Hierarchy Naming) 就是在名字中加入结构, 而这种结构是层次型的。
层次型命名机制将名字空间划分成一个树状结构,树中的每一结点都有一个相应的标识符,主机的名字就是从树叶到树根(或从树根到树叶)路径上各结点标识符的有序序列。
7. TCP/IP 互联网域名
在 TCP/IP 互联网中所实现的层次型名字管理机制叫作域名系统( Domain Name System,DNS)。
l 域名系统的命名机制叫作域名(DomainName)。完整的域名由名字树中的一个结点到根结点路径上结点标识符的有序序列组成,其中结点标识符之间以“.” 隔幵。
例:域名“ cs.nankai.edu.cn”由 cs、nankai、edu 和 cn 四个结点标识符组成( 根结点标识符为空, 省略不写), 这些结点标识符通常被称为标号( Label),而每一标号后面的各标号叫作域( Domain)。 在“ cs.nankai.edu.cn”中,最低级的域为“ cs.nankai.edu.cn”,代表计算机系;第 3 级域为“ nankai.edu.cn”代表南开大学;第二级域为“ edu.cn”, 代表教育机构;顶级域为“ cn”,代表中国。
8. Internet 顶级域名分配
顶级域名 | 分配给 | 顶级域名 | 分配给 | 顶级域名 | 分配给 |
com | 商业组织 | mil | 军事部门 | int | 国际组织 |
edu | 教育机构 | net | 网络支持中心 | 国家代码 | 各个国家 |
gov | 政府部门 | org | 非营利性组织 |
|
|
9. 域名服务器
解析系统的核心是 TCP/IP 域名服务器, 是一组既独立又协作的域名服务器
域名服务器实际上是一个服务器软件,运行在指定的主机上,完成域名-IP 地址映射。有时候, 也把运行域名服务器软件的主机叫作域名服务器,该服务器通常保存着它所管辖区域内的域名与 IP 地址的对照表。
请求域名解析服务的软件叫域名解析器。在 TCP/IP 域名系统中,一个域名解析器可以利用一个或多个域名服务器进行名字映射。
树形的域名服务器的逻辑结构是域名解析算法实现的基础。
l 域名解析釆用自顶向下的算法,从根服务器开始直到叶服务器,在其间的某个结点上一定能找到所需的名字-地址映射。
10. 域名解析的两种方式
递归解析(Recursive Resolution ),要求域名服务器系统一次性完成全部名字-地址变换。
反复解析(Iterative Resolution),每次请求一个服务器,不行再请求别的服务器。11.提高域名解析效率的 3 种方法
1) 解析从本地域名服务器开始
2) 域名服务器的高速缓冲技术
在互联网中,域名服务器采用域名高速缓冲技术可极大地减少非本地域名解析的开销。
为了保证缓冲区中域名-IP 地址映射关系的有效性,通常可以釆用以下两种策略:
① 域名服务器向解析器报告缓冲信息时, 需注明这是“ 非权威性的”( nonauthcmtative) 的映射,
并且给出获取该映射的域名服务器 IP 地址。
② 对高速缓冲区中的每一映射关系都有一个最大生存周期( Time To Live, TTL), 它规定该映射关系在缓冲区中保留的最长时间。一旦某映射关系的 TTL 时间到, 系统便将它从缓冲区中删除。
3) 主机上的高速缓冲技术
高速缓冲机制不仅用于域名服务器,在主机上也可以使用。
12. 域名系统对象类型
类型 | 意义 | 内容 |
SOA | 授权开始 | 标识一个资源记录集合(称为授权区段)的开始 |
A | 主机地址 | 32 位二进制 IP 地址 |
MX | 邮件交换机 | 邮件服务器名及优先级 |
NS | 域名服务器 | 域的授权名字服务器名 |
CNAME | 别名 | 别名的规范名字 |
PTR | 指针 | 对应于 IP 地址的主机名 |
HINFO | 主机描述 | ASCII 字符串, CPU 和 OS 描述 |
TXT | 文本 | ASCII 字符串, 不解释 |
13. 远程登录协议(Telnet)
Internet 中的用户远程登录是指用户使用 Telnet 命令,使自己的计算机暂时成为远程计算机的一个仿真终端的过程。
远程终端协议( Telnet 协议)。它是 TCP/IP 协议的一部分,精确地定义了本地客户机与远程服务器之间的交互过程。
l Telnet 协议引入了网络虚拟终端(Network Virtual Terminal,NVT)为了解决系统的差异性,他提供了一种标准的键盘定义,用来屏蔽不同计算机系统对键盘输入的差异性。
Telnet 采用了客户机/服务器模式
14. FTP 客户机/服务器模型
FTP 采用客户机/服务器模式, 客户机与服务器之间利用 TCP 建立连接。
FTP 是一个交互式会话系统,控制连接用于维持会话,负责在客户机和服务器之间传送 FTP 命令和响应。
FTP 客户机和服务器之间要建立双重连接,一个是控制连接, 一个是数据连接。
① 控制连接以通常的客户机/服务器方式建立。
② 数据连接用于传输数据。
当用户访问提供匿名服务的 FTP 服务器时,匿名账户和密码是公开的,如果没有特殊声明,通常用“ anonymous” 作为账号, 用“ guest” 作为口令。
15. 数据连接建立的两种模式
● 主动模式(一般为默认模式):
当客户机向服务器发出数据传输命令时,客户机在 TCP 的一个随机端口上被动打开数据传输进程,并通过控制连接利用 PORT 命令将客户机的数据传输进程所使用的端口号发送给服务器,服务器在 TCP 的 20 端口上建立一个数据传输进程,并与客户机的数据传输进程建立数据连接。
● 被动模式:
当客户机向服务器发出数据传输命令时,通过控制连接向服务器发送一个 PASV 命令请求进入被动模式。服务器在 TCP 的一个端口上被动打开数据传输进程, 并通过对 PASV 命令的响应将服务器数据传输进程使用的端口通知给客户机。客户机在 TCP 的一个随机端口上以主动方式打开数据传输进程,与服务器端的数据传输进程之间建立数据连接。
16. FTP 常用命令
命 令 | 描 述 |
USER username | 向服务器发送用户名 |
PASS password | 向服务器发送口令 |
PORT n1,n2,n3,n4,n5,n6 | 客户机 IP 地址( n1,n2,n3,n4) 和端口号 |
PASV | 请求使用被动模式建立数据连接 |
LIST filelist | 请求服务器返回当前远程目录下的目录和文件 |
TYP Etype | 说明文件类型: A 表示 ASCII 码, I 表示图像 |
| 命 令 | 描 述 |
|
REST marker | 指明传输文件的起始点 | ||
RETR file name | 检索一个文件 | ||
STOR file name | 存储一个文件 | ||
ABOR | 放弃先前的 FTP 命令和数据传输 | ||
QUIT | 从服务器注销 |
17. FTP 协议文件传输方式
FTP 协议支持两种文件传输方式: 文本文件传输和二进制文件传输。
1) 文本文件传输
FTP 协议支持两种文本文件类型的传输, 即 ASCII 码文件类型和 EBCDIC 文件类型。
ASCII 码文件类型是系统的默认方式, 文本文件以 NVT ASCII 码形式在数据连接中传输。这要求发方将本地文本文件转换成 NVT ASCII 码形式, 而收方则将 NVT ASCII 码再还原成本地文本文件。
EBCDIC 文件类型的文本文件传输要求两端都是采用 EBCDIC 编码的系统。
2) 二进制文件传输
文件系统不对文件格式进行任何变换,按照原始文件相同的位序以连续的比特流方式进行传输,确保拷贝文件与原始文件逐位一一对应。
18. FTP 用户接口命令
命令 | 描述 |
ftp | 进入 ftp 会话 |
quit,bye | 退出 ftp 会话 |
open host [port] | 建立与指定 ftp 服务器的连接, 可指定连接端口 |
close | 中断与服务器 ftp 的连接 |
passive | 进入被动传输方式 |
restart marker | 从指定的标志 marker 处重新开始 get 或 put |
ascii | 使用 ascii 类型传输方式 |
binary | 使用二进制文件传输方式 |
cd remote-dir | 进入远程主机目录 |
cdup | 进入远程主机目录的父目录 |
pwd | 显示远程主机的当前工作目录 |
Is[remote-dir][local-file] | 显 7K 远程目录 remote-dir,并存入本地文件 local-file |
dir[remote-dir][local-file] | 显示远程主机目录,并将结果存入本地文件 local-file |
mk dirdir-name | 在远程主机中建目录 |
rm dirdir-name | 删除远程主机目录 |
get remote-file[local-file] | 将远程主机的文件 remote-file 传至本地硬盘的 local-file |
mge tremote-files | 传输多个远程文件 |
put local-file[remote-file] | 将本地文件 local-file 传送至远程主机 |
mput local-files | 将多个文件传输至远程主机 |
delete remote-file | 删除远程主机文件 |
help[cmd] | 显示 ftp 内部命令 cmd 的帮助信息,如 helpget |
19. 电子邮件系统
电子邮件系统不但可以传输各种文字的文本信息,而且还可以传输图像、声音、视频等多媒体信息。
电子邮件系统釆用客户机/服务器工作模式。
电子邮件应用程序的两项最基本功能为:创建和发送邮件以及接收、阅读和管理邮件。
在 TCP/IP 互联网中,邮件服务器之间使用简单邮件传输协议( Simple Mail Transfer Protocol,SMTP) 相互传递电子邮件。
而电子邮件应用程序使用 SMTP 协议向邮件服务器发送邮件, 使用 POP3( Post Office Protocol) 协议或 IMAP( Interactive Mail Access Protocol) 协议从邮件服务器的邮箱中读取邮件,
目前,尽管 IMAP 是一种比较新的协议,但支持 IMAP 协议的邮件服务器并不多,大量的服务器仍然使用 POP3 协议。
20. 筒单邮件传输协议 SMTP
简单邮件传输协议 SMTP 只规定发送程序和接收程序之间的命令和应答;
SMTP 邮件传输采用客户机/服务器模式;
常用的 SMTP 命令
命令 | 描述 |
HELO<主机域名> | 开始会话 |
MAILFROM:<发送者电子邮件地址> | 开始一个邮递处理,指出邮件发送者 |
RCPTTO:<接收者电子邮件地址> | 指出邮件接收者 |
DATA | 接收程序将 data 命令后面的数据作为邮件内容处 理,直到<CR><LF>.<CR><LF>出现 |
RSET | 中止当前的邮件处理 |
NOOP | 无操作 |
QUIT | 结束会话 |
21. SMTP 邮件传递过程 3 阶段:
1) 连接建立阶段。
在这一阶段, SMTP 客户机请求与服务器的 25 端口建立一个 TCP 连接。一旦连接建立, SMTP 服务器和客户机就幵始相互通拫自己的域名,同时确认对方的域名;
2) 邮件传递阶段。
利用 MAIL、RCPT 和 DATA 命令, SMTP 将邮件的源地址、目的地址和邮件的具体内容传递给 SMTP 服务器, SMTP 服务器进行相应的响应并接收邮件;
3) 连接关闭阶段。
SMTP 客户机发送 QUIT 命令,服务器在处理命令后进行响应,随后关闭 TCP 连接。
22. 邮局协议 POP3
POP3 是邮局协议 POP 的第 3 个主要版本, 它允许用户通过 PC 机动态检索邮件服务器上的邮件;
POP3 只对邮件服务器上的邮件提供下载和删除的操作;
POP3 釆用客户机/服务器模式;
POP3 的命令和响应也采用 ASCII 字符串的形式;
23. 常用的 POP3 命令
命 令 | 描 述 |
USER<用户邮箱名> | 客户机希望操作的电子邮箱 |
PASS<口令> | 用户邮箱的口令 |
STAT | 查询报文总数和长度 |
list[<邮件编号>] | 列出报文的长度 |
RETR<邮件编号> | 请求服务器发送指定编号的邮件 |
DELE<邮件编号> | 对指定编号的邮件作删除标记 |
N00P | 无操作 |
RSET | 复位操作,清除所有删除标记 |
QUIT | 删除具有“删除”标记的邮件,关闭连接 |
24. 用户检索 POP3 过程
1) 认证阶段。
邮件服务器中邮箱具有权限,只有授权才能访问,因此,在 TCP 连接建立之后,通信的双方随即进入认证阶段。客户机程序利用 USER 和 PASS 命令将邮箱名和密码传送给服务器, 服务器据此判断该用户的合法性,并给出相应的应答。一旦用户通过服务器的验证,系统就进入了事务处理阶段;
2) 事务处理阶段。
在事务处理阶段,POP3 客户机可以利用 STAT、LIST、RETR、DELE 等命令检索和管理自己的邮箱,服务器在完成客户机请求的任务后返回响应的命令。但服务器在处理 DELE 命令请求时并未将邮件真正删除, 只是给邮件作了一个特定的删除标记。
3) 更新阶段。
当客户机发送 QUIT 命令时,系统进入更新阶段。POP3 服务器将作过删除标记的所有邮件从系统中全部真正删除,然后 TCP 关闭连接。
25. 电子邮件报文格式
RFC822 和多用途 Internet 邮件扩展协议( Multipurpose Internet Mail Extensions, MIME)对电子邮件的报文格式作出了具体规定。
1) RFC822
RFC822 将电子邮件报文分成两部分,一部分为邮件头( Mail Header),另一部分为邮件体( Mail Body), 两者之间使用空行分隔。
l 邮件头是一些控制信息,如发信人与收信人的电子邮件地址、发送日期等。
l 邮件体是用户发送的邮件内容, RFC822 只规定它是 ASCII 字符串。
l 邮件头由多行组成,每行由一个特定的字符串开始,后面跟有对该字符串的说明,中间用“隔开。
2) 多用途 Internet 邮件扩展协议 MIME
为了使电子邮件能够传输多媒体等二进制信息, MIME 对 RFC822 进行了扩充。
MIME 协议继承了 RFC822 的基本邮件头和邮件体模式,但在此基础上增加了一些邮件头字段,并要求对邮件体进行编码,将 8 位的二进制信息变换成 7 位的 ASCII 文本。
主要增加的邮件头字段包括:
① MIME-Version:表明该邮件遵循 MIME 标准的版本号。目前的主要标准为 1.0。
② Comem-Type:说明邮件体包含的数据类型。MIME 定义了七种邮件体类型和一系列的子类型,这七种类型为: text(文本)、message(报文)、image(图像)、audio(音频)、video(视频)、appli- cation( 应用) 和 multipart( 多部分)。
③ Content-Transfer-Encoding:指出邮件体的数据编码类型。由于电子邮件需要传输多媒体等二进制信息,因此,必须定义一种机制把亡进制数据编码成 7 位 ASCII 文本。MIME 推荐的编码方式包括带引见符的可打印编码(Quoted-Printable) 和基数 64 编码( base64)。
26. Web 的基本概念
Web 是 TCP/IP 互联网上一个完全分布的信息系统,最早由欧洲核物理研究中心的 Tim-Berners Lee 主持开发, 其目的是为研究中心分布在世界各地的科学家提供一个共享信息的平台。
Web 服务采用客户机/服务器工作模式;
它以超文本标记语言 HTML( Hyper Text Mark up Language)与超文本传输协议 HTTP( Hyper Text Transfer Protocol) 为基础, 为用户提供界面一致的信息浏览系统。
在 Web 服务系统中,信息资源以页面( 也称网页或 Web 页面)的形式存储在服务器( 通常称为 Web
站点)中;
页面到页面的链接信息由统一资源定位符 URL( Uniform Resource Locators)维持。
27. Web 浏览器
Web 的客户机程序称为 Web 浏览器( Browser),它是用来浏览服务器中 Web 页面的软件。
从浏览器的结构上讲,浏览器由一个控制单元和一系列的客户单元、解释单元组成。
控制单元是浏览器的中心,它协调和管理客户单元和解释单元。
28. HTTP 请求报文&应答报文
1) HTTP 请求报文
① HTTP 请求报文包括一个请求行和若干个报头行, 有时还可能带有报文体。
② 报文头和报文体以空行分隔。请求行包括请求方法、被请求的文档以及 HTTP 版本。
2) HTTP 应答报文
① HTTP 应答报文包括一个状态行和若干个报头行, 并可能在空行后带有报文体。
② 状态行包括 HTTP 版本、状态码、原因等内容。
29. HTML 标记
段落标记用<P>表示
图像标记用<IMG>标记
超链接标记用<A> 标记
30. SSL 协议
SSL(安全套接层)及其继任者传输层安全(TLS)是为网络通信提供安全及数据完整性的一种安全协议。
https 是以安全为目标的HTTP 通道,简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层,https 的安全基础是 SSL。
如果用户想在Web 网站上使用 SSL 协议,则 URL 头必须采用 https 开始。
31. 浏览器安全问题
浏览器是用户在电子商务活动中最常用的工具,用户在浏览 Web 站点及与 Web 站点进行交互最为关心的便是安全问题,通常考虑的安全问题包括以下几个方面:
如何保护自己的计算机:为了保护用户的计算机免受非安全软件的危害,浏览器通常将 Internet 世界划分成几个区域;
如何验证站点的真实性:利用 Web 站点传来的证书可以验证站点的真实性;
l 如何避免他人假冒自己的身份在 Internet中活动:用户可以从 CA安全认证中心申请自己的证书,并将该证书装入浏览器,利用其在 Internet 上表明自己的身份;
在与 Web 站点交互敏感信息时如何避免第三方偷看或者篡改等:在安全通道中使用安全套接层 SSL 技术。
下一篇