TCP/IP詳解 卷2:實現(xiàn)(英文版)

出版時間:201003  出版社:人民郵電出版社  作者:Gary R.Wright,,W.Richard Stevens  頁數(shù):1174  字數(shù):1440000  
Tag標簽:無  

前言

  本書介紹并給出了TCP/IP的常見參考實現(xiàn)的源代碼,即由加州大學伯克利分校計算機系統(tǒng)研究組(CSRG)研發(fā)的實現(xiàn)。歷史上該實現(xiàn)是隨4.x BSD(Berkeley Software Distribution)系統(tǒng)一起發(fā)布的。最早的發(fā)布版本出現(xiàn)干1982年,隨后經(jīng)過了多次大改、多次微調,并實現(xiàn)了映射到其他unix及非Unix系統(tǒng)的眾多端口。這個實現(xiàn)不可小覷,它是世界范圍內無數(shù)系統(tǒng)中日常運行的TCP/IP實現(xiàn)的基礎。該實現(xiàn)還提供了路由器功能,使我們可以展示出TCP/IP的主機實現(xiàn)與路由器的區(qū)別。  本書將描述該實現(xiàn)并給出TCP/IP核心實現(xiàn)的全部源代碼,大約有15000行C代碼。書中介紹的Berkeley代碼的版本是4.4BSD-Lite發(fā)布版本。這個代碼于1994年4月公布,它在1988年的4.3BSD Tahoe發(fā)布版本、1990年的4.3BSD Reno發(fā)布版本以及1993年的4-4BSD發(fā)布版本基礎上增加了大量的網(wǎng)絡增強技術(附錄B講述了如何獲取這些源代碼)?! ?.4BSD發(fā)布版本提供了最新的TCP/IP特性,例如對多播(multicast)和長肥管道(10ng fat pipe)的支持(用于高帶寬、長延遲的通道)。圖1-1(第4頁)提供了各版本的Berkeley網(wǎng)絡代碼的更多細節(jié)。

內容概要

  本書是TCP/IP領域的經(jīng)典之作!書中完整而詳細地介紹了TCP/IP協(xié)議是如何實現(xiàn)的。本書介紹了一個實際的TCP/IP實現(xiàn),并給出了這一實現(xiàn)的完整源代碼,幫助讀者全面掌握TCP/IP的實現(xiàn)。本書內容詳盡且具權威性,幾乎每章都提供精選的習題,并在附錄中提供了部分習題的答案?! ”緯m合任何希望了解TCP/IP協(xié)議如何實現(xiàn)的讀者閱讀,更是TCP/IP領域研究人員和開發(fā)人員的權威參考書。

作者簡介

  Gary.Wright,研究TCP/IP多年。他是Connix公司的董事長,Cotlnix公司的總部在康涅狄格州,主要提供Intermet接入和咨詢服務。  W.Richard Stevens(1951-1999)國際知名的LJNIX和網(wǎng)絡專家,備受贊譽的技術作家。生前著有《TCP/IP詳解》(三卷)、《UNIX環(huán)境高級編程》和《UNIX網(wǎng)絡編程》(兩卷),均為不朽的經(jīng)典著作。

書籍目錄

Chapter 1. Introduction Chapter 2. Mbufs:Memory Buffers Chapter 3. Interface Layer Chapter 4. Interfaces:Ethernet Chapter 5. Interfaces:SLIP and Loopback Chapter 6. IP Addressing Chapter 7. Domains and Protocols Chapter 8. IP:Internet Protocol Chapter 9. IP Option Processing Chapter 10. IP Fragmentation and Reassembly Chapter 11. ICMP:Internet Control Message Protocol Chapter 12. IP Multicasting Chapter 13. IGMP:Internet Group Management Protocol Chapter 14. IP Multicast Routing Chapter 15. Socket Layer Chapter 16. Socket I/O Chapter 17. Socket Options Chapter 18. Radix Tree Routing Tables Chapter 19. Routing Requests and Routing Messages Chapter 20. Routing Sockets Chapter 21. ARP:Address Resolution Protocol Chapter 22. Protocol Control Blocks Chapter 23. UDP:User Datagram Protocol Chapter 24. TCP:Transmission Control Protocol Chapter 25. TCP Timers Chapter 26. TCP Output Chapter 27. TCP Functions Chapter 28. TCP Input  Chapter 29. TCP Input(Continued) Chapter 30. TCP User Requests Chapter 31. BPF:BSD Packet Filter Chapter 32. Raw IP Epilogue Appendix A. Solutions to Selected Exercises Appendix B. Source Code Availability Appendix C. RFC 1122 Compliance Bibliography Index 

章節(jié)摘錄

  When a process executes a system call such as socket, the kernel has access to the process table structure. The entry p fd in this structure points to the f i ledesc struc- ture for the process. There are two members of this structure that interest us now: (do fi1e lags is a pointer to an array of characters (the per-descriptor flags for each descriptor), and fd o files is a pointer to an array of pointers to file table structures. The per-descriptor flags are 8 bits wide since only 2 bits can be set for any descriptor: the close-on-exec flag and the mapped-from-device flag. We show all these flags as.  We purposely call this section “Descriptors” and not “File Descriptors” since Unix descriptors can refer to lots of things other than files: sockets, pipes, directories, devices, and so on. Never- theless, much of Unix literature uses the adjective file when talking about descriptors, which is an unnecessary qualification. Here the kernel data structure is called filedesc teven though were about to describe socket descriptors. Well use the unqualified term descriptor whenever possible.  The data structure pointed to by the fd ofiles entry is showrL as file since it is an array of pointers to file structures. The index into this array and the array of descriptor flags is the nonnegative descriptor itself: 0, 1, 2, and so on. In Fig- ure 1.5 we show the entries for descriptors 0, 1, and 2 pointing to the same file struc- ture at the bottom of the figure (since all three descriptors refer to our terminal). The entry for descriptor 3 points to a different file structure for our socket descriptor.  The type member of the file structure specifies the descriptor type as either DTYPE_SOCKET or DTYPE_VNODE. V-nodes are a general mechanism that allows the kernel to support different types of filesystems——a disk filesystem, a network filesystem (such as NFS), a filesystem on a CD-ROM, a memory-based filesystem, and so on. Our interest in this text is not with v-nodes, since TCP/IP sockets always have a type of DTYPE_SOCKET.  The (_data member of the file structure points to either a socket structure or a vnode structure, depending on the type of descriptor. The fops member points to a vector of five function pointers. These function pointers are used by the read, readv, write, writev, ioctl, select, and close system calls, since these system calls work with either a socket descriptor or a nonsocket descriptor. Rather than look at the (_type value each time one of these system calls is invoked and then jump accord- ingly, the implementors chose always to jump indirectly through the corresponding entry in the f i 1 e op s structure instead.  Notationally we use a fixed-width font (fo_read) to show the name of a structure member and a slanted fixed-width font (soo__read) to show the contents of a structure member. Also note that sometimes we show the pointer to a structure arriving at the top left corner (e.g., the filedesc structure) and sometimes at the top right comer (e.g., both file structures and both fileops structures). This is to simplify the fig- ures.  Next we come to the socket structure that is pointed to by the file structure when the descriptor type is DTYPE_SOCKET. In our example, the socket type (SOCK_DGRAM for a datagram socket) is stored in the so_type member. An Intemet protocol control block (PCB) is also allocated: an inpcb structure. The so_.pcb member of the socket structure points to the inpcb.

編輯推薦

  “我早就知道這《TCP/IP 詳解 卷2:實現(xiàn)(英文版)》很好,但它比我之前了解的還要好。你可以在這《TCP/IP 詳解·卷2:實現(xiàn)(英文版)》中找到任何與IP相關的信息。”  “上大學的時候就對網(wǎng)絡充滿了好奇,偶然的機會,接觸了《TCP/IP詳解》的第1卷,立刻被它透徹的分析所深深吸引。但總還是有很多地方不甚理解。工作了,因為項目的需要,又曾多次拜讀《TCP/IP詳解》第1卷,每一次都有新的收獲。今天,購買了這本第2卷,我相信它的精彩?!薄  白鳛橐幻浖绦騿T,我一直在尋找一本能清晰闡釋網(wǎng)際協(xié)議工作方式的書?!禩CP/IP詳解》通過逐行解釋的源代碼和清晰的圖示,給出了關于TCP/IP如何實現(xiàn)的精彩且深入的細節(jié)。這《TCP/IP 詳解·卷2:實現(xiàn)(英文版)》絕對是每一位網(wǎng)絡程序員以及任何對TCP/IP運行方式感興趣的技術人員的必備讀物?!薄  斑@本書非常詳盡地介紹了BSD/Linu×系統(tǒng)上TCP/IP協(xié)議的實現(xiàn)。對于任何對網(wǎng)絡協(xié)議軟件開發(fā)感興趣的人來說,《TCP/IP 詳解·卷2:實現(xiàn)(英文版)》都是必讀之作、必備參考。書中詳細介紹了協(xié)議的核心實現(xiàn)以及基于用戶的套接字API/ioctls。無論你是初學者還是有經(jīng)驗的專業(yè)人士,我都向你強烈推薦這本書?!薄  白罱诰帉懢W(wǎng)絡通信程序,這本書既可以加深我對TCP/IP協(xié)議的理解,又為我編程提供了很好的實例。  “絕對的經(jīng)典!希望所有想深入研究TCP/IP的人,都能有幸獲得此書,讀懂此書?!  拔矣X得《TCP/IP詳解》真是學習TCP/IP協(xié)議的超級好書。通俗易懂,對于初學者非常適合。通過閱讀這三本書,我對整個TCP/IP有了更深層的認識和理解?!  斑@本書難得如此細致。相對于第1卷來講,第2卷更適合做相關工作的人,或者對TCP/IP協(xié)議感興趣的人。讀這樣一本書需要耐心。難得的好書!”  《TCP/IP詳解》是已故網(wǎng)絡專家、著名技術作家W.Rictlard Steverls的傳世之作。內容詳盡且具權威性,被譽為TCP/IP領域的不朽名著?!  禩CP/IP 詳解·卷2:實現(xiàn)(英文版)》是《TCP/IP詳解》三卷本的第2卷,重點關注TCP/IP協(xié)議的實現(xiàn)問題。書中介紹了一個實際的TCP/IP實現(xiàn),并給出了這一實現(xiàn)的完整源代碼,大約有15000行C代碼。此外,幾乎每章都提供精選的習題。并在附錄中提供了部分習題的答案?! ∵@一卷要求讀者對TCP/IP協(xié)議的工作原理以及操作系統(tǒng)原理有初步的了解。對TCP/IP協(xié)議不是很熟悉的讀者應先閱讀《TCP/IP詳解》的第1卷。該書對TCP/IP協(xié)議族有比較透徹的描述?!  禩CP/IP詳解》對于網(wǎng)絡應用的開發(fā)人員、網(wǎng)絡管理員以及任何想了解TCP/IP協(xié)議運行原理的人員來說,都是極好的權威參考書。無論是初學者還是功底深厚的網(wǎng)絡領域高手。這套書都應是案頭必備。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    TCP/IP詳解 卷2:實現(xiàn)(英文版) PDF格式下載


用戶評論 (總計9條)

 
 

  •   好書!適合非常了解TCP/IP的人看,新手還是看1吧。。想要成為牛逼的程序員,這本書必看!
  •   卷1讓我了解整個TCP/IP輪廓,卷2讓我能從內核層面理解TCP/IP,Steven的書不可多得?。。?/li>
  •   網(wǎng)絡經(jīng)典中的經(jīng)典,正在看。
  •   書很厚,值得研究
  •   2卷像磚頭一樣,增長知識的同時,又可防身,不讀此書,自稱高手也枉然~~
  •   好書 啊,真是好書,為什么當當每次發(fā)過來的書都有點臟????
  •   有中文電子書..對照..
  •   這本書很適合想要了解linux下TCP/IP編程的程序員,寫得非常詳細,還有很多使用的例子,便于掌握。希望當當網(wǎng)以后在發(fā)貨的時候可以將書本的原包裝保留,這樣就可以減少書本在運輸過程中受損的幾率,消費者就會更喜歡了。
  •   蠻不錯的,等了很久的英文版終于拿到了
 

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

京ICP備13047387號-7