Пинг (эхо-запрос / ответ ICMP) даст вам задержку однорангового узла, но не доступную пропускную способность, которую имеет одноранговый узел.Вам нужна полоса пропускания, поскольку TCP хорошо справляется с задержкой продуктов * и выясняет, как сделать соединение быстрым, даже если он использует спутниковую связь.
Что вы делаете, так это подключаетесь ко всем из них.Подключение 40 пиров не редкость.И тогда вы решаете, что отцепить, основываясь на их текущих ставках по отношению к вам (пока вы не станете сеялкой).Он также должен быть довольно динамичным, поскольку доступная пропускная способность меняется со временем.Лучший совет, который я могу дать, это прочитать
http://www.bittorrent.org/bittorrentecon.pdf
, который дает общее представление о том, как реализовать экономику.Но многие клиенты делают не так, как на бумаге, поэтому чтение кода является еще одним вариантом.
Итак: вы хотите измерять пропускную способность, а не задержку.Следовательно, пинг - неподходящий инструмент для работы.Измерение пропускной способности легче всего выполнить, отслеживая скорость, с которой вы отправляете пакеты одноранговому узлу.
Я думаю, что алгоритм удушения / снятия с привязки и выбор равноправных соединений - одна из самых сложных частей, чтобы получить право на клиента,Лучше всего решать ручкой, бумагой и мозгом, а не сидеть перед компьютером и писать код.