开源网络分析工具 TCP Traffic Analyzer

  • 崔康

2010 年 5 月 11 日

话题:Java开源DevOps语言 & 开发架构

Yahoo 最近在其开发者博客上发布了一款开源网络分析工具TCP Traffic Analyzer(yconalyzer),读者可以借此分析网络应用在服务器端与客户端之间的运行状态。

TCP Traffic Analyzer 的几个显著分析功能包括:

  • 持续时间超过(或者小于)某阈值的 TCP 连接数。
  • 尝试次数超过 N 次才成功的 TCP 连接数。
  • TCP 连接持续时间和吞吐量的分布情况。
  • 数据包超过 N 字节的 TCP 连接分布情况。
  • 持续时间在特定阈值内的 IP 地址和端口分布情况。

Yahoo 公司内部使用 yconalyzer 分析来自世界各地(通过 HTTP、POP、IMAP 和 SMTP 协议)的网络通信,其工作原理是利用开源libpcap包从网络驱动中抓取数据包,并通过限制数据过滤条件来最小化系统资源(如 CPU)的消耗,使该监控软件不会影响真正的网络应用。

Yconalyzer 保持与tcpdump兼容,两者生成的抓取文件能够彼此识别和分析。Yconalyzer 支持 tcpdump 的所有过滤条件,并适用于 TCP 协议之上的所有网络协议,如 HTTP、SMTP、POP、IMAP 等等。

Yconalyzer 使用起来非常简便,只需通过命令行操作,如抓取 300 秒内 80 端口的数据包保存到到 http.pcap 文件,命令如下:

yconalyzer -p 80 -w http.pcap -t 300

在抓取完数据之后,开发人员可以通过 tcpdump 或者 yconalyzer 分析 TCP 数据包,命令如下:

yconalyzer -p 80 -r http.pcap

Yconalyzer 会根据不同的选项显示出不同的分析结果,如图 1 所示。

图 1. 按照吞吐量分类(来源:sourceforge)

感兴趣的读者可以通过 TCP Traffic Analyzer(yconalyzer)的官方站点了解并下载试用。

Java开源DevOps语言 & 开发架构