Bandwidth Test

Document revision 1.4 (06-Aug-2003)
This document applies to MikroTik RouterOS v2.7

Table of Contents

Summary

The Bandwidth Tester can be used to monitor the throughput only to a remote MikroTik router (either wired or wireless) and thereby help to discover network ‘bottlenecks’.

Specifications

Packages required : system
License required : Any
Home menu level : /tool
Protocols utilized : TCP (RFC793, UDP (RFC768)
Hardware usage: high

Related Documents

Software Package Installation and Upgrading

Description

Protocol Description

The TCP test uses the standard TCP protocol with acknowledgments and follows the TCP algorithm on how many packets to send according to latency, dropped packets, and other features in the TCP algorithm. Please review the TCP protocol for details on its internal speed settings and how to analyze its behavior. Statistics for throughput are calculated using the entire size of the TCP packet. As acknowledgments are an internal working of TCP, their size and usage of the link are not included in the throughput statistics. Therefore this statistic is not as reliable as the UDP statistic when estimating throughput.

The UDP tester sends 110% or more packets than currently reported as received on the other side of the link. To see the maximum throughput of a link, the packet size should be set for the maximum MTU allowed by the links – usually this is 1500 bytes. There is no acknowledgment required by UDP; this implementation means that the closest approximation of the throughput can be seen.

Usage Notes

!Caution! Bandwidth Test uses all available bandwidth (by default) and may impact network usability.

Bandwidth Test uses much resources. If you want to test real throughput of a router, you should run bandwidth test through it not from or to it. To do this you need at least 3 routers connected in chain: the Bandwidth Server, the given router and the Bandwidth Client:

BS-R-BC

Server Configuration

Submenu level : /tool

[admin@MikroTik] tool bandwidth-server> print
		    enabled: no
	       authenticate: yes
    allocate-udp-ports-from: 2000
	       max-sessions: 10
[admin@MikroTik] tool>

Property Description:

enable (yes | no; default: no)- enable client connections for bandwidth test
authenticate (yes | no; default: yes)- communicate only with authenticated (by valid username and password) clients
allocate-udp-ports-from (1000...64000; default: 2000)- allocate UDP ports from
max-sessions (1...1000; default: 10) - maximal number of bandwidth-test clients

Notes

The list of current connections can be get in session submenu:
[admin@MikroTik] tool> bandwidth-server session print
  # FROM            PROTOCOL DIRECTION USER
  0 10.0.0.168      udp      send

[admin@MikroTik] tool>

Example

To enable bandwidth-test server without client authentication:
[admin@MikroTik] tool bandwidth-server> set enabled=yes authenticate=no
[admin@MikroTik] tool bandwidth-server> print
		    enabled: yes
	       authenticate: no
    allocate-udp-ports-from: 2000
	       max-sessions: 10
[admin@MikroTik] tool>

Client Configuration

Command name : /tool bandwidth-test

Property Description

address (IP address) - IP address of destination host
assume-lost-time (time; default: 0s) - assume that connection is lost if Bandwidth Server is not responding for that time
direction (receive/transmit/both; default: transmit) - the direction of the test
do (name | string; default: "") - script source
duration (time; default: 0s) - duration of the test

  • 0s - test duration is not limited
    interval (20ms...5s;; default: 1s)- delay between reports (in seconds)
    local-tx-speed (integer; default: 0)- transfer test maximum speed (bits per second)
  • 0 - no speed limitations
    password (string; default: "") - password for remote user
    protocol (udp | tcp; default: tcp)- protocol to use
    remote-tx-speed (integer; default: 0)- receive test maximum speed (bits per second)
  • 0 - no speed limitations
    size (50..1500; default: 512) - packet size in bytes (only for UDP protocol)
    user (name; default: "") - remote user

    Example

    To run 15-second long bandwidth-test to the 10.0.0.211 host sending and receiving 1000-byte UDP packets and using username admin to connect
    [admin@MikroTik] tool> bandwidth-test 10.0.0.211 duration=15s direction=both \
    \... size=1000 protocol=udp user=admin
                    status: done testing
                    duration: 15s
                  tx-current: 3.62Mbps
        tx-10-second-average: 3.87Mbps
            tx-total-average: 3.53Mbps
                  rx-current: 3.33Mbps
        rx-10-second-average: 3.68Mbps
            rx-total-average: 3.49Mbps
    
    [admin@MikroTik] tool>
    


    © Copyright 1999-2003, MikroTik