Fórum Root.cz
Hlavní témata => Server => Téma založeno: Hamparle 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í?
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
-
Na to je idealni podivat se do zdrojaku (https://source.codeaurora.org/external/gigabyte/froyo-gb-dsds-7227/plain/external/ping/ping.c).
-
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í (https://unix.stackexchange.com/questions/362890/ping-statistics-time-meaning) s mým zjištěním.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 ?
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
);