Page 1 of 1

BitTorrent Local Service Discovery Receive

PostPosted: 13 Mar 2017 16:21
by ivan386

Re: BitTorrent Local Service Discovery Receive

PostPosted: 13 Mar 2017 17:05
by raspopov
1) You can use CString::Tokenize() for message parsing if you want a whole string duplication, or you can use _tcsnistr() to find substrings in place;
2) OnDatagram() already has filtered host address inside TryRead().

Re: BitTorrent Local Service Discovery Receive

PostPosted: 13 Mar 2017 21:42
by ivan386
Updated

Re: BitTorrent Local Service Discovery Receive

PostPosted: 15 Mar 2017 21:17
by raspopov
IMHO Shareaza filter out any local traffic and LSD is based on local traffic.

Re: BitTorrent Local Service Discovery Receive

PostPosted: 16 Mar 2017 08:25
by ivan386
Пользователь может выключить "Ignore private/local IP addresses"

GT: The user can turn off "Ignore private/local IP addresses"

Re: BitTorrent Local Service Discovery Receive

PostPosted: 16 Mar 2017 16:25
by raspopov
При чём тут пользователь? LSD подразумевает локальные адреса, поэтому шареаза должна обрабатывать такие пакеты отличным от интернета образом. Вообще кажется, что параноя шареаза относительно локальных адресов избыточна...

Re: BitTorrent Local Service Discovery Receive

PostPosted: 16 Mar 2017 20:15
by ivan386
Раньше наверно не было столько народу заперто в локальных сетях поэтому её просто вырубили в Shareaza. А теперь надо учитывать что множество пользователей находятся за NAT в локальной сети провайдера где трафик обычно не ограничивают.

Нужно разделять от кого приходит информация и кому мы её отправляем. Если мы получаем источники в локальной сети с локальной сети то всё норм. Если мы получаем источники в локальной сети с хоста в нитернете то скорей всего это не рабочие адреса.

Соответственно и Shareaza должна отправлять локальные и глобальные источники только тем кто соединён с ней по локальной сети. Локальную сеть тоже нужно разделить на два уровня 192.168.0.0/16 это обычно домашняя сеть и остальные локальные адреса это сеть провайдера.

В домашней сети можно шарить источники: в домашней сети, в сети провайдера, в интернете.
В сети провайдера можно шарить источники: в сети провайдера, в интернете.
В интернете можно шарить источники: в интернете.

Так же нельзя отдавать другим источники не проверенные нами. То есть у нас с ними не было двустороннего прямого общения.

Но это всё не относится к Local Service Discovery так как в ней мы можем расшарить только свой адрес и получить только адрес источника пакета.
------------------------------------------------------------------------------------------------------------------------------------------------------------------
GT:
Previously, probably there were so many people locked in local networks so it was simply cut down in Shareaza. And now you have to take into account that a lot of users are behind NAT in the local network of the provider where traffic is usually not limited.

It is necessary to separate from whom information comes and to whom we send it. If we get sources in the local network from the local network, then all the rules. If we get sources in the local network from the host in the network, then most likely these are not work addresses.

Accordingly, Shareaza should send local and global sources only to those who are connected to it on the local network. The local network also needs to be divided into two levels 192.168.0.0/16 this is usually a home network and other local addresses are the provider network.

In the home network, sources can be fumbled: in the home network, in the provider's network, on the Internet.
In the network of the provider you can fumble sources: in the provider's network, on the Internet.
On the Internet you can search sources: on the Internet.

It is also impossible to give to others sources not checked by us. That is, we did not have a bilateral direct communication with them.

But this all does not apply to Local Service Discovery because in it we can only share our address and get only the source address of the package.

Re: BitTorrent Local Service Discovery Receive

PostPosted: 19 Mar 2017 10:54
by raspopov
Added in r9671 with some re-factoring.

Also I enabled datagrams from local addresses, but we need more investigation safe it or not since packets content still filtered out for unreachable sources in many places.

ivan386, Когда я говорил про _tcsnistr() я имел в виду что-то типа этого.

Я проверил BitTorrent 7.9.9, теперь, получив LSD-пакет по локалке, шареаза добавляет источник к текущему торренту, и рано или поздно пробует его в режиме пуша, что приводит к успшной закачки по локальной сети.