六、应用层

(一)网络应用模型

1.客户/服务器(C/S)模型

在客户/服务器(C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。

  1. 工作流程:

    服务器持续处于接收请求的待机状态;

    客户机向服务器发送服务请求,并等待响应结果;

    服务器接收请求后,完成解析、处理,将结果返回给客户机。

  2. 主要特征:

    客户机是服务请求方,服务器是服务提供方

  3. 主要特点还有:

    特点具体解读典型示例
    地位不平等网络中计算机分层管理,服务器可限制客户机权限,网络管理集中化服务器禁止客户机随意删除服务器端数据
    客户机不直连客户机之间无直接通信链路,需通过服务器中转Web 应用中,两个浏览器无法直接交互
    可扩展性受限受服务器硬件性能、网络带宽约束,支持的客户机数量存在上限高并发场景下,单台 Web 服务器易出现访问拥堵

2.P2P模型

  1. C/S、P2P 对比

    C/S 模型痛点:性能依赖中心服务器,大量用户请求时服务器易成为系统瓶颈。

    P2P 模型核心:网络传输内容不存储于中心服务器,所有结点兼具下载、上传功能,权利与义务对等,无固定客户机与服务器划分。

  2. P2P模型看似去中心化,实则本质上仍然使用客户/服务器模式,每个结点均兼具 “客户”(访问资源)与 “服务器”(提供资源)双重身份,对等方(Peer)可直接通信。
  3. P2P 的优势:

    (1) 降低服务器依赖:减轻中心服务器计算压力,消除单点依赖,任务分布式分配,提升系统效率与资源利用率。

    (2) 支持点对点共享:多个客户机之间可直接共享文档等资源。

    (3) 可扩展性强:突破传统服务器的响应能力与带宽限制,能承载更多请求。

    (4) 网络健壮性高:单个结点失效不会影响其他结点的正常运行。

  4. P2P 的缺点:

    (1) 本地性能损耗:结点在获取服务的同时需为他人提供服务,占用大量内存,降低整机运行速度,频繁 P2P 下载还会损耗硬盘。

    (2) 网络拥塞问题:P2P 流量占互联网总流量的 50%~90%,易造成网络拥堵,因此多数 ISP(互联网服务提供商)对其持反对态度。

(二)域名系统

1.层次域名空间

  1. 定义:因特网采用层次树状结构的命名方法,每个连接到因特网的主机或路由器都有一个唯一的层次结构名称,即域名(Domain Name)
  2. 标号规则

    • 英文不区分大小写。
    • 除连字符(-)外,不能使用其他标点符号。
    • 每个标号不超过 63 个字符,完整域名最长不超过 255 个字符。
  3. 顶级域名(TLD)分类

    (1) 国家(地区)顶级域名(nTLD):代表不同的国家或地区,如 .cn(中国)、.us(美国)、.uk(英国)。其下注册的二级域名由对应国家(地区)自行确定。

    (2) 通用顶级域名(gTLD):常见的有 .com(公司)、.net(网络服务机构)、.org(非营利性组织)、.gov(政府部门)等。

    (3) 基础结构域名:只有一个,即 .arpa,用于反向域名解析,又称反向域名。

  4. 域名空间的管理:域名空间是一个倒置的树状结构,每个域由不同的组织进行管理。管理组织可以将其域再分成一定数目的子域,并委托给其他组织管理。例如,中国管理 .cn 域,并将 edu.cn 子域授权给 CERNET 管理。

2.域名服务器

  1. DNS 系统整体设计

    结构:因特网的域名系统(DNS)是一个联机分布式数据库系统,采用客户 / 服务器模型。

    核心任务:完成域名到 IP 地址的解析。

    特点:域名到 IP 地址的映射并非集中存储,而是分布在所有 DNS 服务器上,通过分布式设计实现了高可扩展性和健壮性。

  2. 四种主要域名服务器类型

    (1) 根域名服务器

    • 地位:最高层次的域名服务器,是整个 DNS 体系的 “入口”。
    • 作用:存储所有顶级域名服务器的 IP 地址。当本地域名服务器无法解析时,会首先求助于根域名服务器。根服务器通常不直接转换域名,而是告知下一步应查询的顶级域名服务器地址。
    • 部署:因特网上共有 13 个根域名服务器,每个服务器实际上是一个冗余服务器集群,以保障安全性和可靠性。

    (2) 顶级域名服务器(TLD)

    • 作用:负责管理在该顶级域名(如.com.cn)下注册的所有二级域名。
    • 响应:收到查询请求后,可能给出最终结果,也可能返回下一步应查询的授权域名服务器的 IP 地址。

    (3) 授权域名服务器(权限域名服务器)

    • 作用:每台主机都必须在授权域名服务器处登记,该服务器负责保存其管辖区域内所有主机的域名到 IP 地址的映射,并能将这些主机名转换为对应的 IP 地址。
    • 建议:为了可靠工作,一台主机最好至少配置两个授权域名服务器。许多域名服务器同时充当本地域名服务器和授权域名服务器。

    (4) 本地域名服务器

    • 作用:当一台主机发出 DNS 查询请求时,首先将请求发送给本地域名服务器。它对 DNS 系统的性能至关重要,是用户主机与整个 DNS 系统交互的入口。
    • 归属:通常由 ISP、大学或机构提供,我们在 Windows 系统中配置的 “DNS 地址”,就是本地域名服务器的地址。

    当本地域名服务器无法解析时,会迭代查询根服务器、顶级域名服务器,最终找到授权域名服务器,完成解析。这种层次化、分布式的设计,使得 DNS 系统能够高效、可靠地支撑全球因特网的域名解析需求。

3.域名解析

  1. 域名解析定义:将域名映射为 IP 地址(正向解析),或将 IP 地址映射为域名(反向解析)的过程。
  2. 工作方式:客户端通过本机 DNS 客户端构造 DNS 请求报文,以UDP 数据报方式发往本地域名服务器。
  3. 两种查询方式

    (1) 递归查询

    • 本地域名服务器只需向根服务器查询一次,后续的多次查询都由其他服务器递归完成。
    • 特点:给根域名服务器造成的负载过大,因此在实际中几乎不使用。

    (2) 递归与迭代相结合的查询(实际主流)

    • 主机 → 本地域名服务器:采用递归查询。若本地服务器不知道答案,就以 DNS 客户的身份继续查询,而非让主机自己进行下一步操作。
    • 本地域名服务器 → 根 / 顶级 / 授权服务器:采用迭代查询。服务器收到请求后,要么给出最终 IP 地址,要么告知下一步应查询的服务器地址,让本地服务器自行继续查询。

image-20260223215531922

  1. 解析过程示例(以查询 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) 本地服务器将结果缓存,并返回给客户机。

  2. 性能优化:高速缓存

    为提高查询效率、减少 DNS 报文数量,DNS 服务器广泛使用高速缓存

    当服务器收到查询结果时,会将信息缓存。后续相同域名查询可直接从缓存返回 IP 地址,无需再向其他服务器查询。

    由于主机名和 IP 地址的映射并非永久有效,DNS 服务器会在一段时间后丢弃高速缓存中的信息。

(三)文件传输协议

  1. 概念:文件传输协议(FTP) 是因特网上使用最广泛的文件传输协议,采用客户 / 服务器模式,基于可靠的 TCP 传输服务。
  2. 核心特点:屏蔽了各计算机系统的细节,适合在异构网络的任意计算机之间传送文件。
  3. 主要功能:

    (1) 提供不同主机系统之间的文件传输能力。

    (2) 以用户权限管理的方式提供对远程 FTP 服务器上的文件管理能力。

    (3) 支持匿名 FTP,实现公用文件共享。

  4. 工作原理

    FTP 服务器进程由两大部分组成:

    • 主进程:负责接收新的请求。
    • 从属进程:负责处理单个客户端请求,处理完毕后即终止。

    工作步骤:

    1. 打开熟知端口 21(控制端口),等待客户连接。
    2. 等待客户进程发起连接请求。
    3. 启动从属进程处理客户请求,主、从进程并发执行。
    4. 从属进程处理完毕后终止,主进程回到等待状态,继续接收新请求。

    注:FTP 服务器在整个会话期间必须保留用户状态信息,如用户账户、当前远程目录位置等。

  5. 控制连接与数据连接

    FTP 使用两个并行的 TCP 连接,这是其重要特征:

连接类型服务器端口作用特点
控制连接21传输控制信息(如连接请求、传送请求、中止命令等),控制信息以 7 位 ASCII 格式传送整个会话期间一直保持打开,不用于传送文件
数据连接20用于实际的文件数据传输传输完毕后即关闭

由于控制信息和数据传输使用不同的连接,FTP 的控制信息被称为带外(Out-of-band)传送

  1. 数据连接的两种传输模式

    数据连接的建立由客户端决定,分为两种模式:

    • 主动模式(PORT)

      客户端随机开放一个端口,发送 PORT 命令告知服务器。

      服务器通过端口 20 主动连接到客户端开放的端口进行数据传输。

      特点:“服务器” 连接到 “客户端” 的端口。

    • 被动模式(PASV)

      客户端发送 PASV 命令,服务器在本地随机开放一个端口并告知客户端。

      客户端主动连接到服务器开放的端口进行数据传输。

      特点:“客户端” 连接到 “服务器” 的端口。

  2. 与 NFS 的对比

    • FTP:若要修改服务器上的文件,必须先将文件下载到本地,修改后再上传回服务器,来回传输耗费时间。
    • 网络文件系统(NFS):允许进程直接打开一个远程文件,并在文件的特定位置开始读写数据,无需复制整个文件,效率更高。

(四)电子邮件

1.电子邮件系统的组成结构

  1. 电子邮件的核心特点

    • 异步通信:通信时不需要双方同时在场,邮件被发送到收件人邮件服务器的收件箱中,收件人可随时读取。
    • 应用广泛:是因特网上流行的通信方式,适合非实时信息传递。
  2. 电子邮件系统的三大组成构件

    (1) 用户代理(UA):是用户与电子邮件系统的接口,提供友好的界面用于撰写、显示和处理邮件。

    (2) 邮件服务器:负责发送和接收邮件,并向发件人报告邮件传送状态(已交付、被拒绝、丢失等)。

    工作方式:采用客户 / 服务器模式,同时充当客户和服务器。例如,当服务器 A 向服务器 B 发送邮件时,A 是 SMTP 客户,B 是 SMTP 服务器;反之亦然。

    (3) 电子邮件协议

    • 发送协议(SMTP):用于用户代理向邮件服务器发送邮件,或邮件服务器之间转发邮件。采用 “推(Push)” 方式,主动将邮件送达服务器。
    • 读取协议(POP3/IMAP):用于用户代理从邮件服务器读取邮件。采用 “拉(Pull)” 方式,由用户代理主动向服务器请求邮件。
  3. 邮件传输的基本流程

    ① 发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用 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 的概念与组成结构

  1. 定义:万维网是一个分布式、联机式的信息存储空间,其中的有用事物被称为 “资源”,并由 统一资源定位符(URL) 唯一标识。

    资源通过 超文本传输协议(HTTP) 传送,用户通过点击超链接即可获取资源。

    通过超链接实现从一个站点到另一个站点的便捷访问,支持主动按需获取信息。

  2. 万维网的三大核心标准

    (1) 统一资源定位符(URL):负责标识万维网上的各种文档,使每个文档在整个万维网内具有唯一的标识符。

    一般形式:<协议>://<主机>:<端口>/<路径>

    协议:获取文档的方式,如 httpftp 等。

    主机:存放资源的主机域名或 IP 地址。

    端口和路径:有时可省略,URL 不区分大小写。

    (2) 超文本传输协议(HTTP):应用层协议,使用 TCP 连接进行可靠传输,是客户端和服务器交互必须遵守的协议。

    (3) 超文本标记语言(HTML):一种文档结构标记语言,使用约定标记对页面上的文字、声音、图像、视频等信息及格式进行描述,方便超链接跳转和页面显示。

  3. 万维网的工作方式——客户 / 服务器模式

    • 客户端:用户使用的浏览器(如 Chrome、Edge)。
    • 服务器:存放万维网文档的主机,即万维网服务器。

    工作流程:

    1. 用户通过浏览器(指定 URL)与 Web 服务器建立连接,并发送浏览请求。
    2. 服务器将 URL 转换为文件路径,返回请求的万维网文档。
    3. 通信完成,关闭连接。
  4. 万维网的地位:万维网是无数网络站点和网页的集合,构成了因特网最主要的部分(因特网还包括电子邮件、Usenet 和新闻组等其他服务)。

2.超文本传输协议(HTTP)

  1. 定义:HTTP 是面向事务的应用层协议,定义了浏览器(客户端)与万维网服务器之间的请求 / 响应格式与规则,是可靠交换多媒体文件的基础。
  2. 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 页显示给用户。

  3. HTTP 核心特点:

    (1) 传输层依赖:使用 TCP 保证可靠传输,但 HTTP 本身是无连接的,通信前无需建立 HTTP 连接。

    (2) 无状态性:服务器不记忆客户端的历史访问,简化了服务器设计。实际应用中通过 Cookie + 数据库跟踪用户活动。

    • Cookie 原理:服务器为用户生成唯一识别码,通过 Set-cookie 首部写入浏览器;后续请求时,浏览器在 Cookie 首部带回识别码,服务器据此查询用户活动记录。

    (3) 连接方式:

    image-20260223225711343

    • 非持久连接:每个网页元素(如图片、Flash)都需单独建立 TCP 连接,开销大,每个对象导致 2×RTT 延迟。
    • 持久连接(HTTP/1.1 支持):连接在响应后保持,可复用传输后续请求。

      • 非流水线方式:客户端需等待前一个响应后才能发送下一个请求,连接易空闲。
      • 流水线方式(默认):客户端可连续发送多个请求,所有对象共享 1 个 RTT 延迟,减少空闲时间,提升效率。
  4. HTTP 报文结构:

    HTTP 是面向文本的协议,报文字段均为 ASCII 码串,分为请求报文响应报文两类,均由三部分组成:

    组成部分请求报文响应报文
    开始行请求行:方法 + URL + 版本状态行:版本 + 状态码 + 短语
    首部行说明浏览器、服务器或报文主体信息说明服务器、响应内容等信息
    实体主体通常不用部分响应报文包含返回数据

    image-20260223232019257

    常用请求方法:

    • 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
分类: 计算机网络 标签: 计算机网络

评论

暂无评论数据

暂无评论数据

目录