NAT Traversal and Automatic Client Config

Ideas for ADC may be presented here for others to review and point out flaws or further improve the idea.
Forum rules
If you have an account on the wiki, remember to update the ADC Proposals page for new ideas.

http://dcbase.org/wiki/ADC_Proposals_list
Locked
pR0Ps
Junior Member
Posts: 29
Joined: 05 Dec 2010, 11:35

NAT Traversal and Automatic Client Config

Post by pR0Ps » 14 Dec 2010, 14:46

Now that NATT is going to be implemented to enable downloads between passive users, will there still be any need at all to configure active mode? I would assume that active and passive modes would still exist, but active mode would not be required unless the client you were trying to establish a connection to was passive as well and didn't support NATT. Is this correct? The reason I ask is that I run a DC hub within a university and the biggest problem I have is with users not knowing whether to configure their client mode as active or passive.

Also, would it be possible to have the client automatically configure itself via command sent by hub?
The hub would be able to tell what mode a client is in on connect. Would it also be able to tell if the clients network setup would support active mode? If it could, it would be able to tell the client what mode it should be in for optimal performance. Would this be a valid extension to the ADC protocol?

The sequence would go something like:
1) Client connect
2) Hub determines client must be passive
3) Hub sends a command to the client telling it to go passive
4) Client changes mode to passive
5) Satisfied clueless users

darkKlor
Senior Member
Posts: 100
Joined: 30 Dec 2008, 14:59

Re: NAT Traversal and Automatic Client Config

Post by darkKlor » 15 Dec 2010, 00:17

I think the client would be better placed to determine if passive mode is required, whether at the software level or the user level.

The biggest problem I've seen with users on a LAN is the increasing usage of multiple devices which results in the user deciding they need a router, or unknowingly installing a router. I think you can provide users with some general advice as to what mode is appropriate, though to be honest I'm surprised people get as far as asking the 'active vs passive' question... if they get that far I'd guess they're capable of finding the answer but are just lazy.

Generally:
- If you're on a LAN which the hub is also on and don't have anything between your computer and the hole in the wall your cable plugs into, then go active
- Provide users with a list of clients + minimum versions known to support NATT, if they have one of those they probably don't need to worry.
- If they do have a router, and NATT isn't working for them, let them choose between port forwarding (www.portforward.com helps a lot) or going passive.
- Note also that a software firewall could get in the way, though it's more likely to block access to the hub too

poy
Member
Posts: 78
Joined: 26 Nov 2008, 17:04

Re: NAT Traversal and Automatic Client Config

Post by poy » 16 Dec 2010, 19:30

this has already been implemented (without the help of the hub, though) in DC++ and should see the light of the day in the next release.

in the meantime, you can try it out with one of the beta builds: <http://builds.adcportal.com/index.php?folder=ZGNwcA==>

pR0Ps
Junior Member
Posts: 29
Joined: 05 Dec 2010, 11:35

Re: NAT Traversal and Automatic Client Config

Post by pR0Ps » 18 Dec 2010, 03:15

darkKlor wrote:I think the client would be better placed to determine if passive mode is required, whether at the software level or the user level.

The biggest problem I've seen with users on a LAN is the increasing usage of multiple devices which results in the user deciding they need a router, or unknowingly installing a router. I think you can provide users with some general advice as to what mode is appropriate, though to be honest I'm surprised people get as far as asking the 'active vs passive' question... if they get that far I'd guess they're capable of finding the answer but are just lazy.
It's not that they're lazy, I was generalizing. Users actually don't know what active or passive means, they just know that they can't download and can't search and that something is wrong. I filled in the active vs. passive.
poy wrote:this has already been implemented (without the help of the hub, though) in DC++ and should see the light of the day in the next release.
Good to know, hopefully other clients follow suit. I can't fathom why this hasn't be implemented before.

Locked