![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwYmN2EmY5gzYhZjYwQjN3QmY4kjZyETMwkjNzgjM1ETY5kDOkdjMh9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
内容提要
wireshark網絡分析就這麼簡單
wireshark可能是世界上最好的開源網絡包分析器,能在多種平台上(比如windows、linux和mac)抓取和分析網絡包,在it業界有着廣泛的應用。
本書采用诙諧風趣的手法,由淺入深地用wireshark分析了常見的網絡協定,讀者在學習wireshark的同時,也會在不知不覺中了解這些協定。作者還通過身邊發生的一些真實案例,分享了wireshark的實戰技巧。
本書不務虛,不注水,幾乎頁頁幹貨,篇篇精華,力求為讀者提供最佳閱讀體驗,使讀者在一個輕松愉悅的閱讀氛圍中,潛移默化地掌握wireshark的使用技巧和網絡知識,為你的工程師生涯加油助力。
無論你是技術支援工程師、系統管理者、現場工程師、公司it部門的老好人,還是高校網絡相關專業的教師,無論你是ccna、ccnp、ccie,還是mcse,本書都是迅速了解、掌握wireshark技巧的絕佳讀物。
關于作者
林沛滿,2005年畢業于上海交通大學,現任emc網絡存儲部門的主任工程師。多年來為多個産品團隊提供過技術咨詢,範圍包括網絡、作業系統、檔案系統和域等,這就是本書所涵蓋的協定如此五花八門的原因。每年臨近加薪的日子,他也會組織一些技術教育訓練來提醒上司。本書的部分内容就來自這些教育訓練資料。
平時他也寫一些技術部落格,你或許還能在it168或者chinaunix技術社群看到它們。本書也有少數内容來自這些部落格。
當林先生不在工作時,大部分時間都花在了園藝花卉上,尤其是歐洲月季。
緻謝
感謝很多人對本書的付出。
曆城路幼稚園的林小滿同學幾乎每次邀請爸爸捉迷藏時都失望而歸,因為寫作本書的時間都被安排在下班後。爸爸會一直記得你期待的眼神和失望時撅起的小嘴。
來自摩根的曹若沈女士幫我彌補了所有的親子時間,并且在百忙之中檢查了每篇草稿。我就算包攬下一年的洗碗工作也難以回報。
來自emc、微軟和思科等機關的多位朋友審閱了本書的大多數内容,尤其是我的同僚賴蘇成一個人完成了所有關于tcp的部分的審閱。賴先生是一位精通外文的網絡專家,在削球技術上也造詣頗深,有意結識這位青年才俊的妹子可以向我索取手機号碼。
最後,要感謝emc公司提供了最頂級的網絡、vmware和存儲空間,使我能夠快速地搭建本書所需要的實驗環境。
前言
幾個月前和老同學聚餐,席間有位經理說,“最近招了個不錯的工程師,居然懂wireshark。”我剛想科普一下wireshark是什麼,就聽見另一位表示羨慕,說自己也在尋覓這樣的人才。這時候我才意識到,原來wireshark的市場需求已經這麼大了。
當然,對我這樣的wireshark老粉絲來說,也不會感到很意外。随着網際網路的井噴式發展,現代人的生活越來越依賴于網絡,很多人開玩笑說wifi也要列入馬斯洛需求模型的最底層了。從事網絡工作的技術人員自然也承受着從未有過的壓力,比如每次促銷對于電商都是極大的考驗。而wireshark正好是解決網絡問題的利器,當我們透過它來看網絡時,看到的不再是沒有意義的“0”和“1”,而是人人都能了解的語句;由于它支援成百上千的協定,是以我們幾乎可以看到網絡上的一切,解決起問題自然也更得心應手。不久前我為一家電商做過系統調優,就是基于wireshark的分析結果。
這便是我決定寫作本書的原因,這麼好的工具應該為更多人所用。本書先帶你認識wireshark,學會使用它的技巧;然後利用wireshark剖析一些常用的網絡協定,相信有一些是你所需要的;最後分享了我用wireshark處理過的幾個經典案例,希望對你的工作有所幫助,能起到舉一反三的效果。
本書組織結構
有别于網絡教材,本書并不從tcp/ip的底層講到頂層,而是采用了從簡單到複雜的順序。全書共分為3部分。
第1部分“初試鋒芒”,先從一道經典的面試題講起,帶你體驗wireshark的魅力。接下來兩篇是簡單的應用執行個體,分析了伺服器失去連接配接的原因,以及excel程式儲存檔案的過程。再往下就是該部分最有價值的文章——“你一定會喜歡的技巧”,分享了很多實用竅門。最後的兩篇小文章無關技術,分别講述了wireshark的前世今生和一位網絡高手的故事。這一部分内容相對簡單,可以較快閱讀。
第2部分“庖丁解牛”,用wireshark剖析了很多協定,比如dns、tcp、ftp、http和nfs等。有些協定非常複雜,比如用于身份認證的kerberos,建議讀者學習此類内容時放慢閱讀速度,仔細領略其分析技巧。好在應用層協定相對獨立,是以當你遇到一個不感興趣的協定時,直接跳過也無妨。也有些協定相對簡單,比如dns,可能書中的内容你本來就懂了。不過再簡單的協定也有值得研究之處,比如你之前可能沒有意識到,dns查詢在基于tcp時效率有多低。這一部分還介紹了linux和windows上的一些小bug,它們居然在最流行的作業系統上存在了多年而沒有被發現。總體而言,這一部分的内容龐雜繁複,需要讀者花費最多的時間來閱讀。
第3部分“舉重若輕”,分享了一些用wireshark解決的真實案例,其中大部分是關于性能的,因為性能問題最為棘手。研究這些案例不一定對工作有直接幫助,因為遇到相同症狀的機率不高,但是用wireshark解決問題的思路都是相通的,相信讀者可以起到觸類旁通的效果。我們也許可以在幾個小時裡學會使用wireshark軟體,在幾天裡學會一個協定,但是思路的養成卻需要經年累月的鍛煉。最隐蔽的問題往往在網絡包中看不到蛛絲馬迹,我們不得不用推理、聯想甚至發散的思維來尋找原因。希望通過這些案例,有助于讀者們形成這種思維習慣。
本書每部分的結尾都有一篇非技術文章,它或者是行業趣聞,或者是本人的工作感觸,希望能增加讀者的閱讀樂趣。
你想知道的一些問題
1.wireshark是什麼?
wireshark是最流行的網絡嗅探器之一,能在多種平台上抓取和分析網絡包,比如windows、linux和mac等。它的圖形界面非常友好,但如果你覺得滑鼠操作不夠有腔調,也可以使用它的指令行形式——tshark。
2.學習wireshark有何意義?
很顯然,wireshark并不能幫我們變成網絡新貴,但它對技術上有所追求的工程師來說,有着金錢難以衡量的價值。用它來輔助學習,可以更深入地了解網絡協定;用它來排查故障,可以更快地發現問題。假如你是團隊中唯一掌握wireshark的網絡工程師,這個看家本領非常有助于你保持大牛地位。在同僚們手足無措時,你可以用最快的速度擺平,然後平靜地說一句:“問題解決了,我先去泡杯咖啡。”接下來就可以離開座位,讓他們一臉崇拜地研究你滿是tshark指令的螢幕了。
3.為什麼要寫作本書?
wireshark本身是免費的,在我們心存感激的同時,也注意到一些需要花大錢的地方——wireshark university的5天教育訓練費為3395美金,而且沒有在中國開課。對于大多數中國工程師來說,唯一的途徑就是自學,這便是我寫作本書的原因。
與其他網絡圖書不同,本書舍棄了公式和協定的條條框框,借助wireshark直覺地顯示網絡細節,讓原本拒人千裡的協定鮮活地呈現出來。你隻需稍加思考,相信很多原來的難點都可以迎刃而解。書中用wireshark解決的幾個問題,也全部源于真實案例,很可能會在工作中遇到。
4.本書适合哪些讀者?
如果你是公司it門部的老好人,常常有同僚咨詢各種疑難雜症,那你适合閱讀本書。從ping不通主機到通路不了共享目錄,都有活生生的例子,比如第1部分的《從一道面試題開始說起》和《初試牛刀:一個簡單的應用執行個體》。
如果你是技術支援工程師,每天被客戶當作出氣筒,本書簡直就是為你而作。下次就發個wireshark截屏給客戶,“看,明明是你們自己的vlan配錯了,當然連不上!”
如果你是資料中心的管理者,不時要跟習慣推卸責任的網管吵架,也請閱讀本書。它将示範如何通過抓到的包推出網絡狀況,甚至算出tcp擁塞視窗。如果那些網管員問你是怎麼算的,你隻需低調地掏出本書,讓他們看到發黃的紙張和印着咖啡漬的封面即可。
如果你在現場實施項目,常被好客的甲方挽留到深夜,請攜帶本書。本岀第3部分的幾篇現場調優案例,說不定會給你帶來共鳴。
如果你是高校網絡相關專業的一名偉大的人民教師,常因準備課件而發愁,也建議參考本書。上課時打開wireshark,也許比精美的課件更受學生歡迎。
其他職業的讀者請酌情參考上面内容。但如果你是一名神秘的黑客,我不得不直言相告:雖然wireshark能解析網絡包,卻不能幫你在殭屍電腦上抓包,是以本書作用有限。雖然《首席資訊安全官必須知道的五大黑客工具》之類的高大上文章會把wireshark列進黑客軟體,但是衆所周知,頭銜上包含“首席”二字的人已經不會親自使用這些工具。
5.閱讀本書需要什麼基礎?
要想閱讀本書,你需要具備基本的網絡知識,比如在學校裡上過網絡課,或者學習過ccna的教育訓練資料。對于缺乏網絡基礎的wireshark使用者,建議先閱讀一本較成系統的教材,個人推薦richard stevens的《tcp/ip詳解卷1:協定》。搭上《頸椎病防治一本通》也許還能免運費,前一本有助于你更快地學會wireshark,後一本則能在學會wireshark之後治療職業病。
由于本書涵蓋了很多協定,是以每位讀者都可能會遇到完全陌生的内容。好在大多協定都相對獨立,是以實在看不懂的部分也可以跳過。舉個例子,假如你的工作與kerberos毫無關系,那麼看不懂也沒必要強求,畢竟學起來頗費心血。
6.對閱讀本書有何建議?
本書有别于大部頭的網絡百科全書,是以無論你在車上還是如廁時皆可輕松閱讀。但有部分内容可能需要你放慢速度,甚至多讀幾遍才能了解。有個實驗環境是最好的,可以自己抓些網絡包對照學習。技術類知識就是這樣,如果你從最簡單的地方開始動手操作,接下來就如魚得水;如果從一開始隻依靠冥想,到後面就會走火入魔。
7.還有什麼要對讀者說的?
我心目中一本好的技術圖書應該是内容準确,表達通俗,容易了解的,本書也盡量追求這幾點(相信本書也做到了)。
為了保證内容的準确性,我邀請了一位windows技術支援、一位網絡存儲工程師、兩位經驗豐富的ccie審閱了初稿的大部分文章。如此興師動衆,是因為同時精通nfs、kerberos和tcp等協定的工程師并不多見。即便這樣,本書仍可能存在纰漏。如果你在閱讀過程中發現了任何問題,歡迎回報到本人郵箱[email protected]。
在通俗與精确之間,本書選擇了前者。比如“抓包(packet)”一詞本身就不夠精确,wireshark抓到的應該是幀(frame)。但是出于表達習慣,我并沒有改成“抓幀”。又比如對同一個網絡分層的稱呼,工程師們也有不同的習慣,希望讀者能夠接受這些“混亂”。
容易了解是最難做到的一點。傳說白居易寫完一首詩,必定先請不識字的老太婆品鑒,一直要修改到老太婆聽懂為止。本書的初稿也邀請了我家的“老太婆”進行試讀,基本上她看懂後才敢交稿。當然我家這位“老太婆”在大學階段學習過網絡課程。我有時會在書中用圖表、類比和wireshark等方式來反複解釋同一知識點,就是為了輔助了解。如果讓部分讀者感到啰嗦,先在此表示歉意。
目錄
初試鋒芒
<a href="https://yq.aliyun.com/articles/100441">從一道面試題開始說起</a>
<a href="https://yq.aliyun.com/articles/100445">小試牛刀:一個簡單的應用執行個體</a>
<a href="https://yq.aliyun.com/articles/100462">excel檔案的儲存過程</a>
<a href="https://yq.aliyun.com/articles/100476">你一定會喜歡的技巧</a>
patrick的故事
wireshark的前世今生
庖丁解牛
nfs協定的解析
從wireshark看網絡分層
tcp的連接配接啟蒙
快遞員的工作政策—tcp視窗
重傳的講究
延遲确認與nagle算法
百家争鳴
簡單的代價—udp
剖析cifs協定
網絡江湖
dns小科普
一個古老的協定—ftp
上網的學問—http
無懈可擊的kerberos
tcp/ip的故事
舉重若輕
“一小時内給你答複”
午夜鈴聲
深藏功與名
棋逢對手
學無止境
一個技術男的自白