1

I am working on implementation of a proposed modification of TCP Congestion Control algorithm that would allow to improve it (the CC) by adding a dynamic bandwidth estimation.

I have been able (with the help of some smart members of this community) to create a working CC module, that can be loaded into Kernel. Now I would like to test it and compare it with the built in CC algorithms (NewReno, Vegas, Cubic, HTCP) in a hybrid network environment (wired/wireless devices).

What would you recommend me to use to test and compare the performance of these CC algorithms?

I have heard about NS-2, but I would also like to find a tool that can be used for the tests in a real environment to get realistic data.

Thank you in advance!

2 Answers 2

1

Since there was no answer to my question in this forum, I wrote to the freebsd-net mailing group with a similar question and received recommendations to use two tools IMUNES http://imunes.tel.fer.hr/ and TEACUP http://caia.swin.edu.au/tools/teacup/

I have been testing IMUNES for some days now, but I still have not tested TEACUP, so I will provide a short description about it.

IMUNES allows you to create a virtual network, where you can configure everything from node interfaces to routing protocols in routers as well as link settings as speed, bit-error-ratio, delays and duplicate packet percentage. When the experiment is started, the virtualized nodes each have their own file system which is created from files under /var/imunes/vroot/which allows you to change settings to all of the devices at once.

There are some things that are not as obvious (at least for me) at first:

  1. Not supported on FreeBSD-10.1-RELEASE, but works on FreeBSD-9.3-RELEASE
  2. When experiment is started, double-click a node to get the nodes terminal access. You can open as many windows as you like;
  3. System settings that are not set globally, need to be set individually on each node;
  4. When the experiment is terminated, all files and settings created/edited in the virtual node are destroyed, however the files can be accessed while the experiment is running, under /var/imunes/[i*****] where folder for each virtual node is created. You can, of course, use the command find to find the file you are looking for;
  5. If you need to add a program to the virtual nodes, you must use pkg_add_imunes [settings] [name];
  6. Although you can set the BER on a link, this is not the same as packet loss ratio. To set a packet loss ratio, load the dummynet Kernel module with command kldload dummynet and use ipfw to set up the link settings between the nodes.

I will update the list, if there's something more to add to this.

0

@KarlisL In case you missed it, IMUNES recently added Linux support http://imunes.net. It uses Docker for L3 nodes (Quagga in routers) and Open vSwitch for L2 nodes so basically you get "real" Linux machines connected with "real" switches. However, there are some issues with setting the BER etc. via the GUI so you should do it manually inside the node instance.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .