Výstup ping v závislosti na -s

Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Výstup ping v závislosti na -s
« kdy: 16. 02. 2021, 00:35:47 »
Všiml jsem si zvláštní korelace výstupu příkazu ping dle velikosti dat (přes wifi switch. vpřípadě 77 b se nefragmentuje, v případě 9134 na 7 paketů)

Jde o tyto hodnoty:
-real : v případě 1paketového přenosu sedí čas real (22*0.01s), a v případě 7paketového fragmentového přenosu  je delší dle očekávání a selského rozumu
- hodnota ewma v případě fermentovaného je 13ms což je skoro též ipg, zatímco v 1paketovém 1.5ms
-time v "statistics" , v případě fragmentovaného přenosu(už jsem to slovíčko trefil) je 650-865ms, a u 1paketového 200ms (víceméně stejně).  Nevím, co by to mohlo znamenat

Otázky:
- co je hodnota EWMA a proč v první případě 13ms (jako interpacketgap) a v druhém 1ms. Exponential moving average vím co znamená, ale nevím, jaké veličiny v pingu.
- je interpacket gap  je čas mezi  dvěma odesláním(nebo přijetím ,ale konzistenětně) začátku paketu (od slova inter) a nebo "jalový čas" kdy pakety se nepřenáší (od slova gap)?
-co znamená time hodnota ve vypisu?

Dál tyhle 2 věci nějak souvisí?
-v režimu flood dle manuálu se za každý odeslaný request objeví tečka a za každý přijatý reply zmizí. Takže zbylý počet by měl odpovídat packet loss( krát počet paketů).


-parametr pipe by měl odpovídat něčemu jako "zahlcení", když je neodpovězen víc než 1 paket, je to tak (maximální hodnotě během celého měření)? Ta fronta se ale taky zobrazí při -f parametru že?, ale nakonec zmizí?

Kód: [Vybrat]
time sudo ping -f    -c 220 -i 0.01   -s 9134  cíl
PING cíl (192.168.1.111) 9134(9162) bytes of data.

--- cíl ping statistics ---
220 packets transmitted, 220 received, 0% packet loss, time 865ms
rtt min/avg/max/mdev = 6.681/73.309/323.705/95.889 ms, pipe 20, ipg/ewma 13.075/13.721 ms

real    0m3,026s
user    0m0,077s
sys     0m0,133s



##----------------

time sudo ping -f    -c 220 -i 0.01   -s 77  karel-pc
PING cíl(192.168.1.111) 77(105) bytes of data.

--- cíl ping statistics ---
220 packets transmitted, 220 received, 0% packet loss, time 190ms
rtt min/avg/max/mdev = 1.283/2.233/8.255/0.959 ms, ipg/ewma 9.992/1.595 ms

real    0m2,312s
user    0m0,479s
sys     0m1,252s


« Poslední změna: 16. 02. 2021, 09:28:34 od Petr Krčmář »


Re:Výstup ping v závislosti na -s
« Odpověď #1 kdy: 16. 02. 2021, 10:28:46 »
Na to je idealni podivat se do zdrojaku.

Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Výstup ping v závislosti na -s
« Odpověď #2 kdy: 21. 02. 2021, 21:45:23 »
Koukán na Zdroják mi jde, ale je to na dlouhé večerní čtení...
Navíc i triviální funkčnost ping (z hlediska kdo to používá) je složitá naprogramovat (když linuxový ping má 30 přepínačů, obsluhuje fronty požadavků icmp atd,)

Pátral jsem po odpovědi,ale toto nesouhlasí s mým zjištěním.
Citace
he time statistic is the total time spent sending and receiving echo packets, including the delay between each packet:
-z stránky výše to odpovídá (3 pingy po sekundě ... time 1998 ms)

Ale u mě:
pingám 10 sekund po sekundě a výsledek? 14ms? <<<(33.650/41.289/52.156/6.718 ms)
nebo : sudo ping  -i 0.08   -s 9909  ....  někdy500ms někdy 800 a vůbec to nezáleží na délce pingání ...   <<< ( 9.262/17.893/32.435/5.886 ms)




Ale když už jsme u toho zdrojáku, co je tohle za  "slang"? To rozdělování jednoho floatu do dvou argumentů pro printf. Jaký to má význam ?  Když by stačilo %.3f ?
Kód: [Vybrat]
printf(_("%sipg/ewma %d.%03d/%d.%03d ms"),
       comma,

 ipg / 1000, ipg % 1000,                       # ipg celá část, ipg desetinná část
 rts->rtt / 8000, (rts->rtt / 8) % 1000    #ewma celá část, ewmadesetinná část

);
     
« Poslední změna: 21. 02. 2021, 21:47:57 od Hamparle »