JP6511194B2 - 高速且つスケーラブルなデータベースクラスタ通信経路 - Google Patents

高速且つスケーラブルなデータベースクラスタ通信経路 Download PDF

Info

Publication number
JP6511194B2
JP6511194B2 JP2018515086A JP2018515086A JP6511194B2 JP 6511194 B2 JP6511194 B2 JP 6511194B2 JP 2018515086 A JP2018515086 A JP 2018515086A JP 2018515086 A JP2018515086 A JP 2018515086A JP 6511194 B2 JP6511194 B2 JP 6511194B2
Authority
JP
Japan
Prior art keywords
application
payload
client
network
header information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018515086A
Other languages
English (en)
Other versions
JP2018536316A (ja
Inventor
シュ,ジュン
ドン,ユー
アイアンガー,ランガラージュ
シャンカル チュッパーラ,ラヴィ
シャンカル チュッパーラ,ラヴィ
ユンシャ チェン
ユンシャ チェン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018536316A publication Critical patent/JP2018536316A/ja
Application granted granted Critical
Publication of JP6511194B2 publication Critical patent/JP6511194B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

[関連出願への相互参照]
この出願は、2015年9月21日に出願された「Fast and Scalable Database Cluster Path」という名称の米国仮特許出願第62/221,458号の優先権及び利益を主張し、この出願が参照により援用される。
[背景技術]
インターネットを通じて安全な方式でエンタープライズネットワーク上のネットワークノード/デバイス(例えば、ルータ/スイッチ等)を接続及び管理するために、ノード/デバイスが提供しているサービスの種類に依存して複数の安全なセッションが生成されなければならない。ノード/デバイスがネットワークアドレス変換(network address translation, NAT)/ファイアウォールの背後に位置するときに、ノード/デバイスを接続及び管理することを取り巻く問題は、ますます解決困難になる。エンタープライズNAT/ファイアウォールは、セッションのそれぞれを許可するために複数のポートを開くことを必要とする。セッションの数が増加すると共に、ポートの数も増加する。
一実施例において、ネットワーク内でアプリケーションペイロードを伝送する方法が存在し、クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信するステップであり、アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成されるステップと、トランスポートレイヤプロトコルを終端し、現在のセッションに関連するアプリケーションペイロードを読み取るステップと、アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備するステップと、単一の仮想通信リンクを介してネットワーク内で伝送するために、ヘッダ情報を含むアプリケーションペイロードを暗号化するステップとを含む。
他の実施例において、ネットワーク内でアプリケーションペイロードを伝送するためのコンピュータ命令を記憶した非一時的なコンピュータ読み取り可能媒体が存在し、コンピュータ命令は、1つ以上のプロセッサにより実行されたときに、1つ以上のプロセッサに対して、クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信するステップであり、アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成されるステップと、トランスポートレイヤプロトコルを終端し、現在のセッションに関連するアプリケーションペイロードを読み取るステップと、アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備するステップと、単一の仮想通信リンクを介してネットワーク内で伝送するために、ヘッダ情報を含むアプリケーションペイロードを暗号化するステップとを実行させる。
更に他の実施例では、アプリケーションコンテナが直接通信リンクを介して通信するための方法が存在し、1つ以上の第1アプリケーションコンテナの間の直接のアプリケーションコンテナレベルの通信のための1つ以上の第1専用仮想リンクを構築するステップと、対応する1つ以上の第1専用仮想リンクを介して1つ以上の第1アプリケーションコンテナの間でデータを通信するステップであり、1つ以上の第1専用仮想リンクのそれぞれは、第1端で1つ以上の第1アプリケーションコンテナのそれぞれに接続され、第2端でそれぞれの仮想入力/出力(virtual input/output, VIO)に接続されるステップとを含む。
更に他の実施例では、仮想入力/出力を介して直接のデータベース対アプリケーションレベルの通信を提供するための方法が存在し、1つ以上の第1データベースインスタンスの間の直接のアプリケーションレベルの通信のための1つ以上の第1専用仮想リンクを構築するステップと、対応する1つ以上の第1専用仮想リンクを介して1つ以上の第1データベースインスタンスの間でデータを通信するステップであり、1つ以上の第1専用仮想リンクのそれぞれは、第1端で1つ以上の第1データベースインスタンスのそれぞれに接続されるステップとを含む。
この概要は、簡略化された形式で、以下に詳細な説明において更に説明する概念の選択したものを紹介するために提供されている。この概要は、特許請求の範囲の対象物の主な特徴又は本質的な特徴を識別することを意図するものではなく、特許請求の範囲の対象物の範囲を決定する助けとして使用されることを意図するものでもない。特許請求の範囲の対象物は、背景に記載のいずれかの欠点又は全ての欠点を解決することを実現することに限定されない。
本開示の態様は、例により示されており、添付の図面により限定されない。添付の図面では、同様の参照符号は、同様の要素を示す。
開示の様々な実施例が実現され得る例示的なネットワーク環境を示す。 アプリケーションペイロードが多重され得る仮想通信リンク環境を示す。 図2によるアプリケーション暗号多重(application crypto multiplexing, ACM)環境におけるクライアント及びサーバプロキシを示す。 仮想通信リンクを通じてペイロードを送信及び受信するためのフロー図を示す。 仮想通信リンクを通じてペイロードを送信及び受信するためのフロー図を示す。 アプリケーションクライアント又はアプリケーションサーバのペイロードに追加されるシム(shim)レイヤを示す。 図5のACMヘッダの例を示す。 ACMデータセッション状態機械の状態図を示す。 ネットワーク内でアプリケーションペイロードを伝送する例示的なフロー図を示す。 ネットワーク内でアプリケーションペイロードを伝送する例示的なフロー図を示す。 開示が実現され得る例示的なネットワークを示す。 ホスト内通信のための仮想入力/出力インタフェースを使用した例示的なコンテナパケット通信を示す。 ホスト間通信のための仮想入力/出力インタフェースを使用した例示的なコンテナパケット通信を示す。 TCP及び関係するソケットを消費する必要なくVIOを使用した直接のデータベース/アプリケーションレベルの通信の様々な実施例を示す。 TCP及び関係するソケットを消費する必要なくVIOを使用した直接のデータベース/アプリケーションレベルの通信の様々な実施例を示す。 コンテナ及びデータベースインスタンスのための仮想リンクを構築する例示的なフロー図を示す。 コンテナ及びデータベースインスタンスのための仮想リンクを構築する例示的なフロー図を示す。 開示の実施例によるノードの実施例を示す。 様々な実施例を実現するために使用できるネットワークシステムのブロック図である。 開示の技術によるブロック図を示す。
開示は、ネットワーク内でアプリケーションペイロードを伝送するための技術に関する。クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードが受信され、アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成される。トランスポートレイヤプロトコルが終端され、現在のセッションに関連するアプリケーションペイロードが読み取られる。アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報が準備される。単一の仮想通信リンクを介してネットワーク内で伝送するために、ヘッダ情報を含むアプリケーションペイロードが暗号化される。
本対象物は、多くの異なる形式に具現されてもよく、ここに示す実施例に限定されるものとして解釈されるべきでないことが理解される。むしろ、これらの実施例は、この対象物が徹底的且つ完全であり、開示を当業者に十分に伝えるために提供される。実際に、対象物は、これらの実施例の代案、変更及び等価物をカバーすることを意図しており、これらは、添付の特許請求の範囲により規定される対象物の範囲及び真意内に含まれる。さらに、本対象物の以下の詳細な説明において、本対象物の徹底的な理解を提供するために、複数の具体的な詳細が示されている。しかし、本対象物がこれらの具体的な詳細なしに実施されてもよいことは、当業者に明らかになる。
開示の技術は、アプリケーションペイロードと伝送制御プロトコル(transmission control protocol, TCP)/セキュアソケットレイヤ(secure socket layer, SSL)ヘッダとの間にシムレイヤを追加する「多対1」の統合プロキシ及びトンネル解決策を概して提供し、状態機械がセッションを制御するために構成されてもよい。
このような統合プロキシ及びトンネル解決策は、ネットワークノード/デバイスの位置に基づいてクライアント又はサーバを使用して実現されてもよい。ネットワークノード/デバイスの例は、ルータ、スイッチ、WIFIデバイス、モノのインターネット(Internet-of-things, IOT)デバイス、又はこの開示を考察することで当業者により認識されるいずれかの物理及び仮想デバイスを含むが、これらに限定されない。
以下の説明から明らかになるように、開示の技術は、セキュリティサービスのための単一ポイントを提供し得る。例えば、アプリケーションは、暗号責任をデバイスに委任してもよく、デバイスは、チャネルを設定してデバイスとコントローラとの間で暗号データを交換してもよく、それにより、デバイスの間に安全な接続を提供する。サーバ側で開示の技術を実現することは、暗号サーバを提供し、クライアント側で開示の技術を実現することは、暗号クライアント機能を提供する。通信チャネルは、メッセージ完全性、ユーザ認証及び機密性を認証及び提供してもよい。通信チャネルはまた、標準的な対称/非対称暗号機能をサポートしてもよく、NAT/ファイアウォールの背後に安全なチャネルを設定できてもよい。
図1は、開示の様々な実施例が実現され得る例示的なネットワーク環境を示す。ネットワーク環境100は、例えば、クライアント102と、サーバ104と、SDNコントローラ112と、管理者114とを含む。概して、SDNは、一式のネットワークデバイスのための制御機能を実行するスタンドアローンコントローラの使用を伴う。ソフトウェアデファインドネットワーキングの例として、ルーティングの場合、ルータがネットワークを通じたルートを決定するために個別の分析を実行するのではなく、コントローラは、ルートを決定し、コントローラにより行われた決定に従って振る舞うようにネットワーク内の他のデバイスをプログラムできる。OpenFlowのようなオープンなプロトコル及びネットワークベンダからの独自のプロトコルを含み、異なるプロトコルがソフトウェアデファインドネットワーキングを実現するために使用されてもよい。
図示の実施例では、SDN106は、ネットワークノード108及び110と、サービスデバイス116とを含む。ネットワークノード108及び110は、スイッチ及び他のデバイス(図示せず)を含んでもよい。これらのネットワークノード108及び110は、概してネットワークを転送する役目をする物理インスタンス化又は仮想インスタンス化とすることができる。図示しないが、SDN106はまた、他のネットワークデバイスの中でもルータ、ロードバランサ又は様々なL4-L7ネットワークデバイスのような他の種類のデバイスを含んでもよい。
SDN106は、クライアント102及びサーバ104のような様々なエンドポイントデバイスを接続してもよい。さらに、SDN106は、クライアントデバイス102とサーバデバイス104との間に流れるネットワークトラヒックに対するサービスを提供してもよい。一実施例では、管理者114は、クライアント102のためのネットワークトラヒックをサービスデバイス116の1つ以上に向けるようにSDN106のネットワークデバイスをプログラムするために、SDNコントローラ112を使用してもよい。
サービスデバイス116は、例えば、侵入検知サービス(intrusion detection service, IDS)デバイス、侵入防止システム(intrusion prevention system, IPS)デバイス、ウェブプロキシ、ウェブサーバ、ウェブ−アプリケーションファイアウォール等を含んでもよい。他の例では、サービスデバイス116は、さらに或いは代替として、例えば、サービス拒否(denial of service, DoS)保護、分散サービス拒否(distributed denial of service, DDoS)保護、トラヒックフィルタリング、広域ネットワーク(wide area network, WAN)アクセラレーション、又は他のこのようなサービスのようなサービスを提供するためのデバイスを含んでもよい。
個別のデバイスとして示されているが、サービスデバイス116は、物理デバイス、マルチテナントデバイス又は仮想サービス(例えば、クラウドに基づくサービス)でもよく、物理デバイスに加えて或いはその代替として、仮想デバイス及びクラウドに基づくアプリケーションに容易に適用されてもよいことが理解されるべきである。
図2は、アプリケーションペイロードが多重され得る仮想通信リンク環境を示す。ここではアプリケーション暗号多重(application crypto multiplexing, ACM)環境200と呼ばれる環境200は、例えば、仮想通信リンク202と、クライアントプロキシ204と、アプリケーションクライアント206と、サーバプロキシ208と、アプリケーションサーバ210とを含む。
仮想通信リンク(例えば、仮想トンネル)は、そうでなければ直接的に相互にアドレス指定できない2つのコンピュータプログラム(例えば、クライアント及びサーバアプリケーション)を許容する。例えば、アプリケーションクライアント206のクライアントアプリケーションがリモート側のアプリケーションサーバ210のサーバアプリケーションに接続する必要があるときである。サーバアプリケーション210は、顧客又はパートナーのアドレス指定不可能なローカルネットワーク上(例えば、ファイアウォールの背後)のコンピュータ上にあってもよい。したがって、アプリケーションクライアント206は、アプリケーションサーバ210を直接的にアドレス指定できない。したがって、仮想通信リンクは、アプリケーションサーバ210に対するアプリケーションクライアント206のアクセスを提供し、逆も同様である。
開示の技術の実施例では、仮想通信リンク202は、同じデバイスからのサービスについてアプリケーションクライアント206及び/又はアプリケーションサーバ210に存在するアプリケーションのペイロードを多重及び/又は多重分離することにより、アプリケーションクライアント206及び/又はアプリケーションサーバ210に存在する1つ以上のアプリケーションが単一の通信チャネル(例えば、仮想通信リンク又はトンネル)を共有することを許容する。
より具体的には、クライアントプロキシ204及びサーバプロキシ208(図3を参照して以下に説明する)並びに仮想通信リンク202は、暗号仮想トンネル(virtual tunnel, VT)のような仮想通信リンク202を介して通信するためにアプリケーションクライアント206及びアプリケーションサーバ210のペイロードを多重及び/又は多重分離することにより、単一のソケットインタフェースを形成するようにチャネルのそれぞれの端で統合又は結合されてもよい。
一実施例では、多重及び/又は多重分離は、アプリケーション特有情報を搬送する特定のアプリケーションのペイロードにACMヘッダを追加することによって実現されてもよい。ヘッダについて、図5及び6を参照して以下により詳細に説明する。
アプリケーションクライアント206は、ネットワークコンフィグレーションプロトコル(network configuration protocol, NETCONF)プラグインのような第1クライアントアプリケーション206A、簡易ネットワーク管理プロトコル(simple network management protocol, SNMP)プラグインのような第2クライアントアプリケーション206B、及び/又はワイヤレスアクセスポイント制御及びプロビジョニング(control and provisioning of wireless access points, CAPWAP)プラグインのような第3クライアントアプリケーション206Cを含んでもよい。これらのプラグインは、デバイスのリモートコンフィグレーションのために使用され、トラヒックパターンがネットワークを形成する既存のネットワークデバイスにシームレスに注入されることを許容する。すなわち、トラヒックパターンをネットワークの様々なポイントに戦略的に導入するためにトラヒック生成器を配置するのではなく、所望のトラヒックパターンは、そうでなければネットワークデバイスのコンフィグレーションデータを操作するために使用されていたプラグインを介してカプセル化され、ネットワークの既存のネットワークデバイスに通信される。
例えば、NETCONFは、ネットワークデバイスを構成するための機構を提供し、ポリシーデータを含んでもよいコンフィグレーションデータのための拡張可能マークアップ言語(Extensible Markup Language, XML)に基づくデータ符号化を使用する。SNMPは、デバイス管理システムが管理されたエレメント内のコンフィグレーションデータを記憶する管理情報ベース(management information base, MIB)をトラバース(traverse)及び変更することを許容する。CAPWAPは、仮想通信リンクを介していずれかのメッシュノードとコントローラとの間でメッセージを交換するために使用されるプロトコルであり、元々はいわゆるライトウェイト(lightweight)アクセスポイントのために設計されたものである。
クライアントプロキシ204は、それぞれソケット(図3を参照して説明する)を介して第1、第2及び第3クライアントアプリケーション206A、206B及び206Cに動作可能に結合された暗号クライアント204Aを含む。
アプリケーションクライアント206と同様のアプリケーションサーバ210は、ソケットを介してアプリケーション暗号サーバに動作可能に結合されたNETCONFプラグインのような第1サーバアプリケーション210A、SNMPプラグインのような第2サーバアプリケーション210B及び/又はCAPWAPプラグインのような第3サーバアプリケーションのうち1つ以上を含んでもよい。
サーバプロキシ208は、それぞれソケット(図3を参照して説明する)を介して第1、第2及び第3クライアントアプリケーション210A、210B及び210Cに動作可能に結合された暗号サーバ208Aを含む。
したがって、ACM環境200は、SDNコントローラ112のようなSDNコントローラがパブリッククラウド又はインターネットのようなネットワークを使用してネットワークノード108及び110のようなネットワークデバイスと通信してネットワークデバイスを管理することを許容する。開示のACM環境200を使用することにより、ファイアウォールは、複数のアプリケーションをサポートするために複数のポートを開く必要はなくてもよい。むしろ、ACM環境200は、SDNコントローラ112が複数のアプリケーションを容易に管理することを許容する。ACM環境200はまた、TCPプロキシセッションオーバーヘッド及びトンネルペイロードオーバーヘッドを低減してもよく、同じデバイス上で実行する異なるアプリケーションとの制御プレーントラヒックのために使用されてもよい。
ACM環境200は、他の暗号技術とは異なる。例えば、インターネット鍵交換(Internet key exchange, IKE)/インターネットプロトコルセキュリティ(Internet protocol security, IPSEC)のような他の技術は、レイヤ3に基づくトンネリングを使用し、SSL技術はレイヤ4を使用する。これらの技術は、各アプリケーションについて1つのセッションを使用する。
図3は、図2によるACM環境におけるクライアント及びサーバプロキシを示す。ACM環境300は、例えば、クライアントプロキシ204及びサーバプロキシ208を通信可能に結合する暗号仮想トンネルのような仮想通信リンク202を含む。
クライアントプロキシ204は、セッションマネージャ302Aと、MUX/DEMUX306Aと、トランスポートレイヤセキュリティ(transport layer security, TLS)/データグラムTLS(datagram TLS, DTLS)クライアント304Aと、NETCONFクライアント(セッション1)310Aと、SNMPクライアント(セッション2)312Aとを含む。同様に、サーバプロキシ208は、セッションマネージャ302Bと、MUX/DEMUX306Bと、トランスポートレイヤセキュリティ(transport layer security, TLS)/データグラムTLS(datagram TLS, DTLS)クライアント304Bと、NETCONFクライアント(セッション1)310Bと、SNMPクライアント(セッション2)312Bとを含む。
セッションマネージャ302Aは、アプリケーションクライアント206(図2)とクライアントプロキシ204との間のトランスペアレントな安全且つオープンな通信を有効にする。一実施例では、セッションマネージャ302Aは、暗号化されたセッションハンドシェイクの管理、鍵の管理、証明書、認証、許可等を含む暗号化されたセッション処理を実行してもよい。さらに、一実施例では、セッションマネージャ302Aは、暗号化されたセッション及び/又は接続を確立すること、暗号化されたセッション及び/又は接続を終端すること、暗号化されたセッション及び/又は接続の中間者(man-in-the-middle)として自身を確立すること等を行ってもよい。
NETCONFクライアント1(セッション1)310A及びSNMPクライアント2(セッション2)312Aは、ソケットを介してセッションマネージャ302Aに通信可能に結合される。同様に、NETCONFクライアント1(セッション1)310B及びSNMPサーバ2(セッション2)312Bは、ソケットを介してセッションマネージャ302Bに通信可能に結合される。
クライアントプロキシ204A上のMUX/DEMUX306Aは、アプリケーションペイロードを多重することにより、アプリケーションクライアント206上の複数のソケットからのアプリケーションペイロードをクライアントプロキシ204上の単一のソケットにルーティングするように構成されてもよい。多重されたアプリケーションペイロードは、仮想通信リンク202を通じてプロキシサーバ208に搬送され、次に、アプリケーションサーバ210に配信されてもよい。一実施例では、MUX/DEMUX306Aは、単一の安全な接続(例えば、仮想通信リンク202)上で、クライアントプロキシ204から(サーバプロキシ208での多重分離後に)アプリケーションサーバ210上の対応する複数のソケットにアプリケーションペイロードを伝送するように構成される。
同様に、クライアントプロキシ204上のMUX/DEMUX306Aは、クライアントプロキシ204上の単一のソケットを使用して仮想通信リンク202からアプリケーションペイロードを受信するように構成されてもよい。アプリケーションサーバ210から受信したアプリケーションペイロードは、MUX/DEMUX306Aにより別個のアプリケーションペイロードに多重分離されてもよく、それぞれの別個のアプリケーションペイロードは、アプリケーションクライアント206上の1つ以上の対応するソケットに搬送されてもよい。一実施例では、MUX/DEMUX306Aは、単一の安全な接続(例えば、仮想通信リンク202)上で、サーバプロキシ204からアプリケーションクライアント206上の対応する複数のソケットへのアプリケーションペイロードを受信するように構成される。
以下に説明するように、MUX/DEMUX306Aはまた、ACMヘッダ情報を準備してアプリケーションペイロードに追加する役目をする。
ここで使用されるソケットという用語は、ネットワーク接続を介してリモートデバイスからHTTPフォーマットのようないずれかのフォーマットのデータを受信するように構成されたポート、バッファ、論理ノード又はオブジェクトを示す。MUX/DEMUX306Bも同様に構成されてもよい。
仮想通信リンク202Aを通じた通信を安全にするために、TLS/DTLSクライアント304A(クライアントプロキシ)及び304B(サーバプロキシ)が使用されてもよい。TLS/DTLSクライアント304A及び304Bは、多重/多重分離されたアプリケーションペイロードを暗号化/解読する役目をする。TLSプロトコルは、2つの通信するコンピュータアプリケーションの間でプライバシー及びデータ完全性を主に提供することを目的とする。TLSは、TCPのようなトランスポートプロトコルの上、且つHTTPのようなアプリケーションレイヤの下で動作するように設計されたものである。暗号的に安全なデータチャネルを確立するために、接続ピアは、どの暗号スイート(ciphersuite)が使用されるかと、データを暗号化するために使用される鍵とを合意しなければならない。TLSはまた、ユーザデーグラムプロトコル(user datagram protocol, UDP)のようなデータグラムプロトコル上で実行するように適合されている。データグラムTLS(datagram TLS, DTLS)は、UDPのようなデータグラム搬送を安全にできるTLSに基づくプロトコルであり、アプリケーションをトンネリングすること、例えば、メッシュネットワーク内のコントローラへのCAPWAPトンネルに良く適している。
図4A及び4Bは、仮想通信リンクを通じてペイロードを送信及び受信するためのフロー図を示している。ここに記載の処理は、例えば、図3に示すクライアントプロキシ204及びサーバプロキシ208を使用して実現される。しかし、いずれかのネットワークコンポーネント又はエレメントは、このような実現の役目をしてもよく、開示の実施例は非限定的な例であることが認識される。
特に、図4Aは、クライアントデータをサーバに送信するためのフローチャートを示す。クライアント310A及び/又は312Aは、TCP/UDPクライアント要求を生成し、アプリケーションデータ(例えば、ペイロード)をクライアントプロキシ204に送信する。402Aにおいて、アプリケーションデータは、クライアントプロキシ204によりセッションマネージャ302Aを介して受信される。ここで、セッションマネージャ302Aは、TCP接続を終端し、ローカルセッションからアプリケーションデータを読み取り、セッション情報を獲得する。状態(図7)及びセッションは管理され、セッションの詳細は、MUX/DEMUX306Aに送信される。
404Aにおいて、MUX/DEMUX306Aは、ACMヘッダを準備し、ACMヘッダをアプリケーションデータ(ペイロード)に追加する。ACMヘッダ及びアプリケーションペイロードについて、以下に図5及び6を参照して詳細に説明する。
406Aにおいて、TLS/DTLSクライアント304Aは、データ(アプリケーションデータ+ACMヘッダ)を暗号化/解読し、仮想通信リンク202を介してアプリケーションデータをアプリケーションサーバ210に送信する役目をする。
412Aにおいて、暗号化/解読されたデータ(アプリケーション+ACMヘッダ)は、仮想通信リンク202を介してサーバプロキシ208により受信され、410Aにおいて、MUX/DEMUX306Bは、ペイロードに対してACMヘッダを追加/削除する。
次に、408Aにおいて、サーバプロキシ208のセッションマネージャ302Bは、MUX/DEMUX306Bからアプリケーションデータを読み取り、アプリケーションサーバ210とのローカルセッションを生成/管理する。次に、アプリケーションデータは、セッションのセキュアソケットを介してアプリケーションサーバ210に送信され、クライアント310B及び/又は312Bは、要求を読み取り、アプリケーション応答を準備する。
図4Bは、サーバデータをクライアントに送信するためのフローチャートを示す。サーバ1 310B及び/又はサーバ2 312Bは、図4Aのクライアント要求に応じてアプリケーション応答を準備する。402Bにおいて、セッションマネージャ302Bは、アプリケーションサーバ210からアプリケーションデータ(例えば、ペイロード)を読み取り、セッション情報のためのレコードを生成/管理する。次に、セッションマネージャ302Bは、セッション情報及びアプリケーションデータをMUX/DEMUX306Bに送信する。
404Bにおいて、MUX/DEMUX306は、セッション情報及びアプリケーションデータを読み取り、ACMヘッダからアプリケーションデータ(ペイロード)に追加/削除されるACMヘッダを準備する。406Bにおいて、TLS/DTLSサービス304Bは、アプリケーションデータ(アプリケーション+ACMヘッダ)を暗号化し、クライアントプロキシ204及び仮想トンネルリンク202を介して暗号化されたアプリケーションデータをアプリケーションクライアント206に送信する。
暗号化されたアプリケーションデータがプロキシクライアント204のTLS/DTLSクライアント304Aにより受信されると、408Bにおいて、アプリケーションデータ(アプリケーション+ACMヘッダ)が解読され、410Bにおいて、MUX/DEMUX306Aは、アプリケーションデータ(ペイロード)からACMヘッダを削除し、解読されたアプリケーションデータをセッションマネージャ302Aに送信する。次に、セッションマネージャ302Aは、MUX/DEMUX306Aからアプリケーションデータを読み取り、アプリケーションデータをクライアント1 310A及び/又はクライアント 312Aのためのそれぞれのソケットに送信し、応答は、アプリケーションサーバ210から受信される。
図5は、アプリケーションクライアント又はアプリケーションサーバのペイロードに追加されるシムレイヤを示す。シムレイヤは、オープンシステム間相互接続(open systems interconnection, OSI)レイヤ502のレイヤ4及び7の間に追加されるものとして示されている。図面はまた、NETCONFペイロード502Aと、SNMPペイロード502Bと、CAPWAPペイロード502Cとを含む3つのペイロードを示す。
図示のように、レイヤ3(IP)は、アドレッシング、ルーティング及びトラヒック制御を含む、マルチノードネットワークを構築及び管理するパケットレイヤである。レイヤ4(TCP/UDP)は、セグメント化、送達確認及び多重を含む、ネットワーク上のポイント間でのデータセグメントの伝送の役目をするトランスポートレイヤである。レイヤ5及び/又は6は、プレゼンテーション(レイヤ6)の一部として追加されたシムレイヤと、2つのノードの間での複数の行ったり来たりの伝送の形式での情報の継続交換のような通信セッションを管理するセッション(レイヤ5)とを含んでもよい。レイヤ7(NETCONF/SNMP/CAPWAP)は、リソース共有及びリモートファイルアクセスを含む、ハイレベルAPIを含むアプリケーションレイヤである。
図6は、図5のACMヘッダの例を示す。ACMヘッダは、例えば、ACMバージョンフィールドと、ACM動作(Op)タイプフィールドと、セキュリティセッション制御フィールドと、アプリケーションセッション/送信元ポートフィールドと、アプリケーション識別子(ID)フィールドと、ペイロード長フィールドとを含む。図示のヘッダは、ヘッダコンフィグレーションの非限定的な例であり、いずれかの数の変更が実現されてもよいことが認識される。
ACMヘッダ内に規定されたフィールドは、サイズ及び情報のタイプで変化してもよい。例として、1つの非限定的な実施例では、ACMバージョンフィールドは4ビットでもよく、初期バージョンを示してもよく、ACM Opタイプフィールドは4ビットでもよく、動作タイプを示してもよく、セキュリティセッション制御フィールドは2バイトでもよく、セキュリティセッション制御タイプを示してもよく、アプリケーションセッション/送信元ポートフィールドは2バイトでもよく、セッションID又は送信元ポートを示してもよく、アプリケーションIDフィールドは2バイトでもよく、アプリケーションTCP、UDP ID又は宛先ポートを示してもよく、ペイロード長は2バイトでもよく、ペイロードのサイズを示してもよい。
ペイロードは、ACMハロー要求、ACMハロー応答、ACM送達確認、ACMデータ又はデータ転送、ACMサービス更新、ACMサービス更新送達確認、ACMヘルス統計要求、ACMヘルス統計応答、ACM制御/アラート/エラー、ACMハートビート要求及び/又はACMハートビート応答のうちいずれか1つ以上になるように構成されてもよい。
図7は、ACMデータセッション状態機械の状態図を示す。ACMデータセッション状態機械は、初期状態702と、データ書き込み状態704/710と、データ読み取り状態706/712と、セッションクローズ状態708とを含む。以下の図7に示すように、データ動作状態は、セッション開始イベント(CE)-11、データ読み取り/データ書き込みイベント(DRWS)-01、データ読み取り/データ書き込み終了イベント(DRWE)-10及びセッションクローズイベント(CT)-00に従って規定されてもよい。
図8A及び8Bは、ネットワーク内でアプリケーションペイロードを伝送する例示的なフロー図を示す。図8Aを参照すると、802において、アプリケーションクライアント206に存在する1つ以上のアプリケーション206A、206B及び206Cにそれぞれ対応する1つ以上のアプリケーションペイロード502A、502B及び502Cが、例えば、プロキシクライアント204により受信される。アプリケーションペイロードは、TCP又はUDPのようなトランスポートレイヤプロトコルを含むクライアント要求から形成される。
804において、プロキシクライアント204により受信されたアプリケーションペイロードは、例えば、セッションマネージャ302Aにより終端され、アプリケーションペイロードは、現在のセッションのために読み取られる。
806において、MUX/DEMUX306Aは、アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備し、808において、TLS/DTLSクライアント304Aは、単一の仮想通信リンク202を介してネットワーク内で伝送するために、ヘッダ情報を含むアプリケーションペイロードを暗号化する。
図8Bを参照すると、単一の通信チャネル(すなわち、仮想通信リンク)を通じて共有するために、アプリケーションペイロードに挿入されるヘッダ情報を含む1つ以上のアプリケーションペイロードは多重されてもよい。
812において、多重されたアプリケーションペイロードは、共有された通信リンクを介して伝送される。エンドポイント(例えば、サーバプロキシ208)に到達したときに、814において、アプリケーションペイロードは、アプリケーションサーバ210がクライアントからの要求に応答し得るように多重分離(及び解読)される。
図9は、開示が実現され得る例示的なネットワークを示す。ネットワーク900は、クラウド902と、ネットワーク906と、クラウドプロバイダ908と、クライアント914A、914B〜914Nとを含む。
クラウド902は、1つ以上のホスト904〜904N(併せて904N)を含み、各ホスト904Nは、1つ以上のノード904N1を含む。一実施例では、ノード904N1は、ホスト904〜ホスト904Nのような物理マシン上にホストされる仮想マシン(virtual machine, VM)である。他の実施例では、ホストマシン904Nは、データセンタに位置してもよい。例えば、1つ以上のノード904N1は、クラウドプロバイダ908により提供されるクラウド902内の物理マシン904N上にホストされる。ホストマシン904N上にホストされるときに、ユーザは、クライアント914A、914B〜914Nのようなクライアントコンピュータシステムを使用して1つ以上のノード904N1上で実行するアプリケーション904N1-2及び904N1-3のような1つ以上のアプリケーションと相互作用できる。一実施例では、アプリケーション904N1-2及び904N1-3は、VMを使用せずにホスト904N上にホストされてもよい。
前述のように、1つ以上のノード904N1は、異なるユーザ及び/又は組織により所有又は管理され得る1つ以上のアプリケーション904N1-2及び904N1-3を実行する。例えば、顧客は、第1顧客のアプリケーションをホストしている同じノード又は異なるノード904N上に、他の顧客のアプリケーションと共存し得るアプリケーション904N1-2及び904N1-3を配置してもよい。一実施例では、一部又は別々のアプリケーション904N1-2及び904N1-3が異なるノード904N上で実行する。
一実施例では、当業者により認識されるように、アプリケーション904N1-2及び904N1-3の実行に使用されるデータは、予め存在するアプリケーションコンポーネントから構築されたアプリケーションイメージと、アプリケーション904N1-2及び904N1-3を管理するユーザのソースコードとを含む。SDN及びコンテナネットワーキングの状況におけるイメージは、アプリケーションの実行時インスタンスのための機能を配置するために使用されるアプリケーションの実行形式及びファイルを表すデータを示す。一例では、イメージは、Dockerツールを使用して構築され、Dockerイメージと呼ばれる。以下に説明するように、ドケットブリッジは、本発明の様々な実施例を実現する際に必要ではないが、このようなdockerブリッジは使用から排除されない。
1つ以上のノード904N1-2及び904N1-3は、ノード904N1-2及び904N1-3の1つ以上の中のコンテナ904N1-2A、904N1-2B、904N1-3A及び904N1-3Bとしてアプリケーションイメージのインスタンスを起動することにより、アプリケーションを実行してもよい。ノード904N1-2及び904N1-3の1つ以上の中のコンテナ904N1-2A、904N1-2B、904N1-3A及び904N1-3Bは、アプリケーション904N1-2及び904N1-3の機能を実現してもよい。
コンテナ904N1-2A、904N1-2B、904N1-3A及び904N1-3Bは、オペレーティングシステムレベルの仮想化を実現してもよく、抽象レイヤは、ホストコンピュータ(図示せず)上のオペレーティングシステムのカーネルの上に提供される。抽象レイヤは、例えば、アプリケーション及びその依存関係をそれぞれ含む複数のコンテナをサポートする。各コンテナは、オペレーティングシステム上の隔離されたプロセスとして実行してもよく、他のコンテナとカーネルを共有する。コンテナは、リソース隔離(CPU、メモリ、ブロックI/O、ネットワーク等)を利用してネーム空間を分離し、動作環境のアプリケーションのビューを完全に隔離するために、カーネルの機能に依存する。コンテナを使用することにより、リソースは隔離でき、サービスは制限でき、プロセスは、自分のプロセスID空間、ファイルシステム構成及びネットワークインタフェースを用いてオペレーティングシステムのプライベートビューを有するように提供できる。複数のコンテナは、同じカーネルを共有できるが、各コンテナは、CPU、メモリ及びI/Oのような規定された量のリソースのみを使用することに制限できる。
クライアント914A、914B〜914Nは、ネットワーク906を介してクラウドプロバイダ908によりクラウド902内のホスト904Nに接続されてもよく、ネットワーク906は、プライベートネットワーク(例えば、ローカルエリアネットワーク(local area network, LAN)、広域ネットワーク(wide area network, WAN)、イントラネット又は他の同様のプライベートネットワーク)又はパブリックネットワーク(例えば、インターネット)でもよい。各クライアント914A、914B〜914Nは、モバイルデバイス、PDA、ラップトップ、デスクトップコンピュータ、タブレットコンピューティングデバイス、サーバデバイス又は他のコンピューティングデバイスでもよい。各ホスト904Nは、サーバコンピュータシステム、デスクトップコンピュータ又は他のコンピューティングデバイスでもよい。
様々な実施例は、前述のネットワークに関して記載されているが、当業者は、そのネットワークが非限定的な例であり、単一のモノリシックコンピュータシステム及び様々な方法で接続されたコンピュータシステム又は同様のデバイスの様々な他の組み合わせを含む様々な他のコンフィグレーションで実現されてもよいことを認識する。
図10は、ホスト内通信のための仮想入力/出力インタフェースを使用した例示的なコンテナパケット通信を示す。従来のSDNでは、コンテナは、例えば、指定のレジストリから収集されたアプリケーションイメージから生成される。コンテナが(典型的には、デーモンにより)インスタンス化されるときに、コンテナは、コンテナをdockerブリッジのような仮想イーサーネットブリッジに接続する固有のネットワークアドレスを割り当てられる。システム内の全てのコンテナは、パケットをdockerブリッジに向けることにより相互に通信し、次に、これは、コンテナネットワークを通じてこれらのパケットを転送する。しかし、コンテナは、重いブリッジポート上で相互に通信し、オープンvSwitch(OVS)及び/又はlinuxカーネルブリッジ機構を利用する。
他の実施例では、コンテナ1002、1004及び1006は、オペレーティングシステムレベルの仮想化のようなサーバ仮想化方法を活用してもよく、オペレーティングシステムのカーネルは、複数の隔離されたユーザ空間インスタンスを許容する。このいくつかのインスタンスは、コンテナ、仮想化エンジン(virtualization engine, VE)、仮想プライベートサーバ(virtual private server, VPS)、jail若しくはゾーン及び/又はこれらのいずれかのハイブリッド結合を含んでもよいが、これらに限定されない。コンテナ1002、1004及び1006のためのいくつかの例示的な利用可能な技術は、chroot, Linux-VServer、lmctfy(「let me contain that for you」)、LXC(Linuxコンテナ)、OpenVZ(オープンVirtuozzo)、Parallels Virtuozzoコンテナ、Solarisコンテナ(及びSolarisゾーン)、FreeBSD Jail、sysjail、WPAR(ワークロードパーティション)HP-UXコンテナ(SRP, セキュアリソースパーティション)、iCore仮想アカウント及びSandboxieを含む。
開示の技術によって、直接のコンテナレベルの通信が仮想入力/出力(virtual input/output, VIO)1010A/B(又は入力/出力仮想化(input/output virtualization(IOV))を介して可能になる。VIOでは、単一の物理アダプタカードは、複数の仮想ネットワークインタフェースカード(network interface card, NIC)及び仮想ホストバスアダプタ(host bus adapter, HBA)として動作する。これらのVIO1010A/Bは、ホスト1008(図10に示す)にロードされ、専用リンクのような通信リンク1-6を介してコンテナ1002、1004及び1006に入力してこれらから出力するデータパケットを制御するために使用できるVIOソフトウェア及び/又はハードウェアを含んでもよい。各VIO1010A/Bは、直接的に他のデータコンテナ1002、1004及び1006へのデータパケットを多重及び多重分離でき、それにより、ホスト内コンテナ通信の制限を解決する。このようなコンフィグレーションは、容易な配置、スケーラビリティ及び小さい通信オーバーヘッドを許容し得る。
図10を参照すると、直接のコンテナレベルの通信は、コンテナ1002、1004及び1006が、ホスト1008とインタフェースするVIO1010A/Bを介して通信リンク1-6を使用して相互に通信可能に結合されることにより実現される。一実施例では、各コンテナ1002、1004及び1006は、その間の通信をサポートするブリッジを必要とすることなく、VIO1010A/Bのそれぞれ1つ以上に接続された仮想ネットワークインタフェースカード(virtual network interface card, vNIC)を含んでもよい。VIO1010A/Bは、ブリッジ又はOVSを使用してパケットを送信してもよいこともまた認識される。
例として、コンテナ1002、1004及び1006が専用リンク1、2、3及び6を含むことを仮定する(説明の目的で、リンク4及び5が存在しないことを仮定する)。コンテナ1002、1004及び1006のそれぞれは、各コンテナとVIOとの間に専用仮想リンクを生成する。したがって、コンテナ1002は、コンテナ1002とVIO1010Aとの間のリンク(1)と、コンテナ1002とVIO1010Bとの間のリンク(6)とを形成し、コンテナ1004は、コンテナ1004とVIO1010Aとの間のリンク(2)を形成し、コンテナ1006は、コンテナ1006とVIO1010Bとの間のリンク(3)を形成する。
図11は、ホスト間通信のための仮想入力/出力インタフェースを使用した例示的なコンテナパケット通信を示す。ホスト間インスタンスは、それぞれのホスト1114及びホスト1116内のVIO1122A/Bに通信可能に結合されたコンテナ1102、1104、1106、1108、1110及び1112を含む。図10の説明と同様に、コンテナは、VIO1122A/Bを介した直接のアプリケーションレベルの通信のための専用仮想リンクを生成する。専用仮想リンクは、例えば、入力キューを使用して、直接的に1つ又は複数の物理リンク1120に多重されてもよい。
物理リンク1120は、ホスト1114及びホスト1116のようなホストのそれぞれを有効にする。物理ネットワークインタフェース1120は、ハードウェア、ソフトウェア又はこれらの組み合わせでいずれかの形式のI/O仮想化(IOV)のためのサポートを提供するネットワークI/Oデバイスでもよい。IOVデバイスの例は、PCI-SIG準拠のSR-IOVデバイス及び非SR-IOVデバイス、PCI-SIG準拠のMR-IOVデバイス、マルチキューNIC、I/Oアダプタ、集合NIC及び集合ネットワークアダプタ(converged network adapter, CAN)を含むが、これらに限定されない。
一例の実施例では、3つの専用仮想リンクがコンテナとVIOとの間にそれぞれのホスト1114及びホスト1116に存在することを仮定する。ホスト1114では、コンテナ1102はリンク1を生成し、コンテナ1104はリンク2を生成し、コンテナ1106はリンク3を生成する。ホスト1116では、コンテナ1108はリンク4を生成し、コンテナ1110はリンク5を生成し、コンテナ1112はリンク6を生成する。ホスト1114内で、コンテナ1102、1104及び1106からVIO1122A/Bへの情報は、ホスト1116への伝送のために、1つ以上の物理リンク1120に多重されてもよい。コンテナ情報のいずれか1つ以上が多重されてもよく、及び/又は1つ以上の物理リンクを通じて伝送されてもよいことが認識される。ホスト1116において受信したときに、伝送は多重分離され、コンテナ1108、1110及び1112のそれぞれ1つ以上に送信されてもよい。
図12及び13は、TCP及び関係するソケットを消費する必要なくVIOを使用した直接のデータベース/アプリケーションレベルの通信の様々な実施例を示す。1つ以上の実施例は、データベース(database, DB)の使用のための共通のアプリケーションプログラミングインタフェース(application programming interface, API)のために標準化されてもよい。VIOを介した直接のDB/アプリケーションレベルの通信は、容易な使用、スケーラビリティ及び小さい通信オーバーヘッドを許容する。
開示の技術によって、直接のDBインスタンスレベルの通信が仮想入力/出力(virtual input/output, VIO)1210A/B(又は入力/出力仮想化)を介して可能になる。VIOでは、単一の物理アダプタカードは、複数の仮想ネットワークインタフェースカード(network interface card, NIC)及び仮想ホストバスアダプタ(host bus adapter, HBA)として動作する。これらのVIO1210A/Bは、ホスト1208にロードされ、専用リンクのような通信リンク1-6を介してDBインスタンス1202、1204及び1206に入力してこれらから出力するデータパケットを制御するために使用できるVIOソフトウェア及び/又はハードウェアを含んでもよい。各VIO1210A/Bは、直接的に他のDBインスタンス1202、1204及び1206へのデータパケットを多重及び多重分離でき、それにより、ホスト内インスタンス通信の制限を解決する。このようなコンフィグレーションは、容易な配置、スケーラビリティ及び小さい通信オーバーヘッドを許容し得る。
特に、図12は、ホスト内通信のための仮想入力/出力インタフェースを使用して通信する例示的なデータベースインスタンスを示す。認識できるように、データベース(database, DB)インスタンスは、一式のデータベースファイルにアクセスする一式のメモリ構成及びバックグラウンド処理である。処理は、ユーザの全てにより共有できる。
直接のDBインスタンスレベルの通信は、DBインスタンス1202、1204及び1206が、ホスト1208とインタフェースするVIO1210A/Bを介して通信リンク1-6を使用して相互に通信可能に結合されることにより実現される。一実施例では、各コンテナ1202、1204及び1206は、その間の通信をサポートするブリッジを必要とすることなく、VIO1210A/Bのそれぞれ1つ以上に接続された仮想ネットワークインタフェースカード(virtual network interface card, vNIC)を含んでもよい。VIO1210A/Bは、ブリッジ又はOVSを使用してパケットを送信してもよいこともまた認識される。
例として、コンテナ1202、1204及び1206が専用リンク1、2、3及び6を含むことを仮定する(説明の目的で、リンク4及び5が存在しないことを仮定する)。DBインスタンス1202、1204及び1206のそれぞれは、各コンテナとVIOとの間に専用仮想リンクを生成する。したがって、DBインスタンス1202は、DBインスタンス1202とVIO1210Aとの間のリンク(1)と、DBインスタンス1202とVIO1210Bとの間のリンク(6)とを形成し、DBインスタンス1204は、DBインスタンス1204とVIO1210Aとの間のリンク(2)を形成し、DBインスタンス1206は、DBインスタンス1206とVIO1210Bとの間のリンク(3)を形成する。
図13は、ホスト間通信のための仮想入力/出力インタフェースを使用した例示的なDBインスタンスパケット通信を示す。ホスト間インスタンスは、それぞれのホスト1314及びホスト1316内のVIO1322A/Bに通信可能に結合されたインスタンス1302、1304、1306、1308、1310及び1312を含む。図12の説明と同様に、DBインスタンスは、VIO1322A/Bを介した直接のアプリケーションレベルの通信のための専用仮想リンクを生成する。専用仮想リンクは、例えば、TCPソケットに依存せずに、入力キューを使用して、直接的に1つ又は複数の物理リンク1320に多重されてもよい。
物理リンク1320は、ホスト1314及びホスト1316のようなホストのそれぞれを有効にする。物理ネットワークインタフェース1320は、ハードウェア、ソフトウェア又はこれらの組み合わせでいずれかの形式のI/O仮想化(IOV)のためのサポートを提供するネットワークI/Oデバイスでもよい。IOVデバイスの例は、PCI-SIG準拠のSR-IOVデバイス及び非SR-IOVデバイス、PCI-SIG準拠のMR-IOVデバイス、マルチキューNIC、I/Oアダプタ、集合NIC及び集合ネットワークアダプタ(converged network adapter, CAN)を含むが、これらに限定されない。
一例の実施例では、3つの専用仮想リンクがDBインスタンスとVIOとの間にそれぞれのホスト1314及びホスト1316に存在することを仮定する。ホスト1314では、DBインスタンス1302はリンク1を生成し、DBインスタンス1304はリンク2を生成し、DBインスタンス1306はリンク3を生成する。ホスト1316では、DBインスタンス1308はリンク4を生成し、DBインスタンス1310はリンク5を生成し、DBインスタンス1312はリンク6を生成する。ホスト1314内で、DBインスタンス1302、1304及び1306からVIO1322A/Bへの情報は、ホスト1316への伝送のために、1つ以上の物理リンク1320に多重されてもよい。DBインスタンス情報のいずれか1つ以上が多重されてもよく、及び/又は1つ以上の物理リンクを通じて伝送されてもよいことが認識される。ホスト1116において受信したときに、伝送は多重分離され、DBインスタンス1308、1310及び1312のそれぞれ1つ以上に送信されてもよい。
図14A及び14Bは、コンテナ及びデータベースインスタンスのための仮想リンクを構築する例示的なフロー図を示す。図14Aを参照すると、フロー図は、直接通信リンクを介して通信するアプリケーションコンテナに関する。1402において、1つ以上の第1専用仮想リンク1-6は、1つ以上の第1アプリケーションコンテナの間の直接のアプリケーションコンテナレベルの通信のために(例えば、個別のコンテナ1002、1004及び1006により)構築される。次に、1404において、データは、対応する1つ以上の第1専用通信リンク1-6を介して1つ以上の第1アプリケーションコンテナ1002、1004及び1006の間で通信されてもよく、1つ以上の第1専用仮想リンク1-6のそれぞれは、第1端で1つ以上の第1アプリケーションコンテナ1002、1004及び1006のそれぞれに接続され、第2端でそれぞれの仮想入力/出力(virtual input/output, VIO)に接続される。
図14Bを参照すると、フロー図は、仮想入力/出力(virtual input/output, VIO)を介して直接のデータベース対アプリケーションレベルの通信を提供することに関する。1406において、1つ以上の第1専用仮想リンク1-6は、1つ以上の第1DBインスタンス1202、1204及び1206の間の直接のアプリケーションコンテナレベルの通信のために(例えば、個別のDBインスタンス1202、1204及び1206により)構築される。次に、1408において、データは、対応する1つ以上の第1専用通信リンク1-6を介して1つ以上の第1DBインスタンス1202、1204及び1206の間で通信されてもよく、1つ以上の第1専用仮想リンク1-6のそれぞれは、第1端で1つ以上の第1DBインスタンス1202、1204及び1206のそれぞれに接続され、第2端でそれぞれの仮想入力/出力(virtual input/output, VIO)に接続される。
図15は、開示の実施例によるノードの実施例を示す。ノードは、例えば、ノード108及び110(図1)又はネットワーク内の前述のような他のノード若しくはルータでもよい。ノード1500は、他のノードからのデータを受信及び伝送するための複数の入力/出力ポート15110/1530及び/又は受信機(Rx)1512及び送信機(Tx)1532、データを処理してどのノードがデータを送信するかを決定するための、記憶装置1522及びプログラム可能コンテンツ転送プレーン1528を含む処理システム又はプロセッサ1520(又はコンテンツアウェアユニット)を含んでもよい。ノード1500はまた、前述のようなアプリケーションデータ(ペイロード)を受信してもよい。
単一のプロセッサとして示されているが、プロセッサ1520はこれに限定されず、複数のプロセッサを含んでもよい。プロセッサ1520は、1つ以上の中央処理装置(central processing unit, CPU)チップ、コア(例えば、マルチコアプロセッサ)、フィールドプログラマブルゲートアレイ(field-programmable gate array, FPGA)、特定用途向け集積回路(application specific integrated circuit, ASIC)及び/又はデジタルシグナルプロセッサ(digital signal processor, DSP)として実現されてもよく、及び/又は1つ以上のASICの一部でもよい。プロセッサ1520は、実施例に記載のステップのうちいずれか1つ又は組み合わせを使用して、図4A/B、8及び14に示す処理のような、ここに記載の方式のいずれかを実現するように構成されてもよい。さらに、プロセッサ1520は、ハードウェア、ソフトウェア又は双方を使用して実現されてもよい。
記憶装置1522(又はメモリ)は、キャッシュ1524と、長期記憶装置1526と、データベースクラスタ通信モジュール1528とを含んでもよく、ルーティングテーブル、転送テーブル又はここに開示された他のテーブル若しくは情報を記憶するように構成されてもよい。単一の記憶装置として示されているが、記憶装置1522は、読み取り専用メモリ(read only memory, ROM)、ランダムアクセスメモリ(random access memory, RAM)又は2次記憶装置(例えば、データの不揮発性記憶に使用される1つ以上のディスクドライブ又はテープドライブ)の組み合わせとして実現されてもよい。
データベースクラスタ通信モジュール1528の包含は、ノード1500の機能に対する改善を提供する。データベースクラスタ通信モジュール1528はまた、異なる状態へのノード1500の変換を行う。或いは、データベースクラスタ通信モジュール1528は、プロセッサ1520に記憶された命令として実現される。
図16は、様々な実施例を実現するために使用できるネットワークシステムのブロック図である。具体的なデバイスは、図示のコンポーネントの全て又はコンポーネントのサブセットのみを利用してもよく、統合のレベルは、デバイス毎に変化してもよい。さらに、デバイスは、複数の処理ユニット、プロセッサ、メモリ、送信機、受信機等のようなコンポーネントの複数のインタフェースを含んでもよい。ネットワークシステムは、ネットワークインタフェース、記憶インタフェース等のような1つ以上の入力/出力デバイスを備えた処理ユニット1601を含んでもよい。処理ユニット1601は、バスに接続された中央処理装置(central processing unit, CPU)1610と、メモリ1620と、大容量記憶デバイス1630と、I/Oインタフェース1660とを含んでもよい。バスは、メモリバス又はメモリコントローラ、周辺機器バス等を含むいずれかの種類の複数のバスアーキテクチャのうち1つ以上でもよい。
CPU1610は、いずれかの種類の電子データプロセッサを含んでもよい。メモリ1620は、スタティックランダムアクセスメモリ(static random access memory, SDRAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory, DRAM)、シンクロナスDRAM(synchronous DRAM, SDRAM)、読み取り専用メモリ(read-only memory, ROM)、これらの組み合わせ等のようないずれかの種類のシステムメモリを含んでもよい。実施例では、メモリ1620は、ブートアップ時に使用するROMと、プログラムを実行する間に使用するプログラム及びデータ記憶のためのDRAMとを含んでもよい。実施例では、メモリ1620は非一時的である。大容量記憶デバイス1630は、データ、プログラム及び他の情報を記憶し、バスを介してデータ、プログラム及び他の情報をアクセス可能にするように構成されたいずれかの種類の記憶デバイスを含んでもよい。大容量記憶デバイス1630は、例えば、ソリッドステートドライブ、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ等のうち1つ以上を含んでもよい。
処理ユニット1601はまた、1つ以上のネットワークインタフェース1650を含み、これは、ノード又は1つ以上のネットワーク1680にアクセスするために、イーサーネットケーブル等のような有線リンクを含んでもよい。ネットワークインタフェース1650は、処理ユニット1601がネットワーク1680を介してリモートユニットと通信することを許容にする。例えば、ネットワークインタフェース1650は、1つ以上の送信機/送信アンテナ及び1つ以上の受信機/受信アンテナを介して無線通信を提供してもよい。実施例では、処理ユニット1601は、他の処理ユニット、インターネット、リモート記憶施設等のようなリモートデバイスとの通信及びデータ処理のために、ローカルエリアネットワーク又は広域ネットワークに結合される。
図17は、開示の技術によるブロック図を示す。受信機/送信機モジュール1702は、クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信及び送信する。終端モジュール1704は、トランスポートレイヤプロトコルを終端し、現在のセッションに関連するアプリケーションペイロードを読み取る。準備器モジュール1706は、アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備する。暗号化/解読モジュール1708は、単一の仮想通信リンクを介してネットワーク内で伝送するために、ヘッダ情報を含むアプリケーションペイロードを暗号化/解読する。多重/多重分離モジュール1710は、単一の通信チャネル(仮想通信リンク)を通じて伝送され得るように、アプリケーションペイロードを多重/多重分離する。最後に、仮想I/Oモジュール1712は、アプリケーションコンテナがホストに存在する仮想入力/出力(virtual input/output, VIO)を使用して直接的に相互に通信することを許容する。
開示の技術は、単一の暗号チャネルを通じて多重/多重分離及び搬送されたアプリケーションペイロードを有する同じデバイスからの複数の安全なアプリケーションを提供する。セッション確立オーバーヘッド及びトンネルオーバーヘッドがないこと、TCPプロキシセッションのオーバーヘッド及びトンネルペイロードオーバーヘッドを低減すること、同じデバイス上で実行する異なるアプリケーションとの制御プレーントラヒックのために使用できること、安全なセッション確立(非対称及び対称)の数を低減すること、パブリッククラウド又はインターネットを通じたSDNコントローラからネットワークデバイスの通信、単一の暗号セッションを通じて複数のアプリケーションを多重すること、ファイアウォールが複数のアプリケーションのためのサポートのために複数のポートを開く必要がないこと、インターネット/クラウドを通じてネットワーキングデバイス(ルータ/スイッチ/WIFI/IOT)を管理すること、並びにNetconf、SNMP及びCapwapのような複数のアプリケーションの容易な管理を含み、1つ以上の利点がこの技術から生じる。
開示の技術の他の実施例は、以下の非限定的な利点を有利に提供する。VIOは、エンドツーエンドの通信経路を短縮するため、通信待ち時間を低減し、そのため、データベースの全体性能を改善する。VIOは、データベースインタフェースの間の同時接続の総数を低減でき、通常では、1つのサーバが設定してデータメッセージを送信できるTCP接続の数に厳しい制限が存在する。これは、データベースクラスタのスケーラビリティを改善し、これは、より多くのデータベースインタフェースがデータベースクラスタに入れられることができ、より多くのクエリがデータベースクラスタにより同時に処理できることを意味する。これはまた、全体のデータベースシステム性能を改善する。
本開示の様々な実施例によれば、ここに記載の方法は、ソフトウェアプログラムを実行するハードウェアコンピュータシステムを使用して実現されてもよい。さらに、非限定的な実施例では、実現は、分散処理、コンポーネント/オブジェクト分散処理及び並列処理を含むことができる。仮想コンピュータシステム処理は、ここに記載の方法又は機能のうち1つ以上を実現するように構築でき、ここに記載のプロセッサは、仮想処理環境をサポートするために使用されてもよい。
本開示の態様は、開示の実施例による方法、装置(システム)及びコンピュータプログラムプロダクトのフローチャート図及び/又はブロック図を参照してここに記載している。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータプログラム命令により実現できることが理解される。これらのコンピュータプログラム命令は、汎用コンピュータ、特殊目的コンピュータ又は他のプログラム可能データ処理装置のプロセッサに提供され、命令がコンピュータ又は他のプログラム可能命令実行装置を介して実行するときに、フローチャート及び/又はブロック図のブロックに指定された機能/動作を実現するための機構を生成するような機械を生成してもよい。
ここで使用される用語は、特定の態様を説明するための目的のみのためであり、開示の限定であることを意図しない。ここで使用される単数形は、文脈がそうでないことを明らかに示さない限り、複数形も同様に含むことを意図する。「含む」及び/又は「含んでいる」という用語は、この明細書で使用されるときに、言及した特徴、整数、ステップ、動作、エレメント及び/又はコンポーネントの存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、エレメント、コンポーネント及び/又はこれらのグループの存在又は追加を除外しないことが更に理解される。
本開示の説明は、例示及び説明の目的で提示されており、網羅的であること又は開示の形式の開示に限定されることを意図しない。多くの変更及び変形は、開示の範囲及び真意を逸脱することなく、当業者に明らかになる。ここでの開示の態様は、開示の原理及び実際の適用を最も良く説明し、当業者が考えられる特定の使用に適した様々な変更を有する開示を理解可能とするために選択及び記載されている。
この文献の目的で、開示の技術に関連する各処理は、1つ以上のコンピューティングデバイスにより連続的に実行されてもよい。処理の各ステップは、他のステップで使用されるものと同じ或いは異なるコンピューティングデバイスにより実行されてもよく、各ステップは、必ずしも単一のコンピューティングデバイスにより実行される必要はない。
対象物は、構造的な特徴及び/又は方法論的な動作に特有の言語で記載されているが、添付の特許請求の範囲に規定される対象物は、前述の具体的な特徴又は動作に必ずしも限定されないことが理解される。むしろ、前述の具体的な特徴及び動作は、特許請求の範囲を実現する例示的な形式として開示される。

Claims (12)

  1. ネットワーク内でアプリケーションペイロードを伝送する方法であって、
    クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信するステップであり、前記アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成されるステップと、
    前記トランスポートレイヤプロトコルを終端し、現在のセッションに関連する前記アプリケーションペイロードを読み取るステップと、
    前記アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備するステップと、
    単一の仮想通信リンクを介して前記ネットワーク内で伝送するために、前記ヘッダ情報を含む前記アプリケーションペイロードを暗号化するステップと
    を含み、
    シムレイヤが、アプリケーションペイロードと伝送制御プロトコル(transmission control protocol, TCP)/セキュアソケットレイヤ(secure socket layer, SSL)ヘッダとの間に前記ヘッダ情報として追加される方法。
  2. ネットワーク内でアプリケーションペイロードを伝送する方法であって、
    クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信するステップであり、前記アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成されるステップと、
    前記トランスポートレイヤプロトコルを終端し、現在のセッションに関連する前記アプリケーションペイロードを読み取るステップと、
    前記アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備するステップと、
    単一の仮想通信リンクを介して前記ネットワーク内で伝送するために、前記ヘッダ情報を含む前記アプリケーションペイロードを暗号化するステップと
    を含み、
    前記仮想通信リンクは、前記クライアントに存在する前記アプリケーションのうち1つ以上が前記アプリケーションペイロードを多重することにより単一の通信チャネルを共有することを許容する方法。
  3. 前記1つ以上のアプリケーションは、NETCONF、SNMP及びCAPWAPのうち1つを含む、請求項1又は2に記載の方法。
  4. 前記ヘッダ情報は、バージョンフィールドと、動作タイプフィールドと、セキュリティセッション制御フィールドと、アプリケーションセッションフィールドと、アプリケーションIDフィールドと、ペイロード長とのうち少なくとも1つを含む、請求項1乃至3のうちいずれか1項に記載の方法。
  5. 仮想通信リンクは、暗号化された仮想トンネルである、請求項1乃至のうちいずれか1項に記載の方法。
  6. ネットワーク内でアプリケーションペイロードを伝送するためのコンピュータ命令を記憶した非一時的なコンピュータ読み取り可能媒体であって、
    前記コンピュータ命令は、1つ以上のプロセッサにより実行されたときに、前記1つ以上のプロセッサに対して、
    クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信するステップであり、前記アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成されるステップと、
    前記トランスポートレイヤプロトコルを終端し、現在のセッションに関連する前記アプリケーションペイロードを読み取るステップと、
    前記アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備するステップと、
    単一の仮想通信リンクを介して前記ネットワーク内で伝送するために、前記ヘッダ情報を含む前記アプリケーションペイロードを暗号化するステップと
    を実行させ
    シムレイヤが、アプリケーションペイロードと伝送制御プロトコル(transmission control protocol, TCP)/セキュアソケットレイヤ(secure socket layer, SSL)ヘッダとの間に前記ヘッダ情報として追加される非一時的なコンピュータ読み取り可能媒体。
  7. ネットワーク内でアプリケーションペイロードを伝送するためのコンピュータ命令を記憶した非一時的なコンピュータ読み取り可能媒体であって、
    前記コンピュータ命令は、1つ以上のプロセッサにより実行されたときに、前記1つ以上のプロセッサに対して、
    クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信するステップであり、前記アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成されるステップと、
    前記トランスポートレイヤプロトコルを終端し、現在のセッションに関連する前記アプリケーションペイロードを読み取るステップと、
    前記アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備するステップと、
    単一の仮想通信リンクを介して前記ネットワーク内で伝送するために、前記ヘッダ情報を含む前記アプリケーションペイロードを暗号化するステップと
    を実行させ、
    前記仮想通信リンクは、前記クライアントに存在する前記アプリケーションのうち1つ以上が前記アプリケーションペイロードを多重することにより単一の通信チャネルを共有することを許容する非一時的なコンピュータ読み取り可能媒体。
  8. ネットワーク内でアプリケーションペイロードを伝送するための装置であって、
    クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信するための受信機/送信機モジュールであり、前記アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成される受信機/送信機モジュールと、
    前記トランスポートレイヤプロトコルを終端し、現在のセッションに関連する前記アプリケーションペイロードを読み取るための終端モジュールと、
    前記アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備するための準備器モジュールと、
    単一の仮想通信リンクを介して前記ネットワーク内で伝送するために、前記ヘッダ情報を含む前記アプリケーションペイロードを暗号化するための暗号化/解読モジュールと
    を含み、
    シムレイヤが、アプリケーションペイロードと伝送制御プロトコル(transmission control protocol, TCP)/セキュアソケットレイヤ(secure socket layer, SSL)ヘッダとの間に前記ヘッダ情報として追加される装置。
  9. ネットワーク内でアプリケーションペイロードを伝送するための装置であって、
    クライアントに存在する1つ以上のアプリケーションに対応する1つ以上のアプリケーションペイロードを受信するための受信機/送信機モジュールであり、前記アプリケーションペイロードは、トランスポートレイヤプロトコルを含むクライアント要求から形成される受信機/送信機モジュールと、
    前記トランスポートレイヤプロトコルを終端し、現在のセッションに関連する前記アプリケーションペイロードを読み取るための終端モジュールと、
    前記アプリケーションペイロードの対応するものに挿入するために、受信したアプリケーションのそれぞれのためのアプリケーション特有情報を含むヘッダ情報を準備するための準備器モジュールと、
    単一の仮想通信リンクを介して前記ネットワーク内で伝送するために、前記ヘッダ情報を含む前記アプリケーションペイロードを暗号化するための暗号化/解読モジュールと
    を含み、
    前記仮想通信リンクは、前記クライアントに存在する前記アプリケーションのうち1つ以上が前記アプリケーションペイロードを多重することにより単一の通信チャネルを共有することを許容する装置。
  10. 前記1つ以上のアプリケーションは、NETCONF、SNMP及びCAPWAPのうち1つを含む、請求項8又は9に記載の装置。
  11. 前記ヘッダ情報は、バージョンフィールドと、動作タイプフィールドと、セキュリティセッション制御フィールドと、アプリケーションセッションフィールドと、アプリケーションIDフィールドと、ペイロード長とのうち少なくとも1つを含む、請求項8乃至10のうちいずれか1項に記載の装置。
  12. 仮想通信リンクは、暗号化された仮想トンネルである、請求項8乃至11のうちいずれか1項に記載の装置。
JP2018515086A 2015-09-21 2016-09-21 高速且つスケーラブルなデータベースクラスタ通信経路 Active JP6511194B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562221458P 2015-09-21 2015-09-21
US62/221,458 2015-09-21
PCT/US2016/052902 WO2017053441A1 (en) 2015-09-21 2016-09-21 Fast and scalable database cluster communication path

Publications (2)

Publication Number Publication Date
JP2018536316A JP2018536316A (ja) 2018-12-06
JP6511194B2 true JP6511194B2 (ja) 2019-05-15

Family

ID=58387279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018515086A Active JP6511194B2 (ja) 2015-09-21 2016-09-21 高速且つスケーラブルなデータベースクラスタ通信経路

Country Status (4)

Country Link
EP (1) EP3338386A4 (ja)
JP (1) JP6511194B2 (ja)
CN (2) CN111930832A (ja)
WO (1) WO2017053441A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877798B2 (en) * 2017-08-31 2020-12-29 Netflix, Inc. Scalable techniques for executing custom algorithms on media items
US10904342B2 (en) 2018-07-30 2021-01-26 Cisco Technology, Inc. Container networking using communication tunnels
CN111355601B (zh) * 2018-12-21 2022-05-10 华为技术有限公司 信息传输方法和装置
CN111953640A (zh) * 2019-05-17 2020-11-17 阿里巴巴集团控股有限公司 通信方法、通信系统、云节点和可读存储介质
US11088952B2 (en) * 2019-06-12 2021-08-10 Juniper Networks, Inc. Network traffic control based on application path
CN110995561B (zh) * 2019-12-06 2021-05-07 中国科学院信息工程研究所 基于容器技术的虚拟网络数据通信交互方法与系统
CN113301004B (zh) * 2020-06-17 2023-05-09 阿里巴巴集团控股有限公司 数据处理方法、装置、通信方法和单网卡虚拟机
CN114666806A (zh) * 2020-12-22 2022-06-24 中国移动通信集团终端有限公司 无线网络虚拟化的方法、装置、设备及存储介质
US20230262031A1 (en) * 2022-02-15 2023-08-17 Capital One Services, Llc Methods and systems for linking mobile applications to multi-access point providers using an intermediary database
CN114584621A (zh) * 2022-04-18 2022-06-03 中国农业银行股份有限公司 一种数据发送的方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711166B1 (en) * 1997-12-10 2004-03-23 Radvision Ltd. System and method for packet network trunking
WO2006029399A2 (en) * 2004-09-09 2006-03-16 Avaya Technology Corp. Methods of and systems for network traffic security
US20060253605A1 (en) 2004-12-30 2006-11-09 Prabakar Sundarrajan Systems and methods for providing integrated client-side acceleration techniques to access remote applications
JP2008527507A (ja) * 2004-12-30 2008-07-24 サイトリックス システムズ, インコーポレイテッド クライアント側の加速技術を提供するシステムおよび方法
CN101557386A (zh) * 2008-04-10 2009-10-14 华为技术有限公司 数据发送方法与装置及数据接收方法与装置
CN101902489B (zh) * 2009-06-01 2013-04-17 华为技术有限公司 一种消息发送方法、处理方法、客户端、路由器和系统
US8584120B2 (en) * 2009-11-23 2013-11-12 Julian Michael Urbach Stream-based software application delivery and launching system
JP5428878B2 (ja) * 2010-01-12 2014-02-26 日本電気株式会社 通信経路構成システム、システム制御方法およびシステム制御用プログラム
US8990380B2 (en) * 2010-08-12 2015-03-24 Citrix Systems, Inc. Systems and methods for quality of service of ICA published applications
US8996657B2 (en) * 2010-09-01 2015-03-31 Canon Kabushiki Kaisha Systems and methods for multiplexing network channels
US9749291B2 (en) * 2011-07-15 2017-08-29 International Business Machines Corporation Securing applications on public facing systems
US9015245B1 (en) * 2011-07-20 2015-04-21 Google Inc. Experience sharing with commenting
US9032506B2 (en) 2012-08-09 2015-05-12 Cisco Technology, Inc. Multiple application containerization in a single container
EP2907289B1 (en) * 2012-10-15 2018-05-16 Citrix Systems Inc. Providing virtualized private network tunnels
US9514208B2 (en) 2012-10-30 2016-12-06 Vekatachary Srinivasan Method and system of stateless data replication in a distributed database system
US9438488B2 (en) * 2012-11-09 2016-09-06 Citrix Systems, Inc. Systems and methods for appflow for datastream
CN104331659A (zh) * 2014-10-30 2015-02-04 浪潮电子信息产业股份有限公司 一种关键应用主机系统资源应用隔离的设计方法

Also Published As

Publication number Publication date
EP3338386A4 (en) 2018-10-24
JP2018536316A (ja) 2018-12-06
CN108370280B (zh) 2020-09-11
CN111930832A (zh) 2020-11-13
CN108370280A (zh) 2018-08-03
WO2017053441A1 (en) 2017-03-30
EP3338386A1 (en) 2018-06-27

Similar Documents

Publication Publication Date Title
JP6511194B2 (ja) 高速且つスケーラブルなデータベースクラスタ通信経路
US11411995B2 (en) Infrastructure level LAN security
EP3785412B1 (en) Dynamic scaling of virtual private network connections
EP3611883A1 (en) Secure forwarding of tenant workloads in virtual networks
US10567347B2 (en) Distributed tunneling for VPN
US9596077B2 (en) Community of interest-based secured communications over IPsec
US11044238B2 (en) Secure communications among tenant virtual machines in a cloud networking environment
JP2022550356A (ja) マルチテナントソフトウェア定義ワイドエリアネットワーク(sd-wan)ノードを提供するための方法、システム、およびコンピュータ読取可能媒体
US8713305B2 (en) Packet transmission method, apparatus, and network system
US10250571B2 (en) Systems and methods for offloading IPSEC processing to an embedded networking device
US11316837B2 (en) Supporting unknown unicast traffic using policy-based encryption virtualized networks
EP3611882A1 (en) System and method for transferring packets between kernel modules in different network stacks
CN113383528A (zh) 用于经由tls终止节点的智能内联路径发现的针对https流量的增强的qos、引导和策略实施的系统和设备
US10498529B1 (en) Scalable node for secure tunnel communications
US11936613B2 (en) Port and loopback IP addresses allocation scheme for full-mesh communications with transparent TLS tunnels
US11848918B2 (en) End-to-end network encryption from customer on-premise network to customer virtual cloud network using customer-managed keys
US20180097785A1 (en) Scalable security key architecture for network encryption
WO2012126432A2 (zh) 数据传输的方法、设备和系统
US20230143157A1 (en) Logical switch level load balancing of l2vpn traffic
US20230403149A1 (en) Computer and Network Interface Controller Securely Offloading Encryption Keys and QUIC Encryption Processing to the Network Interface Controller
US20220231993A1 (en) Security association bundling for an interface

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190301

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190405

R150 Certificate of patent or registration of utility model

Ref document number: 6511194

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250