Giter Site home page Giter Site logo

Comments (9)

rewolff avatar rewolff commented on August 15, 2024

What version are you using?

Simplifying a bit, mtr sends out (in your case) about 14 packets per second, and in report mode does this for 10 seconds and then reports the results.

In more recent versions it will listen another three seconds after sending for 10 seconds before finishing the report.

It is entirely possible that the "about 14 packets per second" comes out to 138 packets, or not having sent the last two you might have expected to hop 13 and 14.

This can be seen in your output: the last two hops have only 9 pakcets sent to them.
This means that the last packet from hop 13 and 14 have had about 1 second longer to come back than the others. So it's funny that you'd see one of them be reported as "missing".

$ mtr -r -n 193.8.25.3
Start: Mon Oct 5 11:08:03 2015
HOST: getafix Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.x.y 0.0% 10 0.1 0.1 0.1 0.2 0.0
2.|-- 192.168.z.254 0.0% 10 0.3 0.3 0.2 0.3 0.0
3.|-- 95.128.94.126 0.0% 10 0.7 4.4 0.6 36.3 11.2
4.|-- 94.228.128.57 0.0% 10 2.0 2.3 1.9 3.5 0.3
5.|-- 94.228.128.126 0.0% 10 2.2 6.8 1.9 31.2 10.1
6.|-- 82.150.158.186 0.0% 10 2.3 2.5 2.3 3.3 0.0
7.|-- 217.170.0.244 0.0% 10 2.5 2.5 2.2 3.2 0.0
8.|-- 80.249.208.52 0.0% 10 5.3 5.1 3.9 6.9 0.9
9.|-- 212.23.238.197 0.0% 10 21.6 22.4 21.1 23.5 0.5
10.|-- 212.23.238.198 0.0% 10 19.9 20.3 19.5 21.5 0.3
11.|-- 193.8.25.3 0.0% 10 19.8 20.2 19.8 20.6 0.0
$ mtr --version
mtr 0.85

And I'm not running the most recent version. So here already I'm seeing that the last two packets are actually SENT, and the returns are counted....

from mtr.

schweikert avatar schweikert commented on August 15, 2024

I also use mtr 0.85. Here is maybe a way to reproduce it:

  1. Try out mtr -n bad.horse
  2. Notice the packet loss reported by this command: mtr -r -c5 -n bad.horse

I get 20% loss reported from hop 26.

from mtr.

rewolff avatar rewolff commented on August 15, 2024

OK. I get exactly the same results as you... with the released version installed on several of my computers.

But the development version (git) has this fixed.

from mtr.

rewolff avatar rewolff commented on August 15, 2024

getafix:/mtr> sudo ./mtr -r -c5 -n bad.horse -o "LSD NBAWR" |tail
21.|-- 162.252.205.137 0.0% 5 0 158.4 158.1 158.8 160.0 5
22.|-- 162.252.205.138 0.0% 5 0 164.5 164.3 164.5 164.6 5
23.|-- 162.252.205.139 0.0% 5 0 169.6 169.5 169.7 169.8 5
24.|-- 162.252.205.140 0.0% 5 0 174.4 174.4 174.5 174.5 5
25.|-- 162.252.205.141 0.0% 5 0 179.4 179.4 179.4 179.5 5
26.|-- 162.252.205.142 0.0% 5 0 184.7 181.5 184.0 184.7 5
27.|-- 162.252.205.143 0.0% 5 0 189.3 189.3 189.6 189.9 5
28.|-- 162.252.205.144 0.0% 5 0 191.6 191.5 192.3 194.4 5
29.|-- 162.252.205.145 0.0% 5 0 199.5 197.9 199.3 199.9 5
30.|-- 162.252.205.146 0.0% 5 0 204.5 204.4 204.5 204.8 5
getafix:
/mtr>

from mtr.

schweikert avatar schweikert commented on August 15, 2024

Great, thanks for letting me know! I will also test it on my side.

from mtr.

LionNatsu avatar LionNatsu commented on August 15, 2024

I can reproduce it on latest git version (compiled yesterday).

lion [ mtr@master ] $ sudo ./mtr -r -c5 -n bad.horse -o "LSD NBAWR"
Start: Wed Aug  3 11:05:48 2016
HOST: Lion-Laptop                 Loss%   Snt Drop   Last  Best   Avg  Wrst   Rcv
  1.|-- 192.168.1.1                0.0%     5    0   29.5  29.5 394.5 918.9     5
  2.|-- ???                       100.0     5    5    0.0   0.0   0.0   0.0     0
  3.|-- ***.***.**.**              0.0%     5    0   25.3  15.1 290.6 729.4     5
  4.|-- ***.***.**.***             0.0%     5    0   94.0  14.4 273.4 630.5     5
  5.|-- ***.***.**.**              0.0%     5    0   59.4  28.6 417.2 996.9     5
  6.|-- ***.***.**.***            20.0%     5    1   55.0  55.0 467.3 882.9     4
  7.|-- ***.***.**.***            20.0%     5    1  423.8 367.3 478.8 740.5     4
  8.|-- ***.***.**.***            25.0%     4    1  378.5 350.6 453.1 630.2     3
  9.|-- ???                       100.0     4    4    0.0   0.0   0.0   0.0     0
 10.|-- ***.***.**.**              0.0%     4    0  284.3 284.3 438.7 515.0     4
 11.|-- 38.88.224.121              0.0%     4    0  216.8 216.8 328.2 416.1     4
 12.|-- 154.54.6.105               0.0%     4    0  1168. 212.2 514.0 1168.     4
 13.|-- 154.54.28.33               0.0%     4    0  1139. 216.1 486.8 1139.     4
 14.|-- 154.54.3.186               0.0%     4    0  1112. 238.3 602.5 1112.     4
 15.|-- 66.28.4.46                 0.0%     4    0  1080. 225.6 571.0 1080.     4
 16.|-- 154.24.0.234              25.0%     4    1  1049. 494.7 734.7 1049.     3
 17.|-- 38.122.98.38               0.0%     4    0  1006. 443.4 766.3 1014.     4
 18.|-- 166.70.1.5                 0.0%     4    0  967.8 399.8 695.7 967.8     4
 19.|-- 162.252.204.163           50.0%     4    2  1010. 793.0 901.9 1010.     2
 20.|-- 208.68.168.214            50.0%     4    2  975.2 653.3 814.3 975.2     2
 21.|-- 162.252.205.130            0.0%     3    0  948.4 367.9 599.9 948.4     3
 22.|-- 162.252.205.131           33.3%     3    1  909.0 425.1 667.0 909.0     2
 23.|-- 162.252.205.132            0.0%     3    0  889.5 388.9 560.0 889.5     3
 24.|-- 162.252.205.133            0.0%     3    0  861.4 347.7 524.8 861.4     3
 25.|-- 162.252.205.134           50.0%     2    1  825.8 825.8 825.8 825.8     1
 26.|-- 162.252.205.135            0.0%     2    0  793.3 438.4 615.9 793.3     2
 27.|-- 162.252.205.136            0.0%     2    0  768.9 428.3 598.6 768.9     2
 28.|-- 162.252.205.137            0.0%     2    0  734.8 392.0 563.4 734.8     2
 29.|-- 162.252.205.138            0.0%     2    0  702.0 357.5 529.8 702.0     2
 30.|-- 162.252.205.139            0.0%     1    0  685.1 685.1 685.1 685.1     1
lion [ mtr@master ] $ 

and sometimes it even sent 0 packet...

lion [ mtr@master ] $ sudo ./mtr -r -c5 -n bad.horse -o "LSD NBAWR" | tail
 19.|-- 162.252.204.163           66.7%     3    2  363.6 363.6 363.6 363.6     1
 20.|-- 208.68.168.214            33.3%     3    1  338.9 338.9 720.9 1102.     2
 21.|-- 162.252.205.130            0.0%     2    0  307.9 307.9 314.1 320.3     2
 22.|-- 162.252.205.131            0.0%     2    0  298.1 298.1 302.7 307.4     2
 23.|-- 162.252.205.132            0.0%     2    0  314.6 314.6 785.6 1256.     2
 24.|-- 162.252.205.133            0.0%     2    0  312.9 312.9 762.6 1212.     2
 25.|-- 162.252.205.134            0.0%     2    0  319.2 319.2 743.6 1168.     2
 26.|-- 162.252.205.135            0.0%     1    0  496.4 496.4 496.4 496.4     1
 27.|-- 162.252.205.136            0.0%     1    0  460.4 460.4 460.4 460.4     1
 28.|-- ???                        0.0%     0    0    0.0   0.0   0.0   0.0     0
lion [ mtr@master ] $ 

Fortunate, there is no zero division error.

from mtr.

rewolff avatar rewolff commented on August 15, 2024

For a trace to "bad horse" here I get five pings all the way down to the 30th hop. I think that what you're seeing is expected behaviour.
To prevent sending out pings to 30 hops even when the target is only 5 hops away, mtr starts out sending packets to at most 5 hosts past the last reply. With such long pingtimes it takes a few rounds (seconds) before the whole route is discovered.

Think of it this way: mtr sends out five packets to the first five hops. Then it waits for the replies. When it gets back responses from all five hosts, it will set the probe limit to 10 and the next round it will send out pings to hops 1-10. Now if routers at hop 9 and 10 don't reply the next round the limit will only be set to 13 (got a reply from 8, add five). Now if hosts 12 and 13 take more than 1s to respond, then when the next round starts they have not answered yet, so the limit is only set to 16 (got a reply from 11, add five).

This explanation is "discrete" as if mtr sends probes at the whole second marks, and evaluates the situation at the next whole second. In reality mtr spreads the probes, adjusts the probe limit and increases the probe speed all in real-time.

I'm not sure you have the latest version.
sudo ./mtr --version

from mtr.

LionNatsu avatar LionNatsu commented on August 15, 2024

Wait... yes, you are right. I compiled it before 0.87 release. It was an old version.

I compiled a new git version just now.

lion [ mtr@master ] $ sudo ./mtr --version
mtr 0.87+git:c26968b7
lion [ mtr@master ] $ sudo ./mtr -r -c5 -n bad.horse -o "LSD NBAWR" | tail
 22.|-- 162.252.205.131            0.0%     4    0  299.9 299.9 434.6 571.9     4
 23.|-- 162.252.205.132            0.0%     4    0  311.2 311.2 417.4 549.3     4
 24.|-- 162.252.205.133            0.0%     4    0  315.3 315.3 392.4 521.1     4
 25.|-- 162.252.205.134           50.0%     4    2  319.3 319.3 406.5 493.7     2
 26.|-- 162.252.205.135            0.0%     4    0  319.5 319.5 480.5 695.3     4
 27.|-- 162.252.205.136            0.0%     3    0  324.2 324.2 473.1 660.7     3
 28.|-- 162.252.205.137            0.0%     3    0  328.9 328.9 453.2 629.4     3
 29.|-- 162.252.205.138            0.0%     3    0  337.0 337.0 434.5 594.6     3
 30.|-- 162.252.205.139            0.0%     3    0  345.4 345.4 420.7 566.8     3
Start: Thu Aug  4 18:13:43 2016
lion [ mtr@master ] $ sudo ./mtr -r -c5 -n bad.horse -o "LSD NBAWR" | tail
 21.|-- 162.252.205.130            0.0%     2    0  519.1 300.1 409.6 519.1     2
 22.|-- 162.252.205.131            0.0%     2    0  475.5 300.6 388.0 475.5     2
 23.|-- 162.252.205.132            0.0%     2    0  446.2 310.6 378.4 446.2     2
 24.|-- 162.252.205.133            0.0%     1    0  403.7 403.7 403.7 403.7     1
 25.|-- 162.252.205.134            0.0%     1    0  364.7 364.7 364.7 364.7     1
 26.|-- ???                       100.0     1    1    0.0   0.0   0.0   0.0     0
 27.|-- 162.252.205.136            0.0%     1    0  1328. 1328. 1328. 1328.     1
 28.|-- 162.252.205.137            0.0%     1    0  1324. 1324. 1324. 1324.     1
 29.|-- ???                        0.0%     0    0    0.0   0.0   0.0   0.0     0
Start: Thu Aug  4 18:13:59 2016
lion [ mtr@master ] $ git pull
Already up-to-date.                                                                                                                
lion [ mtr@master ] $    

from mtr.

LionNatsu avatar LionNatsu commented on August 15, 2024

Maybe, I think, the only solution to this issue is increase the -c option manually? which means to ping with more rounds.

For example:

ion [ mtr@master ] $ sudo ./mtr -r -c20 -n bad.horse -o "LSD NBAWR" | tail
 22.|-- 162.252.205.131            5.3%    19    1  1296. 296.3 493.0 1296.    18                                                  
 23.|-- 162.252.205.132            0.0%    19    0  1307. 307.3 531.0 1307.    19                                                  
 24.|-- 162.252.205.133            0.0%    19    0  1308. 311.9 519.5 1308.    19                                                  
 25.|-- 162.252.205.134            5.3%    19    1  1316. 316.4 519.4 1316.    18                                                  
 26.|-- 162.252.205.135           10.5%    19    2  1315. 316.7 539.2 1315.    17                                                  
 27.|-- 162.252.205.136            5.3%    19    1  1315. 320.8 535.5 1315.    18
 28.|-- 162.252.205.137            0.0%    18    0  1315. 326.4 579.4 1329.    18
 29.|-- 162.252.205.138            5.6%    18    1  1285. 331.7 579.3 1306.    17
 30.|-- 162.252.205.139            0.0%    18    0  1263. 341.9 566.6 1287.    18
Start: Thu Aug  4 18:18:49 2016
lion [ mtr@master ] $ 

from mtr.

Related Issues (20)

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.