极客时间-网络编程 盛延敏 文件
实战思维导图

开篇词│学好网络编程,需要掌握哪些核心问题?
学习高性能网络编程,掌握两个核心要点就可以了:第一就是理解网络协议,并在这个基础上和操作系统内核配合,感知各种网络 I/O 事件;第二就是学会使用线程处理并发。
基础篇:一起来认识网络编程
01 追古溯源︰TCP/IP和Linux是如何改变世界的?




02网络编程模型:理解“客户端–服务器”的基本概念



03套接字和地址:电话和电话号码

04 TCP三次握手:怎么使用套接字格式建立连接?

05使用套接字进行读写:开始交流吧

06嗨,别忘了UDP这个小兄弟

07本地套接字:如何入门本地套接字?

08 工欲善其事必先利其器:学会使用各种工具

09基础篇总结与答疑
提高篇:一起来解决异常问题
10TIME_WAIT︰隐藏在细节下的魔鬼

11优雅地关闭还是粗暴地关闭?

12连接无效:使用Keep-Alive还是应用心跳来检测?

13小数据包应对之策:理解TCP协议中的动态数据传输

14 What ? UDP也可以是“已连接”?

15怎么老是出现“地址已经被使用”?

16如何理解TCP的“流”?

17TCP并不总是“可靠”的?

18防人之心不可无:检查数据的有效性

19提高篇总结与答疑

性能篇:学会优雅地提高程序性能
20鼎鼎大名的select:看我如何同时感知多个I/O事件

21poll:另一种I/O多路复用

22非阻塞I/O:提升性能的加速器

23 Linux利器:epoll的前世今生

24C10K问题:高并发模型设计

25使用阻塞I/O和进程模型:用最传统的方式

26使用阻塞I/O和线程模型:换—种轻量的方式

27 I/O多路复用遇上线程:使用poll单线程处理所有I/O事件

28 I/O多路复用进阶:子线程使用poll处理连接I/O事件

29 渐入佳境:使用epoll和多线程模型

30真正的大杀器:异步I/O探索

31性能篇总结与答疑
实战篇:让我们一起来造个轮子
32自己动手写高性能HTTP服务器(一)︰设计和思路
33 自己动手写高性能HTTP服务器(二):I/O处理模型和多线程模型实现
34自己动手写高性能HTTP服务器(三):TCP字节流处理和HTTP协议实现
35实战篇总结与答疑