- 定价:¥79.00
- POD价:¥79.00
- 评分:
(已有5条评价)
- 电子书:网络分析技术揭秘:原理、实践与WinPcap深入解析[按需印刷]
- 促销活动:
- 我要买:
- ·如此书原封面缺失,印刷将采用出版社授权的新封面;
- ·如电子文件出现问题,可能延长印制周期,我们将提前与您沟通
基本信息

【插图】

编辑推荐
以WinPcap的源码分析为依托,深刻阐释网络分析技术的方法、原理和最佳实践
通过大量实例演示数据包的捕获、过滤、发送、接收与流量统计,对WinPcap进行深入解析
内容简介
计算机书籍
《网络分析技术揭秘原理、实践与WinPcap深入解析》结合著名的开源软件库WinPcap来说明网络分析技术的实现原理及使用方法。其中包括网络分析工具的内核驱动,编译与使用WinPcap,数据包的捕获、发送、内核过滤、接收,以及网络流量的统计与网络状态的分析等重要内容,而且作者还通过修改内核级的源代码解决了开源代码本身尚未完成的一个重要功能——数据包的内核转储。经过作者系统深入地分析,读者既能对WinPcap的架构、使用与实现机制有深入的理解,还能快速熟悉操作系统内核与用户层交互的实现机制,全面了解网络分析专业各方面的技术,并且能将相关知识运用到实际项目中。
如果你的工作与网络软件相关,无论是开发人员还是测试人员,我们都强烈建议你阅读本书。
在网络环境日趋复杂的今天,网络分析技术越发显得重要,本书通过对WinPcap源码的分析来帮助大家理解网络分析技术。书中涵盖了网络协议、Windows内核驱动与网络协议驱动、网络分析、用户应用软件等诸多知识。为了降低理解的难度,文中还设计了众多实例,每讲到一个知识要点,基本都是从实例开始讲解的,只在必要的时候才插入必需的理论说明,以帮助读者理解。如果你想要了解网络分析技术,如果你的工作与网络软件相关,那么本书将会是你必选的参考书。
WinPcap是一款优秀的网络分析工具库。可用来统计网络流量,并对数据包进行捕获、过滤、发送、接收等操作。本书基于WinPcap源码来进行分析,相信既可以帮助你掌握网络分析技术,又可以使你掌握它的使用技巧。
作译者
彭文波,从事互联网产品工作,曾在省级电子商务认证中心从事安全开发工作,曾就职于多家专业网管软件公司,先后参与了电子商务认证系统、移动网络管理系统等产品的开发。
宋泽宇,七二二研究所数字通信专业硕士,高级工程师,国船电气(武汉)有限公司副总经理,曾参与多个大型项目的研制工作。
目录
前 言
第1章揭开网络分析的神秘面纱/ 1
1.1网络分析概述/ 1
1.2网络分析的主要用途/ 3
1.3黑客使用嗅探器的方法/ 4
1.4被嗅探数据的真面目/ 6
1.4.1使用嗅探器获得FTP的用户名和密码/ 6
1.4.2使用嗅探器分析冲击波蠕虫(Blaster Worm)/ 7
1.5常见的网络分析器/ 10
1.6网络分析器的工作原理/ 11
1.6.1以太网简介/ 11
1.6.2理解开放系统互连(OSI)模型/ 11
1.6.3了解CSMA/CD协议/ 15
1.6.4IP、ICMP、TCP与UDP协议/ 16
1.6.5硬件/ 17
1.6.6欺骗交换机/ 19
1.7嗅探器的检测/ 21
1.7.1检测嗅探器的原理/ 21
1.7.2防止网络嗅探可采取的安全措施/ 22
前言
过去我一直在从事软件开发相关的工作,主要负责软件开发、软件测试及软件工程的研究。其中包括Windows操作系统应用软件的开发,Linux操作系统应用软件与驱动程序的开发,并且还做过一些嵌入式软件开发。在这些工作中,我会协助其他开发人员、测试人员构建达到工业级标准的软件,或者帮助他们提高软件开发或测试的技术水平。期间,我们不断遇到各种各样的问题,有的可以轻松解决,有的却要绞尽脑汁才能解决。在这个过程中,我也一直在思考一个问题,那就是:
软件开发人员与软件测试人员除了要对应用程序有清晰的理解外,是否还需要对支撑应用软件运行的操作系统、共享库等有深入的理解?
我想,可以以我亲身经历的两个案例为例来回答这个问题。
案例1:嗅探软件掉包问题
某自行开发的网络数据包嗅探软件在对被测设备进行数据包分析时、发现有掉包现象,但被测设备运行正常。经过我们仔细分析,发现该嗅探软件的设计有如下问题:在软件架构的设计上,没有考虑在高速网络流量情况下应该采取一定的措施来防止掉包现象。
软件测试人员对该嗅探软件进行了各种优化,比如增加缓冲区的大小、降低显示的复杂度、分析代码性能瓶颈等,但效果都不明显。后来,通过对所调用的WinPcap库的仔细分析,获得以下解决方案:让WinPcap的内核驱动程序NPF实现协议过滤,而不是通过嗅探软件进行过滤,同时在内核中实现数据包的存储,而不是导入应用层后进行存储。这样可显著地降低内核空间与用户空间进行数据交互的时间耗费。
该案例提醒我们,测试人员在开发测试工具时,需要对所使用的支撑软件有深入的理解,这样才能更好地解决所遇到的实际问题。内核层的过滤与转储功能是WinPcap库NPF驱动程序提供的优化功能,可以缓解捕获高速网络流量的掉包问题。
案例2:A/D转换器(模拟数字转换器)数据采集系统掉点问题
某基于嵌入式Linux系统实现的A/D转换器数据采集系统,在对所采集的数据进行存储时,出现掉点现象。经过仔细调试,我们发现采样率还不到所要求的一半时就开始出现掉点现象了,且采样率越高掉点现象越严重。
由于项目组相关人员对Linux驱动程序的机制了解不够深入,应用层软件开发人员对软件进行的各种调优都收效甚微。相关人员曾一度怀疑这一现象是文件系统存储速度慢导致的,即是硬件问题导致的,项目陷入困境。后来,在对A/D转换器驱动程序进行仔细分析后,发现导致问题的原因是:内核缓冲机制不对,同时内核向用户层提交数据耗时。最终的解决方案是:采用双缓冲机制,并直接在内核存储所采集的数据。
该案例提醒我们,开发人员开发软件时,需要对底层系统软件有深入的理解,这样才能有效地开发出高性能的软件。Linux驱动程序所采用的实现机制对用户层软件性能的影响非常大。Linux针对不同的应用类型提供了多种不同的解决方案,我们需要学会选择。
看了上述案例,再来回顾一下我前面提出的问题:软件开发人员与软件测试人员有必要对支撑应用软件运行的操作系统、共享库等有深入的理解吗?答案是肯定的,尤其对于从事软件系统架构设计与分析、软件故障问题定位与软件性能评测的高级开发人员与高级测试人员来说,这些都是一定要掌握的基础知识。在软件系统日益复杂的今天,浅尝辄止的人是不可能在技术上有所成就的。
但是,如何进行这种有效的、深入的学习呢?尤其是对于软件行业中的“菜鸟”而言。在Linux平台下,我们可以查看几乎所有的源代码,从资源的角度来说,学习相关知识并无太大难度。但是在Windows平台下,资源的不透明首先就阻止了你前进的脚步。
计算机网络的迅速发展,使网络安全、网络性能、网络软件质量等相关问题也随之凸显。这些问题也越来越受人们的关注,并且逐渐成为网络应用所面临的严重问题。正是在这种形势下,网络分析逐渐成为一门独立的、专门的学科,而市面上目前还没有该学科的相关书籍。
那么,如果把这两方面的问题进行有机的结合,这样可使读者既能深入地学习软件技能,又能全面了解网络分析专业各方面的技术,岂不是鱼肉熊掌可兼得?我经过长时间的探索发现,对WinPcap开源库的源代码进行深入的、仔细的分析,并熟悉网络分析专业知识,可显著加快学习的步伐。
本书十分重视实践性。除了使读者熟悉网络分析技术外,书中还以开源软件WinPcap为基础具体演示了网络分析各项技术的使用方法和实现原理,方便读者学习。这样安排是希望读者跟着书本内容进行实践,能尽快将所学知识运用到实际的工作中去。
读者对象
本书重点关注网络分析技术的使用和实现原理,并对其进行了透彻的分析,故可为想了解、使用甚至精通网络分析技术的人员提供全面的、详细的参考。
本书深入地、全面地叙述了网络分析的核心技术,并以大量示例演示了相关概念,其中包括进行网络分析必要的各种软硬件基础知识,网络数据包的捕获、发送、分析、文件转储等方面的内容。因此本书适合各层次的网络分析人员使用,例如网络软件开发人员与网络软件测试人员从中可获得许多网络分析与软件设计的知识;网络安全工程师可以从中获得网络攻击者所使用技术的一些细节知识。
媒体评论
—— 任晓珲黑客反病毒组织(www.hackav.com)创始人
本书作者从事软件开发工作多年,本书的写作也花费了作者几年的时间,可谓是呕心沥血之作。作者在写作之初,曾希望能把网络分析的核心技术用浅显易懂的方式展现出来,以帮助读者掌握这门技术,并可以把它运用于实际工作中,真真正正地“学以致用”,我觉得,他做到了。而且他还通过直接修改内核级源代码的方式解决了开源代码本身尚未完成的一个重要功能——数据包的内核转储。
—— 51CTO(www.51cto.com)
随着计算机网络的迅速发展,网络安全、网络性能、网络软件质量等相关问题也随之凸现。这些问题受到人们越来越多的关注,并逐渐成为网络应用所面临的障壁。正是在这种局势下,网络分析逐渐成为一门独立的、专业的学科,在网络软件开发、调试、测试与维护中得以广泛使用。因为网络分析涉及诸多技术,所以为了有效使用这些技术并更好地理解这些技术原理,就要对相关人员提出很高的要求。
在本书中,作者对网络分析的核心技术进行了深入的剖析。其结合常用的网络分析开源库WinPcap详细演示了网络分析技术的使用。给希望使用WinPcap、熟悉WinPcap高级特性、甚至自行开发与修改WinPcap源代码的人员提供了全面的、详细的参考信息。与此同时,作者还把网络分析各技术的实现原理分析得十分透彻,使读者除了学习到如何使用网络分析技术外,还可理解网络分析工具的设计架构。这是很重要的,尤其是对于网络高级测试人员与开发人员来说,这些都是必备的知识。
目前市面上少有关于网络分析的书籍,更没有一本详细分析网络分析各技术底层实现机制的书籍,所以本书颇具出版价值。
—— 熊有伦中国科学院院士
书摘
面向连接。该方式提供了四种服务:连接的建立、确认和数据到达响应、差错恢复
(通过请求重发接收到的错误数据实现)、滑动窗口(系数:128)。滑动窗口用来提高数据传速率。
无连接应答响应服务。
在面向连接的通信方式中,每一个LLC帧发送的内容都会被确认。LLC子层在接收LLC帧(又称协议数据单元,PDU)结束时需要检测在传输时是否有帧丢失了,如果丢失,则会给发送端发送一个请求,请求重新开始传输,此次传输将从没有到达的PDU开始。
LLC子层位于MAC子层的上面,它在上层与MAC子层的协议(如以太网、令牌环网等)之间扮演着一个联络人的角色。
3.网络层
接下来的一层为网络层,在这一层数据包会被顺序化,同时会被赋予逻辑地址。逻辑地址是通过软件赋予的地址,不是永久性的。TCP/IP协议在互联网上使用的IP地址就是逻辑地址。
网络层也负责在点或结点之间创建一个虚拟链路(这里指的一个逻辑连接,而不是一个物理连接)。其中结点是具有MAC地址的设备,包含计算机、打印机或路由器等。
这一层也负责路由与推进数据包。路由是指从一个网络或子网推进数据包到另一个网络或子网。如果没有路由器,计算机只能与同一网段中的计算机通信。对于互联网来说,路由是一个关键,同时也是网络层最重要的任务。
网络层还提供流量控制与差错控制功能。在该层操作的设备是路由器与三层交换机。从这一层开始,实现OSI模型的基本方法将与软件密切关联,而不再是硬件。
4.传输层
OSI模型的第四层为传输层,这一层负责从一个结点传输数据到另一个结点上。它在结点间提供透明的数据传输,并管理端到端的流量控制、错误检测与错误恢复。
首先,传输层协议在不同计算机的特定端口之间发起联系,并设置虚拟的链路。每台主机的传输协议确认应用程序发送的数据是否是被授权访问的,并且两个端点是否都准备好开始数据传输了。当该同步完成时,数据将被发送。在数据传送的过程中,每台主机上的传输协议会监控数据流并监视传输错误。如果传输检测到错误,传输协议将提供错误恢复。
对网络通信而言,传输层所提供的功能非常重要。前面提到数据链路层提供了底层可靠性与面向连接或非连接的通信,传输层做了同样的工作,只不过是在更高的层次上。
面向连接的传输控制协议(TCP)与面向非连接的用户数据包协议(UDP)是传输层常见的两种协议。
传输层也管理端口的逻辑地址,比如,决定所接收的数据属于哪个应用程序,一台计算机上可能会同时运行几个网络应用程序。
传输层还会处理域名解析,如使用域名系统(Domain Name System,DNS)就是处理该问题的一种方法。
……