Printable Version of Topic
Click here to view this topic in its original format
Forums > Сеть BitTorrent > Почему трекер проверяет открытость порта только при старте?, А не при каждом апдейте на трекер?


Posted by: FlyDrag on 05-04-2007, 12:36
Вопрос такой вот. Вроде-бы, надежнее, - если в начале по какой-то причине достучаться не удалось - почему бы не попробовать еще раз?

Posted by: FiL on 05-04-2007, 16:03
и так каждые пол часа на каждый торрент? Нагрузка лишняя почем зря.

Posted by: FlyDrag on 05-04-2007, 19:29
А иначе, если в начале была какая-то проблема (SYN потерялся, не успели ответить на все соединения с трекера) - получаем lowid на части торрентов, хотя у них и порт и ip одинаковый.

Btw, что мешает делать это не по каждому торренту, а по подключенной паре IP:порт? Получится раз в полчаса по одному клиенту, что уже вполне нормально. Думаю, клиентов, которые требуют по порту на торрент в живых почти не осталось...


Posted by: edenika on 05-04-2007, 22:09
Да такое иногда происходит :rolleyes:
Я делаю просто,обновляю трекер,останавливаю торрент,запускаю его ещё раз и всё ОК :)

Posted by: FiL on 06-04-2007, 00:22
QUOTE (FlyDrag @ 05-04-2007, 11:29):
Думаю, клиентов, которые требуют по порту на торрент в живых почти не осталось...
oсталось.
Да и вопрос КОГДА проверять остался. во время каждого анонса?

Posted by: FlyDrag on 06-04-2007, 11:09
QUOTE (FiL @ 06-04-2007, 00:22):
QUOTE (FlyDrag @ 05-04-2007, 11:29):
Думаю, клиентов, которые требуют по порту на торрент в живых почти не осталось...
oсталось.

Сколько в граммах? Мне так представляется, что очень немного. Я вспоминаю только одного клиента из тех, которым пользовался, для которого на файрволе требовалось открыть больше одного порта.

QUOTE (FiL @ 06-04-2007, 00:22):
Да и вопрос КОГДА проверять остался. во время каждого анонса?

Ты ж программист небось?:) Во время анонса сравнить текущее время с временем последней проверки пары ip/port из этого анонса и если прошло больше чем полчаса (или час) - проверить еще раз. Это, заметим, снизит нагрузку на трекер - т.к. при старте клиента надо будет в большинстве случаев проверить его один раз, а не по количеству торрентов на раздаче.

Собственно, к чему это я. Ходить и разглядывать глазами через трекер список из полусотни торрентов с целью обнаружить те, на которых получилось lowid - еще то извращение. Со стороны клиента это не решается, только со стороны трекера.


Posted by: FlyDrag on 06-04-2007, 11:12
QUOTE (edenika @ 05-04-2007, 22:09):
Я делаю просто,обновляю трекер,останавливаю торрент,запускаю его ещё раз и всё ОК :)
У тебя три открытых торрента, а у меня - я уже со счета сбился:-) Ходить по ним по всем вручную и рестартовать - у меня вчера руки клаву топтать разболелись :diablo:

Posted by: edenika on 06-04-2007, 13:17
QUOTE (FlyDrag @ 06-04-2007, 11:12):
QUOTE (edenika @ 05-04-2007, 22:09):
Я делаю просто,обновляю трекер,останавливаю торрент,запускаю его ещё раз и всё ОК :)
У тебя три открытых торрента, а у меня - я уже со счета сбился:-) Ходить по ним по всем вручную и рестартовать - у меня вчера руки клаву топтать разболелись :diablo:
FlyDrag Но на большинстве того,что ты раздаёшь нету сидов,а если появиться можно рестартануть делов-то ;)

Posted by: LF_ on 06-04-2007, 15:07
Проблема не в когда, а в зачем - в 99% закрытый порт так и останется закрытым, проверяй его один раз или 5. Можно подумать об отмечании закрытости портов в списке пользователя - тогда сразу будет видно, какой торрент надо перестартовать.

Posted by: FlyDrag on 06-04-2007, 15:51
QUOTE:
FlyDrag Но на большинстве того,что ты раздаёшь нету сидов,а если появиться можно рестартануть делов-то ;)

Сиды-то там как раз есть:-) Только это, как бы объяснить... Оно там как-то на сервере крутицо, и лазить туда проверять и рестартовать - совершенно ненужные телодвижения. Я, конечно, приглядываю, но в основном за закачками и циферками, которые скорость показывают :wink: А следить за появлением качальщиков я уж точно не буду, зачем оно мне надо? Я, собственно, совершенно случайно заметил, что lowid возникло после перезагрузки на некоторых торрентах.

Posted by: FlyDrag on 06-04-2007, 16:18
QUOTE (LF_ @ 06-04-2007, 15:07):
Проблема не в когда, а в зачем - в 99% закрытый порт так и останется закрытым, проверяй его один раз или 5.

Ну, при старте раз пять со случайным интервалом между попытками проверить порт тоже было бы вполне решением проблемы... Сколько раз сейчас проверяется? Если один раз - это ни в какие ворота:) Такс... Два SYNа с интервалом в 3 секунды приходят. Через две секунды после второго трекер присылает OK. Ничего удивительного, что определение lowid подглюкивает.

QUOTE (LF_ @ 06-04-2007, 15:07):
Можно подумать об отмечании закрытости портов в списке пользователя - тогда сразу будет видно, какой торрент надо перестартовать.

Это, в принципе, фича полезная... Только опять ручная работа какая-то требуется в результате...

Posted by: FlyDrag on 16-04-2007, 07:53
QUOTE (FlyDrag @ 06-04-2007, 16:18):
Ничего удивительного, что определение lowid подглюкивает.
Вчера вечером провел более детальное исследование на эту тему. Все оказалось намного забавнее, чем я ожидал.

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

Резюме. В клиенте для listen установлена очередь в 50 соединений (что, исходя из системных настроек) дает фактическую очередь в 75 соединений - примерно столько клиент обрабатывает корректно, все, что больше - получает LowID. Т.е. проблема с "плавающим" LowID для меня наступила тогда, когда у меня стало больше 75 открытых торрентов. Пока исследовал, заметил, что как минимум еще у fedorchh (http://torrent.e2k.ru/userdetails.php?id=43891 та же проблема. Т.е. мы имеем два клиента (rtorrent и BitComet) у которых очередь listen слишком маленькая. Для решения трабла есть два пути - разнести раздачи по нескольким параллельно запущенным клиентам (таким образом, чтобы на каждый приходилось не больше раздач, чем у него стоит аргумент в listen), либо увеличить аргумент в listen.

Я попробовал пойти первым путем и пересобрал rtorrent изменив 50 на 256. Это полностью решило проблему с "плавающим" lowid после старта клиента. Видимо, придется делать баг-репорт.

Posted by: korneliy on 16-04-2007, 08:01
Это сложно назвать багом - торрент же не осел, зачем в него загружать такое количество одноврменно открытых заданий? Я не удивлюсь, если твой "баг-репорт" просто проигнорируют. ;)

Posted by: FlyDrag on 16-04-2007, 11:16
QUOTE (korneliy @ 16-04-2007, 08:01):
Это сложно назвать багом

Любое недокументированное, возникающее не во всех ситуациях поведение - есть баг. Т.е. если в документации написано - мы не поддерживаем больше 50 торрентов под HiID - не вопрос, это фича такая. А когда не написано - это такой баг. :diablo:

QUOTE (korneliy @ 16-04-2007, 08:01):
- торрент же не осел, зачем в него загружать такое количество одноврменно открытых заданий?

А в чем проблема? Трекер не тянет? :fear2: Собственно, я лично не понимаю - чем плохо держать открытыми хоть тысячу раздач? Если железо держит, канал не выход не нагружен (загрузку пожно посмотреть в профиле, ради интереса сделал вчера)? Что предлагаешь снести из моего? B5? :actu:

QUOTE (korneliy @ 16-04-2007, 08:01):
Я не удивлюсь, если твой "баг-репорт" просто проигнорируют. ;)

Думаю, если к баг-репорту приложить протестированный патч, как это принято в opensource, вероятность того, что его интегрируют достаточно велика. В любом случае этот патч можно накатывать самому, либо делить на несколько клиентов.

p.s. Думаю, другим людям, держащим много раздач, эта информация будет полезна...

Posted by: FiL on 16-04-2007, 21:49
Ну изменил на 256. Теперь ограничение будет больше, но все равно будет. То есть это таки фича. Её описать надо, а не чинить.
Ну и чинить, если кому хочется.

Posted by: otsup on 17-04-2007, 01:15
Доброго времени суток!
У меня раньше тоже была похожая проблема: При запуске mtorrent 1.6.1 показывалось часть раздач как нормальные, а часть, как LOWID.

Сейчас всё стало хуже. :-) Все раздачи показываются как LOWID.
Проверка, встроенная в клиент, то же показывает что порт 50110 закрыт.
Пробовал менять порт
Звонил и ругался с провайдером (Барак, Израиль, канал 1500/512)
Проверил открытость порта в раутере (Lynksys WRT54GL)
Подсоединил компьютер напрямую, без раутера.
Всё выключил, отсоединил и подсоединил все провода, включая кабель от HOT, включил.
Переустановил ХР со всеми последними обновлениями.
Выключил ВСЕ Firewall and AntiVirus
Оставил только 2-3 раздачи.
Проверил все рекомендации по настройке mtorrent 1.6.1
С горя закончил курс Microsoft: Network Protocols 2003, хотя у меня стоит ХР :-) Всё равно не помогло.
Проверка
http://www.radiotoolbox.com/online_tools/cantheygetin.php (http://www.radiotoolbox.com/online_tools/cantheygetin.php показывает, что 89.0.хх.ххх:50110 is Open
Мои знания и понимание происходящего закончились.
Помогите, кто знает, что ещё можно проверить. Не дайте потерять веру. :-)

Замечание: Раньше была ещё одна странная проблема. Почти на всех раздачах, даже, где был нормальный ID, писалось типа 10(15). Как я понимаю, что я вижу только 10 клиентов, хотя их всего 15. Почему при высоком ID, всё равно 5 клиентов не видел?
Сейчас ещё одно проявление этой же странности. Раздачу http://torrent.e2k.ru/details.php?id=8735&dllist=1#seeders (http://torrent.e2k.ru/details.php?id=8735&dllist=1#seeders никак не могу докачать, т.к. большую часть времени (иногда Да, иногда НЕТ) не вижу Wowik у которого номальный ID. Написал ему в приват. Он ответил что всё у себя проверил и он меня ничем не режет, но я всё равно его не вижу.

С уважением Роман.

Posted by: FiL on 17-04-2007, 01:56
Порт открыт. Правда, что странно, очень долго коннектится к нему.
Даже и не знаю чем помочь :(

Posted by: otsup on 17-04-2007, 09:02
Перерестаровал всё опять с утра (НИЧЕГО не менял со вчера) и произошло пол чуда: на всех раздачах стал нормальный ID, но http://torrent.e2k.ru/details.php?id=8735&dllist=1#seeders (http://torrent.e2k.ru/details.php?id=8735&dllist=1#seeders всё равно не качает, хоть человек и говорит, что канал у него полностью открыт. У этой раздачи поставил максимальный приоритет. Остальные раздачи качают вполне прилично.
Роман.

Posted by: FlyDrag on 17-04-2007, 11:05
QUOTE (FiL @ 16-04-2007, 21:49):
Ну изменил на 256. Теперь ограничение будет больше, но все равно будет. То есть это таки фича. Её описать надо, а не чинить.
Ну и чинить, если кому хочется.
256 - это эксперимент. Правильный фикс - количество открытых торрентов * X, где X > 1. Думаю, 1.25 самое то. Либо сделать конфигурируемым вручную. Либо, кстати, третий вариант - научить клиента не ломиться на трекер всеми раздачами сразу (т.е. искуственно ограничить количество одновременных соединений на трекер). Вполне возможно, этот вариант оптимален, т.к. он позволит не трогать константу в listen и снизит нагрузку на трекер в момент подключения клиента.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)