Tests

Linknesis supports throughput tests via iperf3 and route tests via native MTR.

MTR tests

MTR (My Traceroute) sends probe packets to each hop and reports latency and packet loss. Supported options:

  • Protocol: ICMP, UDP, TCP
  • IPv4 and IPv6 targets, with all three protocols on both Linux and Windows Probes
  • Configurable counts, interval, first TTL, max TTL
  • DNS resolution toggle
  • Default ports: 33434 for UDP, 80 for TCP

Probes send one consolidated report per MTR cycle, reducing WebSocket and webhook traffic. The Core does not keep a per-cycle history; instead it merges each cycle into a single running aggregate per hop (sent/received counts, min/avg/max/last latency, loss percentage), so a permanent MTR test running for months stays a fixed handful of documents instead of growing without bound. This aggregate is what the Hop Profile chart, summaries, and AI analysis all read from.

iperf3 tests

Throughput tests use the system iperf3 executable. Supported options:

  • Protocol: TCP or UDP
  • IPv4 and IPv6 targets
  • Duration, bandwidth limit, parallel streams
  • Reverse and bidirectional modes (mutually exclusive - iperf3 itself rejects a test with both set)
  • Custom ports, DSCP, zerocopy, report interval, and a configurable warm-up (omit) period excluded from summaries

When the target is another Probe, the Core coordinates the destination Probe to run iperf3 -s and the source Probe to connect as a client. The Core retries server startup up to five times and adds a short grace period before launching the client.

In bidirectional mode, the summary and charts report the upload and download directions separately. A few fields only apply to one direction (for example jitter or retransmits), so they're shown only where they're meaningful. UDP tests also report Out of Order packet counts, available once the test completes.

Inter-probe tests

For tests between two Probes, select a source Probe and a destination Probe in the GUI (or pass destination_probe in the API). The Core resolves the destination to the chosen IPv4 or IPv6 address, starts the server, and tells the source Probe where to connect. Probes with both address families appear once per family in the destination dropdown, so you can test the IPv4 and IPv6 paths independently.

If the destination cannot accept inbound iperf3 connections (for example a Probe behind NAT), start the test from the NATed Probe with reverse=true so it acts as the iperf3 client.

Test lifecycle

Tests can be paused, resumed, or stopped from the results page:

  • Pause stops the Probe execution, records progress offsets, and marks the test paused.
  • Resume rebuilds the parameters with the remaining counts or duration and continues the run.
  • Stop Now computes a final summary from results collected so far and marks the test completed.

Permanent tests restart automatically after a Probe or Core reboot. iperf3 results are stored in a MongoDB time-series collection with configurable TTL retention; MTR results are stored in the per-hop running aggregate described above, with the same configurable retention window.

Reconnects and automatic retry

If a Probe involved in a fixed-duration test disconnects - for example during a routine Probe or Core update, a brief network blip, or a reboot - the test now pauses and automatically resumes once the Probe reconnects, instead of failing outright. This can happen up to five times per test; a test that keeps getting interrupted beyond that is marked failed. If the Probe never reconnects within 30 minutes, the test is also marked failed rather than staying paused indefinitely. Deliberately disabling or deleting a Probe still fails any of its in-flight tests immediately, since there is no future reconnect to wait for.

Permanent (unlimited) tests already tolerated disconnects this way, with no limit on how many times they can resume.

The results page shows how many times a test has reconnected in its Reconnects summary line, noting separately how many of those were caused by an automatic Probe update when that can be detected. The iperf3 charts also mark disconnect and reconnect points along the timeline.

Unlimited tests

Set the iperf3 duration or the MTR counts to 0 to run a test with no end ("Forever"). Unlimited tests run until you stop them and are automatically treated as permanent: they survive Probe reboots and Core restarts and resume on their own.

Results page

The test results page shows:

  • Test parameters and DNS resolution card (FQDN targets only)
  • Live ECharts graphs for iperf3 bandwidth and protocol health, or MTR hop latency and loss
  • Paginated interval and hop tables
  • A summary panel that updates roughly every 5 seconds while the test is still running (tagged "Live"), then a final summary computed from the complete results once the test finishes - including a Reconnects count, see Reconnects and automatic retry
  • Pause, Resume, Stop Now, and Clone Test actions
  • Three download buttons for the underlying data: PDF (captures exactly what's currently on screen - the loaded history range and any chart zoom - into a printable report), JSON (the full per-interval result stream for iperf3, or the current per-hop aggregate, labeled "Download Hop Summary," for MTR), and for iperf3 tests only, TXT (the same results rendered as iperf3's own classic human-readable --timestamps text table)
  • A direct link to webhook logs for the test

Clone a test

Use the Clone Test button on a finished test to pre-fill the test creation form with the same source, destination, type, and parameters. This is useful for repeating a failing test with identical settings.

© Linknesis. Documentation for the Linknesis network monitoring platform.