Setting Up Your DC
Introduction
This is a tutorial on how to set up your DirectConnect client. It is important that before you
begin reading this, you make sure that your client is completely up-to-date and is a good client.
If you are not sure, please look carefully in the list found here and choose a client that is
both updated and good. You may have to change your client if you can find it in the "Obsolete
software" table, this tutorial will most likely not help you with any of those clients.
When setting up your DC client, it is important that you do not get scared by the multitude of
options. Most of them are self-explanatory, and a lot of the others are settings so advanced or
so insignificant that chances are you will never get to use them.
Also, please keep in mind that DirectConnect software is network- and Internet-based, therefore
making a computer with no properly-configured network or Internet connection rather an impediment
than anything else in your way to configure your DC client. Before you even begin, please check
whether everything is in order and you can access other computers or the Internet.
If you have checked everything and you are ready to go, then start reading on.
Managing the Settings
Start your DC program (I chose ApexDC++ for this tutorial) and click on
the "Settings" button in the toolbar (or "File" -> "Settings" menu, it should be easy).
Keep in mind that the red X you will see on the screenshots marks the settings that one must tingle
with, following this tutorial.
1. The "General" page
This is the most basic screen, where you will configure your identity.
There are three options you have to set here. First, set your nickname (and please, do not use
stupid things like l33t_k@ng or anything similar to that). Also, please make sure that the
"Show Limiter" and "Show slots" options are unchecked, like in the screenshot.
Also, no matter how much you want to, DO NOT fill in the e-mail field!
Ever wondered how people's e-mail addresses end up on spammers' lists? Well, now you know! Resist
the urge, fight the spammers!
The "Description" field is completely optional, most people leave it blank.
2. The "Connection Settings" page
This page is actually the heart of your connection and upload/download ability. You will have to be
VERY careful what you input here, otherwise connecting may not work.
WARNING !!!
Make sure that your DC is up-to-date !!!
You can see a list of the most up-to-date DCs here.
If your DC is not on that list, please change it with one from that list.
If your DC is on that list, make sure the version number is the latest available (recommended downloads
are on that page).
If you ignore this, we cannot guarantee your success.
First of all, leave the "Bind Address" field to 0.0.0.0 for your first attempt at settings. You
will be able to change it later if you wish to get more advanced. This field determines which
network interface should ApexDC++ be bound to (for instance,
if you have multiple Internet connections, this might be useful for restricting ApexDC++
to only one of them).
Next comes the more difficult part: figuring out your network topology.
There are two major possibilities that we will focus on this time:
- The direct connection
- The NAT connection
Possibility 1: the direct connection
Basically, the direct connection can be invoked when you actually see the Internet cable
entering your PC. As a diagram, it would look like this:
It is quite simple. However, if you have an IP address like 192.168.*.* or 10.*.*.*, then do NOT fool
yourself, you are NOT connected to the Internet directly, but through a NAT, and, so, you will have
to check the second option.
In the case of the direct connection, you should not go for the "Direct Connection" option, and for a
fairly simple reason: The "Direct Connection" options jumbles with port numbers (both TCP and UDP),
and you may end up ApexDC++ using up one of your other
application's ports.
Indeed, it is much better to use UPnP (where possible), or, if not possible (and this will be the
case of most people), "Firewall with manual port forwarding". In such a situation, you have fixed
port numbers, and you do not have to worry about other applications and how they can connect. For a
simple configuration, use, as in the screenshot, port numbers 5566 and 5567. Also, do not forget to
check "Update IP on Startup" and "Don't allow hub/UPnP to override" if you chose the manual port
forwarding option.
To read !
The "Firewall with manual port forwarding" option is great on networks as well, for you can
just tell your administrator what ports you use, and he/she will configure the external router
to always forward those ports for you. This is a great escape if you are behind a router, like
in the next case, but you can either port forward yourself or you can convince the
administrator to do it for you.
Do not forget to hit the "Get IP address" button.
Warning !
If you do not see the "Get IP address" button, or anything similar, it means that your client
does not support WAN discovery. Please visit this page and seek one that supports it
(like ApexDC++, RSX++, zK++ Black Edition or zK++ Light Edition, AirDC++ or jUCy).
If you have a static IP address, this is not necessary.
Next, if you've configured everything correctly, you will hit OK, then "Settings" -> "Connection
Settings" again, and you will click on the "Check connection" link. After patiently waiting for
the page to load, you will see your connection status. if it is "Connected OK" in both cases, you're
good to go. If not, check your firewall!
Possibility 2: The NAT connection
The other option, the NAT connection, in which you cannot do port forwarding of any way, leaves you
with no alternative than to choose "Firewall (passive, worst case)". Such a typical network case
would look like this:
Warning !
Before you set up yourself as "Firewall (passive, worst case)" (this is also referred to as a
"passive connection"), always ask your network administrator if he/she can port forward for you
(in which case use the settings described above). Users that have this setting will be unable to
download from one another, and they will also be unable to download from improperly-configured
users (and this means, sadly, generally half the users on hubs, at least).
As for the "Outgoing connection settings" part, most people will use "Direct Connection". Do not
use a SOCKS proxy unless you fully know how it works. Also, proxy connections are banned on most
public hubs.
3. The "Downloads" page
After setting up the connection settings, a very important part of the configuration, comes the
actual sharing-related settings.
The options that are crucial to set here are the "Default download directory" and the "Unfinished
download directory". The former is the directory on your hard drive (or any other directly writable
media, so no CD/DVD-RW drives) where the finished downloads are placed AFTER they have been finished
(so this directory will only contain finished downloads - if a download is not yet finished, it will
not be found here). The latter contains temporary files which have not been yet fully downloaded.
Make sure that you have enough space for whatever you're downloading!
Also, you should be on the lookout for something else when setting these directories: if you want
to download any file larger than 4 GB, you will only be able to do that on a partition type that
supports such an endeavor. To find out what partition type you have under the Windows operating
system, just go to "My Computer" and ask for "Properties" on the drive letter you wish to place
your directory or directories on, and it should look something like this:
Notice that the indicating red arrow points to "File System". If your partition is of NTFS type,
you will be able to download files larger than 4 GB. If it is FAT32, FAT (it is referred to as
FAT16 in some cases) or CDFS, then avoid such a drive. Under Linux, the ext2 and ext3 file systems
are the ones you should be looking for (NFS may also support it, but it is uncertain, depending on
implementation; some NFS drivers are extremely buggy).
The other settings on the page should be quite easy to understand, on a name-says-it-all basis. It
is good to note that when the maximum number of simultaneous downloads (or download files) is
reached, subsequent attempts will give you the "All download slots taken" message, until either one
download (or file) reaches completion.
Please take care that the limit of half-opened connections in a non-server Windows is low, so
setting really high numbers on "Maximum simultaneous files" and "Maximum simultaneous downloads"
is not recommended. In the page screenshot, they are both set to 0 (meaning an unlimited ammount),
however, it is highly recommended that you set them to a fixed number (10 for files, 50 for
downloads, most multi-source DC clients come with this ammount initially set). Going for too much
may not help you or your bandwidth, and some clients may crash when the socket connections are
being refused by the operating system.
4. The "Queue" page
Next up comes a sub-section of the "Downloads" page, the "Queue" page.
The "Queue" page also has some very important settings if you wish to really get into the download
business.
First off, it is important that you set "Enable multi-source" to "Automatic". There are some
"tutorial" sites on the Internet that will tell you to set it to "Disabled" for reasons of safety
and performance. Do NOT listen to them. If you've set up your DC well until now, you can enable
multi-source without any issues, and you will notice that your downloads may get there faster.
To explain the phenomenon: the download speed depends on the connection between you and the other.
If you have a really low bandwidth, and the other one has a really high one, then chances are that
you will download from just one person with maximum speed. However, if your bandwidth is high and,
for some reason, his is low, then you will only download with his maximum available bandwidth (and
this is the most likely scenario, since, although the other may have a high bandwidth, others are
downloading from him too). In this case, multi-source downloading will help, since the same file
will be downloaded at the same time from more than one user, the total download speed being the sum
of all download speeds from each user (of course, being limited by your available bandwidth).
It is important that you make some other settings here. Generally, it is a good idea to check all
the checkboxes (in the area marked with the last red X) except for the first one (which is
optional). The second checkbox, "Automatically match queue for auto-search hits", will download the
filelist from others and match it with your download queue, thus meaning that if you found a file
you're downloading in share at another user, and that user happens to also have more files from
your queue, when you find either file, it will automatically attempt to download the others from
him too, without you having to specifically instruct your client to do that. this may result in
bandwidth being lost on downloading filelists, but, if you have a habit of placing numerous files
in your download queue (like me), you will see that leaving this option checked really pays off on
the long run.
5. The "Sharing" page
Now it's time to learn how to share.
Obviously, in file sharing, when you want to take something, you need to also give something in
return. It is the natural and polite way. Therefore, the "Sharing" page will let you do that.
Notice that you have a directory tree that resembles your computer. Next to each node, there is a
checkbox. If you check a node, a window will pop up asking you what name to give to that node
(called a "virtual shared directory" - the name you insert in that box is the name under which that
directory will appear in your filelist) If a node has child nodes that have been shared, you will
see them in bold. For instance, in the example screenshot, "EXT (D:)" and "PRIVATE
(F:)" are drives which have shared directories in them. It is generally not a good idea to share
whole drives (ESPECIALLY the system drive, in my case "Local Disk (C:)").
If you do not have the drive tree, do not worry. It measn you have to manually add each directory
you wish to share. In that case, you should click on the "Add" button and the tree will appear. In
that case, you will not check subdirectories, but will select one and the process is the same. Hit
"Add" again to add a new one.
After you share a drive, you will notice a window popping up, numerous file names and numbers
going nuts and a progressbar. That window represents the indexing progress (for a file or directory
will not be shared unless it has been indexed - indexing means, in our case, analyzing the file and
generating a TTH map / root for it, so that it can be easily shared and people downloading those
files will be able to have a safe and possibly compressed transfer), and you can dismiss it by
clicking the "Run in background" button (indexing will continue in the background and you will not
be bothered by it).
The next red X is on the "Total size" label. There is nothing to set here, but it is important to
remember that it shows you the shared size from your client's perspective. From the hub's own
perspective, your share size may be smaller or larger (depending on how much of the indexing
progress time has elapsed. To see that, find yourself in the user list and check the "Share" or
"Exact share" columns
The "Show hidden files" option I generally leave unchecked. If you check it and combine it with
sharing the system drive, chances are that people can download your passwords and settings files,
thus making your computer security a big roll of swiss cheese (full of holes).
Two other important settings are "Upload slots" and "Slot ratio". "Upload slots" actually means
"How many users can download from me at one time" (this will not include filelists and very small
files, the other settings are for that, and their names say it all). The "Slot ratio" means "How
many upload slots are open per each hub to which I'm connected". If this option is anything other
than 0, the "Upload slots" setting is overridden. Say you have set 3 open slots, and you set slot
ratio to 1. If you connect to one, two or three hubs, the upload slots remain 3. If you connect to
a fourth hub, it will become 4, a fifth hub will make it 5, and so on. I generally set "Slot ratio"
to 0, but, if your hubs require a certain slot ratio, then you may set it higher.
To be continued...