D-ITG简介
D-ITG(分布式互联网流量生成器)是一个能够在数据包级别产生流量的平台,能够准确地复制IDT(出发间时间)和PS(数据包大小)随机变量(指数,均匀,柯西,正态,帕累托等)的适当随机过程。
D-ITG 支持 IPv4 和 IPv6 流量生成,并且能够在网络、传输和应用层生成流量。
D-ITG 目前支持以下操作系统:
- Linux (Ubuntu, Debian, Fedora, CentOS, OpenWRT)
- Windows (XP, Vista, 7)
- OSX (Leopard)
- FreeBSD
D-ITG的核心功能由ITGSend和ITGRecv提供。 ITGSend是负责生成流向ITGRecv的流量的组件。 利用多线程设计,ITGSend可以向多个ITGRecv实例发送多个并行流量,ITGRecv可以从多个ITGSend实例接收多个并行流量。 在每对 ITGSend 和 ITGRecv 组件之间创建一个信令通道,以控制它们之间所有流量的生成。
ITGSend和ITGRecv可以选择生成日志文件,其中包含有关每个发送和接收数据包的详细信息。 此类日志可以保存在本地或通过网络发送到ITGLog组件(可用于在单个点收集所有测量值,或者在存储能力有限的主机(例如传感器,嵌入式设备,智能手机等)的情况下收集所有测量值)。 ITGDec 组件负责分析日志文件,以提取与流量相关的性能指标。
快速入门
获得 D-ITG 二进制文件后,按照第2 节中报告的说明, 您已准备好开始使用 D-ITG。 在这里,我们展示了一个快速入门示例,其中所有组件都在同一主机上执行并通信 使用环回接口:
- 打开控制台,输入包含 D-ITG 二进制文件的文件夹,然后运行 ITGRecv 组件:
$ ./ITGRecv
- 打开第二个控制台,然后从同一文件夹中运行 ITGSend 组件:
$ ./ITGSend -T UDP -a 127.0.0.1 -c 100 -C 10 -t 15000 \ -l sender.log -x receiver.log
这样,ITGSend将生成一个具有恒定有效负载大小(100字节)和恒定数据包速率(10 pps)的UDP流,持续时间15 秒 (15000 毫秒),将在发送方(-l 选项)和 接收器(-x 选项)侧生成日志文件。
- 现在要分析同一文件夹中的日志,请依次对两个日志运行 ITGDec 组件:
$ ./ITGDec sender.log $ ./ITGDec receiver.log
这两种情况下的结果应类似于以下结果:
-
---------------------------------------------------------- Flow number: 1 From 127.0.0.1:44225 To 127.0.0.1:8999 ---------------------------------------------------------- Total time = 14.944263 s Total packets = 150 Minimum delay = 0.000000 s Maximum delay = 0.000000 s Average delay = 0.000000 s Average jitter = 0.000000 s Delay standard deviation = 0.000000 s Bytes received = 15000 Average bitrate = 8.029837 Kbit/s Average packet rate = 10.037297 pkt/s Packets dropped = 0 (0.00 %) Average loss-burst size = 0.000000 pkt ----------------------------------------------------------
__________________________________________________________ **************** TOTAL RESULTS ****************** __________________________________________________________ Number of flows = 1 Total time = 14.944263 s Total packets = 150 Minimum delay = 0.000000 s Maximum delay = 0.000000 s Average delay = 0.000000 s Average jitter = 0.000000 s Delay standard deviation = 0.000000 s Bytes received = 15000 Average bitrate = 8.029837 Kbit/s Average packet rate = 10.037297 pkt/s Packets dropped = 0 (0.00 %) Average loss-burst size = 0 pkt Error lines = 0 ----------------------------------------------------------
-
ITGSend可以以三种不同的模式启动。
单流模式:从命令行读取要生成的单流 -
$ ./ITGSend [log_opts] [sig_opts] [flow_opts] [misc_opts] [ [idt_opts] [ps_opts] | [app_opts] ]
- 多流模式:从脚本文件中读取要生成的流量
$ ./ITGSend <script_file> [log_opts]
- 守护程序模式:作为守护进程运行,使用 ITGapi 进行远程控制
$ ./ITGSend -Q [log_opts]