第三章:深入 Linux 内核网络技术 创造操作系统,就是去创造一个所有应用程序赖以运行的基础环境。从根本上来说,就是在制定规则:什么可以接受,什么可以做,什么不可以做。事实上,所有的程序都是在制定规则,只不过操作系统是在制定最根本的规则。 —— 摘自《Linus Torvalds 自传》[^1] 在第二章,我们研究了请求怎么到达后端系统。这一章,进一步就请求达到 Linux 系统后的处理展开讨论。 我们将深入 Linux 内核网络技术,根据数据包在 Linux 内核中的处理过程层层推进。解析 Linux 内核中关键模块(将介绍 netfilter、iptables 以及 conntrack)如何密切协作,以及它们对应用程序产生的影响。
创造操作系统,就是去创造一个所有应用程序赖以运行的基础环境。从根本上来说,就是在制定规则:什么可以接受,什么可以做,什么不可以做。事实上,所有的程序都是在制定规则,只不过操作系统是在制定最根本的规则。
:::right
在第二章,我们研究了请求怎么到达后端系统。这一章,进一步就请求达到 Linux 系统后的处理展开讨论。
我们将深入 Linux 内核网络技术,根据数据包在 Linux 内核中的处理过程层层推进。解析 Linux 内核中关键模块(将介绍 netfilter、iptables 以及 conntrack)如何密切协作,以及它们对应用程序产生的影响。接着,讨论 Linux 内核在密集网络系统下的瓶颈,并探索业内一些“跨内核”思想的解决方案(将介绍 DPDK、RDMA 和 eBPF 技术)。最后,我们将学习一些与虚拟化网络相关的技术,为后续介绍的高级应用(负载均衡、容器编排、服务网格)储备必要的基础知识。
:::center
图 3-0 本章内容导读
:::
Linus Torvalds,业内知名度最高的程序员之一。Linus Torvalds 是 Linux 内核的最早作者,被称为“Linux 之父”。他还开发了代码版本管理工具 Git,因此也被戏称为程序员的祖师爷。 ↩