第六章 应用层
10 分钟阅读4,162 字43 个小节
第六章 应用层
6.1 网络应用模型
| 模型 | 特点 | 典型应用 |
|---|---|---|
| C/S | 集中管理、固定服务器IP、易维护 | Web、Email、FTP |
| P2P | 无专用服务器、分布协同、扩展性好 | BitTorrent、区块链 |
6.2 DNS(域名系统)
一、层次域名空间
域名结构:主机名.三级域名.二级域名.顶级域名(如 www.cs.pku.edu.cn)
二、4类域名服务器
| 类型 | 功能 |
|---|---|
| 根域名服务器 | 全球13组(a~m),知道所有顶级域名服务器地址 |
| 顶级域名服务器 | 管理 .com/.org/.cn 等,知道权威服务器地址 |
| 权威域名服务器 | 管理某个区域的域名→IP映射 |
| 本地域名服务器 | 用户首先查询的服务器,有缓存 |
三、递归查询 vs 迭代查询
- 递归:客户端→本地DNS→代为查询到底 → 结果返回客户端
- 迭代:本地DNS→根→"去找顶级"→本地DNS→顶级→"去找权威"→本地DNS→权威→结果
DNS最大查询次数计算
迭代查询(无缓存):本地→根(1)→回(2)→本地→顶级(3)→回(4)→本地→权威(5)→回(6) = 最多6次UDP交互(3个请求+3个响应)
若算上客户端→本地DNS的一来一回,则共 8次。
6.3 FTP(文件传输协议)
| 连接 | 端口 | 特点 |
|---|---|---|
| 控制连接 | TCP 21 | 持久,传命令和应答 |
| 数据连接 | TCP 20(主动)/ 随机(被动) | 非持久,传文件数据 |
PORT(主动)vs PASV(被动)模式
| 模式 | 数据连接发起方 | 端口 | 说明 |
|---|---|---|---|
| PORT(主动) | 服务器→客户端 | 服务器用20 | 客户端可能被防火墙阻断 |
| PASV(被动) | 客户端→服务器 | 服务器随机高端口 | 更适合NAT/防火墙环境 |
FTP 是典型的带外控制(控制信息与数据在不同连接上传输)。
6.4 电子邮件
一、系统组成
- 用户代理(UA):撰写、阅读邮件(如Outlook)
- 邮件服务器:存储邮箱和消息队列
- 协议:SMTP推送、POP3/IMAP拉取
二、SMTP 三阶段
| 阶段 | 内容 |
|---|---|
| 建立连接 | 客户端 TCP 连接服务器 25 端口,服务器回复 220 就绪 |
| 邮件传送 | HELO→MAIL FROM→RCPT TO→DATA→邮件内容→.结束 |
| 连接释放 | QUIT 关闭连接 |
- SMTP 只能传 7位ASCII,非ASCII内容需 MIME 编码扩展
- SMTP 是推协议
三、POP3 vs IMAP
| 对比 | POP3 | IMAP |
|---|---|---|
| 端口 | 110 | 143 |
| 邮件管理 | 下载到本地,服务器可删除 | 在服务器上管理,支持文件夹 |
| 离线使用 | 适合 | 需在线 |
6.5 WWW 与 HTTP(⭐⭐⭐⭐)
- URL、HTTP、HTML 三支柱
- HTTP特性:无状态(应用层语义,每次请求独立)
- 底层使用 TCP
一、HTTP版本差异(⭐ 高频选择)
| 版本 | 连接方式 | 特点 |
|---|---|---|
| HTTP/1.0 | 非持久连接 | 每个对象一个TCP连接,2RTT/对象 |
| HTTP/1.1 | 持久连接(默认) | 流水线/非流水线,减少连接建立开销 |
| HTTP/2.0 | 持久+多路复用 | 二进制分帧、头部压缩、服务器推送 |
| HTTP/3 | 基于QUIC(UDP) | 0-RTT建连、改进队头阻塞、连接迁移 |
二、Cookie 机制
- 服务器在响应中设置
Set-Cookie→ 浏览器存储 - 后续请求自动携带
Cookie头 - 存储在客户端(浏览器),不在服务器
- 用途:会话跟踪、用户识别、购物车
三、HTTP报文格式
- 请求报文:请求行(方法 URL 版本)+ 首部行 + 空行 + 实体体
- 响应报文:状态行(版本 状态码 短语)+ 首部行 + 空行 + 实体体
- 常见方法:GET / POST / HEAD / PUT / DELETE
- 常见状态码:200 OK / 301 永久重定向 / 404 未找到 / 500 服务器错误
四、HTTP时延计算模板
| 场景 | RTT近似 |
|---|---|
| 非持久、无并行 | 每对象2RTT |
| 非持久、并行连接 | 基页2RTT + 引用对象2RTT(并行下载) |
| 持久、非流水线 | 建连1RTT + 每对象1RTT |
| 持久、流水线 | 建连1RTT + 请求1RTT + 传输时间 |
HTTP RTT + 慢开始 cwnd 组合计算(⭐ 2022/2024真题)
典型题型:请求一个大小为 的对象,TCP MSS=M,初始cwnd=1 MSS。
- 第1个RTT:建立TCP连接(SYN/SYN-ACK/ACK)
- 第2个RTT:发送HTTP请求 + 服务器开始响应
- 慢开始传输:第1轮发 1 MSS,第2轮发 2 MSS,第3轮发 4 MSS,...
- 第 轮累计发送 个 MSS
- 需要 轮使 ,再加上建连和请求的2RTT
总时延 ≈
📝 真题锚点:HTTP RTT 计算在 2022、2024、2025 连续考查。
📌 第六章总结
- DNS 4类服务器 + 迭代/递归查询次数是高频选择/简答
- FTP PORT/PASV、SMTP 三阶段是常考对比题
- HTTP版本差异(1.0 vs 1.1 vs 2.0/3)+ Cookie机制必须熟记
- HTTP RTT + TCP慢开始 cwnd 组合计算是近年大题热点
- 网络安全:对称(AES) vs 非对称(RSA)、数字签名(私钥签公钥验)、CA证书、TLS握手 = 必考知识点
- 关联陷阱编号:#10 #21 #22 #23
🎯 第六章 Top-Down 案例模板(应用需求驱动协议选择)
| 步骤 | 提问模板 | 本章落点 |
|---|---|---|
| 场景 | 是查询、文件、邮件还是网页? | DNS/FTP/SMTP/HTTP |
| 交互 | 是短事务还是长连接? | 非持久 vs 持久 |
| 计算 | 题目问总RTT还是传输轮次? | HTTP RTT + cwnd 组合 |
| 判分 | 默认端口/传输层写全了吗? | TCP/UDP 与端口匹配 |
6.6 网络安全基础(⭐⭐⭐ 408考纲要求)
一、网络安全威胁
| 威胁类型 | 说明 | 对应安全目标 |
|---|---|---|
| 截获(被动攻击) | 窃听通信内容 | 机密性 |
| 篡改(主动攻击) | 修改报文内容 | 完整性 |
| 伪造(主动攻击) | 冒充合法通信方 | 认证性 |
| 中断(主动攻击) | 使系统不可用 | 可用性 |
⚠️ 被动攻击难检测(不改变数据),主动攻击可检测但难防止。
二、密码体制
1. 对称加密(私钥加密)
- 加密密钥 = 解密密钥
- 优点:速度快,适合大量数据
- 缺点:密钥分发困难( 方通信需 个密钥)
| 算法 | 密钥长度 | 类型 | 特点 |
|---|---|---|---|
| DES | 56位 | 分组密码 | 已不安全,被AES替代 |
| 3DES | 112/168位 | 分组密码 | DES三轮加密(加-解-加) |
| AES | 128/192/256位 | 分组密码 | 当前标准,安全高效 |
| RC4 | 可变长 | 流密码 | 曾用于WEP/早期TLS |
2. 非对称加密(公钥加密)⭐
- 公钥(PK)公开,私钥(SK)保密
- 用公钥加密 → 私钥解密(保密通信)
- 用私钥加密 → 公钥解密(数字签名)
- 代表算法:RSA(基于大整数分解难题)
⚠️ 陷阱:非对称加密速度远慢于对称加密,实际中常用非对称加密传递对称密钥(混合加密)。
3. 对称 vs 非对称 对比(⭐ 高频选择)
| 对比项 | 对称加密 | 非对称加密 |
|---|---|---|
| 密钥数量 | (每人一对) | |
| 加解密速度 | 快 | 慢(约慢100-1000倍) |
| 密钥分发 | 困难 | 公钥可公开分发 |
| 典型用途 | 数据加密 | 密钥交换、数字签名 |
| 代表算法 | AES、DES | RSA |
三、数字签名⭐
功能:同时实现认证(确认发送方身份)和完整性(报文未被篡改),且具有不可否认性。
签名过程:
- 发送方用自己的私钥 对报文摘要签名
- 接收方用发送方的公钥 验证签名
⚠️ 数字签名用私钥签、公钥验;保密通信用公钥加、私钥解。两者方向相反!
报文摘要(哈希函数):
- MD5(128位摘要)、SHA-1(160位摘要)、SHA-256(256位摘要)
- 特性:单向性、抗碰撞性、固定长度输出
- 作用:对摘要而非整篇报文签名,大幅提高效率
四、数字证书与CA⭐
问题:公钥如何确认确实属于声称的拥有者?→ CA(Certificate Authority,证书颁发机构)
数字证书内容:
- 公钥拥有者信息 + 公钥本身 + CA签名 + 有效期 + 序列号
信任链:
- CA 用自己的私钥对证书签名
- 任何人用 CA 的公钥验证证书真伪
- 根 CA → 中间 CA → 终端证书(层级信任)
五、SSL/TLS(安全套接字层/传输层安全)⭐
位置:介于应用层与传输层之间(在TCP之上)
核心功能:
| 功能 | 实现方式 |
|---|---|
| 机密性 | 对称加密(AES)加密数据 |
| 完整性 | MAC(消息认证码)校验 |
| 认证 | 数字证书 + 非对称加密(RSA/ECDHE) |
TLS握手过程(简化):
- Client Hello:客户端支持的TLS版本、加密套件、随机数
- Server Hello:选择加密套件、随机数、发送服务器证书
- 密钥交换:客户端验证证书 → 生成预主密钥(用服务器公钥加密发送)
- 会话密钥生成:双方用 预主密钥 → 派生对称会话密钥
- Change Cipher Spec:双方切换到加密通信
📝 考试要点:TLS 使用混合加密——非对称加密交换密钥、对称加密传输数据。HTTPS = HTTP + TLS(端口443)。
六、防火墙
| 类型 | 工作层次 | 特点 |
|---|---|---|
| 分组过滤 | 网络层 | 检查IP/端口/协议号,速度快但不能检查应用数据 |
| 应用网关(代理) | 应用层 | 可检查报文内容,安全性高但开销大 |
| 状态检测 | 网络层+传输层 | 跟踪连接状态,兼顾安全和效率 |
📌 网络安全小结
- 对称加密快但分发难,非对称加密解决密钥分发
- 数字签名 = 私钥签 + 公钥验,≠ 加密方向
- CA 证书解决公钥可信问题
- SSL/TLS = 非对称换密钥 + 对称加数据 + 证书认证
- 防火墙三类:分组过滤(快)、应用网关(安全)、状态检测(折中)
- 关联陷阱编号:(无直接对应,但 #10 HTTP无连接易与HTTPS混淆)
6.7 跨层闭环复盘(Top-Down 精华落地)
一、从用户动作反推各层机制
以“打开网页”为例,建议按下表倒推:
| 用户动作 | 立即问题 | 关键协议 | 典型错误点 |
|---|---|---|---|
| 输入URL回车 | 域名怎么变IP | DNS | 把递归/迭代混为一谈 |
| 浏览器发请求 | 请求报文如何组织 | HTTP | 忘记“无状态≠不用TCP” |
| 首包建立连接 | 如何确认双方收发能力 | TCP三次握手 | 误写“两次也可” |
| 连续数据传输 | 如何防拥塞和保可靠 | TCP窗口+拥塞控制 | cwnd/ssthresh变化写错 |
| 跨网转发 | 下一跳如何确定 | IP + 路由协议 | RIP更新规则漏“同下一跳无条件替换” |
| 单链路发送 | 谁先发、冲突怎么办 | CSMA/CD 或 CSMA/CA | CD 与 CA 适用场景混淆 |
| 信号上传输 | 最大速率是多少 | 奈奎斯特/香农 | 忘记“取MIN” |
二、基础薄弱同学三层学习法
- 先会讲人话:每个协议先用一句话说清“解决什么痛点”
- 再会画流程:握手、分片、路由更新、DNS查询必须能手画时序
- 最后会算题:只在“变量定义正确”后代公式,禁止先代数后理解
三、答题严谨性检查清单(交卷前30秒)
- 是否写清“层次”与“主体”(主机/路由器/交换机)
- 是否标注关键单位(bit/s、B、RTT、MSL、跳数)
- 是否写出边界条件(如窗口上限、16=不可达、分片偏移单位8B)
- 是否给出结论口径(例如“默认情况”“在Reno下”“在无缓存条件下”)
七、408计算机网络高频失分陷阱速查表(⭐ 考前必看)
| # | 陷阱描述 | 正确结论 |
|---|---|---|
| 1 | 30dB 当成 S/N=30 | 应换算为 |
| 2 | SR 认为ACK累积 | SR是逐帧ACK,不累积 |
| 3 | 交换机隔离广播域 | 交换机隔离冲突域,不隔离广播域 |
| 4 | IP分片在路由器重组 | 重组仅在目的主机 |
| 5 | DHCP全流程都单播 | Discover/Request 用广播,Offer/ACK 取决于客户端 broadcast 标志位(常考默认广播) |
| 6 | NAT不改端口 | NAT常需改端口以区分会话 |
| 7 | IPv6仍有首部校验和 | IPv6取消首部校验和 |
| 8 | TCP第三次握手不能带数据 | 可以携带数据 |
| 9 | 超时与三重ACK处理一样 | 超时更严重,cwnd回到1;三重ACK走快恢复 |
| 10 | HTTP无连接=不用TCP | HTTP基于TCP,所谓无连接是应用语义 |
| 11 | 奈奎斯特和香农只用一个 | 必须两个都算,取MIN |
| 12 | SR窗口可以任意大 | SR窗口约束: |
| 13 | ARP请求是单播 | ARP请求是广播,响应才是单播 |
| 14 | 三次握手就是两次也行 | 两次无法防止已失效的旧连接请求 |
| 15 | TIME-WAIT可以省略 | 必须等2MSL:确保最后ACK到达+旧报文消亡 |
| 16 | 快恢复时cwnd=ssthresh/2 | Reno快恢复:cwnd=ssthresh+3MSS |
| 17 | RIP收到更好路径才更新 | 若下一跳相同,无条件替换(不论距离大小) |
| 18 | OSPF和RIP都用UDP传输 | OSPF直接封装在IP(协议号89),不用传输层 |
| 19 | IPv6地址中::可出现多次 | 零压缩::在一个地址中只能出现一次 |
| 20 | ICMP对任何报文都发差错 | 4种情况不发差错:ICMP差错报文、非首片、组播、特殊地址 |
| 21 | FTP数据连接始终用端口20 | 仅PORT模式用20,PASV模式用随机高端口 |
| 22 | DNS只用UDP | DNS通常用UDP,但区域传送和超过512B时使用TCP |
| 23 | 数字签名用公钥签名 | 数字签名用私钥签、公钥验,与加密方向相反 |
陷阱↔正文双向索引(定位复盘)
| 章节 | 对应陷阱编号 | 快速复盘建议 |
|---|---|---|
| 第一章 体系结构 | #3 #10 | 优先复盘“层次职责”和“语义口径” |
| 第二章 物理层 | #1 #11 | 先单位换算,再做容量上限 |
| 第三章 数据链路层 | #2 #12 #13 | 先判协议类型,再判确认/窗口 |
| 第四章 网络层 | #4 #5 #6 #7 #17 #18 #19 #20 | 先判是否跨网,再判编址/路由机制 |
| 第五章 传输层 | #8 #9 #14 #15 #16 | 先判事件触发(超时/3ACK),再写cwnd分支 |
| 第六章 应用层 | #10 #21 #22 #23 | 先判应用场景,再写端口与传输层;安全题先判加密方向 |
双向使用方式:
- 从章节复习时先看“关联陷阱编号”;
- 从陷阱表刷题时反查“对应章节”做二次巩固。
八、计网冲刺执行策略(30天)
1) 第1阶段(1-10天):模型建立
- 每天1章主干 + 20道客观题
- 必背:信道公式、窗口约束、编址规则、TCP状态
2) 第2阶段(11-20天):大题模板
- 专练:子网划分/CIDR、滑动窗口、TCP拥塞演化、HTTP RTT
- 每天至少复盘2道“算错题”
3) 第3阶段(21-30天):限时实战
- 按整套408节奏训练
- 形成“错因标签”:概念错 / 计算错 / 审题错 / 粗心错
最终目标
把计网从“会看懂”升级为“限时做对”。
九、常用端口速记表
| 协议 | 端口 | 传输层 |
|---|---|---|
| FTP数据 | 20 | TCP |
| FTP控制 | 21 | TCP |
| TELNET | 23 | TCP |
| SMTP | 25 | TCP |
| DNS | 53 | UDP/TCP |
| HTTP | 80 | TCP |
| POP3 | 110 | TCP |
| SNMP | 161 | UDP |
| DHCP服务器/客户端 | 67/68 | UDP |
| BGP | 179 | TCP |
十、考前30秒速查卡(公式 + 边界条件 + 单位)
1) 高频公式
- 发送时延:(单位:s)
- 传播时延:(单位:s)
- 奈奎斯特:(无噪)
- 香农:(有噪)
- SR窗口约束:
- 发送窗口:
2) 必写边界
- RIP:最大15跳,16=不可达
- IP分片:偏移单位=8B,重组仅在目的主机
- TCP:SYN/FIN 各消耗1个序号
- TIME-WAIT:必须2MSL
- OSPF:IP协议号89(非UDP/TCP)
3) 易错单位
- dB 与线性信噪比:
- b/s 与 B/s:1B = 8b
- RTT 与“单向时延”不可混用
- MSS/MTU/首部长度要统一单位(B)
✅ 完成度说明:本稿已覆盖 408 计网考纲六大模块(体系结构、物理层、数据链路层、网络层、传输层、应用层),并补充高频陷阱、公式模板、冲刺策略与核心图表。后续可继续迭代“逐节真题精讲版”和“全章节计算专题版”。