从零开始一步一布成为linux 网络高手
扫描二维码
随时随地手机看文章
首先得会使用linux系统,推荐fedora。简单易用,配置文件标准。
然后就开始学习c语言吧,c语言不会的人,永远不要说自己懂网络。因为大部分的优秀开源软件都是c语言写的。
会了c语言,那就开始看APUE这本书吧,先熟悉linux下的系统调用和各种API。
现在应该开始看《TCP/IP详解》和《UNIX 网络编程》吧,上面的所有例子都自己实现一遍。
这个也看完了那就找几个开源软件的代码来读读吧,强烈推荐从libnids入门,然后可以修改它,比如改成并行的。
然后开始看wireshark和libpcap的源代码的,看看协议是如何一步步分析出来的,看看数据包是如何一点点的抓到的。
好吧,这些都看完了,那么开始看LDD3和《深入理解linux网络技术内幕》,看完了之后找几个开源的网卡驱动,试着读一读它们的源代码,修改一下它们,比如不让数据包经过linux自带的tcp/ip协议栈,直接送到userspace上,这个也就是所谓的UIO技术。再比如不让数据包进行copy,修改成zero-copy的版本。
如果这个也熟悉了那么可以看一看《计算机体系结构-量化研究方法》,把里面的性能调优技术用到现实中的开源软件中。学会使用valgrind,Oprofile等工具进行调试自己的程序。
估计这些都特别熟练,并且懂得他们的运行原理了,那么可以称的上一个linux 网络高手了。