トラフィックを複数のサーバーにルーティングして接続を高速化する方法

トラフィックを複数のサーバーにルーティングして接続を高速化する方法

インターネットの「速度」は、ISP が提供するものだけでなく、サーバーが提供するものにも依存します。後者は ISP とは無関係なので、インターネットにいくら支払っても、一部のサイト (ほとんど) はそれほど改善されません。接続の可能性を実際に実感できるのは、Ubuntu のコピーなど、大きなファイルと大量のシーダーを含む (完全に合法的な) トレントをダウンロードするときだけです。サーバーは、ユーザーに提供する以上の帯域幅を持っており、それを他のユーザーのために確保しているだけです。

私が知りたいのは、複数のプロキシを使用して同時に異なるポイントからサーバーにアクセスし、全体的な速度を向上させ、データを分割してすべてをメイン接続にフィードバックする方法です (あまりうまく説明できていないかもしれませんが、私の言いたいことを理解してくれる人がいるかもしれません)。できれば、Web ブラウジングだけでなく、サードパーティのアプリやゲームなど、すべてのプロトコルで機能するものが望ましいです...

答え1

それはできません。ウェブはあなたが望むようには機能しません。具体的には

  • UDPもTCPもトラフィックを分割するための組み込みメカニズムを提供していないため、汎用的なソリューションは非現実的です。
  • ISP は通常、入力フィルタと出力フィルタを使用して、ネットワーク経由で送信/ターゲットされていない IP アドレスのルーティングを防止します。これは、特定の種類の攻撃を防ぐためです。(汎用的なソリューションは非現実的です)
  • 接続速度は、接続の遅延やパケット損失の量など、接続速度以外のさまざまな要因によって制御されます。
  • ほとんどのサーバーは負荷を公平に分散しようとしますが、帯域幅をアイドル状態のままにしておくことはなく、帯域幅を優先します。
  • プロキシは送信元と宛先の IP アドレスを定義します。複数のプロキシは異なる送信元アドレスを持つため、ターゲットはそれらを異なるセッションとして処理します (正しく)

答え2

これは、クライアント側の観点からは、実際には実行可能なアプローチではありません。あなたが説明した手法をサポートするテクノロジは存在しないと思います。

まず、ダウンロードの場合、HTTP/FTP ダウンロードは単一のバイナリ応答ストリームであるため、ダウンロードするデータは単一のリクエストの結果として取得されます。サーバーが PARTIAL CONTENT (206) をサポートしている場合は、計算されたオフセットと長さを使用して複数のダウンロードを確立するシステムを設定し、複数の接続で実行できる可能性がありますが、すべてのサーバーで機能するわけではありません。いずれにしても、少なくともメカニズムは HTTP 接続を操作していることを認識する必要があるため、HTTP データに対してのみ機能します。

2 番目に、最近の Web サイトのほとんどは単なる静的ドキュメントではなく、サーバー側でプログラムによって構築されているため、多くの場合、セッションの概念に依存しています。セッションは通常、ユーザー接続に限定されているため、2 つの異なる場所から接続すると、それらは 2 つの異なるセッションになります。異なるセッションからの Get から作成されたページを作成してレンダリングすることは、各セッションに独自の Cookie、スクリプトなどがあり、攻撃者があなたが考えているようなことを実行できないように設計されたセキュリティ バリアが機能しているため、ほぼ不可能です。

最終的には、そのようなツールが存在する可能性はありますが、プロトコル固有のデータを書き換えて異なる経路で異なる接続を使用できるようにするために、かなりのプロトコル インテリジェンスを備えている必要があり、サーバー側のプロトコルと操作によって課せられる制限のため、分離された GET を他の接続に転送する機能は制限されます。

関連情報