從零開始一步一布成為linux 網(wǎng)絡(luò)高手
首先得會使用linux系統(tǒng),推薦fedora。簡單易用,配置文件標準。
然后就開始學習c語言吧,c語言不會的人,永遠不要說自己懂網(wǎng)絡(luò)。因為大部分的優(yōu)秀開源軟件都是c語言寫的。
會了c語言,那就開始看APUE這本書吧,先熟悉linux下的系統(tǒng)調(diào)用和各種API。
現(xiàn)在應(yīng)該開始看《TCP/IP詳解》和《UNIX 網(wǎng)絡(luò)編程》吧,上面的所有例子都自己實現(xiàn)一遍。
這個也看完了那就找?guī)讉€開源軟件的代碼來讀讀吧,強烈推薦從libnids入門,然后可以修改它,比如改成并行的。
然后開始看wireshark和libpcap的源代碼的,看看協(xié)議是如何一步步分析出來的,看看數(shù)據(jù)包是如何一點點的抓到的。
好吧,這些都看完了,那么開始看LDD3和《深入理解linux網(wǎng)絡(luò)技術(shù)內(nèi)幕》,看完了之后找?guī)讉€開源的網(wǎng)卡驅(qū)動,試著讀一讀它們的源代碼,修改一下它們,比如不讓數(shù)據(jù)包經(jīng)過linux自帶的tcp/ip協(xié)議棧,直接送到userspace上,這個也就是所謂的UIO技術(shù)。再比如不讓數(shù)據(jù)包進行copy,修改成zero-copy的版本。
如果這個也熟悉了那么可以看一看《計算機體系結(jié)構(gòu)-量化研究方法》,把里面的性能調(diào)優(yōu)技術(shù)用到現(xiàn)實中的開源軟件中。學會使用valgrind,Oprofile等工具進行調(diào)試自己的程序。
估計這些都特別熟練,并且懂得他們的運行原理了,那么可以稱的上一個linux 網(wǎng)絡(luò)高手了。