文件名称:TCP/IP详解 (卷2:实现)
文件大小:33.24MB
文件格式:ZIP
更新时间:2013-08-09 04:58:21
TCP/IP详解 (卷2:实现)
编辑推荐 “我在全国各地教授Cisc0联网课程.每本新的有名的数据通信的书我都听说了,因为我的学生们拿它们作为课程的参考书。Stevens的《TCP/IP详解卷1 协议》的到来如同一枚炸弹的爆炸……学生们被这本书所倾倒。我刚读完《TCP/IP详解卷2:实现》。如果说卷1像一枚炸弹,则卷2就是一枚重磅炸弹!” “在读完Stevens的《TCP/IP详解卷1协议》后,我认为很难再有另一本如此有用的书了,但卷2就是这样一本书。有些人可能会问,如果你不是一个专职的网络程序员,如何让这本书适合于你。因为在我最初使用UNIX的日子里,回答‘这到底是如何工作的?’的标准答案是‘看源代 码’。用这本书,你不仅能看源代码,还有一个最清晰的解释:它们是如何互相配合起来的。” 《TCP/IP详解》系列覆盖了TCP/IP的许多方面.提供了一个高效直观的方法来学习联网协议族。 《TCP/IP详解卷2:实现》详尽地说明了TCP/IP协议是如何实现的。目前还没有更多的 书——此卷是唯一一本书,本书全面讲解了来源于44BSD—Lite版本的事实上的标准实现.这个 实现是运行在世界上成千上万个系统上的TCP/IP实现的基础。 500个示例总共15000行代码都是真正正在使用的代码,《TCP/IP详解卷2:实现》使用一种举例说明的方法来帮助你精通TCP/IP的实现。你会掌握以下问题:插口API和协议族之间的关系,一个主机实现和一个路由器实现之间的区别等。另外本书覆盖了4.4BSD—Lite版本的最新特性,包括多播,长肥管道支持、窗口缩放、时间戳选项、防止序列号环绕及很多其他主题。 本书覆盖范围广,它基于一个当前正使用的标准,并且有详尽的示例,因此它是任何使用TCP/IP的人员一个不可缺少的资源。 内容简介 本书完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点。本书适用于希望理解TCP/IP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。 作者简介 Gary R.Wright 研究TCP/IP多年。他是Connix公司的董事长,这个公司的基地在康涅狄格州,它提供Internet接入和咨询服务。 W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三卷本外,他还有其他两部最为畅销的作品;《UNIX环境高级编程》和《UNIX网络编程》(两卷本)。 目录 译者序 前言 第1章 概述 1.1 引言 1.2 源代码表示 1.2.1 将拥塞窗口设置为 1.2.2 印刷约定 1.3 历史 1.4 应用编程接口 1.5 程序示例 1.6 系统调用和库函数 1.7 网络实现概述 1.8 描述符 1.9 mbuf与输出处理 1.9.1 包含插口地址结构的mbuf 1.9.2 包含数据的mbuf 1.9.3 添力口IP和UDP首部 1.9.4 IP输出 1.9.5 以太网输出 1.9.6 UDP输出小结 1.10 输入处理 1.10.1 以太网输入 1.10.2 IP输入 1.10.3 UDP输入 1.10.4 进程输入 1.11 网络实现概述(续) 1.12 中断级别与并发 1.13 源代码组织 1.14 测试网络 1.15 小结 第2章 mbuf:存储器缓存 2.1 引言 2.2 代码介绍 2.2.1 全局变量 2.2.2 统计 2.2.3 内核统计 2.3 mbuf的定义 2.4 mbuf结构 2.5 简单的mbuf宏和函数 2.5.1 m_get函数 2.5.2 MGET宏 2.5.3 m_retry函数 2.5.4 mbuf锁 2.6 m_devget和m_pullup函数 2.6.1 m_devget函数 2.6.2 mtod和dtom宏 2.6.3 m_pullup函数和连续的协议首部 2.6.4 m_pullup和IP的分片与重组 2.6.5 TCP重组避免调用m_pul lup 2.6.6 m_pullup使用总结 2.7 mbuf宏和函数的小结 2.8 Net/3联网数据结构小结 2.9 m_copy和簇引用计数 2.10 其他选择 2.11 小结 第3章 接口层 3.1 引言 3.2 代码介绍 3.2.1 全局变量 3.2.2 SNMP变量 3.3 ifnet结构 3.4 ifaddr结构 3.5 sockaddr结构 3.6 ifnet与ifaddr的专用化 3.7 网络初始化概述 3.8 以太网初始化 3.9 SLIP初始化 3.10 环回初始化 …… 第4章 接口:以太网 第5章 接口:SLIP和环回 第6章 IP编址 第7章 域和协议 第8章 IP:网际协议 第9章 IP选项处理 第10章 IP的分片与重装 第11章 ICMP:Internet控制报文协议 第12章 IP多播 第13章 ICMP:Internet组管理协议 第14章 IP多播选路 第15章 插口层 第16章 插口I/O 第17章 插口选项 第18章 Radix树路由表 第19章 选路请求和选路消息 第20章 选路插口 书摘插图 第1章 概述 1.1 引言 本章介绍伯克利(Berkeley)联网程序代码。开始我们先看一段源代码并介绍一些通篇要用的印刷约定。对各种不同代码版本的简单历史回顾让我们可以看到本书中的源代码处于什么位置。接下来介绍了两种主要的编程接口,它们在Unix与非Unix系统中用于编写TCP/IP协议。 然后我们介绍一个简单的用户程序,它发送一个UDP数据报给一个位于另一主机上的日期,时间服务器,服务器返回一个UDP数据报,其中包含服务器上日期和时间的ASCIl码字符串。这个进程发送的数据报经过所有的协议栈到达设备驱动器,来自服务器的应答从下向上经过所有协议栈到达这个进程。通过这个例子的这些细节介绍了很多核心数据结构和概念,这些数据结构和概念在后面的章节中还要详细说明。 本章的最后介绍了在本书中各源代码的组织,并显示了联网代码在整个组织中的位置。 1.2 源代码表示 1.2.1 将拥塞窗口设置为1 这是文件tcp—subr.c中的函数tcp—quench。这些源文件名引用4.4BSD-Lite发布的文件。4.4BSD在1.13节中讨论。每个非空白行都有编号。正文所描述的代码的起始和结束位置的行号记于行开始处,如本段所示。有时在段前有一个简短的描述性题头,对所描述的代码提供一个概述。 这些源代码同4.4BSD—Lite发行版一样,偶尔也包含一些错误,在遇到时我们会提出来并加以讨论,偶尔还包括一些原作者的编者评论。这些代码已通过了GNU缩进程序的运行,使它们从版面上看起来具有一致性。制表符的位置被设置成4个栏的界线使得这些行在一个页面中显示得很合适。在定义常量时,有些#ifdef语句和它们的对应语句#endif被删去(如:GATEWAY和MROUTING,因为我们假设系统被作为一个路由器或多播路由器)。 ……
【文件预览】:
Volume 2
----04.PDF(1.41MB)
----02.PDF(1.25MB)
----27.PDF(1.12MB)
----32.PDF(621KB)
----26.PDF(1.27MB)
----12.PDF(1.51MB)
----16.PDF(2.49MB)
----08.PDF(1.41MB)
----20.PDF(1.02MB)
----24.PDF(683KB)
----14.PDF(1.32MB)
----23.PDF(1.42MB)
----28.PDF(1.38MB)
----15.PDF(1.41MB)
----01.PDF(1010KB)
----19.PDF(1.44MB)
----25.PDF(969KB)
----05.PDF(1.15MB)
----03.PDF(1.77MB)
----34.PDF(59KB)
----18.PDF(1.38MB)
----35.PDF(530KB)
----33.PDF(641KB)
----30.PDF(670KB)
----29.PDF(1.17MB)
----10.PDF(789KB)
----17.PDF(865KB)
----21.PDF(1.13MB)
----09.PDF(1013KB)
----13.PDF(509KB)
----22.PDF(1.21MB)