「计算机网络」预习:(六)应用层
六、应用层
(一)网络应用模型
1.客户/服务器(C/S)模型
在客户/服务器(C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。
工作流程:
服务器持续处于接收请求的待机状态;
客户机向服务器发送服务请求,并等待响应结果;
服务器接收请求后,完成解析、处理,将结果返回给客户机。
主要特征:
客户机是服务请求方,服务器是服务提供方
主要特点还有:
特点 具体解读 典型示例 地位不平等 网络中计算机分层管理,服务器可限制客户机权限,网络管理集中化 服务器禁止客户机随意删除服务器端数据 客户机不直连 客户机之间无直接通信链路,需通过服务器中转 Web 应用中,两个浏览器无法直接交互 可扩展性受限 受服务器硬件性能、网络带宽约束,支持的客户机数量存在上限 高并发场景下,单台 Web 服务器易出现访问拥堵
2.P2P模型
C/S、P2P 对比
C/S 模型痛点:性能依赖中心服务器,大量用户请求时服务器易成为系统瓶颈。
P2P 模型核心:网络传输内容不存储于中心服务器,所有结点兼具下载、上传功能,权利与义务对等,无固定客户机与服务器划分。
- P2P模型看似去中心化,实则本质上仍然使用客户/服务器模式,每个结点均兼具 “客户”(访问资源)与 “服务器”(提供资源)双重身份,对等方(Peer)可直接通信。
P2P 的优势:
(1) 降低服务器依赖:减轻中心服务器计算压力,消除单点依赖,任务分布式分配,提升系统效率与资源利用率。
(2) 支持点对点共享:多个客户机之间可直接共享文档等资源。
(3) 可扩展性强:突破传统服务器的响应能力与带宽限制,能承载更多请求。
(4) 网络健壮性高:单个结点失效不会影响其他结点的正常运行。
P2P 的缺点:
(1) 本地性能损耗:结点在获取服务的同时需为他人提供服务,占用大量内存,降低整机运行速度,频繁 P2P 下载还会损耗硬盘。
(2) 网络拥塞问题:P2P 流量占互联网总流量的 50%~90%,易造成网络拥堵,因此多数 ISP(互联网服务提供商)对其持反对态度。
(二)域名系统
1.层次域名空间
- 定义:因特网采用层次树状结构的命名方法,每个连接到因特网的主机或路由器都有一个唯一的层次结构名称,即域名(Domain Name)。
标号规则
- 英文不区分大小写。
- 除连字符(
-)外,不能使用其他标点符号。 - 每个标号不超过 63 个字符,完整域名最长不超过 255 个字符。
顶级域名(TLD)分类
(1) 国家(地区)顶级域名(nTLD):代表不同的国家或地区,如
.cn(中国)、.us(美国)、.uk(英国)。其下注册的二级域名由对应国家(地区)自行确定。(2) 通用顶级域名(gTLD):常见的有
.com(公司)、.net(网络服务机构)、.org(非营利性组织)、.gov(政府部门)等。(3) 基础结构域名:只有一个,即
.arpa,用于反向域名解析,又称反向域名。- 域名空间的管理:域名空间是一个倒置的树状结构,每个域由不同的组织进行管理。管理组织可以将其域再分成一定数目的子域,并委托给其他组织管理。例如,中国管理
.cn域,并将edu.cn子域授权给 CERNET 管理。
2.域名服务器
DNS 系统整体设计
结构:因特网的域名系统(DNS)是一个联机分布式数据库系统,采用客户 / 服务器模型。
核心任务:完成域名到 IP 地址的解析。
特点:域名到 IP 地址的映射并非集中存储,而是分布在所有 DNS 服务器上,通过分布式设计实现了高可扩展性和健壮性。
四种主要域名服务器类型
(1) 根域名服务器
- 地位:最高层次的域名服务器,是整个 DNS 体系的 “入口”。
- 作用:存储所有顶级域名服务器的 IP 地址。当本地域名服务器无法解析时,会首先求助于根域名服务器。根服务器通常不直接转换域名,而是告知下一步应查询的顶级域名服务器地址。
- 部署:因特网上共有 13 个根域名服务器,每个服务器实际上是一个冗余服务器集群,以保障安全性和可靠性。
(2) 顶级域名服务器(TLD)
- 作用:负责管理在该顶级域名(如
.com、.cn)下注册的所有二级域名。 - 响应:收到查询请求后,可能给出最终结果,也可能返回下一步应查询的授权域名服务器的 IP 地址。
(3) 授权域名服务器(权限域名服务器)
- 作用:每台主机都必须在授权域名服务器处登记,该服务器负责保存其管辖区域内所有主机的域名到 IP 地址的映射,并能将这些主机名转换为对应的 IP 地址。
- 建议:为了可靠工作,一台主机最好至少配置两个授权域名服务器。许多域名服务器同时充当本地域名服务器和授权域名服务器。
(4) 本地域名服务器
- 作用:当一台主机发出 DNS 查询请求时,首先将请求发送给本地域名服务器。它对 DNS 系统的性能至关重要,是用户主机与整个 DNS 系统交互的入口。
- 归属:通常由 ISP、大学或机构提供,我们在 Windows 系统中配置的 “DNS 地址”,就是本地域名服务器的地址。
当本地域名服务器无法解析时,会迭代查询根服务器、顶级域名服务器,最终找到授权域名服务器,完成解析。这种层次化、分布式的设计,使得 DNS 系统能够高效、可靠地支撑全球因特网的域名解析需求。
3.域名解析
- 域名解析定义:将域名映射为 IP 地址(正向解析),或将 IP 地址映射为域名(反向解析)的过程。
- 工作方式:客户端通过本机 DNS 客户端构造 DNS 请求报文,以UDP 数据报方式发往本地域名服务器。
两种查询方式
(1) 递归查询
- 本地域名服务器只需向根服务器查询一次,后续的多次查询都由其他服务器递归完成。
- 特点:给根域名服务器造成的负载过大,因此在实际中几乎不使用。
(2) 递归与迭代相结合的查询(实际主流)
- 主机 → 本地域名服务器:采用递归查询。若本地服务器不知道答案,就以 DNS 客户的身份继续查询,而非让主机自己进行下一步操作。
- 本地域名服务器 → 根 / 顶级 / 授权服务器:采用迭代查询。服务器收到请求后,要么给出最终 IP 地址,要么告知下一步应查询的服务器地址,让本地服务器自行继续查询。

解析过程示例(以查询
y.abc.com为例)(1) 客户机向本地域名服务器发出递归查询请求。
(2) 本地服务器查询本地缓存,若无记录则以 DNS 客户身份向根服务器发出迭代查询。
(3) 根服务器返回
.com顶级域名服务器dns.com的 IP 地址。(4) 本地服务器向
dns.com发起迭代查询。(5)
dns.com返回abc.com授权域名服务器dns.abc.com的 IP 地址。(6) 本地服务器向
dns.abc.com发起迭代查询。(7)
dns.abc.com返回y.abc.com的 IP 地址。(8) 本地服务器将结果缓存,并返回给客户机。
性能优化:高速缓存
为提高查询效率、减少 DNS 报文数量,DNS 服务器广泛使用高速缓存。
当服务器收到查询结果时,会将信息缓存。后续相同域名查询可直接从缓存返回 IP 地址,无需再向其他服务器查询。
由于主机名和 IP 地址的映射并非永久有效,DNS 服务器会在一段时间后丢弃高速缓存中的信息。
(三)文件传输协议
- 概念:文件传输协议(FTP) 是因特网上使用最广泛的文件传输协议,采用客户 / 服务器模式,基于可靠的 TCP 传输服务。
- 核心特点:屏蔽了各计算机系统的细节,适合在异构网络的任意计算机之间传送文件。
主要功能:
(1) 提供不同主机系统之间的文件传输能力。
(2) 以用户权限管理的方式提供对远程 FTP 服务器上的文件管理能力。
(3) 支持匿名 FTP,实现公用文件共享。
工作原理
FTP 服务器进程由两大部分组成:
- 主进程:负责接收新的请求。
- 从属进程:负责处理单个客户端请求,处理完毕后即终止。
工作步骤:
- 打开熟知端口 21(控制端口),等待客户连接。
- 等待客户进程发起连接请求。
- 启动从属进程处理客户请求,主、从进程并发执行。
- 从属进程处理完毕后终止,主进程回到等待状态,继续接收新请求。
注:FTP 服务器在整个会话期间必须保留用户状态信息,如用户账户、当前远程目录位置等。
控制连接与数据连接
FTP 使用两个并行的 TCP 连接,这是其重要特征:
| 连接类型 | 服务器端口 | 作用 | 特点 |
|---|---|---|---|
| 控制连接 | 21 | 传输控制信息(如连接请求、传送请求、中止命令等),控制信息以 7 位 ASCII 格式传送 | 整个会话期间一直保持打开,不用于传送文件 |
| 数据连接 | 20 | 用于实际的文件数据传输 | 传输完毕后即关闭 |
由于控制信息和数据传输使用不同的连接,FTP 的控制信息被称为带外(Out-of-band)传送。
数据连接的两种传输模式
数据连接的建立由客户端决定,分为两种模式:
主动模式(PORT)
客户端随机开放一个端口,发送 PORT 命令告知服务器。
服务器通过端口 20 主动连接到客户端开放的端口进行数据传输。
特点:“服务器” 连接到 “客户端” 的端口。
被动模式(PASV)
客户端发送 PASV 命令,服务器在本地随机开放一个端口并告知客户端。
客户端主动连接到服务器开放的端口进行数据传输。
特点:“客户端” 连接到 “服务器” 的端口。
与 NFS 的对比
- FTP:若要修改服务器上的文件,必须先将文件下载到本地,修改后再上传回服务器,来回传输耗费时间。
- 网络文件系统(NFS):允许进程直接打开一个远程文件,并在文件的特定位置开始读写数据,无需复制整个文件,效率更高。
(四)电子邮件
1.电子邮件系统的组成结构
电子邮件的核心特点
- 异步通信:通信时不需要双方同时在场,邮件被发送到收件人邮件服务器的收件箱中,收件人可随时读取。
- 应用广泛:是因特网上流行的通信方式,适合非实时信息传递。
电子邮件系统的三大组成构件
(1) 用户代理(UA):是用户与电子邮件系统的接口,提供友好的界面用于撰写、显示和处理邮件。
(2) 邮件服务器:负责发送和接收邮件,并向发件人报告邮件传送状态(已交付、被拒绝、丢失等)。
工作方式:采用客户 / 服务器模式,同时充当客户和服务器。例如,当服务器 A 向服务器 B 发送邮件时,A 是 SMTP 客户,B 是 SMTP 服务器;反之亦然。
(3) 电子邮件协议
- 发送协议(SMTP):用于用户代理向邮件服务器发送邮件,或邮件服务器之间转发邮件。采用 “推(Push)” 方式,主动将邮件送达服务器。
- 读取协议(POP3/IMAP):用于用户代理从邮件服务器读取邮件。采用 “拉(Pull)” 方式,由用户代理主动向服务器请求邮件。
邮件传输的基本流程
① 发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用 SMTP 把邮件传送给发送端邮件服务器。
② 发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
③ 运行在发送端邮件服务器的 SMTP 客户进程,发现邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的 SMTP 服务器进程发起建立 TCP 连接。
④ TCP 连接建立后,SMTP 客户进程开始向远程 SMTP 服务器进程发送邮件。当所有待发送邮件发完后,SMTP 就关闭所建立的 TCP 连接。
⑤ 运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入收信人的用户邮箱,等待收信人在方便时进行读取。
⑥ 收信人打算收信时,调用用户代理,使用 POP3(或 IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回(如果邮箱中有来信的话)。
2.电子邮件格式与MIME
电子邮件格式
- 整体结构:电子邮件由信封和内容两大部分组成,其中内容又分为首部和主体。
首部格式:由 RFC 822 规定,包含若干关键字段,每个字段由 “关键字:字段值” 组成。
必需字段:
To:收件人邮箱地址,格式为用户名@邮件服务器域名(如[email protected]),保证地址全网唯一。From:发件人邮箱地址,通常由邮件系统自动填入。
可选字段:
Subject:邮件主题,概括邮件主要内容。
- 分隔规则:首部与主体之间用一个空行分隔。
多用途网际邮件扩充(MIME)
- 产生背景:SMTP 协议仅能传送有限长度的 ASCII 码邮件,无法传输中文、二进制文件等非 ASCII 内容,因此提出 MIME 作为补充。
- 核心作用:MIME 不改动或取代 SMTP,而是在其基础上增加了邮件主体的结构,定义了非 ASCII 码的编码规则,使其能在现有邮件系统下传输。
主要内容:
新增 5 个邮件首部字段,包括 MIME 版本、内容描述、内容标识、传送编码和内容类型。
标准化了多媒体电子邮件的内容格式。
定义了传送编码,可将任意内容格式转换,避免被邮件系统误改。
3.SMTP和POP3
SMTP(简单邮件传输协议)
SMTP 是一种可靠的电子邮件传输协议,采用客户 / 服务器模式,基于 TCP 连接,使用熟知端口 25。其通信分为三个阶段:
(1) 连接建立
- 发送方邮件服务器的 SMTP 客户定期扫描邮件缓存,发现邮件后,与接收方邮件服务器的 SMTP 服务器直接建立 TCP 连接。
- 接收方服务器返回
220 Service ready表示就绪。 - SMTP 客户发送
HELO命令,附上发送方主机名,完成握手。 - 特点:SMTP 不使用中间邮件服务器,TCP 连接直接在发送方和接收方服务器之间建立。
(2) 邮件传送
MAIL命令:开始传送,指明发件人地址(如MAIL FROM: <[email protected]>),服务器回复250 OK表示就绪。RCPT命令:指明收件人地址(如RCPT TO: <收件人地址>),用于提前确认地址有效性,避免浪费资源。DATA命令:开始传输邮件内容,以<CRLF>.<CRLF>标识内容结束。
(3) 连接释放
- 邮件发送完毕后,SMTP 客户发送
QUIT命令。 - 服务器返回
221表示服务关闭,同意释放 TCP 连接。
POP3 和 IMAP(邮件读取协议)
(1) POP3(邮局协议第 3 版)
- 采用 “拉(Pull)” 方式,用户代理向邮件服务器发出请求,取回邮件。
- 基于 TCP 连接,使用熟知端口 110。
- 两种工作方式:
- 下载并保留:邮件读取后仍保存在服务器,用户可再次读取。
- 下载并删除:邮件一旦被读取,即从服务器删除,无法再次读取。
(2) IMAP(因特网报文存取协议)
- 比 POP3 更复杂,提供了创建文件夹、移动邮件、远程查询邮件头等高级功能。
- 服务器维护会话状态信息,允许用户只获取报文的部分内容(如首部),适合低带宽环境。
(3) 基于万维网的电子邮件
- 如 Hotmail、Gmail 等,用户通过浏览器访问。
- 特点:用户与邮件服务器之间使用 HTTP 协议,而邮件服务器之间的传输仍使用 SMTP。
(五)万维网(WWW)
1.WWW 的概念与组成结构
定义:万维网是一个分布式、联机式的信息存储空间,其中的有用事物被称为 “资源”,并由 统一资源定位符(URL) 唯一标识。
资源通过 超文本传输协议(HTTP) 传送,用户通过点击超链接即可获取资源。
通过超链接实现从一个站点到另一个站点的便捷访问,支持主动按需获取信息。
万维网的三大核心标准
(1) 统一资源定位符(URL):负责标识万维网上的各种文档,使每个文档在整个万维网内具有唯一的标识符。
一般形式:
<协议>://<主机>:<端口>/<路径>协议:获取文档的方式,如
http、ftp等。主机:存放资源的主机域名或 IP 地址。
端口和路径:有时可省略,URL 不区分大小写。
(2) 超文本传输协议(HTTP):应用层协议,使用 TCP 连接进行可靠传输,是客户端和服务器交互必须遵守的协议。
(3) 超文本标记语言(HTML):一种文档结构标记语言,使用约定标记对页面上的文字、声音、图像、视频等信息及格式进行描述,方便超链接跳转和页面显示。
万维网的工作方式——客户 / 服务器模式
- 客户端:用户使用的浏览器(如 Chrome、Edge)。
- 服务器:存放万维网文档的主机,即万维网服务器。
工作流程:
- 用户通过浏览器(指定 URL)与 Web 服务器建立连接,并发送浏览请求。
- 服务器将 URL 转换为文件路径,返回请求的万维网文档。
- 通信完成,关闭连接。
- 万维网的地位:万维网是无数网络站点和网页的集合,构成了因特网最主要的部分(因特网还包括电子邮件、Usenet 和新闻组等其他服务)。
2.超文本传输协议(HTTP)
- 定义:HTTP 是面向事务的应用层协议,定义了浏览器(客户端)与万维网服务器之间的请求 / 响应格式与规则,是可靠交换多媒体文件的基础。
HTTP 操作过程:
用户单击鼠标后所发生的事件按顺序如下(以访问清华大学的网站为例):
1)浏览器分析链接指向页面的URL (
http://www.tsinghua.edu.cn/chn/index.htm)。
2)浏览器向 DNS 请求解析www.tsinghua.edu.cn的IP地址。
3)域名系统 DNS 解析出清华大学服务器的IP地址。
4)浏览器与该服务器建立 TCP 连接(默认端口号为80)。
5)浏览器发出 HTTP 请求:GET /chn/index.htm。
6)服务器通过 HTTP 响应把文件index.htm发送给浏览器。
7)释放 TCP 连接,
8)浏览器解释文件index.htm,并将 Web 页显示给用户。HTTP 核心特点:
(1) 传输层依赖:使用 TCP 保证可靠传输,但 HTTP 本身是无连接的,通信前无需建立 HTTP 连接。
(2) 无状态性:服务器不记忆客户端的历史访问,简化了服务器设计。实际应用中通过 Cookie + 数据库跟踪用户活动。
- Cookie 原理:服务器为用户生成唯一识别码,通过
Set-cookie首部写入浏览器;后续请求时,浏览器在Cookie首部带回识别码,服务器据此查询用户活动记录。
(3) 连接方式:

- 非持久连接:每个网页元素(如图片、Flash)都需单独建立 TCP 连接,开销大,每个对象导致 2×RTT 延迟。
持久连接(HTTP/1.1 支持):连接在响应后保持,可复用传输后续请求。
- 非流水线方式:客户端需等待前一个响应后才能发送下一个请求,连接易空闲。
- 流水线方式(默认):客户端可连续发送多个请求,所有对象共享 1 个 RTT 延迟,减少空闲时间,提升效率。
- Cookie 原理:服务器为用户生成唯一识别码,通过
HTTP 报文结构:
HTTP 是面向文本的协议,报文字段均为 ASCII 码串,分为请求报文和响应报文两类,均由三部分组成:
组成部分 请求报文 响应报文 开始行 请求行:方法 + URL + 版本 状态行:版本 + 状态码 + 短语 首部行 说明浏览器、服务器或报文主体信息 说明服务器、响应内容等信息 实体主体 通常不用 部分响应报文包含返回数据 
常用请求方法:
GET:请求读取由 URL 标识的资源。HEAD:请求读取资源的首部。POST:向服务器添加信息(如提交表单)。CONNECT:用于代理服务器。
常见应用层协议小结
- FTP 数据连接:TCP,端口 20
- FTP 控制连接:TCP,端口 21
- TELNET:TCP,端口 23
- SMTP:TCP,端口 25
- DNS:UDP,端口 53
- TFTP:UDP,端口 69
- HTTP:TCP,端口 80
- POP3:TCP,端口 110
- SNMP:UDP,端口 161
本文系作者 @xiin 原创发布在To Future$站点。未经许可,禁止转载。
暂无评论数据