计算机网络:一种开源的设计实现方法
作者 : (中国台湾)Ying-Dar Lin, (中国台湾)Ren-Hung Hwang,(美) Fred Baker 著
译者 : 陈向阳 吴云韬 徐莹 译 李琼 审校
丛书名 : 计算机科学丛书
出版日期 : 2014-02-26
ISBN : 978-7-111-42604-2
定价 : 79.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 490
开本 : 16
原书名 : Computer Networks: An Open Source Approach
原出版社: McGraw-Hill
属性分类: 教材
包含CD :
绝版 :
图书简介

本书讲述了为什么设计一个有效的协议比了解一个协议如何工作更重要。在解释协议行为(在描述了协议工作方式)的同时还介绍了它的核心概念和基本原理。为了进一步弥补长期以来设计和实现之间存在的差距,本书阐明了在何处以及如何基于Linux系统上实现对协议的设计。本书详细、全面地介绍了包括硬件(8B/10B、OFDM、CRC32、CSMA/CD和crypto)、驱动程序(以太网和PPP)、内核(最长前缀匹配、校验和、NAT、TCP流量控制、套接字、整形器、调度器、防火墙和VPN),以及后台程序(RIP/OSPF/BGP、DNS、FTP、SMTP/POP3/IMAP4、HTTP、SNMP、SIP、流媒体和P2P)实现的56个开源实例。

图书特色

计算机网络
一种开源的设计实现方法
Computer Networks
An Open Source Approach
  (中国台湾)Ying-Dar Lin Ren-Hung Hwang (美)Fred Baker 著
陈向阳 吴云韬 徐莹 译
李琼 审校
“本书对实际实现细节的介绍非常突出……无愧是计算机网络领域中的一本好书。”
—— Mahasweta Sarkar,圣地亚哥州立大学
“本书由RFC和开源贡献者书写,它理所当然是网络工程师的权威指导。”
—— Wen Chen,思科会员
“为了弥补了长期以来设计与实现之间存在的差距,本书对协议设计的实现进行了描述,使之成为一本理想的教科书。”
—— Mario Gerla,加州大学洛杉矶分校

本书讲述了为什么设计一个有效的协议比了解一个协议如何工作更重要,在解释协议行为的同时还介绍了它的核心概念和基本原理。为了进一步弥补长期以来设计和实现之间存在的差距,书中讨论了在何处以及如何基于Linux系统实现协议的设计。本书详细、全面地介绍了包括硬件(8B/10B、OFDM、CRC32、CSMA/CD和crypto)、驱动程序(以太网和PPP)、内核(最长前缀匹配、校验和、NAT、TCP流量控制、套接字、整形器、调度器、防火墙和VPN),以及后台程序(RIP/OSPF/BGP、DNS、FTP、SMTP/POP3/IMAP4、HTTP、SNMP、SIP、流媒体和P2P)实现的56个开源实例。
本书特点
逻辑推理为什么、哪里以及如何设计和实现协议。
56个开源代码明确地描述了核心协议和机制。
4个附录介绍因特网、开源社区、Linux内核、开发工具和网络工具。
包含69个有关历史演变(33)、行动原则(26)和性能问题(10)的工具条。
每章后面都有常见问题解答和“常见陷阱”。
课堂所用PPT以及习题答案可以通过课程网站www.mhhe.com/lin获得。

作者简介
Ying-Dar Lin 中国台湾国立交通大学计算机科学教授。他于1993年从美国加州大学洛杉矶分校(UCLA)获得计算机科学博士学位。他目前担任《IEEE Communications Surveys and Tutorials 》、《IEEE Communications Letters》和《 Computer Communications,and Computer Networks》的编委。
Ren-Hung Hwang 中国台湾国立中正大学计算机科学系特聘研究教授。他于1993年在马萨诸塞大学阿默斯特分校获得计算机科学博士学位。他曾发表过150余篇有关计算机网络的国际会议论文。
Fred Baker 曾先后任职于CDC、Vitalink和ACC公司,一直活跃于网络和通信行业中,他目前是思科系统公司的会员。他曾担任IETF主席,主持许多IETF工作组。目前他是IETF中IPv6运行工作组的主席之一,并且是Internet Engineering Task Force Administrative Oversight Committee的会员之一。

图书前言

网络课程的发展趋势
  计算机网络中的技术已经经历了很多代的演变。许多技术失败了或逐渐消失了,而有些技术流行起来,还有些技术目前正在孕育即将面市。由TCP/IP驱动的因特网技术目前成为主流。因此,计算机网络课程内容组织的一个明显趋势就是围绕TCP/IP来进行,再加上一些更底层的链路技术和许多上层应用,同时也删去了一些过时技术的详细介绍,或许要解释它们为什么会过时。
  计算机网络教科书也已经经历了多次演变,从传统的并且有时枯燥的协议描述到应用驱动的自顶向下的实现方法和系统化的实现方法。趋势之一就是除了解释协议行为如何工作外,更多地解释为什么会这样,以便读者可以更好地理解各种协议的设计。当然,演变还在继续。
设计与实现之间的差距
  另外一个不那么明显的趋势就是为协议的描述添加了实用特色。其他教科书的读者可能不知道协议设计在哪里以及如何实现。最终只会让读者在进入研究生院做研究时,往往只会采用仿真的方法对性能进行评估,而不是使用具有真实基准测试的实际实现。那么当他们毕业后工作时就又要从头开始学习实现环境、技巧和相关问题。很显然采用这些教科书培训过的学生在理论知识和技能之间必然存在很大差距。这种差距可以很容易用从开源社区获得的正在使用的代码来弥补。
一种开源的实现方法
  目前几乎所有正在使用的协议已经在Linux操作系统和许多开源软件包中得到实现。Linux和开源社区正在不断地成长壮大,他们的应用在网络世界中占据着主导。但是,他们所提供的资源还不能被计算机科学,更确切地说是计算机网络中的教科书所阐述。我们预测一种教科书的发展趋势,对于多门课程可以补充支持开放源代码资源以便缩小专业领域知识和动手技能之间的差距。这些课程包括操作系统(利用Linux内核实现作为进程管理、内存管理、文件系统管理、I/O管理等的例子)、计算机组成原理(利用www.opencores.org中的verilog代码作为处理器、内存单元、I/O设备控制器等的例子)、算法(利用GNU库作为经典算法的例子)以及计算机网络(利用开放源代码作为协议实现的例子)。本书将是证明这种发展趋势的一个最早例子。
  我们的开放源代码方法通过在协议行为描述中穿插介绍从开放源代码软件包中提取的样例实现来弥补上述差距。这些例子清楚地进行了编号,例如开放源代码实现3.4。本书中还包括了可以下载完整可用例子的源代码站点,这样学生可以很容易地在因特网上访问这些内容。例如,在解释了路由表查询中的最长前缀匹配概念之后,我们接着演示了路由表是如何组织的(根据前缀长度排序的散列表数组),以及在Linux内核中如何实现匹配(如首次匹配,匹配过程是从最长前缀的散列表开始的)。这样就能够讲解路由表查询的设计及其实现,并提供扎实的动手练习项目,例如,描述路由表查询的瓶颈或者修改散列表的实现。我们认为这种穿插介绍方法要比单独采用另外一门课或另外一本教科书更好。这样做会更加有利于普通学生学习,因为可以将设计与实现结合起来,并且大多数学生并不需要第二门课程。若还需要采用其他教科书,指导教师、助教和学生就必须额外努力去弥补忽略的或者在大多数情况下根本就没有触及的差距。
  本书中的协议描述穿插了有代表性的56个开放源代码实现,涉及范围包括从编解码器(codec)的Verilog或VHDL码、调制解调器、CRC32、CSMA/CD和密码技术,到适配器驱动器的C代码、PPP 后台守护程序和驱动程序、最长前缀匹配、IP/TCP/UDP校验和、NAT、RIP/OSPF/BGP路由后台守护程序、TCP慢启动和拥塞避免、套接字(socket),流行的软件包支持DNS、FTP、SMTP、POP3、SNMP、HTTP、SIP、流、P2P,到QoS功能,如流量整形器和调度器,以及安全功能,如防火墙、VPN和入侵检测。这种系统认知可以通过每个源代码实现最后和每章最后的动手练习得到加强,读者需要运行、搜索、追踪、描述轮廓或修改特定内核代码段、驱动程序或守护程序。学生若具备了这种系统认知和操作技能,加上他们的协议专业领域知识,就能在学术上进行扎实的研究工作并在业界进行扎实的开发任务。
理解协议为什么被设计成某种方式要比了解协议如何工作更加重要
  编写本书的理念是理解为什么协议被设计成某种方式要比了解协议如何工作更加重要。在解释有关机制或协议如何工作之前先用图示说明大多数关键概念和基本原理。它们包括无状态、控制平面和数据平面、路由和交换、冲突和广播域、桥接的可扩展性、无类和有类路由、地址翻译和配置、转发与路由、窗口流量控制、RTT估计、知名端口和动态端口、迭代服务器(又称为循环服务器)和并发服务器、ASCII应用协议消息、可变长度与固定字段协议消息、透明代理,以及许多其他内容。
  曲解与理解一样重要,它们值得特殊处理以便明确标示区分出来。每一章都是先从一般问题开始,然后再提出基本的问题。我们已经添加了行动原则、历史演变和性能问题等工具条。我们以无编号的常见陷阱(读者社区常见的误解)、进一步阅读、常见问题解答(读者预习和复习的大问题),以及一组动手练习和书面练习的小节作为结束。
读者预备的技能
  无论指导教师还是学生熟悉Linux系统与否都不应该成为采用本书的决定因素。与Linux相关的动手练习技巧在附录B、C、D中进行了全面介绍。这三个附录会让读者具有足够的动手操作技巧,包括Linux内核概述(带有源代码跟踪的指导)、开发工具(vim、gcc、make、gdb、ddd、kgdb、cscope、cvs/svn、gprof/kernprof、busybox、buildroot)、网络工具(host、arp、ifconfig、ping、traceroute、tcpdump、wireshark、netstat、ttcp、webbench、ns、 nistnet、 nessus)。附录A中还有一节向读者介绍开放源代码资源。在第1章中还包括有关“数据包的生命历程”一节,它生动地图解了本书的路标。
  在教学中,对降低采用开放源代码实现遇到的障碍也进行了考虑。本书不是采用代码列表和解释,而是在需要时将它结构化组织到概述、框图、数据结构、算法实现和练习中。这样学生和指导教师都易于使用。
教学特点和补充材料
  教科书一般都具有很多特点以便帮助读者,具有许多课堂支持材料以便帮助指导教师。本书具有很多特点和课堂支持材料,总结如下:
  1)56个明确编号的关键协议和机制的开放源代码实现。
  2)4个附录分别介绍互联网和开源社区的名人录(重要人物)、Linux内核概述、开发工具和网络实用工具。
  3)逻辑推理协议为什么、哪里以及如何设计和实现。
  4)在每章的开头以一般问题作为激励,回答以大的问题作为结尾。
  5)“数据包的生命历程”从服务器和路由器的角度演示本书的路标并演示如何跟踪代码中的数据包流。
  6)在每章最后图解的“常见陷阱”,标示出常见的误解。
  7)除了书面练习之外,还有基于Linux的动手练习。
  8)给出69个有关历史演变、原理、行动原则和性能问题的板块。
  9)每章最后的常见问题解答有助于读者抓住主要问题回答并便于在读完每一章后进行复习。
  10)课堂支持材料,包括PowerPoint演讲幻灯片、习题解答,并且在PowerPoint中采用的所有教材图片都可以从课本的网站(www.mhhe.com/lin)中找到。
读者和课程路标指南
  本书可作为计算机科学或电子工程的高年级本科生或一年级研究生的计算机网络教材,也可供数据通信行业的专业工程师使用。对于本科生的课程,我们建议指导老师仅讲解第1~6章。作为研究生的课程,应该讲解所有的章节。对于既要为本科生又要为研究生授课的指导老师,两种其他可能的区别在于研究生课程会有更重的动手练习和额外的阅读作业布置。不管是本科生还是研究生课程,指导教师都可以让学生在前几周学习附录以便于熟悉Linux及其开发和应用工具。这种熟悉程度既可以通过动手练习测试,也可以通过动手练习作业来检验。在整个课程中,既可以布置书面练习,也可以布置动手练习以便加强知识和技巧的掌握。
  本书各章的内容组织如下:
 第1章为网络的需求和原理提供了背景知识,然后给出互联网解决方案来满足由基本原理提出的需求。图示了互联网的设计理念,如无状态的、无连接的,以及端对端参数。在整个过程中,我们介绍了关键概念,包括连接性、可扩展性、资源共享、数据和控制平面、分组与电路交换、延迟、吞吐量、带宽、负载、丢包、抖动、标准和互操作性、路由和分组。接下来,我们将以Linux作为互联网解决方案的实现,以便于演示互联网体系结构及其协议在哪里以及如何在芯片、驱动程序、内核和后台守护程序中实现。本章最后以本书路标和“数据包的生命历程”的有趣描述作为结束。
 第2章对物理层进行了简洁的论述。本章首先介绍有关模拟和数字信号、有线和无线媒体、编码、调制和多路复用的概念。然后介绍有关编码、调制和多路复用的技术和标准。两个开放源代码实现分别演示了使用8B/10B编码和使用OFDM的WLAN PHY的以太网PHY的硬件实现。
 第3章介绍了三种主流链路:PPP、以太网(Ethernet)和WLAN。此外,还描述了蓝牙(Bluetooth)和WiMAX。然后介绍了通过第2层桥接的局域网互联。最后,详细描述了网络接口卡发送和接收分组的适配器驱动程序。给出了包括CRC32和以太网MAC的硬件实现等10个开放源代码实现。
 第4章讨论了IP层的数据平面和控制平面。数据平面讨论包括IP转发处理、路由表查找,校验和、分段、NAT和有争议的IPv6,而控制平面讨论包括地址管理、错误报告、单播路由和组播路由。详述了路由协议和算法。12个开放源代码实现穿插其中阐述了这些设计是如何实现的。
 第5章上升到传输层,讲述有关端到端或主机到主机之间的问题。详细讲解了UDP和TCP,特别是有关TCP的设计理念、行为和版本。然后介绍了用于实时多媒体流量的RTP。随后还用专门的一节内容演示了套接字的设计与实现,这里分组在内核空间和用户空间之间复制。给出了10个开放源代码实现。
 第6章既介绍传统的应用,包括DNS、 Mail、 FTP、 Web和SNMP,也介绍新的应用,包括VoIP、流媒体和P2P应用。对实现这8种应用的开放源代码软件包进行了讨论。
 第7章介绍了有关QoS的高级话题,讲述了各种流量控制模块,如策略器、整形器、调度器、丢弃器以及许可控制。尽管IntServ和DiffServ标准框架没有得到广泛的部署,但这些流量控制模块中的许多已经嵌入我们日常使用的产品中。因此它们值得专门利用完整的一章来叙述。给出了6个开放源代码实现。
 第8章深入学习网络安全问题,范围包括访问安全(由TCP/IP防火墙和应用防火墙来保护)、数据安全(由VPN来保护),以及系统安全(由入侵检测和反病毒软件来保护)。既介绍了算法(表查找、加密、认证、深度分组检查),也介绍了标准(3DES、 MD5、 IPsec)。最后还增加了8个开放源代码实现。
致谢
  本书的草稿经历了多次演变和修订。在整个过程中,很多人直接或间接地做出了贡献。首先,许多中国台湾交通大学、中国台湾中正大学以及思科公司的试验室成员和同事为本书贡献了很多想法、例子和代码解释。这里要特别感谢PoChing Lin、ShihChiang Weafon Tsao、 YiNeng Lin、 HuanYun Wei、 BenJye Chang、 ShunLee Stanley Chang、 YuanCheng Lai、 JuiTsun Jason Hung、 ShauYu Jason Cheng、 ChiaYu Ku、 HsiaoFeng Francis Lu和Frank Lin。没有他们的帮助,我们就不可能将许多有趣的和原创性的思想编入本书。我们还要感谢中国台湾科学委员会(National Science Council,NSC)、工业技术研究院(Industrial Technology Research Institute,ITRI)、 DLink公司、 Realtek半导体公司、ZyXEL公司、思科公司以及英特尔公司在过去几年中对我们网络研究工作的支持。
  其次,我们感谢以下审阅了全部或者部分手稿的人:Emmanuel Agu,伍斯特理工学院(Worcester Polytechnic University);Tricha Anjali;伊利诺伊理工大学(Illinois Institute of Technology); Ladislau Boloni,中佛罗里达大学(University of Central Florida);Charles Colbourn,亚利桑那州立大学(Arizona State University);XiaoJiang Du,天普大学(Temple University); Jiang Guo,加州州立大学洛杉矶分校(California State University,Los Angeles); Robert Kerbs,加州州立理工大学波莫那分校(California State Polytechnic University,Pomona); Fang Liu,德克萨斯大学泛美分校(The University of TexasPan American); Oge Marques,佛罗里达州大西洋大学(Florida Atlantic University); Mitchell Neilsen,堪萨斯州立大学(Kansas State University);Mahasweta Sarkar,圣地亚哥州立大学(San Diego State University);Edwin Sloan,西尔斯波洛社区学院(坦帕)(Hillsborough Community College);Ioannis Viniotis,北卡罗来纳州立大学(North Carolina State University);Bin Wang,莱特州立大学(Wright State University);Daniel Zappala,杨百翰大学(Brigham Young University)。还要感谢高雄应用科技大学的王志强,他从语法上润色了我们的手稿。
  最后,我们要感谢麦格劳-希尔公司(McGrawHill)的员工,在他们的指导下,我们顺利通过了编辑和出版阶段。特别感谢全球发行商Raghu Srinivasan、我们的策划编辑Lorraine Buczek、出版项目经理Jane Mohr以及项目经理Deepti Narwat,正是在他们的大力帮助下,我们得以克服各种挑战。

上架指导

计算机\网络

封底文字

本书讲述了为什么设计一个有效的协议比了解一个协议如何工作更重要,在解释协议行为的同时还介绍了它的核心概念和基本原理。为了进一步弥补长期以来设计和实现之间存在的差距,书中讨论了在何处以及如何基于Linux系统实现协议的设计。本书详细、全面地介绍了包括硬件(8B/10B、OFDM、CRC32、CSMA/CD和crypto)、驱动程序(以太网和PPP)、内核(最长前缀匹配、校验和、NAT、TCP流量控制、套接字、整形器、调度器、防火墙和VPN),以及后台程序(RIP/OSPF/BGP、DNS、FTP、SMTP/POP3/IMAP4、HTTP、SNMP、SIP、流媒体和P2P)实现的56个开源实例。
主要特点:
 逻辑推理为什么、哪里以及如何设计和实现协议。
 56个开源代码明确地描述了核心协议和机制。
 4个附录介绍因特网、开源社区、Linux内核、开发工具和网络工具。
 包含69个有关历史演变(33)、行动原则(26)和性能问题(10)的工具条
 每章后面都有常见问题解答和“常见陷阱”。
 课堂所用PPT以及习题答案可以通过课程网站www.mhhe.com/lin获得。

“本书对实际实现细节的介绍非常突出……无愧是计算机网络领域中的一本好书。”
――Mahasweta Sarkar,圣地亚哥州立大学
“本书由RFC和开源贡献者书写,它理所当然是网络工程师的权威指导。”
――Wen Chen,思科会员
“为了弥补了长期以来设计与实现之间存在的差距,本书对协议设计的实现进行了描述,使之成为一本理想的教科书。”
――Mario Gerla,加州大学洛杉矶分校
“历史演变和行动原则使得读者阅读起来更加容易,而性能问题则能定量地处理计算机网络。”
――H.T.Kung,哈佛大学

作者简介

(中国台湾)Ying-Dar Lin, (中国台湾)Ren-Hung Hwang,(美) Fred Baker 著:Ying-Dar Lin 中国台湾国立交通大学计算机科学教授。他于1993年从美国加州大学洛杉矶分校(UCLA)获得计算机科学博士学位。他目前担任《IEEE Communications Surveys and Tutorials 》、《IEEE Communications Letters》和《 Computer Communications,and Computer Networks》的编委。
Ren-Hung Hwang 中国台湾国立中正大学计算机科学系特聘研究教授。他于1993年在马萨诸塞大学阿默斯特分校获得计算机科学博士学位。他曾发表过150余篇有关计算机网络的国际会议论文。
Fred Baker 曾先后任职于CDC、Vitalink和ACC公司,一直活跃于网络和通信行业中,他目前是思科系统公司的会员。他曾担任IETF主席,主持许多IETF工作组。目前他是IETF中IPv6运行工作组的主席之一,并且是Internet Engineering Task Force Administrative Oversight Committee的会员之一。

译者简介

陈向阳 吴云韬 徐莹 译 李琼 审校:暂无简介

译者序

YingDar Lin、RenHung Hwang和Fred Baker等人的《计算机网络:一种开源的设计实现方法》一书全面覆盖了计算机网络所涉及的内容,包括与技术相关的以及技术之外的内容,并探讨了计算机网络的最新进展和研究成果,既是一本不可多得的教科书,同时又是一本全面翔实的技术手册。它是目前国内外出版的计算机网络教材中第一本以开放源代码实现方法讨论网络层及其应用和相关实现问题的教科书。本书通过提供56个开放源代码的形式,缩短了理论知识与实际动手能力之间的差距。学生通过实际动手并在本书的全面指导下进行学习就可以对网络有更加深刻的理解,动手能力也将得到实质性的提高。目前有关计算机网络的几本国内外经典教材各有千秋,本书则是其中将理论知识与实际代码结合最紧密的,因此可以有效解决目前网络课程教学中所面临的学生虽然学习过计算机网络相应课程但知其然不知其所以然的问题。所以,本书首先是广大计算机网络教师手边不可多得的教学参考书。其次对于立志网络教学方法改革的教师可选做教材,那么就可以结合基本理论的开放源代码的实际项目实现,提高学生阅读代码的能力以及网络编程的能力和参与项目的能力。总之,高等院校计算机网络相关专业的学生、研究生、科研人员以及有一定基础的非专业人士都能够从本书中获益良多。虽然本书涉及的内容比较专业,但语言通俗易懂、内容由浅入深、结构层次清晰,而且使用了大量的图形和开放源代码帮助读者理解书中的内容。我们相信本书会给读者带来全新的感受与体验。
  本书共分8章,分别介绍计算机网络基础知识、物理层、链路层、网络层、传输层、应用层、服务质量和网络安全的主体。4个附录内容则是为了便于不熟悉Linux的读者阅读本书而提供的必要知识。
  我们接受机械工业出版社的委托翻译本书,一方面是为了丰富国内有关计算机网络方面的教材,同时也可以在翻译过程中学习先进知识从而促进相应的科研工作。本书由武汉工程大学计算机科学与工程学院陈向阳、吴云韬以及湖北省档案局徐莹负责翻译,刘军、徐清、蹇贝、费藤、周开武、周洁、孙克华、於照、杜婷、罗雅丹、张敏等对本书的翻译提供了一定的帮助,在此特别致以衷心的感谢!本书的翻译得到了武汉工程大学研究生教材建设项目的资助,还得到了湖北省教育科学“十二五”规划2013年度立项课题“地方性高校新兴交叉学科建设的研究——以网络科学为例(项目编号2013B060)”的资助。
  在翻译时,因为本书涉及广泛的领域,具体包括应用数学、计算机科学、计算机应用、密码学、网络工程等领域,挑战在所难免。虽然我们花了大量的时间和精力来翻译本书,但仍可能存在错误和不到之处。如果在使用本书时发现我们翻译中的疏漏和错误或者有更好的建议,敬请联系译者(xiangyangchensun@yahoo.com和xychensun@aliyun.com)。我们期望与您一起努力,共同做好计算机网络的教学和研究。
译者
2013年12月

图书目录

出版者的话
译者序
前言
作者简介
第1章基础知识1
1.1计算机网络互联的需求1
1.1.1连通性:节点、链路、路径1
1.1.2可扩展性:节点的数量4
1.1.3资源共享4
1.2基本原理6
1.2.1性能测量6
1.2.2控制平面上的操作9
1.2.3数据平面上的操作10
1.2.4互操作性12
1.3互联网体系结构13
1.3.1连通性解决方案13
1.3.2可扩展性解决方案15
1.3.3资源共享的解决方案17
1.3.4控制平面和数据平面操作18
1.4开放源代码实现19
1.4.1开放与封闭19
1.4.2Linux系统中的软件体系结构20
1.4.3Linux内核22
1.4.4客户端和守护进程服务器22
1.4.5接口驱动程序23
1.4.6设备控制器23
1.5本书路标:数据包的生命历程24
1.5.1数据包数据结构:sk_buff24
1.5.2在Web服务器中数据包的生命历程25
1.5.3数据包在网关中的生命历程26
1.6总结29
演变的沙漏29
常见陷阱29
进一步阅读30
常见问题解答32
练习33
第2章物理层36
2.1一般性问题36
2.1.1数据和信号:模拟的或数字的37
2.1.2发送和接收流39
2.1.3传输:线路编码和数字调制40
2.1.4传输损失41
2.2介质42
2.2.1有线介质42
2.2.2无线介质45
2.3信息编码和基带传输46
2.3.1信源编码和信道编码46
2.3.2 线路编码46
2.4数字调制和多路复用54
2.4.1通带调制54
2.4.2多路复用61
2.5高级主题62
2.5.1扩频63
2.5.2单载波与多载波69
2.5.3多输入、多输出70
2.6总结77
常见陷阱77
进一步阅读78
常见问题解答80
练习81
第3章链路层83
3.1一般问题84
3.1.1成帧84
3.1.2寻址85
3.1.3差错控制和可靠性86
3.1.4流量控制90
3.1.5介质访问控制90
3.1.6桥接91
3.1.7链路层的数据包流91
3.2点到点协议93
3.2.1高级数据链路控制93
3.2.2点到点协议95
3.2.3因特网协议控制协议96
3.2.4以太网上的PPP(PPPoE)98
3.3以太网(IEEE 802.3)98
3.3.1以太网的演变:蓝图98
3.3.2以太网MAC100
3.3.3以太网的精选主题109
3.4无线链路112
3.4.1IEEE 802.11无线局域网112
3.4.2蓝牙技术119
3.4.3WiMAX技术121
3.5桥接124
3.5.1自学习125
3.5.2生成树协议128
3.5.3虚拟局域网130
3.6网络接口的设备驱动程序133
3.6.1设备驱动程序的概念133
3.6.2在Linux设备驱动程序中如何与硬件通信134
3.7总结140
常见陷阱140
进一步阅读142
常见问题解答144
练习145
第4章互联网协议层147
4.1一般问题147
4.1.1连通性问题147
4.1.2可扩展性问题148
4.1.3资源共享问题149
4.1.4IP层协议和分组流概述149
4.2数据平面协议:互联网协议152
4.2.1互联网协议版本4152
4.2.2网络地址翻译162
4.3互联网协议版本6169
4.3.1IPv6头部格式170
4.3.2IPv6扩展头部171
4.3.3IPv6中的分段171
4.3.4IPv6地址的表示法172
4.3.5IPv6地址空间分配172
4.3.6自动配置174
4.3.7从IPv4到IPv6的迁移174
4.4控制平面协议:地址管理175
4.4.1地址解析协议175
4.4.2动态主机配置177
4.5控制平面协议:错误报告181
4.6控制平面协议:路由184
4.6.1路由原理184
4.6.2域内路由192
4.6.3域间路由200
4.7组播路由204
4.7.1将复杂性迁移到路由器204
4.7.2组成员管理205
4.7.3组播路由协议206
4.7.4域间组播212
4.8总结214
常见陷阱214
进一步阅读215
常见问题解答218
练习220
第5章传输层224
5.1一般问题224
5.1.1节点到节点与端到端225
5.1.2差错控制和可靠性226
5.1.3速率控制:流量控制和拥塞控制226
5.1.4标准编程接口227
5.1.5传输层分组流227
5.2不可靠的无连接传输:UDP229
5.2.1头部格式229
5.2.2差错控制:每个分段的校验和230
5.2.3承载单播/组播实时流量231
5.3可靠的面向连接的传输:TCP231
5.3.1连接管理231
5.3.2数据传输的可靠性234
5.3.3TCP流量控制236
5.3.4TCP拥塞控制239
5.3.5TCP头部格式245
5.3.6TCP定时器管理246
5.3.7TCP性能问题及增强249
5.4套接字编程接口258
5.4.1套接字258
5.4.2通过UDP和TCP绑定应用程序258
5.4.3绕过UDP和TCP传输263
5.5用于实时流量的传输协议266
5.5.1实时需求266
5.5.2标准数据平面协议:RTP268
5.5.3标准控制平面协议:RTCP268
5.6总结269
常见陷阱270
进一步阅读270
常见问题解答272
练习273
第6章应用层276
6.1一般问题277
6.1.1端口如何工作278
6.1.2服务器如何启动278
6.1.3服务器分类278
6.1.4应用层协议的特点282
6.2域名系统282
6.2.1简介282
6.2.2域名空间283
6.2.3资源记录284
6.2.4名字解析286
6.3电子邮件291
6.3.1简介291
6.3.2互联网邮件标准292
6.3.3互联网邮件协议296
6.4万维网303
6.4.1简介303
6.4.2Web命名和寻址304
6.4.3HTML和XML306
6.4.4HTTP306
6.4.5Web缓存和代理309
6.5文件传输协议314
6.5.1简介314
6.5.2双连接操作模型:带外信令315
6.5.3FTP协议消息316
6.6简单网络管理协议320
6.6.1简介320
6.6.2体系结构框架320
6.6.3管理信息库321
6.6.4SNMP中的基本操作324
6.7VoIP328
6.7.1简介328
6.7.2H.323329
6.7.3会话初始化协议331
6.8流媒体336
6.8.1简介336
6.8.2压缩算法337
6.8.3流媒体协议337
6.8.4服务质量和同步机制339
6.9对等应用程序342
6.9.1简介342
6.9.2P2P的体系结构344
6.9.3P2P应用的性能问题348
6.9.4案例研究:BitTorrent 349
6.10总结354
常见陷阱354
进一步阅读355
常见问题解答357
练习359
第7章互联网服务质量361
7.1一般问题362
7.1.1信令协议362
7.1.2QoS路由362
7.1.3许可控制363
7.1.4分组分类363
7.1.5监管363
7.1.6调度363
7.2QoS体系结构365
7.2.1集成服务365
7.2.2区分服务367
7.3QoS组件的算法372
7.3.1许可控制372
7.3.2流标识374
7.3.3令牌桶375
7.3.4分组调度378
7.3.5分组丢弃383
7.4总结386
常见陷阱386
进一步阅读386
常见问题解答388
练习388
第8章网络安全390
8.1一般问题390
8.1.1数据安全390
8.1.2访问安全391
8.1.3系统安全392
8.2数据安全392
8.2.1密码学原理392
8.2.2数字签名和消息认证398
8.2.3链路层隧道401
8.2.4IP安全401
8.2.5传输层安全404
8.2.6VPN技术的比较406
8.3访问安全407
8.3.1简介407
8.3.2网络层/传输层防火墙407
8.3.3应用层防火墙410
8.4系统安全412
8.4.1信息收集412
8.4.2漏洞利用412
8.4.3恶意代码415
8.4.4典型的防御417
8.5总结424
常见陷阱425
进一步阅读426
常见问题解答428
练习428
附录A名人录430
附录BLinux内核概述440
附录C开发工具450
附录D网络实用工具466

教学资源推荐
作者: 教育部高等学校计算机类专业教学指导委员会 物联网工程专业教学研究专家组 编制
作者: (荷)Andrew S. Tanenbaum 阿姆斯特丹Vrije大学(美)David J. Wetherall华盛顿大学西雅图分校 著
作者: (美)Gary R.Wright,W.Richard Stevens
参考读物推荐