极客时间-网络编程 盛延敏 文件
实战思维导图
开篇词│学好网络编程,需要掌握哪些核心问题?
学习高性能网络编程,掌握两个核心要点就可以了:第一就是理解网络协议,并在这个基础上和操作系统内核配合,感知各种网络 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实战篇总结与答疑