JP4794629B2 - ルート指定されたネットワークにおけるフォールトトレラント通信 - Google Patents

ルート指定されたネットワークにおけるフォールトトレラント通信 Download PDF

Info

Publication number
JP4794629B2
JP4794629B2 JP2008531252A JP2008531252A JP4794629B2 JP 4794629 B2 JP4794629 B2 JP 4794629B2 JP 2008531252 A JP2008531252 A JP 2008531252A JP 2008531252 A JP2008531252 A JP 2008531252A JP 4794629 B2 JP4794629 B2 JP 4794629B2
Authority
JP
Japan
Prior art keywords
driver
protocol
node
communication
path
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
JP2008531252A
Other languages
English (en)
Other versions
JP2009508443A5 (ja
JP2009508443A (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 JP2009508443A publication Critical patent/JP2009508443A/ja
Publication of JP2009508443A5 publication Critical patent/JP2009508443A5/ja
Application granted granted Critical
Publication of JP4794629B2 publication Critical patent/JP4794629B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • 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
    • 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]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本発明は、ルート指定されたネットワークにおけるフォールトトレラント通信に関する。
コンピュータネットワーキング環境では、複数のノードはネットワーク上で相互に通信することができる。
ネットワークに障害が起こると、ノード間の通信が中断されることがある。
以下は、基本的な理解を読み手に提供するために、本開示の簡単化した概要を提示する。本概要は、本開示を網羅的な概観ではなく、本発明の主要かつ重要な要素を特定するものや、本発明の範囲を線引きするものではない。その唯一の目的は、後に提示されるより詳細な説明の序論として、本明細書に開示されるいくつかの概念を簡略化した形式で提示することである。
以下の例は、ネットワーク化されたノード上で動作するアプリケーションソフトウェアによる、最小限の考慮が必要なユニークのネットワークスタックアーキテクチャを介するコンピュータネットワーク通信のフォールトトレランス(fault-tolerance)を提供する。
付随する特徴の多くは、添付図面に関連して考慮された以下の詳細な説明を参照することによってより理解されることにより、より容易に認識されることとなるであろう。
本説明は、添付の図面を踏まえて読まれる以下の詳細な説明により、よりよく理解されるであろう。
添付の図において、同様の参照番号は、同様の部分を指すのに用いられる。
以下で添付図面に関連して提供される詳細な説明は、本例の説明として意図されるものであり、本例を構築または利用することができる唯一の形式を表すように意図されるものではない。この説明は、本例の機能、および本例を構築し、動作させるためのステップのシーケンスを説明する。しかし、同一または同等の機能およびシーケンスを、別の例により達成することができる。
本例は、本明細書では、コンピューティングおよびネットワーキングシステムにおいて実装されるものとして説明され、図示されるが、説明されるシステムは、一例として提供されるものであり、限定として提供されるものではない。当業者であれば理解されるように、本例は、様々な異なるタイプのコンピューティングおよびネットワーキングシステムにおける適用に適している。
図1は、例示のネットワークスタックアーキテクチャ100を示すブロック図である。ネットワークスタック(「スタック」)は、一般に、ネットワークスタックインタフェースおよび/または他のインタフェースを介してソフトウェアアプリケーションと結合して、ネットワーク通信機能をアプリケーションに提供する。アプリケーションは典型的に、スタックの「最上位(top)」にある(または結合される)といわれている。ネットワークは、典型的に、スタックの「最下位(bottom)」にある(または結合される)といわれている。ネットワークスタックの様々なエレメントは、スタックの最上位または最下位に、またはその付近、あるいは相互に対してスタック内の上位または下位にあると言われることもある。例えば、図1では、プロトコルドライバ130は、この特定の図においてスタックの最下位に示されるNIC180よりもスタックの上位にある。ネットワークの様々な描写は、当業者であれば理解されるように、その描写の対象または焦点に応じて、いくつかのスタックエレメントを含むことも含まないこともあり、あるいはエレメントを、様々な方法でグループ化し、順序付けし、または指定することもある。
本明細書で用いられる「ドライバ(driver)」という用語は、ノードが、プリンタ、ネットワークインタフェースカード、または他のコンピュータサブシステムなどの特定のデバイスで動作し、あるいはネットワークスタック、プロトコルドライバ、および/または他のコンピュータソフトウェアもしくはファームウェアなどの1つまたは複数のプログラムで動作することを可能にする制御プログラムなどを指す。例えば、プロトコルドライバは、典型的に、ネットワークスタックで動作する。
アプリケーションは、データパケットを、別のノード上で動作するアプリケーション宛てのスタックに渡すことがある。この場合、データは、スタックの「下方」に流れるといわれ、ネットワーク上に送出される。ノードによって受信されるデータは、そのデータが宛先のアプリケーションに到達するまで、スタックの「上方」に流れるといわれる。このようなネットワーキングシステムは、当業者によく知られている。
一例では、スタックは、NIC180などのNIC (network interface card)のための標準API (application programming interface)を定義し、ネットワークドライバからネットワークハードウェアを抽象化するNDIS(Network Driver Interface Specification)に基づくものである。NDISは、階層化されたネットワークドライバ間の標準インタフェースも特定し、それによりミニポートドライバなどのハードウェアを管理する下位レベルのドライバを、プロトコルドライバなどの上位レベルのドライバから抽象化する。複数のNDIS規格合致プロトコルドライバ(NDIS-conforming protocol driver)が、単一のノード上に共存することができる。また、1つのノードが複数のNICを含む場合は、おそらくそのノードは2以上のネットワークに接続されているため、NDISは、ネットワークトラフィックを、そのトラフィックによって指示されるようにその関連ドライバを介して適切なNICにルート指定する。NDISの例を図1に示す。ODI(Open Data-Link Interface)、DLPI(Data Link Provider Interface)、UDI(Uniform Driver Interface)、または他の技術などの、他のネットワーキングスタックの規格、技術、および/またはアーキテクチャを、当業者であれば理解されるように、以下の例で使用することができるだけでなく適切な変形で使用することもできる。便宜上、NDISおよびNDISの用語は、この説明全体を通して例示で使用されるが、別段の注記がない限り、他の規格、技術および/またはアーキテクチャは、これらの例示の全てにおいて、適切な変形で使用されることがある。
図1に示されるように、NDIS120を介してNIC180に結合されるのは、ミニポートドライバ160である。ミニポートドライバは、典型的に、NDISミニポートインタフェース162を介して、NDISとやりとりをする。ミニポートドライバ160は、NIC180に関連付けられ、NICを通してデータを送信することおよび受信することを含むそのオペレーションを管理することができる。ミニポートドライバ160は、典型的に、中間ドライバ140およびプロトコルドライバ130などの、上位レベルのドライバとインタフェースをとる。ミニポートドライバは、NICドライバとみなされる。NICミニポートは、一般に、NDISにより提供される共通またはNICの独立の機能で特定のNICを管理するのに必要とされるハードウェア固有のオペレーションを実行する。1つのノードは、それぞれのNICが一般に関連するNICドライバを有する複数のNICを含むことができる。この説明におけるいくつかの例では、ミニポートドライバの使用を説明するが、当業者であれば理解されるように、別段の注記がない限り、任意のタイプのNICドライバなどをこれらの例において使用することができる。
プロトコルドライバまたはトランスポートドライバ130は、NDISプロトコルインタフェース134を介してNDIS120と結合する。プロトコルドライバまたはトランスポートプロトコルドライバは、一般に、あるノードから別のノードにネットワークスタックを通してネットワーク上で送信されるデータのパケットを作成し、送信し、受信する機能を提供する。当業者に公知であるように、信頼性のあるまたは保証された共通の配信トランスポートプロトコル(delivery transport protocol)は、TCP/IPとすることができる。IP上のUDP(ユーザデータグラムプロトコル)は、信頼性のないまたは保証されない共通の配信プロトコルとすることができる。TCP(伝送制御プロトコル)、UDP、および/またはIPX/SPXなどの他のプロトコルを、別段の注記がない限り、以下の例で使用することができる。
NDIS中間(IM)ドライバ140は、図1では、プロトコルドライバ130とNDIS NICミニポート160の間に示される。プロトコルドライバにとって、IMドライバはNDISミニポートのように見えるが、NICドライバにとって、IMドライバはプロトコルドライバのように見える。ネットワークスタックの上方または下方へ流れるデータパケットは、データパケットを無視し、検査し、フィルタリングし、転送し、リダイレクトし、および/または変更することができるIMドライバ140に渡される。中間ドライバ140は、フィルタドライバとしても知られることがある。
図2は、2つのネットワーク202および282を介して結合される2つの例示のノード210および260を含む、ネットワーク化されたコンピューティング環境200を示すブロック図である。ノード210および260はそれぞれ、パーソナルコンピュータ(PC)、クライアントコンピュータ、サーバ、ホスト、ラップトップ、ポータブルデバイス、家庭用電子機器、または、任意の様々な他のタイプのコンピューティングまたは処理デバイス、マシン、もしくはシステムとすることができる。コンピューティングシステムのタイプの限定ではない一例を、図11に関して以下で詳細に説明する。円212、214、262、および264は、それぞれのノードと関連するNICを表す。NICのタイプの限定ではない一例を、ネットワークアダプタ1113として図11に関して以下でさらに説明する。
本明細書で用いられるように、ノードいう用語は、ネットワーク(例えば、ネットワーク202)内で一意にアドレス可能であるかそうでなければ一意に識別可能であって、ネットワーク内の他のノードと通信するように動作可能な任意のコンピューティングシステム、デバイス、またはプロセスを指す。例えば、限定ではないが、ノードは、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどとすることができる。コンピューティングシステムの形式のノード210の限定ではない一例を、図11に関して以下で説明する。
ネットワーク202および282は、同一ネットワークとすることができ、同一または異なるサブネット上に存在することができ、互いから論理的または物理的に結合または分離されることができ、同様のまたは異なるネットワーキング技術を使用することができる。特に、ネットワーク202および282は、ルート指定されたネットワーク(routed network)、すなわち、ルート指定可能プロトコル(routable protocol)パケットを転送するルータを含むネットワークとすることができる。ルート指定可能プロトコルは、典型的に、データをあるネットワークから別のネットワークにルート指定するのに使用される通信プロトコルとみなされる。ルート指定可能プロトコルの例は、TCP/IPである。データパケットをルート指定可能な方法で送信することは、ルート指定可能トランスポートプロトコルを使用してデータパケットをフォーマットおよび/または送信することを暗示する。当業者は、ルート指定可能プロトコル、およびルーティングネットワークトポロジ、システムおよびアーキテクチャに精通しているであろう。
一例では、ネットワーク202および282は、一方のネットワークに問題または障害がある場合に、他方の動作状況に影響を与えるおそれがないように、相互に独立したものとすることができる。他の例では、3つまたはそれ以上のネットワークを使用することができる。より高度のフォールトトレランスが望まれる例では、より多くの数のネットワークを、これらのネットワークに対するノードの関連コネクティビティとともに利用することができ、これらのネットワークには、1つのノードにインストールされるのと同じ数のNICが含まれる。
ノード210と関連付けられるNIC212は、例示アドレス172.56.48.37で示され、202のネットワーク1に結合される。また、ノード210と関連付けられるNIC214は、例示アドレス197.71.48.38で示され、282のネットワーク2に結合される。ノード260と関連付けられるNIC262は、例示アドレス172.56.48.38で示され、これも202のネットワーク1に結合される。また、ノード260と関連付けられるNIC264は、例示アドレス197.71.48.39で示され、これも282のネットワーク2に結合される。これらのアドレスは、実際には、IPv4またはIPv6アドレスなどとすることができ、あるいは、使用されているプロトコルに典型的に関連する任意の他のタイプのネットワークアドレスとすることができる。
各ノードは、1つまたは複数のNICを含むことができる。図11で矢印1114としても示される矢印201および203は、ノード210および260の間の202のネットワーク1上の第1の通信ルートまたは経路(pathway)(「パスA」)を表す。矢印281および283は、ノード210および260の間の282のネットワーク2上の第2の通信ルートまたは経路(「パスB」)を表す。実際、環境200では、1つまたは複数の経路が、2つまたはそれ以上のノード間の1つまたは複数のネットワーク上に存在することができる。本明細書で用いられる「経路」という用語は、ネットワーク内のノード間の通信ルートまたは通信リンクとして定義される。このようなルートまたはリンクは、ノード間の正確なルートが時間とともに変化する可能性があるという点で、動的である可能性がある。
ブロック216および266は、フォールトトレラント通信(FT)ドライバを含みノード210および260のそれぞれに提供される、アプリケーションおよびネットワークスタックを表す。ブロック216のFTドライバは、例示アドレス10.0.0.1で示され、ブロック266のFTドライバは、例示アドレス10.0.0.2で示される。これらのアドレスは典型的に、仮想アドレスとみなされる。これらのアドレスは、IPv4またはIPv6アドレスなど、または任意の他のタイプのネットワークアドレスまたは通信アドレスとすることができる。FTドライバは、以下の様々な例で示されるように、仮想アドレスを有することも有さないこともある。
フォールトトレラントネットワークスタックは、図3に関連して以下で説明されるNETFTのようなFTドライバなどを含むネットワークスタックである。ネットワークスタックと組み合わせて動作するNETFTなどのFTドライバは、典型的に、1つまたは複数のネットワーク上で、パスAおよびパスBなどの1つまたは複数の通信パスを介して、ノードが相互に通信することを可能にする。これらの通信パスのいずれかに障害は起こる場合、少なくとも1つの動作可能な経路があれば、ノードは通信を続けることができる。このような経路の障害は、NICの障害、または経路のいずれかのエレメントの障害に起因する可能性があり、上記エレメントには、接続、配線または他の通信媒体(無線周波数(RF)または赤外線(IR)などを含む)、ルータ、ハブ、スイッチ、ファイアウォール、インターネットサービスプロバイダ(ISP)、ネットワークのいずれかのノード、デバイス、またはシステムに対する電源障害などが含まれる。
一例では、通信障害により、プラグアンドプレイ(PnP)イベントが起こることがある。PnPイベントは、そのノードからのNICの除去、または媒体センス変化(media sense change)を示すことがある。例えば、媒体センス切断(media sense disconnect)は典型的に、NICに、ネットワークケーブル、RFまたはIRリンクなどの、ネットワーク媒体上の信号または搬送波を失わせるような障害に起因する。媒体センス切断は、ネットワークケーブルまたは搬送波をNICから切断することによって、あるいはケーブルの他のエンド(例えば、ハブまたはスイッチ)を電源オフすることによって引き起こされることがある。媒体センス接続(media sense connect)は典型的に、ケーブルを再接続すること、ハブまたはスイッチなどを再び電源オンする(re-powering on)ことなどのように、切断とは反対である。コネクティビティイベント(connectivity event)としても知られるこれらのタイプのイベントは一般的に、ノード上で起こるかまたはその近くにあるという点で、ローカルイベントである。このようなローカルコネクティビティイベントは典型的に、PnPイベントなどの、ノードにおけるイベント指示をもたらす。
別の例では、通信障害を、ノード間で送信されるハートビートパケットを使用することによって検出することができる。このようなハートビートパケットの障害は、ノード間の経路の障害を示すことがある。ハートビートパケットは、FTドライバがその受信時にハートビートパケットを検出し、ネットワークスタックに渡されるパケットフローについてハートビートパケットを除去できるように、マークされる傾向がある。一例では、ハートビートパケットを、ルート制御プロトコル(RCP)を使用して、RCPパケットを形成することによって実装することができる。このようなハートビートパケットを使用して、経路のエンドツーエンド間の動作可能ステータスを検証することができる。すなわち、ノード210からパスAを経てノード260にハートビートパケットを送信すること、およびノード210が送信されたハートビートパケットに対する応答をノード260から受信することにより、パスAはエンドツーエンド間が動作可能であるとみなされるのが一般的である。ハートビートに障害が起こった場合は(送信されたハートビートに応じて受信されるハートビート応答がない場合)、このような障害は、おそらくルータ、スイッチ、またはコネクションなどの202のネットワーク1のエレメントの障害、あるいはターゲットノード自身の障害のために、パスAが動作可能でないことを示すことがある。特に、ノード210が、動作可能なNIC212および有効な媒体センスを有する場合、ノードがネットワークに正しく接続されているが、いくつかのネットワークまたはシステムの障害でラインがダウンしているため、まだハートビート障害が検出される可能性があることを示している。
図3は、例示のフォールトトレラント通信ドライバ、NETFT300を示すブロック図である。NETFT300は、NDISネットワークスタックで使用し、経路障害に強いノード間でネットワーク通信を提供するため、NDISミニポートドライバ(図1の160)として実装されることがある。すなわち、それぞれがNETFTを使用していると、少なくとも1つの経路が動作可能のままである限り、経路内のいずれかのコンポーネントの障害に関わらず、2つまたはそれ以上のノード間の通信は継続することができる。
一例では、NDISミニポートドライバとしてのFTドライバの実装により、少なくとも2つの利点が与えられる。第1に、このようなFTドライバは一般に、スタック内のどのプロトコルドライバよりも下にあるので、プロトコルの信頼性は、任意の上位レベルの信頼性プロトコルドライバによって提供される傾向があり、その上位レベルの信頼性プロトコルドライバは一般的に、FTドライバによって提供されるリンクレベルのフォールトトレランスの付加によっては影響されない。例えば、TCP/IPドライバなどのプロトコルドライバと組み合わせてFTドライバを使用すると、FTドライバは典型的に、障害のある経路を検出し、いずれのプロトコルドライバからも独立したエンドツーエンド間で動作可能な経路で、データパケットのルート指定をすることとなる。経路のスイッチングのためにパケット紛失が起こると、一般的にはスタック内のFTドライバの上にあるTCP/IPプロトコルドライバは、信頼性のあるプロトコルがパケット配信を成功することを保証するために、そのような損失を検出し、いずれかの再試行(retry)または再送(resend)オペレーションを実行する傾向がある。
FTドライバをスタック内のプロトコルドライバの下に配置することの第2の利点は、典型的に、プロトコルのルート指定可能性(routability)の低下が引き起こされないことである。そのように構成されると、FTドライバがデータパケットに対して実行するどのようなトンネリングオペレーションも、TCPまたはUDPなどのルート指定可能プロトコルを採用することができるので、そのようなデータがリンクレベルのフォールトトレラントであることに加え、ルート指定可能であることを保証する。データパケットを「ルート指定可能にトンネリングする」こととは、ルート指定可能プロトコルを使用してデータパケットをトンネリングすることである。
ネットワークスタックの一部としてのNETFTは、一般的に、NDISまたは他のネットワークスタックインタフェースを介してソフトウェアアプリケーションに結合する。このような結合により、一般的に、アプリケーションが、スタックの最下位に結合されるネットワーク上でデータパケットを送受信することが可能となる。一例では、アプリケーションは、データパケットのソースアドレスとして仮想アドレスを使用する傾向があり、この仮想アドレスは、以下で説明するように、NETFTに知らされ、ネットワークの他のノードにマッピングされ通信される。図3で示されるように、NETFTには、ミニポートアダプタ302(処理エレメントとしても知られる)、ルーティングデータベース304、および1つまたは複数のルートモニタアダプタ306、および1つまたは複数のトンネルアダプタ308が含まれる。
トンネルアダプタ308は、典型的に、ローカルノードの1つのNIC(場合によっては、仮想NIC)を表し、複数のパケットをターゲットノードのNETFTにトンネリングするのに用いられる1つのソケットを維持する。典型的に、それぞれが別のノードへの経路を提供するネットワークに結合されているNICを有するローカルノードの各NICに関連付けられる1つのトンネルアダプタ308が存在する。各ネットワークは、任意の他のネットワークから分離されることも、分離されないこともある。トンネルアダプタ308は典型的に、トンネリングプロトコルドライバと関連付けられ、NDISインタフェースを介してその関連NICに対するトンネリングプロトコルを通してデータパケットをトンネリングする。トンネリングプロトコルの一例は、UDPである。代替的に、TCP、IPX、またはSPXなどの他のプロトコルをトンネリングに使用することができる。トンネルアダプタ308は、関連NICまたは媒体コネクションが非アクティブになると、非アクティブになることがある。
ルーティングデータベース304はNETFT内で実装されるように、典型的に、システムメモリ内に配置することができる簡単なデータ構造であり、1つまたは複数の経路の仮想アドレスを別のノード上の同様のNETFTにマッピングするエントリを含む。一例では、マッピングは、トンネルアダプタ308などのトンネルアダプタと典型的に関連付けられるルートモニタアダプタ306などのルートモニタアダプタによって表される。一般的に、ルーティングデータベース304などのルーティングデータベースには、各トンネルアダプタに関する1組のルートアダプタが含まれることとなり、各ルートアダプタは、トンネルアダプタに関連付けられる経路で到達可能な異なるターゲットノードと関連付けられている。例えば、TCP/IPを使用すると、データベースは、宛先の仮想アドレスを特定のリモートノードの物理アドレスにマッピングすることができる。
ルーティングデータベース304には、各経路の優先順位情報(priority information)を含めることもできる。このような優先順位情報を用いて別のノードへの優先経路(preferred pathway)または基本経路(primary pathway)を示すことができ、および/または、経路の速度または他の特性についての情報を含むことができる。優先経路は、可能である場合に、優先順位情報および/または経路ステータスに基づいて、他の可能な経路上で使用するためにNETFTによって計算される経路である。優先順位情報は、代替的に、ターゲットノードへの複数の経路を利用するために、経路上のトラフィックをロードバランシングするように、ラウンドロビンロードバランシングアルゴリズム(round-robin load balancing algorithm)を示すことがあり、または、他のなんらかの経路優先順位付け方式(pathway prioritization scheme)を可能にすることがある。
表1は、例示のルーティングデータベース304のマッピングテーブルを示す。
Figure 0004794629
表1および図2を参照すると、表1は、ノード216で動作しているNETFTによって使用されることのあるマッピングテーブルの例を示す。表1は、仮想宛先アドレス10.0.0.2を示し、この仮想宛先アドレスは、ノード266に関して示されるように、ノード266へのパスAと関連付けられる物理アドレス172.56.48.38、およびノード266へのパスBに関連付けられる物理アドレス197,71.48.39にマッピングされる。パスAは第1の優先度を有し、パスBは第2の優先度を有する。表1は、一例として提供されるものであり、限定を意図するものではない。
データをノード216からノード266に送信するとき、典型的には、このようなマッピングテーブルを用いて、UDPなどのトンネリングプロトコルを介してパケットを物理宛先アドレス172.56.48.38に転送し、ノード216からパスAを経てノード266にパケットをトンネリングすることによって、仮想宛先アドレス10.0.0.2宛てのパケットをトンネリングする。2つのノード間に確立される経路の各組に対して、1つのこのようなマッピングテーブルを、ルーティングデータベース(図3中の304)内に作成することができる。このようなマッピングテーブルは、様々な形式で実装することができ、様々な優先度方式を使用し、および/または経路動作可能ステータスを含む他の情報を格納することができる。図1に示されるマッピングテーブルの構造、経路の数、アドレスフォーマットなどは、例として提供されるものであり、限定を意図するものではない。
ローカルノードの仮想アドレス、リモートノードの仮想アドレス、および優先度と他の経路の情報は、典型的に、アウトオブバンド(out-of-band)メカニズムによってノードに提供され、そのNDISインタフェースを介してNETFTに渡される。このアウトオブバンドメカニズムは、システムアドミニストレータが情報を特定するために管理アプリケーションを使用することと同様に単純なものとすることができ、または自動化システムなどとすることができる。このようなアウトオブバンドメカニズムは、当業者に周知である。
図3に示されるように、(ドライバの処理エレメントとしても知られる)ミニポートアダプタ302は、典型的に、ネットワークスタックの下方へ流れるデータパケットを解析し、どのトンネルアダプタ308からデータパケットをトンネリングさせるかを判定するために、パケットの宛先仮想アドレスを調べ、ルーティングデータベース304からの情報を使用する。着信パケット、またはスタックの上方へ流れるデータパケットは、その宛先仮想アドレスに向かってスタックの上方へ転送されるが、それ以前にトンネリングプロトコルはトンネリングパケットヘッダを除去している。特に、トンネルアダプタ308は、着信パケットを調べ、ハートビートパケットをルートモニタアダプタ306に転送し、ミニポートアダプタ302を介して他のパケットをスタックの上方に転送する。トンネリングプロトコルを使用してデータパケットをトンネリングする態様、およびプロトコルドライバによってプロトコルヘッダが追加され削除される方法は、当業者に周知である。
ルートモニタアダプタ306は典型的に、関連トンネルアダプタによって識別される特定の経路上でアクセス可能なリモートノードを表す。ルートモニタアダプタ306は、典型的にリモートノードのための物理アドレスを提供し、この物理アドレスはリモートノードへの特定の経路にも対応する。この物理アドレスは典型的に、ルーティングデータベース304内のマッピングに使用される。リモートノードへの個々の経路それぞれに対して、典型的に1つのルートモニタアダプタがあり、それぞれのルートモニタアダプタは経路を表す1つのトンネルアダプタと関連付けられている。一例では、図2に戻って参照すると、ノード210は、一方は202のネットワーク1(パスA)を通じ、他方は282のネットワーク2(パスB)を通じる2つの経路上のノード260に結合されるように示される。ノード210で動作するNETFTは、そのNIC262と関連付けられるリモートノード260の物理アドレス172.56.48.38を提供する第1のルートモニタアダプタ(RMA−A)を含むことができる。RMA−Aを、パスAと関連付けることができるノード210の第1のトンネルアダプタ(TA−A)と関連付けることができる。ノード210のNETFTは、そのNIC264と関連付けられるリモートノード260の第2の物理アドレス197.71.48.39を提供する第2のルートモニタアダプタ(RMA−B)を含むこともできる。RMA−Bを、パスBと関連付けることができるノード210の第2のトンネルアダプタ(TA−B)と関連付けることができる。
図3を参照すると、ルートモニタアダプタ306は典型的に、リモートノードへの経路の調子(health)をモニタし、ルーティングデータベース304内の障害がある経路または動作可能な経路を示す。モニタリングには典型的に、任意のイベント指示を受信すること、および/または任意のハートビート障害を記録すること、およびそれに応じてデータベースを更新することが含まれる。一例では、NICまたは媒体コネクションの障害のイベント指示により、トンネルアダプタ308が使用不可となることがある。別の例では、ハートビート障害により、ハートビートの障害が起った特定のリモートノードと関連付けられるルートモニタアダプタ306が使用不可となることがある。
図4は、NETFT300およびアプリケーション402を含むフォールトトレラント通信アーキテクチャ216の例を示すブロック図である。この例では、アプリケーション402は、スタックを介して、仮想ソースアドレス217、および宛先ノードを表す仮想宛先アドレスを使用して、データパケットをNETFT300に送信する。この送出(out-going)データパケットは、パス480を介して、アプリケーションからネットワークスタックを通ってドライバ300に流れる。ドライバ300は典型的に、取り得る経路のいずれを各パケットが取るべきであるかを、ルーティングデータベースに格納される優先順位情報と経路の動作可能ステータス情報を通常使用して判定し、適切な物理ソースアドレス422または424を使用して、選択された経路上をターゲットノードにパケットをトンネリングする。
アプリケーション402は、図4に示されるように、NETFT300を通じて、TCPプロトコルを介してデータパケットを送信することができる。代替的に、UDPまたは任意の他のプロトコルを使用することができる。また、示されるように、NETFT300は、UDPプロトコルを使用してパケットをターゲットノードにトンネリングすることもできる。代替的に、TCPまたは任意の他のプロトコルをトンネリングに使用することができる。さらに、代替例では、ミニポートアダプタまたはNDISドライバを使用しないことあるが、他のメカニズムまたはアーキテクチャを使用して同様の機能を実行することがある。最後に、ネットワークスタックなどの様々なエレメントは、示されるようにまたは他の方法のようにユーザモードまたはカーネルモードのいずれかで、あるいは同等の動作モードの有無に関係なくシステム上で動作することができる。
図5は、202のネットワーク1上のパスAと282のネットワーク2上のパスBとを介して結合されるソースノード216と宛先ノード266を含む、フォールトトレラント通信環境500を通じて流れるデータを示すフロー図である。この例示環境500では、データは、ノード216で動作するアプリケーションからノード266の宛先仮想アドレスで受信待機(listen)しているアプリケーションに送信されるものとして示される。データパケットは、パス501で示されるように、TCPプロトコルを使用してノード216で動作しているネットワークスタックの下方に流れ、NETFT内に流れる。パスAが選択された経路であると想定すると、示されるように、NETFTは、データパケットを、アプリケーションによって使用されているソース仮想アドレスからパスAにマッピングし、ターゲットノード266へのパスAの物理宛先アドレスを使用してUDPプロトコルを通って、パス501でさらに示されるようにノード216のNIC1から出て、リンク201を介して202のネットワーク1上にデータをトンネリングする。次いで、データは、202のネットワーク1を通って、リンク203を経てノード266へ流れ、パス503で示されるように、ノード266で動作しているネットワークスタックの上方に流れていく。次いで、データは、送信側でトンネリングプロトコルとして使用されたのと同じプロトコルであるUDPプロトコルドライバを通って流れ、ここで、ノード266で動作しているNETFTに渡されるUDPプロトコルヘッダがデータパケットから取り除かれる。次いで、NETFTはスタックの上方にデータパケットを流し、宛先仮想アドレスを受信待機中のアプリケーションに転送する。レスポンスは逆の順序で流れる傾向がある。
図6は、図5で示されるフォールトトレラント通信環境500を通って流れるデータを、いくつかの起り得る通信障害610、612、620、622および630とともに示すフロー図である。他の通信障害が起こる可能性もある。障害610は、送信側ノード216で動作しているNIC1の障害を示す。このような障害は、NIC1がノードから除去されたり、NIC1のドライバに障害が起ったり、NIC1自体に障害が起ったりすると、生じることがある。この障害は、PnPイベントなどのようなイベント指示、および/またはハートビート障害を介して、NETFTによって検出されることがある。このような状況では、典型的にパスAに障害が起ったとみなされ、NETFTはエンドツーエンド間で動作可能な代替経路を選択することとなる。エンドツーエンド間で動作可能な経路とは典型的に、ソースノードおよびアプリケーションからのデータを、宛先のノードおよびアプリケーションまで全て正常に配信することができる経路である。
障害620は、ノード216のNIC1と結合しているネットワーク媒体の障害を示す。この障害は、ケーブルがNIC1から切り離されていること、ケーブルが202のネットワーク1のあるデバイスから切り離されつつあること、あるいはケーブルがネットワーク側で接続されるデバイスが電源オフまたは障害があることに起因することがある。このタイプの障害は、PnPイベントなどのイベント指示、および/またはハートビート障害および選択された代替経路を介して、NETFTによって検出されることもある。
障害630は、ネットワーク202内のあるタイプの障害により、データパケットが宛先ノード266への到達できないこととなることを示す。この障害の場合は、送信側ノード216はまだ、正しい媒体センス指示(media sense indication)とともにネットワーク202に結合されている可能性があるが、パスAは、ネットワークのさらに下方で中断されている。このような障害が生じることにより、送信側ノード216で動作しているNETFTは、ローカル指示がネットワーク202への接続が良好であると示す場合には、イベント指示を介して障害を検出しないことがあるが、パスAのハートビート障害を介して障害を検出することがある。
リンク203の障害622、および受信側ノード266で動作しているNIC1の障害612は、ノード216に関して示される障害の対応する障害と類似する傾向がある。しかし、これらの障害は、ノード216に対してローカルでないためイベント指示を介して検出されないことがあるが、ハートビート障害を介して検出されることがある。
これらの障害の任意のものおよび他の障害が、ノード216側で動作しているNETFTによって検出されることがあり、その結果、282のネットワーク2上のパスBなどのエンドツーエンド間で動作可能な代替経路をNETFTが選択することがある。この例では、図6に示されるように、NETFTは、代替パス681の下方へ、282のネットワーク2を経て受信側ノード266にデータをトンネリングする。障害状態が修正され、エンドツーエンド間の動作可能ステータスがパスA上で復元されると、送信側ノード216で動作しているNETFTは、リカバリを検出し、再びパスAを使用することができる。さらに、ノード266からノード216に返される任意のレスポンスを、NETFTによって同様のフォールトトレラントの方法でトンネリングすることができる。
図7は、フォールトトレラント通信ドライバ、NETFT700の別の例を示すブロック図である。この例は図3に示される例と類似しているが、以下で説明されるように変形を含む。この例では、ソフトウェアアプリケーションは、仮想アドレスを使用する必要がないことがある。代わりに、アプリケーションは、ターゲットノードへのデータパケットをアドレス指定するために物理宛先アドレスを使用することがある。
プロトコルアダプタ710は、一般的に、ミニポートアダプタ702(ドライバの処理エレメントとしても知られる)、およびNICミニポートアダプタ(図示せず)に結合する。典型的に、ノードにインストールされる各NICに対して1つのプロトコルアダプタが存在し、各プロトコルアダプタはそのNICアダプタを介してNICと関連付けられている。各プロトコルアダプタは、NICと関連付けられるように、NICに結合される経路とも関連付けられる。プロトコルアダプタ710は、アプリケーションからのデータパケットを処理エレメント702を介して受け取り、そのデータパケットをトンネリングする必要なく関連NICに渡すように動作可能である。
処理エレメント702は典型的に、ネットワークスタックの下方に流れるデータパケットを解析(parse)し、そのパケットの物理宛先アドレスを調べ、ルーティングデータベース704からの情報を使用して、そのパケットをプロトコルアダプタ710を経て転送することができるか、またはトンネルアダプタ308を経てターゲットノードにトンネリングする必要があるかを判定する。一般的に、物理宛先アドレスによって示される経路がエンドツーエンド間で動作可能である場合、データパケットはその経路上を送信されることとなる。そうでなければ、パケットをトンネリングすることがある代替経路を選択することがある。
この例では、ルーティングデータベース704は、物理宛先アドレスおよび経路のマッピングを、上述した優先度および他の情報ととともに維持する。ルーティングデータベース704のマッピングテーブルの例を表2に示す。
Figure 0004794629
表2および図2を参照すると、表2は、ノード216で動作しているNETFTによって使用される場合のマッピングテーブルの例を示す。表2は、ノード266へのパスAと関連付けられる物理宛先アドレス172.56.48.38、およびノード266へのパスBと関連付けられる物理宛先アドレス197.71.48.39を含むマッピングを示す。パスAは第1の優先度を有し、パスBは第2の優先度を有するように示される。
データをノード216からノード266に送信するとき、このようなマッピングテーブルは典型的に、ノード266の物理宛先アドレス172.56.48.38に送信されるデータパケットの転送に(または、必要な場合はトンネリングに)使用される。元の宛先アドレスと関連付けられる経路が動作可能である場合、データパケットは、トンネリングなしに宛先ノードに転送される傾向がある。その経路が使用可能である場合、データパケットは、トンネリングを介して、代替経路を経てノード266の物理宛先アドレス197.71.48.39に送信される。NETFT700の他の態様は一般的に、図3に関して説明したNETFTの態様と同様である。
図8は、NETFT700およびアプリケーション402を含むフォールトトレラント通信アーキテクチャ216の例を示すブロック図である。この例では、アプリケーション402は、物理ソースアドレスと宛先ノードを表す物理宛先アドレス801とを使用して、スタックを介してNETFT700にデータパケットを送信する。このような送出データパケットは、アプリケーションからパス880を介して、ネットワークスタックを通ってドライバ700に流れる。ドライバ700は典型的に、取り得る経路のいずれを各パケットが取るべきかを、ルーティングデータベースに格納される優先順位情報と経路動作可能ステータスとを通常使用して判定し、そして、元の物理宛先アドレスによって示される経路でターゲットノードにパケットを転送するか、またはその経路がエンドツーエンド間で動作可能でない場合には、この例ではルート882および892のNIC2で示されるような代替経路でパケットをトンネリングする。
アプリケーション402は、図8に示されるように、TCPプロトコルを介してNETFT700を通してデータパケットを送信することができる。代替的に、UDPまたは任意の他のプロトコルを使用することができる。また、示されるように、NETFT700は、UDPプロトコルを使用してパケットをターゲットノードにトンネリングすることもできる。代替的に、TCPまたは他のプロトコルをトンネリングに使用することもできる。さらに、他の例では、NDISドライバを使用しないこともあるが、他のメカニズムまたはアーキテクチャを使用して同様の機能を実行することがある。最後に、ネットワークスタックなどの様々なエレメントは、示されるようにまたは他の方法のようにユーザモードまたはカーネルモードのいずれかで、あるいは同等の動作モードの有無に関係なくシステム上で動作することができる。
図9は、202のネットワーク1上のパスAと282のネットワーク2上のパスBとを介して結合されるソースノード816と宛先ノード966を含む、フォールトトレラント通信環境900を通して流れるデータを示すフロー図である。この例示環境900では、データは、ノード216で動作しているアプリケーションから、ノード266で宛先物理アドレスを受信待機しているアプリケーションに送信されるように示される。データパケットは、パス901によって示されるように、TCPプロトコルを使用してノード216で動作しているネットワークスタックの下方へ流れ、NETFT内に流れる。示されるように、パスAが選択された経路であると想定すると、NETFTは、データパケットを、アプリケーションから提供される物理宛先アドレスを使用して、ノード216のNIC1を介してパスAを経て、リンク201を介して202のネットワーク1を通して転送する。次いで、データは202のネットワーク1を通って、リンク203を経てノード966に流れ、パス903で示されるようにノード966で動作しているネットワークスタックの上方に流れる。次いで、データは、NETFTおよびプロトコルドライバ(送信側で送信プロトコルとして使用されたのと同じプロトコルのプロトコルドライバ)を通って、アプリケーションまで流れる。レスポンスは逆の順序で流れる傾向がある。
図10は、図9に示されるフォールトトレラント通信環境900を通って流れるデータを、いくつかの起り得る通信障害1010、1012、1020、1022、および103とともに示すフロー図である。他の通信障害が起こる可能性もある。障害1010は、送信側ノード816で動作しているNIC1の障害を示す。このような障害は、NIC1がノードから除去されるか、そのNICドライバに障害が起こるか、NIC自体に障害が起こると、生じることがある。この障害は、PnPイベントなどのようなイベント指示および/またはハートビート障害を介してNETFTによって検出されることがある。このような状況では、パスAは典型的に、障害が起こったとみなされ、NETFTはエンドツーエンド間で動作可能な代替経路を選択することになる。
障害1020は、ノード816のNIC1と結合しているネットワーク媒体の障害を示す。この障害は、ケーブルがNIC1から切り離されていること、ケーブルが202のネットワーク1のあるデバイスから切り離されつつあること、あるいはケーブルがネットワーク側で接続されるデバイスが電源オフまたは障害があることに起因することがある。このタイプの障害は、PnPイベントなどのイベント指示、および/またはハートビート障害および代替経路が選択されたことを介して、NETFTによって検出されることもある。
障害1030は、ネットワーク202内のあるタイプの障害により、データパケットが宛先ノード966に到達できないこととなることを示す。この障害の場合は、送信側ノード816はまだ、正しい媒体センス指示とともにネットワーク202に結合されている可能性があるが、パスAは、ネットワークのさらに下方で中断されている。このような障害が起こることにより、送信側ノード816で動作しているNETFTは、ローカル指示がネットワーク202へのコネクティビティが良好であると示す場合には、PnPイベントなどのイベント指示を介して障害を検出しないことがあるが、パスAのハートビート障害を介して障害を検出することがある。
リンク203の障害1022、および受信側ノード266で動作しているNIC1の障害1012は、ノード816について示される障害の対応する障害と類似している傾向がある。しかし、これらの障害はノード816に対してローカルでないため、イベント指示を介して検出されないことがあるが、ハートビート障害を介して検出されることがある。
任意のこれらの障害および他の障害は、ノード816で動作しているNETFTによって検出され、その結果、282のネットワーク2上のパスBなどのエンドツーエンド間で動作可能な代替経路をNETFTが選択することがある。この例では、図10に示されるように、NETFTは、代替パス1081を下って、282のネットワーク2を経て受信側ノード966にデータをトンネリングする。障害状態が修正され、エンドツーエンド間の動作可能ステータスがパスAで復元されると、送信側ノード816で動作しているNETFTはそのリカバリを検出し、再びパスAを使用することがある。さらに、ノード966からノード816に返される任意のレスポンスを、パスAおよびパスBの動作可能ステータスに応じて、NETFTによって同様のフォールトトレラントの方法で転送するか、またはトンネリングすることができる。
図11は、上述した技術を実装することができる例示のコンピューティング環境1100を示すブロック図である。適切なコンピューティング環境を、多数の汎用または専用のシステムで実装することができる。よく知られているシステムの例には、パーソナルコンピュータ(PC)、ハンドヘルドまたはラップトップデバイス、マイクロプロセッサベースのシステム、マルチプロセッサシステム、サーバ、ワークステーション、家庭用電子機器、セットトップボックスなどが含めることができるが、これらには限定されない。
コンピューティング環境1100には、一般的に、様々な周辺デバイス1102、1103、1104などと結合されるコンピューティングデバイス1101の形式の汎用コンピューティングシステムが含まれる。システム1100は、1つまたは複数のI/Oインタフェースを介して、キーボード、およびマウスもしくはトラックボールなどのポインティングデバイスを含む様々な入力デバイス1103に結合することができる。コンピューティングデバイス1101のコンポーネントには、(中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、マイクロプロセッサ(μP)などを含む)1つまたは複数のプロセッサ1107、システムメモリ1109、および典型的に様々なコンポーネントと結合するシステムバス1108を含めることができる。プロセッサ1107は典型的に、様々なコンピュータ実行可能命令を処理または実行して、コンピューティングデバイス1101のオペレーションを制御し、ネットワーク接続1114などの様々な通信接続を介して他の電子および/またはコンピューティングデバイス、システム、または環境(図示せず)とやりとりをする。システムバス1108は、メモリバスまたはメモリコントローラ、周辺バス、シリアルバス、アクセラレイテッドグラフィックスポート、任意の様々なバスアーキテクチャを使用するプロセッサまたはローカルバスなどを含む、任意の数の数タイプのバス構造を表す。
システムメモリ1109は、ランダムアクセスメモリ(RAM)などの揮発性メモリ、および/または読み取り専用メモリ(ROM)もしくはフラッシュメモリ(FLASH)などの不揮発性メモリの形式のコンピュータ読取可能媒体を含むことができる。基本入力/出力システム(BIOS)を、不揮発性メモリなどに格納することができる。システムメモリ1109は典型的に、データ、コンピュータ実行可能命令、および/あるいは、1つもしくは複数のプロセッサ1107によって即時にアクセス可能であり、および/または現在操作されているコンピュータ実行可能命令を含むプログラムモジュールを格納する。
大容量ストレージデバイス1104および1110を、システムバスとの結合によって、コンピューティングデバイス1101に結合することができるか、コンピューティングデバイス1101に組み込むことができる。このような大容量ストレージデバイス1104および1110は、リムーバブルで不揮発性の磁気ディスク(例えば、「フロッピー(登録商標)ディスク」)1105との間で読み書きをする磁気ディスクドライブ、および/またはCD−ROM、DVD−ROM1106などの不揮発性の光ディスクとの間で読み書きをする光ディスクドライブを含むことができる。代替的に、ハードディスク1110などの大容量ストレージデバイスは、非リムーバブルストレージデバイスを含むことができる。他の大容量ストレージデバイスは、メモリカード、メモリスティック、テープストレージデバイスなどを含むことができる。
任意の数のコンピュータプログラム、ファイル、データ構造などを、ハードディスク1110、他のストレージデバイス1104、1105、1106、および、例としてオペレーティングシステム、アプリケーションプログラム、データファイル、ディレクトリ構造、およびコンピュータ実行可能命令を含む(典型的には、利用可能なスペースによって制限される)システムメモリ1109に格納することができる。
ディスプレイデバイス1102などの出力デバイスを、ビデオアダプタ1111などのインタフェースを介してコンピューティングデバイス1101に結合することができる。他のタイプの出力デバイスは、プリンタ、オーディオ出力、触覚デバイス(tactile device)、または他の感知(sensory)アウトプットメカニズムなどを含むことができる。出力デバイスは、コンピューティングデバイス1101が人間のオペレータまたは他のマシンもしくはシステムとやりとりするのを可能にすることができる。ユーザは、キーボード、マウス、ジョイスティック、ゲームパッド、データポートなどの任意の数の異なる入力デバイスを介してコンピューティング環境1100とインタフェースをとることができる。これらおよび他の入力デバイスは、システムバス1108と結合することができる入力/出力インタフェースを介してプロセッサ1107と結合することができ、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)、ファイアワイヤ(fire wire)、赤外線ポートなどの、他のインタフェースおよびバス構造によって結合することができる。
コンピューティングデバイス1101は、ネットワーキング環境において、1つまたは複数のローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、インターネット、無線リンク、光リンクなどを通して1つまたは複数のリモートコンピューティングデバイスに対する通信接続を介して動作することができる。コンピューティングデバイス1101を、ネットワークアダプタ1113などを介して、代替として、モデム、デジタル加入者回線(DSL)リンク、総合デジタル通信網(ISDN)リンク、インターネットリンク、ワイヤレスリンクなどを介して、ネットワークに結合することができる。
ネットワーク接続などの通信接続1114は、典型的に、ネットワークなどの通信媒体に対する結合を提供する。通信媒体は典型的に、コンピュータ読取可能でコンピュータ実行可能な命令、データ構造、ファイル、プログラムモジュール、および、搬送波または他のトランスポートメカニズムなどの変調データ信号を使用する他のデータを提供する。「変調データ信号(modulated data signal)」という用語は典型的に、信号の中の情報を符号化するような方法で設定または変更された、1つまたは複数の特性を有する信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークもしくは直接有線接続などの有線媒体、および音響、無線周波数、赤外線もしくは他の無線通信メカニズムなどの無線媒体を含めることができる。
コンピュータ読取可能でコンピュータ実行可能な命令およびデータを提供するために利用されるストレージデバイスは、ネットワーク上で分散させることができることを当業者であれば理解するであろう。例えば、リモートコンピュータまたはストレージデバイスは、コンピュータ読取可能でコンピュータ実行可能な命令を、ソフトウェアアプリケーションおよびデータの形式で格納することができる。ローカルコンピュータは、ネットワークを介して、リモートコンピュータまたはストレージデバイスにアクセスして、ソフトウェアアプリケーションまたはデータの一部または全部をダウンロードすることができ、任意のコンピュータ実行可能命令を実行することができる。代替として、ローカルコンピュータは、必要に応じてソフトウェアまたはデータの一部をダウンロードすることができ、または、いくつかの命令をローカルコンピュータで実行していくつかをリモートコンピュータで実行することによってソフトウェアを分散的に処理することができる。
従来的な手法を利用することにより、ソフトウェアのコンピュータ実行可能命令の全部または一部を、デジタル信号プロセッサ(DSP)、プログラマブルロジックアレイ(PLA)、ディスクリート回路などの専用電子回路によって実行することができることも当業者であれば理解するであろう。「電子装置(electronic apparatus)」という用語は、任意のソフトウェア、ファームウェアなどを備えるコンピューティングデバイスまたは家庭用電子機器、あるいはソフトウェア、ファームウェアなどを備えない電子デバイスや回路などを含むことがある。
「ファームウェア」という用語は典型的に、ROMなどの電子デバイスに維持される実行可能な命令、コード、またはデータを指す。「ソフトウェア」という用語は一般的に、任意の形式のコンピュータ読取可能媒体に維持される実行可能な命令、コード、データ、アプリケーション、プログラムなどを指す。「コンピュータ読取可能媒体」という用語は典型的に、システムメモリ、ストレージデバイスおよびその関連媒体、通信媒体などを指す。
例示のネットワークスタックアーキテクチャを示すブロック図である。 2つのネットワークを介して結合される2つの例示のノードを含む、ネットワーク化されたコンピューティング環境を示すブロック図である。 例示のフォールトトレラント通信ドライバ、NETFTを示すブロック図である。 NETFTおよびアプリケーションを含むフォールトトレラント通信アーキテクチャの例を示すブロック図である。 ネットワーク1上のパスAおよびネットワーク2上のパスBを介して結合されるソースノードと宛先ノードを含むフォールトトレラント通信環境を通って流れるデータを示すフロー図である。 図5に示されるフォールトトレラント通信環境を通って流れるデータを、いくつかの起り得る通信障害とともに示すフロー図である。 フォールトトレラント通信ドライバ、NETFTの別の例を示すブロック図である。 NETFTおよびアプリケーションを含むフォールトトレラント通信アーキテクチャの例を示すブロック図である。 ネットワーク1上のパスAとネットワーク2上のパスBを介して結合されるソースノードと宛先ノードを含むフォールトトレラント通信環境を通って流れるデータを示すフロー図である。 図9に示されるフォールトトレラント通信環境を通って流れるデータを、いくつかの起り得る通信障害とともに示すフロー図である。 上述した技術を実装することができるコンピューティング環境の例を示すブロック図である。

Claims (12)

  1. 複数のノード間のフォールトトレラントネットワーク通信でアプリケーションを提供するための方法であって、
    前記複数のノードを結合している複数のネットワーク上の複数の通信経路を提供するステップであって、前記複数のネットワークの各々は、該複数のネットワークのうちの他のネットワークと独立に動作可能であ前記複数の通信経路の各々は、該複数の通信経路のうちの他の通信経路とは別個の経路である、ステップと、
    前記複数のノードの1つである送信側ノードにおいて動作している複数のプロトコルドライバのうち、第1のルート指定可能なトランスポートプロトコルをサポートする第1のプロトコルドライバが、前記送信側ノードで動作している前記アプリケーションから、前記アプリケーションによって前記複数のノードの1つであって前記送信側ノード以外の受信側ノードのアドレスにアドレス指定されデータパケットを受信するステップと、
    前記送信側ノードにおいて動作しているフォールトトレラント通信ドライバが、前記第1のプロトコルドライバから前記データパケットを受信し、前記複数の通信経路の中から前記データパケットのトンネリングに使用すべき第1の選択経路を、少なくとも部分的に前記複数の通信経路におけるネットワークトラフィックのロードバランシングにより決定された優先度情報に基づいて選択するステップであって、前記送信側ノードは、前記複数の通信経路のうちの異なる1つの通信経路に各々が結合されている複数のネットワークインターフェースカード(NIC)を含み、前記第1の選択経路は、前記複数のNICのうち第1のNICに結合されており、前記第1のNICは、前記複数のプロトコルドライバのうち、第2のルート指定可能なトランスポートプロトコルをサポートするのプロトコルドライバに結合された第1のNICドライバによって制御され、前記フォールトトレラント通信ドライバは、前記第1および第2のプロトコルドライバに結合されている、ステップと
    前記フォールトトレラント通信ドライバが、選択された前記第1の選択経路に従って、前記データパケットを前記第2のプロトコルドライバに提供し、前記第2のルート指定可能なトランスポートプロトコルを使用して、前記第1のNICを介して前記第1の選択経路により前記データパケットを前記受信側ノードにトンネリングするステップと
    を含むことを特徴とする方法。
  2. 前記送信側ノードが、前記複数の通信経路のうちの1つの通信経路における接続状態の変化を示すプラグアンドプレイイベントを検出するステップと、
    前記プラグアンドプレイイベントに基づいて、前記複数の通信経路のうちの前記1つの通信経路が動作可能であるか否かを示すステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  3. ルート指定可能ハートビートパケットを前記複数の通信経路のうちの1つの通信経路を介して送信するステップと、
    前記ルート指定可能ハートビートパケットに対するレスポンスをモニタリングするステップと、
    前記レスポンスのモニタリングに基づいて、前記複数の通信経路のうちの前記1つの通信経路がエンドツーエンド間で動作可能であるか否かを示すステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記アドレスは、インターネットプロトコルバージョン4のアドレス、またはインターネットプロトコルバージョン6のアドレスであることを特徴とする請求項1に記載の方法。
  5. 前記データパケットは、伝送制御プロトコルのパケット、またはユーザデータグラムプロトコルのパケットであることを特徴とする請求項1に記載の方法。
  6. 前記アドレスは、前記送信側ノードの前記第のプロトコルドライバに関連付けられた仮想アドレスであることを特徴とする請求項1に記載の方法。
  7. 前記第1の選択経路の障害を検出するステップと、
    前記フォールトトレラント通信ドライバが、前記複数の通信経路の中から、エンドツーエンド間で動作可能第2の選択経路を選択するステップであって、前記第2の選択経路は、前記複数のNICのうち第3のプロトコルドライバに結合された第2のNICドライバによって制御される第2のNICに結合されており、前記第3のプロトコルドライバは、第3のルート指定可能なトランスポートプロトコルをサポートし、前記フォールトトレラント通信ドライバに結合されている、ステップと、
    前記フォールトトレラント通信ドライバが、前記データパケットを、前記第2の選択経路に従って前記第3のプロトコルドライバに提供し、前記第3のルート指定可能なトランスポートプロトコルを使用して、前記第2のNICを介して前記第2の選択経路により前記受信側ノードにトンネリングするステップと
    をさらに含むことを特徴とする請求項に記載の方法。
  8. 前記第1の選択経路は、前記データパケットに含まれる物理的な宛先アドレスであって、前記送信側ノードの前記第のプロトコルドライバに関連付けられた物理的な宛先アドレスに基づいて選択されことを特徴とする請求項1に記載の方法。
  9. フォールトトレラントネットワーク通信を用いて複数のノード間にアプリケーションを提供するための方法であって、
    前記複数のノードを結合している複数のネットワーク上の複数の通信経路を提供するステップであって、前記複数のネットワークの各々は、該複数のネットワーク内の他のネットワークと独立に動作可能であり、前記複数の通信経路の各々は、該複数の通信経路のうちの他の通信経路とは別個の経路である、ステップと、
    前記複数のノードのうちの1つである受信側ノードにおいて動作している複数のプロトコルドライバのうち、第1のルート指定可能なトランスポートプロトコルをサポートする第1のプロトコルドライバが前記複数のノードのうちの1つである送信側ノードから送信された、前記受信側ノードで動作る前記アプリケーション宛てのデータパケットを受信するステップと
    前記第1のプロトコルドライバにおいて受信した前記データパケットが、前記送信側ノードによって前記複数の通信経路のうちの第1の選択経路を介して前記第1のルート指定可能なトランスポートプロトコルを使用してトンネリングされた判定するステップであって、前記受信側ノードは、前記複数の通信経路のうちの異なる1つの通信経路に各々が結合された複数のネットワークインターフェースカード(NIC)を含み、前記第1の選択経路は、前記複数のNICのうち、前記第1のプロトコルドライバに接続された第1のNICドライバによって制御される第1のNICに結合されている、ステップと、
    前記判定に応答して、前記第1のプロトコルドライバが、前記データパケットを前記受信側ノードにおいて動作するフォールトトレラント通信ドライバに転送するステップと
    前記フォールトトレラント通信ドライバが、前記データパケットを、前記複数のプロトコルドライバのうち、第2のルート指定可能なトランスポートプロトコルをサポートする第2のプロトコルドライバに提供するステップであって、前記第2のプロトコルドライバは、前記フォールトトレラント通信ドライバおよび前記アプリケーションに結合されている、ステップと
    を含ことを特徴とする方法。
  10. 前記複数の通信経路のうちの1つの通信経路を介して、前記受信側ノードがルート指定可能ハートビートパケットを受信するステップと、
    前記ルート指定可能ハートビートパケットに対するレスポンスで応答して、前記複数の通信経路のうちの前記1つの通信経路のエンドツーエンド間の動作可能ステータスを示すステップと
    をさらに含むことを特徴とする請求項に記載の方法。
  11. 複数のノード間のフォールトトレラントネットワーク通信でアプリケーションを提供するためのシステムであって、
    前記複数のノードの1つである第1のノードと、
    第1のネットワークスタックに結合され、前記第1のノードにおいて動作する、第1のフォールトトレラント通信ドライバ
    を備え、
    前記第1のフォールトトレラント通信ドライバは、前記複数のノードを結合している複数のネットワーク上の複数の通信経路を介して、前記複数のノードのうちの第2のノードにおいて動作する第2のフォールトトレラント通信ドライバと結合され前記複数のネットワークの各々は、該複数のネットワーク内の他のネットワークと独立に動作可能であり、前記複数の通信経路の各々は、該複数の通信経路のうちの他の通信経路とは別個の経路であり、
    前記第1のノードは、前記複数の通信経路のうちの異なる1つの通信経路に各々が結合されている複数のネットワークインターフェースカード(NIC)を含み、前記複数のNICのうちの第1のNICは、第1のルート指定可能なトランスポートプロトコルをサポートする第1のプロトコルドライバに結合された第1のNICドライバによって制御され、
    前記第1のフォールトトレラント通信ドライバは、前記第1のNICを制御する前記第1のNICドライバに結合された前記第1のプロトコルドライバと、前記第1のノードで動作する前記アプリケーションに結合された第2のプロトコルドライバであって、第2のルート指定可能なトランスポートプロトコルをサポートする第2のプロトコルドライバに結合されており、前記第2のプロトコルドライバを介して前記アプリケーションから、前記アプリケーションによって前記第2のノードのアドレスにアドレス指定されたデータパケットを受信すると、前記複数の通信経路の中から前記第1のNICに結合された第1の選択経路を選択し、該選択した第1の選択経路に従って、前記データパケットを前記第1のプロトコルドライバに提供することにより、前記第1のルート指定可能なトランスポートプロトコルを使用して、前記第1の選択経路に結合された前記第1のNICにより前記データパケットを前記第2のノードにトンネリングすることを特徴とするシステム。
  12. 前記第1のフォールトトレラント通信ドライバは、
    前記複数の通信経路の各々について、
    通信経路と、前記通信経路における前記第2のノードの物理アドレスと、前記複数の通信経路におけるネットワークトラフィックのロードバランシングにより決定された、前記通信経路に対する優先度情報とが対応付けられたエントリ、および
    前記第1のノードから前記第2のノードへの前記通信経路のエンドツーエンド間の動作可能ステータスを示す指示
    を含むルーティングデータベースをさらに備え、前記優先度情報に基づいて前記複数の通信経路の中から前記第1の選択経路を選択することを特徴とする請求項11に記載のシステム。
JP2008531252A 2005-09-12 2006-09-11 ルート指定されたネットワークにおけるフォールトトレラント通信 Active JP4794629B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71612205P 2005-09-12 2005-09-12
US60/716,122 2005-09-12
US11/275,185 US7821930B2 (en) 2005-09-12 2005-12-16 Fault-tolerant communications in routed networks
US11/275,185 2005-12-16
PCT/US2006/035497 WO2007033179A2 (en) 2005-09-12 2006-09-11 Fault-tolerant communications in routed networks

Publications (3)

Publication Number Publication Date
JP2009508443A JP2009508443A (ja) 2009-02-26
JP2009508443A5 JP2009508443A5 (ja) 2009-11-05
JP4794629B2 true JP4794629B2 (ja) 2011-10-19

Family

ID=37854967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008531252A Active JP4794629B2 (ja) 2005-09-12 2006-09-11 ルート指定されたネットワークにおけるフォールトトレラント通信

Country Status (12)

Country Link
US (7) US7821930B2 (ja)
EP (1) EP1932289A4 (ja)
JP (1) JP4794629B2 (ja)
KR (1) KR20080055805A (ja)
CN (1) CN101263686B (ja)
AU (1) AU2006291046B2 (ja)
BR (1) BRPI0615816A2 (ja)
CA (1) CA2618227A1 (ja)
MX (1) MX2008003407A (ja)
NO (1) NO20080708L (ja)
RU (1) RU2420897C2 (ja)
WO (1) WO2007033179A2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7821930B2 (en) * 2005-09-12 2010-10-26 Microsoft Corporation Fault-tolerant communications in routed networks
US8467390B2 (en) * 2006-12-14 2013-06-18 Oracle America, Inc. Method and system for network stack tuning
US20090073990A1 (en) * 2007-09-14 2009-03-19 Hewlett-Packard Development Company, L.P. Method of replacing a router in a layer 3 network
US20110040911A1 (en) * 2009-08-13 2011-02-17 Anil Vasudevan Dual interface coherent and non-coherent network interface controller architecture
EP2578061B1 (en) 2010-06-02 2015-02-25 Koninklijke Philips N.V. Method for controlling a lighting system, and lighting system
EP2426858B1 (en) * 2010-09-01 2012-10-31 Alcatel Lucent Method and apparatus for restoring a connection through a provider network upon request
US20130028257A1 (en) * 2011-07-27 2013-01-31 Raytheon Company Message Gateway and Methods for Using the Same
RU2460123C1 (ru) * 2011-08-09 2012-08-27 Федеральное государственное военное образовательное учреждение высшего профессионального образования "Военная академия связи имени маршала Советского Союза С.М. Буденного" Министерства Обороны Российской Федерации (Минобороны России) Способ сравнительной оценки структур сетей связи
CN102291311B (zh) * 2011-08-30 2017-03-29 中兴通讯股份有限公司 以太网接口保护方法及网络侧设备
JP6035726B2 (ja) * 2011-11-02 2016-11-30 富士通株式会社 接続制御装置、ストレージシステム及び接続制御装置の制御方法
KR101594059B1 (ko) * 2011-12-08 2016-02-26 퀄컴 테크놀로지스, 인크. 정상 데이터 송신과 재시도 데이터 송신 사이에서의 차동 포매팅
CN102447632A (zh) * 2011-12-30 2012-05-09 四川川大智胜软件股份有限公司 一种具有数据容错能力的网络传输方法
WO2014144182A2 (en) * 2013-03-15 2014-09-18 Terascala, Inc. A data transfer method and apparatus
US20160050104A1 (en) * 2013-03-15 2016-02-18 Hewlett-Packard Development Company, L.P. Network device architecture adjustments
WO2014182475A1 (en) * 2013-05-07 2014-11-13 Bally Gaming, Inc. System, apparatus and method for dynamically adjusting a video presentation based upon age
US9948545B2 (en) * 2013-06-13 2018-04-17 Tsx Inc. Apparatus and method for failover of device interconnect using remote memory access with segmented queue
CN104919858B (zh) * 2013-12-10 2019-10-18 华为技术有限公司 一种运营商共享网络中的故障处理方法及装置
CN104980348A (zh) 2014-04-04 2015-10-14 中兴通讯股份有限公司 业务链路由方法及系统、及系统中的设备
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
JP2018538645A (ja) 2015-11-02 2018-12-27 ラピッドエスオーエス,インク. 緊急対応のための状況意識のための方法およびシステム
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
JP6919978B2 (ja) 2016-04-26 2021-08-18 ラピッドエスオーエス,インク. 緊急通信用のシステムおよび方法
WO2017196753A1 (en) 2016-05-09 2017-11-16 Rapidsos, Inc. Systems and methods for emergency communications
US10841206B2 (en) * 2016-05-31 2020-11-17 128 Technology, Inc. Flow modification including shared context
US10861320B2 (en) 2016-08-22 2020-12-08 Rapidsos, Inc. Predictive analytics for emergency detection and response management
US10715350B2 (en) 2016-09-19 2020-07-14 Simmonds Precision Products, Inc. Automatic addressing of networked nodes
US10425511B2 (en) * 2017-01-30 2019-09-24 128 Technology, Inc. Method and apparatus for managing routing disruptions in a computer network
US10362631B2 (en) * 2017-04-03 2019-07-23 Level 3 Communications, Llc Last resource disaster routing in a telecommunications network
JP2018181170A (ja) * 2017-04-20 2018-11-15 富士通株式会社 情報処理装置、情報処理システムおよびプログラム
WO2018200418A1 (en) 2017-04-24 2018-11-01 Rapidsos, Inc. Modular emergency communication flow management system
EP3721402A4 (en) 2017-12-05 2021-08-04 Rapidsos Inc. EMERGENCY MANAGEMENT SOCIAL MEDIA CONTENT
US10924331B2 (en) * 2018-01-05 2021-02-16 WeRide Corp. Controller area network communication system
US10820181B2 (en) 2018-02-09 2020-10-27 Rapidsos, Inc. Emergency location analysis system
WO2019204228A1 (en) 2018-04-16 2019-10-24 Rapidsos, Inc. Emergency data management and access system
WO2019241161A1 (en) 2018-06-11 2019-12-19 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
US10977927B2 (en) 2018-10-24 2021-04-13 Rapidsos, Inc. Emergency communication flow management and notification system
WO2020172612A1 (en) 2019-02-22 2020-08-27 Rapidsos, Inc. Systems & methods for automated emergency response
US11146680B2 (en) 2019-03-29 2021-10-12 Rapidsos, Inc. Systems and methods for emergency data integration
AU2020254292A1 (en) 2019-03-29 2021-11-04 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
JP7339037B2 (ja) * 2019-07-10 2023-09-05 ファナック株式会社 制御装置、診断方法及び診断プログラム
CN110336744B (zh) * 2019-08-09 2021-05-04 合肥工业大学 一种无线片上网络中区域故障感知的容错路由方法
RU2720553C1 (ru) * 2019-10-18 2020-05-12 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Способ организации системной сети в виде отказоустойчивого неблокируемого трехмерного разреженного р-ичного гиперкуба
US11330664B1 (en) 2020-12-31 2022-05-10 Rapidsos, Inc. Apparatus and method for obtaining emergency data and providing a map view

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252662A (ja) * 1998-03-03 1999-09-17 Fujitsu Ltd 通信装置,通信手段選択方法及びコンピュータ可読媒体
JPH11355322A (ja) * 1998-05-12 1999-12-24 Nokia Mobile Phones Ltd 無線端末装置をデ―タ伝送ネットワ―クと結合する方法及び無線端末装置
JP2003008581A (ja) * 2001-06-26 2003-01-10 Yokogawa Electric Corp 通信制御装置
JP2003234749A (ja) * 2001-12-03 2003-08-22 Oki Electric Ind Co Ltd Lan間の通信ルート切替方法、ルート切替プログラム、ゲートウェイ及び端末
JP2003333080A (ja) * 2002-03-29 2003-11-21 Fujitsu Ltd リンク方式間の移行方法及びモバイル・コンピューティング装置
JP2003348134A (ja) * 2002-05-28 2003-12-05 Nec Soft Ltd 通信経路選択システム
US20040008717A1 (en) * 2002-07-12 2004-01-15 Baypackets, Inc. Fault tolerant correlation engine method and system for telecommunications networks
JP2005057472A (ja) * 2003-08-04 2005-03-03 Nippon Telegr & Teleph Corp <Ntt> 通信方法及びシステム
JP2005327186A (ja) * 2004-05-17 2005-11-24 Nec Corp コンピュータシステムの複数経路情報管理方法及び装置

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774640A (en) * 1991-10-21 1998-06-30 Tandem Computers Incorporated Method and apparatus for providing a fault tolerant network interface controller
US20040264402A9 (en) * 1995-06-01 2004-12-30 Padcom. Inc. Port routing functionality
US6314525B1 (en) * 1997-05-13 2001-11-06 3Com Corporation Means for allowing two or more network interface controller cards to appear as one card to an operating system
US6647508B2 (en) * 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
CA2318926A1 (en) * 1998-01-22 1999-07-29 Intelogis, Inc. Method and apparatus for universal data exchange gateway
US6988274B2 (en) 1998-06-12 2006-01-17 Microsoft Corporation Method, system, and computer program product for representing and connecting an underlying connection-oriented device in a known format
US6272113B1 (en) * 1998-09-11 2001-08-07 Compaq Computer Corporation Network controller system that uses multicast heartbeat packets
US6130890A (en) * 1998-09-11 2000-10-10 Digital Island, Inc. Method and system for optimizing routing of data packets
US6308282B1 (en) 1998-11-10 2001-10-23 Honeywell International Inc. Apparatus and methods for providing fault tolerance of networks and network interface cards
US6567377B1 (en) * 1999-03-18 2003-05-20 3Com Corporation High performance load balancing of outbound internet protocol traffic over multiple network interface cards
US6392990B1 (en) * 1999-07-23 2002-05-21 Glenayre Electronics, Inc. Method for implementing interface redundancy in a computer network
US6874147B1 (en) * 1999-11-18 2005-03-29 Intel Corporation Apparatus and method for networking driver protocol enhancement
WO2001063850A1 (en) * 2000-02-25 2001-08-30 Honeywell International Inc. Multiple network fault tolerance via redundant network control
US7000012B2 (en) * 2000-04-24 2006-02-14 Microsoft Corporation Systems and methods for uniquely identifying networks by correlating each network name with the application programming interfaces of transport protocols supported by the network
US6728780B1 (en) * 2000-06-02 2004-04-27 Sun Microsystems, Inc. High availability networking with warm standby interface failover
US6609213B1 (en) * 2000-08-10 2003-08-19 Dell Products, L.P. Cluster-based system and method of recovery from server failures
EP1334587A1 (en) * 2000-08-31 2003-08-13 Padcom Inc. Method and apparatus for routing data over multiple wireless networks
US7386610B1 (en) * 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6665812B1 (en) * 2000-12-22 2003-12-16 Emc Corporation Storage array network backup configuration
US20040213220A1 (en) * 2000-12-28 2004-10-28 Davis Arlin R. Method and device for LAN emulation over infiniband fabrics
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US6672167B2 (en) * 2001-04-23 2004-01-06 The Aerospace Corporation Method and system for processing laser vibrometry data employing bayesian statistical processing techniques
US7581048B1 (en) * 2001-06-29 2009-08-25 Emc Corporation Method and apparatus for providing continuous communication between computers
US7020796B1 (en) * 2001-07-27 2006-03-28 Ciena Corporation High availability communication system
US20040078625A1 (en) 2002-01-24 2004-04-22 Avici Systems, Inc. System and method for fault tolerant data communication
JP2004031287A (ja) * 2002-06-28 2004-01-29 Pioneer Electronic Corp プラズマディスプレイパネル
US20040062195A1 (en) 2002-09-30 2004-04-01 Intel Corporation Algorithm for dynamic provisioning of fail-over support in generalized multi-protocol label switching enabled networks
US7191235B1 (en) * 2002-11-26 2007-03-13 Cisco Technology, Inc. System and method for communicating data in a loadbalancing environment
CN1813454B (zh) * 2003-04-28 2012-09-05 钱特利网络公司 无线通信网络上的移动单元会话管理的系统和方法
US7861002B2 (en) * 2003-05-22 2010-12-28 Adtran, Inc. Network router that efficiently switches between a primary data path and a backup data path
US7990849B2 (en) * 2004-06-17 2011-08-02 Hewlett-Packard Development Company, L.P. Automated recovery from a split segment condition in a layer2 network for teamed network resources of a computer system
US9491084B2 (en) * 2004-06-17 2016-11-08 Hewlett Packard Enterprise Development Lp Monitoring path connectivity between teamed network resources of a computer system and a core network
US7724657B2 (en) * 2004-07-23 2010-05-25 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol
JP4148931B2 (ja) 2004-08-16 2008-09-10 富士通株式会社 ネットワークシステム、監視サーバ及び監視サーバプログラム
US7668962B2 (en) 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
US7872965B2 (en) * 2005-08-01 2011-01-18 Hewlett-Packard Development Company, L.P. Network resource teaming providing resource redundancy and transmit/receive load-balancing through a plurality of redundant port trunks
US8036105B2 (en) * 2005-08-08 2011-10-11 International Business Machines Corporation Monitoring a problem condition in a communications system
US7821930B2 (en) 2005-09-12 2010-10-26 Microsoft Corporation Fault-tolerant communications in routed networks

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252662A (ja) * 1998-03-03 1999-09-17 Fujitsu Ltd 通信装置,通信手段選択方法及びコンピュータ可読媒体
JPH11355322A (ja) * 1998-05-12 1999-12-24 Nokia Mobile Phones Ltd 無線端末装置をデ―タ伝送ネットワ―クと結合する方法及び無線端末装置
JP2003008581A (ja) * 2001-06-26 2003-01-10 Yokogawa Electric Corp 通信制御装置
JP2003234749A (ja) * 2001-12-03 2003-08-22 Oki Electric Ind Co Ltd Lan間の通信ルート切替方法、ルート切替プログラム、ゲートウェイ及び端末
JP2003333080A (ja) * 2002-03-29 2003-11-21 Fujitsu Ltd リンク方式間の移行方法及びモバイル・コンピューティング装置
JP2003348134A (ja) * 2002-05-28 2003-12-05 Nec Soft Ltd 通信経路選択システム
US20040008717A1 (en) * 2002-07-12 2004-01-15 Baypackets, Inc. Fault tolerant correlation engine method and system for telecommunications networks
JP2005057472A (ja) * 2003-08-04 2005-03-03 Nippon Telegr & Teleph Corp <Ntt> 通信方法及びシステム
JP2005327186A (ja) * 2004-05-17 2005-11-24 Nec Corp コンピュータシステムの複数経路情報管理方法及び装置

Also Published As

Publication number Publication date
US8169894B2 (en) 2012-05-01
NO20080708L (no) 2008-04-14
RU2008109226A (ru) 2009-10-10
CA2618227A1 (en) 2007-03-22
BRPI0615816A2 (pt) 2011-05-24
EP1932289A4 (en) 2013-04-10
RU2420897C2 (ru) 2011-06-10
US20110004782A1 (en) 2011-01-06
CN101263686A (zh) 2008-09-10
US20160142289A1 (en) 2016-05-19
US9253293B2 (en) 2016-02-02
CN101263686B (zh) 2014-11-12
EP1932289A2 (en) 2008-06-18
WO2007033179A2 (en) 2007-03-22
AU2006291046A1 (en) 2007-03-22
US20070058528A1 (en) 2007-03-15
WO2007033179A3 (en) 2007-05-18
MX2008003407A (es) 2008-03-27
KR20080055805A (ko) 2008-06-19
US7821930B2 (en) 2010-10-26
US20120272093A1 (en) 2012-10-25
US20150113165A1 (en) 2015-04-23
US8369208B2 (en) 2013-02-05
JP2009508443A (ja) 2009-02-26
US8958325B2 (en) 2015-02-17
US20120272092A1 (en) 2012-10-25
US20110004783A1 (en) 2011-01-06
AU2006291046B2 (en) 2010-03-04

Similar Documents

Publication Publication Date Title
JP4794629B2 (ja) ルート指定されたネットワークにおけるフォールトトレラント通信
US5923854A (en) Virtual internet protocol (IP) addressing
US7969989B2 (en) High performance ethernet networking utilizing existing fibre channel arbitrated loop HBA technology
US8493839B2 (en) Method and system of teamed network adapters with offloaded connections
US7792148B2 (en) Virtual fibre channel over Ethernet switch
US7693045B2 (en) Verifying network connectivity
US7864666B2 (en) Communication control apparatus, method and program thereof
US20070070975A1 (en) Storage system and storage device
JP2006129446A (ja) フォールト・トレラント・ネットワーク・アーキテクチャ
US20020120706A1 (en) Method for determining master or slave mode in storage server subnet
JP2008228150A (ja) スイッチ装置及びフレーム交換方法とそのプログラム
JP2005167435A (ja) Vrの機密性を維持したvrrp技術
US7363382B1 (en) Apparatus, methods, and articles incorporating multiple path failover driver mechanism
US6859459B1 (en) High-speed/high-reliability ether transmission system and I/F apparatus
Cisco Router Products Release Notes for Cisco IOS Release 10.2
JP2009130405A (ja) 受信装置及び通信システム
US7433952B1 (en) System and method for interconnecting a storage area network
JP2002271371A (ja) ネットワークサーバおよびその制御方法
JP5170000B2 (ja) 冗長化ペア検出方法、通信装置、冗長化ペア検出プログラム、記録媒体
JP2005012599A (ja) ネットワーク構成制御システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090911

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110601

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110726

R150 Certificate of patent or registration of utility model

Ref document number: 4794629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

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