BWPing
BWPing is a tool to measure bandwidth and response times between two hosts using Internet Control Message Protocol (ICMP) echo request/echo reply mechanism.[1] It does not require any special software on the remote host. The only requirement is the ability to respond on ICMP echo request messages.[2] BWPing supports both IPv4 and IPv6 networks.[3]
Developer(s) | Oleg Derevenetz |
---|---|
Stable release | 2.5
/ February 20, 2022 |
Written in | C |
Operating system | Cross-platform |
Available in | English |
Type | Network traffic simulation |
License | BSD license |
Website | bwping.sourceforge.io |
Command syntax
bwping [ -4 | -6 ] [ -B bind_addr ] [ -I ident ] [ -T tos(v4) | traf_class(v6) ] [ -r reporting_period ] [ -u buf_size ] -b kbps -s pkt_size -v volume target bwping6 [ -4 | -6 ] [ -B bind_addr ] [ -I ident ] [ -T tos(v4) | traf_class(v6) ] [ -r reporting_period ] [ -u buf_size ] -b kbps -s pkt_size -v volume target
Available options are:
- -4 - Forces IPv4 mode. Default mode of operation is IPv4 for bwping and IPv6 for bwping6 otherwise.
- -6 - Forces IPv6 mode. Default mode of operation is IPv4 for bwping and IPv6 for bwping6 otherwise.
- -B - Sets the source address of outgoing ip packets. By default the address of the outgoing interface will be used.
- -I - Sets the Identifier value of outgoing ICMP Echo Request packets. If zero, the value of the lower 16 bits of the process ID will be used (default).
- -T - Sets the TOS value of outgoing IPv4 packets or IPv6 Traffic Class value of outgoing IPv6 packets. Default value is zero.
- -r - Sets the interval time in seconds between periodic bandwidth, RTT, and loss reports. If zero, there will be no periodic reports (default).
- -u - Sets the size of the socket send/receive buffer in bytes. If zero (default), the system default will be used. Tune this parameter if the speed measurement results are unexpectedly low or packet loss occurs.
- -b - Sets the transfer speed in kilobits per second.
- -s - Sets the size of ICMP packet (excluding IPv4/IPv6 header) in bytes.
- -v - Sets the volume to transfer in bytes.
License
This utility is available under BSD License.
Notes
Although BWPing does not require any special software on the remote host (only the ability to respond on ICMP echo request messages), there are some special requirements to network infrastructure, local and remote host performance:
- There should be no ICMP echo request/reply filtering on the network; this includes quality of service (QoS) mechanisms (which often affects ICMP) at any point in the testing path.
- Local host should have enough CPU resources to send ICMP echo request messages with given rate, and remote host should quickly respond on these messages and should have no ICMP bandwidth limiting turned on.
- Each bwping and bwping6 process should use its own ICMP Echo Request Identifier value to reliably distinguish between ICMP Echo Reply packets destined for each of these processes.
If some of these requirements are not satisfied then the measurement results will be inadequate or fail completely. In general, for testing bandwidth where QoS is implemented, always test with traffic that matches the QoS class to be tested.
See also
References
- Aaron McConnell; Gerard Parr; Sally McClean; Philip Morrow; Bryan Scotney (May 27, 2013). CloudState: End-to-end WAN Monitoring for Cloud-based Applications. pp. 195–200. ISBN 9781612082714.
- Suleiman Y. Yerima; Gerard Parr; Sally Ida McClean; Krishna M. Sivalingam (June 1, 2011). "Design and Implementation of a Measurement-Based Policy-Driven Resource Management Framework For Converged Networks".
- Bruce Simpson (June 21, 2016). Multihoming with ILNP in FreeBSD (Thesis). University of St Andrews. hdl:10023/8681.