как правильно считать время пинга?
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.07.20 14:42
Оценка:
привет!

сабж не имеет прямого отношения к С++.


реализовал heartbeat для UDP. все работет.
но чисто в академических целях любопытно мониторить время этого heartbeat`а.
сейчас тупо отмечаю время отправки пакета и время прихода ответа на него и делю пополам.
но, думаю, это как-то неправильно...

подскажите, кто в теме.

спасибо.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: как правильно считать время пинга?
От: reversecode google
Дата: 02.07.20 14:53
Оценка:
исходники ping.c открыты для изучения
да и в гугле всегда можно вбить
how to calculate rtt network
и зачитаться
это целая наука из которой каждый год изобретают новый алгоритм для tcp
Re: как правильно считать время пинга?
От: Философ Ад http://vk.com/id10256428
Дата: 02.07.20 15:03
Оценка: -1
Здравствуйте, niXman, Вы писали:

X>сейчас тупо отмечаю время отправки пакета и время прихода ответа на него и делю пополам.

X>но, думаю, это как-то неправильно...

Неправильно. Делить измеренное время пинга безосновательно. В случае UDP, и других немаршрутизируемых протоколов, это не очевидно, но вот в случае TCP/IP всё встаёт на свои места: время достижения исходным пакетом адресата может существенно отличаться от времени достижения ответом отправителя. В этом случае половина времени ни о чём не говорит, а в случае передачи относительно больших объёмов данных (больше TCP Window) вообще бесполезна — имеет значение только полное время.

X>подскажите, кто в теме.


Я не то чтобы в теме, но про TCP читал и даже свои протоколы пытался инженерить (на основе TCP).
Всё сказанное выше — личное мнение, если не указано обратное.
Re: как правильно считать время пинга?
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.07.20 15:17
Оценка:
Здравствуйте, niXman, Вы писали:

X>реализовал heartbeat для UDP. все работет.

X>но чисто в академических целях любопытно мониторить время этого heartbeat`а.
X>сейчас тупо отмечаю время отправки пакета и время прихода ответа на него и делю пополам.
X>но, думаю, это как-то неправильно...

А зачем ты его делишь пополам?

В принципе, с практической точки зрения интересно (и измеряемо) время путешествия пакета туда и обратно (round-trip time). ping печатает именно это время.
Re[2]: как правильно считать время пинга?
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.07.20 15:22
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Неправильно. Делить измеренное время пинга безосновательно. В случае UDP, и других немаршрутизируемых протоколов, это не очевидно, но вот в случае TCP/IP всё встаёт на свои места: время достижения исходным пакетом адресата может существенно отличаться от времени достижения ответом отправителя. В этом случае половина времени ни о чём не говорит, а в случае передачи относительно больших объёмов данных (больше TCP Window) вообще бесполезна — имеет значение только полное время.


Время прохождения пакета в одну сторону достаточно сложно измерить, да и практической ценности особой оно не имеет.

В TCP важен именно RTT (round-trip time) потому что:
1) быстрее RTT ответ не придет. Поэтому чтобы загрузить сеть полностью, надо слать, не дожидаясь подтверждения, столько, сколько при доступной скорости за время RTT пролезет, но нет смысла слать сильно больше
2) Если подтверждение не пришло за время RTT с некоторым запасом, то скорее всего, что-то потерялось по дороге, и есть смысл перепослать.
Re[2]: как правильно считать время пинга?
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.07.20 15:40
Оценка:
Здравствуйте, reversecode, Вы писали:

R>исходники ping.c открыты для изучения

R>да и в гугле всегда можно вбить
R>how to calculate rtt network
R>и зачитаться
R>это целая наука из которой каждый год изобретают новый алгоритм для tcp

если я все буду делать сам, с кем ты будешь общаться?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: как правильно считать время пинга?
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.07.20 15:44
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А зачем ты его делишь пополам?


Pzz>В принципе, с практической точки зрения интересно (и измеряемо) время путешествия пакета туда и обратно (round-trip time). ping печатает именно это время.


в моей задаче трафик идет только в одну сторону — от клиента к серверу.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[3]: как правильно считать время пинга?
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.07.20 15:52
Оценка:
Здравствуйте, niXman, Вы писали:

X>в моей задаче трафик идет только в одну сторону — от клиента к серверу.


Даже без обратной связи?
Re[4]: как правильно считать время пинга?
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.07.20 16:03
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Даже без обратной связи?


да. только пинг идет обратно, чтоб убедиться что канал жив.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[5]: как правильно считать время пинга?
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.07.20 16:09
Оценка:
Здравствуйте, niXman, Вы писали:

Pzz>>Даже без обратной связи?


X>да. только пинг идет обратно, чтоб убедиться что канал жив.


А на потери пакетов и возможность переполнения канала тебе наплевать?
Re[6]: как правильно считать время пинга?
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.07.20 16:12
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А на потери пакетов и возможность переполнения канала тебе наплевать?


да.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[7]: как правильно считать время пинга?
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.07.20 16:13
Оценка:
Здравствуйте, niXman, Вы писали:

Pzz>>А на потери пакетов и возможность переполнения канала тебе наплевать?


X>да.


Оптимист, однако!
Re[2]: как правильно считать время пинга?
От: Skorodum Россия  
Дата: 06.07.20 05:52
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Неправильно. В случае UDP, и других немаршрутизируемых протоколов, это не очевидно, но вот в случае TCP/IP всё встаёт на свои места

Простите, но вот за это "-1". Это какая-то люто неправильная терминология.

Ф>Я не то чтобы в теме, но про TCP читал и даже свои протоколы пытался инженерить (на основе TCP).

В общем случае транспортный протокол — TCP/UDP/etc. — на маршрутизацию пакета не влияет. В этом и суть разделения уровней.
Re: как правильно считать время пинга?
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 06.07.20 11:30
Оценка:
Здравствуйте, niXman, Вы писали:

X>подскажите, кто в теме.

Посмотри как считают RTT в RTCP для SR/RR репортов. Тебе нужен 3550 рфс, ищи по "Example for round-trip time computation". Эта штука работает вполне сносно.
Sic luceat lux!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.