追蹤Linux TCP/IP代碼運行

出版時間:2010-4  出版社:北京航空航天大學(xué)出版社  作者:秦健  頁數(shù):578  
Tag標簽:無  

前言

學(xué)習(xí)過TCP/IP協(xié)議的讀者可能會感覺面對長篇大論的一堆文字往往不知道從何入手,甚至很多讀者在認真閱讀之后也無法領(lǐng)會協(xié)議的作用,更無法進入內(nèi)核的協(xié)議棧閱讀代碼,以至于無法從事網(wǎng)絡(luò)方面的開發(fā)與維護。然而,高速發(fā)展的網(wǎng)絡(luò)時代要求技術(shù)人員必須快速掌握和運用協(xié)議的知識,那么有沒有一種有效的方法可以幫助我們實現(xiàn)這一目標呢?相信讀者可以在本書中找到答案。理論的學(xué)習(xí)固然是基礎(chǔ),但是不一定具備了理論才開始閱讀代碼,就像以往大家只采取背單詞、記語法的方式學(xué)英語,結(jié)果十幾年之后仍然不會說英語,不會用英語;因為這種英語教學(xué)方法只停留在理論層上,現(xiàn)代的英語教學(xué)則打破了以理論為主線的學(xué)習(xí)方法,從應(yīng)用性和實用性出發(fā),極大改變了學(xué)習(xí)的效果。因此,本書借鑒現(xiàn)代英語的學(xué)習(xí)模式,選擇從實際應(yīng)用出發(fā),以應(yīng)用程序為主線進入Linux內(nèi)核,通過應(yīng)用程序的工作過程層層解析內(nèi)核的協(xié)議棧,揭示協(xié)議棧的工作路線及網(wǎng)絡(luò)的真實過程,幫助讀者徹底掌握協(xié)議棧,使其在閱讀完本書之后有一種登上泰山頂峰的興奮之情。目前,市場針對Linux網(wǎng)絡(luò)的講解書籍已經(jīng)很多,但內(nèi)容基本都是對理論的泛泛而談,有的書籍缺少主線,有的書籍缺少與實際應(yīng)用的結(jié)合,有的書籍采用的內(nèi)核版本過于陳舊,這些問題加大了閱讀的難度,導(dǎo)致很多讀者使用“壓箱子底”的辦法放棄了學(xué)習(xí)。相反,本書克服了上述問題,并且在描述每一個關(guān)鍵過程時,采取穿插圖片和逐行解釋的方式解決了這些難點。本書針對的是2.6版本的Linux內(nèi)核,對于內(nèi)核的進程管理、內(nèi)存管理、文件系統(tǒng)等內(nèi)容,讀者可以借鑒本書推薦書籍或者直接跳過這些內(nèi)容只閱讀核心部分;對于難以理解的內(nèi)容可以先放一放,往往在讀第二遍時就會自然而解,因為內(nèi)核的知識點是互為補充的。由于內(nèi)容繁多,不足之處在所難免,請讀者指正。廣州工程技術(shù)職業(yè)學(xué)院馮偉老師對本書的圖片編輯提供了幫助,羅燕軍、楊永祥、張文盛、李華、倪巍、馮偉、劉國兵、葛德奇、朱德良、羅兵、彭海、白瑜、顏詩敏、傅海熒、李柱棟、盛曉輝、修宸、張澤榮、陳嘉順、時安營、周丹、江均勇、楊碩、羅偉彬、李洪彬、楊春雷、付金平、繆曉及鐘海文也對本書的編輯提供了支持,在此向他們的辛勤付出表示感謝。

內(nèi)容概要

本書以應(yīng)用程序為線索,詳細描述了數(shù)據(jù)包在協(xié)議棧的分段、重組、發(fā)送、接收過程,同時分析了路由的初始化和設(shè)置過程,主要包括socket應(yīng)用程序、TCP/IP協(xié)議、路由、通知鏈、鄰居子系統(tǒng)等內(nèi)容。全書涵蓋了協(xié)議棧的全部知識點,對于廣大的讀者來說這是一本極其難得的技術(shù)資料。同時,書中論述了網(wǎng)絡(luò)設(shè)備的工作原理,解釋了RTL8169和嵌入式CS8900、DM9000網(wǎng)卡設(shè)備的核心過程。    本書可作為3G網(wǎng)絡(luò)開發(fā)人員、嵌入式通信產(chǎn)品開發(fā)人員、網(wǎng)絡(luò)應(yīng)用開發(fā)人員、網(wǎng)絡(luò)管理人員及網(wǎng)絡(luò)愛好者、從事網(wǎng)絡(luò)方向的本科生、研究生的參考書。

作者簡介

秦健,嵌入式研發(fā)工程師。精通Linux內(nèi)核,多年從事嵌入式軟硬件開發(fā),使用Linux平臺設(shè)計電子產(chǎn)品。已經(jīng)三十四歲的他憑借一顆熱愛技術(shù)、永不放棄的心,十年如一地堅持技術(shù)研發(fā)的人生道路,推翻了“三十歲是技術(shù)員墳?zāi)埂钡闹囌?,為年輕工程師樹立了榜樣。

書籍目錄

第1章  本書的計劃  1.1  基本路線和要求  1.2  TCP/IP協(xié)議層的劃分與基本知識  1.3  函數(shù)到系統(tǒng)調(diào)用的過程  1.4  網(wǎng)絡(luò)文件系統(tǒng)第2章  socket的創(chuàng)建  2.1  本章幾個重要數(shù)據(jù)結(jié)構(gòu)  2.2  分配并初始化socket結(jié)構(gòu)  2.3  使用協(xié)議族的函數(shù)表初始化socket  2.4  分配并初始化sock結(jié)構(gòu)  2.5  TCP協(xié)議對sock結(jié)構(gòu)初始化  2.6  socket與文件系統(tǒng)的關(guān)聯(lián)第3章  socket地址設(shè)置  3.1  地址設(shè)置接口  3.2  地址結(jié)構(gòu)定義  3.3  地址類型  3.4  設(shè)置地址和端口  3.5  網(wǎng)絡(luò)空間總管init_net第4章  路由  4.1  路由函數(shù)表結(jié)構(gòu)及關(guān)系圖  4.2  路由函數(shù)表的初始化  4.3  通過路由函數(shù)表查找路由信息  4.4  路由的設(shè)置及相關(guān)結(jié)構(gòu)的初如化  4.5  基于輸出方向的路由表查找與創(chuàng)建  4.6  基于輸入方向的路由表查找與創(chuàng)建第5章  通知鏈  5.1  設(shè)備通知鏈節(jié)點的掛入  5.2  地址通知鏈節(jié)點的掛入  5.3  通知鏈的調(diào)用和執(zhí)行第6章  netlink概述  6.1  netlink的創(chuàng)建  6.2  注冊路由的netlink  6.3  通過netlink通信第7章  監(jiān)聽連接請求  7.1  內(nèi)核的監(jiān)聽函數(shù)  7.2  內(nèi)核的監(jiān)聽隊列第8章  接收連接請求  8.1  接收連接函數(shù)  8.2  異步接收方式  8.3  獲取連接請求第9章  準備連接請求  9.1  內(nèi)核的連接函數(shù)  9.2  分配數(shù)據(jù)包結(jié)構(gòu)和數(shù)據(jù)塊空間  9.3  構(gòu)建、發(fā)送TCP數(shù)據(jù)包  9.4  進化成IP數(shù)據(jù)包  9.5  進化成以太網(wǎng)數(shù)據(jù)包  9.6  發(fā)送以太網(wǎng)數(shù)據(jù)包第10章  鄰居子系統(tǒng)  10.1  鄰居子系統(tǒng)的初始化  10.2  查找鄰居結(jié)構(gòu)  10.3  鄰居子系統(tǒng)的發(fā)送事件  10.4  鄰居子系統(tǒng)的接收處理第11章  流量控制  11.1  排隊規(guī)則的初始  11.2  排隊規(guī)則的入隊和發(fā)送第12章  建立連接的過程  12.1  驅(qū)動程序接收并建立數(shù)據(jù)包  12.2  查找數(shù)據(jù)包類型且調(diào)用其處理函數(shù)  12.3  接收或轉(zhuǎn)發(fā)IP數(shù)據(jù)包  12.4  TCP數(shù)據(jù)包的處理  12.5  3次握手過程第13章  Internet控制信息的傳輸  13.1  發(fā)送ICMP信息  13.2  接收ICMP信息第14章  數(shù)據(jù)包的分段與重組  14.1  數(shù)據(jù)包的分段發(fā)送  14.2  數(shù)據(jù)包的分段接收和重組  14.3  分段數(shù)據(jù)包的接收隊列  14.4  查找與創(chuàng)建分段隊列  14.5  釋放和銷毀分段隊列第15章  發(fā)送和接收數(shù)據(jù)包  15.1  內(nèi)核的發(fā)送、接收函數(shù)  15.2  客戶端發(fā)送數(shù)據(jù)包  15.3  服務(wù)器接收數(shù)據(jù)包第16章  socket的關(guān)閉  16.1  內(nèi)核的關(guān)閉函數(shù)  16.2  服務(wù)器與客戶端的共同關(guān)閉索引參考文獻

章節(jié)摘錄

插圖:1.本書的主要特點本書以socket應(yīng)用過程為路線,以函數(shù)調(diào)用為線索,按照代碼的執(zhí)行線路將整個網(wǎng)絡(luò)的組織和架構(gòu)串聯(lián)成一個整體,這是本書的最大特色。知識點模塊化是本書的另一個特點,全部的知識點被分布到各個章節(jié)結(jié)合實際場景敘述,有時在函數(shù)的過程中登臺亮相,也有時隨著代碼的剖析赫然而出,這種靈活的安排加強了閱讀的流暢性。2.socket的概念與意義socket這個單詞是插座的意思,但是在計算機領(lǐng)域中有時稱為插口,也有時稱為套接字;無論什么稱謂其作用是不變的,它是應(yīng)用程序在網(wǎng)絡(luò)通信中的橋梁與紐帶。舉一個電話通信的例子,在這個例子中用客戶與服務(wù)商通電話的過程來說明socket的含義與作用??蛻粜枰螂娫捊o服務(wù)商,因此例子中有2部電話就好比2個socket進程,電話號碼是它們的socket地址,客戶的電話相當于客戶端socket;同理,服務(wù)商的電話相當于服務(wù)器的socket。現(xiàn)在客戶拿起電話開始拔打服務(wù)商的電話號碼,相當于客戶端socket向服務(wù)器socket發(fā)出連接請求;服務(wù)商如果此時正好空閑就可以接聽電話,相當于服務(wù)器socket在等待連接請求,電話鈴響起說明服務(wù)器soeket已經(jīng)接收到了連接請求,此時服務(wù)商拿起電話后雙方就可以正式通話了,相當于客戶端與服務(wù)器的socket連接成功;通話過程中客戶的聲音被傳送到服務(wù)商的電話中,相當于客戶端socket發(fā)送數(shù)據(jù)而服務(wù)器socket接收數(shù)據(jù);通話完成后,掛起電話則相當于關(guān)閉客戶端的socket和服務(wù)器的socket。

編輯推薦

《追蹤Linux TCP/IP代碼運行·基于2.6內(nèi)核》:從事技術(shù)性工作十余年間,作者不斷地探索、研究有效的學(xué)習(xí)方法,不斷地提高學(xué)習(xí)效果,最終在分析Linux內(nèi)核中得出了“用中學(xué)習(xí)、用中理解”的方法。這種方法在《追蹤Linux TCP/IP代碼運行·基于2.6內(nèi)核》中得到了很好的運用,能幫助讀者順利進入Linux的網(wǎng)絡(luò)世界,也能使讀者掌握正確的學(xué)習(xí)方法,這就是我們常講的“授人以魚,不如授人以漁”?!蹲粉橪inux TCP/IP代碼運行·基于2.6內(nèi)核》采取了從應(yīng)用到內(nèi)核,從實踐到理論,從軟件到硬件的講解方式。全書通過應(yīng)用程序這條主線,幫助讀者剖析網(wǎng)絡(luò)通信的具體過程和細節(jié),讓讀者理解協(xié)議線的具體內(nèi)容,提高讀者的網(wǎng)絡(luò)開發(fā)能力。讀者在學(xué)習(xí)時不需要具備網(wǎng)絡(luò)知識,只需要具備一定的C語言基礎(chǔ)就可以順利閱讀。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    追蹤Linux TCP/IP代碼運行 PDF格式下載


用戶評論 (總計18條)

 
 

  •   該書以應(yīng)用程序為主線,通過應(yīng)用程序的工作過程層層解析內(nèi)核的協(xié)議棧,揭示協(xié)議棧的工作路線及網(wǎng)絡(luò)的真實工作過程,通過不斷的深入學(xué)習(xí),我感到自己的網(wǎng)絡(luò)編程能力在不斷的提高!
  •   大略看了一下,還不錯!對學(xué)習(xí)LINUX 有幫助
  •   很好,蠻不錯的一本書
  •   雖然好多內(nèi)容暫時還看不懂,但是整體感覺書寫的還是挺不錯的?。?/li>
  •   很喜歡這種敘述方式,打算好好研究研究,為跳槽做準備:)
  •   應(yīng)該還可以,比較清晰的內(nèi)容布局,對理解代碼有幫助
  •   還沒看,剛拿到手!
  •   可惜沒有bridge部分
  •   最近翻了一下這本書,感覺內(nèi)容很散,全是代碼羅列。感覺作者也不太懂的樣子,很多東西,需要到網(wǎng)上去查半天,才知道來龍去脈。感覺作者有可能很熟悉,但是很難給出一個完整的架構(gòu)出來。有本老外寫的《Understanding Linux ***work Internals》,寫得不錯。
  •   第一章就是精華吧,其他各章就是羅列kernel代碼,函數(shù)調(diào)用順序,真正的好書需要在說what的同時,說清楚why,但是可惜,這本書沒有做到,可惜了作者已經(jīng)34歲還號稱繼續(xù)在做技術(shù),這樣實在不敢恭維。
  •   紙質(zhì)不是一般的差?。?!
  •   書中有超過2/3是在貼代碼,更像是閱讀代碼的文檔,而不是一本書。如果書的定價再便宜2/3,至多不超過25¥,可以買來閱讀,否則就不值得了。作者貼了那么多代碼,基本是在介紹流程,融入自己的理解和總結(jié)相當有限,不應(yīng)該要價太多啊。
  •   書中2/3以上都是代碼,分析也不多,總體來說,不值。
  •   需要一些準備。很不錯,就喜歡這種邊看邊學(xué)的書籍。
  •   書雖然是按照《linux源代碼情景分析》的模式寫的,但比起來差了許多。整本書,講解太少,代碼更多的只是粘貼,添加了一點注釋,對于“why”沒有講解清楚。也不知道是不是我網(wǎng)絡(luò)了解得還不夠,這本書對于我難說,很難讀。
  •   沒有原理介紹,沒有背景知識說明,一上來就一堆代碼,外加自己的理解……
  •   送貨速度還比較快。 書的內(nèi)容還行
  •   good and cheap
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7