bittorrent客戶端最初是如何發現其對等點的?

當你的torrent客戶端加入swarm來共享和收集檔案片段時,它如何確切地知道所有的對等點在哪裡?請繼續閱讀,我們將深入瞭解支撐BitTorrent協議的機制。...

bittorrent客戶端最初是如何發現其對等點的?

當你的torrent客戶端加入swarm來共享和收集檔案片段時,它如何確切地知道所有的對等點在哪裡?請繼續閱讀,我們將深入瞭解支撐BitTorrent協議的機制。

今天的問答環節是由SuperUser提供的,SuperUser是Stack Exchange的一個分支,是一個由社群驅動的問答網站分組。

問題

超級使用者讀者Steve V.對BitTorrent協議中的分散式雜湊表(DHT)系統有一個非常具體的問題:

I’ve already read this SuperUser answer and this Wikipedia article but both are too technical for me to really wrap my head around.

I understand the idea of a tracker: clients connect to a central server which maintains a list of peers in a swarm.

I also understand the idea of peer exchange: clients already in a swarm send the complete list of their peers to each other. If new peers are discovered, they are added to the list.

My question is, how does DHT work? That is, how can a new client join a swarm without either a tracker or the knowledge of at least one member of the swarm to exchange peers with?

(Note: simple explanati*** are best.)

他的問題反過來又引發了一個關於BitTorrent系統不同功能的非常詳細的回答;現在讓我們來看看。

答案

超級使用者貢獻者Allquixotic提供了一個深入的解釋:

How can a new client join a swarm without either a tracker or the knowledge of at least one member of the swarm to exchange peers with?

You can’t. It is impossible.*

* (Unless a node on your local area network happens to already be a node in the DHT. In this case, you could use a broadcasting mechani**, such as Avahi, to “discover” this peer, and bootstrap from them. But how did they bootstrap themselves? Eventually, you’ll hit a situation where you need to connect to the public Internet. And the public Internet is unicast-only, not multicast, so you’re stuck with using pre-determined lists of peers.)

References

Bittorrent DHT is implemented via a protocol known as Kademlia, which is a special case of theoretical concept of a Distributed hash table.

Exposition

With the Kademlia protocol, when you join the network, you go through a bootstrapping procedure, which absolutely requires that you know, in advance, the IP address and port of at least one node already participating in the DHT network. The tracker that you connect to, for instance, may be itself a DHT node. Once you are connected to one DHT node, you then proceed to download information from the DHT, which provides you connectivity information for more nodes, and you then navigate that “graph” structure to obtain connecti*** to more and more nodes, who can provide both connectivity to other nodes, and payload data (chunks of the download).

I think your actual question in bold — that of how to join a Kademlia DHT network without knowing anyother members — is based on a false assumption.

The simple answer to your question in bold is, you don’t. If you do not know ANY information at all about even one host which might contain DHT metadata, you are stuck — you can’t even get started. I mean, sure, you could brute force attempt to discover an IP on the public internet with an open port that happens to broadcast DHT information. But more likely, your BT client is hard-coded to some specific static IP or DNS which resolves to a stable DHT node, which just provides the DHT metadata.

Basically, the DHT is only as decentralized as the joining mechani**, and because the joining mechani** is fairly brittle (there’s no way to “broadcast” over the entire Internet! so you have to unicastto an individual pre-assigned host to get the DHT data), Kademlia DHT isn’t really decentralized. Not in the strictest sense of the word.

Imagine this scenario: Someone who wants P2P to stop goes out and prepares an attack on all commonly used stable DHT nodes which are used for bootstrapping. Once they’ve staged their attack, they spring it on all nodes all at once. Wham; every single bootstrapping DHT node is down all in one fell swoop. Now what? You’re stuck with connecting to centralized trackers to download traditional lists of peers from those. Well, if they attack the trackers too, then you’re really, really up a creek. In other words, Kademlia and the entire BT network is c***trained by the limitati*** of the Internet itself, in that, there is a finite (and relatively **all) number of computers that you would have to successfully attack or take offline to prevent >90% of users from connecting to the network.

Once the “pseudo-centralized” bootstrapping nodes are all gone, the interior nodes of the DHT, which are not bootstrapping because nobody on the outside of the DHT knows about the interior nodes, are useless; they can’t bring new nodes into the DHT. So, as each interior node disconnects from the DHT over time, either due to people shutting down their computers, rebooting for updates, etc., the network would collapse.

Of course, to get around this, someone could deploy a patched BitTorrent client with a new list of pre-determined stable DHT nodes or DNS addresses, and loudly advertise to the P2P community to use this new list instead. But this would become a “whack-a-mole” situation where the aggressor (the node-eater) would progressively download these lists themselves, and target the brave new bootstrapping nodes, then take them offline, too.

我們不僅瞭解了原始問題的答案,還了解了BitTorrent系統的本質及其漏洞。


有什麼要補充的解釋嗎?在評論中發出聲音。想從其他精通技術的Stack Exchange使用者那裡瞭解更多答案嗎?在這裡檢視完整的討論主題。

 

 

 

 

  • 發表於 2021-04-11 19:09
  • 閱讀 ( 50 )
  • 分類:網際網路

你可能感興趣的文章

這些是最好的免費mac bittorrent客戶端

BitTorrent是透過internet共享檔案的最有效方式之一。底層技術透過一組使用者分發資料片段,從而消除了在物理伺服器上託管檔案的需要以及這樣做的許多成本和限制。 ...

  • 發佈於 2021-03-12 11:17
  • 閲讀 ( 53 )

i2p與tor與vpn:哪個更安全?

... 每個I2P客戶機(路由器)構建一系列入站和出站連線“隧道”--直接點對點(P2P)網路。I2P和您使用的其他P2P網路之間的一個主要區別是隧道長度的單獨選擇。隧道長度是匿名性...

  • 發佈於 2021-03-14 10:13
  • 閲讀 ( 57 )

p2p(peer-to-peer)檔案共享的工作原理

...點檔案共享軟體來來往往,但有一種開放協議佔了上風:BitTorrent。 ...

  • 發佈於 2021-03-23 12:39
  • 閲讀 ( 48 )

為大家準備的torrent指南

... 現在轉到BitTorrent,看看創作者是如何使用torrent檔案將他們的作品分發給您的。 AmazonS3支援BitTorrent協議,因此開發人員可以在需要傳輸大量資料時節省成本。 ...

  • 發佈於 2021-03-25 04:47
  • 閲讀 ( 63 )

免費下載的5個最佳torrent客戶端(utorrent備選方案)

... 1qbittorrent公司 ...

  • 發佈於 2021-03-25 19:08
  • 閲讀 ( 66 )

torrent定義:什麼是torrent,如何使用它?

... 什麼是位元流(bittorrent)? ...

  • 發佈於 2021-03-30 18:54
  • 閲讀 ( 57 )

我的isp怎麼知道我在使用bittorrent?

...網路服務提供商的通知。你的ISP怎麼知道?一切都取決於BitTorrent的工作方式。BitTorrent的匿名性要比乍一看要小得多。 激流是如何工作的? internet下載涉及從遠端伺服器接收資料。除了最初發出的獲取檔案的請求外,大多數下...

  • 發佈於 2021-04-02 22:48
  • 閲讀 ( 47 )

為什麼你不能阻止路由器上的bittorrent

你能阻止或減緩路由器上的BitTorrent流量嗎?這個問題我們已經問過很多次了。其他人在你的網路上使用BitTorrent會減慢你的連線速度,甚至會讓你面臨訴訟。不幸的是,沒有簡單的解決辦法。 阻止任何事情都是困難的 在家庭路...

  • 發佈於 2021-04-02 23:58
  • 閲讀 ( 42 )

最好的免費bittorrent客戶端

當你想到BitTorrent,你可能會想到盜版。是的,它經常這樣使用,但這並不是它的全部好處。BitTorrent只是一個分散的點對點傳輸協議,如何使用它取決於您自己。下面是我們最喜歡的免費BitTorrent客戶端。 bittorrents合法嗎? 建...

  • 發佈於 2021-04-05 02:01
  • 閲讀 ( 56 )

如何開始使用usenet,這是torrents的最佳替代方案

如果BitTorrent是閃電般的快速、始終可用、完全私有且安全的,它會是什麼樣子?它看起來很像Usenet。繼續閱讀,瞭解如何擺脫急流,享受超級速度和選擇的Usenet。 當然,我們不是來爭論你再也不會使用torrent了。只是,幾乎沒...

  • 發佈於 2021-04-06 08:24
  • 閲讀 ( 63 )
llllll6666
llllll6666

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦