6.1 域名系统 DNS

DNS (Domain Name System)
将域名解析为 IP 地址的分布式层次数据库系统,采用 UDP 协议,端口 53。DNS 采用层次树状结构:根域名 → 顶级域名(TLD) → 二级域名 → …。

域名层次示例:www.example.com.(末尾点为根,通常省略)

查询方式

方式过程典型位置
递归查询被请求方负责完成全部查询并返回最终结果主机 → 本地域名服务器
迭代查询被请求方返回下一步应查询的服务器地址,由请求方继续本地域名服务器 → 根/TLD/权威
记忆:客户端对本地服务器是"递归"(你帮我查到底),本地服务器对外部是"迭代"(我自己逐级问)。
解析顺序:浏览器缓存 → 操作系统缓存(hosts)→ 本地域名服务器缓存 → 上述逐级查询。命中缓存则直接返回,极大提升效率。

6.2 万维网与 HTTP

HTTP (HyperText Transfer Protocol)
超文本传输协议,基于 TCP,默认端口 80。是无状态协议,可通过 Cookie 维持状态。

HTTP 报文分为请求报文与响应报文。

请求方法

方法含义
GET请求读取 URL 标识的信息
POST向服务器提交数据(表单)
HEAD请求响应首部,不含体
PUT上传/替换资源
DELETE删除资源

HTTP 版本

版本特点
HTTP/1.0非持久连接,每个对象需单独建立 TCP
HTTP/1.1持久连接(keep-alive),可流水线
HTTPSHTTP + SSL/TLS,端口 443,加密传输
状态码:1xx 信息;2xx 成功(200 OK);3xx 重定向(301/302);4xx 客户端错误(404 Not Found);5xx 服务器错误(500)。

HTTP 请求-响应过程动画

演示浏览器与Web服务器之间的HTTP请求响应完整过程:DNS解析→TCP连接→HTTP请求→服务器处理→HTTP响应→浏览器渲染→TCP关闭。

HTTP 请求响应过程

交互式动画
速度 1x
步骤 0/0

6.3 文件传输协议 FTP

FTP (File Transfer Protocol)
基于 TCP 的文件传输协议,使用两个连接:控制连接(端口 21)与数据连接(端口 20)。控制连接贯穿整个会话,数据连接按需建立。
模式数据连接建立方式
主动模式 PORT服务器从端口 20 主动连接客户端指定端口
被动模式 PASV服务器开放端口,由客户端主动连接
FTP vs HTTP:FTP 使用两个 TCP 连接(控制+数据),HTTP 单连接;FTP 有状态(保持登录),HTTP 无状态。

6.4 电子邮件协议

电子邮件系统由三部分构成:用户代理 UA、邮件服务器、协议(SMTP/POP3/IMAP)。

协议作用传输层端口
SMTP发送邮件(推送),客户端→服务器、服务器→服务器TCP25
POP3接收邮件(拉取),下载后可删除TCP110
IMAP接收邮件,邮件保留在服务器,支持文件夹TCP143
SMTP
简单邮件传输协议,推送式工作。发送方邮件服务器通过 SMTP 把邮件推送给接收方邮件服务器。SMTP 只能传送 ASCII 文本,多用途扩展 MIME 支持二进制/多媒体。

邮件发送流程:

关键点:SMTP 是"推",POP3/IMAP 是"拉"。邮件在服务器间只能用 SMTP。

6.5 网络应用模型

网络应用在体系结构上可划分为客户/服务器模型(C/S)、对等模型(P2P)以及二者结合的混合模型。

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

Client/Server Model
一端为服务器(Server),提供共享资源与服务;另一端为客户机(Client),发起请求并获得服务。服务器持续运行并监听固定端口,客户机按需主动连接。
特点说明
主从结构服务器是核心,客户机之间不能直接通信
集中式管理所有资源和数据集中存放在服务器
易维护升级只需在服务器端进行
可扩展性差服务器端易成为性能瓶颈
单点故障服务器宕机则整个系统不可用
典型应用:HTTP/HTTPS、FTP、SMTP、POP3、DNS、数据库系统等。

对等模型(P2P)

Peer-to-Peer Model
网络中每个节点(Peer)地位平等,既充当客户机又充当服务器,节点之间直接共享资源,无需中央服务器。
特点说明
去中心化没有单一中心节点,所有节点功能对等
可扩展性强节点越多,整体服务能力越强
鲁棒性好单个节点失效不影响整体运行
管理复杂资源发现与调度难度大
安全风险高节点匿名,易存在恶意节点与版权问题

典型应用:

混合模型(Hybrid)

Hybrid Model
结合 C/S 与 P2P:通过一个或多个中心服务器完成用户认证、目录索引等轻量功能,而实际的数据传输在节点之间直接进行。

典型代表:Skype

小结:C/S 简单可靠但扩展性差;P2P 扩展性强但管理复杂;混合模型在二者之间取得平衡,是当前大规模实时通信与内容分发的主流架构。

6.6 MIME 协议

MIME (Multipurpose Internet Mail Extensions)
多用途互联网邮件扩展。在基本 SMTP 之上扩展,使邮件能够支持非 ASCII 文本、二进制附件、图像、音视频等多媒体内容。MIME 并不替代 SMTP,而是通过新增邮件首部与编码规则来扩展 SMTP 的承载能力。

MIME 报文结构

MIME 报文由首部(Headers)主体(Body)构成,主体通过边界(boundary)区分不同部分。关键首部字段如下:

首部字段含义示例
Content-Type声明主体的媒体类型text/plain、image/jpeg、application/pdf
Content-Transfer-Encoding声明主体采用的编码方式7bit、quoted-printable、base64
Content-ID为报文部分定义唯一标识,便于在其他部分引用CID: logo@example.com
Content-Disposition指示是内联显示还是作为附件下载attachment; filename="report.pdf"
MIME-Version声明 MIME 版本1.0
Content-Type (multipart)多部分报文的类型与边界multipart/mixed; boundary="----=_Part_1"

MIME 编码方式

编码方式原理适用场景
7bit直接传输 ASCII 字符,每字节高位为 0纯英文文本
Quoted-Printable非打印字节用"=XX"表示(XX 为十六进制)含少量非 ASCII 字符(如中文、法语重音)的文本
Base64每 3 字节二进制数据编码为 4 个 ASCII 字符,使用 A–Z、a–z、0–9、+、/ 共 64 个字符任意二进制数据(图片、压缩包、可执行文件)
8bit / Binary扩展编码,需 ESMTP 服务器支持已较少使用

MIME 与 SMTP / POP3 的关系

记忆:MIME = 首部规范 + 编码方案,它让 SMTP 邮件从"纯文本信封"升级为"可装载任意内容的集装箱"。

6.7 DHCP 动态主机配置协议

DHCP (Dynamic Host Configuration Protocol)
动态主机配置协议,用于自动为网络中的主机分配 IP 地址及相关网络参数(如子网掩码、网关、DNS 服务器等)。基于 UDP,默认使用服务器端口 67、客户端端口 68。

DHCP 工作流程

DHCP 交互由四个典型报文组成,常被称为 DORA 流程(Discover → Offer → Request → Ack)。

阶段报文方向关键说明
① 发现DHCP Discover客户端 → 服务器客户端以 0.0.0.0 为源、255.255.255.255 广播,寻找可用 DHCP 服务器
② 提供DHCP Offer服务器 → 客户端服务器在可用地址池中选择 IP,以单播或广播回送 Offer
③ 请求DHCP Request客户端 → 服务器客户端在多个 Offer 中选择一个,向对应服务器请求租用该 IP
④ 确认DHCP ACK服务器 → 客户端服务器确认租用,下发完整配置参数(租期、DNS、网关等)
续租:租期到达 50% 时,客户端向原服务器单播 Request 续租;若失败,在 87.5% 时以广播形式重新请求。

DHCP 报文格式

字段长度(字节)含义
OP1操作码:1=BOOTREQUEST(客户端),2=BOOTREPLY(服务器)
HTYPE1硬件类型(1=以太网)
HLEN1硬件地址长度(6=MAC 地址)
HOPS1跳数,由 DHCP 中继递增
XID4事务 ID,用于匹配请求与响应
SECS2客户端等待时间
FLAGS2标志位(是否广播响应)
CIAddr4客户端 IP(已有 IP 时填入)
YIAddr4服务器分配给客户端的 IP("你"的 IP)
SIAddr4下一个服务器 IP(用于引导)
GIAddr4网关 IP(由中继填入)
CHAddr16客户端硬件地址(MAC)
SName64服务器主机名
File128引导文件名
Options可变选项字段(子网掩码、DNS、网关、租期等)

DHCP 的应用场景

优缺点:DHCP 显著降低了 IP 管理成本,支持移动设备的频繁接入;但广播机制本身存在安全隐患(DHCP 嗅探、伪造 DHCP 服务器),需通过 DHCP Snooping、端口安全等机制加固。