2009. 4. 14. 16:23

D-ITG 사용방법

D-ITG, Distributed Internet Traffic

D-ITG (Distributed Internet Traffic Generator) is a platform capable to produce traffic at packet level accurately replicating appropriate stochastic processes for both IDT (Inter Departure Time) and PS (Packet Size) random variables (exponential, uniform, cauchy, normal, pareto, ...).


[ fedora 8에서 installation ]
 1. 아래서 download 받는다
   - http://www.grid.unina.it/software/ITG/download.php
   - 버전 : D-ITG-2.6.1d     Linux and Windows source code (zip format)
 2. 압축을 풀고 해당 디렉토리의 install 파일을 참조한다.
  a. Type "make" in the "src" directory
  b. Fedora 10에서는 에러가 발생하는데 fedora 8에서 설치하고 bin 디렉토리의 파일을 Fedora 10으로 copy해서 사용가능 하더라

 [ 사용방법 - windows ]
 1. D-ITG GUI를 쓰면 쉽게 사용 가능하다
   a. GUI를 사용하기 위해서 bin 디렉토리의 D-ITG GUI 버전(java)을 사용한다.
     - java -jar itggui.jar 처럼 실행시킨다.  또는 설치 디렉토리의 ITGGUI.jar 파일을 실행시키면 된다.
   b. 아래 GUI의 Information tab에서 상태를 볼수 있다.
    - Sender를 On 했을때 정상적으로 커넥션이 연결되었다던지 에러라던지 메시지 출력됨
  

 2. 트래픽 보내고 받는 방법
  a. Define flow에서 보낼 트래픽 특성을 설정한다.
     - Inter-departure option에서 아래 값을 설정하여 초당 전송되는 트래픽의 양을 조절한다
       : Time Option(packet개수/sec), Size Option(1024, packet size)
     - Header option에서 Protocol(UDP or TCP)로 설정한다.
  b. Sender 버튼을 누르면 트래픽이 전송되기 시작한다.
  c. 받는 쪽에서는 Receiver 버튼을 누르면 트래픽이 들어온다.
     아래 그림 처럼 listening on port:8999 메시지가 출력되면 정상적으로 트래픽이 들어오기 시작한다.
    - Receiver 가 Run되어 있어야 Sender를 on 했을때 동작한다.
      그렇지 않으면 에러가 발생한다.
    - 트래픽을 보내다 다시 보낼때는 Receiver/Sender를 stop/run을 다시 해준다.

3. Linux에서 CLI로 Sender 설정하기
  a. cli에서 사용할때는 bin 디렉토리의 ITGSend/ITGReceive 명령으로 사용 가능하다.
  b. 설정 보기
    - ITGSend -a xxx.xxx.xxx.xxx(받는 쪽 IP) -t 3600000 -C 1000 -c 1000
     - ITGSend -a xxx.xxx.xxx.xxx -t 3600000 -C 1000 -c 1000 -T TCP
  c. ITGsend 사용 스크립트

4. Analyzer 사용하기(트래픽 통계 및 packet loss, delay, jitter등)
 a. Setting 부분에서 아래 그림처럼 확인한다.
   - Local Receive Option에서 Logging Type을 Local로 설정
   - Logging file 이름을 확인한다.

 b. Analyzer 탭에서 결과를 확인할 수 있다.
  - Receive를 선택하면 데이터가 들어오기 시작한다.(물론  Server에서 데이터를 전송하고 있어야 한다)
  - Logger 버튼을 눌러서 Logging이 시작되도록 한다.
  - Run Analyzer 버튼을 누르면 그때까지 저장된 데이터(itgrecv.log)를 통계를 내준다.
  ** 간혹 계속해서 이전 데이터만 보여지고 Update 안되는 경우가 있다. 
  ** 이때는 기존 itgrecv.log 파일을 지워주고 재 실행시켜보면 된다.
  
   c. 실행결과
----------------------------------------------------------
Total time               =     33.749000 s
Total packets            =         12050
Minimum delay            =      0.487666 s
Maximum delay            =      0.506448 s
Average delay            =      0.491283 s
Average jitter           =      0.002436 s
Delay standard deviation =      0.001635 s
Bytes received           =      16870000
Average bitrate          =   3998.933302 Kbit/s
Average packet rate      =    357.047616 pkt/s
Packets dropped          =             0 (0.00 %)
----------------------------------------------------------
  5. 기타
  a. UDP 에서 packet size가 너무 작으면 성능이 나오지 않는다.
   : packet size 를 200이상으로 해라
  b. 사용법(ITGSend -h)
    -C <pkts_per_s> -E <average_pkts_per_s> -c <pkt_size>
    -u <min_pkt_size> <max_pkt_size> -e <average_pkt_size>
    -a <destination_address> -T <protocol_type

 6. Other Internet Traffic Generators
   http://www.grid.unina.it/software/ITG/link.php