-
Notifications
You must be signed in to change notification settings - Fork 0
malloc-free/fastuserprotocol
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Version 0.1.24 of TestBed, authored by Michael Holmwood TestBed carries out tests on 5 different protocols: TCP, UDP, UDT, uTP and DCCP. The implementations for TCP, UDP and DCCP are those found in the Linux kernel. The author for the UDT lib is Yunhong Gu, and is provided in this project as a shared library. The uTP lib is provided by BitTorrent, Inc. The licences for each can be found in the lib directory. Machine Requirements: Large file sizes will require that much free memory for the tests to run properly (reading from swap will affect the results somewhat). Also requirded will be disk space to hold this file (as each file of a particular size is generated once, and saved to disk, to be read later if the same sized file is used for testing). Dependencies: The TestBed does have a couple of dependencies, one of which is going to be redundant soon, and removed. doxygen: To create the documentation, doxygen needs to be installed. On debian just run: apt-get install doxygen. cccc: To create the metrics file, the program cccc is required. This has not been included in the 'all' target. It generates a file called 'metrics.html' and a directory called .cccc. Information on cccc can be found at: cccc.sourceforge.net. Building: make or make all creates the executable (TestBed), shared library (libtb.so.1.0) and the documentation (doc/). make executable and make shared will make the executable and shared library separately. make doxygen will create the documentation. Install just appends the location of the shared library to your LD_LIBRARY_PATH. Running the binary: To run a server, use: TestBed server [bind_address] [bind_port] [protocol: tcp | udp | utp | udt | dccp] [pack_size] To run a client, use: TestBed client [remote_address] [remote_port] [protocol: tcp | udp | utp | udt | dccp] [pack_size] size [file_size] bind_address/remote_address: The address to bind(server)/connect(client) to. bind_port/remote_port: The port to bind(server)/connect(client) to. protocol: The protocol to use for testing. pack_size: The maximum size of the buffer used to copy data to the protocol buffer, in bytes. If this is 0, it defaults to 1402 bytes. file_size: The size of the randomly generated file to create/load to use in tests. If a file of that size does not exist on disk, it is generated. These files appear in the directory as .ran files. When used as a shared library, more options become available. These will be available from the commandline in a future release. Using TestBed as a shared library: The struct tb_test_params_t struct can be used to create a tb_listener_t struct, if passed into the tb_create_endpoint function. More information on this struct is contained in the documentation (doc dir). tb_ex_get_stats can be used for stat collection. This information is collected every 100ms, and blocks until new information is available. Outdated information is overwritten. Future revisions will use a linked list to store unread information. This information is provided in a struct called tb_prot_stats_t, and detailed info on this is in the documentation. A listener struct created in this fashion is *not* destroyed on completion of a test, so it is up to an external application to call tb_destroy_listener to free up memory for this struct. This could potentially be a real problem, as this struct contains the data used in the test, and for large files (read: 1GB) memory will disappear very quickly. We keep the data, as it may prove useful for external applications.
About
C developed program to test the performance of different network protocols.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published