圖書詳細信息
ISBN:9787302119746
定價:98元
印次:1-8
裝幀:平裝
印刷日期:2009-4-9
圖書簡介
本書第1版和第2版由已故UNIX網路專家W. Richard Stevens博士獨自編寫。本書是3版,由網路專家Bill Fenner和Andrew M. Rudoff執筆,根據近幾年網路技術的發展,對上一版進行全面修訂,增添了IPv6的更新過的信息、SCTP協定和密鑰管理套接口的內容,刪除了X/Open傳輸接口的內容。
目錄
第1部分簡介和TCP/IP
第1章簡介(1)
1.1概述(1)
1.2一個簡單的時間獲取客戶程式(4)
1.3協定無關性(9)
1.4錯誤處理:包裹函式(10)
1.5一個簡單的時間獲取伺服器程式(11)
1.6書中客戶/伺服器程式例子索引表(14)
1.7OSI模型(16)
1.8BSD網路支持歷史(17)
1.9測試用網路及主機(18)
1.10Unix標準(21)
1.1164位體系結構(24)
1.12小結(25)
1.13習題(26)
第2章傳輸層:TCP、UDP和SCTP(27)
2.1概述(27)
2.2總圖(27)
2.3UDP:用戶數據報協定(30)
2.4TCP:傳輸控制協定(30)
2.5SCTP:流控制傳輸協定(31)
2.6TCP連線的建立和終止(32)
2.7TIME_WAIT狀態(38)
2.8SCTP關聯的建立和終止(39)
2.9連線埠號(43)
2.10TCP連線埠號與並發伺服器(45)
2.11緩衝區大小及限制(47)
2.12標準網際網路服務(52)
2.13常見網際網路套用的協定使用(53)
2.14小結(54)
2.15習題(55)
第2部分基本套接口編程
第3章套接口編程簡介(56)
3.1概述(56)
3.2套接口地址結構(56)
3.3值結果參數(62)
3.4位元組排序函式(64)
3.5位元組操縱函式(67)
3.6inet_aton、inet_addr和inet_ntoa函式(68)
3.7inet_pton和inet_ntop函式(69)
3.8sock_ntop和相關函式(71)
3.9readn、writen和readline函式(73)
3.10小結(77)
3.11習題(78)
第4章基本TCP套接口編程(79)
4.1概述(79)
4.2socket函式(79)
4.3connect函式(82)
4.4bind函式(84)
4.5listen函式(87)
4.6accept函式(92)
4.7fork和exec函式(94)
4.8並發伺服器(96)
4.9close函式(98)
4.10getsockname和getpeername函式(99)
4.11小結(101)
4.12習題(101)
第5章TCP客戶/伺服器程式例子(103)
5.1概述(103)
5.2TCP回射伺服器程式:main函式(104)
5.3TCP回射伺服器程式:str_echo函式(105)
5.4TCP回射客戶程式:main函式(106)
5.5TCP回射客戶程式:str_cli函式(106)
5.6正常啟動(107)
5.7正常終止(109)
5.8POSIX信號處理(110)
5.9處理SIGCHLD信號(113)
5.10wait和waitpid函式(115)
5.11accept返回前連線夭折(119)
5.12伺服器進程終止(120)
5.13SIGPIPE信號(122)
5.14伺服器主機崩潰(123)
5.15伺服器主機崩潰後重啟(124)
5.16伺服器主機關機(124)
5.17TCP程式例子小結(125)
5.18數據格式(126)
5.19小結(129)
5.20習題(130)
第6章I/O復用:select和poll函式(131)
6.1概述(131)
6.2I/O模型(131)
6.3select函式(137)
6.4str_cli函式(修訂版)(142)
6.5批量輸入(144)
6.6shutdown函式(146)
6.7str_cli函式(再修訂版)(148)
6.8TCP回射伺服器程式(修訂版)(149)
6.9pselect函式(154)
6.10poll函式(155)
6.11TCP回射伺服器程式(再修訂版)(158)
6.12小結(160)
6.13習題(161)
第7章套接口選項(162)
7.1概述(162)
7.2getsockopt和setsockopt函式(162)
7.3檢查選項是否受支持並獲取預設值(165)
7.4套接口狀態(168)
7.5通用套接口選項(169)
7.6IPv4套接口選項(182)
7.7ICMPv6套接口選項(184)
7.8IPv6套接口選項(184)
7.9TCP套接口選項(186)
7.10SCTP套接口選項(189)
7.11fcntl函式(198)
7.12小結(200)
7.13習題(201)〖LM〗
第8章基本UDP套接口編程(203)
8.1概述(203)
8.2recvfrom和sendto函式(204)
8.3UDP回射伺服器程式:main函式(205)
8.4UDP回射伺服器程式:dg_echo函式(205)
8.5UDP回射客戶程式:main函式(207)
8.6UDP回射客戶程式:dg_cli函式(208)
8.7數據報的丟失(208)
8.8驗證接收到的回響(209)
8.9伺服器進程未運行(211)
8.10UDP程式例子小結(212)
8.11UDP的connect函式(214)
8.12dg_cli函式(修訂版)(218)
8.13UDP缺乏流量控制(219)
8.14UDP中的外出接口的確定(222)
8.15使用select函式的TCP和UDP回射伺服器程式(223)
8.16小結(225)
8.17習題(225)
第9章基本SCTP套接口編程(227)
9.1概述(227)
9.2接口模型(227)
9.3sctp_bindx函式(231)
9.4sctp_connectx函式(233)
9.5sctp_getpaddrs函式(233)
9.6sctp_freepaddrs函式(233)
9.7sctp_getladdrs函式(234)
9.8sctp_freeladdrs函式(234)
9.9sctp_sendmsg函式(234)
9.10sctp_recvmsg函式(235)
9.11sctp_opt_info函式(235)
9.12sctp_peeloff函式(236)
9.13shutdown函式(236)
9.14通知(237)
9.15小結(242)
9.16習題(243)
第10章SCTP客戶/伺服器程式例子(244)
10.1概述(244)
10.2SCTP一到多式流分回射伺服器程式:main函式(244)
10.3SCTP一到多式流分回射客戶程式:main函式(246)
10.4SCTP流分回射客戶程式:sctpstr_cli函式(248)
10.5探究頭端阻塞(249)
10.6控制流的數目(255)
10.7控制終結(255)
10.8小結(257)
10.9習題(257)
第11章名字與地址轉換(258)
11.1概述(258)
11.2域名系統(258)
11.3gethostbyname函式(261)
11.4gethostbyaddr函式(264)
11.5getservbyname和getservbyport函式(265)
11.6getaddrinfo函式(269)
11.7gai_strerror函式(274)
11.8freeaddrinfo函式(275)
11.9getaddrinfo函式:IPv6(275)
11.10getaddrinfo函式:例子(276)
11.11host_serv函式(278)
11.12tcp_connect函式(279)
11.13tcp_listen函式(282)
11.14udp_client函式(286)
11.15udp_connect函式(289)
11.16udp_server函式(290)
11.17getnameinfo函式(291)
11.18可重入函式(293)
11.19gethostbyname_r和gethostbyaddr_r函式(296)
11.20作廢的IPv6地址解析函式(297)
11.21其他網路相關信息(298)
11.22小結(299)
11.23習題(300)
第3部分高級套接口編程
第12章IPv4與IPv6的互操作性(302)
12.1概述(302)
12.2IPv4客戶與IPv6伺服器(302)
12.3IPv6客戶與IPv4伺服器(306)
12.4IPv6地址測試宏(308)
12.5原始碼可移植性(309)
12.6小結(310)
12.7習題(310)
第13章守護進程和inetd超級伺服器(311)
13.1概述(311)
13.2syslogd守護進程(311)
13.3syslog函式(312)
13.4daemon_init函式(315)
13.5inetd守護進程(318)
13.6daemon_inetd函式(324)
13.7小結(325)
13.8習題(326)
第14章高級I/O函式(327)
14.2套接口逾時(327)
14.3recv和send函式(332)
14.4readv和writev函式(333)
14.5recvmsg和sendmsg函式(334)
14.6輔助數據(338)
14.7排隊的數據量(342)
14.8套接口和標準I/O(342)
14.9高級輪詢技術(345)
14.10T/TCP:事務目的TCP(350)
14.11小結(352)
14.12習題(353)
第15章Unix域協定(354)
15.1概述(354)
15.2Unix域套接口地址結構(354)
15.3socketpair函式(356)
15.4套接口函式(357)
15.5Unix域位元組流客戶/伺服器程式(358)
15.6Unix域數據報客戶/伺服器程式(360)
15.7描述字傳遞(361)
15.8接收傳送者的憑證(368)
15.9小結(371)
15.10習題(371)
第16章非阻塞I/O(373)
16.1概述(373)
16.2非阻塞讀和寫:str_cli函式(修訂版)(374)
16.3非阻塞connect(384)
16.4非阻塞connect:時間獲取客戶程式(384)
16.5非阻塞connect:Web客戶程式(387)
16.6非阻塞accept(395)
16.7小結(397)
16.8習題(397)
第17章ioctl操作(398)
17.1概述(398)
17.2ioctl函式(398)
17.3套接口操作(400)
17.4檔案操作(400)
17.5接口配置(401)
17.6get_ifi_info函式(402)
17.7接口操作(412)
17.8ARP高速快取操作(413)
17.9路由表操作(415)
17.10小結(415)
17.11習題(416)
第18章路由套接口(417)〖
18.1概述(417)
18.2數據鏈路套接口地址結構(418)
18.3讀和寫(418)
18.4sysctl操作(426)
18.5get_ifi_info函式(429)
18.6接口名字和索引函式(432)
18.7小結(437)
18.8習題(437)
第19章密鑰管理套接口(438)
19.1概述(438)
19.2讀和寫(439)
19.3傾瀉安全關聯資料庫(440)
19.4創建靜態安全關聯(443)
19.5動態維護安全關聯(449)
19.6小結(452)
19.7習題(453)
第20章廣播(454)〖
20.1概述(454)
20.2廣播地址(455)
20.3單播和廣播的比較(457)
20.4使用廣播的dg_cli函式(459)
20.5競爭狀態(462)
20.6小結(469)
20.7習題(470)
第21章多播(471)
21.1概述(471)
21.2多播地址(471)
21.3區域網路上多播和廣播的比較(475)
21.4廣域網上的多播(477)
21.5源特定多播(479)
21.6多播套接口選項(480)
21.7mcast_join和相關函式(485)
21.8使用多播的dg_cli函式(489)
21.9接收IP多播基礎設施會話聲明(490)
21.10傳送和接收(494)
21.11SNTP:簡單網路時間協定(497)
21.12小結(501)
21.13習題(501)
第22章高級UDP套接口編程(503)
22.1概述(503)
22.2接收標誌、宿IP位址和接口索引(503)
22.3數據報截斷(509)
22.4何時改用UDP代替TCP(509)
22.5給UDP套用增加可靠性(511)
22.6捆綁接口地址(521)
22.7並發UDP伺服器(525)
22.8IPv6分組信息(527)
22.9IPv6路徑MTU控制(530)
22.10小結(531)
22.11習題(531)
第23章高級SCTP套接口編程(533)
23.1概述(533)
23.2自動關閉的一到多式伺服器程式(533)
23.3部分遞送(534)
23.4通知(536)
23.5無序的數據(540)
23.6捆綁地址子集(540)
23.7確定對端和本端地址信息(542)
23.8給定IP位址找出關聯ID(545)
23.9心搏和地址不可達(546)
23.10關聯剝離(547)
23.11定時控制(548)
23.12何時改用SCTP代替TCP(550)
23.13小結(551)
23.14習題(551)
第24章帶外數據(553)
24.1概述(553)
24.2TCP帶外數據(553)
24.3sockatmark函式(560)
24.4TCP帶外數據小結(565)
24.5客戶伺服器心博函式(566)
24.6小結(570)
24.7習題(571)
第25章信號驅動I/O(572)〖HT5”SS〗〖ST5”BZ〗〖WT5”BZ〗
25.1概述(572)
25.2套接口的信號驅動I/O(572)
25.3使用SIGIO的UDP回射伺服器程式(574)〖HT5”SS〗〖ST5”BZ〗〖WT5”BZ〗
25.4小結(580)
25.5習題(580)
〗第26章執行緒(581)〖HT5”SS〗〖ST5”BZ〗〖WT5”BZ〗
26.1概述(581)
26.2基本執行緒函式:創建和終止(582)
26.3使用執行緒的str_cli函式(584)
26.4使用執行緒的TCP回射伺服器程式(586)
26.5執行緒特定數據(590)
26.6Web客戶與同時連線(597)
26.7互斥鎖(600)
26.8條件變數(604)
26.9Web客戶與同時連線(續)(607)
26.10小結(609)
26.11習題(609)
第27章IP選項(611)〖HT5”SS〗〖ST5”BZ〗〖WT5”BZ〗
27.1概述(611)
27.2IPv4選項(611)
27.3IP源路徑選項(613)
27.4IPv6擴展頭部(620)
27.5IPv6步跳選項和目的地選項(621)
27.6IPv6路由頭部(625)
27.7IPv6粘附選項(630)
27.8歷史性IPv6高級API(631)
27.9小結(632)
27.10習題(632)
第28章原始套接口(633)〖HT5”SS〗〖ST5”BZ〗〖WT5”BZ〗
28.1概述(633)
28.2原始套接口創建(633)
28.3原始套接口輸出(634)
28.4原始套接口輸入(636)
28.5ping程式(638)
28.6traceroute程式(650)
28.7一個ICMP訊息守護程式(663)
28.8小結(677)
28.9習題(678)
第29章數據鏈路訪問(679)〖HT5”SS〗〖ST5”BZ〗〖WT5”BZ〗
29.1概述(679)
29.2BPF:BSD分組過濾器(679)
29.3DLPI:數據鏈路提供者接口(681)
29.4Linux:SOCK_PACKET和PF_PACKET(682)
29.5libpcap:分組捕獲函式館(683)
29.6libnet:分組構造與輸出函式館(684)
29.7檢查UDP的校驗和欄位(684)
29.8小結(702)
29.9習題(703)
第30章客戶/伺服器程式設計範式(704)
30.1概述(704)
30.2TCP客戶程式設計範式(706)
30.3TCP測試用客戶程式(707)
30.4TCP疊代伺服器程式(708)
30.5TCP並發伺服器程式,每個客戶一個子進程(709)
30.6TCP預先派生子進程伺服器程式,accept無上鎖保護(712)
30.7TCP預先派生子進程伺服器程式,accept使用檔案上鎖保護(718)
30.8TCP預先派生子進程伺服器程式,accept使用執行緒上鎖保護(720)
30.9TCP預先派生子進程伺服器程式,傳遞描述字(722)
30.10TCP並發伺服器程式,每個客戶一個執行緒(727)
30.11TCP預先創建執行緒伺服器程式,每個執行緒各自accept(728)
30.12TCP預先創建執行緒伺服器程式,主執行緒統一accept(730)
30.13小結(733)
30.14習題(734)
第31章流(735)
31.1概述(735)
31.2概貌(735)
31.3getmsg和putmsg函式(739)
31.4getpmsg和putpmsg函式(740)
31.5ioctl函式(741)
31.6TPI:傳輸提供者接口(741)
31.7小結(750)
31.8習題(750)
第4部分附錄
A.1概述(751)
A.2IPv4頭部(752)
A.3IPv6頭部(753)
A.4IPv4地址(755)
A.5IPv6地址(759)
B.1概述(767)
B.2MBone(767)
B.36bone(769)
B.46to4:IPv6過渡(769)
C.1系統調用跟蹤(772)
C.2標準網際網路服務(775)
C.3sock程式(775)
C.4小測試程式(778)
C.5tcpdump程式(778)
C.6netstat程式(778)
C.7lsof程式(779)
D.1unp.h頭檔案(780)
D.2config.h頭檔案(784)
D.3標準錯誤處理函式(788)
附錄F參考文獻(824)〖KH*2D〗
附錄G函式和宏定義索引表(832)〖KH*2D〗
附錄H結構定義索引表(834)〖KH*2D〗
附錄I中英文對照辭彙表(836)