六周后续内容总结

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安全威胁和防护
  • ✅ 理解邮件协议工作流程
  • ✅ 掌握文件传输协议
  • ✅ 能够实现简单的应用层协议

实战项目

  1. DNS查询工具
  2. DNS服务器(简化版)
  3. FTP客户端
  4. 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协议的高级特性!