新書推薦:
《
东法西渐:19世纪前西方对中国法的记述与评价
》
售價:HK$
201.6
《
养育男孩:官方升级版
》
售價:HK$
50.4
《
小原流花道技法教程
》
售價:HK$
109.8
《
少女映像室 唯美人像摄影从入门到实战
》
售價:HK$
110.9
《
詹姆斯·伍德系列:不负责任的自我:论笑与小说(“美国图书评论奖”入围作品 当代重要文学批评家詹姆斯·伍德对“文学中的笑与喜剧”的精湛研究)
》
售價:HK$
87.4
《
武当内家散手
》
售價:HK$
50.4
《
诛吕:“诸吕之乱”的真相与吕太后时期的权力结构
》
售價:HK$
99.7
《
炙野(全2册)
》
售價:HK$
78.2
編輯推薦:
本书讲述了为什么设计一个有效的协议比了解一个协议如何工作更重要,在解释协议行为的同时还介绍了它的核心概念和基本原理。为了进一步弥补长期以来设计和实现之间存在的差距,书中讨论了在何处以及如何基于Linux系统实现协议的设计。本书详细、全面地介绍了包括硬件(8B10B、OFDM、CRC32、CSMACD和crypto)、驱动程序(以太网和PPP)、内核(最长前缀匹配、校验和、NAT、TCP流量控制、套接字、整形器、调度器、防火墙和VPN),以及后台程序(RIPOSPFBGP、DNS、FTP、SMTPPOP3IMAP4、HTTP、SNMP、SIP、流媒体和P2P)实现的56个开源实例。
內容簡介:
本书是目前国内外出版的计算机网络类教材中第一本以开放源代码实现形式介绍网络及应用问题的教科书。本书自底向上介绍网络的各层协议,每部分内容不仅介绍网络的基本概念、原理,而且还介绍网络的实现原理并给出实现的开源代码。通过56个开源网络的实现,详细讲解协议及设计的实现方法。学生通过实际动手和本书的全面指导,可以对网络有更加深刻的理解,动手能力将得到实质性的提高,可以有效解决学生学习计算机网络知识后不知所以然的问题。
本书可作为计算机科学或电子工程的高年级本科生或一年级研究生的计算机网络教材,还可以作为计算机网络教师的教学参考书,也可供数据通信行业的专业工程师使用。
關於作者:
Ying-Dar Lin(林盈达)中国台湾交通大学(NCTU)计算机科学教授。他于1993年从美国加州大学洛杉矶分校(UCLA)获得计算机科学博士学位。他曾于2007—2008年以休假的形式到位于圣何塞的思科公司作访问学者。自从2002年起,他任网络测试中心(Network Benchmarking Lab,NBL,www.nbl.org.tw)主任同时也是NBL的创立者,NBL利用实际通信量来检验网络产品。他还于2002年与他人合作共同建立了利基网络有限公司(L7 Networks Inc.),该公司后来被DLink公司收购。他的研究兴趣包括网络协议和算法的设计、分析、实现和标杆分析法,服务质量,网络安全,深度分组检验,P2P网络互联,以及嵌入式硬件软件的协同设计。他在“多跳蜂窝”的研究工作被引用过500多次。它目前担任《IEEE Communications Magazine》(IEEE通信杂志)、《IEEE Communications Surveys and Tutorials》(IEEE通信调查和教程)、《IEEE Communications Letters》(IEEE通信快报)、《Computer Communications》(计算机通信)和《Computer Networks》(计算机网络)的编委。
Ren-Hung Hwang(黄仁竑)中国台湾中正大学计算机科学系特聘研究教授,并任清江学习中心主任。他于1993年在马萨诸塞大学阿默斯特分校获得计算机科学博士学位。他曾发表过150余篇有关计算机网络的国际会议论文。他的研究兴趣包括沉浸计算、P2P网络、下一代无线网络以及网络教育。他担任2009年度在中国台湾高雄市举办的第十届普适系统、算法和网络研讨会的程序委员会主席。他目前任《Journal of Information Science and Engineering》(信息科学与工程杂志)的编委。他曾经荣获中国台湾中正大学2002年度杰出教学奖,并获得中国台湾教育部门1998—2001年通信网络课件杰出设计奖。他目前还任TWNIC IP委员会以及中国台湾“中华工程教育学会”(IEET) 认证规划与程序委员会的委员。
Fred Baker(弗雷德·贝克)自20世纪70年代末期,一直活跃于网络和通信行业中,曾先后任职于CDC、Vitalink和ACC。他目前是思科系统公司的会员。他于1996—2001年曾担任IETF主席。他已经主持了很多IETF工作组,包括Bridge MIB、DS1DS3 MIB、ISDN MIB、PPP 扩展、IEPREP和IPv6运行,并且从1996—2002年服务于互联网架构委员会。他曾经与人合著或编辑过大约40个RFC并对其他RFC也做出过贡献。具体项目包括网络管理、OSPF和RIPv2路由、服务质量(使用集成服务或差分服务模型)、合法拦截、互联网上基于优先的服务等。此外,他还于2002—2008年作为互联网协会理事会(Board of Trustees of the Internet Society)的会员,并于2002—2006年期间担任主席。他还是联邦通信委员会技术咨询委员会(Technical Advisory Council of the Federal Communications Commission)的前会员。他当前是IETF中IPv6运行工作组的联合主席,并且是互联网工程任务组行政监督委员会(Internet Engineering Task Force Administrative Oversight Committee)的会员。
目錄 :
Computer Networks:An Open Source Approach
出版者的话
译者序
前言
作者简介
第1章基础知识
1.1计算机网络互联的需求
1.1.1连通性:节点、链路、路径
1.1.2可扩展性:节点的数量
1.1.3资源共享
1.2基本原理
1.2.1性能测量
1.2.2控制平面上的操作
1.2.3数据平面上的操作
1.2.4互操作性
1.3互联网体系结构
1.3.1连通性解决方案
1.3.2可扩展性解决方案
1.3.3资源共享的解决方案
1.3.4控制平面和数据平面操作
1.4开放源代码实现
1.4.1开放与封闭
1.4.2Linux系统中的软件体系结构
1.4.3Linux内核
1.4.4客户端和守护进程服务器
1.4.5接口驱动程序
1.4.6设备控制器
1.5本书路标:数据包的生命历程
1.5.1数据包数据结构:sk_buff
1.5.2在Web服务器中数据包的生命历程
1.5.3数据包在网关中的生命历程
1.6总结
演变的沙漏
常见陷阱
进一步阅读
常见问题解答
练习
第2章物理层
2.1一般性问题
2.1.1数据和信号:模拟的或数字的
2.1.2发送和接收流
2.1.3传输:线路编码和数字调制
2.1.4传输损失
2.2介质
2.2.1有线介质
2.2.2无线介质
2.3信息编码和基带传输
2.3.1信源编码和信道编码
2.3.2 线路编码
2.4数字调制和多路复用
2.4.1通带调制
2.4.2多路复用
2.5高级主题
2.5.1扩频
2.5.2单载波与多载波
2.5.3多输入、多输出
2.6总结
常见陷阱
进一步阅读
常见问题解答
练习
第3章链路层
3.1一般问题
3.1.1成帧
3.1.2寻址
3.1.3差错控制和可靠性
3.1.4流量控制
3.1.5介质访问控制
3.1.6桥接
3.1.7链路层的数据包流
3.2点到点协议
3.2.1高级数据链路控制
3.2.2点到点协议
3.2.3因特网协议控制协议
3.2.4以太网上的PPPPPPoE
3.3以太网(IEEE 802.3)
3.3.1以太网的演变:蓝图
3.3.2以太网MAC
3.3.3以太网的精选主题
3.4无线链路
3.4.1IEEE 802.11无线局域网
3.4.2蓝牙技术
3.4.3WiMAX技术
3.5桥接
3.5.1自学习
3.5.2生成树协议
3.5.3虚拟局域网
3.6网络接口的设备驱动程序
3.6.1设备驱动程序的概念
3.6.2在Linux设备驱动程序中如何与硬件通信
3.7总结
常见陷阱
进一步阅读
常见问题解答
练习
第4章互联网协议层
4.1一般问题
4.1.1连通性问题
4.1.2可扩展性问题
4.1.3资源共享问题
4.1.4IP层协议和分组流概述
4.2数据平面协议:互联网协议
4.2.1互联网协议版本4
4.2.2网络地址翻译
4.3互联网协议版本6
4.3.1IPv6头部格式
4.3.2IPv6扩展头部
4.3.3IPv6中的分段
4.3.4IPv6地址的表示法
4.3.5IPv6地址空间分配
4.3.6自动配置
4.3.7从IPv4到IPv6的迁移
4.4控制平面协议:地址管理
4.4.1地址解析协议
4.4.2动态主机配置
4.5控制平面协议:错误报告
4.6控制平面协议:路由
4.6.1路由原理
4.6.2域内路由
4.6.3域间路由
4.7组播路由
4.7.1将复杂性迁移到路由器
4.7.2组成员管理
4.7.3组播路由协议
4.7.4域间组播
4.8总结
常见陷阱
进一步阅读
常见问题解答
练习
第5章传输层
5.1一般问题
5.1.1节点到节点与端到端
5.1.2差错控制和可靠性
5.1.3速率控制:流量控制和拥塞控制
5.1.4标准编程接口
5.1.5传输层分组流
5.2不可靠的无连接传输:UDP
5.2.1头部格式
5.2.2差错控制:每个分段的校验和
5.2.3承载单播组播实时流量
5.3可靠的面向连接的传输:TCP
5.3.1连接管理
5.3.2数据传输的可靠性
5.3.3TCP流量控制
5.3.4TCP拥塞控制
5.3.5TCP头部格式
5.3.6TCP定时器管理
5.3.7TCP性能问题及增强
5.4套接字编程接口
5.4.1套接字
5.4.2通过UDP和TCP绑定应用程序
5.4.3绕过UDP和TCP传输
5.5用于实时流量的传输协议
5.5.1实时需求
5.5.2标准数据平面协议:RTP
5.5.3标准控制平面协议:RTCP
5.6总结
常见陷阱
进一步阅读
常见问题解答
练习
第6章应用层
6.1一般问题
6.1.1端口如何工作
6.1.2服务器如何启动
6.1.3服务器分类
6.1.4应用层协议的特点
6.2域名系统
6.2.1简介
6.2.2域名空间
6.2.3资源记录
6.2.4名字解析
6.3电子邮件
6.3.1简介
6.3.2互联网邮件标准
6.3.3互联网邮件协议
6.4万维网
6.4.1简介
6.4.2Web命名和寻址
6.4.3HTML和XML
6.4.4HTTP
6.4.5Web缓存和代理
6.5文件传输协议
6.5.1简介
6.5.2双连接操作模型:带外信令
6.5.3FTP协议消息
6.6简单网络管理协议
6.6.1简介
6.6.2体系结构框架
6.6.3管理信息库
6.6.4SNMP中的基本操作
6.7VoIP
6.7.1简介
6.7.2H.323
6.7.3会话初始化协议
6.8流媒体
6.8.1简介
6.8.2压缩算法
6.8.3流媒体协议
6.8.4服务质量和同步机制
6.9对等应用程序
6.9.1简介
6.9.2P2P的体系结构
6.9.3P2P应用的性能问题
6.9.4案例研究:BitTorrent
6.10总结
常见陷阱
进一步阅读
常见问题解答
练习
第7章互联网服务质量
7.1一般问题
7.1.1信令协议
7.1.2QoS路由
7.1.3许可控制
7.1.4分组分类
7.1.5监管
7.1.6调度
7.2QoS体系结构
7.2.1集成服务
7.2.2区分服务
7.3QoS组件的算法
7.3.1许可控制
7.3.2流标识
7.3.3令牌桶
7.3.4分组调度
7.3.5分组丢弃
7.4总结
常见陷阱
进一步阅读
常见问题解答
练习
第8章网络安全
8.1一般问题
8.1.1数据安全
8.1.2访问安全
8.1.3系统安全
8.2数据安全
8.2.1密码学原理
8.2.2数字签名和消息认证
8.2.3链路层隧道
8.2.4IP安全
8.2.5传输层安全
8.2.6VPN技术的比较
8.3访问安全
8.3.1简介
8.3.2网络层传输层防火墙
8.3.3应用层防火墙
8.4系统安全
8.4.1信息收集
8.4.2漏洞利用
8.4.3恶意代码
8.4.4典型的防御
8.5总结
常见陷阱
进一步阅读
常见问题解答
练习
附录A名人录
附录BLinux内核概述
附录C开发工具
附录D网络实用工具
內容試閱 :
"基础知识
第1章
Computer Networks:An Open Source Approach
基础知识
计算机网络或数据通信是有关计算机系统或设备之间通信的一组规则。它有其自身的需求和基本原理。自从1969年ARPANET(美国国防部高级研究计划局网络,后改名为因特网)建立了第一个节点后,存储转发分组交换技术就成为因特网体系结构,这是一个满足需求和数据通信基本原理的解决方案。这种解决方案于1983年与TCPIP协议套件融合,此后就开始了演变过程。
互联网,或TCPIP协议套件,其实只是恰好占据统治地位的众多可能解决方案之一。当然还存在其他的解决方案,也能符合需求并能满足数据通信的基本原理。例如,也是开发于20世纪70年代的X25和开放系统互连(OSI),却最终被TCPIP所替代。异步转移模式(ATM),曾经在20世纪90年代风靡一时,但因为难以与TCPIP协议兼容而最终消失匿迹。多协议标签交换(MPLS)得以幸存下来,因为它从一开始就是作为TCPIP协议的补充而设计的。
同样,在各种计算机系统或设备上也有许多互联网解决方案的实现。其中,开源实现与互联网架构一样共享同一种开放的和自底向上的精神,为公众提供实际可获得的软件源代码。在这种自底向上的方法中,志愿者能够贡献自己的设计或实现,同时寻求开发人员社区的支持和共识,这与受权威驱动的自顶向下的方法刚好相反。因为是开源和免费提供,所以这些实现能够作为各种网络机制如何在特定情况下工作的可靠的运行例子。
在本章中,我们让读者熟悉本书通篇用到的计算机网络基础知识。11节通过用连通性、可扩展性和资源共享对计算机网络进行定义以便标识进行数据通信的关键需求,还介绍了分组交换的概念。12节阐述了数据通信的基本原理。首先定义带宽、提供负载、吞吐量、延迟、延迟变化和丢失等性能测量。然后,解释了用于处理控制分组和数据分组的协议和算法的设计问题。因为互联网是计算机网络的一种可能解决方案,所以13节介绍了连通性、可扩展性和资源共享以及控制分组和数据分组处理的互联网版本的解决方案。14节讨论了开源实现是如何进一步在运行的系统尤其是在Linux操作系统中实现互联网解决方案。我们说明了各种协议和算法模块在计算机系统的内核、驱动程序、守护程序以及控制器中实现的原因和方式。我们在15节利用分组经过Web服务器和中间互联设备中各种模块的历程画出了本书的学习路标。本节还为理解以后章节中将描述的开源实现奠定基础。互联网解决方案的设计和开源实现的贡献者,连同其他昙花一现的网络技术,将放在附录A中作为本章补充材料加以复习。
通过本章学习后,读者应该能够解释:1)为什么互联网解决方案是以目前这样的方式设计的;2)这种开放的解决方案是如何在实际系统中实现的。
11计算机网络互联的需求
对计算机网络的一套需求可以转化为在设计、实施、操作计算机网络时必须满足的一组目标。多年来,这组目标也在逐渐变化,但其核心需求仍保持不变:“通过各种共享媒体和设备连接越来越多的用户和应用程序,以便它们可以相互通信。”这句话表明数据通信的三个需求以及要解决的有关问题:1)连通性:谁以及如何连接;2)可扩展性:有多少连接;3)资源共享:如何利用连接。本节将介绍这些核心需求并讨论大多数计算机网络(不仅是互联网)满足这些需求的通用解决方案。
111连通性:节点、链路、路径
计算机网络,从连通性方面,可视为“从一组节点和链路构造的连通图,这里任何一对节点可以通过由一系列联系起来的节点和链路组成的路径到达彼此”。我们人类用户之间需要连通性以便交换消息或加入谈话,应用程序之间需要连通性以便维护网络操作,或者在用户和应用程序之间需要连通性以便访问数据或服务。可以使用各种媒体和设备建立节点之间的连通性,设备可以是集线器、交换机、路由器或网关,而媒体可以是有线的或无线的。
节点:主机或中间设备
计算机网络中的节点既可以是一台主机也可以是一台中间互联设备。前者是一台容纳用户和应用程序的终端计算机;而后者充当一个中间节点,提供多个链接接口连接主机或其他中间节点。像集线器、交换机、路由器和网关等设备就是常见的中间节点。与基于计算机的主机不同,中间节点设备可能会配备专门设计的CPU卸载硬件以提高处理速度或降低硬件和处理成本。随着链路或线路速度的增加,线速处理既需要更快的CPU也需要特殊的硬件,如专用集成电路(ASIC)、从CPU上卸载负荷。
链路:点对点或广播
计算机网络中的链路如果正好连接了两个节点(在每个端点一个),就称为点对点,如果它连接两个以上节点,就称为广播。关键的区别在于,连接到一个广播链路上的节点需要通过竞争获得发送权。如果点对点链路是全双工链路,那么通过其上的节点间通信就可以随意发送;如果是半双工链路,就会轮流发送;如果是单工链路,则利用两条链路传输,每个方向一条链路。即全双工链路和半双工链路分别支持同时在两个方向或在某时刻仅在一个方向上的双向通信,而单工链路仅支持单向通信。
链路的物理性质既可以是有线的也可以是无线的,既可以是点对点也可以是广播式的。一般情况下,有线或无线的局域网(LAN)中的链路是广播式的,而广域网(WAN)中的链路是点对点的。这因为广播链路中使用的多路访问方法通常在短距离内更有效,这一点我们将在第3章中看到。然而,也会存在例外。例如,为广域网设计的基于卫星的ALOHA系统使用广播式的链路。以太网,最初为局域网设计的广播链路,已经演变成无论在局域网还是在广域网中都使用的点对点链路。
有线或无线
对于有线链路,常见的媒体包括双绞线、同轴电缆和光纤。双绞线将两根铜线绞在一起以获得对噪声的更好免疫力,它们广泛用于普通老式电话系统(POTS)和局域网(如以太网)的接入线路。5类(Cat5)双绞线比室内使用的POTS线具有更高的规格,可以10Mbps传输几千米远或以1Gbps传输100多米。同轴电缆利用更厚的塑料护套将更粗的铜线与较细的嵌入铜线分开,适合远距离传输,如适用于跨越40公里地区的100个6MHz电视频道的有线电视分发。通过电缆调制解调器,某些信道中的每一个,可以数字化为30Mbps的数据、语音或者视频服务。光纤具有大容量,而且它可以将信号传输得更远。光缆主要用于骨干网络(Gbps~Tbps),有时用于本地局域网络(100Mbps~10Gbps)。
对于无线链路,有无线电(104~108Hz)、微波(108~1011Hz)、红外(1011~1014Hz),以及其他(紫外线、X射线、伽玛射线)不断提高的传输频率数量级。低频率(低于几个GHz)的无线链路通常是广播式,这是全向的,而超过几十GHz的高频率无线链路可能是点对点的,方向性会更强。由于无线数据通信仍处于蓬勃发展的阶段,所以流行的系统包括无线局域网(在100米半径范围内,54Mbps~600Mbps的数据传输速率)、通用分组无线电业务(GPRS)(在几公里内为128kbps)、3G(第三代移动通信,在几公里内达到384kbps到数Mbps)、蓝牙(在10米范围以内,数Mbps),所有这些技术都工作在800MHz~2GHz的微波频谱内。
历史演变:链路标准
目前有很多链路标准用于数据通信。我们可将链路分成以下几类:本地、最后一公里和租用线路。表11列出了这些链路标准的名称和数据率。本地链路部署在局域网中使用,其中5类(Cat5)以太网和24GHz无线局域网是两种主要技术。前者速度更快,并在5类双绞线上具有专用的传输信道,但后者设置简单,并支持更高的移动性。
所谓的最后一公里或第一公里链路链接从家庭或移动用户到互联网服务提供商(ISP)的“第一公里”。其中,非对称数字用户线(ADSL)、有线电视(CATV)和光纤到楼(FTTB)是最流行的有线链路技术,3G和全球微波互联接入(WiMAX)是目前最流行的无线技术。POTS和综合服务数字网(ISDN)是过时的技术。
表11流行的有线和无线链路技术"