Sign in to follow this  
Followers 0
Zlobomir

Connection between two passive users?

22 posts in this topic

Hello,

The user DMaL asked me via PM to ask you about the the following scenario:

1. A passive user (X) tries to connect to another passive user (Y), hub is (Z).

2. After Z checks the X's mode, it sees that user X is passive.

3. Z turns to Y (like an active user would do), gets the data, sends it to X and vice-versa.

IMHO, seen limitations by me:

1. It is probably mostly hubsoft-related than client-related (but there may be smth necessary to change in the client also).

2. Hub overload.

3. Centralization.

Thanks to DMaL for the idea, I think it will be good if this can be implemented.

Share this post


Link to post
Share on other sites

The limitations you mentioned are massive. Massive enough to put do it I believe. As stated, you would need to work with a hubsoft to do this which we currently are not. However, that's just a question of developing it, it's the hub overload thing that's a real issue. Hubs already are overloaded by passive users, and that's jsut because of the bandwidth they need for searching etc., and now you want all data they are transfering to be downloaded then uploaded by the hub? Realistically speaking that will next happen. Say a hub has 5 passive users on a hub, all downloading from each other, who have maybe 2mbit connections (plenty of people have faster) then the hub is supposed to be constantly uploading and download at 10mbit, ontop of what is already happening. There is no way hubs can actually do that. even the best of dedicated servers cannot hope with a few users on a fast connection.

It's more realistic to just kind a way for two passive users to connect to each other.

Share this post


Link to post
Share on other sites

Yes, I was afraid it's so. And if we implement this feature, there will be one reason less for people to upgrade to real IPs, so we will stop Internet progress. :angry:

Share this post


Link to post
Share on other sites

Хорошо, тогда спроси такую штуку.

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

Best regards.

Share this post


Link to post
Share on other sites

Хорошо, тогда спроси такую штуку.

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

Best regards.

For example, we have hub with passive and active users. Passive user want look or download from other passive user. His client ask anyone free active user "may I see through you what other pasive user have". If active user give permision through him passive user start download. If no permision search other active user. Server in this case don't overload not a bit.

Translator diagram:

Pasive User <--> Active User <--> Pasive User

Active User is mediator between two pasive users connection.

Thanks to: www.translate.ru and www.rambler.ru/dict

Share this post


Link to post
Share on other sites

Хорошо, тогда спроси такую штуку.

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

Best regards.

Okey Dokey, translation here :D :

OK, then see another example:

Imagine there is a hub with active and pasive users in it. So, user in passive mode wants to see or download something from another passive user. His client (the client of the first user) asks any available user in active mode "Can I look through you, what the second passive user has?". If the active user permits, transmission begins via this active user. If not, another active user is asked. In this case the hub is not loaded at all.

С поздравлением ;)

Note: It may not be necessary to ask several active users. Apex DC++ can have in its settings an option "I would like to be a ?proxy? between passive users" and a field to specify what part of his bandwidth the user would like to share. This info can be send to the hub, so the hub will manage the traffic in an intelligent way.

Примечание: Можно не будет обязательно спрашивать несколько активние юзери. Апекс ДЦ++ можно имеет опция "Я согласен быть ?прокси? между пасивние юзери" и также поле для означения какая часть из скорост юзера он согласен споделить. Эта информация можеть быть прислана к хабе, так что хаб способен управлять трафик в интелигентний режим.

Share this post


Link to post
Share on other sites

ИМХО, тут большая завязка с хабом. А так как всех хабостроителей не заставишь добавить такую фичу, накроется все медным тазом.

Быть прокси поинтереснее фишка, но много ли народу согласятся и захотят ли авторы апекса быть настолько революционными?)

Share this post


Link to post
Share on other sites
You know you want to translate that for us Zlobomir?
lmao .... thanks loads Zlobomir ;)

Share this post


Link to post
Share on other sites

ИМХО, тут большая завязка с хабом. А так как всех хабостроителей не заставишь добавить такую фичу, накроется все медным тазом.

Быть прокси поинтереснее фишка, но много ли народу согласятся и захотят ли авторы апекса быть настолько революционными?)

--Off-- amp, your cover is blown up, English please. :D (I know it was most for DMaL, but PM then ;) ) --Off--

IMHO, here is lots of work with the hub. And if don't make all hub programmers add such feature, ?it will be useless?

To be a proxy is an interesting idea, but how many people will agree and will Apex's authors so revolutionary?

Share this post


Link to post
Share on other sites

Thanks again Zlobomir (and also iDemon ;)).

That idea is actually rather interesting, and maybe wouldn't need the hubsoft, although I know very little. It would also mean centralization would not be an issue. It would (to a point at least) not lead to passive hub overload like I thought they meant. I do not know how practical or actually possible to develop it would be.

Share this post


Link to post
Share on other sites

...anybody think there about little hack...

...I don't know how work active\passive mode, but...

...when passive user try download from passive user DC must automatically say to this user "I'm active!" and start downloading...

...is it possible?

Share this post


Link to post
Share on other sites

...when passive user try download from passive user DC must automatically say to this user "I'm active!" and start downloading...

...is it possible?

Passive mode isn't there just to piss you off. It's for people who either cannot open a ports. You can say you are active all you want, but if there isn't a port open, your firewall / router is just going to reject all the data.

If you don't believe me, and you are passive, switch your settings to active mode. And then watch you timeout on everything, since you cannot receive any data. :D

Share this post


Link to post
Share on other sites

Very well put Pothead :D even handing out simple guides people dont understand that. B)

Share this post


Link to post
Share on other sites

Even if this was to be implemented, I don't think it's something which will be ready for the next version. :) Crise already is swamped in features to code really.

Share this post


Link to post
Share on other sites
these people have also thought about it, and there is a very good explanation of something that could work: http://midcom-p2p.sourceforge.net/
That's for NAT problems, not closed ports. DC++ handles network addres translation fine. It you read the Technical specification, you still need to open a UDP port for that to work. :)

Share this post


Link to post
Share on other sites

That's for NAT problems, not closed ports. DC++ handles network addres translation fine. It you read the Technical specification, you still need to open a UDP port for that to work. :)

ok, ok, i hadn't read (*and understood*) all the details... :blushing:

actually, i got the link from here: http://dcpp.net/bugzilla/show_bug.cgi?id=50#c3

edit: i've re-read (*and understood*) it a bit more, and i think the whole thing is about not having to open an UDP port by yourself:

Although B's NAT will initially filter out any UDP packets arriving from C's public (NATted) UDP port directed at B's public port, the first UDP message B sends to C will cause B's NAT to open up a new UDP session keyed on C's public port, allowing future incoming traffic from C to pass through the NAT to B. Similarly, the first few messages from B to C may be filtered out by C's NAT, but will be able to start passing through the firewall as soon as C's first message to B causes C's NAT to open up a new session. In this way, each NAT is tricked into thinking that its respective internal host is the "initiator" of this new session, when in fact the session is fully symmetrical and was initiated (with A's help) simultaneously in each direction.

Share this post


Link to post
Share on other sites

I beg, not to implement this feature.

People will be even more less inclined to switch to "active " mode.

And while I have symapthy for those, who simply can't because of various circumstances, I do not want some lazy bum using bandwith that might be put to better use.

Share this post


Link to post
Share on other sites

I beg, not to implement this feature.

People will be even more less inclined to switch to "active " mode.

And while I have symapthy for those, who simply can't because of various circumstances, I do not want some lazy bum using bandwith that might be put to better use.

Then the feature may be used with some limitation, so users still would prefer pure active mode.

Share this post


Link to post
Share on other sites

Those should be very good and convincing limitations. The more users remain passive, the less active users will have to do the proxy work, wasting their bandwidth, CPU and in some cases maybe even ISP sympathy... ^_^

But still, I find this a good idea. I would gladly "donate" some of my bandwidth for those who really cannot set to active mode since anyway I'm normally online in hubs 24/7 while actually downloading for only a few minutes a day...

Share this post


Link to post
Share on other sites

Maybe this could be solved by introducing third applicatin, some kind of DC proxy, so if user is passive and cannot use anything to became visible (including portforwarding on his NAT) then he simply could set his DC client to use DC proxy which would make him virtualy active (as proxy should be set on public IP). This approach would work with any hub.

DC proxies could be set by willing third parties, not even relatied to specific hub's (and of course they could choose who they would allow to use proxy and what hubs to connect to).

Share this post


Link to post
Share on other sites
Sign in to follow this  
Followers 0