ZT - UNIX 网络协议的深度分析(4)

使用一个协议分析器

虽然,正如之前提到的,诸如 tcpdump、iptrace 和 snoop 等工具都提供了基本的网络分析和解码功能,但是还有一些基于 GUI 的工具使这个过程更简单。Wireshark 就是其中一个工具,它支持大量的网络协议解码和分析。

[@more@]

使用一个协议分析器

虽然,正如之前提到的,诸如 tcpdump、iptrace 和 snoop 等工具都提供了基本的网络分析和解码功能,但是还有一些基于 GUI 的工具使这个过程更简单。Wireshark 就是其中一个工具,它支持大量的网络协议解码和分析。

Wireshark 的最主要优点之一是您可以捕捉一段时间内的数据包(如 tcpdump 一样),然后基于不同的协议、端口和其他数据交互地分析和过滤内容。Wireshark 也支持大量的协议解码器,这使您能够检查每分钟内数据包和会话的详细内容。

您可以看到 Wireshark 的简单截图显示了所有类型的所有数据包,如 图 1 所示。这个窗口分成三个主要部分:过滤的数据包列表、解码的协议明细和 HEX/ASCII 格式的原始数据包数据。


图 1. Wireshark 界面
Wireshark 界面接口

作为 Wireshark 工具所提供的一个级别的信息和解码的例子,在撰写本文时我注意网络中的一个 MySQL 服务器返回了一些错误数据包。

为了专注于内容,我首先对输出应用了 MySQL 过滤。您可以通过在 Filter 输入框中输入一个表达式(类似于 tcpdump、snoop 或 iptract)。或者,您可以单击 Expression 按钮,然后从内置的列表的中选择一种过滤。您可以在 图 2 中看到一组示例过滤。一旦您选择了某个过滤,单击 Apply 就可以过滤数据包列表。


图 2. 选择一个 Wireshark 过滤
选择一个 Wireshark 过滤的截图

通过过滤 MySQL 协议,我能够确定错误的数据包。MySQL 协议会传到一个带有错误信息的特殊数据包类型。在这里,错误 1242 表示查询操作失败,由于子查询有问题。您可以通过展开 Wireshark 窗口的 MySQL 协议部分查看 MySQL 协议的内容,如 图 3 所示。


图 3. 检查一个 MySQL 错误数据包
检查一个 MySQL 错误数据包的截图

在这里我们可以看到错误的明细。通过跟踪之前的 ‘Request Query’ 数据包,我们就可能确定出导致产生错误响应的查询(图 4)、


图 4. 导致产生错误响应的 MySQL 查询
导致产生错误响应的 MySQL 查询的截图

通过分析数据包,我能够识别之前并没有注意的错误代码,并且能够指出这个错误及导致发生问题的查询。

Wireshark 支持广泛的协议和过滤器,您可以用它们获得详细的信息。它的另一个常见用途是监控详细协议的确切内容,如 Web 服务。图 5 显示了一个来自 SOAP 请求用于记录状态信息的详细(且结构清晰的)信息。


图 5. 查看 SOAP Web 服务请求的详细信息
SOAP Web 服务请求的详细信息截图

这些详细信息在调试您使用的任何网络协议时是非常有用的。

Wireshark 的另一个有用的特性是它能够处理即时信息,并且它能够记录信息以备将来过滤和处理。这表示您可以使用它监控某个时期的可疑流量,然后您可以在恰当的时候分析这些信息,以查明您的网络中发生了什么操作。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16896827/viewspace-1036464/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16896827/viewspace-1036464/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值