myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
2 страниц V   1 2 >

AMD
Отправлено: 26.2.2012, 10:12


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(gif-t @ 24.2.2012, 0:06) *
Что-то я пытался разобраться с DHT, но нигде нормальной документации с примерами последовательностей подключения и обмена командами не нашел... Пытался даже как-то отснифферить, но ничего не вышло, в бинарных командах непросто разобраться.

они не бинарные. это обычные текстовые ADC-команды, пожатые zlib и закрытые RC4 (устаревший шифр. защищает скорее не от взлома, а от технической блокировки на оборудовании провайдера. слегка пришифрованный пакет нельзя классифицировать как DC++ и заблокировать, ведь это также может быть SIP или Skype, чего закрывать нельзя)

в открытом виде DHT-обмен можно посмотреть в окне отладчика в greylink
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42892 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 20.2.2012, 22:52


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


тексты/бинари, байты/спрайты, нравится/нет это все шелуха.
настоящая проблема - в организации DC сети: каждый пук любого клиента транслируется на тысячи соединений и никакая экономия пяти байт в заголовке это не исправит.

нужно закрыть общий чат, сделать тематические комнаты, куда будут заходить люди по интересам (будет не более 200 чел на комнату и обсуждение в одной комнате не будет транслироваться на весь хаб - какая экономия).
а то и вообще чат отключить - нефиг, для этого есть IRC (можно даже использовать инфраструктуру IRC, чтобы было привычно. зашёл в хабик - увидел список IRC-комнат, подключился, чат идёт не по хаб-каналу, а через IRC)

нужно доделать DHT-поиск, чтобы он искал не только по TTH, а полноценно по имени файла. тогда весь поисковый трафик плавно размажется по всей сети и не будет узким местом.

хабы - это точки входа в DHT-сеть и не более того.
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42806 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 17.2.2012, 22:32


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(Setuper @ 16.2.2012, 17:18) *
Если использовать ASCII, то это уже не ADC протокол. Перекраивать это никто не собирается.

формально - да. а по факту, никто не проверяет, из каких символов собран SID.
если сделать версию ADC 1.001, где в SID разрешены любые знаки, клиенты будут автоматически его поддерживать

Цитата(gif-t @ 17.2.2012, 0:10) *
И вы сейчас так рукой махаете, типо а о чём речь? какой миллион? современное железо даже 100000 не потянет.... а вот посмотрим что будет через 20 лет.
В общем ограничений быть не должно, или оно должно быть запредельным, хотябы 64 бита.

ограничение на 4 символа удобно для обработки на 32-битных машинах.
никто не мешает сделать ADC 2.0, где SID может быть из 8 символов (чтобы помещаться в 64 битную переменную).
протокол текстовый, ничего не сломается. клиентов переделать - задача на 15 минут.
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42747 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 15.2.2012, 22:30


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(nail @ 14.2.2012, 4:14) *
Не понимаю, в чем смысл вводить столько глупых ограничений?
Надо фиксить это в клиентах, удалять нафиг такие алгоритмические лажи. Протокол должен быть максимально гибок.
+ это же значительная и вообще бессмысленная нагрузка на хабы...

приватные хабы и всё такое.
заходишь - прошёл регистрацию - можешь качать. иначе насканил портов через nmap, нашёл dc++, дёрнул файл-лист и давай приватные файлы выкачивать

публичные хабы - вершина айсберга dc++

Цитата(nail @ 14.2.2012, 4:14) *
Еще я выяснил что в протокол NMDC не заложено ограничение на количество пользователей, а в ADC заложено - 1 048 576.
Это ошибка из области ipv4 или 32 битных систем. И в первом и во втором случае лимиты были достигнуты намного раньше чем предполагалось.

да ну фигня. SID везде в клиентах и хабах хранится как Int32. просто генераторы, применяемые в текущих хабах, берут символы из набора base32.
если брать все ASCII-знаки (вроме пробела), sid останется красиво читаемым и ёмкость хаба будет (128-32-1)^4 = 81 450 625 юзеров.
даже сейчас можно в SID класть любые байты, экранируя \n и \s согласно правилам кодирования в протоколе.
так что легко модифицировать генератор SID-ов в хабе - расширить ёмкость до 4 миллиардов, и это без потери совместимости с самыми ранними adc-клиентами.
но дальше уже лимит протокола
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42713 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 13.2.2012, 20:10


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(nail @ 13.2.2012, 1:36) *
Еще всетаки опционально могли бы сделать передачу TCP портов в INF и отключение команды RCM на хабе, т.к. не все админы хотят ограничивать некоторым пользователям файлообмен, и включение такой опции немного снизило бы трафик и нагрузку на ADC хабах, т.к. пассивные пользователи могли бы соединяться с активными напрямую, без отправки хабу RCM.

не-мо-гли-бы ни-ког-да!

что написано в референсном коде принятия соединения?
Код
                // Try to guess where this came from...
                pair<string, string> i = expectedConnections.remove(aNick);
                if(i.second.empty()) {
                        dcassert(i.first.empty());
                        dcdebug("Unknown incoming connection from %s\n", aNick.c_str());
                        putConnection(aSource);
                        return;
                }

это NMDC.
ADC проверяется ещё и по токену, который прошёл через хаб.

если хаб не предупредил, что сейчас будет соединение от юзера, оно просто дропается.
конечно, если переделать все-все клиенты... но это фантастика.
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42678 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 12.2.2012, 21:06


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(Setuper @ 12.2.2012, 20:10) *
Если разработчики флая поддержат их концепцию, то это значительно ухудшит ситуацию с распространением протокола ADC.
А так ещё есть шанс, что по мере получения ipv6 юзеры будут активнее юзать ADC. ADC протокол более продуманный, чем NMDC в части минимизации трафика.

да, ADC-команда может содержать одновременно v4 и v6-адреса. без потери совместимости с существующими клиентами.
но вопрос второго коннекта клиента к хабу для подтверждения адреса в ADC не решён.

так что тут есть поле для велосипедостроения )))
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42665 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 11.2.2012, 11:55


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(nail @ 9.2.2012, 3:05) *
Сделали редирект, домен вроде тот-же, но ни флай, ни стронг, ни другие клиенты не определили этот хаб как тот же. Более того все клиенты считают что эти варианты:
это всё разными хабами

грелка кстати запилил похожую фичу с полгода назад:

0.50-x64 (25.08.2011)
Поиск по открытым хабам при открытии dchub: или adc: ссылки. Если хаб уже открыт с другим url, но тем же ip+port, новое окно не открывается (OCTAGRAM)


Цитата(Saymon21 @ 10.2.2012, 21:19) *
Либо я не понял вашего поста, либо вы просто быстро забываете, что пишите.

вы пытаетесь зацепиться за невежество оппонента и послать его на RFC (что конечно правильно).
одна фактическая ошибка - и дальше, как в математическом доказательстве, вы всё последующее считаете несостоятельным.

но лучше попытаться расшифровать, что хотел сказать gift.
я так понял, он предлагает сделать доверенные зоны. при переходе на другой хаб без смены доменного имени клиент может передать те же логин/пароль, с какого хаба его переадресовали, считая, что пароль не уйдёт левым людям

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

кстати, в ADC есть referer big_smile.gif
http://dcpp.wordpress.com/2008/01/17/adc-hub-referrer/
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42629 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 8.2.2012, 20:39


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(ShadoWx @ 8.2.2012, 7:21) *
да смигрировать тем же xinetd или inetd сделать перенаправление ...я уже так делал =(

честно - не понял, как это.
я говорил о редиректе на уровне протоколов NMDC/ADC, а не TCP
если направить юзеров NMDC-хаба на порт ADC-хаба, конечно ничего хорошего не получится
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42567 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 7.2.2012, 20:09


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(ShadoWx @ 7.2.2012, 8:27) *
в моих интересах чтобы была нормальная поддержка Ipv6 в nmdc.
И останется просто продолжать ждать того момента, когда большинство поймут что старые клиенты уже бесполезны...

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

а смигрировать юзеров не так сложно. не нужно закрывать старый порт, нужно делать редирект на adc
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42555 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 5.2.2012, 21:42


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(gif-t @ 5.2.2012, 22:07) *
Не нашел описания ключей в INF: AP, FS, KP

FS - число свободных слотов. описано в change log для DC++ 0.781
KP - http://forums.apexdc.net/topic/3075-keyp-k...draft-proposal/
AP - дополнение к VE. раньше было - VE="Flylink r501", а теперь AP=FlyLink, VE=r501. для порядка разделили. по пол-ву байт небольшая разница

Цитата(gif-t @ 5.2.2012, 22:07) *
А также не нашел ключа, определяющего режим клиента (пассив/актив)

для пассива I4=0.0.0.0, т.е. внешний IP-адрес не существует

Цитата(gif-t @ 5.2.2012, 22:07) *
и не нашел ключа, определяющего DHT порт

разумеется, хаб не знает о DHT

Цитата(gif-t @ 5.2.2012, 22:07) *
Не понял почему в INF отсылаются только UDP порты, почему нет TCP???? Ведь если всего лишь отослать TCP порты в INF, можно сразу исключить команду RCM! И при необходимости клиенты могли бы сразу соединялись с нужными им клиентоми, без отсылки команы RCM хабу. У хаба и так других дел полно...

tcp-порт динамический для возможности работы с Socks5.
хаб фильтрует все коннекты для обеспечения господства админов (типа, если ты плохой, в наказание качать на этом хабе ничего не сможешь)

Цитата(gif-t @ 5.2.2012, 22:07) *
Про \s \n и т.д. я вообще молчу, этот мега костыль сразу бросается в глаза.
Протокол построен неидеально и явно не продуман до конца... не понимаю, вроде там написано куча народа собралась для его разработки... как вообще такое могло получиться?

в NMDC тоже есть escape-символы, экранирующие | $ & и прочие служебные. в ADC экранируется только \s \n + принудительная поддержка Unicode - тоже огромный шаг вперёд.


Цитата(gif-t @ 5.2.2012, 22:07) *
US максимальная скорость закачки (байт/сек), а DS максимальная скорость скачки (байт/сек) - не определено относительно кого? Самого пользователя о котором информация или относительно других пользователей?

DS пишет сам юзер. например, я указал свою скорость инета (по тарифу) - 40 мегабит. в DS передаётся DS5000000 (5 МБ/с).
US совпадает с DS

но если выставлен лимитер на up или down, в этих свойствах появляется информация из лимитера, тогда DS и US могут различаться.

  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42507 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 5.2.2012, 14:18


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(Setuper @ 5.2.2012, 14:59) *
Ну этот контроль уже должен быть на стороне клиента, если не получается отослать $MyNick по ipv4, то значит не дано и клиент должен переподключиться без IPv4 в $Supports.

когда делаешь протокол, надо думать на 2 хода вперёд.

по моему сценарию, если v4-канал недоступен, клиент просто в чат выведет предупреждение.
если юзер далёк от технических тонкостей, он просто проигнорирует и будет качать только с некоторых пиров. иначе поднастроит.

никто, я уверен, не будет писать логику переподключения с урезанным набором в Supports на второй попытке. то есть костыль прямо таки напрашивается.
сначала введут галочку в клиент "не использовать IPv4 при входе на v6-хаб", затем её попросят сделать индивидуально для хаба.
и ещё откроют кучу тем на форумах по этой проблеме. зачем, если заранее можно сдлать хорошо. тем более, это не усложняет код, а упрощает (либо никак не влияет).
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42492 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 5.2.2012, 12:36


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(Setuper @ 5.2.2012, 12:53) *
2. Ты неправильно понял. Никакого второго входа не происходит, точнее происходит, но с отсылкой всего лишь одной команды, а не полного входа. И схема защищена от подделки, так как пользователь не считается вошедшим, пока не отошлёт эту команду. Другой пользователь не может передать тот же ник в этой команде, так как это возможно сделать только на стадии входа, а не когда либо. Теоретически это конечно возможно, но обычно ты не знаешь когда войдёт тот или иной пользователь. Конечно можно сидеть и сниферить его соединение с хабом, но это специфичный и очень редкий случай. На этот случай защита может быть со стороны клиента.

ок. я просто посчитал, что дополнительная защита не помешает

Цитата(Setuper @ 5.2.2012, 12:53) *
3. В птохе по всей видимости предполагается, что адреса известны, ибо под них существую строгие настройки на хабе.

самой птохе известны. а клиент-то как узнает? например, клиент заходит на хаб по голому IPv6-адресу или IPv4 DNS от сервиса динамических IP

Цитата(Setuper @ 5.2.2012, 12:53) *
На ожидание команды $MyNick отводится определенное время ожидания, если за это время она не была отослана, то клиент отключается. Это время достаточно большое чтобы обойти любые неполадки в сети. И это ничем не отличается от времени ожидания любой другой команды входа!

я о ситуации, когда v6-пакеты ходят, а v4 - не ходят. тогда клиент вообще не сможет зайти на хаб. а можно заранее продумать эту ситуацию и минимизировать проблемы у юзера
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42490 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 5.2.2012, 10:44


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(Setuper @ 5.2.2012, 1:49) *
Если соединение с хабом происходит по ipv6, то в команде $Supports может быть отослана характеристика IPv4.
...
Вот это грамотный подход.

минусы есть, в сравнении с тем, что я предлагал на предыдущей странице
1. Supports IPv4 высылается только при коннекте по IPv6. а хотелось бы симметрично: при коннекте по IPv4 уметь альтернативно указать v6 (Supports IPv6). чтобы не заморачиваться выбором разных Supports можно вместо двух придумать один общий
2. схема второго коннекта избыточна. я так понимаю, происходит обычный вход (Lock, Supports, Hello, Version, MyNick, ...) причём схема не защищает от подделки. ведь по v4 может зайти другой юзер с другого IP и передать тот же ник. одноразовый пароль лучше. ну и, что хуже, кусок обработчика протокола для второго коннекта нужно будет приделывать в клиент и хаб, когда предложенный выше вариант был наиболее простым: посылка - ответ.
3. хаб не передаёт свой альтернативный адрес (например, v4 при входе по v6). вычислить его нельзя. DNS? а если хаб на IP, без доменного имени. бесплатный DNS, типа no-ip.org? там он не может полноценно одновременно регистрировать запись и v4, и v6. клиент не должен угадывать второй адрес хаба. хаб должен сам его сообщить


Цитата(Setuper @ 5.2.2012, 1:49) *
в команде $Supports может быть отослана характеристика IPv4. В этом случае клиент не будет считаться вошедшим на хаб, пока после команды $MyINFO он не отошлёт на хаб через ipv4

вот это тоже не нравится. коннект на второй адрес всё равно асинхронный, неизвестно когда произойдёт.
намного проще не переводить таких юзеров в "отстойник" для ожидающих подтверждения v4 (а в реальном мире могут быть технические проблемы и подтверждение не произойдёт), а разрешить юзеру дополнительно авторизоваться позже в любой момент. даже порт на это дело выделить другой, чтобы не смешивать протоколы. после авторизации второго адреса IP-фильтр в $Search и $ConnectToMe будет узнавать второй адрес и не блокировать его
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42488 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 23:24


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(gif-t @ 4.2.2012, 20:13) *
не нашел описание функции hash(PID) == CID

это обычный TTH
39-символьный PID декодируется в 24 байта двоичных данных (алгоритмом Base32).
затем считаем TTH, как если бы эти 24 байта были записаны в файл.
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42481 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 19:06


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


одного не понимаю: зачем делать новый хаб на старом протоколе?
поддержка супер-навороченных старых хабов - понятна.

но в новом... пользователям протокол без разницы, а админам и программерам ADC удобнее.
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42479 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 18:47


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(Setuper @ 4.2.2012, 19:37) *
В любом случае от хаба ничего не нужно. Все изменения со стороны клиента.

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


Цитата(gif-t @ 4.2.2012, 19:44) *
Где навороченность? Навороченность - это ADC протокол.
У меня просто 3 команды с простой структурой для обработки. Яж не предлагаю устанавливать 2 соединения с хабом, слать всякие ключи, генерировать ID и т.п.
Всё очень просто, вы наверно полностью не вникли...

ну вроде RusHub и FlyLink - опенсорс. можешь проверить свою гипотезу о простоте изменений )))


Цитата(gif-t @ 4.2.2012, 19:44) *
Яж не предлагаю устанавливать 2 соединения с хабом, слать всякие ключи, генерировать ID и т.п.

но так ты и не решаешь проблему подтверждения второго ip, позволяя проводить махинации, используя хаб для DDoS
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42474 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 18:28


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(Setuper @ 4.2.2012, 19:18) *
Все же придерживаюсь моей точки зрения: использование для соединения старых команд как с ipv4, так и с ipv6, определяя тип ip противоположной стороны по команде $UserIP.

можно. только UserIP немного излишняя. нужно только знать, какие протоколы поддерживает пир.
помог бы какой-нибудь флажок типа "бомба", но флажки, увы, уже все разобраны (можно у грея отхапать флажки М/Ж, но тогда будет неразбериха).
можно в тег признак

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

опять же, не решается вопрос передачи двух адресов сразу. если сделать только флажки (умеет ли клиент v4 и v6), задача $ConnectToMe решается.
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42470 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 18:17


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(gif-t @ 4.2.2012, 19:15) *
В старых командах кстати добавление портов не предусмотрено.

а старые - это какие?
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42468 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 18:11


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(gif-t @ 4.2.2012, 19:08) *
Чем вам эта схема не угодила? Вы считаете нужно наоткрывать кучу портов и в каждом коннекте указывать новый?

это придётся делать при работе через Socks5.
хотя наверное мало кто ходит в dc через прокси
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42466 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 18:01


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768



Цитата(gif-t @ 4.2.2012, 18:58) *
Нет, замена не происходит. Клиент отсылает хабу новую и старую. Хотя я против этого...
В общем хабу не нужно формировать старую, он просто отсылает старую старым клиентам, новую новым. Вот и всё.

а, тогда всё вообще элементарно!
пусть клиент посылает команды $ConnectToMe и $Search в старом виде но два раза - с v4 и v6 адресами.
а там уже что-то как-то законектится и поищется )))
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42461 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 17:56


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(gif-t @ 4.2.2012, 18:54) *
Дак написано же, а старым слать старые!

уточни, замена команды происходит на хабе?
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42459 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 17:51


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(gif-t @ 4.2.2012, 18:40) *
А чего сожного, я предлогаю для новых клиентов старые команды заменить тремя новыми
$UserIP -> $UIP
$ConnectToMe и $RevConnectToMe -> $CTM
$Search -> $SCH.
А старым слать старые.

юз-кейс: старый клиент хочет скачать с нового, у него ничего не получается, он уходит с хаба )))
очень важно, чтобы как можно больше старых клиентов работали полноценно.
быстро сделает новый клиент только Fly, а остальные (gl и т.п.) просто не будут менять клиента из-за одного хаба.

Цитата(Setuper @ 4.2.2012, 18:40) *
и не надо огород городить

http://xkcd.com/927/
;)
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42456 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 17:36


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


как-то всё слишком сложно. сразу нифига ничего не будет в клиентах, особенно в старых и упёртых Апексах.
нужно, чтобы пользователи как можно меньше замечали двойственность адресов и старые клиенты работали на полную

моё предложение:

1. клиент, умеющий два протокола выставляет "DualPro" в $Supports
2. хаб после входа такого клиента придумывает ему уникальный(!) одноразовый 16-значный пароль (но длина пароля пусть не фиксируется протоколом) и высылает команду
$DualAddress <адрес-проверки> <порт> <пароль>
<адрес-проверки> - v6, если клиент зашёл по v4, и наоборот v4, если основное подключение v6
3. клиент в любой ему удобный момент подключается по адресу+порту и передаёт строку
$DualPsw <пароль>
4. сервер отвечает $ОК, если пароль верен либо $ХУЙ, если неверен. так клиент узнаёт, послали его с паролем или нет. проверочное соединение закрывается
5. сервер теперь знает все v4 и v6 адреса клиентов.
6. клиент пользуется старыми командами, указывая v4 или v6 по своему усмотрению.
7. сервер, при передаче $ConnectToMe или массовой рассылке $Search, проверяет, может ли получатель оперировать тем же адресом, что и отправитель. если не может - заменяет адрес (такие замены, по идее, редкое явление). если замена невозможна (у одного только v4, а у другого только v6), посылка дропается
8. ???
9. PROFIT
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42452 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 17:12


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


Цитата(gif-t @ 4.2.2012, 17:48) *
И надо посмотреть как в торренте. Лично я не хочу урезать функциональность протокола только потому что что-то там тяжело реализовать.

в торренте тупо. зашёл на трекер по v6 - ты точно v6, зашёл по v4 - ты v4 и тебе трекер отдаёт список v4-пиров.
смешение 6 и 4 происходит через DHT, однако эти сети полностью разделены и независимы
Цитата
There are two distinct DHTs: the IPv4 DHT, and the IPv6 DHT.
The two DHTs are independent, meaning that no IPv6 data is stored in the IPv4 DHT, and, conversely, no IPv4 data is stored in the IPv6 DHT. A node wishing to participate in both DHTs must maintain two distinct routing tables, one for IPv4 and one for IPv6.

http://bittorrent.org/beps/bep_0032.html

нашлись альтернативные источники в DHT v6 - вот и качаешь с них

Цитата(gif-t @ 4.2.2012, 18:03) *
Передаем только тот адрес, по которому клиент соединен с хабом, а также TCP порт для установки соединения и UDP порт для ловли поисковых ответов.
Так?

откуда-ж мы порты знаем?
надо ещё менять команду $MyInfo, чтобы она отдавала все эти порты.
тогда прощай работа через Socks5 в активном режиме, когда нет постоянного входящего порта, а он открывается каждый раз новый по необходимости
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42449 · Ответов: 109 · Просмотров: 90 176

AMD
Отправлено: 4.2.2012, 16:38


Начинающий
*

Группа: Пользователи
Сообщений: 28
Регистрация: 3.7.2009
Пользователь №: 3 768


обычный dc++ хаб не принимает IP клиента, он смотрит с какого адреса произошло соединение с хабом.

посему, чтобы подтвердить не один адрес, а пару, клиент обязан создать два коннекта (4 и 6) к хабу и криптографическими методами доказать, что они от одного источника (по одной лишь паре адресов v4 и v6 технически невозможно установить, что они принадлежат одному клиенту)

соответственно, либо мы строго решаем вопрос аутентификации, либо сознательно на него забиваем, оставляя пространство для махинаций и ДоС-атак (например, Петя с адреса 22.33.44.55 подключается к хабу и говорит - Вася, коннектся на мой IPv6 - и подставяет адрес Миши. так он законнектил Васю с Мишей против их желания)

самое простое - юзер открывает две вкладки хаба (по разным адресам - v4 и v6). на одной вкладе - только юзеры v4, на другой - только v6. и ничего в протоколе менять не надо
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #42445 · Ответов: 109 · Просмотров: 90 176

2 страниц V   1 2 >

New Posts  Открытая тема (есть новые ответы)
No New Posts  Открытая тема (нет новых ответов)
Hot topic  Горячая тема (есть новые ответы)
No new  Горячая тема (нет новых ответов)
Poll  Опрос (есть новые голоса)
No new votes  Опрос (нет новых голосов)
Closed  Закрытая тема
Moved  Тема перемещена
 

RSS Сейчас: 10.5.2024, 13:38