第六章 应用层 复习总结

一、应用层概述

1. 应用层的作用

应用层是计算机网络体系结构中的最高层。

应用层协议的作用是:

为了解决某一类具体的网络应用问题,
规定不同主机上的应用进程之间如何交换数据。

简单说:

应用层直接面向用户的网络应用

2. 常见应用层协议

协议 作用
DNS 域名解析
FTP 文件传输
TFTP 简单文件传输
TELNET 远程终端登录
HTTP 万维网访问
HTTPS 安全万维网访问
SMTP 发送电子邮件
POP3 接收电子邮件
DHCP 动态分配 IP 地址

二、应用层协议的特点

1. 应用层协议规定什么

应用层协议通常规定:

交换的报文类型
报文的语法格式
报文中字段的含义
发送报文的方式
收到报文后如何响应
如何与运输层交互

2. 常见工作方式

应用层很多协议采用:

客户/服务器方式

简称:

C/S 模式

三、客户/服务器方式

1. 客户和服务器是什么

客户和服务器指的是:

通信中的两个应用进程

注意:

客户和服务器不一定指两台计算机

2. 客户

客户是:

服务请求方

特点:

主动发起通信
请求服务器提供服务

例如:

浏览器
FTP 客户端
邮件客户端

3. 服务器

服务器是:

服务提供方

特点:

被动等待请求
响应客户请求
一个服务器进程可以同时服务多个客户进程

四、DNS 域名系统

1. DNS 的作用

DNS:

Domain Name System

中文:

域名系统

作用:

把主机域名解析为对应的 IP 地址

例如:

www.baidu.com → IP 地址

2. DNS 解决的问题

DNS 解决的问题:

IP 地址不方便记忆
IP 地址可能变化
直接暴露 IP 不够安全
应用程序通常使用域名而不是 IP

3. 域名和 IP 地址

连接在因特网上的主机或路由器通常都有:

唯一的域名
唯一的 IP 地址

域名和 IP 地址之间存在:

映射关系

4. 用户如何使用 DNS

用户通常是间接使用 DNS。

例如:

用户输入 www.baidu.com
浏览器自动请求 DNS 解析
得到 IP 地址后再访问服务器

5. DNS 是分布式数据库系统

DNS 不是一个单独的服务器。

DNS 是:

分布式数据库系统

域名到 IP 地址的解析由许多域名服务器共同完成。

所以判断题:

域名服务器是一个数据库系统

答案:

正确

更准确地说:

DNS 是分布式数据库系统
域名服务器保存域名和 IP 的映射信息

五、域名结构

1. 域名采用层次结构

互联网采用层次结构的命名树。

域名由多个标号组成,各标号之间用点隔开。

通用格式:

... . 三级域名 . 二级域名 . 顶级域名

例如:

www.pku.edu.cn

从右往左看:

部分 含义
cn 顶级域名
edu 二级域名
pku 三级域名
www 主机名

2. 高频重点

最右边级别最高

3. 域名是逻辑概念

域名空间按照机构组织来划分。

注意:

域名结构和物理网络无关
域名结构和 IP 子网无关

也就是说:

域名是逻辑概念,不代表实际网络拓扑

六、顶级域名 TLD

1. TLD 含义

TLD:

Top Level Domain

中文:

顶级域名

2. 国家顶级域名 nTLD

例如:

域名 国家
.cn 中国
.us 美国
.uk 英国

3. 通用顶级域名 gTLD

常见通用顶级域名:

域名 含义
.com 公司、企业
.net 网络服务机构
.org 非营利组织
.edu 教育机构
.gov 政府部门
.mil 军事部门
.int 国际组织
.info 信息服务
.biz 商业机构
.name 个人
.travel 旅游业

4. 注意

.edu、.gov、.mil 原本主要是美国专用

中国教育机构常见格式:

xxx.edu.cn

中国政府机构常见格式:

xxx.gov.cn

5. 基础结构域名

基础结构域名只有一个:

.arpa

用途:

反向域名解析

也就是:

IP 地址 → 域名

七、DNS 域名服务器

1. 域名服务器分类

域名到 IP 地址的解析由多类域名服务器完成。

主要有四种:

根域名服务器
顶级域名服务器
权限域名服务器
本地域名服务器

2. 区 zone

一个域名服务器负责管辖的范围叫:

区 zone

注意:

DNS 服务器的管辖范围不是以“域”为单位
而是以“区”为单位

一个区中所有节点必须能够连通。


3. 根域名服务器

根域名服务器是:

最高层次的域名服务器

作用:

知道所有顶级域名服务器的域名和 IP 地址

如果本地域名服务器无法解析某域名,通常首先求助于:

根域名服务器

根域名服务器名字:

a.rootservers.net
b.rootservers.net
...
m.rootservers.net

注意:

共 13 套 IPv4 根域名服务器
不是只有 13 台机器

4. 顶级域名服务器

顶级域名服务器负责:

管理对应顶级域名下的二级域名

例如:

.cn 顶级域名服务器
.com 顶级域名服务器
.edu 顶级域名服务器

5. 权限域名服务器

权限域名服务器负责:

某个区的域名解析

例如:

abc.com 的权限域名服务器

它知道自己管辖范围内:

主机名与 IP 地址的映射关系

6. 本地域名服务器

本地域名服务器通常由:

ISP
学校
公司

等提供。

用户主机进行 DNS 查询时,通常先向:

本地域名服务器

发出请求。


八、DNS 查询方式

DNS 查询主要有两种:

递归查询
迭代查询

1. 递归查询

递归查询的特点:

我问你,你必须帮我查到最终结果

用户主机通常向本地域名服务器发送递归查询。

例如:

用户主机 → 本地域名服务器

此时:

用户主机只发送 1 条 DNS 请求

2. 迭代查询

迭代查询的特点:

你不知道最终答案,但可以告诉我下一步该问谁

本地域名服务器通常向其他域名服务器进行迭代查询。

过程:

本地域名服务器 → 根域名服务器
本地域名服务器 → 顶级域名服务器
本地域名服务器 → 权限域名服务器

所以:

本地域名服务器可能发送多条 DNS 请求

3. DNS 迭代解析过程

假设要解析:

y.abc.com

并且本地域名服务器没有缓存。

过程:

1. 用户主机向本地域名服务器查询 y.abc.com
2. 本地域名服务器向根域名服务器查询
3. 根域名服务器告诉它 .com 顶级域名服务器地址
4. 本地域名服务器向 .com 顶级域名服务器查询
5. .com 顶级域名服务器告诉它 abc.com 权限域名服务器地址
6. 本地域名服务器向 abc.com 权限域名服务器查询
7. 权限域名服务器返回 y.abc.com 的 IP 地址
8. 本地域名服务器把 IP 地址返回给用户主机

4. 高频题

题目:

如果本地域名服务无缓存,当采用迭代方法解析另一网络某主机域名时,
用户主机和本地域名服务器发送的域名请求条数分别为?

答案:

1 条,多条

原因:

用户主机只向本地域名服务器发 1 条递归请求
本地域名服务器需要向根、顶级、权限等服务器发送多条迭代请求

九、DNS 高速缓存

1. DNS 缓存作用

每个域名服务器都会维护高速缓存。

作用:

减少 DNS 查询次数
减轻根域名服务器负担
减少 DNS 报文数量
加快域名解析速度

2. DNS 缓存内容

缓存内容包括:

最近查询过的域名
域名对应的 IP 地址
从哪里获得该映射信息

3. DNS 缓存有效时间

为了保证缓存正确性,每个缓存项都有:

有效时间

超过有效时间后:

缓存项应被删除

十、DNS 资源记录

1. 资源记录作用

DNS 服务器保存不同类型的资源记录。

常见记录:

记录类型 作用
A 记录 域名 → IPv4 地址
NS 记录 指定权威域名服务器
CNAME 记录 别名记录
MX 记录 邮件交换记录

2. A 记录

A 记录作用:

把主机名解析为 IP 地址

例如:

www.example.com → 192.168.1.1

3. NS 记录

NS 记录作用:

指出某个域的权威域名服务器

4. CNAME 记录

CNAME 记录作用:

别名 → 规范域名

适合:

一个主机对应多个服务名的情况

5. MX 记录

MX 记录作用:

指定邮件服务器

例如:

example.com 的邮件应交给 mail.example.com

十一、DNS 与电子邮件

1. 发送邮件为什么需要 DNS

发送电子邮件也可能需要 DNS。

因为邮件系统需要根据收件人的邮箱域名找到对应邮件服务器。

例如:

user@example.com

需要查询:

example.com 的 MX 记录

2. 高频判断题

题目:

如果整个因特网 DNS 系统都瘫痪,并不影响给朋友发送电子邮件。

答案:

错误

原因:

发送邮件通常需要通过 DNS 查询收件方邮件服务器地址
DNS 瘫痪会影响邮件服务器定位

十二、FTP 文件传送协议

1. FTP 的作用

FTP:

File Transfer Protocol

中文:

文件传送协议

作用:

在网络上的两台计算机之间传输文件

也就是:

上传文件
下载文件

2. FTP 解决的问题

不同计算机系统之间传输文件并不简单,原因包括:

数据存储格式不同
文件目录结构不同
文件命名规则不同
操作系统命令不同
访问控制方法不同

FTP 的主要功能是:

减少或消除不同操作系统下处理文件的不兼容性

3. FTP 工作方式

FTP 采用:

客户/服务器方式

FTP 客户机:

运行 FTP 客户程序的主机

FTP 服务器:

运行 FTP 服务器程序的主机

FTP 使用:

TCP 可靠运输服务

4. FTP 的两个 TCP 连接

FTP 最重要考点:

FTP 使用两个 TCP 连接

分别是:

控制连接
数据连接

5. 控制连接

控制连接端口:

21

作用:

传送客户发出的命令和服务器的应答

特点:

整个 FTP 会话期间一直保持打开
不用于传输文件数据

6. 数据连接

数据连接端口:

20

作用:

实际传输文件数据

特点:

传送文件时建立
文件传送完毕后关闭

7. FTP 两个端口号

连接 端口号 作用
控制连接 21 传送命令和应答
数据连接 20 传送文件数据

口诀:

21 控制命令
20 传输数据

8. FTP 高频判断题

题目:

FTP 控制连接不用来传送文件,实际用于传输文件的是数据连接。
这两种连接都使用 TCP 可靠的运输服务。

答案:

正确

原因:

FTP 控制连接传命令
FTP 数据连接传文件
两者都基于 TCP

9. FTP 使用两个连接的好处

使用控制连接和数据连接分离的好处:

协议更简单
更容易实现
传输文件时仍可通过控制连接发送控制命令
可以在传输过程中请求终止传输

10. FTP 访问格式

在浏览器地址栏中访问 FTP:

ftp://[用户名:口令@]FTP服务器域名

如果 FTP 站点 IP 是:

192.168.1.100

端口是:

2020

则访问格式:

ftp://192.168.1.100:2020

11. FTP 高频题

题目:

一个 FTP 站点,IP 地址是 192.168.1.100,端口号是 2020,
客户端访问该站点时,在浏览器地址栏中的有效输入是?

答案:

ftp://192.168.1.100:2020

十三、NFS 网络文件系统

1. NFS 含义

NFS:

Network File System

中文:

网络文件系统

2. NFS 与 FTP 的区别

FTP 通常是:

复制整个文件

NFS 可以:

打开远程文件
在远程文件特定位置读写数据

3. NFS 优点

NFS 的优点:

只传送修改部分
不一定要复制整个文件

十四、TFTP 简单文件传送协议

1. TFTP 概述

TFTP:

Trivial File Transfer Protocol

中文:

简单文件传送协议

特点:

很小
易于实现
功能简单

TFTP 使用:

客户/服务器方式
UDP 数据报

熟知端口:

69

2. TFTP 与 FTP 的区别

项目 FTP TFTP
运输层协议 TCP UDP
是否可靠 依靠 TCP 保证可靠 需自己实现差错控制
功能 功能较完整 功能简单
是否支持交互 支持 不支持
是否能列目录 可以 不可以
是否身份鉴别 可以 不可以

3. TFTP 特点

TFTP 特点:

使用 UDP
需要自己的差错改正措施
只支持文件传输
不支持交互
没有庞大命令集
没有列目录功能
不能进行用户身份鉴别
支持 ASCII 码或二进制传送
可对文件进行读或写
使用简单首部

4. TFTP 数据块大小

TFTP 每次传送的数据 PDU 中有:

512 字节数据

最后一次可以:

不足 512 字节

TFTP 的数据 PDU 也叫:

文件块 block

编号:

从 1 开始

5. TFTP 像停止等待协议

TFTP 工作方式类似:

停止等待协议

过程:

发送一个文件块
等待对方确认
收到确认后再发送下一个文件块

如果超时未收到确认:

重传数据 PDU

如果确认方超时未收到下一个文件块:

重传确认 PDU

这样可以避免数据报丢失导致文件传输失败。


6. TFTP 文件结束标志

情况一:

如果文件长度不是 512 字节的整数倍:

最后一个数据块不足 512 字节
表示文件结束

情况二:

如果文件长度刚好是 512 字节的整数倍:

最后还要发送一个只含首部、不含数据的数据 PDU
表示文件结束

7. FTP 和 TFTP 多选题

题目:

下列关于 FTP 和 TFTP 说法正确的是?
A. FTP 使用 TCP 可靠的运输服务,TFTP 使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。
B. TFTP 只支持文件传输而不支持交互。
C. TFTP 没有列目录的功能,也不能对用户进行身份鉴别。
D. FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

答案:

ABCD

十五、TELNET 远程终端协议

1. TELNET 作用

TELNET 是:

远程终端协议

作用:

用户可以在本地通过 TCP 连接登录到远程主机

用户感觉像:

键盘和显示器直接连接在远程主机上

TELNET 可以:

把本地用户击键传给远程主机
把远程主机输出返回本地屏幕

2. TELNET 工作方式

TELNET 使用:

客户/服务器方式
TCP 连接

本地运行:

TELNET 客户进程

远程主机运行:

TELNET 服务器进程

3. TELNET 与远程桌面区别

TELNET:

命令行控制
客户端主动登录控制

远程桌面:

图形界面控制
通常需要被控方允许或邀请

4. 网络虚拟终端 NVT

TELNET 使用:

网络虚拟终端 NVT

NVT:

Network Virtual Terminal

作用:

适应不同计算机和操作系统之间的差异

过程:

客户端格式 → NVT格式 → 服务器端格式
服务器端格式 → NVT格式 → 客户端格式

5. TELNET 安全问题

TELNET 有安全风险:

交互性强
可远程执行命令
许多攻击基于 TELNET 漏洞
明文传输,不安全

现在实际应用中更常用:

SSH

6. TELNET 考题

题目:

提供远程终端访问的标准是?

答案:

telnet

十六、WWW 万维网

1. WWW 概述

WWW:

World Wide Web

中文:

万维网

从用户角度看:

WWW 是全球范围内巨大的 Web 页面集合

物理上由大量:

客户计算机
Web 服务器

组成。


2. WWW 的技术三要素

WWW 的三个核心技术:

技术 作用
URL 标识资源位置
HTTP 客户与服务器通信
HTML 描述网页内容

口诀:

URL 定位置
HTTP 传数据
HTML 写网页

3. URL 统一资源定位符

URL:

Uniform Resource Locator

中文:

统一资源定位符

作用:

标志因特网上的各种文档,使每个文档具有唯一标识

URL 一般格式:

协议://主机名:端口号/路径名

例如:

https://www.example.com:443/index.html

其中:

部分 含义
https 协议
www.example.com 主机名
443 端口号
/index.html 路径名

4. HTML 超文本标记语言

HTML:

HyperText Markup Language

中文:

超文本标记语言

作用:

描述网页内容
支持超链接
让网页能在不同计算机上显示

5. HTTP 超文本传输协议

HTTP:

HyperText Transfer Protocol

中文:

超文本传输协议

作用:

浏览器和 Web 服务器之间通信

HTTP 是:

Web 的应用层协议
客户/服务器模式

HTTP 客户:

浏览器

HTTP 服务器:

Web 服务器

6. 浏览器与 Web 服务器使用的协议

题目:

浏览器与 Web 服务器之间使用的协议是?

答案:

HTTP

7. Web 页与对象

Web 页由对象组成。

对象可以是:

HTML 文件
图片
音频
视频
Java 小程序
其他资源

一个 Web 页通常由:

基本 HTML 文件 + 若干引用对象

组成。

每个对象都可以由:

URL 寻址

8. 访问网页的完整过程

假设用户访问:

www.163.com

浏览器显示网页通常经历:

1. 浏览器先进行 DNS 解析,得到服务器 IP 地址
2. 浏览器通过 TCP 与 Web 服务器建立连接
3. 浏览器发送 HTTP 请求报文
4. Web 服务器返回 HTTP 响应报文
5. 浏览器解释 HTML、图片等内容
6. 浏览器把网页显示在屏幕上

9. 已知 URL 但不知道 IP 时需要哪些协议

题目:

假定要从已知的 URL 获得一个万维网文档。
若该万维网服务器的 IP 地址开始时并不知道。
除 HTTP 外,还需要什么应用层协议和传输层协议?

答案:

DNS
UDP
TCP

原因:

需要 DNS 解析域名,DNS 通常使用 UDP
得到 IP 后,HTTP 需要基于 TCP 建立连接

十七、HTTP 协议重点

1. HTTP 的特点

HTTP 主要特点:

客户/服务器模式
面向事务
本身无连接
使用 TCP 保证可靠传输
无状态
报文是 ASCII 文本形式,易读

2. HTTP 面向事务

一次 HTTP 操作称为:

一个事务

例如:

请求一个网页对象
返回一个网页对象

3. HTTP 本身无连接

HTTP 本身无连接的意思:

HTTP 不负责建立运输连接

但 HTTP 使用 TCP,因此传输前已经建立了可靠 TCP 连接。

注意:

HTTP 无连接 ≠ 不使用连接
HTTP 依赖 TCP 连接

4. HTTP 无状态

无状态指:

服务器不记录客户端以前的访问状态

也就是说:

服务器不知道这个用户之前是否访问过
每次请求之间相互独立

为了解决无状态问题,可以使用:

Cookie
Session

5. HTTP 持续连接

HTTP/1.1 默认使用:

持续连接 persistent connection

持续连接指:

Web 服务器发送响应后,仍然保持 TCP 连接一段时间

好处:

同一客户和同一服务器可以继续通过该连接传送后续 HTTP 请求和响应
减少重复建立 TCP 连接的开销
提高访问效率

6. HTTP 请求报文

HTTP 请求报文由客户机发送给服务器。

特点:

ASCII 文本形式
易读

示例:

GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
User-agent: Mozilla/4.0
Connection: close
Accept-language: fr

组成:

请求行
首部行
空行
实体主体

有些请求没有实体主体。


7. HTTP 请求行

请求行格式:

方法 URL路径 HTTP版本

例如:

GET /somedir/page.html HTTP/1.1

其中:

部分 含义
GET 请求方法
/somedir/page.html 对象路径
HTTP/1.1 HTTP 版本

8. 常见 HTTP 请求方法

方法 作用
GET 请求一个对象
POST 提交表单或添加信息
HEAD 请求返回响应报文首部,不返回对象主体

HEAD 常用于:

搜索引擎
网络爬虫
维护检测

9. HTTP 响应报文

HTTP 响应报文由服务器返回给客户机。

示例:

HTTP/1.1 200 OK
Connection: close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 ...
Content-Length: 6821
Content-Type: text/html

data data data ...

组成:

状态行
首部行
空行
实体主体

10. HTTP 响应状态行

状态行格式:

HTTP版本 状态码 状态短语

例如:

HTTP/1.1 200 OK

含义:

HTTP/1.1:协议版本
200:状态码
OK:状态短语

11. 常见 HTTP 首部字段

字段 含义
Connection 是否关闭连接
Date 响应发送时间
Server 服务器软件
Last-Modified 对象最后修改时间
Content-Length 对象长度
Content-Type 对象类型

12. HTTPS

HTTPS:

Secure HyperText Transfer Protocol

简单理解:

HTTPS = HTTP + SSL/TLS

作用:

加密通信
提高安全性

HTTPS 默认端口:

443

HTTP 默认端口:

80

十八、代理服务器与 Web 高速缓存

1. 代理服务器

代理服务器:

proxy server

又称:

Web cache
万维网高速缓存

作用:

代表浏览器发出 HTTP 请求
并缓存最近访问过的请求和响应

2. Web 高速缓存工作过程

如果浏览器请求某个对象:

1. 浏览器先与代理服务器建立 TCP 连接
2. 浏览器向代理服务器发送 HTTP 请求
3. 如果代理服务器已有该对象缓存,直接返回给浏览器
4. 如果没有缓存,代理服务器代表浏览器向源服务器请求
5. 源服务器把对象返回给代理服务器
6. 代理服务器保存副本
7. 代理服务器把对象返回给浏览器

3. 高速缓存的优点

Web 高速缓存的优点:

减少访问因特网服务器的时延
减少外部链路通信量
降低源服务器压力
提高访问速度

十九、Cookie

1. Cookie 的作用

HTTP 是无状态协议。

Cookie 用来:

在 HTTP 服务器和客户之间传递状态信息

网站使用 Cookie 来:

跟踪用户
识别用户
维持会话状态

2. Cookie 工作过程

第一次访问:

1. 客户端发送普通 HTTP 请求
2. 服务器生成唯一识别码
3. 服务器在响应报文中加入 Set-Cookie
4. 客户端保存 Cookie

之后访问:

1. 客户端请求报文中携带 Cookie
2. 服务器根据 Cookie 识别用户
3. 服务器返回个性化响应

示例:

Set-Cookie: 1678

之后客户端请求:

Cookie: 1678

3. Cookie 用途

Cookie 常用于:

身份认证
购物车
推荐广告
用户会话状态
Web 邮件

4. Cookie 缺点

Cookie 的主要问题:

可能泄露用户隐私
站点可以跟踪用户行为
在公共电脑上不安全

二十、电子邮件

1. 电子邮件地址

电子邮件地址格式:

用户名@邮箱所在主机域名

例如:

user@example.com

其中:

user:用户名,在该域名范围内唯一
example.com:邮箱所在主机域名,在全球范围内唯一

2. 电子邮件系统工作方式

电子邮件系统采用:

客户/服务器模式

主要组成:

用户代理 UA
邮件服务器
邮件发送协议
邮件读取协议

3. 用户代理 UA

UA:

User Agent

中文:

用户代理

作用:

编写邮件
发送邮件
接收邮件
阅读邮件
管理邮件

例如:

Outlook
Foxmail
网页邮箱
手机邮箱客户端

4. 邮件服务器

邮件服务器作用:

发送邮件
接收邮件
缓存邮件
保存邮件
转发邮件
向发信人报告投递情况

注意:

邮件服务器既可以作为客户,也可以作为服务器

例如发送邮件时:

发送方邮件服务器作为 SMTP 客户
接收方邮件服务器作为 SMTP 服务器

5. SMTP 简单邮件传送协议

SMTP:

Simple Mail Transfer Protocol

中文:

简单邮件传送协议

作用:

发送邮件

SMTP 使用:

TCP

常用端口:

25

SMTP 支持:

用户代理 → 发送方邮件服务器
发送方邮件服务器 → 接收方邮件服务器

SMTP 不用于:

接收方邮件服务器 → 用户代理

6. POP3 邮局协议

POP3:

Post Office Protocol version 3

作用:

读取 / 接收邮件

使用时通常需要:

用户身份验证

用户代理可以使用 POP3 从邮件服务器下载邮件到本地。


7. SMTP 与 POP3 区别

协议 作用
SMTP 发送邮件
POP3 接收邮件

口诀:

SMTP 发邮件
POP3 收邮件

8. 电子邮件发送过程

完整过程:

1. 发信人运行用户代理编辑邮件
2. 用户代理使用 SMTP 把邮件发送给发件人邮件服务器
3. 发件人邮件服务器把邮件放入邮件缓存队列
4. 发送端邮件服务器中的 SMTP 客户进程发现有待发送邮件
5. 它与接收端邮件服务器建立 TCP 连接
6. 使用 SMTP 把邮件发送给接收端邮件服务器
7. 发送完成后关闭 TCP 连接
8. 接收端邮件服务器把邮件放入收件人邮箱
9. 收件人运行用户代理
10. 用户代理使用 POP3 下载邮件到本地

9. SMTP 判断考点

题目:

下列关于 SMTP 协议的叙述中,错误的是?
A. 只支持传输 7 比特 ASCII 码内容
B. 支持在邮件服务器之间发送邮件
C. 支持从用户代理向邮件服务器发送邮件
D. 支持从邮件服务器向用户代理发送邮件

答案:

D

原因:

SMTP 用于发送邮件
从邮件服务器向用户代理读取邮件通常使用 POP3 或 IMAP

10. 基于万维网的电子邮件

使用网页版邮箱时:

用户 A → 网易邮件服务器:HTTP
网易邮件服务器 → 新浪邮件服务器:SMTP
新浪邮件服务器 → 用户 B:HTTP

也就是说:

用户和网页邮箱服务器之间用 HTTP
邮件服务器之间仍然用 SMTP

二十一、HTTP 与 SMTP 的区别

1. 拉协议和推协议

HTTP 是:

拉协议

含义:

用户主动从服务器拉取信息
TCP 连接由想获取文件的一方发起

SMTP 是:

推协议

含义:

发送方邮件服务器把邮件推送给接收方邮件服务器
TCP 连接由发送邮件的一方发起

2. 数据格式限制

SMTP:

只支持 7 位 ASCII 码格式

如果邮件包含:

图片
声音
中文
二进制文件
非 ASCII 字符

需要:

编码后再传输
接收方再解码

HTTP:

没有 SMTP 的 7 位 ASCII 限制

3. 对象封装方式不同

HTTP:

每个对象封装在各自 HTTP 响应报文中发送

电子邮件:

所有报文对象放在一个邮件报文中发送

二十二、MIME 通用因特网邮件扩充

1. SMTP 的缺点

SMTP 缺点:

不能传送可执行文件或其他二进制对象
限于传送 7 位 ASCII 码
中文、俄文、法文重音字符等不能直接传送
服务器可能拒绝过长邮件
某些 SMTP 实现不完全符合标准

2. MIME 的作用

MIME:

Multipurpose Internet Mail Extensions

中文:

通用因特网邮件扩充

作用:

解决 SMTP 只能传送 7 位 ASCII 的问题

MIME 可以让邮件支持:

中文
图片
声音
视频
附件
二进制文件

3. MIME 和 SMTP 的关系

注意:

MIME 没有改动 SMTP
MIME 没有取代 SMTP

MIME 的做法:

继续使用 SMTP
增加邮件主体结构
定义非 ASCII 数据的编码规则

过程:

非 ASCII 数据 → MIME 编码 → 7 位 ASCII → SMTP 传输
SMTP 接收 → MIME 解码 → 原始数据

二十三、DHCP 动态主机配置协议

1. DHCP 的作用

DHCP:

Dynamic Host Configuration Protocol

中文:

动态主机配置协议

作用:

自动给主机分配网络配置信息

包括:

IP 地址
子网掩码
默认网关
DNS 服务器地址
租用时间

2. DHCP 使用场景

例如:

手机连接 WiFi
电脑连接校园网
电脑连接公司网络

设备通常不需要手动配置 IP,而是通过 DHCP 自动获取。


3. DHCP 使用的运输层协议

DHCP 使用:

UDP

常用端口:

角色 端口
DHCP 服务器 67
DHCP 客户端 68

口诀:

DHCP:服务器 67,客户端 68

二十四、常见协议和端口号总结

协议 作用 运输层协议 端口号
DNS 域名解析 UDP 53
FTP 控制连接 命令和应答 TCP 21
FTP 数据连接 文件数据传输 TCP 20
TFTP 简单文件传输 UDP 69
TELNET 远程终端 TCP 23
HTTP Web 访问 TCP 80
HTTPS 安全 Web 访问 TCP 443
SMTP 发送邮件 TCP 25
POP3 接收邮件 TCP 110
DHCP 服务器 自动分配地址 UDP 67
DHCP 客户端 自动获取地址 UDP 68

二十五、容易混淆点总结

1. DNS 查询条数

如果本地域名服务器没有缓存,并采用迭代查询:

用户主机:1 条请求
本地域名服务器:多条请求

答案:

1 条,多条

2. DNS 瘫痪是否影响邮件

答案:

影响

原因:

发送邮件需要根据邮箱域名查询邮件服务器地址
通常需要 DNS 查询 MX 记录

3. FTP 控制连接是否传文件

答案:

不传

区别:

控制连接:传命令和应答
数据连接:传文件

4. FTP 和 TFTP 区别

FTP:TCP,可靠,功能多,支持交互
TFTP:UDP,简单,功能少,不支持交互

5. HTTP 和 SMTP 区别

HTTP:拉协议
SMTP:推协议
HTTP:获取网页对象
SMTP:发送邮件

6. HTTP 无状态如何解决

可以使用:

Cookie
Session

7. Web 访问可能用到哪些协议

访问大学官网可能用到:

DNS
UDP
ARP
TCP
HTTP
PPP

一般不可能用到:

SMTP

原因:

SMTP 是发送电子邮件协议,浏览网页一般不会用到

二十六、课后题答案整理

1. DNS 迭代查询请求条数

题目:

如果本地域名服务无缓存,当采用迭代方法解析另一网络某主机域名时,
用户主机和本地域名服务器发送的域名请求条数分别为?

答案:

1 条,多条

2. 域名服务器是一个数据库系统

答案:

正确

3. DNS 瘫痪不影响发送电子邮件

答案:

错误

4. FTP 控制连接不用来传送文件,数据连接传文件,两者都用 TCP

答案:

正确

5. FTP 和 TFTP 多选

答案:

A B C D

6. 浏览器与 Web 服务器之间使用的协议

答案:

HTTP

7. 提供远程终端访问的标准

答案:

telnet

8. FTP 站点访问格式

题目:

FTP 站点 IP 为 192.168.1.100,端口号 2020,
浏览器地址栏输入什么?

答案:

ftp://192.168.1.100:2020

9. 已知 URL 获取万维网文档,服务器 IP 不知道,除 HTTP 外需要哪些协议

答案:

DNS
UDP
TCP

原因:

DNS 用于域名解析
DNS 通常使用 UDP
HTTP 使用 TCP

10. 使用浏览器访问大学 Web 网站主页时,不可能使用到的协议

答案:

SMTP

原因:

SMTP 是发送电子邮件协议,浏览网页一般不会用到

二十七、期末高频简答题

1. 简述 DNS 的作用

DNS 是域名系统,用于:

把主机域名解析为对应的 IP 地址

用户访问网站时通常输入域名,计算机必须通过 DNS 得到服务器 IP 地址后才能进行通信。

DNS 是:

分布式数据库系统

由:

根域名服务器
顶级域名服务器
权限域名服务器
本地域名服务器

共同完成解析。


2. 简述 DNS 递归查询和迭代查询的区别

递归查询是:

请求方要求被查询服务器给出最终结果

如果被查询服务器不知道,也要继续代替请求方查询。

迭代查询是:

被查询服务器如果不知道最终结果,
只告诉请求方下一步应查询哪个服务器

通常:

用户主机向本地域名服务器使用递归查询
本地域名服务器向根、顶级、权限域名服务器使用迭代查询

3. 简述 FTP 为什么使用两个 TCP 连接

FTP 使用:

控制连接
数据连接

两个 TCP 连接。

控制连接使用端口:

21

用于:

传输命令和应答

并在整个会话期间保持打开。

数据连接使用端口:

20

用于:

实际传输文件数据

文件传输结束后关闭。

这样可以:

使协议更简单
在传输文件时继续通过控制连接发送控制命令

4. 简述 TFTP 的特点

TFTP 是:

简单文件传送协议

使用:

客户/服务器方式
UDP 数据报

由于 UDP 不可靠,因此 TFTP 需要自己实现差错控制。

TFTP 特点:

只支持文件传输
不支持交互
没有列目录功能
不能进行用户身份鉴别
每个数据块通常包含 512 字节数据
工作方式类似停止等待协议

5. 简述 HTTP 的特点

HTTP 是:

超文本传输协议

是 Web 的应用层协议。

HTTP 采用:

客户/服务器方式

浏览器作为客户,Web 服务器作为服务器。

HTTP 特点:

面向事务
本身无连接
使用 TCP 提供可靠传输
无状态
HTTP/1.1 支持持续连接

持续连接可以:

在同一 TCP 连接上传送多个请求和响应

6. 简述 Cookie 的作用和缺点

HTTP 是无状态协议。

Cookie 用于:

在 HTTP 客户和服务器之间传递状态信息

服务器可以为用户生成唯一识别码,通过:

Set-Cookie

发送给客户端。

客户端以后访问时携带 Cookie,服务器即可识别用户。

Cookie 可用于:

身份认证
购物车
推荐广告
会话状态维护

缺点:

可能泄露用户隐私
网站可以跟踪用户行为
公共电脑上使用不安全

7. 简述电子邮件的发送和接收过程

完整过程:

1. 发信人使用用户代理编辑邮件
2. 用户代理使用 SMTP 将邮件发送给发件人邮件服务器
3. 发件人邮件服务器将邮件放入缓存队列
4. 发送端邮件服务器使用 SMTP 与接收端邮件服务器建立 TCP 连接
5. 发送端邮件服务器使用 SMTP 发送邮件
6. 接收端邮件服务器将邮件放入收件人邮箱
7. 收件人运行用户代理
8. 用户代理通过 POP3 等邮件读取协议从邮件服务器读取或下载邮件

8. 简述 SMTP 和 HTTP 的区别

HTTP 是:

拉协议

用户主动从服务器拉取网页对象。

SMTP 是:

推协议

发送方邮件服务器主动把邮件推送给接收方邮件服务器。

HTTP 对传输数据格式没有 SMTP 那样的:

7 位 ASCII 限制

SMTP 原本只能传输:

7 位 ASCII 码

传输中文、图片、声音等内容需要:

MIME 编码

HTTP:

每个对象封装在各自的响应报文中发送

电子邮件:

通常把多个对象放入一个邮件报文中发送

二十八、本章重要结论汇总

1. 应用层作用

规定不同主机上的应用进程之间如何交换数据

2. DNS

DNS:域名 → IP 地址
DNS 是分布式数据库系统
用户主机通常向本地域名服务器递归查询
本地域名服务器通常向其他域名服务器迭代查询

3. FTP

FTP 使用 TCP
控制连接端口 21
数据连接端口 20
控制连接传命令和应答
数据连接传文件

4. TFTP

TFTP 使用 UDP
端口 69
功能简单
不支持交互
没有列目录功能
不能身份鉴别
类似停止等待协议

5. TELNET

TELNET:远程终端协议
使用 TCP
使用 NVT 适配不同系统
明文传输,不安全
现在常用 SSH 替代

6. WWW

WWW 三要素:URL、HTTP、HTML
URL 定位置
HTTP 传数据
HTML 写网页

7. HTTP

HTTP:Web 的应用层协议
使用 TCP
默认端口 80
本身无连接
无状态
HTTP/1.1 默认持续连接

8. HTTPS

HTTPS = HTTP + SSL/TLS
默认端口 443
作用是加密通信

9. Cookie

Cookie 用于在 HTTP 客户和服务器之间传递状态信息
可用于身份认证、购物车、会话状态
缺点是可能泄露隐私

10. 电子邮件

SMTP:发送邮件,TCP 25
POP3:接收邮件,TCP 110
MIME:解决 SMTP 只能传 7 位 ASCII 的问题

11. DHCP

DHCP:动态分配 IP 地址
使用 UDP
服务器端口 67
客户端端口 68

二十九、本章考前速记

1. DNS

DNS:域名变 IP
UDP 53
分布式数据库系统
递归:必须给最终答案
迭代:告诉下一步问谁
无缓存迭代:用户 1 条,本地域名服务器多条

2. DNS 服务器

根域名服务器
顶级域名服务器
权限域名服务器
本地域名服务器

3. DNS 记录

A:域名 → IPv4
NS:权威域名服务器
CNAME:别名
MX:邮件服务器

4. FTP

FTP:TCP 两连接
21 控制连接:命令和应答
20 数据连接:传文件

5. TFTP

TFTP:UDP 69
简单文件传输
512 字节数据块
像停止等待协议
不支持交互
不能列目录
不能身份鉴别

6. TELNET

TELNET:远程终端
TCP 23
使用 NVT
明文传输,不安全

7. WWW

URL:定位资源
HTTP:传输网页
HTML:描述网页

8. HTTP

HTTP:TCP 80
HTTPS:TCP 443
HTTP 本身无连接
HTTP 无状态
Cookie / Session 解决状态问题
HTTP/1.1 默认持续连接

9. HTTP 方法

GET:请求对象
POST:提交信息
HEAD:只要首部,不要主体

10. 邮件

SMTP:发邮件,TCP 25
POP3:收邮件,TCP 110
MIME:让邮件支持中文、图片、附件等

11. HTTP 与 SMTP

HTTP:拉协议
SMTP:推协议
HTTP 无 7 位 ASCII 限制
SMTP 原本只能传 7 位 ASCII

12. DHCP

DHCP:自动分配 IP
UDP
服务器 67
客户端 68

13. 必背端口号

DNS:UDP 53
FTP 控制:TCP 21
FTP 数据:TCP 20
TFTP:UDP 69
TELNET:TCP 23
HTTP:TCP 80
HTTPS:TCP 443
SMTP:TCP 25
POP3:TCP 110
DHCP 服务器:UDP 67
DHCP 客户端:UDP 68
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐