Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: Vietnanka 25. 12. 2021, 10:32:59

Název: ping neukazuje time pro -s menší než 8
Přispěvatel: Vietnanka 25. 12. 2021, 10:32:59
čistě ze zajímavosti, proč (linuxový) ping neukazuje v odpovědích time pro -s 1 až 7
Kód: [Vybrat]
icmp_seq=1 ttl=54 time=19.3 ms # -s 8
icmp_seq=1 ttl=54 #-s 7
Název: Re:ping neukazuje time pro -s menší než 8
Přispěvatel: vcunat 25. 12. 2021, 11:32:04
Odhadem, nespolehlivost přiřazení příchozí odpovědi k odpovídajícímu dotazu?
Název: Re:ping neukazuje time pro -s menší než 8
Přispěvatel: arrange 25. 12. 2021, 12:49:19
Do packetu se musí vejít "timestamp", z kterého se po návratu odečte ten čas.
Pokud je packet příliš malý (viz kód), čas se nepočítá (timing = 0).
Kód: [Vybrat]
// iputils-20180629, ping.c
if (datalen >= sizeof(struct timeval))  /* can we time transfer */
                timing = 1;

U mě je tedy sizeof(struct timeval) rovno 16, takže ping -s 16 čas ukazuje, ale ping -s 15 už ne.
Název: Re:ping neukazuje time pro -s menší než 8
Přispěvatel: RDa 25. 12. 2021, 12:50:29
8B potrebujes na ulozeni presneho timestampu (4B je jenom s rozlisenim sekund).

A jestli se to dela takto, tak si muzes pohrat s payloadem na routru, aby vykazoval nizsi nebo vyssi ping :-)