网络协议是用于不同计算机之间进行网络通信的。网络协议是网络上所有设备(如网络服务器、计算机、交换机、路由器等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。常见的协议有TCP/IP协议、IPX/SPX协议、NetBEUI协议等。本章将介绍将简要讲解TCP/IP网络协议。本文选自《Wireshark数据抓包分析(网络协议篇)》
抓包工具就是用来将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全,但也往往被某些人用来网游作弊等。抓包工具可以在Windows、Unix等各种平台运行网络监听软件,主要是针对TCP/IP协议的不安全性对运行该协议的机器进行监听。本节将介绍数据抓包原理及工具。
数据在网络上以很小的称为帧的单位传输的。帧由几部分构成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就在这个传输和接收过程中,嗅探器(抓包工具)会带来安全方面的问题。本文选自《Wireshark数据抓包分析(网络协议篇)》
每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,如果为广播包,则可达到局域网中的所有机器。如果为单播包,则只能到达处于同一碰撞域中的机器。
在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应。换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据。如果某个工作站的网络接口处于混杂模式,那么它就可以捕获网络上所有的数据包和帧。
在计算机中,可使用的抓包工具有很多,如SmartSniff、Sniffer、HTTP Analyzer、Wireshark等。目前最常用的数据抓包工具就是Wireshark,所以本书以Wireshark抓包工具为例,捕获各种TCP/IP协议数据包。本节将详细介绍Wireshark工具。本文选自《Wireshark数据抓包分析(网络协议篇)》
1.Wireshark简史
Wireshark的历史相当久远,其最初的版本叫做Ethereal,由毕业于密苏里大小堪萨斯城分校计算机科学专业的Gerald Combs出于项目需要而开发,并与1998年以GNU Public Licence(GPL)开源许可证发布。
在发布了Ethereal 8年之后,Combs辞职另谋高就,但是在那个时候他的雇主公司掌握着Ethereal的商标权,而Combs也没能和其雇主就取得Ethereal商标达成协议。于是Combs和整个开发团队在2006年中的时候将这个项目重新命名为Wireshark。
Wireshark随后迅速地取得了大众的青睐,而其合作开发团队也壮大到500人以上。然而之前的Ethereal项目却再也没有前进过一步。
2.Wireshark的优点
Wireshark在日常应用中具有许多优点,无论是针对初学者还是数据包分析专家,Wireshark都能通过丰富的功能来满足用户的需要。下面将介绍Wireshark的一些优点,如下所示:本文选自《Wireshark数据抓包分析(网络协议篇)》
q 支持的协议:Wireshark在支持协议的有很多,目前已经支持超过850种协议。这些协议包括从最基础的IP协议和DHCP协议到高级的专用协议,如AppleTalk和BitTorrent等。由于Wireshark在开源模式下进行开发,每次更新都会增加一些新协议的支持。
q 用户友好度:Wireshark的界面是数据包嗅探工具中最容易理解的工具之一。它基于GUI,并提供了清晰的菜单栏和简明的布局。为了增强实用性,它还提供了不同协议的彩色高亮,以及通过图形展示原始数据细节等不同功能。与tcpdump使用复杂命令行的那些数据包嗅探工具相比,Wireshark的图形化界面对于那些数据包分析的初学者而言,是十分方便的。
q 价格:由于Wireshark是开源的,它在价格上面是无以匹敌的。Wireshark是遵循GPL协议发布的自由软件,任何人无论出于私人还是商业目的,都可以下载并且使用Wireshark。
q 程序支持:一个软件的成败通常取决于其程序支持的好坏。虽然像Wireshark这样的自由分发软件很少会有正式的程序支持,而是依赖于开源社区的用户群。但是幸运的是,Wireshark社区是最活跃的开源项目社区之一。Wireshark网页上给出了许多程序支持的相关链接,包括在线文档、支持与开发wiki、FAQ,并可以注册Wireshark开发者都关注的邮件列表。CACE Technologes通过SharkNet项目也对外提供付费支持。
q 支持的操作系统:Wireshark对主流的操作系统都提供了支持,其中包括Windows、MAC OS X以及基于Linux的系统。本文选自《Wireshark数据抓包分析(网络协议篇)》