第六章应用层¶
第六章 应用层¶
【考频统计】
| 年份 | 考点 | 分值 |
|---|---|---|
| 2009 | FTP协议 |
单选2分 |
| 2010 | DNS协议 |
单选2分 |
| 2011 | HTTP/1.1 |
综合题小问2分 |
| 2012 | 电子邮件的SMTP协议、POP3协议 |
单选2分 |
| 2013 | SMTP协议 |
单选2分 |
| 2014 | SMTP协议 |
单选2分 |
| 2015 | POP3协议、HTTP协议、DHCP协议 |
2道单选4分,综合题DHCP3分 |
| 2016 | DNS(域名解析过程) |
单选2分 |
| 2017 | FTP协议 |
单选2分 |
| 2018 | DNS协议、SMTP协议 |
2道单选4分 |
| 2019 | 网络应用模型 | 单选2分 |
| 2020 | DNS(域名解析过程)、HTTP协议 |
单选2分 |
| 2021 | DNS协议 |
大题2小问 2分 |
| 2022 | HTTP/1.1、DHCP协议 |
单选2分,大题3分 |
| 2023 | FTP |
大题3小问 3分 |
每年必考,分值仅在3分左右;
6.1 网络应用模型¶
根据网络应用程序在各种端系统上的组织方式和它们之间的关系,分为以下两种:
客户/服务器(Client/Server,C/S)模型 |
对等(Peer-to-Peer,P2P)模型 |
|
|---|---|---|
| 对象 | + 客户机\(Client\):服务请求方,面向用户 + 服务器\(Server\):服务提供方,面向任务,总是处于运行状态,等待客户的服务请求。 |
对等方(\(peer\)):任意一对计算机; |
| 示意图 | ![]() |
![]() |
| 常用应用 | \(Web\)、\(FTP\)、远程登录、电子邮件等服务集中型应用 (即应用服务集中在服务器上) | \(p2p\)文件共享、快播、迅雷、即时通信、\(p2p\)流媒体、分布式存储等 服务分散型应用;(服务分撒在大量对等计算机上) |
| 工作流程 | 1. 服务器处于接受请求状态 2. 客户机发出服务请求,等待接收结果 3. 服务器收到请求,进行处理,得到结果返回给客户机 |
本质上看来就是\(C/S\),只不过每一台计算机(对等方)既可以是服务提供方,也可与是服务请求方。对等方相互之间直接通信 |
| 特点 | 1. \(C/S\)模式中各计算机地位不等,服务器可对用户进行权限限制; 2. 客户机之间不能进行通信; 3. 可扩展性不佳; 4. 客户机面向用户,服务器面向任务; |
1. 减轻了服务器的计算压力,提高了系统效率和资源利用率 2. 多个用户之间可以共享文档; 3. 可扩展性好;系统性能不会因规模增大而降低; 4. 网络健壮性强,个别结点失效问题不大; 5. 但是会影响个体的整机速度; 6. 成本低; |
6.2 动态主机配置协议DHCP¶
| 协议英文全称 | 网络应用模型 | 运行在 | 熟知端口号 | 常考题型 |
|---|---|---|---|---|
| \(Dynamic\ Host\$<br/>\)Configuration Protocal$ | \(C/S\) | \(UDP\)之上 | 服务器端:\(UDP\ 67\)客户端:\(UDP\ 68\) | 综合题小问 |
6.2.1 DHCP的作用¶
常用于给主机动态地分配地分配\(IP\)地址,提供了即插即用的联网机制,允许一台计算机加入新的网络和获取\(IP\)地址而不用手工参与。
局域网内主机开机启动\(DHCP\),然后\(DHCP\)服务器为局域网中各主机配置参数:\(IP\)地址、子网掩码、默认网关的\(IP\)地址、\(DNS\)服务器的\(IP\)地址
6.2.2 DHCP的工作过程¶
DHCP报文的封装应用层中的DHCP客户端报文在运输层加上\(UDP\)首部(包括源端口号68和目的端口号67)被封装成 \(UDP\)用户数据报,然后在网际层加上\(IP\) 首部被封装成 \(IP\)数据报,再根据所使用的网络接口,加上帧头封装成相应的数据链路层的帧(例如以太网帧)进行发送。- 基本工作过程

- 发现阶段(DHCP DISCOVER) DHCP 发现报文的源 IP 地址为
0.0.0.0,因为主机目前还未分配到 IP 地址;目的 IP 地址为255.255.255.255(广播地址),因为主机并不知道网络中有哪几个 DHCP 服务器,也不知道它们的 IP 地址。 DHCP 报文段内封装有事务 ID 和 DHCP 客户端的 MAC 地址等信息。网络中的主机收到该广播报文后,只有在应用层运行着 DHCP 服务器进程的设备才会接收并处理,其他普通主机会在传输层(UDP 端口未打开)将其丢弃。- 提供阶段(DHCP OFFER) DHCP 服务器接收到发现报文后,根据客户端的 MAC 地址查询数据库:若有静态绑定信息则直接使用,若没有则从地址池中提取默认配置构建提供报文。注意: 服务器在挑选待租用的 IP 地址后,通常会发送 ICMP 回显请求(Ping) 来确保该 IP 未被网络中其他设备偷偷占用。 DHCP 服务器发送 OFFER 报文时,源 IP 地址为服务器自身 IP,目的地址仍为广播地址
255.255.255.255(为了让没有 IP 的主机能收到)。网络中所有设备层层解封到应用层后,只有发起请求的 DHCP 客户进程会根据“事务 ID”认领该报文。 如果客户收到多个服务器的 OFFER,一般会选择最先到达的那个。OFFER 报文中包含:IP 地址、子网掩码、地址租期、默认网关和 DNS 服务器 IP 等。- 请求阶段(DHCP REQUEST) DHCP 客户收到 OFFER 后,向选中的服务器发送 DHCP 请求报文。此时源 IP 地址依然是
0.0.0.0(因为还在征求同意,尚未正式确立关系),目的 IP 地址仍然是广播地址255.255.255.255。 这样做的绝妙之处在于:一石二鸟。不用挨个通知所有服务器,各路 DHCP 服务器收到该广播后,看看报文里的“服务器标识符(Server Identifier)”,被选上的准备发确认,没被选上的就知道自己落选了,默默收回刚才预留的 IP 地址。确认阶段(DHCP ACK) DHCP 服务器同意请求,给客户发送 DHCP 确认报文(依然是广播)。DHCP 客户收到 ACK 后,此时它必须再做最后一步确认:发送免费 ARP(Gratuitous ARP) 检测该 IP 是否真的没人用。
若无人响应 ARP,主机正式启用该 IP。
若被占用,主机立刻向服务器发送 DHCP 谢绝报文(DHCP DECLINE),并重新发送 DISCOVER 报文从头开始。
续租与重绑定阶段(保活机制)
50% 续期(T1): 当租期过去一半时,客户端会发送 DHCP REQUEST 尝试续约。注意,此时是单播报文(源 IP 为客户端当前 IP,目的 IP 为服务器 IP)。
- 若同意,服务器回复 ACK,客户端获得新租期。
- 若不同意,服务器回复 NACK 否认报文,客户端立刻停用 IP,赶紧找下家(真干脆),重新发送 DISCOVER 报文。
87.5% 重绑定(T2): 如果 50% 时的请求遭遇服务器“冷暴力”(无响应),当租期撑到 87.5% 时,客户端不能再等了,必须再次发送 DHCP REQUEST。此时会改为广播报文,向全网所有服务器求助。如果熬到租期结束还是没人理(搁这彻底 PUA 呢),客户端必须立即停用该 IP 并重新 DISCOVER。
释放阶段(DHCP RELEASE) DHCP 客户随时可以提前终止租约。如果不想用了,直接发送 DHCP 释放报文。因为此时客户端拥有合法身份,所以该报文是单播:源 IP 为客户端自己的 IP 地址,目的 IP 为DHCP 服务器的 IP 地址,好聚好散。
6.2.3 DHCP的中继代理¶
如下左图中由于广播报文不会被路由器转发,会被丢弃,所以不能获取配置参数。我们不愿意在每一个网络上都设置一个DHCP服务器,因为这样会使得DHCP服务器数量太多。因此现在一般是使每一个网络中至少有一个DHCP中继代理(\(relay\ agent\)),它配置了DHCP服务器的IP地址,当中继代理收到主机以广播形式发送的DHCP发现报文后,就以单播形式向DHCP服务器转发此报文,并等待回答。



6.3 域名系统(DNS)¶
| 协议英文全称 | 网络应用模型 | 运行在 | 熟知端口号 | 常考题型 |
|---|---|---|---|---|
| \(Domain\ Name\ system\) | \(C/S\) | \(UDP\)之上 | \(53\) | 选择 |
【作用】:将便于人们记忆的主机名转换为便于机器处理的 \(IP\) 地址
注意,域名\(/IP/MAC\)与主机都不具有一一映射的关系,1台主机可能对应着多个不同的域名\(/IP/MAC\)。
【因特网的域名结构】:
- 因特网采用层次树状结构的域名结构。
- 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。
… .三级域名.二级域名.顶级域名
例如\(cqut.edu.cn\) ,\(cqu\)(三级域名), \(edu\)(二级)、\(cn\) (顶级域名) 、根(隐藏)

【域名服务器】:域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。自上而下分别是根域名服务器、顶级域名服务器、权限域名服务器
分类:
- 根域名服务器
- 根域名服务器是最高层次的域名服务器。
- 管辖顶级域 \(cn/com/hk/uk/us/net\) 等,每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。
- 任何本地域名服务器对任何域名进行解析,只要自己无法解析,就请求根域名服务器(若缓存中存有部分待解析的域名,则可以跳过根域名服务器。例如本地缓存存有\(.com\) ,在查询\(www.baidu.com\) 时可以直接请求\(.com\) 顶级域名服务器)
- 根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的\(IP\)地址。
- 顶级域名服务器:
- 负责管理在该顶级域名服务器注册的所有二级域名
- 当收到
DNS查询请求时就给出相应的回答,可能是给出\(IP\)地址,也可能是指出下一级权限域名服务器的\(IP\)地址。 - 权限域名服务器:
- 权限域名服务器负责管理某个区的域名。
- 每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与
IP地址的映射关系。 - 另外,权限域名服务器还知道其下级域名服务器的地址。
- 本地域名服务器
- 本地域名服务器不属于上述的域名服务器的等级结构
- 当一个主机发出
DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。 - 本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。
- 每一个因特网服务提供者ISP,一个大学,甚至一个大学里的学院,都可以拥有一个本地域名服务器,它有时也称为默认域名服务器。
- 本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的
IP地址需要直接配置在需要域名解析的主机中。
因特网的域名解析过程
| 递归查询 | 迭代查询 | |
|---|---|---|
| 用户主机、本地域名 服务器的域名请求消息数 | 一条、一条 | 一条、多条 |
![]() |
![]() |
为了提高
DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在各级域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录(由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项,例如,每个项目只存放两天)不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和
IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。同理,主机也需要保持高速缓存中内容的正确性。⭐️⭐ ️ 本地域名服务器完成域名解析时,最多的请求查询次数(迭代次数)为域名的段数(除去\(www、dns\)等)+ 1(这是根域名服务器的一次查询)例如:\(www.baidu.com\) 最多两段+1 = 3次查询 \(dns.abc.com\) 最多两段+1 = 3次查询
如图,代查询\(www.abc.xyz.com\)
6.4 文件传输协议(FTP)¶
-
文件传输协议(
File Transfer Protocol,FTP)的作用: -
提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)
-
FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。 -
FTP采用客户/服务器的工作方式,使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务:
- 主进程(单个):用于接收新的请求,对应着控制连接
21port. - 从属进程(多个):用于处理单个请求的数据连接。
- FTP工作时使用两个并行的TCP连接
主动模式(PORT) |
被动模式(PASV) |
|
|---|---|---|
| 工作原理 | 客户端连接到服务器的21号端口 —>登录成功准备读取数据 –>客户端随机开放端口并发送命令—>服务器通过20号端口与 客服端开放端口连接,发送数据 | 客户端要读取数据发送命令到服务器,服务器随机开放端口,并发送 端口号告知客服端,然后客户端主动与其连接,进行数据传输 |
| 服务器端口号 | 20 | 服务器随机开放 |
| 数据连接由谁建立 | 服务器主动连接客户,所以叫主动模式 | 服务器被动等待客户的连接,所以叫被动模式 |
| 示意图 | ![]() |
![]() |
【注】:
- 端口号20、21都是服务器端口号,客户端的端口号由客户端系统自行分配;
- 由于
FTP使用一个分离的”控制连接“, 所以也称FTP的控制信息是带外(out-of-band)传输的
- 控制连接(端口号21):用于传输控制信息(连接请求、传送请求等),不传输数据信息,由于在传输数据的时候也可以通过控制连接发生控制命令(例如终止传输),所以控制连接在整个会话期间一直保持打开状态。
- 数据连接:用来连接客户端与服务端的数据传送过程,完成文件传输。在每次文件传输时才建立,传输结束就关闭。数据传输有两种模式:
6.5 电子邮件¶
6.5.1 电子邮件系统的组成¶
电子邮件系统采用客户/服务器方式
- 用户代理:用户与电子邮件系统的接口,即电子邮件客户端软件;
- 邮件服务器:电子邮件系统的基础设施,用于发送和接收邮件,同时还要维护用户的邮箱。(同时充当\(C\) 和\(S\))
- 协议:包括邮件发送协议(\(SMTP\)、\(HTTP\))和邮件接收(读取)协议(\(POP3\)、\(IMAP\))等

注意:
- \(SMTP\)为“推”服务,即由发送方将邮件“推”给接收方;\(POP3\)为“拉”服务,即由接收方从发送方“拉”出邮件;
- 以上所有连接都是基于\(TCP\),所有服务都是基于\(C/S\)
- \(SMTP\)地址出错:不能发送邮件; \(POP3\)地址出错:不能接收邮件; \(https\) 地址出错,既不能发也不能收; \(mail\)地址出错,发错人或者发不出(查无此人)
【电子邮件的收发过程】:
- 发信人通过用户代理(即写信的界面例如QQ邮箱软件)来撰写邮件;
- 用户代理通过\(SMTP\)发邮件发送给发送方的邮件服务器;
- 发送方的邮件服务器将邮件放入邮件缓存队列中等待发送;
- 发送方的邮件服务器发现缓存中有待发送的邮件,就向接收方的邮件服务器建立\(TCP\)连接;
- \(TCP\)连接建立后,发送方的邮件服务器远程向接收方的邮件服务器发送邮件,当所有邮件发送完毕后断开\(TCP\)连接;
- 接收方的邮件服务器接收到邮件后,将邮件存入收件人的用户邮箱中等待收信人在方便的时候读取;
- 收信人在打算收信时,通过用户代理使用\(POP3\)或者\(IMAP\)将自己的邮件从接收方的邮件服务器中取回。
6.5.2 简单邮件传送协议\(SMTP\)¶
| 协议英文全称 | 网络应用模型 | 运行在 | 熟知端口号 | 常考题型 |
|---|---|---|---|---|
| \(Simple\ Mail\ Transfer\ Protocal\), | \(C/S\) | \(TCP\)之上 | \(25\) | 选择 |
基本工作过程:

由于\(SMTP\)协议只能传送ASCII码文本数据(其实\(POP3、IMAP\)也这样),不能传送可执行文件或其他的二进制对象,不能满足传送多媒体邮件的需要,并且许多非英语文字也无法用\(SMTP\)传送,因此提出了多用途因特网邮件扩展(Multipurpose Internet Mail Extension,MIME)

注意:\(MIME\)并非改动\(SMTP\)或取代它,其意图是继续使用目前的格式,但增加邮件主体的结构,并定义了传送非
ASCII码的编码规则。事实上,\(MIME\)后来还用于同样面向\(ASCII\)字符的\(HTTP\)。
6.5.3 邮件读取协议¶
邮局协议POP3 |
因特网邮件访问协议IMAP |
|---|---|
| \(Post\ Office\ Protocol\) | \(Internet\ Message\ Access \ Protocol\) |
| 端口号:\(110\) | 端口号:\(143\) |
| 非常简单、功能有限的邮件读取协议 | 复杂但是功能比\(POP3\)强大的邮件读取协议 |
| 用户只能以下载并删除方式或下载并保留方式 从邮件服务器下载邮件到用户计算机上 | 用户在自己的计算机上就可以操纵邮件服务器中的邮箱, 就像在本地操控一样,因此\(IMAP\)是一个联机协议 |
| 不允许用户在邮件服务器上管理自己的邮件。 (例如创建文件夹、对邮件进行分类管理等) | 允许用户代理只获取报文的某些部分,例如可以只读取报文的一个首部 |
相同点:二者都采用基于\(TCP\)连接的客户/服务器方式。
【电子邮件的信息格式】:
一个电子邮件由信封和内容组成
- 信封:系统自动生成
- 内容:
- 首部:
\(to\)后面一般写:收件人邮箱名@邮箱所在主机的域名
邮件系统自动提取相关信息并写在信封上。
6.5.4 基于万维网的电子邮件¶
通过浏览器登录(提供用户名和口令)邮件服务器万维网网站就可以撰写、收发、阅读和管理电子邮件。这种工作模式与IMAP很类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器。
邮件服务器网站通常都提供非常强大和方便的邮件管理功能,用户可以在邮件服务器网站上管理和处理自己的邮件,而不需要将邮件下载到本地进行管理。
工作方式:






