天天看點

《Wireshark網絡分析的藝術》目錄—導讀

《Wireshark網絡分析的藝術》目錄—導讀

作者簡介

wireshark網絡分析的藝術

林沛滿,2005年畢業于上海交通大學,現任emc網絡存儲部門的主任工程師。多年來為多個産品團隊提供 過技術咨詢,範圍包括網絡、作業系統、檔案系統和域等,這就是本書所涵蓋的協定如此五花八門的原因。每年臨近加薪的日子,他也會組織一些技術教育訓練來提醒上司。本書的部分内容就來自這些教育訓練資料。

平時他也寫一些技術部落格,你或許還能在it168或者chinaunix技術社群看到它們。本書也有少數内容來自這些部落格。

當林先生不在工作時,大部分時間都花在了園藝花卉上,尤其是歐洲月季。

本書特色

作為網絡工程師的你,想擺脫給别人留下的木讷、沉悶、呆闆、不善言談……的印象麼?作為高校偉大人民教師的你,想在枯燥乏味的課堂中添加一些樂趣,換回學生的注意力麼?作為公司it部門的老好人,想在給美女同僚露一手的同時,并通過淵博的學識來征服她們麼?

如果以上答案都為yes,那麼《wireshark網絡分析的藝術》是你的首選讀物,這本诙諧幽默輕松易讀……的it技術圖書可以解決上述的所有問題。《wireshark網絡分析的藝術》廣度與深度齊備,诙諧幽默的文筆背後是作者多年以來的技術積澱的厚積薄發。

另外,《wireshark網絡分析的藝術》不同于其他枯燥的技術類圖書,《wireshark網絡分析的藝術》不務虛,不注水,無閱讀尿點,頁頁幹貨,篇篇精華,而這一切,均以給讀者提供最佳閱讀體驗為出發點和宗旨。

專業書評

有幸在出版前讀到本書初稿,看完之後讓我想到了電影“黑客帝國”(the matrix)。在這個應用、協定日趨複雜的網絡中,沛滿抓幾個包分析一下就能洞察網絡問題的根源,就像neo用手抓住迎面飛來的子彈那樣駕輕就熟。他的上一本書介紹的是使用wireshark來分析網絡協定,這本書則站在了更為實用的角度來介紹他豐富的wireshark使用經驗和解決問題的獨到思路與方法,是以非常值得學習。另外,雖然這兩本書的側重點各有不同,但是上一本書的風趣幽默的寫作風格依然良好地傳承到了這本書上——能讓讀者笑開懷的技術類圖書真是不多見。作為學習、實踐網絡協定不可多得的參考書,我會向學生推薦這兩本書。

——段海新,清華大學博士生導師

沛滿長期做網絡嗅探的工作,實戰經驗相當豐富,外加他強大的抽象分析能力和簡單诙諧的寫作風格,使本書中的每一篇技術文章都像看csi科學探案一樣過瘾。本書真正踐行了許多技術圖書宣稱的“工程師寫給工程師讀”的宗旨,是解決(know-how)和分析(know-why)問題的硬功夫,我會将本書推薦給用到網絡分析的任何一位技術人員。

——何萬青,英特爾企業與高性能計算進階架構師

有些人對同胞撰著的技術書籍有一種莫名的不信任感,以前的我亦是如此,不過這種偏見在我看過林沛滿寫的書之後便煙消雲散了。原本覺得很複雜的問題,經過他看似輕描淡寫的叙述之後,一切豁然開朗。

——火丁筆記,知名技術部落客

大約兩年前,我對網絡技術還一知半解,然後我認識了林沛滿,被他強烈推薦了wireshark,從此便打開了網絡的黑箱。你還别說,這玩意兒還真的幫我解決了不少問題,效果杠杠的。然而,比工具更重要的是技術大牛分析和解決問題的思路,以及“很多看起來靈光乍現的eureka!其實靠的都是積累”這條特别打擊人的真理。哦對了,上面這些都是瞎說的,這其實是本懸疑推理小說。真的,不騙你!

——周自恒,資深技術圖書譯者

《wireshark網絡分析就這麼簡單》書評摘選

“這本書陪了我幾個深夜。沒有大部頭的催眠和艱澀,每一節都精煉易讀,和咖啡一樣令人上瘾。我是網絡小新人,但是不覺得特别難,很容易順下來。裡面很多幹貨,厚積薄發,都是實際環境中的情況。暢快淋漓讀完大呼不過瘾,搜了一下作者就這一本書。遺憾!”

——亞馬遜讀者

“這本書是我2014年讀過的10本好書之一,如果說我對這本書有什麼不滿的話,就隻有一個:書寫薄了,意猶未盡,讀着完全不過瘾呀呀呀。或許這本書淺顯易懂、幽默風趣的語言風格讓你在無障礙閱讀的同時,會讓你有一種這書太淺、适合初學者的感覺,但是這本書實際上是越讀越有味道,我就讀了好幾次。”

——豆瓣讀者

内容提要

wireshark是目前最流行的網絡包分析工具。它上手簡單,無需教育訓練就可入門。很多棘手的網絡問題遇到wireshark都能迎刃而解。

本書挑選的網絡包來自真實場景,經典且接地氣。講解時采用了生活化的語言,力求通俗易懂,以使讀者在輕松閱讀的過程中,既可以學到實用的網絡知識,又能形成解決問題的思路。

與大多網絡圖書的課堂式體驗不同,閱讀本書的感覺更像在聽技術圈的朋友分享經驗,除了知識,還有心情和想法。本書的覆寫範圍從日常使用的手機app,到企業級的資料中心;從對付營運商的網絡劫持,到開發自己的分析工具,不一而足。無論你是系統管理者、實施工程師、技術支援、網管、教育訓練教師,還是開發和測試人員,都适合閱讀本書。

關于作者

林沛滿,2005年畢業于上海交通大學,現任emc網絡存儲部門的主任工程師。多年來為多個産品團隊提供過技術咨詢,範圍包括網絡、作業系統、檔案系統和域等,這就是本書所涵蓋的協定如此五花八門的原因。每年臨近加薪的日子,他也會組織一些技術教育訓練來提醒上司,本書的部分内容就來自這些教育訓練資料。

平時他也寫一些技術部落格,你或許還能在it168或者chinaunix技術社群看到它們,本書也有少數内容來自這些部落格。他也是《wireshark網絡分析就這麼簡單》的作者。

緻謝

我那些沒有技術背景的親友隻能讀懂這一部分,是以要盡量寫得好一些。

分析網絡包占用了很多本應該和家人在一起的時光,是以要特别感謝他們的了解和支援。我妻子在每天忙碌的工作之餘,還要彌補我的那份親子時間,讓小滿享受到完美的親情。她也是第一個稽核書稿的人,包括文字和技術兩方面,“賢内助”一詞已經不足以形容她的貢獻了。我父母分擔了很多家庭勞動,否則花園裡早就雜草叢生。他們可能至今還以為我坐在電腦面前就是在趕稿子。

技術圈的很多朋友幫忙檢閱了本書部分章節,為我嚴把技術關。請給我一次招待你們吃大餐的機會。

我的老闆從沒有提出過kpi上的要求,是以我才有這麼多時間研究工作之外的技術問題。

此外還要感謝很多讀者長期的鼓勵,請恕我無法一一列舉你們的名字。要不是你們隔段時間就催一下,以我的拖延症不知道何日才能寫完。

前言

wireshark已經用不着我來做廣告了,它早已被多家權威機構評為最佳嗅探器,從事網絡工作的工程師都知道它。即便我如實地列舉它的種種好處,都涉嫌違反廣告法。這也許就是我的上一本書《wireshark網絡分析就這麼簡單》得以多次重印的原因,是神器總會流行的。讀者的評價也超乎我的想象,随手複制兩條書評過來滿足一下我的虛榮心:

既然有這麼多人喜歡,我有什麼理由不再寫一本呢?于是就有了這本新書。雖然我在寫稿這件事情上的拖延症不亞于洗碗,不過讀者們的鼓勵顯然起了作用,最後收筆時間隻比原計劃晚了6個月。和老讀者們期望的一樣,它是上一本書的延續,尤其是在寫作風格上。不同之處在于這一本不再着重分析基礎協定,而更專注于解決現實問題。另外,考慮到現在手機上網日趨流行,本書也增加了一些手機app的内容,相信讀者會喜歡。

就如我常在教育訓練課上所講的,學會wireshark這個軟體隻需要幾個小時,掌握一個網絡協定也用不了幾天,而養成解決問題的思路卻需要經年累月的練習和思考。本書正提供了很多練習和思考的機會,本書30多篇文章,幾乎都用了wireshark來分析網絡包。我希望每一篇都能讓讀者産生這樣的感觸:“啊,原來wireshark還可以這樣用!”“讀完整本書,自然而然會形成看包的習慣和思維方式。

本書組織結構

就像時尚女郎每天都在看包包一樣,我也每天都在看包。看到有趣又有價值的,就會記錄下來,久而久之就形成了這本書。是以它有别于包羅萬象的網絡教材,而更像一個技術部落格的合集。

全書根據素材來源可分為四個部分。

第一部分的選材來自老讀者的咨詢,相信很有代表性,說不定其他讀者也會遇到。

《linux為什麼卡住了》分析了登入linux時卡頓10秒鐘的現象。雖然我是linux領域的菜鳥,但是仍然可以用wireshark發現原因并解決它。

《像福爾摩斯一樣思考》講述的是如何根據網絡包中的蛛絲馬迹,找到被人為掩蓋的線索。自己從網絡包推理出來的東西,往往比對方提供的文檔更可靠。

《一篇關于vmware的文章》介紹了一位讀者在vmware知識庫發現的文章。我們純粹依靠協定分析,找到了這篇文章的真正内涵,最後再用wireshark看包加以确認。

《來點有深度的》是在上一篇的基礎上,通過發散思維,向讀者“灌輸”了一些相關的tcp知識。個人覺得tcp協定了解到這個深度就足夠應付大多數性能問題了。

《三次握手的小知識》是應某論壇網友的要求而寫的tcp握手科普,分享了一些用wireshark來處理握手問題的小經驗,順便示範了“syn flood”攻擊的網絡包。

《被誤解的tcp》澄清了被讀者廣泛誤解的兩個tcp概念,比較了linux、windows和安卓手機的不同ack頻率。

《最經典的網絡問題》是我近年遇到過的最經典的案例了。雖然很多年前就聽說過nagle算法遇到延遲确認會出問題,但是在現實中還是第一次遇到,趕緊記錄下來。

《為什麼丢了單子?》講述了一位銷售朋友的遭遇,說明用wireshark有助于發現産品的不足,并且找到改進之處。如果能用wireshark分析自家産品與競争對手産品的網絡包,一定能找到不少差别,進而改進銷售政策。

《受損的幀》分析了因為硬體等原因導緻幀損壞,進而在wireshark上展現出的奇怪症狀。事情往往沒有表面上看到的那麼簡單。

《虛驚一場》是因為一位眼尖的讀者發現了我書中的一處“錯誤”(或者可以說是tcp的一個bug),後來研究了很久才發現是虛驚一場,不過排查過程還是很值得分享的。這位讀者還從“作者簡介”的照片中,看到我手上的《tcp/ip詳解 卷1:協定》是影印版,然後特意從美國幫我寄來了一本原版書。再次表示感謝!

《ntlm協定分析》是這部分唯一的基礎協定介紹,據說ntlm在中國用得還很多,是以才特意寫了一篇。

《wireshark的提示》收集了讀者感興趣的很多wireshark提示資訊。文中不但介紹了每一個提示資訊的意義,還分析了其産生的原因,希望讓讀者能夠知其是以然。

第二部分是我自己在工作中遇到的網絡問題。這部分講得最細、最深,問題本身也最複雜。在閱讀這一部分時,可能要多花點時間。

《書上錯了嗎?》解釋了為什麼對于同一個tcp連接配接,在兩端抓到的網絡包順序是不同的。明白了這一點才能了解後面兩篇的内容。

《計算“在途位元組數”》介紹了如何從網絡包中計算“已經發送但未被确認”的資料量。不用害怕數學,簡單的加減法就夠用了。

《估算網絡擁塞點》在前兩篇的基礎上,提供了一個估算網絡擁塞點的方法。掌握了這個技能,此後再優化tcp性能時就胸有成竹了。

《順便說說lso》講的是現在越來越普遍的large segment offload。在估算擁塞點的時候很可能會被lso所幹擾,是以我特意為它寫了一篇。

《熟讀rfc》分析了一個頗為棘手的性能問題,即使擅長wireshark也很難解決,向大家展示了熟悉rfc的重要性。

《一個你本該能解決的問題》用wireshark分析了一個udp導緻的性能問題,從本質上分析udp和tcp的差别。這一篇我在微網誌上發過,還引發了一場不小的讨論。

《幾個關于分片的問題》其實是上一篇的後續。很多讀者看到udp包被分片之後出現了性能問題,是以對分片很感興趣,問了不少問題。

《mtu導緻的悲劇》分享了幾個mtu配置出問題而導緻的事故。這類問題其實很多見的,尤其是對于實施和運維人員來說。

《迎刃而解》是來自一個運維部門的技術問題,相當隐蔽而且詭異,最終在wireshark的輔助下迎刃而解。

《昙花一現的協定》回憶了一個我曾經支援過的協定。今天才學習它可能沒有實際意義,但是其理念和創意還是值得借鑒的。當你對一個協定了解到一定程度時,肯定也會有改造它的想法。

《另一種流控》介紹的是pause frame(暫停幀)流控。有别于tcp的“端到端”流控,它是“點到點”的,在有些場合很好用。

《過猶不及》分享了一個多線程傳輸的案例,說明不是增加連接配接數就一定能提高性能,有時候甚至有負面效果。

《治療強迫症》示範了如何用wireshark研究文本編輯軟體的工作方式。也許這類軟體不是你的興趣所在,但是可以舉一反三,用相同的方式研究其他軟體。

《技術與工齡》算是半篇技術文章。除了介紹window scale這個技術點,還希望每個人都能正視工齡,善待新人。

《一個面試建議》隻是分享面試經驗,完全無關技術。文章寫得很不嚴肅,目的是讓讀者休息一下,樂一樂。

《如何科學地推卸責任》不是想把你“教壞”,而是分享了如何在技術上劃分責任。如果你是乙方工程師,肯定會需要的。

第三部分的選材是日常生活中的抓包,包括手機app。在未來一兩年,可能會有越來越多的人去抓手機上的包,因為用得多了,問題也會跟着增加。

《假寬帶真相》本是央視某一期節目的名字,說測速軟體“有明顯的設計缺陷”。我用wireshark進行了驗證,結果如何呢?讀了全文就知道了。

《手機抓包》講解的是如何在家裡搭建适合抓手機包的wifi環境。如果你經常需要抓手機上的包來研究,相信我,是該改造一下家裡的網絡了。

《微網誌為什麼會卡》分析了微網誌在wifi環境下經常卡頓的問題,最後找出來的原因竟然是dns。本文對很多app的優化有借鑒作用。

《尋找httpdns》講述了一個“失敗”的探索過程,因為到最後都沒有找到想要的包。不過失敗本身也有價值,因為我們知道了真相不過如此。

《誰動了我的網絡》詳細地講解了被劫持的網絡包有什麼特征,以及如何在wireshark中找到它們。下一次你懷疑自家網絡被劫持時,就可以抓一個包自己分析了。

《一個協定的進化》介紹的是目前http 1.1在性能上的落後之處,以及可能改進的空間。可惜現在http 2的包還不容易抓到,否則我們還可以增加一些内容。

《假裝産品經理》分析了在微網誌發圖檔的網絡包,我們可以從中看到它的壓縮比例、上傳行為、cdn服務商等。不用派卧底去新浪,就可以偵察到不少“機密”。

《自學的竅門》也無關技術,隻是分享了本人的學習經驗,希望對新人有些參考價值。

第四部分的内容很少,卻花費了我不少時間,因為寫的是兩個項目/産品。

《打造自己的分析工具》介紹了我自己打造的一個性能分析網站,讓大家體驗一下量身定制的工具有多好用。本文也分享了開發過程的一些經驗。

《一個創業點子》講的是我曾經想做的一個網絡加速器。裡面知識點還是挺多的,也适合用wireshark來研究。

你可能會問的一些問題

1.閱讀此書需要什麼基礎?

2.本書的選材為何如此廣泛?

我寫這本書是為了讓讀者學有所獲,是以選材也從讀者的興趣點出發。比如現在流行手機上網,是以我增加了這部分的内容;又比如技術圈正在熱議httpdns,是以我就去做了一系列實驗……不同讀者的關注點肯定會有所不同,如果某一篇的話題不是你感興趣的,直接跳過也不影響後面的閱讀。

3.為什麼我覺得有些内容太簡單了?

人們讀書時都會有這樣的反應——讀到自己不懂的内容時,就會覺得高大上;讀到自己擅長的領域時,又會覺得太簡單。這就是為什麼有些作者喜歡把書寫得很玄乎,然而我的風格恰恰相反,會盡可能地把複雜的問題簡單化。我的技術教育訓練也是堅持這樣的風格,會假設所有聽衆都是剛畢業的文科妹子(嗯,這樣也會使我的心情好一些)。

4.為什麼沒有随書CD光牒?

我也希望能把這本書裡的網絡包都共享出來,但由于大多是在客戶的生産環境中抓到的,是以不适合公開。畢竟從包裡能暴露出來的安全隐患太多了,希望讀者能了解這個苦衷。為了友善閱讀,我已經盡量把wireshark截圖做清晰。建議大家在自己的環境中抓包分析,這會比看示例包更有價值。

5.怎樣聯系作者?

如果對書中的内容有疑問,或者自己抓了包卻不知道怎麼分析,都可以聯系作者,郵箱位址為[email protected]。你也可以在微網誌上@林沛滿,但不建議關注,因為他是個整天曬園藝圖檔的話痨。

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。

目錄

<a href="https://yq.aliyun.com/articles/99004">答讀者問</a>

<a href="https://yq.aliyun.com/articles/99010">linux為什麼卡住了?</a>

<a href="https://yq.aliyun.com/articles/99015">像福爾摩斯一樣思考</a>

<a href="https://yq.aliyun.com/articles/99024">一篇關于vmware的文章</a>

<a href="https://yq.aliyun.com/articles/99031">來點有深度的</a>

<a href="https://yq.aliyun.com/articles/99038">三次握手的小知識</a>

<a href="https://yq.aliyun.com/articles/99050">被誤解的tcp</a>

最經典的網絡問題

為什麼丢了單子?

受損的幀

虛驚一場

ntlm協定分析

wireshark的提示

工作中的wireshark

書上錯了嗎?

計算“在途位元組數”

估算網絡擁塞點

順便說說lso

熟讀rfc

一個你本該能解決的問題

幾個關于分片的問題

mtu導緻的悲劇

迎刃而解

昙花一現的協定

另一種流控

過猶不及

治療強迫症

技術與工齡

如何科學地推卸責任

一個面試建議

生活中的wireshark

假寬帶真相

手機抓包

微網誌為什麼會卡

尋找httpdns

誰動了我的網絡

一個協定的進化

假裝産品經理

自學的竅門

兩個項目

打造自己的分析工具

一個創業點子

繼續閱讀