有2個主要問題:
- 每個洪流(典型地)需要宣佈給跟蹤者週期性地,這可能最終會使用帶寬的顯著量。
- 的BitTorrent客戶端本身需要寫入的方式與大量山洪
至於跟蹤流量的規模,讓我們假設你有百萬山洪,典型的重新發布時間間隔爲30分鐘,但一些跟蹤器已將其設置爲1小時。讓我們保守一點,並假設您的跟蹤器使用1小時通知間隔。您必須每小時發出1百萬個GET請求,假設每個請求都是400字節和100字節的下降(假設大多數響應不包含任何同位體),那就是不斷下降大約111 kB/s和28 kB/s。這並沒有那麼糟糕,但請記住,TCP需要額外的往返建立連接,所以這又是40個字節的下降和40個字節的增加。
這可以通過僅使用UDP trackers來減輕。然後,您只需要一條連接消息,並且您可以重複使用每個宣告的連接ID。每個通知消息將是100個字節,並且返回的消息也會更緊湊一些,讓我們假設60個字節。這會讓你上升28kB/s,下降16kB/s,只是爲了保持宣傳。爲此,您需要一個具有體面udp追蹤器支持的客戶端(例如,緩存連接標識的客戶端)。
不錯,假設這與您的種子發送的實際數據相比微不足道。
但是,您不一定需要在單獨的數據中心內分散您的種子,您還可以使用HTTP服務器播種種子。所有主要的BitTorrent客戶端都支持http播種,並且不必擔心向跟蹤器通告(該URL會被燒入.torrent本身)。
對於一個可以順利擴展的客戶來說,我並不確定,我還沒有做過任何測量。它應該是相當簡單的,只需生成一百萬個隨機種子並嘗試加載它。
我已經在libtorrent rasterbar上做了一些優化工作,使它在很多種子上都能很好地擴展,但我還沒有嘗試過幾百萬次。
我寫了一篇關於此主題的博客文章,here。
Arvid在這裏發佈了更多針對libtorrent的調整技巧:http://libtorrent.org/tuning.html可以對其他客戶端進行類似的優化。 – Encombe