Belangrijkste concepten
Hermesは、エンドユーザーデバイスから様々な場所にまで拡張する、動的に構成可能なプロキシのオーバーレイネットワーク上に構築された、汎用ネットワーキングアーキテクチャであり、サービスと通信の課題に対するエンドツーエンドのソリューションを提供し、エンドユーザーエクスペリエンスを向上させる。
Samenvatting
Hermesアーキテクチャの概要
Hermesは、動的に再構成可能なプロキシのオーバーレイネットワークと、それを管理するコントロールプレーンで構成される、汎用ネットワーキングアーキテクチャです。プロキシは、依存型とスタンドアロン型の2つの役割を担います。依存型プロキシは、送信元または宛先から直接トラフィックを受信し、それらのネットワーキングを制御します。スタンドアロン型プロキシは、オーバーレイのバックボーンを形成し、ソフトウェアルーターとして機能します。プロキシには、プロキシロジックを強化し、追加機能を実装したり、高度なトラフィック操作機能を提供したりする、いくつかの補助コンポーネントを付属させることができます。
Hermesは、汎用的で適応性のある通信媒体として機能するために、オーバーレイに以下の概念を取り入れています。
- アプリケーションやサービスから、動的に再構成可能なプロキシのオーバーレイネットワークへのネットワーキング責任の委任。これにより、アプリケーションとサービスは、基盤となるネットワークの複雑さを気にすることなく、ローカルの依存型プロキシとのみ通信できます。プロキシは動的に再構成可能であるため、サービスやネットワークの状態の変化に適応できます。
- インターネットとの互換性を維持するために、UDP、TCP、またはHTTPプロキシとして機能。プロキシはIPエンドポイントであり、UDPおよびTCPポートをリッスンし、少なくともUDP、TCP、およびHTTPレイヤーでデータを処理し、UDPまたはTCPでカプセル化されたトラフィックを次の宛先に送信できる必要があります。
- HTTPヘッダーで定義されたセマンティクスに基づいてトラフィックを処理およびルーティング。各プロキシは、入力トラフィックにカスタムHTTPヘッダーを追加できます。これらのヘッダーは、特定のアクションの実装、分散デバッグの実行、ユーザー依存情報の入力トラフィックへの追加、ルーティング決定などに使用できます。
- 単純なフォワーダーではなく、トラフィック処理ポイントとして機能。プロキシは、補助コンポーネントを利用して、一般的なIPパケットをリッスンしているUDPまたはTCPポートにリダイレクトするためのトンネルデバイスの作成、入力トラフィックをより適切に処理するためのローカルアルゴリズムの実行、高度なキャッシング、ポリシーの適用など、機能を強化できます。これらの補助コンポーネントはすべてコントロールプレーンによって管理され、オーバーレイプロキシを介して通信します。
これらのコアコンセプトを利用することで、Hermesは以下のような機能を提供します。
- アプリケーションの簡素化と堅牢性の向上。プロキシは、サービスやネットワークの状態の変化に応じて、使用するプロトコルやパラメータを動的に調整したり、最適なパスを選択したりできます。たとえば、アプリケーションが常にUDPを介してプロキシに接続する場合、プロキシはTCPまたはHTTP/2を介して宛先にデータをトンネリングできます。ネットワークの状態が悪化した場合、プロキシはパケット損失に対してより耐性のあるQUIC/HTTP/3を使用するように更新できます。重要な点は、アプリケーションはローカルプロキシに接続するだけで、ネットワークの状態を気にする必要がないことです。オーバーレイがこれらの複雑さを管理し、プロキシを更新します。
- 専用アドレス空間の提供。専用アドレス空間は、ドメイン名またはIPアドレスの形式のアドレスをユーザーに関連付けます。アプリケーションはドメイン名をプロキシに渡すことができるため、開発者は「DEV」などの特定の名前をホスト名として使用できます。ユーザーがローカルの依存型プロキシにホスト名として「DEV」を提供すると、プロキシにはHTTPヘッダーとして表示されます。各プロキシは、アドレスをローカルで処理するか、別のプロキシに委任するように構成できます。したがって、2人の異なるユーザーにとって、ホスト名「DEV」は2つの異なるマシンに解決される可能性があります。オーバーレイノードは、DNSの介入の有無にかかわらずアドレスを処理できるため、エンドホストでDNS解決を行う必要がなくなります。IPアドレスについては、セクションIII-Cで示すように、ネットワークアドレスをHTTPヘッダーとしてユーザの入力トラフィックに追加できます。
- きめ細かいエンドツーエンドのトラフィック制御と監視の提供。通常、組織はユーザートラフィックを処理し、トラフィックが組織のネットワークエッジに到達すると、認証、承認、負荷分散などのタスクを実行します。エンドユーザーデバイスにプロキシをデプロイすることで、組織は制御と処理機能をユーザーのデバイス自体に拡張できます。これにより、生成された瞬間からユーザートラフィックをエンドツーエンドで制御できるようになり、大きな利点があります。ユーザートラフィックを早期に把握することで、組織はローカルの負荷分散アルゴリズムとエンドポイント選択アルゴリズムをプロキシ補助コンポーネントとしてデプロイし、エンドユーザーデバイスから直接トラフィックをより適切に分散できます。さらに、オーバーレイは、インターネット全体およびドメイン間で、各ユーザーのIDに合わせたエンドツーエンドのポリシー適用とポリシーベースのトラフィック管理を実装できます。セクションIII-Cで示すように、組織はIPトラフィックを完全に制御し、ポリシーをエンドツーエンドで適用できます。さらに、HermesがゼロトラストAPPとホストアクセスシナリオを実装できることも示されています[35]。
- レガシーアプリケーションとプロトコルの互換性の提供。互換性は、サービスの開発と保守における大きな課題です。すべての新しいインターネット向けサービスは、下位互換性を確保するか、顧客が新しいバージョンに移行するまで、組織が古いエンドポイントを長期間アクティブな状態に保つ必要があります。場合によっては、一部の顧客が現在のサービスとの互換性の問題に直面することがありますが、サービスの再設計はコストがかかりすぎることがよくあります。Hermesは、エンドユーザーのローカルプロキシでトンネリングとプロトコルおよびデータ形式の変換を可能にすることで、これらの課題に対処します。これは、オーバーレイプロキシのみを変更する必要があることを意味します。セクションIII-Aでは、UDPベースのビデオストリーミングサービスが、クライアントまたはサーバーの実装を変更することなく、UDPをHTTP上でトンネリングすることで、ノイズの多いネットワークで信頼性の高いロスレスストリーミングを実現する方法を示します。
- 不安定なネットワークでの通信のサポート。過去10年間、研究者は、非常に不安定なネットワークでの通信をサポートするためのプロトコル、メカニズム、アーキテクチャを提案してきました[11]、[36]、[37]。ただし、これらのアプローチでは、多くの場合、アプリケーションを変更したり、変換ゲートウェイを使用して元の接続を別のプロトコルまたはアーキテクチャに変換したりする必要があります。Hermesは、ネットワーク接続の変化に適応できる適応性のあるオーバーレイを作成します。たとえば、プロキシはTCPの代わりにQUICを使用するように再構成したり、ローカルアルゴリズムを使用して、使用中の現在のプロトコルの再試行パラメータを微調整したりできます。セクションIII-Bでは、非常に不安定なネットワーク[38]ではTCPを介した直接通信は実行可能ではありませんが、オーバーレイプロキシパラメータを調整することで100%の配信成功率を達成できることを示します。
- 実験的なネットワーキングプロトコルとアーキテクチャのサポート。実験的なプロトコルとアーキテクチャの場合、カスタムデータ形式をインターネットプロトコルのペイロードとしてカプセル化し、宛先でカプセル化を解除するのが、グローバルな到達可能性を実現するための現実的なアプローチです。ただし、インターネットを介したトラフィックとネットワークの管理は複雑なままであり、複雑なサービスアーキテクチャになります。Hermesオーバーレイは、アーキテクチャコンポーネント間でデータを転送するための基盤となるネットワークとして機能し、名前ベースのルーティング、トラフィック管理、信頼性の高い配信、負荷分散などの機能を提供し、プロトコルとアーキテクチャの設計を簡素化します。セクションIII-Dでは、オーバーレイがNDNノード間でトラフィックを伝送し、信頼性と負荷分散を提供する方法を示します。特に、セクションII-Bで説明するように、将来のアーキテクチャがUDPまたはTCPカプセル化をサポートしていない場合でも、Hermesはトンネルデバイスを実行してIPパケットをキャプチャし、オーバーレイ経由でルーティングできます。
Hermesアーキテクチャは、複雑さをオーバーレイノードに移行することで、エンドユーザークライアントを簡素化します。このアプローチにより、プロキシがトラフィックルーティング、ネットワーク管理、互換性の問題を処理するため、アプリケーションとサービスの開発、保守、管理が容易になります。
Statistieken
インターネットトラフィックの60%以上がHTTP(S)である。
ウェブトラフィックの50%以上がモバイルデバイスからのものである。