加餐(二) 书单推荐:网络原理和 Linux 内核实现 你好,我是倪朋飞。欢迎来到 Linux 性能优化专栏的加餐时间。

上一期的专栏加餐,我给你推荐了一些 Linux 入门、体系结构、内核原理再到性能优化的书籍。这里再简单强调一下,主要包括下面这几本。

  • Linux基础入门书籍:《鸟哥的Linux私房菜》
  • 计算机体系结构书籍:《深入理解计算机系统》
  • Linux编程书籍:《Linux程序设计》和《UNIX环境高级编程》
  • Linux内核书籍:《深入Linux内核架构》
  • 性能优化书籍:《性能之巅:洞悉系统、企业与云计算》

你可以通过学习这些书,进一步深入到系统内部,掌握系统的内部原理。这样,再结合我们专栏中的性能优化方法,你就可以更清楚地理解性能瓶颈的根源,以及性能优化的思路。

根据前面几个模块的学习,你应该也感觉到了,网络知识,要比 CPU、内存和磁盘等更为复杂;想解决相应的性能问题,也需要更多的基础知识来支撑。

而且,任何一个高性能系统,都是多台计算机通过网络组成的集群系统。网络性能,在大多数情况下,自然也就成了影响整个集群性能的核心因素。

今天,我就来给你推荐一些,关于网络的原理,以及 Linux 内核实现的书籍。

计算机网络经典教材《计算机网络(第5版)》

既然想优化网络的性能,那么,第一步当然还是要熟悉网络本身。所以,今天我推荐的第一本书,就是一本国内外广泛使用的经典教材——《计算机网络(第5版)》。

这本书按照网络协议模型,自下而上地介绍了计算机网络的基本原理。其中,涵盖范围广是其最大的特点,内容包括了物理层、数据链路层、访问控制层、网络层、传输层和应用层等,是理解计算机网络工作原理的重要参考书。

网络协议必读书籍《TCP/IP详解 卷1:协议》

掌握了计算机网络的基本原理后,接下来就要深入了解,TCP/IP 协议族中各个协议的原理。在这一点上,《TCP/IP详解 卷1:协议》,是当之无愧的圣经级书籍。

这本书按照 TCP/IP 协议族,也是自下而上介绍了各种协议的原理,并且还穿插了大量的实例,帮你更透彻地理解相关知识。我们分析网络性能时经常碰见的那些协议,这本书都有讲解,比如 ARP、ICMP、路由、TCP、UDP、NAT、DNS 等等。

无论是想学习掌握,各种网络协议的工作原理;还是更直接落实在工作上,分析优化复杂环境中的网络性能问题,这本书都是你必不可少的宝典。

Wireshark 书籍《Wireshark网络分析就这么简单》和《Wireshark网络分析的艺术》

在学习网络协议时,最大的难点,就是这些协议初学比较抽象,要理解它们的原理也比较困难。这时,如果可以借助 Wireshark 提供的图形界面,你就可以更直观形象地认识这些协议。

《Wireshark网络分析就这么简单》和《Wireshark网络分析的艺术》,就是两本不错的讲解 Wireshark 使用方法的书籍。这两本书通过诙谐风趣的案例,由浅入深地带你使用 Wireshark,来分析常见的网络问题。

正如我所说,通俗易懂是其最大特点,相对前面两本大部头来说,你读起来会轻松很多。这两本书在内容上有些重合,内容范围也并不算丰富,但作为入门书籍,却实实在在可以带你,更轻松地理解常见网络问题的分析方法。

网络编程书籍《UNIX网络编程》

熟悉了协议后,那么接下来自然就是要看,怎么使用这些网络协议,来开发各式各样的应用程序,也就是网络编程。在 Linux 中,我们需要通过套接字接口,跟网络协议栈交互。所以,这里我推荐的是一本介绍套接字接口的书籍——《UNIX网络编程》。

这本书为你详细介绍了,各种套接字 API 的使用方法,还包含了大量可以直接运行的实例。如果你是一个想实现高性能网络的开发者,这本书是很不错的参考。

《UNIX网络编程》主要介绍了套接字接口的使用方法,但并不包括 Linux 内核网络协议栈的实现方法。不过没关系,网络协议栈相关内容,我们上一期加餐推荐过的《深入Linux内核架构》中,就已经包括了,所以你不需要再借助其他内核书籍。

最后,我还是想补充一句,读书不在多,而在于精。哪怕只是啃下我推荐的这几本,你能获得的,一定是质的飞跃。

今天推荐的这些书里,你可能会觉得有些书很难,还觉得有些知识过时了。但你要知道,核心的网络原理基本没有太大变化,总是不过时的。并且网络本身,也是现代互联网和各种高可用、可扩展架构的基石。多花点儿时间坚持学和练,效果一定显而易见。

同时,在进入最后的实战进阶篇前的这几天,我也希望你能抽出时间,来复习或者补全专栏前面的知识。虽然总有人自我调侃,说技术类的东西,学了不一定会用,但是反过来说,不去学,一定不会用。坚持下去,相信在专栏结课时,我们一起,一定能看到一个更好的你。

行动起来吧!

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/Linux%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96%e5%ae%9e%e6%88%98/%e5%8a%a0%e9%a4%90%ef%bc%88%e4%ba%8c%ef%bc%89%20%e4%b9%a6%e5%8d%95%e6%8e%a8%e8%8d%90%ef%bc%9a%e7%bd%91%e7%bb%9c%e5%8e%9f%e7%90%86%e5%92%8c%20Linux%20%e5%86%85%e6%a0%b8%e5%ae%9e%e7%8e%b0.md