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