Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ ADC _ Непонятки с пассивным и активным режимом пользователей в протоколе ADC

Автор: gif-t 18.2.2012, 19:32

Ссылка ADC портал: http://mydc.ru/r/?http://adcportal.sourceforge.net/ нерабочая. А также они закрыли форум... видимо потому что он пустовал. Описание протокола чересчур минималистичное, а вопросы задавать негде...
К сути, не могу понять, в протоколе не описано вообще про пассивный/активный режим. Многим кажется это очевидным, а мне вот нет.
Подсказали тут что если ipv4 адрес хабом не передан, пользователь пассивный, иначе активный.
Но углубляясь в детали я заметил что некоторые хабы шлют ipv4 адрес отдельно, через некоторое время плсле присоединения.
В таком случае до этого клиент определяется как пассивный, хотя на деле он может таковым и не являться.
Также некоторые хабы вообще не отсылают ip адрес после входа, а отсылают только по команде CTM. До этого все пользователи получается считаются в пассивном режиме? В общем не понятно.
В NMDC к примеру и пассивный и активный режими идентифицировались однозначно и получалось всего 3 - активный, пассивный, неизвестный (если MyINFO не отослана). А в ADC получается всего 2 - активный и неизвестный.
В общем разъясните кто понял.
И также с поисковыми запросами, неуловил никакой корреляции между режимами пользователей и отправляемыми ими поисковыми запросами.
Тут http://mydc.ru/topic2033s20.html?p=37962#entry37962 приведены примеры и показана разница между пассивами FSCH и BSCH, но на практике и то и другое шлют как пассивы, так и активы, если следовать из логики их определение по ip адресу.

Автор: Setuper 18.2.2012, 19:39

В ADC пассивные пользователи не отсылают на хаб ip адрес в команде INF. Действительно зачем этот адрес если с пользователем всё равно соединиться нельзя, ведь обычно это адрес не пользователя, а маршрутизатора, за которым он находится.

Активные пользователи обязаны отправлять на хаб свой ip адрес. Причём если они отправляют адрес 0.0.0.0 для ipv4 (или :: для ipv6), то хаб должен заменять его на соответствующий адрес пользователя.

Автор: gif-t 18.2.2012, 19:42

А как поисковые запросы идентифицировать? Ведь надо знать режим пользователя, чтобы правильно ему ответ отослать

Автор: Setuper 18.2.2012, 20:01

всё определяется из параметра SU команды INF

В ADC протоколе в поле SU команды INF указываются характеристики клиента. Именно исходя из наличия тех или иных характеристик можно судить о пассивности пользователя.

Автор: gif-t 18.2.2012, 20:04

Вы меня еще больше запутали.
Вот пример INF строки

Цитата
INF AADS IDLXOB6SW55E4V4EBGMTV3IUQ3KYH3LDHXZLPN4PY NIrapid22 SL10 SS45863134797 SF6922 HR0 HO0 VE++\s0.782 US2621440 U455705 I489.229.36.214 SUSEGA,ADC0,NAT0 HN11 FS8

В ней передан I4 - т.е. по прошлой логике это активный пользователь. Но в ней передана в SU и NAT0, т.е. по вашим словам пользователь пассивный.
Но есть клиенты, которые не поддерживают NAT0 и не отсылают его в SU, т.е. тогда они все у меня будут активные, что неправильно.
Как именно по SU определять? Что это за те или иные характеристики? big_smile.gif

Автор: Setuper 18.2.2012, 20:10

Про ip адрес я наверное неправильно сказал, хотя это справедливо для некоторых клиентов.

Вообще в ADC нельзя точно сказать: "вот этот пользователь пассивный, а вот этот пользователь - активный". Речь идёт только о степени пассивности. То есть, в каких-то случаях он пассивный, а в каких-то - активный. Всё зависит от типа взаимодействия и от характеристик того или иного пользователя в параметре SU.


Автор: gif-t 18.2.2012, 20:14

А как же мне тогда отвечать на поисковый запрос? Если пользователь активный - мне надо отвечать по UDP, если пассивный, то по TCP через хаб. Если хаб не передает адреса пользователей, тогда все ответы на все поисковые запросы поплывут через него. Все активы будут ждать ответов по UDP и не получат их.
Нужно жесткое определение пассивов и активов, чтобы система функционировала правильно.

Автор: Setuper 18.2.2012, 20:40

Если отошлёшь

Код
FSCH AABO +TCP4 TRI5YBDRKG6KEDTVZ6ABZDYSVURSSRUHKUHWZILGA TOauto
то ответят по TCP естественно через хаб.

Если отошлёшь
Код
BSCH AABO TRI5YBDRKG6KEDTVZ6ABZDYSVURSSRUHKUHWZILGA TOauto
то ответят напрямую либо по UDP, либо по TCP, в зависимости от того что ты поддерживаешь в SU.

Автор: gif-t 18.2.2012, 20:48

В общем понятно, введние этих параметров в запрос очередная, непонятно зачем введенная, избыточность, т.к. в конечном итоге все сходится с параметрами INF

Автор: Setuper 18.2.2012, 20:50

Каких именно параметров? Всё параметры нужны без них ничего работать не будет

Автор: gif-t 18.2.2012, 21:23

Ну я проверил, если в SU у пользователя есть TCP4, он шлет BSCH, если нет, он шлет FSCH.
Т.ч. режим однозначно идентифицируется TCP4.

Автор: Delia 19.2.2012, 4:51

Цитата
Ссылка ADC портал: http://mydc.ru/r/?http://adcportal.sourceforge.net/ нерабочая

Цитата
видимо потому что он пустовал

Капитальный форум и был на ADC портале, и он отнюдь не пустовал.