出版時間:201003 出版社:人民郵電出版社 作者:W.Richard Stevens 頁數(shù):328
Tag標簽:無
前言
本書是《TCP/IP詳解》系列書的自然延續(xù):[Stevens, 1994],本書中稱為卷1(Volume 1);[Wright and Stevens, 1995],本書中稱為卷2(Volume 2)。本書可以分為三部分,每一部分包含一個不同的主題。 (1) TCP事務(wù)協(xié)議,一般簡稱T/TCP。這是TCP的擴展,用來使客戶-服務(wù)器事務(wù)更快、更有效,同時也更加可靠。這是通過省略連接開始時的三次握手并縮短連接結(jié)束時的TIME_WAIT狀態(tài)來實現(xiàn)的。我們將看到,對于客戶-服務(wù)器事務(wù),T/TCP可以達到UDP的性能,而T/TCP還提供了可靠性和適應(yīng)性,這是與UDP相比的重要改進。事務(wù)可以定義為客戶向服務(wù)器提出的請求以及服務(wù)器相應(yīng)的應(yīng)答。(術(shù)語“事務(wù)”指的不是包含加鎖、兩段提交和回退過程的數(shù)據(jù)庫事務(wù)。) (2) TCP/IP應(yīng)用具體是指HTTP(超文本傳送協(xié)議,萬維網(wǎng)的基礎(chǔ))和NNTP(網(wǎng)絡(luò)新聞傳送協(xié)議,Usenet新聞系統(tǒng)的基礎(chǔ))。 (3) Unix域協(xié)議。所有的Unix TCP/IP實現(xiàn)都提供這些協(xié)議,許多非Unix實現(xiàn)也提供這些協(xié)議。它們提供了一種進程間通信(IPC)的形式,并使用與TCP/IP一樣的套接字接口。當客戶和服務(wù)器在同一臺主機上時,Unix域協(xié)議的速度一般是TCP/IP的兩倍。 第一部分(T/TCP的描述)分為兩塊內(nèi)容。第1章至第4章對這一協(xié)議進行了描述,并提供大量的示例說明其工作原理。卷1的24.7節(jié)曾對T/TCP進行了簡單描述,本書的這部分內(nèi)容對其進行了大幅擴展。第二塊是第5章至第12章,描述的是4.4BSD-Lite網(wǎng)絡(luò)代碼(即卷2給出的代碼)中T/TCP的實際實現(xiàn)。由于第一個T/TCP實現(xiàn)直到1994年9月才發(fā)布,而此時卷1已經(jīng)出版一年,卷2也基本完成,因此T/TCP的示例和實現(xiàn)細節(jié)只能在本套書的這一卷中進行詳細描述。 第二部分(HTTP和NNTP應(yīng)用)是卷1的第25章至第30章介紹的TCP/IP應(yīng)用的延續(xù)。在卷1出版后兩年的時間里,HTTP技術(shù)隨著因特網(wǎng)的興起迅速流行開來,NNTP技術(shù)的使用在十幾年時間中每年增長75%左右。由于常見的TCP使用方式是在數(shù)據(jù)交換極少的短連接里(連接的建立和銷毀操作占用大部分時間),因此HTTP還是T/TCP的理想候補技術(shù)。在繁忙的Web服務(wù)器上由數(shù)以千計不同類型的客戶大量使用HTTP(進而大量使用TCP)使我們可以檢測服務(wù)器上的實際分組(第14章),并更好地理解卷1和卷2中描述的很多TCP/IP特性。 第三部分的Unix域協(xié)議本來是計劃安排在卷2中的,但是由于卷2的篇幅已達到1200頁,所以刪掉了。在題為《TCP/IP詳解》的一套書中講述非TCP/IP協(xié)議看上去有點奇怪,但是Unix域協(xié)議早在將近15年前的4.2BSD版本中就首次實現(xiàn)了,與BSD TCP/IP的首次實現(xiàn)時間差不多。Berkeley衍生內(nèi)核中大量使用了Unix域協(xié)議,但通常都是“在掩護下”使用的,大多數(shù)用戶感覺不到它們的存在。除了作為Berkeley衍生內(nèi)核中Unix管道的基礎(chǔ)技術(shù)外,Unix域協(xié)議還大量用于客戶和服務(wù)器在同一臺主機(常見的工作站)上的XWindow 系統(tǒng)。Unix域套接字技術(shù)用于在進程之間傳遞描述符,這是一種用于進程間通信的強大技術(shù)。由于Unix域協(xié)議中套接字API(應(yīng)用程序接口)與TCP/IP中的套接字API幾乎相同,因此只需要改動很少的代碼,Unix域協(xié)議就可以輕松地提高應(yīng)用程序的性能。以上三部分內(nèi)容可以獨立閱讀。
內(nèi)容概要
《TCP/IP 詳解 卷3:T/TCP、HTTP、NNTP和UNIX域協(xié)議(英文版)》是TCP/IP領(lǐng)域的經(jīng)典之作!書中重點講述高級協(xié)議,覆蓋了當今TCP/IP編程人員和網(wǎng)絡(luò)管理員必須熟練掌握的T/TCP(TCP事務(wù)協(xié)議)、HTTP(超文本傳送協(xié)議)、NNTP(網(wǎng)絡(luò)新聞傳送協(xié)議)和Unix域協(xié)議。與前面兩卷一樣,《TCP/IP 詳解 卷3:T/TCP、HTTP、NNTP和UNIX域協(xié)議(英文版)》有豐富的例子和實現(xiàn)的細節(jié)。 《TCP/IP 詳解 卷3:T/TCP、HTTP、NNTP和UNIX域協(xié)議(英文版)》適合希望了解TCP/IP協(xié)議如何實現(xiàn)的讀者閱讀,是TCP/IP領(lǐng)域研究人員和開發(fā)人員的權(quán)威參考書。
作者簡介
史蒂文斯(W. Richard Stevens),國際知名的UNIX和網(wǎng)絡(luò)專家,備受贊譽的技術(shù)作家。他1951年2月5日出生于贊比亞,后隨父母回到美國。中學時就讀于弗吉尼亞菲什伯恩軍事學校,1973年獲得密歇根大學航空和航天工程學士學位。1975年至1982年,他在亞利桑那州圖森市的基特峰國家天文臺從事計算機編程工作,業(yè)余時間喜愛飛行運動,做過兼職飛行教練。這期間他分別在1978年和1982年獲得亞利桑那大學系統(tǒng)工程碩士和博士學位。此后他去康涅狄格州紐黑文的健康系統(tǒng)國際公司任主管計算機服務(wù)的副總裁。1990年他回到圖森,從事專業(yè)技術(shù)寫作和咨詢工作。寫下了多種經(jīng)典的傳世之作,包括《TCP/IP詳解》(三卷)、《UNIX環(huán)境高級編程》和《UNIX網(wǎng)絡(luò)編程》(兩卷)。Stevens于1999年9月1日去世,年僅48歲。2000年他被國際權(quán)威機構(gòu)USENIX追授“終身成就獎”。
書籍目錄
Preface xvPart 1. TCP for Transactions 1Chapter 1. TFFCP Introduction 31.1 Introduction 31.2 UDP Client-Server 31.3 TCP Client-Server 91.4 T/TCP Client-Server 171.5 Test Network 201.6 Timing Example 211.7 Applications 221.8 History 241.9 Implementations 261.10 Summary 28Chapter 2. T/TCP Protocol 292.1 Introduction 292.2 New TCP Options for T/TCP 302.3 T/TCP Implementation Variables 332.4 State Transition Diagram 342.5 T/TCP Extended States 362.6 Summary 38Chapter 3. T/TOP Examples 393.1 Introduction 393.2 Client Reboot 403.3 Normal T/TCP Transaction 423.4 Server Receives Old Duplicate SYN 433.5 Server Reboot 443.6 Request or Reply Exceeds MSS 453.7 Backward Compatibility 493.8 Summary 51Chapter 4. T/TCP Protocol (Continued) 534.1 Introduction 534.2 Client Port Numbers and TIME WAIT State 534.3 Purpose of the TIME,,,WAIT State 564.4 TIME WAIT State Truncation 594.5 Avoiding the Three-Way Handshake with TAO 624.6 Summary 68Chapter 5. T/TCP Implementation: Socket Layer 695.1 Introduction 695.2 Constants 705.3 sosend Function 705.4 Summary 72Chapter 6.T/TOP Implementation: Routing Table 736.1 Introduction 736.2 Code Introduction 746.3 radix node head Structure 756.4 r t ent ry Structure 756.5 rt metrics Structure 766.6 in inithead Function 766.7 in addroute Function 776.8 in matroute Function 786.9 in clsroute Function 786.10 in. r tqt imo Function 796.11 in. rtqkil i Function 826.12 Summary 85Chapter 7. T/TCP Implementation: Protocol Control Blocks 877.1 Introduction 877.2 in_pcbladdr Function 887.3 in pcbconnect Function 897.4 Summary 90Chapter 8. T/TCP Implementation: TCP Overview 918.1 Introduction 918.2 Code Introduction 918.3 TCP protosw Structure 928.4 TCP Control Block 938.5 tcp init Function 948.6 tcp s lowt imo Function 948.7 Summary 95Chapter 9. T/TCP Implementation: TCP Output 979.1 Introduction 979.2 tcp output Function 979.3 Summary 104Chapter 10. T/TCP Implementation: TOP Functions 10510.1 Introduction 10510.2 tcp newtcpcb Function 10510.3 tcp rt lookup Function 10610.4 tcp gettaocache Function 10810.5 Retransmission Timeout Calculations 10810.6 tcp close Function 11210.7 tcp_ms s s end Function 11310.8 tcp ms s rcvd Function 11410.9 tcp dooptions Function 12110.10 tcp reass Function 12210.11 Summary 124Chapter 11.T/TCP Implementation: TCP Input 12511.1 Introduction 12511.2 Preliminary Processing 12511.3 Header Prediction 12911.4 Initiation of Passive Open 13011.5 Initiation of Active Open 13411.6 PAWS: Protection Against Wrapped Sequence Numbers 14111.7 ACK Processing 14211.8 Completion of Passive Opens and Simultaneous Opens 14211.9 ACK Processing (Continued) 14311.10 Summary 147Chapter 12. T/TCP Implementation: TOP User Requests 14912.1 Introduction 14912.2 PRU CONNECT Request 14912.3 tcp connect Function 15012.4 PRU SEND and PRU SEND EOF Requests 15412.5 tcp_usrclosed Function 15512.6 tcp sysctl Function 15512.7 T/TCP Futures 15612.8 Summary 158Part 2. Additional TCP Applications 159Chapter 13, HTTP: Hypertext Transfer Protocol 16113.1 Introduction 16113.2 Introduction to HTTP and HTML 16213.3 HTTP Protocol 16513.4 An Example 17013.5 HTTP Statistics 17213.6 Performance Problems 17313.7 Summary 175Chapter 14. Packets Found on an HTTP Server 17714.1 Introduction 17714.2 Multiple HTTP Servers 18014.3 Client SYN Interarrival Time 18114.4 RTT Measurements 18514.5 1isten Backlog Queue 18714.6 Client SYN Options 19214.7 Client SYN Retransmissions 19514.8 Domain Names 19614.9 Timing Out Persist Probes 19614.10 Simulation of T/TCP Routing Table Size 20014.11 Mbuf Interaction 20214.12 TCP PCB Cache and Header Prediction 20314.13 Summary 205Chapter 15. NNTP: Network News Transfer Protocol 20715.1 Introduction 20715.2 NNTP Protocol 20915.3 A Simple News Client 21215.4 A More Sophisticated News Client 21415.5 NNTP Statistics 21515.6 Summary 216Part 3. The Unix Domain Protocols 219Chapter 16. Unix Domain Protocols: Introduction 22116.1 Introduction 22116.2 Usage 22216.3 Performance 22316.4 Coding Examples 22416.5 Summary 225Chapter 17. Unix Domain Protocols: Implementation 22717.1 Introduction 22717.2 Code Introduction 22717.3 Unix domain and protosw Structures 22817.4 Unix Domain Socket Address Structures 23017.5 Unix Domain Protocol Control Blocks 23117.6 uipc .usrreq Function 23317.7 PRU ATTACH Request and unp attach Function 23317.8 PRU DETACH Request and unp detach Function 23617.9 PRU_BIN# Request and unp_bind Function 23717.10 PRU_CONNECT Request and unp connect Function 24017.11 PRU_CONNECT2 Request and unp connect2 Function 24517.12 socketpair System Call 24917.13 pipe System Call 25317.14 PRU ACCEPT Request 25317.15 PRU DISCONNECT Request and unp disconnect Function 25517.16 PRU SHUTDOWN Request and unp shutdown Function 25717.17 PRU ABORT Request and unp .drop Function 25817.18 Miscellaneous Requests 25917.19 Summary 261Chapter 18. Unix Domain Protocols: I/O and Descriptor Passing 26318.1 Introduction 26318.2 PRU_SEND and PRU RCVD Requests 26318.3 Descriptor Passing 26918.4 unp internalize Function 27418.5 unp external i ze Function 27618.6 unp_discard Function 27718.7 unp dispose Function 27818.8 unp scan Function 27818.9 unp. gc Function 28018.10 unp mark Function 28818.11 Performance (Revisited) 28818.12 Summary 289Appendix A. Measuring Network Times 291A.1 RTT Measurements Using Ping 292A.2 Protocol Stack Measurements 294A.3 Latency and Bandwidth 300Appendix B. Coding Applications for T/'I'CP 303Bibliography309Index 315
章節(jié)摘錄
插圖:This is the simplest form of UDP client-server application. A common real-worldexample is the Domain Name System (DNS). A DNS client (called a resolver) is nor-mally part of a client application (say, a Telnet client, an FTP client, or a WWWbrowser). The resolver sends a single UDP datagram to a DNS server requesting the IPaddress associated with a domain name. The reply is normally a single UDP datagramfrom the server.If we watch the packets that are exchanged when our client sends the server arequest, we have the time line shown in Figure 1.4. Time increases down the page. Theserver is started first, shown on the right side of the diagram, and the client is startedsometime later.We distinguish between the function call performed by the client and server, andthe action performed by the corresponding kernel. We use two closey spaced arrows,as in the two calls to socket, to show that the kernel performs the requested action andreturns immediately. In the call to sendo, although the kernel returns immediately tothe calling process, a UDP datagram is sent. For simplicity we assume that the sizes ofthe resulting IP datagrams generated by the client's request and the server's reply areboth less than the network's MTU (maximum transmission unit), avoiding fragmenta-tion of the IP datagram.In this figure we also show that the two calls to reevfrora put the process to sleepuntil a datagram arrives. We denote the kernel routines as s 1 eep and wakeup.Finally, we show the times associated with the transaction. On the left side of Fig-ure 1.4 we show the transaction time as measured by the client: the time to send arequest to the server and receive a reply. The values that comprise this transaction timeare shown on the right side of the figure: RTT + SPT, where RTT is the network und-trip time, and SPT is the server processing time for the request. The transaction time forthe UDP client-server, RTT + SPT, is the minimum possible.
媒體關(guān)注與評論
“本書絕對是將科學的思考與分析應(yīng)用于技術(shù)問題的典范……它代表了頂級的技術(shù)寫作和思考水準?!? ——Marcus J.Ranum,防火墻架構(gòu)師 “很有價值的第3卷,延續(xù)了本系列敘述清晰、技術(shù)準確的極高標準。這一卷詳細地討論了T/TCP和HTTP協(xié)議。” ——Vern Paxson, 勞倫斯伯克利國家實驗室網(wǎng)絡(luò)研究小組 “你若想深入了解Web服務(wù)器的行為,本書關(guān)于HTTP協(xié)議的描述對你具有不可估量的價值?!? ——Jeffrey Mogul,DEC公司 “第3卷是本系列書的自然延伸。它深入闡述了Web服務(wù)和T/TCP的網(wǎng)絡(luò)特性?!? ——Pete Haverlock, IBM公司項目經(jīng)理 “在這最新一卷里,Richard Stevens保持了他在前兩卷里設(shè)定的高標準,即精準到位地清晰闡釋每一處細節(jié)?!? ——Andras Olah,荷蘭屯特大學 “本卷保持了前兩卷的超高質(zhì)量,對于新方向上的網(wǎng)絡(luò)實現(xiàn)展開了深入研究。整個系列對于想認真了解今日因特網(wǎng)原理的讀者來說,不可或缺?!? ——Ian Lance Taylor,GNU/Taylor UUCP的發(fā)明人
編輯推薦
《TCP/IP 詳解 卷3:T/TCP、HTTP、NNTP和UNIX域協(xié)議(英文版)》是已故網(wǎng)絡(luò)專家、著名技術(shù)作家W. Richard Stevens的傳世之作,內(nèi)容詳盡且具權(quán)威性,被譽為TCP/IP領(lǐng)域的不朽名著。《TCP/IP 詳解 卷3:T/TCP、HTTP、NNTP和UNIX域協(xié)議(英文版)》是《TCP/IP詳解》三卷本的第3卷,主要講述高級協(xié)議,覆蓋當今TCP/IP編程人員和網(wǎng)絡(luò)管理員必須熟練掌握的T/TCP(TCP事務(wù)協(xié)議)、HTTP(超文本傳送協(xié)議)、NNTP(網(wǎng)絡(luò)新聞傳送協(xié)議)和Unix域協(xié)議。與前面兩卷一樣,《TCP/IP 詳解 卷3:T/TCP、HTTP、NNTP和UNIX域協(xié)議(英文版)》有豐富的例子和實現(xiàn)的細節(jié)。這一卷的前兩部分內(nèi)容要求讀者對TCP/IP協(xié)議的工作原理有基本的了解。對TCP/IP協(xié)議不是很熟悉的讀者先應(yīng)閱讀《TCP/IP詳解》的第1卷,該書對TCP/IP協(xié)議族有比較透徹的講述。除第1章至第4章可以獨立于《TCP/IP詳解》的第2卷閱讀外,其余各章要求讀者對第2卷中提供的4.4BSD-Lite網(wǎng)絡(luò)代碼比較熟悉?!禩CP/IP詳解》對于網(wǎng)絡(luò)應(yīng)用的開發(fā)人員、網(wǎng)絡(luò)管理員以及任何想了解TCP/IP協(xié)議運行原理的人員來說,都是極好的權(quán)威參考書。無論是初學者還是功底深厚的網(wǎng)絡(luò)領(lǐng)域高手,這套書都應(yīng)是案頭必備。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
TCP/IP詳解 卷3:T/TCP、HTTP、NNTP及UNIX域協(xié)議(英文版) PDF格式下載