当前: 首页 - 图书专区 - TCP/IP详解 卷1:协议(原书第2版)
TCP/IP详解 卷1:协议(原书第2版)


  在线购买
[美]凯文 R.福尔(Kevin R. Fall),W. 理查德·史蒂文斯(W. Richard Stevens) 著
978-7-111-45383-3
129.00
704
2016年06月21日
吴英 张玉 许昱玮 译  吴功宜 审校
计算机 > 计算机网络
Pearson Education Asia
815
简体中文
16
TCP/IP Illustrated, Volume 1: The Protocols,Second Edition
教材
计算机科学丛书








参考文献
  索引 链接:http://pan.baidu.com/s/1jIlqOMM 密码:06o4
已故专家W. Richard Stevens的《TCP/IP详解》是TCP/IP领域的经典之作!第1版自1994年出版以来深受读者欢迎,但其内容有些已经陈旧,而且没有涉及IPv6。现在,这部世界领先的TCP/IP畅销书已由网络顶级专家Kevin R. Fall博士彻底更新,反映了新一代基于TCP/IP的网络技术。本书主要讲述TCP/IP协议,展示每种协议的实际工作原理的同时还解释了其来龙去脉,新增了RPC、访问控制、身份认证、隐私保护、NFS、SMB/CIFS、DHCP、NAT、防火墙、电子邮件、Web、Web服务、无线、无线安全等内容,每章最后还描述了针对协议的攻击方法,帮助读者轻松掌握TCP/IP的知识。
本书内容丰富、概念清晰、论述详尽,适合任何希望理解TCP/IP协议实现的人阅读,更是TCP/IP领域研究人员和开发人员的权威参考书。无论是初学者还是功底深厚的网络领域高手,本书都是案头必备。
“我认为本书之所以领先群伦、独一无二,是源于其对细节的注重和对历史的关注。书中介绍了计算机网络的背景知识,并提供了解决不断演变的网络问题的各种方法。本书一直在不懈努力以获得精确的答案和探索剩余的问题域。对于致力于完善和保护互联网运营或探究长期存在的问题的可选解决方案的工程师,本书提供的见解将是无价的。作者对当今互联网技术的全面阐述和透彻分析是值得称赞的。”
—— Vint Cerf,互联网发明人之一、图灵奖获得者、谷歌公司副总裁兼首席互联网宣传官
《TCP/IP详解》是已故网络专家、著名技术作家W. Richard Stevens的传世之作,内容详尽且极具权威,被誉为TCP/IP领域的不朽名著。
本书是《TCP/IP详解》第1卷的第2版,主要讲述TCP/IP协议,结合大量实例讲述TCP/IP协议族的定义原因,以及在各种不同的操作系统中的应用及工作方式。第2版在保留Stevens卓越的知识体系和写作风格的基础上,新加入的作者Kevin R. Fall结合其作为TCP/IP协议研究领域领导者的尖端经验来更新本书,反映了最新的协议和最佳的实践方法。首先,他介绍了TCP/IP的核心目标和体系结构概念,展示了它们如何能连接不同的网络和支持多个服务同时运行。接着,他详细解释了IPv4和IPv6网络中的互联网地址。然后,他采用自底向上的方式介绍TCP/IP的结构和功能:从链路层协议(如Ethernet和Wi-Fi),经网络层、传输层到应用层。
书中依次全面介绍了ARP、DHCP、NAT、防火墙、ICMPv4/ICMPv6、广播、组播、UDP、DNS等,并详细介绍了可靠传输和TCP,包括连接管理、超时、重传、交互式数据流和拥塞控制。此外,还介绍了安全和加密的基础知识,阐述了当前用于保护安全和隐私的重要协议,包括EAP、IPsec、TLS、DNSSEC和DKIM。
本书适合任何希望理解TCP/IP实现原理的人阅读,更是TCP/IP领域研究人员和开发人员的权威参考书。无论你是初学者还是功底深厚的网络领域高手,本书都是案头必备,将帮助你更深入和直观地理解整个协议族,构建更好的应用和运行更可靠、更高效的网络。


作者简介
凯文 R. 福尔
(Kevin R. Fall)
博士,有超过25年的TCP/IP工作经验,并且是互联网架构委员会成员。他还是互联网研究任务组中延迟容忍网络研究组(DTNRG)的联席主席,该组致力于探索极端和有挑战性的环境下的网络性能。他也是一位IEEE院士。

W. 理查德·史蒂文斯
(W. Richard Stevens)
博士,是国际知名的UNIX和网络专家、受人尊敬的技术作家和咨询顾问。他教会了一代网络专业人员使用TCP/IP的功能,使互联网成为人们日常生活的中心。Stevens于1999年9月1日去世,年仅48岁。在短暂而精彩的一生中,他著有多部经典的传世之作,包括《TCP/IP 详解》(三卷本)、《UNIX网络编程》(两卷本)以及《UNIX环境高级编程》。2000年他被国际权威机构Usenix追授“终身成就奖”。

译稿审校者简介
吴功宜
南开大学信息技术科学学院教授、博士生导师。曾任南开大学计算机系主任、信息技术科学学院院长。研究方向为计算机网络与信息系统、计算机网络与信息安全,目前主要从事无线网络、P2P网络机器安全问题的研究。主持和参加完成计算机网络、数据通信与信息安全方向的科研项目20多项,获部委与省市科技奖6项,发表学术论文50余篇;参加编著和出版教材、译著、专著30余部。

译者简介
吴 英
南开大学计算机与控制工程学院副教授,博士,硕士生导师。主要研究方向:无线网络与移动计算、网络安全与管理、物联网应用。主持和参与国家自然科学基金、教育部博士点基金、天津市自然科学基金等多个项目;发表学术论文20余篇,其中EI检索15篇;参与编著教材与译著12本,其中2本列入国家“十二五”规划教材;主讲“可视化编程”“物联网导论”与“计算机网络”等课程;获得天津市级教学成果一等奖1项。

张 玉
南开大学计算机与控制工程学院副教授,博士,硕士生导师。主要研究方向:数据流挖掘、网络与信息安全、计算机安全性分析等。主持国家自然科学基金、教育部博士点基金、国家242项目等多个项目;作为第一作者在《中国科学:信息科学》《 Computer Communications》《Concurrency and Computation:Practice and Experience》《IEICE Transactions on Information and Systems》等发表学术论文10余篇。



许昱玮
南开大学计算机与控制工程学院讲师,博士,硕士生导师。主要研究方向:无线网络与移动计算、物联网、车载自组网。主持和参与国家自然科学基金、教育部博士点基金、天津市自然科学基金等多个项目;发表学术论文10余篇,其中EI检索10篇;参与编著教材与译著6本;主讲“物联网通信技术”“计算机基础”等课程;带队获得中国大学生计算机设计竞赛全国决赛三等奖2项。
欢迎阅读本书的第2版。这本书致力于对TCP/IP协议族进行详细了解。不仅描述协议如何操作,还使用各种分析工具显示协议如何运行。这可以帮助你更好地了解协议背后的设计决策,以及它们如何相互影响。同时为你揭露协议的实现细节,而不需要你阅读实现的软件源代码,或者设置一个实验性的实验室。当然,阅读源代码或设置一个实验室将不只是有助于加深你的理解。
网络在过去30年中已经发生了巨大的变化。Internet最初作为一个研究项目和令人好奇的对象,现在已经成为一个全球性的通信设施,并被各国政府、企业和个人所依赖。TCP/IP协议族定义了Internet中每个设备交换信息的基本方法。经过十多年的发展,Internet和TCP/IP自身正在向兼容IPv6的方向进化。在整本书中,我们将讨论IPv6和目前的IPv4,着重关注它们之间的重要不同点。遗憾的是,它们不直接进行互操作,因此需要关心和注意其演变的影响。
本书的读者对象是希望更好地了解当前的TCP/IP协议族以及它们如何运作的人员:网络操作员和管理员、网络软件开发人员、学生,以及需要掌握TCP/IP的用户。我们提供的材料包括读者感兴趣的新材料和第1版已有的材料,希望读者能从中找到有用和有趣的新旧材料。
第1版的评论
距本书第1版出版已过去近20年。对于希望了解TCP/IP协议细节的学生和专业人士而言,本书仍然是一个宝贵的资源,这些细节在许多其他同类教材中是难以获得的。目前,它仍是有关TCP/IP协议运行的详细信息的最好参考。但是,即使是信息和通信技术领域最好的书籍,经过一段时间之后也会过时,当然本书也不例外。在这个版本中,我希望通过引入新材料来彻底更新Stevens博士的前期工作,同时能够保持前作的极高水准和对其很多书籍都包含的知识的详细介绍。
第1版涵盖了各种类型的协议和它们的操作,范围从链路层到应用和网络管理的所有方面。目前,将如此广泛的材料综合在一卷中篇幅将会很长。因此,第2版特别关注核心协议:那些级别相对较低的协议,常用于为Internet提供配置、命名、数据传输和安全等基础性服务。关于应用、路由、Web服务和其他重要主题被放到后续卷中。
从第1版出版以来,对TCP/IP相应规范的实现在鲁棒性和规范性方面的改进已取得相当大的进展。第1版中很多例子出现明显的实现错误或不符合要求的行为,这些问题在当前可用的系统中已经得到解决,至少对于IPv4如此。考虑到在过去18年中TCP/IP协议的应用日益广泛,这个事实并不令人吃惊。不符合要求的实现是比较罕见的,这证明了协议族整体是比较成熟的。当前,在核心协议的运行中遇到的问题,通常涉及不常使用的协议功能。在第1版中不太关注的安全问题,在第2版中花费了相当的笔墨来讨论。
21世纪的互联网环境
Internet使用模式和重要性自第1版出版以来已经发生了很大变化。最明显的具有分水岭意义的事件是万维网在20世纪90年代初的建立和随后开始的激烈的商业化。这个事件大大加快了大量有不同目的(有时冲突)的人对Internet的使用。因此,这个最初实现在一个小规模的学术合作环境中的协议和系统已受限于有限的可用地址,并且需要增加安全方面的考虑。
为了应对安全威胁,网络和安全管理员纷纷为网络引入专门的控制单元。无论是大型企业还是小型企业和家庭,现在常见的做法是将防火墙布置在Internet的连接点。随着过去十年IP地址和安全需求的增长,网络地址转换(NAT)现在几乎被所有路由器支持,并且得到广泛的使用。它可以缓解地址短缺的压力,允许站点从服务提供商(对每个同时在线的用户)获得一组相对较少的可路由的Internet地址,无须进一步协调就可以为本地主机提供大量的地址。部署NAT的结果是减缓了向IPv6(它提供了几乎不可思议的大量地址)的迁移,解决了一些旧协议的互操作性问题。
随着PC用户在20世纪90年代中期开始要求连接Internet,最大的PC软件供应商(微软)放弃了其原来只提供专用Internet协议的策略,转而努力在自己的大部分产品中兼容TCP/IP。此后,运行Windows操作系统的PC变为接入Internet的主体。随着时间的推移,基于Linux系统的主机数量显著上升,意味着这种系统现在有可能取代微软的领跑者地位。其他操作系统,包括Oracle的Solaris和Berkeley的基于BSD的系统,曾经代表了接入Internet的大多数系统,而现在只占一小部分。苹果的OS X操作系统(基于Mac)已成为一个新的竞争者并日益普及,特别是在便携式计算机用户中。2003年,便携式计算机(笔记本电脑)的销量超过了台式机,成为个人电脑销售的主力类型,它们的快速增长带来了对支持高速上网的无线基础设施的需求。根据预测,2012年以后访问Internet的最常用方法是智能手机。平板电脑也是一个快速增长的重要竞争者的代表。
现在有大量场所提供了无线网络,例如餐厅、机场、咖啡馆,以及其他公共场所。它们通常使用办公或家庭环境的局域网设备,提供短距离、免费或低费用、高速、无线Internet连接。一系列基于蜂窝移动电话标准(例如LTE、UMTS、HSPA、EV-DO)的“无线宽带”替代技术已广泛用于世界发达地区(一些发展中地区争相采用较新的无线技术),为了提供更大范围的运营,通常需要在一定程度上减少带宽和降低基于流量的定价。两种类型的基础设施满足了用户使用便携式计算机或更小的设备在移动过程中访问Internet的需要。在任何情况下,移动终端用户通过无线网络访问Internet都会带来两个对TCP/IP协议体系结构的技术挑战。首先,移动性影响了Internet的路由和寻址结构,打破了主机基于附近的路由器分配地址的假设。其次,无线链路可能因更多原因而断开并导致数据丢失,这些原因与典型的有线链路(通常不会丢失太多数据,除非网络中有太多流量)不同。
最后,Internet已经促进了由对等应用形成的“覆盖”网络的兴起。对等应用不依赖于中心服务器完成一项任务,而是通过一组对等计算机之间的通信和交互完成一项任务。对等计算机可以由其他终端用户来操作,并且可能快速进入或离开一个固定的服务器基础设施。“覆盖”的概念刻画了如下事实:由这些交互的对等方形成一个网络,并且覆盖在传统的基于TCP/IP的网络上(在低层的物理链路之上实现覆盖)。对于那些对网络流量和电子商务有浓厚兴趣的研究者而言,对等应用的发展没有对卷1中所描述的核心协议产生深远的影响,但是覆盖网络的概念在网络技术研究中普遍受到重视。
第2版的内容变化
第2版的最重要的变化是对第1版全部内容的整体重组和安全方面材料的显著增加。第2版没有尝试覆盖Internet的每个层次中使用的所有常用协议,而是关注正在广泛使用的非安全的核心协议,或者预计在不久的将来广泛使用的协议:以太网(802.3)、Wi-Fi(802.11)、PPP、ARP、IPv4、IPv6、TCP、UDP、DHCP和DNS。系统管理员和用户可能都会用到这些协议。
第2版通过两种方法来讨论安全性。首先,每章中都有专门的一节,用于介绍对本章所描述协议的已知攻击和对策。这些描述没有介绍攻击的方法,而是提示了协议实现(或规范,在某些情况下)不够健全时可能出现的问题。在当前的Internet中,对于不完整的规范或不健全的实现,即使是相对简单的攻击,也可能导致关键的任务系统受到损坏。
第二个重要的安全性讨论出现在第18章,对安全和密码学中的一些细节进行研究,包括协议,例如IPsec、TLS、DNSSEC和DKIM。目前,这些协议对希望保持完整性或安全操作的任何服务或应用的实现都是非常重要的。随着Internet在商业上的重要性的增加,安全需求(以及威胁的数量)已成比例增加。
虽然IPv6没有被包括在第1版中,但是未分配的IPv4地址块在2011年2月已耗尽,现在有理由相信IPv6的使用可能会显著加快速度。IPv6主要是为了解决IPv4地址耗尽问题,随着越来越多的小型设备(例如移动电话、家用电器和环境传感器)接入Internet,IPv6正在变得越来越重要。如世界IPv6日(2011年6月8日)这种事件有助于表明Internet可以继续工作,即使是对底层协议进行重大修改和补充。
对第2版结构变化的第二个考虑是淡化那些不再常用的协议,以及更新那些自第1版出版以来已大幅修订的内容。那些涉及RARP、BOOTP、NFS、SMTP和SNMP的章节已从书中删除,SLIP协议的讨论已被废弃,而DHCP和PPP(包括PPPoE)的讨论篇幅被扩大。IP转发(第1版中的第9章)功能已被集成在这个版本的第5章的IPv4和IPv6协议的整体描述中。动态路由协议(RIP、OSPF、BGP)的讨论已被删除,因为后两个协议都应该单独通过一本书来讨论。从ICMP开始到IP、TCP和UDP,针对IPv4与IPv6操作上差异明显的情况,对每种操作的影响进行了讨论。这里没有专门针对IPv6的一章,而是在合适位置说明它对每个现有的核心协议的影响。第1版中的第15章和第25~30章,致力于介绍Internet应用和它们的支持协议,其中的大部分章节已删除,仅在必要时保留对底层的核心协议操作的说明。
多个章节添加了新内容。第1章从网络问题和体系结构的常规介绍开始,接着是对Internet进行具体介绍。第2章涵盖Internet的寻址体系结构。第6章是新的一章,讨论主机配置和在系统中如何“显示”网络。第7章介绍了防火墙和网络地址转换(NAT),包括NAT如何用于可路由和不可路由的地址空间。第1版所用的工具集已被扩大,现在包括Wireshark(一个免费的具有图形用户界面的网络流量监控应用程序)。
第2版的目标读者与第1版保持一致。阅读本书不需要具备网络概念的先期知识,但高级读者可以从细节和参考文献中获得更大收获。每章包括一份丰富的参考文献集,供有兴趣的读者查看。
第2版的编辑变化
第2版中内容的整体组织流程仍然类似于第1版。在介绍性的内容(第1章和第2章)之后,采用自底向上方式介绍Internet体系结构中涉及的协议,以说明前面提到的网络通信是如何实现的。与第1版一样,捕获的真实数据包用于在适当的位置说明协议的操作细节。自第1版出版以来,免费的图形界面的数据包捕获和分析工具已经问世,它们扩展了第1版中使用的tcpdump程序的功能。在第2版中,如果基于文本的数据包捕获工具的输出很容易解释,就使用tcpdump。但是,在大多数情况下,使用Wireshark工具的屏幕截图。需要注意的是,为了清楚地说明问题,有些输出列表(包括tcpdump输出的快照)经过包装或简化。
数据包跟踪内容说明了本书封二所描述的网络的一个或多个部分的行为。它代表了一个宽带连接的“家庭”环境(通常用于客户端访问或对等网络)、一个“公共”环境(例如咖啡厅)和一个企业环境。在例子中使用的操作系统包括Linux、Windows、FreeBSD和Mac OS X。目前,各种操作系统及不同版本被用于Internet中。
每章的结构相对第1版已稍作修改。每章开头是对该章主题的介绍,接着是历史记录(在某些情况下),然后是本章详细资料、总结和一组参考文献。在大多数章中,章末都描述了安全问题和攻击。每章的参考文献体现了第2版的变化。它们使得每章更具自包含性,读者几乎不需要“长距离页面跳转”就能找到参考文献。有些参考文献通过增加网址来提供更容易的在线访问。另外,论文和著作的参考文献格式已变为一种相对更紧凑的格式,包括每个作者姓氏的首字母和一个两位数表示的年(例如,以前的[Cerf and Kahn 1974]现在缩短为[CK74])。对于使用的众多RFC参考文献,用RFC编号代替了作者姓名。这样做遵循了典型的RFC规范,并将所有引用的RFC集中在参考文献列表中。
最后说明的是,继续保持本书的印刷惯例。但是,我们选择使用的编辑和排版格式,与Stevens博士和Addison-Wesley Professional Computing Series系列丛书的其他作者使用的Troff系统不同。因此,最后的审稿任务利用了文字编辑Barbara Wood的专业知识。我们希望大家很高兴看到这个结果。

Kevin R. Fall
Berkeley,California
2011年9月
出版者的话
译者序
本书评语

第2版前言
第1版前言(改编)
第1章 概述 1
1.1 体系结构原则 2
1.1.1 分组、连接和数据报 2
1.1.2 端到端论点和命运共享 3
1.1.3 差错控制和流量控制 4
1.2 设计和实现 5
1.2.1 分层 5
1.2.2 分层实现中的复用、分解和封装 6
1.3 TCP/IP协议族结构和协议 9
1.3.1 ARPANET参考模型 9
1.3.2 TCP/IP中的复用、分解和封装 11
1.3.3 端口号 12
1.3.4 名称、地址和DNS 12
1.4 Internet、内联网和外联网 13
1.5 设计应用 13
1.5.1 客户机/服务器 14
1.5.2 对等 14
1.5.3 应用程序编程接口 14
1.6 标准化进程 15
1.6.1 RFC 15
1.6.2 其他标准 15
1.7 实现和软件分发 16
1.8 与Internet体系结构相关的攻击 17
1.9 总结 17
1.10 参考文献 18
第2章 Internet地址结构 21
2.1 引言 21
2.2 表示IP地址 21
2.3 基本的IP地址结构 23
2.3.1 分类寻址 23
2.3.2 子网寻址 24
2.3.3 子网掩码 26
2.3.4 可变长度子网掩码 27
2.3.5 广播地址 28
2.3.6 IPv6地址和接口标识符 29
2.4 CIDR和聚合 31
2.4.1 前缀 31
2.4.2 聚合 32
2.5 特殊用途地址 34
2.5.1 IPv4/IPv6地址转换 35
2.5.2 组播地址 36
2.5.3 IPv4组播地址 36
2.5.4 IPv6组播地址 38
2.5.5 任播地址 41
2.6 分配 42
2.6.1 单播 42
2.6.2 组播 44
2.7 单播地址分配 44
2.7.1 单个供应商/无网络/单个地址 44
2.7.2 单个供应商/单个网络/单个地址 45
2.7.3 单个供应商/多个网络/多个地址 45
2.7.4 多个供应商/多个网络/多个地址(多宿主) 46
2.8 与IP地址相关的攻击 48
2.9 总结 48
2.10 参考文献 49
第3章 链路层 54
3.1 引言 54
3.2 以太网和IEEE 802局域网/城域网标准 54
3.2.1 IEEE 802局域网/城域网标准 56
3.2.2 以太网帧格式 57
3.2.3 802.1p/q:虚拟局域网和QoS标签 60
3.2.4 802.1AX:链路聚合(以前的802.3ad) 62
3.3 全双工、省电、自动协商和802.1X流量控制 64
3.3.1 双工不匹配 65
3.3.2 局域网唤醒(WoL)、省电和魔术分组 65
3.3.3 链路层流量控制 66
3.4 网桥和交换机 67
3.4.1 生成树协议 70
3.4.2 802.1ak:多注册协议 76
3.5 无线局域网——IEEE 802.11(Wi-Fi) 76
3.5.1 802.11帧 77
3.5.2 省电模式和时间同步功能 81
3.5.3 802.11介质访问控制 82
3.5.4 物理层的细节:速率、信道和频率 84
3.5.5 Wi-Fi安全 88
3.5.6 Wi-Fi网状网(802.11s) 89
3.6 点到点协议 89
3.6.1 链路控制协议 89
3.6.2 多链路PPP 93
3.6.3 压缩控制协议 95
3.6.4 PPP认证 95
3.6.5 网络控制协议 96
3.6.6 头部压缩 96
3.6.7 例子 97
3.7 环回 99
3.8 MTU和路径MTU 101
3.9 隧道基础 102
3.9.1 单向链路 105
3.10 与链路层相关的攻击 106
3.11 总结 107
3.12 参考文献 108
第4章 地址解析协议 113
4.1 引言 113
4.2 一个例子 113
4.2.1 直接交付和ARP 114
4.3 ARP缓存 115
4.4 ARP帧格式 116
4.5 ARP例子 117
4.5.1 正常的例子 117
4.5.2 对一个不存在主机的ARP请求 118
4.6 ARP缓存超时 119
4.7 代理ARP 119
4.8 免费ARP和地址冲突检测 120
4.9 arp命令 121
4.10 使用ARP设置一台嵌入式设备的IPv4地址 121
4.11 与ARP相关的攻击 122
4.12 总结 122
4.13 参考文献 123
第5章 Internet协议 124
5.1 引言 124
5.2 IPv4头部和IPv6头部 125
5.2.1 IP头部字段 125
5.2.2 Internet校验和 127
5.2.3 DS字段和ECN(以前称为ToS字节或IPv6流量类别) 129
5.2.4 IP选项 131
5.3 IPv6扩展头部 133
5.3.1 IPv6选项 134
5.3.2 路由头部 137
5.3.3 分片头部 139
5.4 IP转发 143
5.4.1 转发表 144
5.4.2 IP转发行动 144
5.4.3 例子 145
5.4.4 讨论 148
5.5 移动IP 149
5.5.1 基本模型:双向隧道 149
5.5.2 路由优化 150
5.5.3 讨论 152
5.6 IP数据报的主机处理 152
5.6.1 主机模式 152
5.6.2 地址选择 153
5.7 与IP相关的攻击 156
5.8 总结 156
5.9 参考文献 157
第6章 系统配置:DHCP和自动配置 161
6.1 引言 161
6.2 动态主机配置协议 161
6.2.1 地址池和租用 162
6.2.2 DHCP和BOOTP消息格式 163
6.2.3 DHCP和BOOTP选项 164
6.2.4 DHCP协议操作 165
6.2.5 DHCPv6 174
6.2.6 使用DHCP中继 185
6.2.7 DHCP认证 188
6.2.8 重新配置扩展 189
6.2.9 快速确认 189
6.2.10 位置信息(LCI和LoST) 190
6.2.11 移动和切换信息(MoS和ANDSF) 190
6.2.12 DHCP嗅探 191
6.3 无状态地址自动配置 191
6.3.1 IPv4链路本地地址的动态配置 191
6.3.2 链路本地地址的IPv6 SLAAC 192
6.4 DHCP和DNS交互 198
6.5 以太网上的PPP 199
6.6 与系统配置相关的攻击 201
6.7 总结 203
6.8 参考文献 204
第7章 防火墙和网络地址转换 209
7.1 引言 209
7.2 防火墙 209
7.2.1 包过滤防火墙 209
7.2.2 代理防火墙 210
7.3 网络地址转换 212
7.3.1 传统的NAT:基本NAT和NAPT 213
7.3.2 地址和端口转换行为 217
7.3.3 过滤行为 219
7.3.4 位于NAT之后的服务器 219
7.3.5 发夹和NAT环回 220
7.3.6 NAT编辑器 220
7.3.7 服务提供者NAT和服务提供者IPv6转换 220
7.4 NAT穿越 221
7.4.1 针孔和打孔 221
7.4.2 单边的自地址确定 222
7.4.3 NAT的会话穿越工具 223
7.4.4 利用NAT中继的穿越 228
7.4.5 交互连接建立 233
7.5 配置包过滤防火墙和NAT 235
7.5.1 防火墙规则 235
7.5.2 NAT规则 236
7.5.3 与NAT和防火墙的直接交互:UPnP、NAT-PMP和PCP 237
7.6 IPv4/IPv6共存和过渡中的NAT 238
7.6.1 双协议栈精简版 239
7.6.2 使用NAT和ALG的IPv4/IPv6转换 239
7.7 与防火墙和NAT相关的攻击 243
7.8 总结 243
7.9 参考文献 244
第8章 ICMPv4和ICMPv6:Internet控制报文协议 248
8.1 引言 248
8.1.1 在IPv4和IPv6中的封装 248
8.2 ICMP报文 249
8.2.1 ICMPv4报文 250
8.2.2 ICMPv6报文 251
8.2.3 处理ICMP报文 253
8.3 ICMP差错报文 253
8.3.1 扩展的ICMP和多部报文 254
8.3.2 目的不可达(ICMPv4类型3,ICMPv6类型1)和数据包太大(ICMPv6类型2) 255
8.3.3 重定向(ICMPv4类型5,ICMPv6类型137) 261
8.3.4 ICMP超时(ICMPv4类型11,ICMPv6类型3) 263
8.3.5 参数问题(ICMPv4类型12,ICMPv6类型4) 266
8.4 ICMP查询/信息类报文 267
8.4.1 回显请求/应答(ping)(ICMPv4类型0/8,ICMPv6类型129/128) 268
8.4.2 路由器发现:路由器请求和通告(ICMPv4类型9,10) 269
8.4.3 本地代理地址发现请求/应答(ICMPv6类型144/145) 271
8.4.4 移动前缀请求/通告(ICMPv6类型146/147) 272
8.4.5 移动IPv6快速切换报文(ICMPv6类型154) 273
8.4.6 组播侦听查询/报告/完成(ICMPv6类型130/131/132) 273
8.4.7 版本2组播侦听发现(ICMPv6类型143) 274
8.4.8 组播路由器发现(IGMP类型48/49/50,ICMPv6类型151/152/153) 278
8.5 IPv6中的邻居发现 278
8.5.1 ICMPv6路由器请求和通告(ICMPv6类型133,134) 279
8.5.2 ICMPv6邻居请求和通告(ICMPv6类型135,136) 280
8.5.3 ICMPv6反向邻居发现请求/通告(ICMPv6类型141/142) 283
8.5.4 邻居不可达检测 283
8.5.5 安全邻居发现 284
8.5.6 ICMPv6邻居发现选项 287
8.6 ICMPv4和ICMPv6转换 298
8.6.1 从ICMPv4转换到ICMPv6 299
8.6.2 从ICMPv6转换到ICMPv4 300
8.7 与ICMP相关的攻击 301
8.8 总结 303
8.9 参考文献 303
第9章 广播和本地组播(IGMP和MLD) 307
9.1 引言 307
9.2 广播 308
9.2.1 使用广播地址 308
9.2.2 发送广播数据报 310
9.3 组播 311
9.3.1 将IP组播地址转换为802 MAC/以太网地址 312
9.3.2 例子 313
9.3.3 发送组播数据报 314
9.3.4 接收组播数据报 316
9.3.5 主机地址过滤 317
9.4 互联网组管理协议和组播侦听发现协议 318
9.4.1 组成员的IGMP和MLD处理(“组成员部分”) 321
9.4.2 组播路由器的IGMP和MLD处理(“组播路由器部分”) 323
9.4.3 例子 324
9.4.4 轻量级IGMPv3和MLDv2 328
9.4.5 IGMP和MLD健壮性 329
9.4.6 IGMP和MLD计数器和变量 330
9.4.7 IGMP和MLD探听 331
9.5 与IGMP和MLD相关的攻击 332
9.6 总结 332
9.7 参考文献 333
第10章 用户数据报协议和IP分片 335
10.1 引言 335
10.2 UDP头部 335
10.3 UDP校验和 336
10.4 例子 338
10.5 UDP和IPv6 340
10.5.1 Teredo:通过IPv4网络隧道传输IPv6 341
10.6 UDP-Lite 345
10.7 IP分片 345
10.7.1 例子:UDP?/IPv4分片 346
10.7.2 重组超时 348
10.8 采用UDP的路径MTU发现 349
10.8.1 例子 349
10.9 IP分片和ARP/ND之间的交互 351
10.10 最大UDP数据报长度 352
10.10.1 实现限制 352
10.10.2 数据报截断 353
10.11 UDP服务器的设计 353
10.11.1 IP地址和UDP端口号 353
10.11.2 限制本地IP地址 354
10.11.3 使用多地址 355
10.11.4 限制远端IP地址 356
10.11.5 每端口多服务器的使用 357
10.11.6 跨越地址族:IPv4和IPv6 357
10.11.7 流量和拥塞控制的缺失 357
10.12 UDP/IPv4和UDP/IPv6数据报的转换 358
10.13 互联网中的UDP 358
10.14 与UDP和IP分片相关的攻击 359
10.15 总结 360
10.16 参考文献 360
第11章 名称解析和域名系统 362
11.1 引言 362
11.2 DNS名称空间 362
11.2.1 DNS命名语法 365
11.3 名称服务器和区域 366
11.4 缓存 366
11.5 DNS协议 367
11.5.1 DNS消息格式 369
11.5.2 DNS扩展格式(EDNS0) 372
11.5.3 UDP或TCP 372
11.5.4 问题(查询)和区域区段格式 373
11.5.5 回答、授权和额外信息区段格式 373
11.5.6 资源记录类型 374
11.5.7 动态更新(DNS UPDATE) 394
11.5.8 区域传输和DNS通知 397
11.6 排序列表、循环和分离DNS 402
11.7 开放DNS服务器和DynDNS 403
11.8 透明度和扩展性 404
11.9 从IPv4向IPv6转换DNS 404
11.10 LLMNR和mDNS 405
11.11 LDAP 406
11.12 与DNS相关的攻击 406
11.13 总结 407
11.14 参考文献 408
第12章 TCP:传输控制协议(初步) 412
12.1 引言 412
12.1.1 ARQ和重传 412
12.1.2 分组窗口和滑动窗口 413
12.1.3 变量窗口:流量控制和拥塞控制 414
12.1.4 设置重传超时 415
12.2 TCP的引入 415
12.2.1 TCP服务模型 416
12.2.2 TCP中的可靠性 416
12.3 TCP头部和封装 418
12.4 总结 420
12.5 参考文献 421
第13章 TCP连接管理 423
13.1 引言 423
13.2 TCP连接的建立与终止 423
13.2.1 TCP半关闭 425
13.2.2 同时打开与关闭 426
13.2.3 初始序列号 427
13.2.4 例子 428
13.2.5 连接建立超时 429
13.2.6 连接与转换器 430
13.3 TCP选项 431
13.3.1 最大段大小选项 431
13.3.2 选择确认选项 432
13.3.3 窗口缩放选项 433
13.3.4 时间戳选项与防回绕序列号 433
13.3.5 用户超时选项 435
13.3.6 认证选项 436
13.4 TCP的路径最大传输单元发现 436
13.4.1 例子 437
13.5 TCP状态转换 439
13.5.1 TCP状态转换图 440
13.5.2 TIME_WAIT状态 442
13.5.3 静默时间的概念 446
13.5.4 FIN_WAIT_2状态 446
13.5.5 同时打开与关闭的转换 446
13.6 重置报文段 447
13.6.1 针对不存在端口的连接请求 447
13.6.2 终止一条连接 447
13.6.3 半开连接 449
13.6.4 时间等待错误 451
13.7 TCP服务器选项 451
13.7.1 TCP端口号 452
13.7.2 限制本地IP地址 453
13.7.3 限制外部节点 454
13.7.4 进入连接队列 455
13.8 与TCP连接管理相关的攻击 458
13.9 总结 459
13.10 参考文献 460
第14章 TCP超时与重传 462
14.1 引言 462
14.2 简单的超时与重传举例 462
14.3 设置重传超时 464
14.3.1 经典方法 465
14.3.2 标准方法 465
14.3.3 Linux采用的方法 468
14.3.4 RTT估计器行为 471
14.3.5 RTTM对丢包和失序的鲁棒性 472
14.4 基于计时器的重传 473
14.4.1 例子 473
14.5 快速重传 475
14.5.1 例子 475
14.6 带选择确认的重传 478
14.6.1 SACK接收端行为 479
14.6.2 SACK发送端行为 479
14.6.3 例子 480
14.7 伪超时与重传 482
14.7.1 重复SACK(DSACK)扩展 482
14.7.2 Eifel检测算法 483
14.7.3 前移RTO恢复(F-RTO) 484
14.7.4 Eifel响应算法 484
14.8 包失序与包重复 485
14.8.1 失序 486
14.8.2 重复 487
14.9 目的度量 487
14.10 重新组包 488
14.11 与TCP重传相关的攻击 489
14.12 总结 489
14.13 参考文献 490
第15章 TCP数据流与窗口管理 492
15.1 引言 492
15.2 交互式通信 492
15.3 延时确认 494
15.4 Nagle算法 495
15.4.1 延时ACK与Nagle算法结合 497
15.4.2 禁用Nagle算法 498
15.5 流量控制与窗口管理 498
15.5.1 滑动窗口 499
15.5.2 零窗口与TCP持续计时器 501
15.5.3 糊涂窗口综合征 503
15.5.4 大容量缓存与自动调优 509
15.6 紧急机制 512
15.6.1 例子 512
15.7 与窗口管理相关的攻击 514
15.8 总结 515
15.9 参考文献 515
第16章 TCP拥塞控制 517
16.1 引言 517
16.1.1 TCP拥塞检测 517
16.1.2 减缓TCP发送 518
16.2 一些经典算法 519
16.2.1 慢启动 520
16.2.2 拥塞避免 521
16.2.3 慢启动和拥塞避免的选择 523
16.2.4 Tahoe、Reno以及快速恢复算法 523
16.2.5 标准TCP 524
16.3 对标准算法的改进 524
16.3.1 NewReno 525
16.3.2 采用选择确认机制的TCP拥塞控制 525
16.3.3 转发确认(FACK)和速率减半 526
16.3.4 限制传输 527
16.3.5 拥塞窗口校验 527
16.4 伪RTO处理——Eifel响应算法 528
16.5 扩展举例 528
16.5.1 慢启动行为 531
16.5.2 发送暂停和本地拥塞(事件1) 532
16.5.3 延伸ACK和本地拥塞恢复 535
16.5.4 快速重传和SACK恢复(事件2) 538
16.5.5 其他本地拥塞和快速重传事件 539
16.5.6 超时、重传和撤销cwnd修改 542
16.5.7 连接结束 545
16.6 共享拥塞状态信息 545
16.7 TCP友好性 546
16.8 高速环境下的TCP 547
16.8.1 高速TCP与受限的慢启动 547
16.8.2 二进制增长拥塞控制(BIC和CUBIC) 549
16.9 基于延迟的拥塞控制算法 552
16.9.1 Vegas算法 552
16.9.2 FAST算法 553
16.9.3 TCP Westwood算法和Westwood+算法 553
16.9.4 复合TCP 553
16.10 缓冲区膨胀 555
16.11 积极队列管理和ECN 556
16.12 与TCP拥塞控制相关的攻击 557
16.13 总结 558
16.14 参考文献 560
第17章 TCP保活机制 563
17.1 引言 563
17.2 描述 564
17.2.1 保活功能举例 565
17.3 与TCP保活机制相关的攻击 569
17.4 总结 570
17.5 参考文献 570
第18章 安全:可扩展身份认证协议、IP安全协议、传输层安全、DNS安全、域名密钥识别邮件 571
18.1 引言 571
18.2 信息安全的基本原则 572
18.3 网络通信的威胁 572
18.4 基础的加密与安全机制 573
18.4.1 密码系统 573
18.4.2 RSA公钥密码算法 575
18.4.3 Diff?ie-Hellman-Merkle密钥协商协议 576
18.4.4 签密与椭圆曲线密码 577
18.4.5 密钥派生与完全正向保密 577
18.4.6 伪随机数、生成器与函数族 578
18.4.7 随机数与混淆值 578
18.4.8 加密散列函数与消息摘要 578
18.4.9 消息认证码 579
18.4.10 加密套件与密码套件 580
18.5 证书、证书颁发机构与公钥基础设施 582
18.5.1 公钥证书、证书颁发机构与X.509标准 583
18.5.2 验证与撤销证书 587
18.5.3 属性证书 589
18.6 TCP/IP安全协议与分层 590
18.7 网络访问控制:802.1X, 802.1AE, EAP, PANA 591
18.7.1 EAP方法与密钥派生 594
18.7.2 EAP重新认证协议 595
18.7.3 网络接入认证信息承载协议 595
18.8 第3层IP安全(IPsec) 596
18.8.1 Internet密钥交换协议(IKEv2) 597
18.8.2 认证头部 606
18.8.3 封装安全负载 609
18.8.4 组播 612
18.8.5 L2TP/IPsec 613
18.8.6 IPsec NAT穿越 613
18.8.7 例子 614
18.9 传输层安全(TLS和DTLS) 622
18.9.1 TLS 1.2 623
18.9.2 DTLS 633
18.10 DNS安全(DNSSEC) 636
18.10.1 DNSSEC资源记录 637
18.10.2 DNSSEC运行 642
18.10.3 事务认证(TSIG, TKEY, SIG(0)) 648
18.10.4 带有DNS64的DNSSEC 652
18.11 域名密钥识别邮件 652
18.11.1 DKIM签名 652
18.11.2 例子 653
18.12 与安全协议相关的攻击 654
18.13 总结 655
18.14 参考文献 657
缩略语 666
21世纪的一个重要特征是数字化、网络化与信息化,支撑这一切的正是功能日益强大的计算机网络。目前,计算机网络已成为支撑现代社会运行的基础设施,并成为影响社会的政治、经济、科学与文化发展的重要因素。
我们知道,TCP/IP已成为计算机网络事实上的标准。在关于TCP/IP的著作中,最有影响的著作之一就是W. Richard Stevens著的《TCP/IP详解 卷1:协议》,本书第2版由Kevin R. Fall在原著的基础上修订而成。
本书的特点是内容丰富,概念清晰,论述详细,图文并茂。本书每章开头都有一个引言,然后对某个技术或协议进行详细介绍,最后给出相关的安全问题、总结与参考文献。本书通过很多例子来说明问题,并在最后给出了书中用到的缩略语,这对读者了解相关术语有很大的帮助。
本书的前言、第1~6章和缩略语由吴英翻译,第7~12章由张玉翻译,第13~18章由许昱玮翻译,全书由吴功宜教授审校。我们在翻译过程中尽可能尊重原著的思想,但是限于译者的学识,书中难免存在疏漏和理解错误之处,敬请读者指正。

译者
2016年1月
于南开大学计算机与控制工程学院
计算机\网络
读者书评
发表评论



高级搜索
小程序,巧应用——微信小程序开发实战
Elasticsearch技术解析与实战
循序渐进学Docker


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才