Tools for troubleshooting the network performance

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
It's actually pretty simple on Docker. But yes, it does need a constantly up device. A PiHole or a NAS is fabulous for this. But running it on your PC isn't too bad since it gives an idea of the PC's connectivity as long as it is up.

I'll drop my sanitised docker-compose.yml file for anyone to modify and use - to shorten the setup time. Stipulate the port you want it to run on
...
The only other files that need to be edited are the 2 files under ./config, General and Targets

A sanitised Targets file. Feel free to modify and use.
...

Nice one. Looks like this will be my next learning exercise for using Docker. Right now my Intel J4105 mini PC is always on, running Ubuntu and then connected to my two routers.

Just wondering if you can add speedtest in the mix to kind of measure the bufferbloat as well, i.e., to provide an option to run smokeping while running speedtest.
 

firesong

Supremacy Member
Deluxe Member
Joined
Jan 17, 2001
Messages
8,815
Reaction score
4,834
Nice one. Looks like this will be my next learning exercise for using Docker. Right now my Intel J4105 mini PC is always on, running Ubuntu and then connected to my two routers.

Just wondering if you can add speedtest in the mix to kind of measure the bufferbloat as well, i.e., to provide an option to run smokeping while running speedtest.
Don't think so. The good (and bad) thing about Docker is that everything is nicely wrapped up. Which also means you can't add it without modifying the image - and any updates will reverse any changes unless you maintain and publish your own images.

Point to note: this Image does not have EchoPingHttp. Quite a bummer since we can't add sites like netflix/D+ on the monitoring list.
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
Don't think so. The good (and bad) thing about Docker is that everything is nicely wrapped up. Which also means you can't add it without modifying the image - and any updates will reverse any changes unless you maintain and publish your own images.
Point to note: this Image does not have EchoPingHttp. Quite a bummer since we can't add sites like netflix/D+ on the monitoring list.

I see. I think it is okay to run a local custimized docker instance with docker-compose.

Anyway, I guess it is still possible to run smokeping while running speedtest continuously on the Linux machine to see if ping values shoot up or not.

The problem with DSLreports and Waveform.com bufferbloat test is that the server is not able to reach high download and upload speed, unlike Ookla speed test servers. So I am thinking to combine Smokeping with SpeedTest.
 

firesong

Supremacy Member
Deluxe Member
Joined
Jan 17, 2001
Messages
8,815
Reaction score
4,834
I see. I think it is okay to run a local custimized docker instance with docker-compose.

Anyway, I guess it is still possible to run smokeping while running speedtest continuously on the Linux machine to see if ping values shoot up or not.

The problem with DSLreports and Waveform.com bufferbloat test is that the server is not able to reach high download and upload speed, unlike Ookla speed test servers. So I am thinking to combine Smokeping with SpeedTest.
They both track different outcomes.

What Smokeping does is to ping a server 20 times every 300s and chart the averages, so you get a nice graph over time that shows the outcome of that simple process. With the DNS probe, instead of merely pinging the DNS servers (which you can do), it calculates DNS resolution times and charts that instead. It's usually a combination of both that make it useful for web surfing - having a fast ping to a server that is slow to resolve could be worse than having a slightly slower ping to a server but resolves fairly quickly. All in, Cloudflare and Google have proven to be fairly reliable based on what I've observed the past year. That's why you see DNS (Pings) and DNS Probes (DNS Resolution) in my sample above. Personally, I find the Probes more useful than simple pings but I leave it.

Suddenly high pings tell us that there could be routing problems, so we should start looking into why. Hence it's one of many tools you can use to track server latency for work purposes, especially if you have servers located offshore (eg Malaysia, Indonesia...) It could also be an indicator that the server is suddenly overwhelmed and not processing info so not responding to pings effectively - so it's just a dead man switch of sorts.

I just added some AWS servers for fun, since a good chunk of the internet is powered by AWS anyway.

You can tweak the settings if you want to aggressively monitor a server for a while, but I don't really recommend hitting servers too hard - instead, I might halve it to 10 pings every 5 mins instead.

Speedtest just has a quick and dirty speed test to see if there might be a problem with the connection. While less useful now, it's still a fair indicator if there could be problems. But speed isn't the only measure of good internet, and is useless as long as our ISPs prioritise traffic to these speedtest servers anyway. It's just a very basic one-off troubleshooting step that tells us very little.
 

bert64

Senior Member
Joined
Jan 20, 2020
Messages
1,027
Reaction score
539
They both track different outcomes.

What Smokeping does is to ping a server 20 times every 300s and chart the averages, so you get a nice graph over time that shows the outcome of that simple process. With the DNS probe, instead of merely pinging the DNS servers (which you can do), it calculates DNS resolution times and charts that instead. It's usually a combination of both that make it useful for web surfing - having a fast ping to a server that is slow to resolve could be worse than having a slightly slower ping to a server but resolves fairly quickly. All in, Cloudflare and Google have proven to be fairly reliable based on what I've observed the past year. That's why you see DNS (Pings) and DNS Probes (DNS Resolution) in my sample above. Personally, I find the Probes more useful than simple pings but I leave it.

Suddenly high pings tell us that there could be routing problems, so we should start looking into why. Hence it's one of many tools you can use to track server latency for work purposes, especially if you have servers located offshore (eg Malaysia, Indonesia...) It could also be an indicator that the server is suddenly overwhelmed and not processing info so not responding to pings effectively - so it's just a dead man switch of sorts.

I just added some AWS servers for fun, since a good chunk of the internet is powered by AWS anyway.

You can tweak the settings if you want to aggressively monitor a server for a while, but I don't really recommend hitting servers too hard - instead, I might halve it to 10 pings every 5 mins instead.

Speedtest just has a quick and dirty speed test to see if there might be a problem with the connection. While less useful now, it's still a fair indicator if there could be problems. But speed isn't the only measure of good internet, and is useless as long as our ISPs prioritise traffic to these speedtest servers anyway. It's just a very basic one-off troubleshooting step that tells us very little.
Graphing DNS resolution has a lot of factors which could influence the outcome... Not only are you testing the latency of your connection to the DNS resolver, but also the latency of the connection from the DNS resolver to the authoritative DNS server of the hostname you are querying, plus the authoritative DNS servers in the entire hierarchy from the root all the way up to the actual hostname.
Then you have the added randomness of wether the host you query and/or any of the hierarchy queries are already present in the cache or not.
 

firesong

Supremacy Member
Deluxe Member
Joined
Jan 17, 2001
Messages
8,815
Reaction score
4,834
Graphing DNS resolution has a lot of factors which could influence the outcome... Not only are you testing the latency of your connection to the DNS resolver, but also the latency of the connection from the DNS resolver to the authoritative DNS server of the hostname you are querying, plus the authoritative DNS servers in the entire hierarchy from the root all the way up to the actual hostname.
Then you have the added randomness of wether the host you query and/or any of the hierarchy queries are already present in the cache or not.
Yep! It's not telling the whole story. But I've still observed spikes over time in DNS resolution in the past year or so of running it. Safe to say it's just a tool that indicates a problem if an observed outcome is abnormal behaviour. That's when we have to start investigating. It's not meant to be something that will tell us the exact details of what the problems might be. Still, having a glimpse at overall resolution timings from start to end is usually good enough for day to day use.

---
This for some PMs that came in. ;)

For those who ask why bother with a Smokeping install, my rationale for using it is more to have a tracker, since I already have an Ubuntu box sitting around hosting some services my family uses - including our own Bitwarden server instance (rather than hosting on a cloud/public service). Like any tool, we can choose not to use it if we don't want to, but if we do use it, it could still be helpful since it's better than not having anything at all. At least we have some basis to go on beyond "my internet suddenly feels slow today".

From personal experience, it has very real value because it gets me past the pesky level 1 call centre folks whose only purpose for existence seems to be stalling and denying customers from getting real help from informed folks by reading the scripts. :( When you show a charted graph over weeks/months that indicate there's a sudden problem, all their troubleshooting routines on their script get thrown out out of the window cos it does not hide the fact that there is a real problem with the network. Especially because we've already done a lot of it ourselves by the time we pick up the phone in desperation for them to fix the problems on their end.
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
It's actually pretty simple on Docker. But yes, it does need a constantly up device. A PiHole or a NAS is fabulous for this. But running it on your PC isn't too bad since it gives an idea of the PC's connectivity as long as it is up.

I'll drop my sanitised docker-compose.yml file for anyone to modify and use - to shorten the setup time. Stipulate the port you want it to run on
Code:
---
version: "2.1"
services:
  smokeping:
    image: linuxserver/smokeping:latest
    container_name: smokeping
    hostname: smokeping
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Singapore
    volumes:
      - ./config:/config
      - ./data:/data
    ports:
      - <openport>:80
#    dns:              # optional if you want to force a DNS server
#      - 1.1.1.1
    restart: unless-stopped

The only other files that need to be edited are the 2 files under ./config, General and Targets

A sanitised Targets file. Feel free to modify and use.
Code:
*** Targets ***

probe = FPing

menu = Top
title = Internet Latency Monitoring
remark = Tham Family Home - SmokePing
 
+ Favourites
menu = Favourites
title = Favourites

++ Google
menu = Google
title = Google
host = google.com

++ YouTube
menu = YouTube
title = YouTube
host = youtube.com

++ Spotify
menu = Spotify
title = Spotify
host = spotify.com

++ Facebook
menu = Facebook
title = Facebook
host = facebook.com

++ WhatApp
menu = WhatsApp
title = WhatsApp
host = whatsapp.com

++ Twitter
menu = Twitter
title = Twitter
host = twitter.com

++ Steam
menu = Steam
title = Steam
host = store.steampowered.com

++ GoogleScholar
menu = Google Scholar
title = Google Scholar
host = scholar.google.com

++ PurdueOWL
menu = Purdue OWL
title = Purdue University Online Writing Lab
host = owl.purdue.edu

++ GoogleSearchIpv6
menu = Google IPv6
probe = FPing6
title = ipv6.google.com
host = ipv6.google.com


+ Global
menu = Global
title = Global Connectivity

++ YahooJP
menu = Yahoo JP
title = Yahoo Japan
host = yahoo.co.jp

++ BBC
menu = BBC
title = British Broadcasting Corporation
host = bbc.co.uk

++ CambridgeUni
menu = Cambridge University
title = Cambridge University
host = cam.ac.uk

#++ UEA
#menu = University of East Anglia
#title = University of East Anglia
#host = www.uea.ac.uk

++ CernIXP
menu = CernIXP
title = Cern Internet eXchange Point
host = cixp.web.cern.ch

#++ SBB
#menu = SBB Swiss Federal Railways
#title = SBB Swiss Federal Railways
#host = www.sbb.ch/en

++ MIT
menu = MIT
title = Massachusetts Institute of Technology
host = web.mit.edu

++ IU
menu = Indiana University
title = Indiana University
host = www.indiana.edu

++ UCB
menu = University of California Berkeley
title = University of California Berkeley
host = www.berkeley.edu

++ UCSD
menu = University of California San Diego
title = University of California San Diego
host = ucsd.edu

++ UMN
menu =  University of Minnesota
title = University of Minnesota
host = twin-cities.umn.edu

++ OSUOSL
menu = Oregon State University OSL
title = Oregon State University Open Source Lab
host = osuosl.org


+ DNS
menu = DNS
title = DNS

++ CloudflareDNS1                              
menu = Cloudflare DNS 1                        
title = Cloudflare DNS 1.1.1.1                  
host = 1.1.1.1                                  
                                               
++ CloudflareDNS2                              
menu = Cloudflare DNS 2                        
title = Cloudflare DNS 1.0.0.1                  
host = 1.0.0.1

++ CloudflareDNS3                              
menu = Cloudflare Family DNS 1                      
title = Cloudflare Family DNS 1.1.1.3                  
host = 1.1.1.1                                  
                                               
++ CloudflareDNS4                              
menu = Cloudflare Family DNS 2                        
title = Cloudflare Family DNS 1.0.0.3                  
host = 1.0.0.1

++ GoogleDNS1
menu = Google DNS 1
title = Google DNS 8.8.8.8
host = 8.8.8.8

++ GoogleDNS2
menu = Google DNS 2
title = Google DNS 8.8.4.4
host = 8.8.4.4

++ OpenDNS1
menu = OpenDNS 1
title = OpenDNS 1
host = 208.67.222.222

++ OpenDNS2
menu = OpenDNS 2
title = OpenDNS 2
host = 208.67.220.220

++ L3-1
menu = Level3 DNS 1
title = Level3 DNS 4.2.2.1
host = 4.2.2.1

++ L3-2
menu = Level3 DNS 2
title = Level3 DNS 4.2.2.2
host = 4.2.2.2

++ Quad9
menu = Quad9
title = Quad9 DNS 9.9.9.9
host = 9.9.9.9


+ DNSProbes
menu = DNS Probes
title = DNS Probes
probe = DNS

++ CloudflareDNS1                              
menu = Cloudflare DNS 1                        
title = Cloudflare DNS 1.1.1.1                  
host = 1.1.1.1                                  
                                               
++ CloudflareDNS2                              
menu = Cloudflare DNS 2                        
title = Cloudflare DNS 1.0.0.1                  
host = 1.0.0.1

++ CloudflareDNS3                              
menu = Cloudflare Family DNS 1                        
title = Cloudflare Family DNS 1.1.1.3                  
host = 1.1.1.1                                  
                                               
++ CloudflareDNS4                              
menu = Cloudflare Family DNS 2                        
title = Cloudflare Family DNS 1.0.0.3                  
host = 1.0.0.1

++ GoogleDNS1
menu = Google DNS 1
title = Google DNS 8.8.8.8
host = 8.8.8.8

++ GoogleDNS2
menu = Google DNS 2
title = Google DNS 8.8.4.4
host = 8.8.4.4

++ OpenDNS1
menu = OpenDNS 1
title = OpenDNS 1
host = 208.67.222.222

++ OpenDNS2
menu = OpenDNS 2
title = OpenDNS 2
host = 208.67.220.220

++ L3-1
menu = Level3 DNS 1
title = Level3 DNS 4.2.2.1
host = 4.2.2.1

++ L3-2
menu = Level3 DNS 2
title = Level3 DNS 4.2.2.2
host = 4.2.2.2

++ Quad9
menu = Quad9
title = Quad9 DNS 9.9.9.9
host = 9.9.9.9

Thanks. I just used the above configuration to get the Smokeping docker up and running.

Just wondering if it is necessary to use the General file. The guide just mentions to edit the Targets file. For General file, maybe the user name and contact need to be updated. Not so sure about the mail server side as I did not set up the mail server.
https://github.com/linuxserver/docker-smokeping
 
Last edited:

firesong

Supremacy Member
Deluxe Member
Joined
Jan 17, 2001
Messages
8,815
Reaction score
4,834
Thanks. I just used the above configuration to get the Smokeping docker up and running.

Just wondering if it is necessary to use the General file. The guide just mentions to edit the Targets file. For General file, maybe the user name and contact need to be updated. Not so sure about the mail server side as I did not set up the mail server.
https://github.com/linuxserver/docker-smokeping
Yep, I edited just those details. Didn't bother with other files.
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
It seems to me Windows iperf3 is not good at the --bidir bidirectional test. Linux seems to be okay.

Server: pve Debian container
Client: laptop dual boot with Windows 11 and Ubuntu 20.04

Linux results -- wired results, not much difference with the normal test ("-R" or no "-R")
Code:
mcuee@UbuntuSwift3:~$ iperf3 -c 192.168.50.6 --bidir
Connecting to host 192.168.50.6, port 5201
[  5] local 192.168.50.49 port 53826 connected to 192.168.50.6 port 5201
[  7] local 192.168.50.49 port 53828 connected to 192.168.50.6 port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec   111 MBytes   932 Mbits/sec    0    537 KBytes      
[  7][RX-C]   0.00-1.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   1.00-2.00   sec   111 MBytes   930 Mbits/sec    0    537 KBytes      
[  7][RX-C]   1.00-2.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   2.00-3.00   sec   108 MBytes   909 Mbits/sec    0    537 KBytes      
[  7][RX-C]   2.00-3.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   3.00-4.00   sec   109 MBytes   914 Mbits/sec    0    561 KBytes      
[  7][RX-C]   3.00-4.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   4.00-5.00   sec   109 MBytes   914 Mbits/sec    0    617 KBytes      
[  7][RX-C]   4.00-5.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   5.00-6.00   sec   109 MBytes   918 Mbits/sec    0    648 KBytes      
[  7][RX-C]   5.00-6.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   6.00-7.00   sec   109 MBytes   912 Mbits/sec    0    648 KBytes      
[  7][RX-C]   6.00-7.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   7.00-8.00   sec   110 MBytes   923 Mbits/sec    0    648 KBytes      
[  7][RX-C]   7.00-8.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   8.00-9.00   sec   109 MBytes   912 Mbits/sec    0    680 KBytes      
[  7][RX-C]   8.00-9.00   sec   112 MBytes   938 Mbits/sec                
[  5][TX-C]   9.00-10.00  sec   109 MBytes   912 Mbits/sec    0    680 KBytes      
[  7][RX-C]   9.00-10.00  sec   112 MBytes   938 Mbits/sec                
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  1.07 GBytes   918 Mbits/sec    0             sender
[  5][TX-C]   0.00-10.00  sec  1.07 GBytes   915 Mbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec  1.09 GBytes   940 Mbits/sec   35             sender
[  7][RX-C]   0.00-10.00  sec  1.09 GBytes   938 Mbits/sec                  receiver

iperf Done.

Wireless speed: --bidir will be slower.
Code:
cuee@UbuntuSwift3:~$ iperf3 -c 192.168.50.6
Connecting to host 192.168.50.6, port 5201
[  5] local 192.168.50.152 port 36548 connected to 192.168.50.6 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   104 MBytes   871 Mbits/sec   96    984 KBytes       
[  5]   1.00-2.00   sec   109 MBytes   912 Mbits/sec   10    786 KBytes       
[  5]   2.00-3.00   sec   108 MBytes   902 Mbits/sec    0    887 KBytes       
[  5]   3.00-4.00   sec   110 MBytes   923 Mbits/sec    0    977 KBytes       
[  5]   4.00-5.00   sec   106 MBytes   891 Mbits/sec    1    790 KBytes       
[  5]   5.00-6.00   sec   109 MBytes   912 Mbits/sec    0    888 KBytes       
[  5]   6.00-7.00   sec   111 MBytes   933 Mbits/sec    0    981 KBytes       
[  5]   7.00-8.00   sec   108 MBytes   902 Mbits/sec   26    764 KBytes       
[  5]   8.00-9.00   sec   109 MBytes   912 Mbits/sec    0    865 KBytes       
[  5]   9.00-10.00  sec   109 MBytes   912 Mbits/sec    0    956 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.06 GBytes   907 Mbits/sec  133             sender
[  5]   0.00-10.01  sec  1.05 GBytes   905 Mbits/sec                  receiver

iperf Done.

mcuee@UbuntuSwift3:~$ iperf3 -c 192.168.50.6 -R
Connecting to host 192.168.50.6, port 5201
Reverse mode, remote host 192.168.50.6 is sending
[  5] local 192.168.50.152 port 36552 connected to 192.168.50.6 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  94.6 MBytes   793 Mbits/sec                 
[  5]   1.00-2.00   sec   112 MBytes   937 Mbits/sec                 
[  5]   2.00-3.00   sec   111 MBytes   930 Mbits/sec                 
[  5]   3.00-4.00   sec   110 MBytes   920 Mbits/sec                 
[  5]   4.00-5.00   sec   112 MBytes   943 Mbits/sec                 
[  5]   5.00-6.00   sec   109 MBytes   916 Mbits/sec                 
[  5]   6.00-7.00   sec   112 MBytes   937 Mbits/sec                 
[  5]   7.00-8.00   sec   110 MBytes   923 Mbits/sec                 
[  5]   8.00-9.00   sec   111 MBytes   932 Mbits/sec                 
[  5]   9.00-10.00  sec   111 MBytes   934 Mbits/sec                 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.07 GBytes   919 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.07 GBytes   916 Mbits/sec                  receiver

iperf Done.

mcuee@UbuntuSwift3:~$ iperf3 -c 192.168.50.6 --bidir
Connecting to host 192.168.50.6, port 5201
[  5] local 192.168.50.152 port 36556 connected to 192.168.50.6 port 5201
[  7] local 192.168.50.152 port 36558 connected to 192.168.50.6 port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec  80.7 MBytes   677 Mbits/sec   72   1.15 MBytes       
[  7][RX-C]   0.00-1.00   sec  57.4 MBytes   481 Mbits/sec                 
[  5][TX-C]   1.00-2.00   sec  56.2 MBytes   472 Mbits/sec   19    895 KBytes       
[  7][RX-C]   1.00-2.00   sec  99.2 MBytes   832 Mbits/sec                 
[  5][TX-C]   2.00-3.00   sec  61.2 MBytes   514 Mbits/sec    0    947 KBytes       
[  7][RX-C]   2.00-3.00   sec  98.1 MBytes   823 Mbits/sec                 
[  5][TX-C]   3.00-4.00   sec  65.0 MBytes   545 Mbits/sec    0    984 KBytes       
[  7][RX-C]   3.00-4.00   sec  92.5 MBytes   776 Mbits/sec                 
[  5][TX-C]   4.00-5.00   sec  60.0 MBytes   503 Mbits/sec    0   1021 KBytes       
[  7][RX-C]   4.00-5.00   sec  97.2 MBytes   815 Mbits/sec                 
[  5][TX-C]   5.00-6.00   sec  65.0 MBytes   545 Mbits/sec   26    757 KBytes       
[  7][RX-C]   5.00-6.00   sec  89.2 MBytes   748 Mbits/sec                 
[  5][TX-C]   6.00-7.00   sec  57.5 MBytes   482 Mbits/sec    0    857 KBytes       
[  7][RX-C]   6.00-7.00   sec  95.1 MBytes   797 Mbits/sec                 
[  5][TX-C]   7.00-8.00   sec  61.2 MBytes   514 Mbits/sec    0    933 KBytes       
[  7][RX-C]   7.00-8.00   sec  94.0 MBytes   789 Mbits/sec                 
[  5][TX-C]   8.00-9.00   sec  60.0 MBytes   503 Mbits/sec   37    699 KBytes       
[  7][RX-C]   8.00-9.00   sec  92.4 MBytes   775 Mbits/sec                 
[  5][TX-C]   9.00-10.00  sec  53.8 MBytes   451 Mbits/sec    0    752 KBytes       
[  7][RX-C]   9.00-10.00  sec  96.3 MBytes   808 Mbits/sec                 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec   621 MBytes   521 Mbits/sec  154             sender
[  5][TX-C]   0.00-10.00  sec   618 MBytes   518 Mbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec   915 MBytes   767 Mbits/sec   32             sender
[  7][RX-C]   0.00-10.00  sec   911 MBytes   764 Mbits/sec                  receiver

iperf Done.
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
Windows wired speed is strange, maybe probelm with cygwin.
Code:
PS C:\work\speedtest\iperf3.10.1_64bit> .\iperf3.exe -c 192.168.50.6 --bidir
Connecting to host 192.168.50.6, port 5201
[  5] local 192.168.50.49 port 51193 connected to 192.168.50.6 port 5201
[  7] local 192.168.50.49 port 51194 connected to 192.168.50.6 port 5201
[ ID][Role] Interval           Transfer     Bitrate
[  5][TX-C]   0.00-1.00   sec   115 MBytes   961 Mbits/sec
[  7][RX-C]   0.00-1.00   sec  22.3 MBytes   187 Mbits/sec
[  5][TX-C]   1.00-2.00   sec   113 MBytes   948 Mbits/sec
[  7][RX-C]   1.00-2.00   sec  20.9 MBytes   175 Mbits/sec
[  5][TX-C]   2.00-3.00   sec   113 MBytes   949 Mbits/sec
[  7][RX-C]   2.00-3.00   sec  20.5 MBytes   172 Mbits/sec
[  5][TX-C]   3.00-4.00   sec   113 MBytes   949 Mbits/sec
[  7][RX-C]   3.00-4.00   sec  17.7 MBytes   148 Mbits/sec
[  5][TX-C]   4.00-5.00   sec   113 MBytes   948 Mbits/sec
[  7][RX-C]   4.00-5.00   sec  17.7 MBytes   149 Mbits/sec
[  5][TX-C]   5.00-6.00   sec   113 MBytes   949 Mbits/sec
[  7][RX-C]   5.00-6.00   sec  17.8 MBytes   149 Mbits/sec
[  5][TX-C]   6.00-7.00   sec   113 MBytes   949 Mbits/sec
[  7][RX-C]   6.00-7.00   sec  17.7 MBytes   148 Mbits/sec
[  5][TX-C]   7.00-8.00   sec   113 MBytes   947 Mbits/sec
[  7][RX-C]   7.00-8.00   sec  21.0 MBytes   176 Mbits/sec
[  5][TX-C]   8.00-9.00   sec   113 MBytes   949 Mbits/sec
[  7][RX-C]   8.00-9.00   sec  22.4 MBytes   188 Mbits/sec
[  5][TX-C]   9.00-10.00  sec   113 MBytes   947 Mbits/sec
[  7][RX-C]   9.00-10.00  sec  20.7 MBytes   173 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  1.11 GBytes   949 Mbits/sec                  sender
[  5][TX-C]   0.00-10.05  sec  1.10 GBytes   945 Mbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec   200 MBytes   168 Mbits/sec    0             sender
[  7][RX-C]   0.00-10.05  sec   199 MBytes   166 Mbits/sec                  receiver

iperf Done.

Wireless is more in line with Linux.
Code:
PS C:\work\speedtest\iperf3.10.1_64bit> .\iperf3.exe -c 192.168.50.6
Connecting to host 192.168.50.6, port 5201
[  5] local 192.168.50.152 port 51364 connected to 192.168.50.6 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   101 MBytes   849 Mbits/sec
[  5]   1.00-2.00   sec   108 MBytes   906 Mbits/sec
[  5]   2.00-3.00   sec   109 MBytes   917 Mbits/sec
[  5]   3.00-4.00   sec   108 MBytes   902 Mbits/sec
[  5]   4.00-5.00   sec   109 MBytes   913 Mbits/sec
[  5]   5.00-6.00   sec   109 MBytes   916 Mbits/sec
[  5]   6.00-7.00   sec   107 MBytes   900 Mbits/sec
[  5]   7.00-8.00   sec   111 MBytes   934 Mbits/sec
[  5]   8.00-9.00   sec   110 MBytes   917 Mbits/sec
[  5]   9.00-10.00  sec   109 MBytes   918 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.06 GBytes   907 Mbits/sec                  sender
[  5]   0.00-10.05  sec  1.05 GBytes   901 Mbits/sec                  receiver

iperf Done.
PS C:\work\speedtest\iperf3.10.1_64bit> .\iperf3.exe -c 192.168.50.6 -R
Connecting to host 192.168.50.6, port 5201
Reverse mode, remote host 192.168.50.6 is sending
[  5] local 192.168.50.152 port 51387 connected to 192.168.50.6 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  90.8 MBytes   762 Mbits/sec
[  5]   1.00-2.00   sec   103 MBytes   864 Mbits/sec
[  5]   2.00-3.00   sec  96.7 MBytes   813 Mbits/sec
[  5]   3.00-4.00   sec  99.1 MBytes   831 Mbits/sec
[  5]   4.00-5.00   sec   101 MBytes   846 Mbits/sec
[  5]   5.00-6.00   sec   106 MBytes   895 Mbits/sec
[  5]   6.00-7.00   sec   108 MBytes   903 Mbits/sec
[  5]   7.00-8.00   sec   109 MBytes   916 Mbits/sec
[  5]   8.00-9.00   sec   110 MBytes   921 Mbits/sec
[  5]   9.00-10.00  sec   110 MBytes   920 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.04  sec  1.01 GBytes   866 Mbits/sec   49             sender
[  5]   0.00-10.00  sec  1.01 GBytes   867 Mbits/sec                  receiver

iperf Done.
PS C:\work\speedtest\iperf3.10.1_64bit> .\iperf3.exe -c 192.168.50.6 --bidir
Connecting to host 192.168.50.6, port 5201
[  5] local 192.168.50.152 port 51398 connected to 192.168.50.6 port 5201
[  7] local 192.168.50.152 port 51399 connected to 192.168.50.6 port 5201
[ ID][Role] Interval           Transfer     Bitrate
[  5][TX-C]   0.00-1.00   sec  87.6 MBytes   734 Mbits/sec
[  7][RX-C]   0.00-1.00   sec  53.0 MBytes   444 Mbits/sec
[  5][TX-C]   1.00-2.00   sec  75.1 MBytes   631 Mbits/sec
[  7][RX-C]   1.00-2.00   sec   102 MBytes   859 Mbits/sec
[  5][TX-C]   2.00-3.00   sec  61.0 MBytes   511 Mbits/sec
[  7][RX-C]   2.00-3.00   sec   109 MBytes   914 Mbits/sec
[  5][TX-C]   3.00-4.00   sec  55.9 MBytes   468 Mbits/sec
[  7][RX-C]   3.00-4.00   sec   111 MBytes   932 Mbits/sec
[  5][TX-C]   4.00-5.00   sec  56.8 MBytes   477 Mbits/sec
[  7][RX-C]   4.00-5.00   sec   110 MBytes   923 Mbits/sec
[  5][TX-C]   5.00-6.00   sec  57.0 MBytes   478 Mbits/sec
[  7][RX-C]   5.00-6.00   sec   106 MBytes   886 Mbits/sec
[  5][TX-C]   6.00-7.00   sec  60.0 MBytes   502 Mbits/sec
[  7][RX-C]   6.00-7.00   sec   108 MBytes   906 Mbits/sec
[  5][TX-C]   7.00-8.00   sec  65.9 MBytes   552 Mbits/sec
[  7][RX-C]   7.00-8.00   sec   102 MBytes   852 Mbits/sec
[  5][TX-C]   8.00-9.00   sec  60.4 MBytes   507 Mbits/sec
[  7][RX-C]   8.00-9.00   sec  51.4 MBytes   432 Mbits/sec
[  5][TX-C]   9.00-10.00  sec  53.1 MBytes   446 Mbits/sec
[  7][RX-C]   9.00-10.00  sec  17.3 MBytes   146 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec   633 MBytes   531 Mbits/sec                  sender
[  5][TX-C]   0.00-10.04  sec   632 MBytes   528 Mbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec   873 MBytes   732 Mbits/sec  955             sender
[  7][RX-C]   0.00-10.04  sec   870 MBytes   726 Mbits/sec                  receiver

iperf Done.
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
Other than iperf3, you can also use librespeed. I prefer the Go version.
https://github.com/librespeed/speedtest-go
Example test result using a Linux LXC container as the server, client is my Mac Mini M1 using wireless (5m away)

oQz9ovN.png


Wireless client -- Acer Swift 3 with Intel AX201 adapter (close range)

H4XLSN0.png
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
fping can be useful as well, a quick one if you do not want to run SmokePing.

For example, the following quick tests check the speed of the three different Cloudflare DNS servers. I use 1.1.1.3 myself at home, it is probably a bit slower than 1.1.1.1 (which is again a bit slower than 8.8.8.8 based on my testing). However it is still very reasonable.

Code:
root@OpenWrt:~# fping --timestamp --loop -p 100 -t 500 1.1.1.3 1.1.1.2 1.1.1.1
[1647696483.17745] 1.1.1.3 : [0], 64 bytes, 4.77 ms (4.77 avg, 0% loss)
[1647696483.18507] 1.1.1.2 : [0], 64 bytes, 2.31 ms (2.31 avg, 0% loss)
[1647696483.19546] 1.1.1.1 : [0], 64 bytes, 2.59 ms (2.59 avg, 0% loss)
[1647696483.28845] 1.1.1.3 : [1], 64 bytes, 15.5 ms (10.2 avg, 0% loss)
...
[1647696504.88275] 1.1.1.3 : [217], 64 bytes, 9.89 ms (7.96 avg, 0% loss)
[1647696504.88879] 1.1.1.2 : [217], 64 bytes, 5.86 ms (6.50 avg, 0% loss)
[1647696504.89583] 1.1.1.1 : [217], 64 bytes, 2.59 ms (4.26 avg, 0% loss)
^C
1.1.1.3 : xmt/rcv/%loss = 218/218/0%, min/avg/max = 2.48/7.96/39.1
1.1.1.2 : xmt/rcv/%loss = 218/218/0%, min/avg/max = 2.04/6.50/37.0
1.1.1.1 : xmt/rcv/%loss = 218/218/0%, min/avg/max = 2.33/4.26/22.0
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
Windows may not have all the utilities available. But uou can use WSL (Windows Subsystem for Linux) or Docker or you can look for alternatives.

Example:
1) Ping
2) Tracert -- Windows counterpart of traceroute
3) MTR -- not available, try WinMTR; Windows pathping may be an viable alternative for MTR as well
4) nslookup
5) ipconfig -- similar to ifconfig
6) route
7) arp
8) hostname


Windows specific tools:
1) netsh: https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts
2) netstat
3) nbtstat

Ref: https://techgenix.com/top-11-networking-commands/
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
If you use Asus router, you can use SSH to access the router OS and then use quite some network utilities. You can also install Entware to have access to many network troubleshooting tools.

If you use OpenWRT, you will have many tools from Linux. If you use pfSense, you will have quite a few utilities as well.

Of course it is just easier to use a Linux computer or Docker container if you want to have access to all the tools. But sometimes it may be useful to run the tools from the router.
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
You can actually run a public librespeed sever once you carry out port forwarding.

Example:
1) librespeed-go server running on my OpenWRT router (Public IP: 219.75.xx.xx)
2) port forward TCP port 8989
3) from a laptop in the other network (Asus RT-AX82u) and access the server:8989
4) the speed is not from the computer to the librespeed server, but rather from the RT-AX82U router (Public IP: 119.74.xx.xx) to the OpenWRT router (Public IP: 219.75.xx.xx). Ignore the distance part (probably a bug).

UAFb8Zp.png


If the laptop is in the OpenWRT network, then the speed test is for local (wireless).

zZgAw89.png
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
34,918
Reaction score
11,619
You can actually run a public librespeed sever once you carry out port forwarding.

Example:
1) librespeed-go server running on my OpenWRT router (Public IP: 219.75.xx.xx)
2) port forward TCP port 8989
3) from a laptop in the other network (Asus RT-AX82u) and access the server:8989
4) the speed is not from the computer to the librespeed server, but rather from the RT-AX82U router (Public IP: 119.74.xx.xx) to the OpenWRT router (Public IP: 219.75.xx.xx). Ignore the distance part (probably a bug).

UAFb8Zp.png

You can easily have a public iperf3 server as well and there is no above issue with iperf3. You just (need to port forward 5201.

Wifi test results from another network (with different public IP)
Code:
PS C:\work\speedtest\iperf3.10.1_64bit> .\iperf3.exe -c 219.75.xx.xx
Connecting to host 219.75.xx.xx, port 5201
[  5] local 192.168.50.175 port 58256 connected to 219.75.13.224 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  56.5 MBytes   473 Mbits/sec
[  5]   1.00-2.00   sec  83.4 MBytes   699 Mbits/sec
[  5]   2.00-3.01   sec  90.0 MBytes   752 Mbits/sec
[  5]   3.01-4.00   sec  88.1 MBytes   740 Mbits/sec
[  5]   4.00-5.00   sec  85.6 MBytes   720 Mbits/sec
[  5]   5.00-6.01   sec  75.6 MBytes   631 Mbits/sec
[  5]   6.01-7.00   sec  84.1 MBytes   710 Mbits/sec
[  5]   7.00-8.01   sec  87.5 MBytes   730 Mbits/sec
[  5]   8.01-9.00   sec  81.5 MBytes   686 Mbits/sec
[  5]   9.00-10.01  sec  85.0 MBytes   711 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec   817 MBytes   685 Mbits/sec                  sender
[  5]   0.00-10.01  sec   817 MBytes   684 Mbits/sec                  receiver

iperf Done.
 
Important Forum Advisory Note
This forum is moderated by volunteer moderators who will react only to members' feedback on posts. Moderators are not employees or representatives of HWZ Forums. Forum members and moderators are responsible for their own posts. Please refer to our Community Guidelines and Standards and Terms and Conditions for more information.
Top