JP2014501978A - ファイルシステムセッションにおけるマルチコネクション - Google Patents

ファイルシステムセッションにおけるマルチコネクション Download PDF

Info

Publication number
JP2014501978A
JP2014501978A JP2013543291A JP2013543291A JP2014501978A JP 2014501978 A JP2014501978 A JP 2014501978A JP 2013543291 A JP2013543291 A JP 2013543291A JP 2013543291 A JP2013543291 A JP 2013543291A JP 2014501978 A JP2014501978 A JP 2014501978A
Authority
JP
Japan
Prior art keywords
connection
session
server
client
transport
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.)
Granted
Application number
JP2013543291A
Other languages
English (en)
Other versions
JP5882353B2 (ja
JP2014501978A5 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014501978A publication Critical patent/JP2014501978A/ja
Publication of JP2014501978A5 publication Critical patent/JP2014501978A5/ja
Application granted granted Critical
Publication of JP5882353B2 publication Critical patent/JP5882353B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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/14Multichannel or multilink protocols
    • 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/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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/24Negotiation of communication capabilities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

説明するマルチコネクション情報システムは、トランスポートレイヤーより上位のプロトコルから制御可能な方法で、単一のファイルシステムセッションにおいてリソースへ接続するために複数のコネクションを用いる。システムはまた、単一コネクションを複数セッションと共有することもできる。セッションは、複数のトランスポートを経由した通信を可能とするために複数のコネクションにバインディングすることができる。セッションの初期ネゴシエーションの間、クライアントおよびサーバーは、セッション内でクライアントとサーバーとの間の複数コネクションがサポートされるかを決定することができる。初期コネクションが確立した後で、追加コネクションが確立されそして既存のセッションにバインディングされる。複数コネクションは、フェイルオーバーおよび/または負荷分散のために使用することができる。マルチコネクションの情報システムは、セッション内における複数のチャネルを確立する性能を発見するためのプロトコルおよび二つの特定のリソース間の利用可能なコネクションに関する情報を提供する。

Description

ネットワーク上の2つのコンピューター間でファイル、プリンタおよび他のリソースを共有するための様々な技法が存在する。例えば、リソース共有のためのアプリケーションレイヤーネットワークプロトコルの1つにSMB(Server Message Block)がある。SMBはMICROSOFT(登録商標) WINDOWS(登録商標)および他のオペレーティングシステムによって使用され、2つのコンピューターまたは他のリソースは、通信し、リソースへのアクセスを要求し、リソースの意図されたアクセスを指定し(例えば、読み取り、書き込み等)、リソースをロックすること等が可能となる。MICROSOFT(登録商標) WINDOWS(登録商標) VistaはSMB2.0を導入し、そのSMB2.0はSMB1.0のコマンドセットを簡素化し、多くの他の改良点を加えている。MICROSOFT(登録商標) WINDOWS(登録商標) 7およびサーバー2008R2はSMB2.1を導入した。そのSMB2.1はオポチュニスティックロック(opportunistic locking (oplocks))および他の改良点を加えている。
リソースのリモート共有のための大抵のプロトコルは、コネクションとセッションとの間の一対一の関係であると考えられている。セッションは、リソースにアクセスするための任意の単一要求、およびコネクションが終了するまでの上記リソースへの順次アクセスの存続期間を表す。セッションはまた、特定のセキュリティプリンシパルと関連付けられ、当該セッションの間に認証される動作を決定するセキュリティ証明を有効化することができる。コネクションは、TCP(Transmission Control Protocol)、またはSMBのような上位プロトコルがコマンドを実行するように通信する他の形式のコネクションを含むことができる。典型的には、SMBセッションは、要求ソースと要求ターゲットとの間のTCPコネクションを開き、一つまたは複数のSMBコマンドを送信してターゲットリソースにアクセスし、次いでセッションを閉じることを含む。
多くのコンピューターは今日、コンピューター間で複数の利用可能なコネクションがあるような方法で接続されている。例えば、データーセンターサーバーは、一方が故障した場合にネットワークトラフィックがもう一方を経由して送信されることができるように、二以上のNIC(Network Interface Cards)と共に構築されることが多い。クライアントコンピューターは、ワイヤレスネットワークコネクション(Wi-Fi)、ブルートゥースコネクション(Bluetooth(登録商標) Connection)、有線イーサネット(登録商標)(例えば、LAN(Local Area Network))等を含むことができる。サーバーコンピューターは、SAN(Storage Area Network)、ファイバーチャネルを介したコネクション、有線イーサネット等を含むことができる。これらのコネクションの一部または全ては、同じリソースの一部または全てに対する接続性を提供することができる。
残念ながら、利用可能なコネクション情報は一般的に、ネットワークを使用するアプリケーション、またはアプリケーションレイヤープロトコルには利用できない。サーバーに対してコネクションを要求するアプリケーションは典型的に、下位のネットワークレイヤーへのコネクションを作成する装置/プロトコルを選択する全ての責任を引き受け、ネットワークレイヤーは、単一のコネクションを作成してアプリケーションのコマンドを実行することになる。コネクションが失敗した場合、アプリケーションまたはネットワークレイヤーは、セッションを再び設定することにより別のコネクションを試行することができるし、あるいは、手作業を伴ってそのようにすることができる。単一のコネクションの使用により、何らかの理由でコネクションが失敗する場合に終了し、かつ、複数のネットワークによって提供される帯域の集合を利用することができない脆弱なコネクションを導く。NFS(Network File System)のような一部のプロトコルは、パラレルエクステンション(parallelization extensions)(例えば、pNFS)を含んでいて、このパラレルエクステンションにより、データへの冗長性のあるパスの使用が可能になり、スループットを改善することができる。しかし、これらは、当該コネクションを管理するために用いることができる上位レベルに対するいかなる情報を提供しない。別の例は、実験的なMPTCP(Multipath TCP)プロトコルであり、MPTCPは、上位互換性のために上位レイヤーに検知されないままでいる特定の目的を有する。これらのプロトコルの機能は、上位レイヤーの制御から完全に外れ、ネットワークレイヤーは、自動的に最も速いコネクションを独自に選択することができないし、あるいは、フェイルオーバー、スループット、または他の目的のために、最も効率的なコネクションの使用を提供することができない。
本明細書で詳述されているマルチコネクション情報システムは、SMBアプリケーションレイヤープロトコルなどの、トランスポートレイヤーより上位のプロトコルから制御可能な方法で、単一のファイルシステムセッションにおいてリソースへ接続する複数のコネクションを用いる。また、システムにより、単一コネクションは、複数のセッションと共有することもできる。チャネルの概念は、特定のコネクションに対する特定のセッションをバインディングすることを表すために導入される。セッションは、複数のトランスポートを通じた通信を可能とする複数のコネクションに結合することができる。セッションの初期ネゴシエーションの間、クライアントおよびサーバーは、複数のコネクションがセッション内でクライアントとサーバーとの間でサポートされるかを決定することができる。初期コネクションが確立した後で、追加コネクションが確立されて既存のセッションに結合される。複数のコネクションは、フェイルオーバーおよび/または負荷分散のために使用することができる。マルチコネクションの情報システムは、セッション内における複数のチャネルを確立する機能を検知するためのプロトコルを提供する。プロトコルは、二つの特定のリソース間の利用可能なコネクションに関する情報、および、コネクションのサーバー側とクライアント側がセッション内における複数のチャネルをサポートするかの情報を提供する。このように、マルチコネクションの情報システムは、トランスポートレイヤーより上位のレイヤーにおける、単一セッションへの複数のコネクションをインテリジェントに選択して使用する方法を提供する。
この概要は、発明の詳細な説明において以下でより詳細に説明される簡略化した態様での概念の選んだものを紹介するために提供してある。この概要は、請求された保護対象の主要な特徴または本質的な特徴を特定することを意図するものではないし、この概要は請求された保護対象の範囲を制限するために使用されるものでもない。
一実施形態における、マルチコネクションの情報システムのコンポーネントを示すブロック図である。 一実施形態における、セッションを開始してトランスポート情報を受信するマルチコネクションの情報システムの処理を示すフローチャートである。 一実施形態における、以前に確立されたセッションへ追加コネクションを付加するマルチコネクションの情報システムの処理を示すフローチャートである。 一実施形態における、マルチコネクションの情報システムを使用した複数のコネクションの設定を示すネットワークパケット図である。 一実施形態における、マルチチャネル情報システムを使用したセッションとコネクションとの間の潜在的な多対多の関係を示すブロック図である。
本明細書で説明されるマルチコネクションの情報システムは、SMBアプリケーションレイヤープロトコルなどのOSI(Open Systems Interconnection)モデルにおけるトランスポートレイヤーより上位のプロトコルから制御可能な方法で、単一のファイルシステムセッションにおいてリソースへ接続するために複数コネクションを用いる。また、このシステムにより、単一コネクションは、複数のセッションによって共有することが可能となる。チャネルの概念は、特定のコネクションに対する特定のセッションをバインディングすることを表すために導入される。セッションは、複数のトランスポートを経由した通信を可能とするために複数のコネクションにバインディングすることができる。セッションの初期ネゴシエーションの間、クライアントおよびサーバーは、セッション内でクライアントとサーバーとの間の複数のコネクションがサポートされるか否かを決定することができる。初期コネクションが確立した後で、追加コネクションが確立されそして既存のセッションにバインディングされる。複数のコネクションは、フェイルオーバーおよび/または負荷分散のために使用することができる。マルチコネクションの情報システムは、セッション内における複数チャネルを確立する機能を検知するためのプロトコルを提供する。プロトコルは、二つの特定のリソース間の利用可能なコネクションに関する情報およびコネクションのサーバー側とクライアント側がセッション内における複数チャネルをサポートするかの情報を提供する。
クライアントとサーバー(例えば、SMBクライアントとサーバー)との間の初期セッションが確立する間、クライアントおよびサーバーの双方がセッション内で複数のコネクションをサポートすることを示すためにネゴシエーションが発生する。これは、複数のコネクションのためのサポートを提供するプロトコルバージョンをネゴシエーションすることを含む。クライアントは、FSCTL(File System Control Message)、または他のAPI(Application Programming Interface)を呼び出して、サーバートランスポートインターフェースのリストを得ることができる。代替的な実施形態において、クライアントは、サーバーネットワークインターフェイスおよび性能についてのより多くの情報を得るためにDNSサービスの問合せを行うことができる。また、クライアントは、各々のサーバーIPアドレスに関連したローカルインターフェースを見つけ、形式と速度を含む、ローカルインターフェースについての追加の情報を集めることができる。次いで、クライアントは、初期コネクションを確立するためのインターフェースを選択することができる。ある実施形態において、クライアントは最初に初期コネクションを確立し、他の利用可能なトランスポートについて、サーバーと情報のネゴシエーションするために上記コネクションを使用する。追加のチャネルの確立のため、クライアントは、複数のインターフェースを形式および速度によりソートして最上位のインターフェースを決定し、最上位のインターフェースを使用する追加チャネルを確立する。クライアントが複数のチャネルを確立した後に、最上位のインターフェースではない一部のチャネルを任意に廃棄することができ(または単純に使用しない)、形式と速度に基づいて上位にランクされたチャネルを使用することを選択する。このように、マルチコネクションの情報システムは、トランスポートレイヤーより上位のレイヤーにおいて、単一セッションへの複数のコネクションをインテリジェントに選択して使用する方法を提供する。
図1は一実施形態における、マルチコネクションの情報システムのコンポーネントを説明するブロック図である。システム100は、セッション開始コンポーネント110、チャネル発見コンポーネント120、チャネル選択コンポーネント130、バインディングコンポーネント140、コマンド受信コンポーネント150、コマンドルーティングコンポーネント160、およびフェイルオーバー処理コンポーネント170を含む。これらのコンポーネントの各々については、本明細書においてさらに詳細に説明する。
セッション開始コンポーネント110は、一つまたは複数のリソースを共有するために、クライアントとサーバーとの間のセッションを開始するための要求を受信する。例えば、コンポーネント110は、アプリケーションがファイルまたは他のリソースにアクセスするために接続したいサーバーを特定するクライアントで稼動する当該アプリケーションからの要求を受信することができる。クライアントで稼動するアプリケーションから要求を受信することができるが、クライアントは、アプリケーションがファイルまたは他のリソースにアクセスするために接続したいサーバーを特定する。セッション開始コンポーネント110は、クライアントとサーバーとの間で通信を開始する「ネゴシエート」メッセージなどのSMB初期要求を受信することができる。セッション開始コンポーネント110は、アプリケーション要求に応答してセッションを作成する。そして、セッション開始コンポーネント110は、ユーザの認証情報のようなセキュリティ情報を提供し、その結果サーバーは制限されたリソースに対するネットワークアクセス何れにも遵守することができる。
チャネル発見コンポーネント120は、クライアントとサーバーとの間の通信に利用可能な一つまたは複数のコネクショントランスポートを決定する。クライアントおよびサーバーは、イーサネット(ethernet)およびWi-Fi、並びに二つのイーサネットNICs(Network Interface Cards)のような同じトランスポートの冗長構成のコネクションなどの様々なトランスポートによって接続することができる。さらに、一部のコネクショントランスポートは、別のコネクショントランスポートを経由した一コネクショントランスポートの速度に影響を及ぼす、RDMA(Remote Direct Memory Access)などの機能をサポートすることができる。チャネル発見コンポーネント120は、この形式の情報を集め、クライアントが適切なトランスポートを選択する際に使用するための情報を収集する。コンポーネント120は、サーバートランスポートインターフェースを特定するためにサーバーへの初期コネクションを使用してコネクションのための複数のチャネルのネゴシエートをすることができる。また、コンポーネント120は、サーバーに対する利用可能なコネクション形式についての情報を求めるDNSサーバーへの問合せなどの、クライアントとサーバーの外部の情報を集めることができる。
チャネル選択コンポーネント130は、決定された利用可能なコネクショントランスポートの中から一つまたは複数のコネクショントランスポートを選択し、クライアントとサーバーとの間のセッションをバインディングする。ある場合において、クライアントは、サーバーへの最初のコネクションを確立し、次いで、ある条件が存在するのを発見すると、クライアントは、最初のコネクションを経由して発見された情報を使用して、その後、サーバーへの追加のコネクションを確立するであろう。例えば、条件は、クライアントが大容量のデータをサーバーに対して送信していること、および、初期コネクションにより長時間かかるであろうことを探知することを含むことができる。また、条件は、冗長構成のコネクションがフェイルオーバーに有益となり得るよう、クライアントがクライアントとサーバーとの間のセッションへの信頼性についての高い期待を有することを決定することを含み得る。チャネル選択コンポーネント130は、アプリケーション、または、システム100の特定の実行によって修正されもしくは構成され得、特定の実行に対して重要な目的および優先順位に基づいてコネクションを選択する。例えば、ある実行は、最も速いトランスポートコネクションを最初に経由するコネクションを確立することを優先し、一方で、他の実行は、ネットワークトラフィックのある形式のために高速のコネクションを確保して、他の形式のトラフィックのために低速のまたは低い優先順位のコネクションを使用することができる。
バインディングコンポーネント140は、選択されたコネクショントランスポートをセッションと関連付ける。セッションは、クライアントとサーバーとの間の特定の一連の通信と関連付けられた、セキュリティプリンシパル(security principal)についての情報を取得する。また、セッションは、特定の一連の通信に利用可能な機能またはコマンドを定義する、その他メタデータを包含することができる。選択されたコネクショントランスポートをセッションにバインディングすることは、上記セッションのために、コネクショントランスポートを利用可能にし、そして何れのセキュリティ証明書またはその他サーバーとのやりとりをネゴシエートすることができ、セッションの使用のためコネクションを準備する。単一のセッションが複数のコネクションにバインディングすることができるように、複数のセッションもまた特定のコネクションにバインディングすることができることに注意されたい。コネクションは、通信がクライアントとサーバーとの間で伝達するコンジット(conduit)を提供し、その一方で、セッションは、アプリケーションレイヤーが達成しようとすること、または、実行を許可されていることのコンテキストにおけるセマンティックな意味を各通信に与える。
コマンド受信コンポーネント150は、クライアントとサーバーとの間のセッションに関連した一つまたは複数のコマンドを受信する。クライアントとサーバーとの間で通信が可能であることの目的は、クライアントがリソースにアクセスするコマンドを送信することである。例えば、クライアントは、ファイルを開くためにファイルに対して「開く」要求またはクライアントがファイルを修正する間に他者からのアクセスを防ぐために「ロックする」要求を送信することができる。コマンド受信コンポーネント150は、これらコマンドを受信する。そしてコマンドルーティングコンポーネント160を呼び出し、どの経路でコマンドを送信するかの一つまたは複数のトランスポートを決定する。ある実施形態において、システム100は、対応する要求が送信された経由と同じトランスポートコネクションを経由して、応答が送信されるであろうことを保証する。このように、特定のトランスポートコネクションに対する特定のコマンドをルーティングすることによって、クライアントはまた、どのように要求に関連したデータがクライアントに対して返されるであろうかを選択することができる。大容量データおよびコネクション速度が変化するため、適切に選択することは、動作全体の存続期間に劇的に影響し得る。
コマンドルーティングコンポーネント160は、特定のコマンドを送信するセッションにバインディングされたコネクショントランスポートを選択する。コマンドルーティングコンポーネント160は、大容量のファイルを取り出すため、または大容量のファイルを送信するためなど、コマンドを分割しそしてコマンドを実行するために複数のトランスポートを使用する。また、コンポーネント160は、幾つかのコマンドには高速コネクショントランスポートを選択することができる一方で、低い優先順位のコマンドには、低速または頻繁に利用されないコネクショントランスポートを選択することができる。また、コマンドルーティングコンポーネント160は、既存のバインディングされたコネクション経由では低速すぎるであろう、大容量のファイルを送信するための要求の受信の際のように、追加の利用可能なトランスポートコネクションはセッションにバインディングされるべきであることを決定することができる。さらに、コマンドルーティングコンポーネント160は、差し迫ったコネクションの維持管理または停電を検知することができ、そしておよび信頼性を保証するために追加コネクションを作成する。
フェイルオーバー処理コンポーネント170は、セッション中の特定のトランスポートコネクションの切断を処理する。例えば、ネットワークケーブルが切断され、NICが動作しなくなり、または他の条件により以前は切断されていたコネクションが動作する可能性がある。フェイルオーバー処理コンポーネント170は、他のコネクションは利用可能か否か決定する。そして、追加のチャネルを選択するチャネル発見コンポーネント120および切断されていないコネクションに対してコマンドをルートするコマンドルーティングコンポーネント160のような、他のコンポーネントを呼び出すことができる。また、フェイルオーバー処理コンポーネント170は、切断されたコネクショントランスポートにキュー(queue)されたコマンド、および別のトランスポートコネクションを経由するサーバーの応答待ちコマンドの何れへの応答を処理することができる。その結果、故障にかかわらず確実にコマンドは実行される。このように、システム100はより高い信頼性を供給する。
マルチコネクションの情報システムが実行されるコンピューティング装置は、CPU(Central Processing Unit)、メモリ、入力装置(例として、キーボードおよびポインティング装置)、出力装置(例として、ディスプレイ装置)、およびストレージ装置(例、ディスクドライブまたはその他不揮発性ストレージ媒体)を含むことができる。メモリおよびストレージ装置は、システムを実行または作動させるコンピューターが実行可能な命令(例として、ソフトウェア)としてエンコード可能な、コンピューターが読み取り可能なストレージ媒体である。さらに、データ構造およびメッセージ構造は、通信リンクの信号のようにデータ送信媒体を経由して格納されまたは送信され得る。通信リンクは、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、ポイントトゥーポイントダイアルアップコネクション、携帯電話ネットワーク等のように様々な通信リンクを使用することができる。
システムの実施形態は、様々な動作環境において実施することができ、その動作環境は、パーソナルコンピューター、サーバーコンピューター、ハンドヘルドもしくはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサーベースのシステム、プログラム可能な家電、デジタルカメラ、ネットワークPC、マイクロコンピューター、メインフレームコンピューター、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境、セットトップボックス、SOC(System On Chips)等を含む。コンピューターシステムは、携帯電話、PDA,スマートフォン、パーソナルコンピューター、プログラム可能な家電、デジタルカメラなどを含むことができる。
システムは、一つもしくは複数のコンピューター、または、他の装置によって実行されるプログラムモジュールなどのコンピューターが実行可能な命令の一般的なコンテキストで説明することができる。一般的に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、特定のタスクを実行するもの、または、特定の抽象的なデータ形式を実行するものなどを含む。典型的に、プログラムモジュールの機能は、様々な実施形態において所望の態様で集約または分散することができる。
図2は、一実施形態における、マルチコネクションの情報システムがセッションを開始しそしてトランスポート情報を受信する処理を図示したフローチャートである。まずブロック210において、システムはアプリケーションからクライアントとサーバーとの間のセッションを開始するための要求を受信する。アプリケーションは、オペレーティングシステムコンポーネントまたは他のサービスレベルアプリケーション、並びに典型的なクライアントアプリケーションを含む。アプリケーションの多くの形式およびサービスは、ファイル、プリンタ、または他のリソースを共有するためにサーバーに接続する。要求を受信すると、システムはセッションの設定を始め、一つまたは複数のパケットをサーバーに送信して利用可能なネットワークプロトコルのダイアレクト(dialect)をネゴシエートすることができる。利用可能なネットワークプロトコルのダイアレクトは、クライアントとサーバーとの間の通信、および、互換性を保証するためにクライアントとサーバーの他の機能を検出するために使用される。この処理の間、サーバーは、複数のコネクションのセッションをサポートすることを示すことができ、そのため、クライアントは、スループットを増加し、フェイルオーバーを改善する等のために、本明細書で説明にされた技法を利用することができる。
続いてブロック220において、システムは、クライアントとサーバーとの間のコマンド送信のための初期トランスポートを選択する。システムは、最初のNIC上のイーサネットコネクションのように、最初のコネクションのためのトランスポートの所定形式を実行しないとするか、またはアプリケーションが指定する基準に基づいて選択することができる。基準は、最も高速なコネクション、最も高い帯域を伴うコネクション、最も堅牢なコネクションを選択すること、またはアプリケーションに対してその他何れの有用な基準を示すことができる。続いてブロック225において、クライアントはサーバーに対して初期コネクションを確立する。クライアントとサーバーは、利用可能なトランスポートに関する情報を共有するので、クライアントは、何れの特定のセッションのための適切なコネクションを選ぶことができる。
続いてブロック230において、システムは、クライアントとサーバーとの間の二番目のコネクションを確立するための、一つまたは複数の利用可能なトランスポートを決定する。システムは、利用可能なトランスポートを決定する内部および外部の両方の方法を有する。外部の方法は、独立したDNSサーバーへの問合せ、データーセンターメタデータ、または他の情報のように、クライアント/サーバーコネクションの外側での方法である。内部の方法は、機能要求の送信または利用可能な装置およびトランスポートを特定するための問合せのように、クライアントとサーバーとの間のコネクションの内部での方法である。クライアントは、クライアントオペレーティングシステムへの問合せによってまたは初期コネクションを経由したサーバーへの問合せによって、ローカルトランスポートを特定することができる。マルチチャネルの情報システムは、利用可能なトランスポートのリストおよび如何なる条件下で各々のトランスポートを使用するべきかを決定する際に助けとなる、トランスポートについて発見された何れのメタデータの編纂をする。
次にブロック240において、システムは、選択されたトランスポートを介して二番目のコネクションを確立する。例えば、プロトコルがSMBの場合、次いで、クライアントはSMBコネクションを設定する、選択されたトランスポートを経由してネゴシエートメッセージを送信することができる。個々のコネクションは、今日それらがシステムで動作するように、バインディングするステップを伴い単一のコネクションを単一のセッションへ集約するように表される。コネクションを確立することは、クライアントとサーバーとの間で行き来する幾つかのパケットを含み、何れのコネクション設定を実行することおよびコネクションに使用するのに必要な何れのメタデータを集めることを含むことができる。
次にブロック250において、システムは、確立された二番目のコネクションを初期コネクションのセッションにバインディングする。バインディングすることは、システムに対して、セッションはコネクションに組み込まれていることおよびシステムはコマンドを送信するためにコネクションを使用できることを通知する。システムは、どのコネクションがどのセッションにバインディングされたか追跡することができ、セッションが閉じたまたはコネクションが切断すると、システムは適切にクリーンアップすることができる。コネクションを使用する全てのセッションが終了した後で、システムはコネクションを閉じることができる。同様に、セッションに統合された全てのコネクションが切断した後で、システムはセッションをクリーンアップすることができる。
次にブロック260において、システムはアプリケーションから受信されたコマンドを、セッションにバインディングされたいずれかの確立されたコネクションを介して送信する。システムは、現在のコマンドに適したコネクションを選ぶために、複数のこのようなコネクションの間から選択をすることができる。システムは、帯域、レイテンシ、現在のキューの深さ(queue depth)、バッテリー電源(例として、モバイル装置のための)、優先順位、またはコマンド処理のためコネクションを選択するための他任意の要因を考慮することができる。また、システムは、コマンドを分割し、複数のコネクションを同時に使用して処理速度を向上することができる。次にブロック270において、システムは、コマンドを送信するのに使用した同じトランスポートを介して、送信したコマンドへの応答を受信する。受信した応答は、コマンドが適切に送信されたか否かを示すことができ、要求されたデータ、または特定の要求のために定義されたその他何れの応答を含むことができる。
次に、判断ブロック280において、まだほかにコマンドがあるかまたはセッションが閉じられていない場合、次いでシステムはブロック260にループしてまだほかにあるコマンドを送信するか、そうでなければシステムを完了する。システムはこのように、利用可能なコネクションを経由して、セッションに関連付けられたコマンドを送信しながら継続する。何れかの段階で、システムが、コマンドを実行するために追加のコネクションが有益であろうと決定した場合、次いでシステムは、コマンドが使用するセッションに対する追加のコネクションを確立およびバインディングすることができる。ブロック280の後、これらステップは完結する。
図3は、一実施形態における、マルチコネクションの情報システムが、以前に確立されたセッションに追加のコネクションを加える処理を図示したフローチャートである。図3のステップは、図2のステップの後に、特定の条件が検知されたか、または単一のコネクションから複数のコネクションへセッションを拡張するための閾値が届いた後に発生することができる。例えば、システムは複数のコネクションを経由してより高速に完了するであろう大容量のファイル転送を検知することができる。
まず、ブロック310において、システムは以前に確立されたセッションのための追加のコネクションを確立するための条件を検知する。そして、確立されたセッションは、クライアントとサーバーとの間での少なくとも一つのバインディングされたコネクションをすでに有する。条件は、既存のコネクションの帯域を上回ること、既存のコネクション上でレイテンシが高すぎること、大容量データを要求または送信する次に控えたコマンドのために追加の帯域を必要とすること等を含むことができる。条件を検知すると、システムはセッションに追加のコネクションを付加するために、以下のステップを実行する。
次にブロック320において、システムは以前に発見されたトランスポートのリストから追加のトランスポートを選択する。システムは、サーバーに要求する機能を通じ、DNS情報を問合わせることにより、または、クライアントとサーバーとを接続するための方法を発見する他の任意の機構により、トランスポートを発見することができる。システムは、利用可能なトランスポートをソートし、および/または発見する間に受信した特性に基づいてトランスポートを選択することができる。例えば、システムは高帯域でのコネクション、高可用でのコネクション、現在はアイドル状態のコネクション等を選ぶことができる。
次に、ブロック330において、システムは選択されたトランスポートを介してコネクションを確立する。コネクションを確立することは、セッションプロトコルネゴシエーション並びにTCP/IPを介して等、SMBネゴシエートシーケンス等、トランスポートレイヤーコネクションを確立することを含むことができる。システムはまた、確立されたコネクションを経由してメタデータを交換することができ、コネクション形式を確認し、およびコネクションを使用するための何れかの設定情報を受信する(例えば、コネクションが選択的再送(SACK:selective acknowledgement)のようなある特定の機能をサポートするか否か、等)。
次にブロック340において、システムは新しく確立されたコネクションを既存のセッションにバインディングし、その結果セッションはコマンドを送信するときに選択可能な複数の利用可能なコネクションを有する。バインディングすることは、すでに別のセッションに関連付けられたコネクションを、現在のセッションに関連付けることができ、そのため双方のセッションはコネクションを利用することができる。バインディングすることはまた、セッションが閉じた場合に、セッション管理ロジックが適切なクリーンアップステップを実行してコネクションを結合解除および/または閉じることができるよう、セッションに対してコネクションについて通知する。
次にブロック350において、システムは現状複数のコネクションがあるサーバーに方向付けられたアプリケーションレベルのコマンドを受信する。アプリケーションはファイルを開くことを要求することができ、共有プリンタに対してプリントすることを要求することができ、または共通共用の、リモートのリソースの使用を実行することができる。オペレーティングシステムまたは他のサービスコードは、アプリケーションがサーバーに対してコマンドを送信するためのシステムを呼び出し得ることを通じて、一つまたは複数のAPIs(Application Programming Interfaces)を提供することができる。
次にブロック360において、システムは、新しく確立されたコネクションの中から一つまたは複数のトランスポートおよび一つまたは複数の受信されたコマンドが送信された以前のコネクションを選択する。システムは、大容量のデータのための要求のような、一つまたは複数の閾値基準を満たさなければコマンドをデフォルト設定のコネクションにルートすることができる。より大きな要求を受信すると、システムはより高い帯域コネクションまたはコマンドを分割し、複数のコネクションを使用し、コマンドによって指定される動作をより速く完了する。別例として、システムはコネクションが切断された時に検知することができ、およびアプリケーションに対して透過的な円滑なフェイルオーバーの方法として、代替のコネクションを使用することができる。ブロック360の後で、これらのステップは完結する。
ある実施形態において、マルチコネクションの情報システムは、クライアントアプリケーションまたはサービスがリモートサーバーの利用可能なネットワークインターフェースについての情報を要求することができるオペレーティングシステム内のファイルシステムAPIを提供する。例えば、MICROSOFT(登録商標) WINDOWS(登録商標)は、一つまたは複数のファイルシステムと対話するためにファイルシステムコントロールメッセージ(FSCTLs)を使用する。リモートサーバーの動作中のネットワークインターフェースを要求するためのコマンドであるFSCTL_LMR_QUERY_TRANSPORT_INFOを付加することができる。サーバーがこのコマンドに応答して提供することができる一つの構成は、下記においてさらに詳細に説明される次の要素を含む。すなわち、Next(4bytes)、Iflndex(4bytes)、Capability(4bytes)、RssQueueCount(4bytes)、LinkSpeed(8bytes)、SockAddr_Storage(128bytes)。
Next要素は、現在の構造の始めから後続の8バイト整列ネットワークインターフェースの始めまでのオフセットを提供する。Next要素は、それ以上ネットワークインターフェースが続かない時、ヌルターミネータ(null terminator)としてゼロにセットされる。Iflndex要素は、現在のネットワークインターフェースのために数に関するインデックスを提供する。Capability要素は、インターフェースがRDMAまたはRSS(Recieve Scaling Support)要件を満たすか否かのような、現在のネットワークインターフェースの機能を示すフラグを包含する。RssQueueCount要素は、RSS要件を満たすインターフェースのためにRSSキューカウントを示す。ある場合において、システムは特定のNICを使用してどれくらい多くのコネクションを作成するかのヒントとしてRSSキューの深さ(queue depth)を使用する。LinkSpeed要素は、ビット/秒のインターフェースの速度を示す。SockAddr_Storage要素は、インターフェースを使用してコネクションを確立するために
ネットワークインターフェースアドレスを示す。このフィールドは、よく知られたソケット構造であるSOCKADDR_STORAGEを使用することができる。
図4は一実施形態にかかる、マルチコネクションの情報システムを使用して複数コネクションの設定を図示する、ネットワークパケットの状態遷移図である。この例で、クライアント405は、次に続くパケット(または複数パケットメッセージ)を送信することによって、サーバー495との複数のコネクションを確立する。クライアント405は、最初のネゴシエート要求410をサーバー495へ送信する。サーバー495は、ネゴシエート応答420をクライアント405へ応答する。クライアント405は次いで、最初のセッション設定要求430をサーバー495へ送信する。サーバー495は、セッション設定応答440をクライアント405へ応答する。セッション設定は、クライアントとサーバーとの間の複数の往復を作成することができる。この時点で、セッションのための最初のチャネルが確立され、そしてクライアントはセッションを使用してサーバーに対してコマンド送信を開始することができる。その後(ただちにまたはしばらくした後)、クライアント405は、サーバー495に対する二番目のコネクションを同じセッションで確立することを決定する。クライアント405は、二番目のネゴシエート要求450を新しいトランスポートを経由してサーバー495に送信する。サーバー495は、ネゴシエート応答460をクライアント405へ応答する。クライアント405は次いで、二番目のセッション設定要求470をサーバー495へ送信する。最初のセッション設定要求430とは異なり、この要求470は以前のセッションに新しいコネクションを付加することを示すバインディングフラグを含むことができる。サーバー495は、セッション設定応答480をクライアント405へ応答する。このセッション設定はまた、クライアントとサーバーとの間の複数の往復を作成することができる。この時点で、双方のコネクションはコマンドをサーバーに送信するクライアントに対して利用可能となる。
図5は一実施形態にかかる、マルチチャネル情報システムを使用してセッションおよびコネクションの間の潜在的な多対多の関係を示すブロック図である。ブロック図は、最初のセッション510および二番目のセッション520を含む。ブロック図はまた、最初のコネクション530および二番目のコネクション540を含む。伝統的には、各セッションは、最初のセッション510が最初のコネクション530を使用する唯一のセッションであり、二番目のセッション520が二番目のコネクション540を使用する唯一のセッションであったように、コネクションと一対一の関係を有した。本明細書で説明される技術を使用して、チャネルの概念が導入され、これにより各々のセッションは複数のコネクションを使用することができ、かつ他のセッションとコネクションを共有することさえできる。このように、示された通り、最初のセッション510は最初のチャネル550を通じて最初のコネクション530にバインディングされる。最初のセッション510はまた、二番目のチャネル560を通じて二番目のコネクション540にバインディングされる。同様に、二番目のセッション520は、三番目のチャネル570を通じて最初のコネクション530にバインディングされ、および二番目のセッション520は、四番目のチャネル580を通じて二番目のコネクション540にバインディングされる。このように、いずれかのセッションは、アプリケーションまたは実行指定の環境設定によって規定される通りにいずれかのコネクションを使用することができる。
ある実施形態において、マルチコネクションの情報システムはアプリケーションに利用可能なコネクションを通知しない。本明細書で記載したように、システムはアプリケーションとトランスポートレイヤーとの間のレイヤー(例、TCP)において実行されることができる。 例えば、MICROSOFT(登録商標) WINDOWS(登録商標)はアプリケーションが使用できるSMB実行を提供する。システムは本明細書で説明された技術を実行することができ、利用可能な時に複数のトランスポートを自動的に使用し、およびアプリケーションにより高い信頼性とスループットをアプリケーションによる入力なしに自動的に提供する。システムは、アプリケーションが機能を有効にするか否か構成することを可能とし得る。機能がオンの場合、システムはコネクションを確立して経由するトランスポートおよびアプリケーションからの様々なコマンドに使用するトランスポートを自動的に選ぶことができる。他の実施形態において、システムはアプリケーションに対してより多くのコントロールを提供することができ、その結果、アプリケーションが各々のコネクションを選択するための基準を確立することができ、または選択自体をすることができる。
前述より、マルチコネクションの情報システムの特定の実施形態は、図示の目的のために本明細書に記載されたものであるが、本発明の技術思想および技術的範囲から逸脱することなく様々な修正がなされることは理解されるであろう。従って、本発明は添付された特許請求の範囲によって以外は限定されない。

Claims (15)

  1. ファイルシステムにおいて複数のコネクションを可能とし、かつトランスポート情報を受信するセッションを開始するための、コンピューターにより実行される方法であって、
    アプリケーションからクライアントとサーバーとの間のセッションを開始する要求を受信するステップと、
    前記クライアントと前記サーバーとの間のコネクションを確立するための一つまたは複数の利用可能なトランスポートを決定するステップと、
    前記クライアントと前記サーバーとの間のコマンドを送信するための初期トランスポートを選択するステップと、
    前記選択されたトランスポートを介してコネクションを確立するステップと、
    前記確立されたコネクションを前記開始されたセッションにバインディングするステップと、
    前記アプリケーションから受信したコマンドを前記セッションにバインディングされた前記確立されたコネクションを通じて送信するステップとを備え、
    先行の前記ステップは、少なくとも一つのプロセッサによって実行されることを特徴とする方法。
  2. 前記要求を受信するステップは、サーバーメッセージブロック(SMB)プロトコルを使用するサーバー上にリモートに格納されたファイルにアクセスするアプリケーションからの要求を受信するステップを備えることを特徴とする請求項1に記載の方法。
  3. 前記要求を受信するステップは、セッションを設定するステップと、一つまたは複数のパケットを前記サーバーに送信して、前記クライアントと前記サーバーとの間で通信するために使用される前記ネットワークプロトコルの利用可能なダイアレクトとネゴシエートするステップとを備えることを特徴とする請求項1に記載の方法。
  4. 前記要求を受信するステップは、前記サーバーが複数コネクションのセッションをサポートするかを決定するために前記サーバーへ問合せをするステップを備えることを特徴とする請求項1に記載の方法。
  5. 利用可能なトランスポートを決定するステップは、前記サーバーの一つまたは複数のアドレスを特定するためにドメインネームシステム(DNS)サーバーへ問合せをするステップを備えることを特徴とする請求項1に記載の方法。
  6. 利用可能なトランスポートを決定するステップは、利用可能なネットワークインターフェースを特定するためにクライアントのオペレーティングシステムへ問合せをするステップを備えることを特徴とする請求項1に記載の方法。
  7. 利用可能なトランスポートを決定するステップは、前記サーバー上の利用可能なネットワークインターフェースを特定するために前記サーバーに対して機能要求を送信することを問合せするステップを備えることを特徴とする請求項1に記載の方法。
  8. 前記初期トランスポートを選択するステップは、前記アプリケーションのコネクション環境設定を確立するアプリケーション指定の基準に基づいて選択するステップを備えることを特徴とする請求項1に記載の方法。
  9. 前記コネクションを確立するステップは、サーバーメッセージブロック(SMB)コネクションを設定する前記選択されたトランスポートを経由してネゴシエートメッセージを送信するステップを備えることを特徴とする請求項1に記載の方法。
  10. 前記確立されたコネクションをバインディングするステップは、前記クライアントからのコマンドを前記サーバーに送信するための前記セッションによる使用のための前記コネクションを準備するステップを備えることを特徴とする請求項1に記載の方法。
  11. 前記確立されたコネクションをバインディングするステップは、前記セッションおよび/またはコネクションをクリーンアップするための情報を蓄積するステップを備えることを特徴とする請求項1に記載の方法。
  12. 前記コマンドを送信するステップは、現在のコマンドを処理するのに適した一つまたは複数のコネクションを選ぶために複数のバインディングされたコネクションの間から選択するステップを備えることを特徴とする請求項1に記載の方法。
  13. ファイルシステムセッションにおいてマルチチャネルコネクションを提供するためのコンピューターシステムであって、
    以下のコンポーネント内で具現化されるソフトウェア命令を実行するように構成されたプロセッサおよびメモリと、
    一つまたは複数のリソースを共有するためにクライアントとサーバーとの間のセッションを開始する要求を受信するセッション開始コンポーネントと、
    前記クライアントとサーバーとの間の通信のために利用可能な一つまたは複数のコネクショントランスポートを決定するチャネル発見コンポーネントと、
    前記クライアントとサーバーとの間の前記セッションに対して結合するために、前記決定された利用可能なコネクショントランスポートから、一つまたは複数のコネクショントランスポートを選択するチャネル選択コンポーネントと、
    前記選択されたコネクショントランスポートを前記セッションと関連付けるバインディングコンポーネントと、
    前記クライアントと前記サーバーとの間のセッションに関連した一つまたは複数のコマンドを受信するコマンド受信コンポーネントと、
    特定のコマンドを送信するセッションにバインディングされたコネクショントランスポートを選択するコマンドルーティングコンポーネントとを備えることを特徴とするシステム。
  14. 前記セッション開始コンポーネントはさらに、アプリケーションがファイルまたは他のリソースにアクセスするために接続したいサーバーを特定するクライアントで稼動する前記アプリケーションからの要求を受信するように構成されたことを特徴とする請求項13に記載のシステム。
  15. 前記チャネル発見コンポーネントはさらに、各々のコネクショントランスポートがリモートダイレクトメモリアクセス(RDMA)および/またはレシーブスケーリングサポート(RSS)をサポートするか否かを決定するように構成されたことを特徴とする請求項13に記載のシステム。
JP2013543291A 2010-12-06 2011-12-06 ファイルシステムセッションにおけるマルチコネクションのための方法及びシステム Active JP5882353B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/960,577 2010-12-06
US12/960,577 US8806030B2 (en) 2010-12-06 2010-12-06 Multichannel connections in file system sessions
PCT/US2011/063613 WO2012078689A2 (en) 2010-12-06 2011-12-06 Multichannel connections in file system sessions

Publications (3)

Publication Number Publication Date
JP2014501978A true JP2014501978A (ja) 2014-01-23
JP2014501978A5 JP2014501978A5 (ja) 2015-01-15
JP5882353B2 JP5882353B2 (ja) 2016-03-09

Family

ID=46163297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013543291A Active JP5882353B2 (ja) 2010-12-06 2011-12-06 ファイルシステムセッションにおけるマルチコネクションのための方法及びシステム

Country Status (11)

Country Link
US (1) US8806030B2 (ja)
EP (1) EP2649531B1 (ja)
JP (1) JP5882353B2 (ja)
KR (1) KR101811087B1 (ja)
CN (1) CN102571756B (ja)
AU (1) AU2011338481B2 (ja)
BR (1) BR112013013794A8 (ja)
CA (1) CA2817051A1 (ja)
MX (1) MX2013006422A (ja)
RU (1) RU2595752C2 (ja)
WO (1) WO2012078689A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076127A (ja) * 2014-10-07 2016-05-12 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9787501B2 (en) 2009-12-23 2017-10-10 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
US9258216B2 (en) * 2009-12-23 2016-02-09 Pismo Labs Technology Limited Methods and systems for transmitting packets through network interfaces
US10218467B2 (en) 2009-12-23 2019-02-26 Pismo Labs Technology Limited Methods and systems for managing error correction mode
US9160693B2 (en) 2010-09-27 2015-10-13 Blackberry Limited Method, apparatus and system for accessing applications and content across a plurality of computers
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US9621402B2 (en) * 2011-09-12 2017-04-11 Microsoft Technology Licensing, Llc Load balanced and prioritized data connections
US9015809B2 (en) * 2012-02-20 2015-04-21 Blackberry Limited Establishing connectivity between an enterprise security perimeter of a device and an enterprise
US10432587B2 (en) * 2012-02-21 2019-10-01 Aventail Llc VPN deep packet inspection
US9231949B1 (en) * 2012-08-10 2016-01-05 Amazon Technologies, Inc. Content delivery to user devices using server-initiated connections
US9747386B1 (en) 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
CN102857504B (zh) * 2012-09-06 2016-01-06 深信服网络科技(深圳)有限公司 网络优化方法及装置
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
US10404520B2 (en) 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
US20140379778A1 (en) * 2013-06-20 2014-12-25 Microsoft Corporation Asynchronous transport setup and selection for interactive applications
CN104301287B (zh) * 2013-07-16 2020-03-31 中兴通讯股份有限公司 一种多对多会话的实现方法、网络节点、服务器及系统
JP6180225B2 (ja) * 2013-08-08 2017-08-16 キヤノン株式会社 携帯型デバイス及び通信制御方法
US9578109B2 (en) * 2014-05-30 2017-02-21 Apple Inc. Long-lived MPTCP sessions
US9838858B2 (en) 2014-07-08 2017-12-05 Rapidsos, Inc. System and method for call management
WO2016044540A1 (en) 2014-09-19 2016-03-24 Rapidsos, Inc. Method and system for emergency call management
US9888064B2 (en) 2015-02-11 2018-02-06 International Business Machines Corporation Load-balancing input/output requests in clustered storage systems
US10129892B2 (en) * 2015-06-01 2018-11-13 Qualcomm Incorporated Techniques to manage reverse channel audio sessions
US9659484B1 (en) 2015-11-02 2017-05-23 Rapidsos, Inc. Method and system for situational awareness for emergency response
JP2019505117A (ja) 2015-12-17 2019-02-21 ラピッドエスオーエス,インク. 効率的な緊急呼出のためのデバイス及び方法
WO2017112820A1 (en) * 2015-12-22 2017-06-29 Rapidsos, Inc. Systems and methods for robust and persistent emergency communications
US9986404B2 (en) 2016-02-26 2018-05-29 Rapidsos, Inc. Systems and methods for emergency communications amongst groups of devices based on shared data
WO2017189610A2 (en) 2016-04-26 2017-11-02 Rapidsos, Inc. Systems and methods for emergency communications
CA3023982A1 (en) 2016-05-09 2017-11-16 Rapidsos, Inc. Systems and methods for emergency communications
US10861320B2 (en) 2016-08-22 2020-12-08 Rapidsos, Inc. Predictive analytics for emergency detection and response management
CN106790420B (zh) * 2016-11-30 2019-11-26 华为技术有限公司 一种多会话通道建立方法和系统
US10334055B2 (en) 2017-02-01 2019-06-25 International Business Machines Corporation Communication layer with dynamic multi-session management
CN106953797B (zh) * 2017-04-05 2020-05-26 苏州浪潮智能科技有限公司 一种基于动态连接的rdma数据传输的方法与装置
EP3616175A4 (en) 2017-04-24 2021-01-06 Rapidsos, Inc. MODULAR EMERGENCY COMMUNICATION FLOW MANAGEMENT SYSTEM
CN107172048A (zh) * 2017-05-19 2017-09-15 郑州云海信息技术有限公司 一种基于smb协议的多通道实现方法及装置
CN107948158B (zh) * 2017-11-27 2023-06-27 广东路得斯环境科技有限公司 一种处理高频率多并发的数据连接方法
US10701542B2 (en) 2017-12-05 2020-06-30 Rapidsos, Inc. Social media content for emergency management
CN111512611B (zh) * 2017-12-22 2023-04-04 诺基亚技术有限公司 Mptcp感知的负载均衡器的设计方法和使用该设计的负载均衡器
US10911547B2 (en) * 2017-12-28 2021-02-02 Dell Products L.P. Systems and methods for SMB monitor dialect
US10820181B2 (en) 2018-02-09 2020-10-27 Rapidsos, Inc. Emergency location analysis system
US20190320310A1 (en) 2018-04-16 2019-10-17 Rapidsos, Inc. Emergency data management and access system
US10805786B2 (en) 2018-06-11 2020-10-13 Rapidsos, Inc. Systems and user interfaces for emergency data integration
US11917514B2 (en) 2018-08-14 2024-02-27 Rapidsos, Inc. Systems and methods for intelligently managing multimedia for emergency response
US11218584B2 (en) 2019-02-22 2022-01-04 Rapidsos, Inc. Systems and methods for automated emergency response
AU2020254292A1 (en) 2019-03-29 2021-11-04 Rapidsos, Inc. Systems and methods for emergency data integration
US11146680B2 (en) 2019-03-29 2021-10-12 Rapidsos, Inc. Systems and methods for emergency data integration
US11228891B2 (en) 2019-07-03 2022-01-18 Rapidsos, Inc. Systems and methods for emergency medical communications
CN112422602B (zh) * 2019-08-23 2022-02-22 阿里巴巴集团控股有限公司 分布式协调服务的处理方法及装置、系统
CN111901386B (zh) * 2020-06-30 2023-05-09 广东浪潮大数据研究有限公司 一种远端文件处理的方法、系统、设备及可读存储介质
CN114449025B (zh) * 2020-10-16 2024-03-08 上海汽车集团股份有限公司 一种通信方法及系统
CN112689011B (zh) * 2020-12-24 2023-05-26 北京浪潮数据技术有限公司 一种基于nfs协议的业务传输方法、装置、设备及介质
US11330664B1 (en) 2020-12-31 2022-05-10 Rapidsos, Inc. Apparatus and method for obtaining emergency data and providing a map view
CN114024998B (zh) * 2021-11-11 2023-05-23 瑞斯康达科技发展股份有限公司 一种基于netconf协议的支持多会话的方法和装置
CN115328408B (zh) * 2022-10-14 2023-01-03 联想凌拓科技有限公司 用于数据处理的方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006333433A (ja) * 2005-05-25 2006-12-07 Microsoft Corp データ通信プロトコル
JP2007527057A (ja) * 2003-12-31 2007-09-20 マイクロソフト コーポレーション ライトウエイト入力/出力プロトコル

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301280A (en) * 1989-10-02 1994-04-05 Data General Corporation Capability based communication protocol
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5682478A (en) 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
US6549934B1 (en) 1999-03-01 2003-04-15 Microsoft Corporation Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client
GB2358548B (en) * 1999-05-18 2003-09-10 Bob Tang Methods for fast establishment of modem-to-modem data link via PSTN bypassing present lengthy modem negotiations
US6470390B1 (en) * 1999-06-29 2002-10-22 Cisco Technology, Inc. Method and apparatus for a dual connection communication session
US6795851B1 (en) 2000-06-19 2004-09-21 Path Communications Inc. Web-based client/server communication channel with automated client-side channel endpoint feature detection and selection
US7174534B2 (en) 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
US7219149B2 (en) * 2003-06-12 2007-05-15 Dw Holdings, Inc. Versatile terminal adapter and network for transaction processing
JP3703457B2 (ja) * 2003-01-21 2005-10-05 キヤノン株式会社 アドレス通知方法、プログラム、及び、装置
US7613169B2 (en) * 2004-03-16 2009-11-03 Nokia Corporation Enhancement of packet transfer mode when circuit switched resources are requested
US8332526B2 (en) * 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US20060282545A1 (en) * 2005-06-11 2006-12-14 Arwe John E Method and apparatus for application or protocol version negotiation
US7526558B1 (en) * 2005-11-14 2009-04-28 Network Appliance, Inc. System and method for supporting a plurality of levels of acceleration in a single protocol session
US8489761B2 (en) * 2006-07-10 2013-07-16 Solarflare Communications, Inc. Onload network protocol stacks
US7991830B2 (en) 2007-02-28 2011-08-02 Red Hat, Inc. Multiple sessions between a server and multiple browser instances of a browser
US9081902B2 (en) * 2008-06-20 2015-07-14 Microsoft Technology Licensing, Llc. Generalized architecture to support representation of multi-transport devices
US9219733B2 (en) 2008-06-30 2015-12-22 Microsoft Technology Licensing, Llc Software-based aliasing for accessing multiple shared resources on a single remote host
US8706887B2 (en) * 2009-06-29 2014-04-22 Sap Ag Multi-channel sessions
US8838800B2 (en) * 2009-11-23 2014-09-16 Hewlett-Packard Development Company, L.P. Binding resources in a shared computing environment
EP2569916B1 (en) * 2010-05-09 2016-01-20 Citrix Systems Inc. Systems and methods for allocation of classes of service to network connections corresponding to virtual channels

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007527057A (ja) * 2003-12-31 2007-09-20 マイクロソフト コーポレーション ライトウエイト入力/出力プロトコル
JP2006333433A (ja) * 2005-05-25 2006-12-07 Microsoft Corp データ通信プロトコル

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076127A (ja) * 2014-10-07 2016-05-12 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム

Also Published As

Publication number Publication date
CN102571756A (zh) 2012-07-11
EP2649531B1 (en) 2018-08-01
KR20130126630A (ko) 2013-11-20
AU2011338481A1 (en) 2013-05-30
CA2817051A1 (en) 2012-06-14
JP5882353B2 (ja) 2016-03-09
WO2012078689A3 (en) 2012-09-07
EP2649531A4 (en) 2014-12-10
US20120144019A1 (en) 2012-06-07
EP2649531A2 (en) 2013-10-16
KR101811087B1 (ko) 2017-12-20
MX2013006422A (es) 2013-07-03
WO2012078689A2 (en) 2012-06-14
BR112013013794A2 (pt) 2016-09-13
CN102571756B (zh) 2016-03-23
US8806030B2 (en) 2014-08-12
BR112013013794A8 (pt) 2017-09-19
AU2011338481B2 (en) 2016-09-29
RU2013125953A (ru) 2014-12-10
RU2595752C2 (ru) 2016-08-27

Similar Documents

Publication Publication Date Title
JP5882353B2 (ja) ファイルシステムセッションにおけるマルチコネクションのための方法及びシステム
EP2656552B1 (en) Third party initiation of communications between remote parties
US6687758B2 (en) Port aggregation for network connections that are offloaded to network interface devices
WO2021203623A1 (zh) 一种物联网资源接入系统及资源接入方法
US7257817B2 (en) Virtual network with adaptive dispatcher
US9491265B2 (en) Network communication protocol processing optimization system
JP6145216B2 (ja) データ伝送方法、装置およびコンピュータ記憶媒体
JP2006190280A (ja) バスの抽象化
WO2017028399A1 (zh) 通信数据传输方法及系统
WO2012100671A1 (zh) 一种绑定物理网口的方法、网卡及通信系统
JP5387227B2 (ja) ネットワークマネージャ機器による設定変更方法及びプログラム、ネットワーク機器の制御方法及びプログラム、ネットワークマネージャ機器及びネットワーク機器
US9143580B2 (en) Brokering and provisioning in high-speed networks
CN116010130B (zh) Dpu虚拟口的跨卡链路聚合方法、装置、设备及介质
WO2022001639A1 (zh) 通信方法、移动设备及路由设备
US20080056263A1 (en) Efficient transport layer processing of incoming packets
US9391850B2 (en) Method and apparatus for quality-of-service (QoS) management
Fang et al. EDTS: An Extensible Data Transmission Service for the Internet

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141111

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151214

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: 20160105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160203

R150 Certificate of patent or registration of utility model

Ref document number: 5882353

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250