Overview

We implement ImTCP and ImTCP-bg (one of applications using the measurement results of ImTCP) by modifying the FreeBSD version 4.10 kernel system. If you want to use ImTCP(-bg), download the following archive file and rebuild your kernel system.

imtcp_freebsd_4_10 archive file contains:

When you install ImTCP(-bg), the value of HZ becomes important. The accuracy of measurement result depends on the parameter HZ. When HZ is set to large value, you can obtain the bandwidth information more accurately. On the other hand, setting the large value to HZ affects the performance of your system. So when determining the value of HZ, you should consider the trade-off relationship between the accuracy of measurement result and the performance of the system.

For more information you can read [3], and you can change the value of HZ by modifying i386/conf/ImTCP.

Download now

Please visit here.

Installing ImTCP and ImTCP-bg

In this section, we show an example for installing ImTCP(-bg) in your kernel system. When installing ImTCP(-bg), some source files are overwritten. So when you modify the files, be careful.

  1. # cd <$work> (ex. <$work> = ~/work/)
  2. # mkdir sys
  3. # cp -fr /usr/src/sys/* sys
  4. # tar xzvf imtcp_freebsd_4_10_1.0.1.tar.gz
  5. # cp -fr imtcp_freebsd_4_10/* sys
  6. # cd sys/i386/conf
  7. # config ImTCP
  8. # cd ../../compile/ImTCP
  9. # make clean
  10. # make depend
  11. # make
  12. # make install
  13. # reboot

Parameter settings

In this section, we describe parameters of ImTCP(-bg). All parameters are set by sysctl, and the list of parameters is as follow.

net.inet.tcp.imtcp_mode
Measurement mode switch flag (Default:0)
net.inet.tcp.imtcp_streams
Number of streams per measurement (Default:4)
net.inet.tcp.imtcp_packets
Number of packets per stream (Default:10)
net.inet.tcp.imtcp_gamma
Smoothing parameter of measurement result (Default:12)
net.inet.tcp.imtcp_delta
RTT threshold (Default:130)
net.inet.tcp.imtcp_pct_high
Extra parameters for ImTCP (Default:55. used for calculating the available bandwidth)
net.inet.tcp.imtcp_pct_low
Extra parameters for ImTCP (Default:55. used for calculating the available bandwidth)
net.inet.tcp.imtcp_pdt_high
Extra parameters for ImTCP (Default:40. used for calculating the available bandwidth)
net.inet.tcp.imtcp_pdt_low
Extra parameters for ImTCP (Default:40. used for calculating the available bandwidth)

If you use ImTCP and ImTCP-bg, set to the imtcp_mode parameter before begining data transmission.

case of ImTCP: # sysctl net.net.tcp.imtcp_mode=1
case of ImTCP-bg: # sysctl net.inet.tcp.imtcp_mode=3