C++网络编程与高性能服务器设计

📚 共计 30 章节
01
C++网络编程概述
网络编程基础概念(IP地址、端口、TCP/UDP协议)、应用场景、高性能服务器核心挑战
基础概念
02
Linux环境搭建与工具链
Linux开发环境配置、GCC/G++、CMake、GDB、Valgrind内存检测
工具环境
03
Socket编程基础(上)
Socket概念、socket/bind/listen/accept、TCP三次握手与四次挥手
SocketTCP
04
Socket编程基础(下)
connect/send/recv/close、阻塞与非阻塞、I/O多路复用概念引入
SocketI/O
05
TCP状态与异常处理
TCP状态转移图、TIME_WAIT、半关闭、连接超时、心跳机制
TCP状态
06
I/O多路复用之select
select函数原型、fd_set操作、优缺点、基于select的TCP回显服务器
selectI/O复用
07
I/O多路复用之poll
poll函数详解、poll与select对比、事件类型、基于poll的聊天服务器
pollI/O复用
08
I/O多路复用之epoll(上)
epoll三大函数、LT与ET模式详解
epollLT/ET
09
I/O多路复用之epoll(下)
事件驱动机制、性能对比、基于epoll的高并发HTTP服务器
epoll高并发
10
Reactor模式设计
Reactor核心思想、单线程/多线程/主从Reactor架构
设计模式Reactor
11
Proactor模式与异步I/O
Proactor原理、IOCP简介、Linux AIO、Reactor vs Proactor
异步Proactor
12
线程池设计与实现
核心组件、任务队列、工作线程管理、动态调整、C++11线程库实战
线程池C++11
13
内存池与对象池
内存碎片、内存池设计、固定大小内存池、对象池、tcmalloc/jemalloc
内存池性能
14
零拷贝技术
传统I/O路径、mmap、sendfile、splice/tee、Kafka/nginx应用
零拷贝mmap
15
定时器与时间轮
最小堆定时器、时间轮算法、分级时间轮、高性能定时器实现
定时器时间轮
16
缓冲区设计
网络缓冲区、环形缓冲区、动态缓冲区、链式缓冲区、Buffer类C++实现
缓冲区设计
17
序列化与协议设计
TLV协议、Protobuf、JSON vs 二进制、自定义协议、粘包拆包
协议序列化
18
HTTP协议解析
HTTP请求/响应格式、解析器设计、状态机解析、长连接与管道化
HTTP解析
19
RPC框架设计
RPC核心概念、服务注册与发现、序列化、网络传输、简易RPC实现
RPC框架
20
连接管理
连接池、连接复用、保活、优雅关闭、连接数限制与防攻击
连接池管理
21
负载均衡
四层负载均衡(LVS)、七层负载均衡(Nginx)、一致性哈希、动态权重
负载均衡分布式
22
异步日志系统
日志级别、格式、异步写入、日志轮转、高性能日志库(类比spdlog)
日志异步
23
性能测试与调优
基准测试工具(ab/wrk/iperf)、瓶颈分析、CPU/内存/网络调优、内核参数
性能调优
24
协程与C++20 Coroutines
协程概念、C++20协程语法、协程调度器、网络编程应用
协程C++20
25
多进程模型与进程间通信
fork与进程模型、共享内存、信号量、消息队列、Unix域套接字
多进程IPC
26
安全编程
缓冲区溢出防护、DDoS防御、TLS/SSL集成、输入验证与沙箱
安全TLS
27
分布式系统基础
CAP理论、一致性模型、Raft协议、分布式锁、服务发现(etcd/Consul)
分布式CAP
28
容器化与部署
Docker基础、Dockerfile、Compose编排、Kubernetes简介、CI/CD
DockerK8s
29
实战项目(上)
高性能Web服务器——需求分析、架构设计、模块划分、核心代码实现
实战Web服务器
30
实战项目(下)
性能测试、压力测试、问题排查、优化迭代、项目总结与经验分享
实战优化