Giter VIP home page Giter VIP logo

Comments (1)

tonydm avatar tonydm commented on July 22, 2024

@neszt

Thank you for your interest in my Smokeping probe contribution. Mikrotik rounding the ping result isn't super precise, but it's also not uncommon among ping utilities (see examples below). To have microsecond (us) or 1 or more millisecond precision decimal results from a Mikrotik ping you would have to take that up with Mikrotik and it's software engineers. My probe has no direct association with Mikrotik RouterOS, it's simply a tool/probe written to integrate with Smokeping which uses the Mikrotik ping tool.

Some would argue that having microseconds (us or ms.us) results isn't absolutely a deal breaker or even necessary to get a good understanding of a links latency or packet loss. One of the nice things about Smokeping is the "smoke" that can tell you at a glace what the Std Deviation looks like. There are many other tools that can give you more precision. One way ping results can be had using PerfSonar's OWAMP (One Way Ping). Search google and you'll get links to their github page as well as their website.

https://www.perfsonar.net/
https://software.internet2.edu/owamp/owping.man.html
https://github.com/perfsonar/owamp
https://github.com/perfsonar

You can use the FPing probe included with Smokeping to get decimal point precision. But, of course, that sources the pings from the server that is running the Smokeping daemon and negates the benefit of sourcing the pings from the Edgerouter's Public IP, a VLAN gateway, etc and introduces additional "noise" in the ping results. However, in some cases that's exactly what you want, the routed result.

As far as the /tool speed-test you reference. It is interesting. However, it is meant to be used against another MIkrotik's BTest server.

Taken from Mikrotik's WiKi Page: https://wiki.mikrotik.com/wiki/Manual:Tools/Speed_Test

The Speed Test is an easy test tool for measuring ping, jitter, TCP and UDP throughput from one MikroTik device, to another.
"speed-test" command is based on Ping Tool and Bandwidth Test. In order to use this command - Bandwidth test server needs to be accessible.

Having said that, using it against a generic endpoint, 1.1.1.1 for example, does give results (see below). I played around with creating a test probe. It kind of works. The problem is that you can't specify the ping count, packet size, interface or source IP. These are config params valuable to a ping's result. Also, as seen from the /tool speed-test result below, when pinging another IP on the same router it can result in a microsecond result. Smokeping does not process these as microseconds (us) but as milliseconds (ms). This is handled by the Smokeping.pm source file. You would have to direct your question to Tobias (the author of Smokeping) to make any changes to the source or fork the project and make the needed changes yourself.

Since this is an issue not with this probe, but with Mikrotik's Ping tool, this issue will be closed.

Very best :)

Tony

# Microsoft Windows 10 cmd shell

Microsoft Windows [Version 10.0.18363.1139]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\Tony>ping 1.1.1.1

Pinging 1.1.1.1 with 32 bytes of data:
Reply from 1.1.1.1: bytes=32 time=143ms TTL=53
Reply from 1.1.1.1: bytes=32 time=107ms TTL=53
Reply from 1.1.1.1: bytes=32 time=55ms TTL=53
Reply from 1.1.1.1: bytes=32 time=104ms TTL=53

Ping statistics for 1.1.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 55ms, Maximum = 143ms, Average = 102ms

C:\Users\Tony>

# Linux shell ping using fping

tonyd@deepthot:~$ fping -s 1.1.1.1 -c 20
1.1.1.1 : [0], 84 bytes, 117 ms (117 avg, 0% loss)
1.1.1.1 : [1], 84 bytes, 110 ms (113 avg, 0% loss)
1.1.1.1 : [2], 84 bytes, 134 ms (120 avg, 0% loss)
1.1.1.1 : [3], 84 bytes, 148 ms (127 avg, 0% loss)
1.1.1.1 : [4], 84 bytes, 122 ms (126 avg, 0% loss)
1.1.1.1 : [5], 84 bytes, 145 ms (129 avg, 0% loss)
1.1.1.1 : [6], 84 bytes, 137 ms (130 avg, 0% loss)
1.1.1.1 : [7], 84 bytes, 140 ms (131 avg, 0% loss)
1.1.1.1 : [8], 84 bytes, 37.0 ms (121 avg, 0% loss)
1.1.1.1 : [9], 84 bytes, 103 ms (119 avg, 0% loss)
1.1.1.1 : [10], 84 bytes, 105 ms (118 avg, 0% loss)
1.1.1.1 : [11], 84 bytes, 111 ms (117 avg, 0% loss)
1.1.1.1 : [12], 84 bytes, 121 ms (117 avg, 0% loss)
1.1.1.1 : [13], 84 bytes, 124 ms (118 avg, 0% loss)
1.1.1.1 : [14], 84 bytes, 104 ms (117 avg, 0% loss)
1.1.1.1 : [15], 84 bytes, 104 ms (116 avg, 0% loss)
1.1.1.1 : [16], 84 bytes, 99.0 ms (115 avg, 0% loss)
1.1.1.1 : [17], 84 bytes, 104 ms (115 avg, 0% loss)
1.1.1.1 : [18], 84 bytes, 61.7 ms (112 avg, 0% loss)
1.1.1.1 : [19], 84 bytes, 71.2 ms (110 avg, 0% loss)

1.1.1.1 : xmt/rcv/%loss = 20/20/0%, min/avg/max = 37.0/110/148

       1 targets
       1 alive
       0 unreachable
       0 unknown addresses

       0 timeouts (waiting for response)
      20 ICMP Echos sent
      20 ICMP Echo Replies received
       0 other ICMP received

 37.0 ms (min round trip time)
 110 ms (avg round trip time)
 148 ms (max round trip time)
       19.088 sec (elapsed real time)

# Mikrotik Ping

[tonyd@MikroTik] > ping 1.1.1.1 count=20 size=56
  SEQ HOST                                     SIZE TTL TIME  STATUS                                                      
    0 1.1.1.1                                    56  54 116ms
    1 1.1.1.1                                    56  54 133ms
    2 1.1.1.1                                    56  54 107ms
    3 1.1.1.1                                    56  54 123ms
    4 1.1.1.1                                    56  54 119ms
    5 1.1.1.1                                    56  54 134ms
    6 1.1.1.1                                    56  54 145ms
    7 1.1.1.1                                    56  54 121ms
    8 1.1.1.1                                    56  54 131ms
    9 1.1.1.1                                    56  54 113ms
   10 1.1.1.1                                    56  54 122ms
   11 1.1.1.1                                    56  54 123ms
   12 1.1.1.1                                    56  54 106ms
   13 1.1.1.1                                    56  54 136ms
   14 1.1.1.1                                    56  54 122ms
   15 1.1.1.1                                    56  54 145ms
   16 1.1.1.1                                    56  54 133ms
   17 1.1.1.1                                    56  54 99ms 
   18 1.1.1.1                                    56  54 120ms
   19 1.1.1.1                                    56  54 137ms
    sent=20 received=20 packet-loss=0% min-rtt=99ms avg-rtt=124ms max-rtt=145ms 

[tonyd@MikroTik] >

# Mikrotik /tool speed-test

[tonyd@MikroTik] > /tool speed-test address=<my_remote_mikrotik_router> user=<user> password=<password>
      status: done
      time-remaining: 0s
    ping-min-avg-max: 15ms / 114ms / 142ms
  jitter-min-avg-max: 107us / 7.23ms / 65ms
                loss: 0% (0/200)
        tcp-download: 197.4Mbps local-cpu-load:36%
          tcp-upload: 23.79Mbps local-cpu-load:20% remote-cpu-load:0%
          udp-upload: 27.10Mbps local-cpu-load:7% remote-cpu-load:0%

[tonyd@MikroTik] > /tool speed-test address=1.1.1.1                                    
              status: done
      time-remaining: 0s
    ping-min-avg-max: 21.6ms / 54.0ms / 134ms
  jitter-min-avg-max: 24us / 10.9ms / 103ms
                loss: 0% (0/200)

[tonyd@MikroTik] > /tool speed-test address=10.20.0.1                                  
              status: done
      time-remaining: 0s
    ping-min-avg-max: 228us / 247us / 420us
  jitter-min-avg-max: 0s / 10us / 180us
                loss: 0% (0/200)
        tcp-download: authentication failed
          tcp-upload: authentication failed
        udp-download: authentication failed
          udp-upload: authentication failed

[tonyd@MikroTik] >

from smokeping-opensshmikrotikrouterosping.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.