I am working on implementation of a proposed modification of TCPCongestion 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!
Congestion Control algorithm performance testing in FreeBSD
networking;performance;test
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:Not supported on FreeBSD-10.1-RELEASE, but works on FreeBSD-9.3-RELEASEWhen experiment is started, double-click a node to get the nodes terminal access. You can open as many windows as you like;System settings that are not set globally, need to be set individually on each node;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;If you need to add a program to the virtual nodes, you must use pkg_add_imunes [settings] [name];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.