【极客时间-网络编程实战】

极客时间-网络编程 盛延敏 文件

实战思维导图
在这里插入图片描述

开篇词│学好网络编程,需要掌握哪些核心问题?

学习高性能网络编程,掌握两个核心要点就可以了:第一就是理解网络协议,并在这个基础上和操作系统内核配合,感知各种网络 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实战篇总结与答疑