Re: [Network] Простой ICMP запрос
Alex Naumov
alexander_naumov at opensuse.org
Fri Nov 21 19:12:56 EST 2014
2014-11-21 22:16 GMT+01:00 Ivan Riabtsov <ivriabtsov at gmail.com>:
> думаю, что сеть можно считать рабочей, если вернулось не меньше 3-х из
> 4-х пакетов,
Да, 75% конечно надежней, чем 50%, но если мы получили хотя бы... даже один
ответ, значит хост работает и отвечат. По количеству отстальных ответов
можно судить о качестве соединения.
> еще я бы проверил контрольную сумму принятого пакета, без
> нее как-то не кошерно
Да, она добавляется, но не проверяется при получении.
Значит ли это, что, если я ping'ую два хоста, то ответы могут просто
перемешаться?
> еще я не очень понял, recvfrom не блокируется в
> ожидании ответа?
Я просто добавил пока секундную задержку :)
Кстати, не подвесит ли блокировка процесс, при отсутствии ответов?
> получается, что как минимум первый вызов recvfrom
> всегда пройдет в холостую,
Да, сам не знаю как так получилось - конечно же recvfrom() и sendto() надо
поменять местами.
> я бы возможно попробовал отдельный сделать
> поток для посылки пингов и отдельный поток для приема пакетов, возврат
> из потока я не очень понимаю, как делать, так что сделал бы внешнюю
> переменную, в которой бы записывалось кол-во принятых пакетов, при
> этом вызов recvfrom сделал бы блокирующимся, но я не знаю как это
> делать, по идее он по умолчанию такой, иначе придется делать холостой
> цикл, который будет отъедать процессорное время.
>
> Будет интересно посмотреть на код, но на сколько оправданно
распараллеливание потока (т.е. усложнение кода) в данном случае?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernel-russian/attachments/20141122/eb6efeea/attachment.html
More information about the Kernel-russian
mailing list