出版時間:2010-6 出版社:人民郵電出版社 作者:W.Richard Stevens,Bill Fenner,Andrew M. Rudoff 頁數(shù):804 譯者:楊繼張
Tag標簽:無
前言
概述 本書面向的讀者是那些希望自己編寫的程序能使用稱為套接字(socket)的API進行彼此通信的人。有些讀者可能已經非常熟悉套接字了,因為這個模型幾乎已經成了網絡編程的同義詞,但有些讀者可能仍需要從頭開始學習。本書想達到的目標是向大家提供網絡編程指導。這些內容不僅適用于專業(yè)人士,也適用于初學者;不僅適用于維護已有代碼,也適用于開發(fā)新的網絡應用程序;此外,還適用于那些只是想了解一下自己系統(tǒng)中網絡組件的工作原理的人。 書中的所有示例都是在Unix系統(tǒng)上測試通過的真實的、可運行的代碼。但是,考慮到許多非Unix的操作系統(tǒng)也支持套接字API,因而我們選取的示例與所講述的一般性概念,在很大程度上是與操作系統(tǒng)無關的。幾乎每種操作系統(tǒng)都提供了大量的網絡應用程序,如網頁瀏覽器、電子郵件客戶端、文件共享服務器等。我們按常規(guī)的劃分方法把這些應用程序分為客戶程序和服務器程序,并在書中多次編寫了相應的小型示例。 面向Unix介紹網絡編程自然免不了要介紹Unix本身和TCP/IP的相關背景知識。需要更詳盡的背景知識時,我們會指引讀者查閱其他書籍。本書中經常提到以下4本書,我們將其簡記如下: APUE:Advanced Programming in the UNIX Environment [Stevens 1992]; TCPv1:TCP/IP Illustrated, Volume 1 [Stevens 1994]; TCPv2:TCP/IP Illustrated, Volume 2 [Wright and Stevens 1995]; TCPv3:TCP/IP Illustrated, Volume 3 [Stevens 1996]。 其中TCPv2包含了與本書內容密切相關的細節(jié),它描述并給出了套接字API中網絡編程函數(shù)(socket、bind、connect等)的真實4.4BSD實現(xiàn)。如果已經理解某個特性的實現(xiàn),那么在應用程序中使用該特性就更有意義了。 與第2版的區(qū)別 從20世紀80年代開始,套接字就差不多是現(xiàn)在這個樣子了。時至今日,套接字仍然是網絡API的首選,其最初的設計的確值得稱道。因此,當讀者發(fā)現(xiàn)我們對出版于1998年的第2版又做了不少改動時,可能會覺得驚訝。本書中所做的改動歸納如下。 新版本包含了IPv6的最新信息。在第2版出版時,IPv6尚處于草案階段,這些年來已經有所發(fā)展。 更新了全部函數(shù)和示例的描述,以反映最新的POSIX規(guī)范(POSIX 1003.1-2001),即Single Unix Specification Version 3。 刪去了X/Open傳輸接口(XTI)的內容。這個API已經不常用了,連最新的POSIX 規(guī)范也不再提到。 刪去了事務TCP協(xié)議(T/TCP)的內容。 新增了三章用于描述一種相對較新的傳輸協(xié)議——SCTP。這個可靠的面向消息的協(xié)議能夠在兩個端點之間提供多個流,并為多歸屬技術提供傳輸層支持。該協(xié)議最初是為了在因特網上傳輸電話信號而設計的,但它的一些特性可以用于許多應用。
內容概要
本書是一部UNIX網絡編程的經典之作!書中全面深入地介紹了如何使用套接字API進行網絡編程。全書不但介紹了基本編程內容,還涵蓋了與套接字編程相關的高級主題,對于客戶/服務器程序的各種設計方法也作了完整的探討,最后還深入分析了流這種設備驅動機制?! ”緯鴥热菰敱M且具權威性,幾乎每章都提供精選的習題,并提供了部分習題的答案,是網絡研究和開發(fā)人員理想的參考書。
作者簡介
W.Richard Stevens國際知名的Unix和網絡專家,《TCP/IP 詳解》(三卷本)作者W.Richard Stevens(1951-1999),是國際知名的Unix和網絡專家;受人尊敬的計算機圖書作家;同時他還是廣受歡迎的教師和顧問。
書籍目錄
第一部分 簡介和TCP/IP 第1章 簡介 第2章 傳輸層:TCP、UDP和SCTP 第二部分 基本套接字編程 第3章 套接字編程簡介 第4章 基本TCP套接字編程 第5章 TCP客戶/服務器程序示例 第6章 I/O復用:select和poll函數(shù) 第7章 套接字選項 第8章 基本UDP套接字編程 第9章 基本SCTP套接字編程 第10章 SCTP客戶/服務器程序例子 第11章 名字與地址轉換第三部分 高級套接字編程 第12章 IPv4與IPv6的互操作性 第13章 守護進程和inetd超級服務器 第14章 高級I/O函數(shù) 第15章 Unix域協(xié)議 第16章 非阻塞式I/O 第17章 ioctl操作 第18章 路由套接字 第19章 密鑰管理套接字 第20章 廣播 第21章 多播 第22章 高級UDP套接字編程 第23章 高級SCTP套接字編程 第24章 帶外數(shù)據(jù) 第25章 信號驅動式I/O 第26章 線程 第27章 IP選項 第28章 原始套接字 第29章 數(shù)據(jù)鏈路訪問 第30章 客戶/服務器程序設計范式 第31章 流 附錄A IPv4、IPv6、ICMPv4和ICMPv6 附錄B 虛擬網絡 附錄C 調試技術 附錄D 雜湊的源代碼 附錄E 精選習題答案 參考文獻索引
章節(jié)摘錄
插圖:我們將在本章較深入地討論SCTP,查看SCTP提供的更多特性和套接字選項。我們將討論多個論題,包括故障檢測的控制、無序的數(shù)據(jù)以及通知。本章通章提供了多個代碼例子,以展示如何使用SCTP的某些高級特性。SCTP是一個面向消息的協(xié)議,遞送給用戶的是部分的或完整的消息。部分消息的遞送前提是應用進程選擇向對端發(fā)送大消息(譬如大于套接字緩沖區(qū)一半大?。?。部分消息被遞送給應用進程之后,多個部分消息組合成單個完整消息并不由SCTP負責。在應用進程看來,一個消息既可以由單個輸入操作接收,也可以由若干個相繼的輸入操作接收。我們將通過一個作為例子的函數(shù)說明處理這種部分遞送機制的一個方法。SCTP服務器程序既可以迭代運行,也可以并發(fā)運行,這取決于應用程序開發(fā)人員選取的套接字式樣。SCTP還提供了從一到多式套接字抽取某個關聯(lián)并使其成為一到一式套接字的方法。本方法允許構造既可迭代運行又可并發(fā)運行的服務器程序?;仡櫸覀冊诘?0章中編寫的服務器程序,它不保持任何關聯(lián)狀態(tài),因為它依賴客戶程序關閉關聯(lián)。依賴客戶關閉關聯(lián)存在這樣的弱點:要是客戶打開一個關聯(lián)后從不發(fā)送任何數(shù)據(jù),將發(fā)生什么?服務器不得不將資源分配給從不使用這些資源的客戶。懶惰的客戶會無意中造成對于SCTP實現(xiàn)的拒絕服務攻擊。
媒體關注與評論
“所有人都非常期待這本書,因為它完美地結合了實踐經驗、歷史視角以及在本領域浸淫多年才能獲得的透徹理解。閱讀本書是一種享受,我收獲頗豐。相信大家定會有同感。” ——Sam Leffler,F(xiàn)reeBSD基金會副主席 “這部著作在計算機科學領域里的傳奇得以延續(xù),Bill Fenner和Andrew Rudoff居功至偉?!? ——Art Sedighi “這套書是學習網絡編程最好的書。全世界最最好的,遠超群倫?!? ——S. Devasundaram “這本書不會讓你一夜之間成為專家,但它終究會讓你成為專家?!? ——John Nguyen
編輯推薦
《UNIX網絡編程(卷1):套接字聯(lián)網API(第3版)》中頂級網絡編程專家Bill Fenner和Andrew M. Rudoff應邀執(zhí)筆,對W. Richard Stevens的經典作品進行修訂。書中吸納了近幾年網絡技術的發(fā)展,增添了IPv6、SCTP協(xié)議和密鑰管理套接字等內容,深入討論了最新的關鍵標準、實現(xiàn)和技術。書中的所有示例都是在UNIX系統(tǒng)上測試通過的真實的、可運行的代碼,繼承了Stevens一直強調的理念:“學習網絡編程的最好方法就是下載這些程序,對其進行修改和改進。只有這樣實際編寫代碼才能深入理解有關概念和方法?!弊x者可以從圖靈網站《UNIX網絡編程(卷1):套接字聯(lián)網API(第3版)》網頁免費注冊下載這些示例的源代碼。 《UNIX網絡編程(卷1):套接字聯(lián)網API(第3版)》為UNIX網絡編程提供全面的指導,是網絡研究和開發(fā)人員公認的權威參考書,無論網絡編程的初學者還是網絡專家都會大受裨益。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
UNIX網絡編程 卷1:套接字聯(lián)網API(第3版) PDF格式下載