TCP/IP高效編程:改善網路程式的44個技巧

TCP/IP高效編程:改善網路程式的44個技巧

《TCP/IP高效編程:改善網路程式的44個技巧》是人民郵電出版社出版的一本圖書,作者Jon C. Snader

基本介紹

  • 書名:TCP/IP高效編程:改善網路程式的44個技巧
  • 作者:Jon C. Snader 
  • 原版名稱: Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs
  • 譯者:陳涓 趙振平
  • ISBN:9787115249371
  • 頁數:268
  • 出版社:人民郵電出版社
  • 出版時間:2011年4月
  • 開本:16
內容簡介,譯者序,媒體評論,目錄,

內容簡介

《tcp/ip高效編程:改善網路程式的44個技巧》是tcp/ip 領域的經典著作,對tcp/ip 網路編程中存在的各種問題進行了全面解析,旨在幫助讀者深入透徹地理解tcp/ip 網路編程。本書組織方式比較特別,正文部分包括4 章,將網路編程中存在的常見問題組織成44 個技巧,探討問題的過程中構建並運行了多個程式,並且指出了代碼的源地址,便於讀者查看。全書以技巧的形式解答了日常工作中遇到的經典問題,將本書作為手冊使用,極其方便。
《tcp/ip高效編程:改善網路程式的44個技巧》主要面向有一定經驗的初學者或中級網路程式設計師,也可作為計算機相關專業人士的參考讀物。

譯者序

網路已經無處不在,和我們的生活息息相關,絕大部分有趣和有用的程式都需要進行網路訪問。
TCP/IP是網際網路的核心協定,它最流行的編程接口是套接字。應用程式通過套接字可以很容易地進行網路通信。然而,實際的程式在運行時,常會碰到各種各樣的性能和連通性方面的問題。如果對網路協定的底層運作細節沒有深入的了解,就會被這些問題所困擾,難以開發出高效和穩健的應用程式。
Jon C. Snader的這本書是深入學習TCP/IP網路編程的必備書籍。通過一個個獨立的技巧,本書對網路編程中可能碰到的各種微妙問題一一進行了深入的分析和闡釋,並提供了很多可以方便擴展的實例代碼。有些複雜的問題還在多個技巧中反覆提起,從多種角度幫助讀者加深理解。本書還對解決聯網問題的常用工具進行了精要的介紹,幫助讀者利用工具提高分析和解決聯網問題的能力。
如今的編程工作除了靠埋頭苦幹,還要充分利用網路帶來的便利,學習和利用世界上其他編程人員的優秀成果,避免毫無意義的重複勞動,切不可閉門造車或重蹈覆轍。本書最後的閱讀代碼技巧中,對網路和作業系統方面的可以公開獲得的優秀書籍和開源項目進行了梳理,旨在幫助讀者找到適宜的學習目標,從而少走彎路,加快學習和成長的速度。
本書適用讀者範圍廣泛,對有一定網路編程基礎和經驗豐富的工程師都具有很高的參考價值。我自身雖然具有多年網路編程教學和產品開發方面的實踐經驗,但在翻譯本書的過程中也學習和完善了很多知識。
IT技術發展迅猛,許多書籍很快就會過時。而本書的英文原版雖然出版於2000年,但它是作者長期分析實踐總結出的真知灼見,如今看來,它不但沒有過時,還將會伴隨TCP/IP體系的進一步發展,產生深遠的影響。
陳涓
2011年1月

媒體評論

“本書從程式設計師的角度剖析了TCP/IP的基本原理,沒有任何照本宣科式的說教,而是採用了大量實用的建議、技巧,一定會讓每一位網路編程人員愛不釋手、受益匪淺。”
─—Uri Raz,TCP/IP專家、資深網路工程師
“本書可以跟Stevens的書互為補充。書中的內容可以用言簡意賅來形容,作者在如此少的篇幅中討論了那么多TCP/IP開發的知識點,真是令人驚嘆不已。它特別適合偶爾做做相關開發,而不願意啃大部頭著作的程式設計師。”
─—亞馬遜讀者評論
“謝天謝地,本書幫我解決了在一個大型公司級網路編程項目中遇到的所有難題!它不僅教會了我使用各種網路編程工具,而且更重要的是讓我以前那些模糊的認識都得到了澄清。好書,快看,馬上學以致用吧!”
─—W. J. Vovil “Wayne”,程式設計師

目錄

《tcp/ip高效編程:改善網路程式的44個技巧》
第1章 概述 1
1.1 幾個約定 1
1.2 本書其餘部分的內容介紹 2
1.3 客戶端—伺服器結構 4
1.4 對基本套接字api的回顧 5
1.5 小結 12
第2章 基本概念 13
2.1 技巧1:理解面向連線和無連線協定之間的區別 13
2.2 技巧2:理解子網和cidr的概念 18
2.2.1 分類編址 18
2.2.2 子網劃分 21
2.2.3 cidr 26
2.2.4 子網劃分和cidr的狀態 27
2.2.5 小結 27
2.3 技巧3:理解私有地址和nat 28
2.4 技巧4:開發並使用應用程式“框架” 30
2.4.1 tcp伺服器框架 31
2.4.2 tcp客戶端框架 36
2.4.3 udp伺服器框架 38
.2.4.4 udp客戶端框架 39
2.4.5 小結 41
2.5 技巧5:套接字接口比xti/tli更好用 41
2.6 技巧6:記住,tcp是一種流協定 43
2.7 技巧7:不要低估tcp的性能 50
2.7.1 udp源程式與接收程式 52
2.7.2 tcp源程式及接收程式 53
2.7.3 小結 59
2.8 技巧8:避免重新編寫tcp 59
2.9 技巧9:要認識到tcp是一個可靠的,但並不絕對可靠的協定 61
2.9.1 可靠性——是什麼,不是什麼 61
2.9.2 故障模式 63
2.9.3 網路中斷 63
2.9.4 對等實體崩潰 64
2.9.5 對等實體的主機崩潰 68
2.9.6 小結 69
2.10 技巧10:記住,tcp/ip不是輪詢的 69
2.10.1 保持活躍 70
2.10.2 心跳信號 71
2.10.3 另一個例子 76
2.10.4 小結 81
2.11 技巧11:提防對等實體的不友好動作 81
2.11.1 檢測客戶端的終止 82
2.11.2 檢測無效輸入 84
2.11.3 小結 88
2.12 技巧12:成功的lan策略不一定能推廣到wan中去 88
2.12.1 性能問題舉例 88
2.12.2 隱含錯誤舉例 89
2.12.3 小結 93
2.13 技巧13:了解協定是怎樣工作的 93
2.14 技巧14:不要把osi七層參考模型太當回事 94
2.14.1 osi模型 95
2.14.2 tcp/ip模型 96
2.14.3 小結 98
第3章 構建高效且健壯的網路程式 99
3.1 技巧15:理解tcp的寫操作 99
3.1.1 從應用程式的角度看寫操作 99
3.1.2 從tcp角度看寫操作 100
3.1.3 小結 103
3.2 技巧16:理解tcp的有序釋放操作 103
3.2.1 shutdown調用 104
3.2.2 有序釋放 106
3.2.3 小結 110
3.3 技巧17:考慮用inetd來裝載應用程式 111
3.3.1 tcp伺服器 111
3.3.2 udp伺服器 114
3.3.3 小結 118
3.4 技巧18:考慮用tcpmux為伺服器“分配”知名連線埠 118
3.5 技巧19:考慮使用兩條tcp連線 126
3.5.1 單連線結構 127
3.5.2 雙連線架構 128
3.5.3 小結 133
3.6 技巧20:使應用程式成為事件驅動的(1) 133
3.7 技巧21:使應用程式成為事件驅動的(2) 140
3.8 技巧22:不要用time-wait暗殺來關閉一條連線 147
3.8.1 它是什麼 147
3.8.2 為什麼要使用它 149
3.8.3 time-wait暗殺 150
3.8.4 小結 151
3.9 技巧23:伺服器應該設定so_reuseaddr選項 151
3.10 技巧24:可能的話,使用一個大規模的寫操作,而不是多個小規模的寫操作 155
3.10.1 禁用nagle算法 158
3.10.2 將寫操作合併起來 159
3.10.3 小結 161
3.11 技巧25:理解如何使connect調用逾時 162
3.11.1 使用告警 162
3.11.2 使用select 164
3.11.3 小結 167
3.12 技巧26:避免數據複製 167
3.12.1 共享記憶體緩衝區 168
3.12.2 一個共享記憶體緩衝區系統 169
3.12.3 一個unix實現 171
3.12.4 一個windows實現 175
3.12.5 小結 179
3.13 技巧27:使用前將結構sockadddr_in清零 179
3.14 技巧28:不要忘記位元組的性別 180
3.15 技巧29:不要將ip地址或連線埠號硬編入應用程式中 182
3.16 技巧30:理解已連線的udp套接字 187
3.17 技巧31:記住,並不是所有程式都是用c編寫的 190
3.18 技巧32:理解緩衝區長度帶來的影響 195
第4章 工具和資源 199
4.1 技巧33:熟悉ping實用工具 199
4.2 技巧34:學習使用tcpdump或類似的工具 201
4.2.1 tcpdump是如何工作的 202
4.2.2 使用tcpdump 205
4.2.3 tcpdump的輸出 206
4.2.4 小結 210
4.3 技巧35:學習使用traceroute 210
4.3.1 traceroute是如何工作的 212
4.3.2 windows tracert 214
4.3.3 小結 215
4.4 技巧36:學習使用ttcp 215
4.5 技巧37:學習使用lsof 219
4.6 技巧38:學習使用netstat 221
4.6.1 活動套接字 221
4.6.2 接口 223
4.6.3 路由表 223
4.6.4 協定統計 225
4.6.5 windows版的netstat 227
4.6.6 小結 227
4.7 技巧39:學習使用系統中的調用追蹤工具 227
4.7.1 過早終止 227
4.7.2 ttcp性能問題 231
4.7.3 小結 232
4.8 技巧40:構建並使用捕獲icmp報文的工具 233
4.8.1 讀取icmp報文 233
4.8.2 列印icmp報文 234
4.8.3 小結 239
4.9 技巧41:讀stevens的書 240
4.9.1 《tcp/ip詳解》叢書 240
4.9.2 《unix網路編程》叢書 241
4.10 技巧42:閱讀代碼 242
4.11 技巧43:訪問rfc編輯者的頁面 243
4.12 技巧44:經常訪問新聞組 244
附錄a 各種unix代碼 247
附錄b 各種windows代碼 250
參考書目 253
索引 257

相關詞條

熱門詞條

聯絡我們