Day 36-40: 第六周后续内容总结
Day 36: DNS安全(DNSSEC)
核心内容:
- DNS安全威胁(缓存投毒、劫持)
- DNSSEC原理
- 数字签名验证
- DNS over HTTPS (DoH)
- DNS over TLS (DoT)
关键知识点:
DNS安全威胁:
- 缓存投毒:攻击者注入虚假DNS记录
- DNS劫持:重定向到恶意网站
- 中间人攻击:窃听DNS查询
DNSSEC防护:
- 数字签名:验证DNS记录真实性
- 信任链:从根到叶的验证链
- 记录类型:RRSIG, DNSKEY, DS, NSEC
Day 37: 实战 - DNS服务器实现
核心内容:
- 实现简单的DNS服务器
- 处理DNS查询请求
- 返回DNS响应
- 本地DNS缓存
项目功能:
- 接收UDP DNS查询
- 解析查询报文
- 查找本地记录
- 构造并返回响应
- 支持A、AAAA、CNAME记录
代码框架:
class SimpleDNSServer:
def __init__(self, port=53):
self.records = {}
self.cache = {}
def add_record(self, domain, rtype, rdata):
"""添加DNS记录"""
pass
def handle_query(self, query_data):
"""处理DNS查询"""
pass
def build_response(self, query, answers):
"""构造DNS响应"""
pass
def start(self):
"""启动DNS服务器"""
pass
Day 38: FTP/SFTP协议
核心内容:
- FTP协议原理
- 主动模式 vs 被动模式
- SFTP(SSH文件传输)
- 文件传输实现
FTP工作模式:
主动模式(PORT):
客户端 → 控制连接(21端口)→ 服务器
服务器 → 数据连接(20端口)→ 客户端
被动模式(PASV):
客户端 → 控制连接(21端口)→ 服务器
客户端 → 数据连接(动态端口)→ 服务器
SFTP:
- 基于SSH(22端口)
- 加密传输
- 更安全
Day 39: SMTP/POP3/IMAP邮件协议
核心内容:
- SMTP发送邮件
- POP3接收邮件
- IMAP邮件管理
- 邮件格式(MIME)
协议对比:
┌──────────┬──────┬────────────┬──────────┐
│ 协议 │ 端口 │ 用途 │ 特点 │
├──────────┼──────┼────────────┼──────────┤
│ SMTP │ 25 │ 发送邮件 │ 推送协议 │
│ POP3 │ 110 │ 接收邮件 │ 下载删除 │
│ IMAP │ 143 │ 管理邮件 │ 服务器存 │
└──────────┴──────┴────────────┴──────────┘
SMTP流程:
客户端 → SMTP服务器 → 收件服务器 → 收件人
POP3 vs IMAP:
POP3: 下载到本地,服务器删除
IMAP: 邮件保留在服务器,支持多设备同步
代码示例:
# SMTP发送邮件
import smtplib
from email.mime.text import MIMEText
msg = MIMEText('邮件内容')
msg['Subject'] = '主题'
msg['From'] = 'sender@example.com'
msg['To'] = 'receiver@example.com'
smtp = smtplib.SMTP('smtp.example.com', 25)
smtp.send_message(msg)
smtp.quit()
Day 40: 应用层协议总结
学过的应用层协议总结
HTTP家族:
- HTTP/1.1: 传统Web协议
- HTTP/2: 二进制分帧、多路复用
- HTTP/3: 基于QUIC,0-RTT连接
- HTTPS: TLS加密的HTTP
- WebSocket: 全双工实时通信
DNS:
- 域名解析
- 递归查询 vs 迭代查询
- DNS缓存
- DNSSEC安全
邮件协议:
- SMTP: 发送邮件(25, 587)
- POP3: 接收邮件(110, 995)
- IMAP: 管理邮件(143, 993)
文件传输:
- FTP: 文件传输(20, 21)
- SFTP: 安全文件传输(22)
其他:
- DHCP: 自动配置IP(67, 68)
- SSH: 安全远程登录(22)
- Telnet: 远程登录(23)
应用层协议设计模式
客户端-服务器模型:
客户端 ←→ 服务器
- HTTP, FTP, SMTP, DNS
- 服务器提供服务
- 客户端请求服务
P2P模型:
对等节点 ←→ 对等节点
- BitTorrent
- 每个节点既是客户端又是服务器
协议选择指南
场景 → 推荐协议
─────────────────────────────
网页浏览 → HTTP/HTTPS
实时通信 → WebSocket
文件传输 → FTP/SFTP
邮件发送 → SMTP
邮件接收 → IMAP(推荐)或POP3
域名解析 → DNS
远程登录 → SSH
API设计 → RESTful over HTTP
性能优化总结
减少延迟:
- 使用HTTP/2或HTTP/3
- 启用缓存
- 使用CDN
- 减少往返次数
提高安全性:
- 使用HTTPS/TLS
- 启用DNSSEC
- 使用SFTP而非FTP
- 实施认证和授权
提升可靠性:
- 实现重试机制
- 超时控制
- 错误处理
- 健康检查
第六周学习成果
掌握的技能
- ✅ 深入理解DNS工作原理
- ✅ 掌握递归和迭代查询
- ✅ 了解DNS安全威胁和防护
- ✅ 理解邮件协议工作流程
- ✅ 掌握文件传输协议
- ✅ 能够实现简单的应用层协议
实战项目
- DNS查询工具
- DNS服务器(简化版)
- FTP客户端
- SMTP邮件发送工具
核心知识点
应用层协议栈:
应用层
├── HTTP/HTTPS (Web)
├── DNS (域名解析)
├── SMTP/POP3/IMAP (邮件)
├── FTP/SFTP (文件传输)
└── SSH (远程登录)
下周预告
第七周:TCP深入分析(Day 41-47)
主要内容:
- Day 41: TCP三次握手深入
- Day 42: TCP四次挥手和状态机
- Day 43: TCP流量控制(滑动窗口)
- Day 44: TCP拥塞控制算法
- Day 45: TCP性能优化
- Day 46: 实战:TCP性能测试
- Day 47: 第七周总结
学习重点:
- 深入理解TCP可靠传输机制
- 掌握TCP性能优化技巧
- 理解拥塞控制算法
- 分析TCP性能瓶颈
进度:40/120天(33.3%)
第六周完成!你已经完成了应用层协议的学习。
下周我们将深入传输层,学习TCP协议的高级特性!