Jump to content

Simple question about DHT


silverwolf0

Recommended Posts

Okay I don't really understand the wikipedia article about DHT and other than knowing that DHT is a trackerless protocol, I just want to ask a simple question. Since there are no trackers to use as meeting places for peers trying to download a torrent, how does one actually find another peer on a DHT network? Does it scan all the internets and the interwebs for another peer or is there something else much simpler? Wouldn't that take a really really long time? I don't underrstand how this decentralized stuff works.

Link to comment
Share on other sites

> you have information about peers to try from within the torrentfiles.

This is incorrect. The torrent files contain no peer information.

> But how do you connect to that peer? How do you find one if there

> is no centralized location to meet up?

Important: Both DHT and a normal Tracker provide the IP address and ports for peers that are active for a Hash ID. There is very little difference between the two. Both are databases that store and associate, as a minimum, IP addresses and HashIDs. (Both can store and associate additional information, too.) After receiving an IP address from a Tracker or DHT, your client will attempt a connection to the IPs:Ports it provided.

You don't "meet up" on a tracker or on DHT. Instead, think of them as bulletin boards -- you go there and read information that others have left before, and you put your information there, and then you leave.

When you start a download on DHT, you basically send an announce message (like you would to the tracker) that is stored on the DHT network. The torrent's Hash ID and your IP address and port are stored. At the same time, you send a query to the DHT network, asking if any IP addresses are associated with the Hash ID. The DHT responds as a tracker would, providing any known IP addresses and ports.

Link to comment
Share on other sites

> Openoffice torrents prove you wrong.

How so? I'm looking at one now. The stuff you see in the sources dictionary of OO torrents are not peers, they're servers.

Now, in the sources dictionary of a .torrent, you could post a Gnutella http-style link that includes a single peer, but I know of no client that would use it (it would probably confuse the hell out of webseeding). Shareaza and BitComet might use an ED2K link in sources, and ED2K links can include multiple sources. I know these "other-network" peers use the extended hashdata found elsewhere in the .torrent file, I have no idea if they support the sources dictionary.

> The torrent files contain no peer information.

Agreed, that's not absolutely accurate. So yes, I stand corrected.

The Torrent files contain no Bittorrent Peer information. Very rarely, it can contain optional information that allows a client to obtain part or all of a file from a compatible, non-Bittorrent source. (see http://wiki.depthstrike.com/index.php/P2P:Protocol:Specifications:BitTorrent:External_Sourcing)

Link to comment
Share on other sites

I had no idea. Thanks!

----------------

Edit: On another look, those appear not to be peers, either. They look like bootstrap servers.

e5:nodesll19:router.bitcomet.comi554eel21:router.bittorrent.comi6881eel19:router.utorrent.comi6881ee

Maybe peers can appear in that dictionary (I'm not familiar with it), but I suspect those aren't peers.

But it make what µtorrent-Guest said much more correct.

I learned something new, today -- thanks!!

Link to comment
Share on other sites

Wait...what is this DHT network? Does it have a definite address to connect to it stored in the torrent? If so, if that address dies, won't the torrent die too? If it is a network with many addresses I can connect to, how do I find one of these addresses? I am mainly curious as to how I can connect to the initial peer, a random peer, since the DHT is suppose to work when a tracker dies and you can't get information from a tracker with a set address stored in the torrent in order to obtain a list of peers.

Link to comment
Share on other sites

DHT is like a distributed tracker that anyone connected to DHT participate in. Yes, µTorrent has a "definite address" built in -- the bootstrap at router.utorrent.com. This bootstrap acts as the first node, and points µTorrent to other nodes, which in turn propogate the requests until µTorrent feels like stopping (usually around 200-300). Even if the bootstrap goes down, µTorrent can still make use of DHT bootstraps included in specially-crafted .torrent files, as funchord's post shows.

Torrents using DHT won't die so long as the people on the torrent continue to use DHT, and DHT won't die so long as there are people using DHT.

Link to comment
Share on other sites

Okay I still don't understand. Here is what I have been getting at with most of the replies.

"The torrent with DHT connects you too xxx address and that address helps you connect to other peers. As long as you are connected to the DHT network, it can never go down."

Now I find this contradictory as if you download one torrent, no other special ones, and it points you to xxx address, even in DHT, what happens if that address is down? Also, how is it protected from being shut down by the authorities? And how is this different from a tracker again?

Link to comment
Share on other sites

a tracker is one single point that coordinates the information who has what.

in DHT every peer that has DHT enabled has a bit of information about who has what.

if that bootstrap address is down (or gets blocked via a paranoid bluetack blocklist like it has happened with the utorrent one after the buy out from Bittorrent) µT has no known entrypoint into this network of shared Hashes/IPs

these entrypoints AFAIK are

router.utorrent.com

router.bittorrent.com

and in the 1.7 betas Bittorrent Inc oviously has added router.bitcomet.com since those bluetack morons blocklists oviously still contain µTs/BTs IP ranges.

Link to comment
Share on other sites

Erf, I overstated DHT's resiliency.

At any rate, BitTorrent itself isn't fully decentralized in that there needs to be a way for it to locate other peers, and that includes DHT. The point behind DHT is to attempt to erase the single point of failure (the traditional tacker's server). If a tracker is down, DHT is disabled, and you've never connected to the swarm before, you'll never be able to connect unless you find someone's IP, or the tracker comes back up (or at least an alternative tracker is provided). The problem with the alternative tracker is that it might not track the same peers that the previous downed tracker did.

The DHT bootstrap server might go down, but once you connect to another bootstrap provided in the nodes list in any .torrent file containing one, if it successfully connects, it connects to the same "tracker," so it is still more resilient than traditional trackers.

Link to comment
Share on other sites

Okay thanks for the clarification. I get it now. I was under the impression that if a tracker or a bootstrap server was down, I could magically connect to a random peer with the same torrent who happened to be online searching for me also, or waving a tantalizing flag, beckoning from a pirating hub in China.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...