这是一个关于Linux网络监控和调优系列文章的第二篇,详尽的介绍了网络知识的各个方面,得到了广泛的转发和称赞,也被翻译成了多个中文版。本文转载的是携程的ArthurChiao翻译的版本,翻译通顺,还很有心的加上了章节,更方便阅读。他还翻译很多有价值的文章,读者可以到他的网站上阅读。
英文原文: Monitoring and Tuning the Linux Networking Stack: Sending Data
中文翻译: [译] Linux 网络栈监控和调优:发送数据(2017)
本文介绍了运行 Linux 内核的机器是如何发包(send packets)的,包是怎样从用户程序一步步到达硬件网卡并被发出去的,以及如何监控(monitoring)和调优(tuning)这一路径上的各个网络栈组件。
本文的姊妹篇是 Linux 网络栈监控和调优:接收数据,对应的原文是 Monitoring and Tuning the Linux Networking Stack: Receiving Data。
想对 Linux 网络栈进行监控或调优,必须对其正在发生什么有一个深入的理解,而这离不开读内核源码。希望本文可以给那些正准备投身于此的人提供一份参考。
这是一个关于Linux网络监控和调优系列文章的一篇,详尽的介绍了网络知识的各个方面,得到了广泛的转发和称赞,也被翻译成了多个中文版。本文转载的是携程的ArthurChiao翻译的版本,翻译通顺,还很有心的加上了章节,更方便阅读。他还翻译很多有价值的文章,读者可以到他的网站上阅读。
英文原文: Monitoring and Tuning the Linux Networking Stack: Receiving Data
中文翻译: [译] Linux 网络栈监控和调优:接收数据(2016)
这让我不禁想起前两年很火的话题: “当你在浏览器中访问一个网址的时候,背后发生了什么?”,有多种多样的回答,将细节掰的很细,但是我还没有看到一篇能将网络连接和传输介绍的像本文这么细的文章。
本文介绍了 Linux 内核是如何收包(receive packets)的,包是怎样从网络栈到达用户空间程序的,以及如何监控(monitoring)和调优(tuning)这一路径上的各个网络栈组件。
这篇文章的姊妹篇 Monitoring and Tuning the Linux Networking Stack: Sending Data。
这篇文章的图文注释版 the Illustrated Guide to Monitoring and Tuning the Linux Networking Stack: Receiving Data。
想对 Linux 网络栈进行监控或调优,必须对它的行为(what exactly is happening)和原理有深入的理解,而这是离不开读内核源码的。希望本文可以给那些正准备投身于此的人提供一份参考。
特别鸣谢
特别感谢 Private Internet Access 的各位同僚。公司雇佣我们做一些包括本文主题在内的网络研究,并非常慷慨地允许我们将研究成果以文章的形式发表。
本文基于在 Private Internet Access 时的研究成果,最开始以 5 篇连载的形式出现。