如何透過多個伺服器路由流量以實現更快的連線

如何透過多個伺服器路由流量以實現更快的連線

網路「速度」不僅取決於您的ISP 為您提供的服務,還取決於伺服器為您提供的服務,而後者與您的ISP 無關,因此無論您為網路支付多少錢,某些網站(大多數)都不會提高整體速度很多。我唯一能真正看到連接潛力的時候是下載帶有大檔案和大量種子的(完全合法的)Torrent,例如 Ubuntu 的副本,伺服器的頻寬比它們給你的頻寬多,它們只是為其他用戶保存它。

我想知道的是如何使用多個代理同時從不同點訪問伺服器,從而獲得更高的整體速度,然後分解數據並將其全部反饋回主連接(我可能不會解釋得很好,但有人可能會明白我的意思)。最好是能夠適用於所有協議的東西,不僅是網頁瀏覽,還包括第三方應用程式和遊戲等...

答案1

你不能 - 網路不會按照你想要的方式工作 - 特別是

  • UDP 和 TCP 都不提供分割流量的內建機制,使得通用解決方案不切實際
  • ISP 通常使用入口和出口過濾器來阻止不是透過其網路取得/定位的 IP 位址的路由 - 以防止某些類型的攻擊。 (使得通用解決方案不切實際)
  • 連線速度受連線速度以外的許多因素控制,包括連線延遲和資料包遺失量。
  • 大多數伺服器會嘗試公平地共享負載,但不會讓頻寬閒置——但是,它們會優先考慮頻寬。
  • 代理定義來源和目標 IP 位址 - 多個代理程式將具有不同的來源位址,因此目標將它們作為不同的會話進行處理(正確)

答案2

從客戶端的角度來看,這並不是一個真正可行的方法。我不相信有任何技術可以支持您所描述的技術。

首先,對於下載,HTTP/FTP 下載是單一二進位回應流,因此您正在下載的資料是單一請求的結果。如果伺服器支援部分內容 (206),那麼您可以安排一個系統,在其中建立多個具有計算偏移量和長度的下載,透過多個連接執行此操作,但它不適用於每個伺服器。無論哪種方式,至少該機制必須知道它正在操縱 HTTP 連接,因此它只適用於 HTTP 資料。

其次,大多數現代網站不再只是靜態文檔,而是以程式設計方式在伺服器端構建,因此它們通常依賴會話的概念。會話通常僅限於使用者連接,因此如果您從兩個不同的位置進行連接,則這些是兩個不同的會話。嘗試編寫和呈現由來自不同會話的 Gets 製成的頁面幾乎是不可能的,因為每個會話都有自己的 cookie、腳本等,並且存在旨在防止攻擊者執行您所執行的操作的安全屏障。正在思考。

最終,這樣的工具可能存在,但它必須具有大量的協定智慧(因此它可以重寫特定於協定的資料以通過不同的路徑使用不同的連接),並且將孤立的 GET 分流到其他連接,因為伺服器端協定和操作的限制。

相關內容