Skip to main content
QUICK REVIEW

[論文レビュー] AppSwitch: Resolving the Application Identity Crisis

Dinesh Subhraveti, Sri Goli|arXiv (Cornell University)|Nov 7, 2017
Software-Defined Networks and 5G参考文献 4被引用数 3
ひとこと要約

AppSwitchは、システムコールをインターセプトすることで、アプリケーションとその下位のネットワークを分離するトランスポート層のネットワーク要素を導入する。これにより、アプリケーションのアイデンティティをホストのIPアドレスとは独立して管理できる。この設計により、従来のデータパス処理のパフォーマンスオーバーヘッドが解消され、ローカル通信ではUnixソケットを透明に使用することで、最大数倍の高いスルーレートを達成する。また、アプリケーションやインfra構成の変更なしに、効率的でステートレスなネットワーク関数(ロードバランシング、ファイアウォールなど)を実装可能となる。

ABSTRACT

Networked applications traditionally derive their identity from the identity of the host on which they run. The default application identity acquired from the host results in subtle and substantial problems related to application deployment, discovery and access, especially for modern distributed applications. A number of mechanisms and workarounds, often quite elaborate, are used to address those problems but they only address them indirectly and incompletely. This paper presents AppSwitch, a novel transport layer network element that decouples applications from underlying network at the system call layer and enables them to be identified independently of the network. Without requiring changes to existing applications or infrastructure, it removes the cost and complexity associated with operating distributed applications while offering a number of benefits including an efficient implementation of common network functions such as application firewall and load balancer. Experiments with our implementation show that AppSwitch model also effectively removes the performance penalty associated with unnecessary data path processing that is typical in those application environments.

研究の動機と目的

  • 現代の分散およびマイクロサービスアーキテクチャにおいて、アプリケーションのアイデンティティがホストのIPアドレスに強く束縛されているという根本的問題に対処すること。
  • アプリケーションディスcovery、セグメンテーション、ロードバランシングのための間接的で不完全な代替策に起因する運用の複雑さとパフォーマンスのペナルティを軽減すること。
  • アプリケーションレベルのネットワーク関数(ファイアウォール、ロードバランサなど)を、データパス処理コストを負担せずに効率的に実装可能とするために、システムコール層でネットワークAPIを仮想化すること。
  • アプリケーションやインfra構成の変更なしに、ベアメタル、VM、コンテナ、クラウドといった異種のインfraストラクチャを横断してシームレスに動作させること。
  • 動的で一時的、移動可能なマイクロサービスをサポートできる、クリーンでスケーラブルかつパフォーマンスに優れたアプリケーションネットワーキングの抽象化を提供すること。

提案手法

  • AppSwitchはシステムコール層で動作し、ソケット関連のシステムコール(例:socket、connect、bind、getsockname)をインターセプトすることで、アプリケーションとネットワークインfraを分離する。
  • カーネルモジュールまたはptraceベースのユーザースペースメカニズムを用いてシステムコールをトラップし、ネットワークアイデンティティと接続性を仮想化する。
  • システムは、アプリケーションが指定するアイデンティティ(IP、ポート、名前、タグ)を実際のネットワークエンドポイントにマッピングするサービステーブルを維持し、gossipプロトコルを介したクロスホストディスカバリを可能にする。
  • 同じホスト上のコンテナ間のローカル通信では、TCPではなくUnixドメインソケットを透明に使用することで、不要なネットワークスタックのトラバーサルを回避する。
  • 接続設定後、トラップハンドラはデータパスから除外され、パフォーマンスオーバーヘッドを最小限に抑える。
  • アプリケーションや下位のシステムの変更なしに、クラスタに参加するための1つの構成ポイントのみを必要とすることで、既存のインfraストラクチャと統合可能である。

実験結果

リサーチクエスチョン

  • RQ1現代の分散システムにおいて、アプリケーションのアイデンティティをホストレベルのネットワークアイデンティティからどのように分離できるか?
  • RQ2同じホスト上でのコンテナ通信における従来のネットワークスタックのトラバーサルがもたらすパフォーマンスへの影響は何か? そして、それをどのように排除できるか?
  • RQ3ロードバランシングやファイアウォールのようなアプリケーションレベルのネットワーク関数を、データパス処理コストを負担せずに効率的に実装できるか?
  • RQ4アプリケーションやインfra構成の変更なしに、動的で移動可能かつ一時的なマイクロサービスをサポートできるシステムをどのように設計できるか?
  • RQ5アプリケーションネットワークアイデンティティの仮想化を可能にするために、システムスタックの中で最小限で安定的かつ安全なインターセプトポイントはどこか?

主な発見

  • AppSwitchは、同じホスト上のコンテナ間通信においてハートビントラバーサルを回避することで、標準のLinuxブリッジよりも数倍も高いネットワークスルーレートを達成した。
  • パケットサイズが大きくなるほどスルーレートが向上し、パフォーマンスの向上がワークロードの特性に比例してスケーリングすることを確認した。
  • 同じホスト上のコンテナ間通信において、TCPが要求されても、AppSwitchは透明にUnixドメインソケットを使用し、不要なネットワークスタック処理を排除した。
  • アプリケーションやインfra構成の変更なしに、クラスタに参加するための1つの構成ポイントのみを必要とし、完全な機能を達成した。
  • パフォーマンスの向上は、接続設定後におけるデータパスのバイパスと、重複するネットワークスタック処理の回避に起因する。
  • システムコールインタフェースで動作することで、パケットレベルではなく、セグメンテーションやロードバランシングなどのネットワーク関数を効率的でステートレスに実装可能となる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。