01
协议栈全景
交易系统为什么需要网络协议栈?从物理层到应用层的分层逻辑,以及本课程的学习路径图。
全景导学
02
物理层与数据链路层实战
网卡工作原理、MAC地址与帧结构、交换机转发逻辑,以及如何用Python抓取原始数据包。
抓包帧
03
网络层核心:IP协议与路由
IPv4报文结构、子网划分、路由表与最长前缀匹配,用Python实现一个简易的路由器转发逻辑。
路由子网
04
传输层基石:TCP与UDP
端口号、TCP三次握手与四次挥手、滑动窗口与拥塞控制,用Python实现一个简单的TCP回射服务器。
TCP回射
05
应用层协议:HTTP/1.1与WebSocket
HTTP报文格式、状态码、长连接与WebSocket握手,用Python实现一个迷你HTTP服务器。
HTTPWebSocket
06
Socket编程入门
从伯克利套接字到Python socket模块,阻塞与非阻塞IO,用Python写一个多客户端聊天室。
Socket聊天室
07
IO多路复用:select、poll与epoll
为什么需要IO多路复用?三者的区别与适用场景,用epoll实现一个高并发echo服务器。
epoll高并发
08
Reactor模式与事件驱动
Reactor模式的核心思想,用Python的selectors模块实现一个简易Reactor框架。
Reactor事件驱动
09
内存管理:零拷贝与内存池
传统IO的拷贝开销,mmap与sendfile零拷贝技术,用Python的memoryview实现零拷贝示例。
零拷贝mmap
10
序列化与反序列化:从JSON到Protobuf
为什么需要序列化?JSON的优缺点,Protobuf的编码原理与性能对比,用Python实现Protobuf编解码。
Protobuf序列化
11
自定义应用层协议设计
设计一个简单的交易协议(TLV格式),包括消息头、消息体、校验和,用Python实现编解码器。
TLV编解码
12
粘包与拆包问题
TCP流式传输带来的问题,四种常见的解决方案(定长、分隔符、长度前缀、TLV),用Python实现长度前缀解码器。
粘包拆包
13
连接管理:连接池与心跳机制
为什么需要连接池?连接池的设计要点,心跳包的作用与实现,用Python实现一个简单的连接池。
连接池心跳
14
重传与超时机制
超时重传的RTT估算,指数退避算法,用Python实现一个带超时重传的可靠UDP传输。
重传UDP
15
流量控制与背压
生产者-消费者模型中的背压问题,滑动窗口在应用层的实现,用Python实现一个带背压的异步队列。
背压滑动窗口
16
网络安全基础:TLS/SSL协议
对称加密与非对称加密,TLS握手过程,用Python的ssl模块为socket添加加密层。
TLS加密
17
认证与授权:Token与JWT
基于Token的认证流程,JWT的结构与签名验证,用Python实现JWT的生成与验证。
JWT认证
18
协议兼容性与版本管理
向后兼容与向前兼容,协议版本号的设计,用Python实现一个带版本号的协议解析器。
兼容性版本
19
性能测试与基准
延迟、吞吐量与并发数,wrk与locust工具的使用,用Python编写一个简单的延迟测试工具。
性能wrk
20
异步框架:asyncio深入
事件循环、协程与任务,asyncio的传输层与协议层,用asyncio实现一个高性能TCP服务器。
asyncio协程
21
多线程与多进程模型
GIL的影响,多线程与多进程的适用场景,用concurrent.futures实现一个混合模型服务器。
多线程多进程
22
无锁编程与原子操作
锁的开销,CAS与原子操作,用Python的multiprocessing.shared_memory实现无锁共享数据。
无锁原子操作
23
日志与监控:结构化日志与指标收集
为什么需要结构化日志?Prometheus指标格式,用Python的logging与prometheus_client实现监控。
日志Prometheus
24
优雅关闭与热更新
信号处理与优雅关闭,热更新协议处理逻辑,用Python实现一个支持热更新的服务器。
优雅关闭热更新
25
分布式协议基础:Raft共识算法
Leader选举、日志复制与安全性,用Python实现一个简化的Raft节点。
Raft共识
26
消息队列与发布订阅
Redis Pub/Sub与Kafka协议对比,用Python实现一个基于Redis的简易消息队列。
消息队列Redis
27
网关与代理
Nginx反向代理原理,自定义协议网关的设计,用Python实现一个简单的协议转换网关。
网关代理
28
全链路追踪:OpenTelemetry
Trace与Span的概念,用Python的OpenTelemetry SDK实现一个简单的追踪示例。
追踪OpenTelemetry
29
混沌工程与故障注入
网络延迟、丢包与分区模拟,用Python的toxiproxy或tc实现故障注入测试。
混沌故障注入
30
综合实战:构建一个迷你交易网关
从协议设计到部署,整合前面所有知识点,用Python实现一个完整的交易网关原型。
综合实战交易网关