logo
首页技术栈工具库讨论
bwctl
bwctl
BWCTL BWCTL is a command line client application and a scheduling and policy daemon that wraps the network measurement tools, including Iperf, Iperf3, Nuttcp, Ping, Traceroute, Tracepath, and OWAMP. These tests can measure maximum TCP bandwidth, with various tuning options available, as well as the delay, jitter, and loss rate of a network. The BWCTL client application works by contacting a BWCTL server process on the two test endpoint systems. BWCTL will work as a 3-party application. The client can arrange a test between two servers on two different systems. If the local system is intended to be one of the endpoints of the test, the BWCTL client will detect whether a local BWCTL server is running and will handle the required server functionality if needed. The BWCTL server manages and schedules the resources of the host on which it runs. The BWCTL client is used to request the type of measurement test wanted. Furthermore, it requests when the test should be executed. The BWCTL server either responds with a tentative reservation or a test denied message. Once the BWCTL clent is able to get a matching reservation from both BWCTL servers (one for each host involved in the test), it confirms the reservation. Then, the BWCTL servers run the test and return the results. The results are returned to the client from both sides of the test. Additionally, the BWCTL servers share the results from their respective sides of the test with each other. BWCTL is used to enable non-specific measurement tests to a host without having to give full user accounts on the given system. Users want the ability to run measurement tests to determine the achievable or available bandwidth, path, one-way latency or loss between a pair of hosts. It is often useful to test to multiple points along a network path to determine the network characteristics along that path. Typically, users who want to do this path decomposition have to contact the network/system administrators that control the hosts along the path directly. The administrator needs to either run half of the test for the user or provide a user account on the host. Also, network paths of interest usually are controlled by multiple administrators. These hurdles have made this kind of testing difficult in practice. BWCTL was designed to help with this problem. It allows an administrator to configure a given host as a measurement endpoint that can be shared by multiple users without concern that those users will interfere with each other. Specific policy limits can be applied to specific users, and individual tests are scheduled so they will not interfere with each other. BWCTL allows the administrator to classify incoming connections based upon a user name and AES key (generated by a pass phrase) combination or, alternatively, based upon an IP/netmask. Once the connection is classified, the BWCTL server can determine the exact type and intensities of measurement tests that will be allowed. (More details on the policy controls can be found in the bwctld.limits(8) manual page.) Features Support for Iperf, Iperf3 and Nuttcp tests. Support for Ping tests. Support for OWAMP (One-Way Latency) tests. Support for Traceroute and Tracepath tests. Full IPv6 support. No options needed. If the target of a test is specified by a DNS hostname, and that name has both an IPv4 and an IPv6 address defined, the the BWCTL client prefers the IPv6 address. Data from both sides of the test is returned so that sending side measurements can be compared with receiving side. Third party communication is supported. The client does not have to be on one of the test endpoint hosts. A local BWCTL server is not required.