JP5981533B2 - アクティブtcpアプリケーションからスタンバイtcpアプリケーションへのヒットレススイッチオーバ - Google Patents

アクティブtcpアプリケーションからスタンバイtcpアプリケーションへのヒットレススイッチオーバ Download PDF

Info

Publication number
JP5981533B2
JP5981533B2 JP2014509862A JP2014509862A JP5981533B2 JP 5981533 B2 JP5981533 B2 JP 5981533B2 JP 2014509862 A JP2014509862 A JP 2014509862A JP 2014509862 A JP2014509862 A JP 2014509862A JP 5981533 B2 JP5981533 B2 JP 5981533B2
Authority
JP
Japan
Prior art keywords
app
active
module
standby
tcp
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.)
Expired - Fee Related
Application number
JP2014509862A
Other languages
English (en)
Other versions
JP2014519737A (ja
Inventor
ハイツ、ジェイコブ
Original Assignee
テレフオンアクチーボラゲット エルエム エリクソン(パブル)
テレフオンアクチーボラゲット エルエム エリクソン(パブル)
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 テレフオンアクチーボラゲット エルエム エリクソン(パブル), テレフオンアクチーボラゲット エルエム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エルエム エリクソン(パブル)
Publication of JP2014519737A publication Critical patent/JP2014519737A/ja
Application granted granted Critical
Publication of JP5981533B2 publication Critical patent/JP5981533B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/583Stackable routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/033Topology update or discovery by updating distance vector 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Hardware Redundancy (AREA)

Description

本発明の実施形態は、一般に、ネットワークエレメント内のアクティブスタンバイシステムの分野に関し、特に、ネットワークエレメント内のアクティブスタンバイシステムにおけるヒットレススイッチオーバに関する。
TCP(Transmission Control Protocol)は、IETF(Internet Engineering Task Force)のRFC(Request for Comments)793、“DARPA Internet Program Protocol Specification”(1981年9月)、及びIETFのRFC1122、“Requirements for Internet Host − Communication Layers”(1989年10月)などの種々の文献において説明される信頼できる伝送プロトコルである。コンピュータ上のアプリケーションプログラムは、TCPを用いて、リモートコンピュータ上に位置する別のアプリケーションプログラムへデータを送信し及び受信する。TCPは、インターネットプロトコル(IP)を用いて、データをその宛先へパケットで送信する。IPは、パケットをIP自身の選択によるパスに沿って正確な宛先へ伝達する(deliver)であろう。IPは、少数のパケットを伝達し損ねることがあり、又は、IPは、少数のパケットを当該パケットが送信された順序とは異なる順序で伝達することがある。TCPは、当該TCPが送信するデータの各バイトにシーケンス番号を割り当てる。受信側TCPは、シーケンス番号を用いて受信データを並べ替えて、当該データを送信された順序と同じ順序で受信側のコンピュータ上のアプリケーションプログラムに伝達することができる。受信側TCPは、欠損データを検出し及び送信側TCPに当該データを再送信させるためにもシーケンス番号を用いる。TCP受信機がデータを受信すると、当該TCP受信機は、TCP送信機に確認応答を時折送信するであろう。確認応答は、シーケンス番号を含む。これは、確認応答が送信されたシーケンス番号までのシーケンス番号が付いたデータ全てを受信機が成功裏に受信したことを示す。TCP受信機は、そのアプリケーションプロセスへ受信データを伝達するであろう。確認応答の受信に応じて、TCP送信機は、その再送信リストから確認応答されたデータを除去するであろう。再送信リストは、TCP送信機上の、送信されたデータについての一時的なストレージである。アプリケーションプロセスがTCPにデータを送信するように要求すると、送信側TCPは、その再送信リストに当該データを同時に入れる。時々、種々のRFCにおいて仕様化されているように、TCP送信機が送信データについての確認応答を受信しない場合、当該TCP送信機は、再送信リスト上のデータを再送信するであろう。このようにして、IPが何らかのデータを失っても、TCPが当該データを復元することができる。
コンピュータアプリケーションプログラムの高い信頼性を達成するための1つの手法は、アクティブスタンバイ方法を用いることである。単一のスタンバイ/アクティブコンピュータシステムは、2つの完全に機能的な(fully functional)コンピュータを用いて構築されることができる。一方の機能的なコンピュータは、アクティブコンピュータと呼ばれ、他方は、スタンバイコンピュータと呼ばれる。アクティブコンピュータは、通常通り機能し、スタンバイコンピュータは、アクティブコンピュータが障害を起こした時及び場合に動作をテイクオーバするために待機する。スタンバイがテイクオーバする際のアクティビティは、スイッチオーバと呼ばれる。スイッチオーバ時に、スタンバイコンピュータは、アクティブコンピュータとなる。以前のアクティブコンピュータは、スタンバイ/アクティブコンピュータシステムにおいてもはや機能していない。以前のアクティブコンピュータは、その後、例えば、修復後又はリセット後にスタンバイ/アクティブコンピュータシステムに再び加わり得る。以前のアクティブコンピュータは、アクティブコンピュータの役割を取戻し又はスタンバイコンピュータの役割をテイクオーバして、スタンバイ/アクティブコンピュータシステムに再び加わり得る。
スタンバイコンピュータが中断を引き起こすことなくスイッチオーバすることができる場合、当該スイッチオーバは、ヒットレス(hitless)スイッチオーバと呼ばれる。この場合において、スタンバイ/アクティブコンピュータシステムとインタラクションする他のコンピュータシステムは、この冗長なコンピュータシステムを単一のコンピュータと見なし、及び障害又はスイッチオーバイベントを検出しない。そのため、障害は、スタンバイ/アクティブコンピュータと他のコンピュータとのインタラクションに影響を及ぼすことなく修復されることができる。スイッチオーバをヒットレスとするために、スタンバイコンピュータは、アクティブコンピュータと通信して当該アクティブコンピュータの進行を追跡し、及び全ての必要不可欠なデータを当該データがアクティブコンピュータ上で作成された状態で保存しなければならない。
障害の時点で、スタンバイコンピュータは、アクティブコンピュータからの全てのデータを有していないことがあり得る。全てのデータがアクティブコンピュータからスタンバイコンピュータへ送信され得る前に、アクティブコンピュータとスタンバイコンピュータとの間の通信に障害が起きていたことがあり得るからである。この場合において、スタンバイコンピュータは、スイッチオーバをヒットレスとするために、失われたデータを復元しなければならない。
ヒットレススイッチオーバを達成するためのTCPプロセスについての方法が存在する。しかしながら、それらの方法は、TCPを用いるアプリケーションプロセスを無視する。ある方法は、リモートTCPピアへ確認応答を送信する前に、インカミングTCPデータをアクティブTCPプロセスからスタンバイTCPプロセスへ送信するであろう。アクティブTCPは、受信データをアクティブアプリケーションへ渡すであろう。次いで、当該アプリケーションは、受信データを処理し及び場合により何らかの更新状態をそのスタンバイアプリケーションへ送って、当該更新状態に同期させるであろう。スタンバイアプリケーションは、同じデータをスタンバイTCPからも受信し、及び当該アプリケーション自体の状態も更新するであろう。アプリケーションプロセスは、典型的に、TCP接続以外のソースから来る入力を処理している。既存の解決策では、他の入力及びTCP入力の処理をアクティブコンピュータとスタンバイコンピュータとの間で同期させることは、複雑であり且つ誤りが発生しやすい。
TCP出力データに関して、既存の解決策において、アクティブTCPは、アウトゴーイングデータをリモートTCPピアに送出する前にスタンバイTCPへ送信するであろう。これにより、スタンバイTCPは、スイッチオーバ及び障害が起きた送信の場合にアウトゴーイングデータを再送信することが可能になる。しかしながら、アクティブアプリケーションがスイッチオーバ時に何を送信し及び何を送信していないのかをスタンバイアプリケーションが正確に知得することは、複雑であり且つ誤りが発生しやすい。幾つかのアプリケーションは、アプリケーションの中断を引き起こすことなくアプリケーションレベルでアウトゴーイングデータを再送信することが可能である。FTP(file transfer protocol)又はエコーサーバなどの幾つかは、アプリケーションに中断を引き起こすことなく、成功裏に送信されたアプリケーションデータを再送信することができない。アプリケーションがスイッチオーバ時に幾らかのデータを再送信することができる場合でも、どれくらいのデータを安全に再送信できるかを当該アプリケーションが知得することは困難である。
それ故に、スタンバイアプリケーションがアクティブアプリケーション及びインカミング/アウトゴーイングTCP送信のステータスをより正確に追跡することを可能にすることによって、TCPとアプリケーションプログラムとがヒットレススイッチオーバを簡略化する手法でインタラクションするためのメカニズムを提供することが望ましい。
本発明の実施形態は、アクティブ制御カードとスタンバイ制御カードとの間のアクティブスタンバイ関係を維持するための、ネットワークエレメントにおいて実行される方法を含む。ネットワークエレメントは、リモートネットワークエレメントからデータパケットをアクティブ制御カード内のアクティブ送信制御プロトコル(「TCP」)モジュールにおいて受信する。ネットワークエレメントは、データパケットの少なくとも一部をアクティブTCPモジュールからアクティブ制御カード内のアクティブアプリケーション(「APP」)モジュールへ通信する。ネットワークエレメントは、データパケットの少なくとも一部を受信することに応じて、APP同期(「SYNC」)メッセージをアクティブAPPモジュールからスタンバイ制御カード上のスタンバイAPPモジュールへ通信する。ネットワークエレメントは、APP SYNC確認応答(「ACK」)メッセージをスタンバイAPPモジュールからアクティブAPPモジュールへ通信し、当該APP SYNC ACKメッセージは、APP SYNCメッセージの成功裏の伝達を示す。ネットワークエレメントは、APP SYNC ACKメッセージを受信することに応じて、APP ACKメッセージをアクティブAPPモジュールからアクティブTCPモジュールへ通信する。ネットワークエレメントは、APP ACKメッセージを受信することに応じて、データACKメッセージをアクティブTCPモジュールからリモートネットワークエレメントへ通信し、当該データACKメッセージは、データパケットの成功裏の伝達を示す。
本発明の実施形態は、第2の制御カードに結合されるべき第1の制御カードを含み、当該第1の制御カードは、当該第2の制御カードとのアクティブスタンバイ関係においてアクティブ制御カードとして機能する。第1の制御カードは、1つ以上のラインカードに結合されるべきアクティブトランスポート制御プロトコル(「TCP」)モジュールを含む。アクティブTCPモジュールは、データパケットをリモートネットワークエレメントから受信し、データパケットの少なくとも一部をアクティブアプリケーション(「APP」)モジュールへ通信し、APP確認応答(「ACK」)メッセージを受信し、及び、APP ACKメッセージを受信することに応じて、データACKメッセージをリモートネットワークエレメントへ通信するように構成される。アクティブAPPモジュールは、アクティブTCPモジュールに結合され及び第2の制御カード上のスタンバイAPPモジュールにさらに結合されるべきである。アクティブAPPモジュールは、データパケットの上記少なくとも一部をアクティブTCPモジュールから受信し、APP同期(「SYNC」)メッセージをスタンバイAPPモジュールへ通信し、APP SYNC ACKメッセージをスタンバイAPPモジュールから受信し、及び、APP SYNC ACKメッセージを受信することに応じて、APP ACKメッセージをアクティブTCPモジュールへ通信するように構成される。
本発明の実施形態は、障害の発生時にヒットレススイッチオーバを実行するためのネットワークエレメントを含む。ネットワークエレメントは、ネットワークに結合されるべき複数のラインカードと、当該複数のラインカードに結合される第1の制御カードと、当該複数のラインカードに結合される第2の制御カードと、を備える。第1の制御カードは、アクティブスタンバイ関係においてアクティブ制御カードとして機能すべきものである。第1の制御カードは、リモートネットワークエレメントからデータパケットを複数のラインカードのうちの1つを通じて受信し、データパケットの少なくとも一部をアクティブアプリケーション(「APP」)モジュールへ通信し、APP確認応答(「ACK」)メッセージを受信し、及び、APP ACKメッセージを受信することに応じて、データACKメッセージを複数のラインカードのうちの1つを通じてリモートネットワークエレメントへ通信する、ように構成される、アクティブ送信制御プロトコル(「TCP」)モジュールを含む。第1の制御カードは、アクティブTCPモジュールに結合され及び第2の制御カード上のスタンバイAPPモジュールにさらに結合されるべきアクティブAPPモジュールをさらに含む。アクティブAPPモジュールは、データパケットの少なくとも一部をアクティブTCPモジュールから受信し、APP同期(「SYNC」)メッセージをスタンバイAPPモジュールへ通信し、APP SYNC ACKメッセージをスタンバイAPPモジュールから受信し、及び、APP SYNC ACKメッセージを受信することに応じて、APP ACKメッセージをアクティブTCPモジュールへ通信する、ように構成される。第2の制御カードは、複数のラインカード及び第1の制御カードに結合される。第2の制御カードは、第1の制御カードとのアクティブスタンバイ関係においてスタンバイ制御カードとして機能すべきものである。第2の制御カードは、スタンバイAPPモジュールに結合されるべきスタンバイTCPモジュールを含む。スタンバイTCPモジュールは、複数のラインカードと通信し、及び、スタンバイAPPモジュールと通信するように構成される。スタンバイアプリケーションモジュールは、APP SYNCメッセージをアクティブAPPモジュールから受信し、APP SYNCメッセージの受信を示すためのAPP SYNC ACKメッセージをアクティブAPPモジュールへ送るように構成される。
本発明は、同様の番号が同様の要素を示す添付の図面における図において、限定としてではなく、例として例示される。本開示における「ある(an)」又は「1つの(one)」実施形態への様々な言及は必ずしも同じ実施形態を指さず、そのような言及は少なくとも1つを意味することに留意すべきである。さらに、特定の特徴、構造、又は特性がある実施形態に関連して説明される場合、明示的に説明されるか否かを問わず、そのような特徴、構造、又は特性を他の実施形態との関連において実施をすることは当業者の知識の範囲内である。
本発明は、本発明の実施形態を例示するために用いられる添付の図面及び以下の説明を参照することによって最もよく理解され得る。図面において:
本発明の実施形態に係る、アクティブアプリケーションにおいて受信されるデータをスタンバイアプリケーションとの間で同期させるための方法を例示するフローチャートである。 本発明の実施形態に係る、アクティブアプリケーションからリモートピアへ送信されているデータをスタンバイアプリケーションとの間で同期させるための方法を例示するフローチャートである。 本発明の実施形態に係る、図1A及び図1Bのアクティブアプリケーションから図1A及び図1Bのスタンバイアプリケーションへのヒットレススイッチオーバを実行するための方法を例示するフローチャートである。 リモートネットワークエレメントにネットワークを介して結合される、ヒットレススイッチオーバを有するアクティブスタンバイAPP−TCPシステムを提供するためのアクティブスタンバイネットワークエレメントを例示するブロック図である。 本発明の実施形態に係る、リモートピアからネットワークエレメントにおいて受信されるデータについての確認応答及びメッセージのパスを例示するデータフロー図である。 本発明の実施形態に係る、ネットワークエレメントからリモートピアへ送信されるデータについての確認応答及びメッセージのパスを例示するデータフロー図である。
以下の説明は、スタンバイシステムがアクティブモードに移行する際にTCP接続のヒットレススイッチオーバを実行するアクティブ/スタンバイコンピュータシステムについての方法及び装置を説明する。以下の説明において、本発明のより完全な理解を提供するために、ロジック実装、対立する、オペランドを特定するための手段、リソース分割/共有/複製の実装、システムコンポーネントのタイプ及び相互関係、並びにロジック分割/統合の選択といった多くの具体的な詳細が述べられる。しかしながら、本発明はそのような具体的な詳細なしに実施をされ得ることが当業者によって認識されるであろう。他の例において、本発明を曖昧にしないために、制御構造、ゲートレベル回路及び完全なソフトウェア命令シーケンスは、詳細には示されていない。当業者であれば、包含される説明により、必要以上の実験なしに適当な機能性を実装することが可能であろう。
本明細書における「1つの実施形態」、「ある実施形態」、「例示的な実施形態」等への言及は、説明される実施形態が特定の特徴、構造、又は特性を含み得るが、必ずしも全ての実施形態が当該特定の特徴、構造、又は特性を含むとは限らないことを示す。また、そのような表現は、必ずしも同じ実施形態を指すとは限らない。さらに、特定の特徴、構造、又は特性がある実施形態に関連して説明される場合、明示的に説明されるか否かを問わず、そのような特徴、構造、又は特性を他の実施形態との関連において実施をすることは当業者の知識の範囲内である。
以下の説明及び特許請求の範囲において、「結合される(coupled)」及び「接続される(connected)」という用語がこれらの派生語と共に用いられ得る。これらの用語は互いに同義語として意図されないことが理解されるべきである。「結合される」は、互いに直接物理的に又は電気的に接触してもしなくてもよい2つ以上のエレメントが互いに協働し又はインタラクションすることを示すために用いられる。「接続される」は、互いに結合される2つ以上の要素間における通信の確立を示すために用いられる。
理解を容易にするために、図において破線が用いられて、あるアイテム(例えば、本発明の所与の実装によってサポートされない特徴;所与の実装によってサポートされるが、幾つかの状況において用いられ、他の状況においては用いられない特徴)の随意的な性質が示される。
本発明の実施形態は、アクティブ/スタンバイコンピュータシステム上でTCPを用い、及び計画された又は計画されていないスイッチオーバに応じてリモートピアとのTCP接続を維持するアプリケーションプログラムを開示する。計画されていないスイッチオーバは、アクティブコンピュータがクラッシュしたとき、又はさもなければ、アクティブコンピュータが機能することを停止し、スタンバイコンピュータがテイクオーバするときに発生する。アプリケーションプログラムは、TCPエンドポイントを用いてリモートTCPピアと通信している。スイッチオーバは予期外であるため、スタンバイコンピュータは、スイッチオーバに先立ってアクティブコンピュータが到達した正確な状態を知得することができない。アクティブアプリケーションプロセスは、通常動作の期間中、その状態をスタンバイアプリケーションプロセスと同期させ、それによって、スタンバイアプリケーションプロセスは、スイッチオーバ前の状態の大部分を知得することとなるが、当該状態の全ては知得しないかもしれない。
TCP接続を維持することに加えて、これは、アプリケーションに幾つかのTCPリモートピアからの入力及び他のソース(例えば、キーボード、マウス、タッチスクリーンからのユーザ入力;外部モニタ;CD−ROM、ハードディスクといったI/Oデバイス)からの入力を同期させ、並びにスタンバイアプリケーションがアクティブアプリケーションと同じ順序で当該入力を受信することができることを確実にする機会も提供する。幾つかのアプリケーションにおいて、複数の異なるソースからの入力の正確な順序は、異なる出力を生成する。
複数の異なるソースからの入力が異なる出力を生成する順序の一例は、以下の通りである。IETF RFC 4271、“A Border Gateway Protocol 4 (BGP-4)”(2006年1月)において説明されるようなボーダーゲートウェイプロトコル(BGP)アプリケーションが外部BGPピアからルートを受信すると仮定する。当該アプリケーションは、当該ルートをその内部BGPピア全てに再広告する。BGPアプリケーションが内部BGPピアからより良好なルートを続いて受信する場合、当該BGPアプリケーションは、その最初のルートをその内部BGPピアから撤回する。BGPアプリケーションがそれらの2つの広告をこの逆の順序で受信する場合、当該BGPアプリケーションは、如何なる広告も送信しないであろう。なぜなら、その内部BGPピアは、外部BGPピアが広告したものよりも良好なルートを既に広告しているからである。スタンバイBGPアプリケーションがアクティブBGPアプリケーションによって受信される順序以外の順序で複数のルートを受信する場合、スタンバイBGPアプリケーションは、スイッチオーバ時に取るべき一連のアクション(例えば、広告される必要があるルート、撤回される必要があるルート、又は何のアクションも必要とされない)を誤って判定し得る。あるルートが外部BGPピアから受信され、且つより良好なルートが内部BGPピアから受信される場合であって、スタンバイBGPアプリケーションが当該広告を逆の順序で受信し、且つアクティブBGPアプリケーションが撤回を送信する前にスイッチオーバが発生することとなるとき、スタンバイは、撤回を送信すべきことが決して分からないであろう。
スタンバイアプリケーションがアクティブアプリケーションと同じ順序で入力を受信する実施形態を提供するために、アクティブコンピュータ上のTCPプロセスは、スタンバイコンピュータ上のTCPプロセスとデータを同期させない。これは、帯域幅及びCPUサイクルを節約する利点を有する。その代わりに、アクティブコンピュータ上のTCPプロセスはそのデータをアクティブアプリケーションプロセスと同期させ、アクティブアプリケーションプロセスは、アクティブアプリケーションプロセスとスタンバイアプリケーションプロセスとの間で充分なデータを同期させて、TCP状態及びそれ自体の状態を正確に再構築する。スイッチオーバに応じて、スタンバイコンピュータは、確立された状態にある1つ以上のTCP接続を作成し、及び再送信すべきデータを有するTCPプロセス及びシーケンス番号を供給して、TCP接続の円滑な移行を確実にする。上記新たな接続は、新たなTCP接続が通常行うようにTCP SYNセグメントを対応するTCPリモートピアと交換することはしないであろう。なぜなら、スイッチオーバは、対応するリモートピアには透過的となるからである。
図1Aは、本発明の実施形態に係る、アクティブアプリケーションにおいて受信されるデータをスタンバイアプリケーションとの間で同期させるための方法を例示するフローチャートである。一実施形態において、図1Aの方法は、アクティブコンピュータとスタンバイコンピュータとを有するネットワークエレメント内で実行される一方、他の実施形態において、当該方法は、アクティブコンピュータとスタンバイコンピュータとを有する汎用コンピュータシステムによって実行される。アクティブコンピュータとスタンバイコンピュータとは、ネットワークエレメント内のアクティブ制御カードとスタンバイ制御カードとに対応する。また別の実施形態において、アクティブアプリケーションとスタンバイアプリケーションとは、アクティブアプリケーション専用の分離されたリソースのセットとスタンバイアプリケーション専用の分離されたリソースのセットとを有する単一のコンピュータ内に存在し得る。これは、アクティブアプリケーションが上記コンピュータ上の第1のバーチャルマシン内に存在し、スタンバイアプリケーションが当該コンピュータの第2のバーチャルマシン内に存在する場合に当てはまり得る。このシナリオにおいて、第1のバーチャルマシンはアクティブコンピュータであり、第2のコンピュータはスタンバイコンピュータである。
図1Aは、ブロック100において開始され、アクティブTCPモジュールは、リモートピアからデータパケットを受信する。例えば、アクティブアプリケーションがBGPルータアプリケーションであり、且つリモートピアがBGPルータである場合、上記データパケットは、BGP更新メッセージを含み得る。上記方法は、ブロック105へ続き、アクティブTCPモジュールは、データパケットの少なくとも一部をアクティブアプリケーション(APP)モジュールへ通信する。アクティブTCPモジュールは、データパケットをアクティブAPPモジュールへ通信する。
随意的に、上記方法は、破線のブロック106へ続き、1つ以上のアクティブなAPP状態変化のセットを現在のアクティブAPPの状態及び受信データパケットに基づいて判定してもよい。アクティブアプリケーションがBGPルータであり、且つデータパケットがBGP更新メッセージである例において、上記方法は、破線のブロック106Aへ続き、BGP更新メッセージ中の1つ以上のBGPルート更新を読み出す。上記方法は、破線のブロック106Bへ続き、ローカルポリシー情報ベースからの1つ以上のポリシーに基づいて、1つ以上のBGPルート更新を破棄する。上記方法は、アクティブBGP APP状態、1つ以上の読み出されたBGPルート更新、及び1つ以上の破棄されたBGPルート更新に基づいて、1つ以上のBGPルート状態変化のセットを判定する。上記方法は、破線のブロック109へ続き、BGP APP状態変化のセットなどのアクティブAPP状態変化のセットを含むAPP SYNCメッセージを生成する。
上記方法は、ブロック110へ続き、アクティブAPPモジュールは、APP同期(SYNC)メッセージをスタンバイコンピュータ上のスタンバイAPPモジュールへ通信する。一実施形態において、APP SYNCメッセージは、アクティブTCPモジュールによって受信されるデータパケットからの全てのデータを含む。別の実施形態において、APP SYNCメッセージは、アクティブTCPモジュールによって受信されるデータパケットの圧縮された形式を含む。また別の実施形態において、APP SYNCメッセージは、アクティブAPPモジュールがデータパケットに応じて必要とされると判定した1つ以上のアプリケーション状態変化のセットを示す。圧縮された形式は、スタンバイAPPモジュールがアクティブTCPモジュールによって受信されるデータパケットに適当に反応し及び当該データパケットへの応答を再構築するのに充分であるとアクティブAPPモジュールによって判定されるデータを含む。いずれの場合においても、APP SYNCメッセージは、アクティブTCPモジュールによって受信されるデータパケットからのシーケンス番号を含み、それによって、スタンバイAPPモジュールは、アクティブAPPモジュールが当該データパケットを受信したことを認識する。このようにして、スタンバイAPPモジュールは、リモートピアから送信される重複したデータパケットが適切に処理されたが、アクティブTCPモジュールからの対応する確認応答(ACK)パケットがリモートピアによって受信されなかった場合、当該パケットを検出し及び破棄する。アクティブAPPモジュールとスタンバイAPPモジュールとは、アプリケーション同期データを搬送するインタープロセス通信(IPC:inter-process communication)チャネルを介して結合される。一実施形態において、IPCチャネルは、コンピュータシステム内の共有メモリスペースのセットである。他方、他の実施形態におけるIPCチャネルは、信号、パイプ、ソケット、スイッチ、ファブリック、及び(例えば、光学的、イーサネット、同軸、無線)ネットワーキングメディアを含む。また別の実施形態において、IPCチャネルは、上述されたIPCチャネルのうちの幾つか若しくは全ての組み合わせであり、又はIPCの他の実装を含む。
上記方法は、ブロック115へ続き、アクティブAPPモジュールは、スタンバイAPPモジュールからIPCチャネルを通じてAPP SYNC ACKメッセージを受信する。このメッセージは、スタンバイAPPモジュールがAPP SYNCメッセージを適切に受信したことをアクティブAPPモジュールに通知する。APP SYNC ACKメッセージを受信することに応じて、アクティブAPPモジュールは、ブロック120において、アクティブTCPモジュールによって受信されたデータパケットが適切に処理されたこと及びアクティブTCPモジュールはリモートピアにACKメッセージにより応答すべきであることを示すAPP ACKメッセージをアクティブTCPモジュールに通信する。APP ACKメッセージを受信することに応じて、アクティブTCPモジュールは、ブロック125において、リモートピアによって送信されたデータパケットをアクティブTCPモジュールが適切に受信したことを示すデータACKメッセージをリモートピアへ通信する。
従って、アクティブTCPモジュールがインカミングデータをピアから受信する場合、当該アクティブTCPモジュールは、通常のように当該データの受信の確認応答を自動的に送信することはしない。その代わりに、アクティブTCPモジュールは、ACKをリモートピアへ送信する前に、アクティブAPPモジュールがアクティブTCPモジュールへ当該データに対する確認応答を送信するまで待機する。ただし、アクティブAPPモジュールがスタンバイAPPモジュールと同期させるデータの性質は、アプリケーションに依存する。例えば、BGPアプリケーションは、キープアライブメッセージを同期しないであろう。更新メッセージについて、BGPは、当該メッセージ自体ではなく、当該メッセージ中に含まれるルートを同期させ得る。BGPアプリケーションがこれを行う際、当該BGPアプリケーションは、ルートを同期させる前に、当該ルートに情報を付加し又は除去する適応性を有する。BGPアプリケーションは、ポリシーによって付加されたプリファレンス又は他の属性を付加し得る。特に有益なのは、インカミングポリシーによって破棄されるルートを同期させない能力である。これは、さもなければスタンバイAPPモジュールへ破棄されたルートを送信するために必要とされ得る帯域幅及び処理リソースを節約することができる。
アクティブAPPモジュールが全ての受信データをスタンバイAPPモジュールに同期させなくてもよいとしても、又は、当該アクティブAPPモジュールが幾らかの受信データを当該データが受信された形式以外の形式において同期させ得るとしても、アクティブAPPモジュールは、TCPシーケンス番号又はTCPシーケンス番号を再作成するのに充分な情報を送る。一実施形態において、アクティブAPPモジュールは、シーケンス番号の代わりに受信バイト数をスタンバイAPPモジュールへ通信する。スタンバイAPPモジュールは、最初のシーケンス番号と受信バイト数とを用いて、実際のシーケンス番号を再作成することができる。スイッチオーバが発生する場合、新たなアクティブAPPモジュール(以前のスタンバイAPPモジュール)が、同期された最新のTCPシーケンス番号に対する確認応答をリモートピアへ送信するであろう。以前のアクティブAPPモジュールは、当該シーケンス番号以下の任意のシーケンス番号に対する確認応答をリモートピアへ送信していてもよい。リモートピアは、確認応答が送信されたよりも多くを送信しているかもしれない。その場合、リモートピアは、最後に送信されたシーケンス番号以降を再送信するであろう。このようにして、新たなアクティブAPPモジュールは、インカミングTCPデータストリームを正確に復元することができる。
図1Bは、本発明の実施形態に係る、アクティブアプリケーションからリモートピアへ送信されているデータとスタンバイアプリケーションとを同期させるための方法を例示するフローチャートである。アクティブAPPモジュールがデータをリモートピアに送信するにつれて、スタンバイAPPモジュールは、リモートピアが受信に対して確認応答を送信しない場合に備えて当該データを再送信する準備をしなければならない。スイッチオーバが発生する場合には、スタンバイAPPモジュールは、データを再送信する必要がある。
アクティブAPPモジュールがリモートピアへ送信するためのデータを生成することに応じて、アクティブAPPモジュールは、ブロック130において、APP SYNCメッセージをスタンバイAPPモジュールへ通信する。アクティブAPPモジュールは、ブロック135において、APP SYNC ACKメッセージをスタンバイAPPモジュールから受信する。APP SYNC ACKメッセージは、スタンバイAPPモジュールがAPP SYNCメッセージを適切に受信したことを示す。APP SYNC ACKメッセージを受信することに応じて、アクティブAPPモジュールは、ブロック140において、生成されたデータに対応するAPPデータパケットをアクティブTCPモジュールへ通信する。APPデータパケットを受信することに応じて、アクティブTCPモジュールは、ブロック145において、APPデータパケットに対応するデータパケットをリモートピアへ通信する。アクティブTCPモジュールは、ブロック150において、データパケットがリモートピアにおいて適切に受信されたことを示すデータACKメッセージをリモートピアから受信する。一実施形態において、アクティブTCPモジュールは、データACKメッセージを受信することに応じて、ブロック155において、データACKメッセージをアクティブAPPモジュールへ通信する。一方で、別の実施形態において、アクティブAPPモジュールが同期のために最新のACKシーケンス番号を必要とする場合、アクティブAPPモジュールは当該最新のACKシーケンス番号をアクティブTCPモジュールから取得する。アクティブAPPモジュールがデータACKメッセージをアクティブTCPモジュールから受信することに応じて、アクティブAPPモジュールは、ブロック160において、データACKメッセージをスタンバイAPPモジュールに通信する。データACKメッセージを受信することに応じて、スタンバイAPPモジュールは、確認応答を送信したデータを当該モジュールの再送信リストから除去するであろう。
全てのアクティブAPPモジュールが、生成された出力を対応するスタンバイAPPモジュールに同期させる必要があるとは限らない。例えば、アクティブコンピュータとスタンバイコンピュータとがエコーサーバアプリケーションを実行する場合、アクティブAPPモジュールは、生成された出力をスタンバイAPPモジュールに送る必要はない。生成された出力は、結局のところ、入力に等しい。アクティブAPPモジュールが受信データパケットを同期させている限り、スタンバイAPPモジュールは、出力を再生成することができる。
ただし、アクティブAPPモジュールは、TCPシーケンス番号又はそれらを再作成するために充分な情報をスタンバイAPPモジュールとの間で同期させる必要がある。スイッチオーバが発生する場合、新たなアクティブAPPモジュール(以前のスタンバイAPPモジュール)は、確認応答が送信されていない如何なるデータパケットも正確なシーケンス番号と共に再送信するであろう。リモートピアは、このデータのうちの幾らかを以前のアクティブAPPモジュールから既に受信済みであるかもしれない。その場合において、リモートピアは、重複したデータをTCPシーケンス番号から検出し、及びデータストリームを正確に再作成することができる。
従って、スタンバイAPPモジュールがいつ出力を再生成し及びパケットをリモートピアへ送信すべきかを認識するのに充分な、又は、スタンバイAPPモジュールがいつリモートピアがデータパケットを受信したのかを認識して確認応答が送信されたデータを自身の再送信リストから除去するのに充分な情報を、やはりアクティブAPPモジュールは同期させる。
図1Cは、本発明の実施形態に係る、図1A及び図1Bのアクティブアプリケーションから図1A及び図1Bのスタンバイアプリケーションへのヒットレススイッチオーバを実行するための方法を例示するフローチャートである。当該方法は、ブロック165において開始され、アクティブAPPモジュールは、アクティブTCPモジュールにおける1つ以上のTCPエンドポイントのセットからTCPエンドポイント情報を取得する。TCP接続がアクティブTCPモジュールとリモートホストとの間で作成される場合、幾つかのTCP変数について交渉が行われる。例えば、最初のシーケンス番号、最大セグメントサイズ、ウィンドウスケーリング及び他のTCPオプションである。これらは、静的変数と呼ばれる。幾つかのTCP変数は、動的変数である。例えば、輻輳ウィンドウは、アクティブTCPモジュールとリモートピアとの間の通信期間中に示されるネットワークの振る舞いに応じて変化する。一実施形態において、TCPエンドポイント情報は静的変数を含む一方で、他の実施形態において、TCPエンドポイント情報は静的変数及び動的変数を含む。また別の実施形態において、TCPエンドポイント情報は、静的変数と動的変数とのサブセットを含み、当該サブセットは、スタンバイTCPモジュールがTCPエンドポイントを再作成するのに充分な変数を含む。それ故に、スタンバイTCPモジュールは、TCPエンドポイント情報を用いて、スイッチオーバを理由に必要に応じてTCPエンドポイントを再作成する。
上記方法は、ブロック170に続き、アクティブAPPモジュールは、取得されたTCPエンドポイント情報をスタンバイAPPモジュールへ通信する。その後、スタンバイAPPモジュールは、ブロック175において、アクティブAPPモジュールにアクティブ状態を終了させようとしているスイッチオーバイベントを検出し、それによって、スタンバイAPPモジュールがアクティブ状態に入ることが望ましいこととなる。スイッチオーバイベントの例は、ハードウェア障害、ソフトウェア障害、ソフトウェア更新、計画された停電、スケジューリングされたメンテナンス、不適切な構成、及びネットワークメディア障害を含むが、これらに限定されない。一実施形態において、スタンバイAPPモジュールは、ハートビートリクエストをアクティブAPPモジュールに定期的に送り、及び予期しないハートビート応答又はハートビート応答の欠如に応じて劣化イベント(degrading event)を検出する。別の実施形態において、アクティブAPPモジュールは、ステータスメッセージをスタンバイAPPモジュールへ定期的に送り、スタンバイAPPモジュールは、ステータスメッセージの内容に応じて又はステータスメッセージの欠如を理由に劣化イベントを検出する。
劣化イベントを検出することに応じて、スタンバイAPPモジュールは、スタンバイステータスからアクティブステータスへの移行を開始すべきことを判定する。ブロック180において、スタンバイAPPモジュールは、過去に通信されたTCPエンドポイント情報を用いて、スタンバイTCPモジュールにおける1つ以上のTCPエンドポイントの作成を開始する。他の実施形態において、TCPエンドポイントは、スタンバイAPPモジュールが劣化イベントを検出することに先立って、スタンバイTCPモジュールにおいて作成される。これは、スイッチオーバを実行するために必要とされる時間を低減する。例えば、TCPエンドポイントは、TCPエンドポイント情報を受信することに応じて、スタンバイTCPモジュールにおいて作成され得る。この場合において、スタンバイTCPモジュールは、スタンバイモードにある間、作成されるTCPエンドポイントを宛先とするトラフィックをハンドリングしないであろう。なぜなら、アクティブTCPモジュールが当該トラフィックをハンドリングする責任を負うからである。
過去に通信されたTCPエンドポイント情報によって特定されるTCPエンドポイントを作成することに応じて、上記方法は、ブロック185へ続き、ヒットレススイッチオーバを実行する。ヒットレススイッチオーバは、スタンバイAPPモジュール及びスタンバイTCPモジュールをスタンバイモードからアクティブモードへ移行させる。一実施形態において、スイッチオーバが計画されている場合、図1Aを参照しつつ説明されたようにヒットレススイッチオーバは、アクティブAPPモジュール及びアクティブTCPモジュールをアクティブモードからスタンバイモードへさらに移行させ、新たなアクティブAPPモジュールが新たなスタンバイAPPモジュールとの同期を開始する。別の実施形態において、スイッチオーバが計画されている場合、ヒットレススイッチオーバは、アクティブAPPモジュール及びアクティブTCPモジュールをアクティブモードから非アクティブモードへさらに移行させ、新たなアクティブAPPモジュールと非アクティブAPPモジュールとの間では同期は発生しない。
図2は、リモートネットワークエレメントにネットワークを介して結合される、ヒットレススイッチオーバを有するアクティブスタンバイAPP−TCPシステムを提供するためのアクティブスタンバイネットワークエレメントを例示するブロック図である。
本明細書において、ネットワークエレメント(例えば、ルータ、スイッチ、ブリッジ)は、ネットワーク上の他の機器(例えば、他のネットワークエレメント、終端局(end stations))と通信可能に相互接続される、ハードウェア及びソフトウェアを含む1つのネットワーキング機器である。幾つかのネットワークエレメントは、複数のネットワーキング機能(例えば、ルーティング、ブリッジング、スイッチング、レイヤ2アグリゲーション、セッションボーダー制御、サービス品質(Quality of Service)、及び/又は加入者管理)についてのサポートを提供し、及び/又は複数のアプリケーションサービス(例えば、データ、音声、及びビデオ)についてのサポートを提供する「マルチサービスのネットワークエレメント(multiple services network elements)」である。加入者端局(subscriber end stations)(例えば、サーバ、ワークステーション、ラップトップ、ネットブック、パームトップ、携帯電話、スマートフォン、マルチメディアフォン、VOIP(Voice Over Internet Protocol)電話、ユーザ機器、端末、ポータブルメディアプレーヤ、GPSユニット、ゲーム機、セットトップボックス)は、インターネット上で提供されるコンテンツ/サービス及び/又はインターネット上にオーバーレイされる(例えば、インターネットを通じてトンネリングされる)VPN(virtual private networks)上で提供されるコンテンツ/サービスにアクセスする。コンテンツ及び/又はサービスは、典型的に、サービスプロバイダ若しくはコンテンツプロバイダに属する1つ以上の終端局(例えば、サーバ端局(server end stations))又はピアツーピアサービスに参加する終端局によって提供され、及び、例えば、パブリックウェブページ(例えば、無料コンテンツ、ストアフロント、検索サービス)、プライベートウェブページ(例えば、電子メールサービスを提供する、ユーザ名/パスワードによりアクセスされるウェブページ)、及び/又はVPN上の企業ネットワークを含み得る。典型的に、加入者端局は、(例えば、(無線又は有線で)アクセスネットワークに結合される顧客構内の機器を通じて)エッジネットワークエレメントに結合され、当該エッジネットワークエレメントは、(例えば、1つ以上のコアネットワークエレメントを通じて)他のエッジネットワークエレメントに結合され、当該他のエッジネットワークエレメントは、他の終端局(例えば、サーバ端局)に結合される。
ネットワークエレメントは、一般に、制御プレーンと、(転送プレーン又はメディアプレーンと呼ばれることもある)データプレーンと、に分けられる。ネットワークエレメントがルータである(又は、ルーティングの機能性を実装している)場合、制御プレーンは、典型的に、どのようにデータ(例えば、パケット)がルーティングされるべきか(例えば、データについてのネクストホップ及び当該データについてのアウトゴーイングポート)を判定し、データプレーンは、当該データを転送することを担う。例えば、制御プレーンは、典型的に、他のネットワークエレメントと通信してルートを交換し及び1つ以上のルーティングメトリックに基づいてそれらのルートを選択する1つ以上のルーティングプロトコル(例えば、ボーダーゲートウェイプロトコル(BGP)、内部ゲートウェイプロトコル(IGP:Interior Gateway Protocol(s))(例えば、OSPF(Open Shortest Path First)、RIP(Routing Information Protocol)、IS−IS(Intermediate System to Intermediate System))、ラベル配布プロトコル(LDP:Label Distribution Protocol)、リソース予約プロトコル(RSVP:Resource Reservation Protocol))を含む。
ルート及び隣接関係(adjacencies)は、制御プレーン上の1つ以上のルーティング構造(例えば、ルーティング情報ベース(RIB:Routing Information Base)、ラベル情報ベース(LIB:Label Information Base)、1つ以上の隣接関係構造)に記憶される。制御プレーンは、ルーティング構造に基づく情報(例えば、隣接関係及びルート情報)を用いてデータプレーンをプログラミングする。例えば、制御プレーンは、データプレーン上の1つ以上の転送構造(例えば、転送情報ベース(FIB:Forwarding Information Base)、ラベル転送情報ベース(LFIB:Label Forwarding Information Base)、及び1つ以上の隣接関係構造)に隣接関係及びルート情報をプログラミングする。データプレーンは、トラフィックを転送する際、これらの転送構造及び隣接関係構造を用いる。
一実施形態において、ネットワークエレメントは、1つ以上のラインカードのセットと、1つ以上の制御カードのセットと、随意的に1つ以上の(リソースカードと呼ばれることもある)サービスカードのセットと、を備える。これらのカードは、1つ以上のメカニズム(例えば、ラインカードを結合する第1のフルメッシュ及びカードの全てを結合する第2のフルメッシュ)を通じて互いに結合される。ラインカードのセットは、データプレーンを構成する一方、制御カードのセットは、制御プレーンを提供し及びラインカードを通じて外部のネットワークエレメントとパケットを交換する。サービスカードのセットは、特殊な処理(例えば、レイヤ4からレイヤ7のサービス(例えば、ファイアウォール、IPsec、IDS、P2P)、VoIPセッションボーダーコントローラ、モバイルワイヤレスゲートウェイ(GGSN、EPS(Evolved Packet System)ゲートウェイ))を提供することができる。一例として、サービスカードは、IPsecトンネルを終端させ、並びに付随する認証及び暗号化アルゴリズムを実行するために用いられ得る。代替的な実施形態は、(例えば、ラインカードと制御カードとの分離が存在しない場合)異なるネットワークエレメントアーキテクチャを用い得る。
図2は、図1A、図1B、及び図1Cの例示的な動作を参照しつつ説明されるであろう。ただし、図1A、図1B、及び図1Cの動作は図2を参照しつつ議論される実施形態以外の実施形態によって実行されることができることが理解されるべきである。さらに、図3は、図1A、図1B、及び図1Cを参照しつつ説明される動作とは異なる動作を実行することができる。
図2は、アクティブスタンバイネットワークエレメント210を例示する。アクティブスタンバイネットワークエレメント210は、アクティブ制御カード215と、スタンバイ制御カード240と、1つ以上のラインカード265A〜265Nのセットと、を備える。アクティブ制御カード215は、通信チャネル275Aを通じて1つ以上のラインカード265A〜265Nのセットに結合され、スタンバイ制御カード240は、通信チャネル275Bを通じて1つ以上のラインカード265A〜265Nのセットに結合される。
アクティブ制御カード215は、アクティブTCPモジュール235に結合されるアクティブAPPモジュール230を含む。スタンバイ制御カード240は、スタンバイTCPモジュール260に結合されるスタンバイAPPモジュール255を含む。アクティブAPPモジュール230は、インタープロセス通信チャネル270を通じてスタンバイAPPモジュール255に結合される。アクティブAPPモジュール230は、アクティブプロセス232を実行する一方、スタンバイAPPモジュール255は、スタンバイプロセス257を実行する。一実施形態において、ネットワークエレメント210は、アクティブBGP APP及びスタンバイBGP APPを実行するBGPルータである一方、別の実施形態において、当該ネットワークエレメントは、アクティブLDPプロセス及びスタンバイLDPプロセスを実行するマルチプロトコルラベルスイッチング(MPLS)ルータである。また別の実施形態において、ネットワークエレメントは、アクティブANCP(Access Node Control Protocol)プロセス及びスタンバイANCPプロセスを実行するブロードバンドリモートアクセスサーバ(BRAS)である。本発明の実施形態が他のアクティブスタンバイアプリケーションについて、特にTCP送信の状態がアクティブアプリケーションからスタンバイアプリケーションへの適切なスイッチオーバに重要である場合に適切であることを当業者は認識するであろう。一実施形態において、アクティブAPPモジュール230、アクティブTCPモジュール235、スタンバイAPPモジュール255、及びスタンバイTCPモジュール260は、図1A、図1B、及び図1Cを参照しつつ説明された機能を実行するように構成される別個のハードウェアモジュールである。別の実施形態において、アクティブAPPモジュール230、アクティブTCPモジュール235、スタンバイAPPモジュール255、及びスタンバイTCPモジュール260は、アクティブスタンバイネットワークエレメント210内で実行されるソフトウェアモジュールである。また別の実施形態において、アクティブAPPモジュール230、アクティブTCPモジュール235、スタンバイAPPモジュール255、及びスタンバイTCPモジュール260は、アクティブスタンバイネットワークエレメント210内で実行される専用ハードウェアモジュール及び専用ソフトウェアモジュールの双方から成る。
1つ以上のラインカード265A〜265Nのセットのうちの1つ以上は、IP通信チャネル276Aを通じてネットワーク280に結合され、ネットワーク280は、IP通信チャネル276Bを通じてリモートネットワークエレメント200に結合される。リモートネットワークエレメント200は、リモートAPPモジュール207に結合されるリモートTCPモジュール205を備える。リモートAPPモジュール207は、アクティブプロセス232に対応するリモートプロセスを実行する。
図3は、本発明の実施形態に係る、リモートピアからネットワークエレメントにおいて受信されるデータについての確認応答及びメッセージのパスを例示するデータフロー図である。図3は、リモートネットワークエレメント300と、アクティブ/スタンバイネットワークエレメント302と、を含む。リモートネットワークエレメント300は、リモートTCPモジュール301を含む。アクティブ/スタンバイネットワークエレメント302は、アクティブ制御カード305と、スタンバイ制御カード310と、を含む。アクティブ制御カード305は、アクティブTCPモジュール306と、アクティブAPPモジュール307と、を含む。スタンバイ制御カード310は、スタンバイappモジュール311と、スタンバイTCPモジュール312と、を含む。各モジュールは図3の上部に例示され、縦線は時間の経過を例示し、1つの縦線から別の縦線へ進む線はある瞬間におけるデータの送信を例示する。
リモートTCPモジュール301は、データパケット1(DATA1) 315AをアクティブTCPモジュール306へ通信することから開始する。アプリケーションデータDATA1 315Aを受信することに応じて、アクティブTCPモジュール306は、DATA1 315BをアクティブAPPモジュール307へ通信する。注目すべきことは、アクティブTCPモジュールがリモートTCPモジュール301へACKを送信しないことである。DATA1 315Bを受信することに応じて、アクティブAPPモジュール307は、DATA1 315CをスタンバイAPPモジュール311へ送る。DATA1 315Cは、アクティブAPPモジュール307をスタンバイAPPモジュール311に同期させるために当該アクティブAPPモジュール307によって用いられるAPP SYNCメッセージである。スタンバイAPPモジュール311は、確認応答パケットACK1 316AをアクティブAPPモジュール307へ通信する。ACK1は、APP SYNCメッセージを受信したことに対して確認応答を行うためにスタンバイAPPモジュールによって用いられるAPP SYNC ACKメッセージである。APP SYNC ACKメッセージを受信することに応じて、アクティブAPPモジュール307は、APP ACKメッセージであるACK1 316BをアクティブTCPモジュール306へ通信する。ACK1 316Bを受信することに応じて、アクティブTCPモジュール306は、ACK1 316CをリモートTCPモジュール301へ通信する。このようにして、アクティブTCPモジュール306からリモートTCPモジュール301への確認応答は、アクティブAPPモジュール307がスタンバイAPPモジュール311と同期することが可能になり、DATA1パケット315Aの処理の期間中にAPPレベル及びTCPレベルの双方における同期が可能となるまで送信されない。
図3は、同様に、リモートTCPモジュール301がデータパケット2(DATA2) 320AをアクティブTCPモジュール306へ通信し、当該アクティブTCPモジュール306がDATA2 320BをアクティブAPPモジュール307へ通信することを示す。アクティブAPPモジュールは、APP SYNCメッセージであるDATA2 320CをスタンバイAPPモジュール311へ通信し、当該スタンバイAPPモジュール311は、APP SYNC ACKであるACK 2(ACK2) 321Aを用いてアクティブAPPモジュール311に応答する。アクティブAPPモジュール311は、APP ACKであるACK2 321Bを用いてアクティブTCPモジュール306に応答する。しかしながら、アクティブTCPモジュール306は、ACK2 321Bを受信しない。なぜなら、受信する前にスイッチオーバイベント330が発生するからである。さらに、リモートTCPモジュール301は、劣化イベント330に先立って、データパケット(DATA3) 325Aを通信する。しかしながら、リモートTCPモジュール301がDATA3 3325Aを送信した後であって、且つアクティブTCPモジュール306がDATA3を受信する前に、劣化イベントが発生する。スイッチオーバイベントを検出することに応じて、スタンバイ制御カード310は、ヒットレススイッチオーバ335を実行し及びアクティブモードへ移行する。
この時点において、リモートTCPモジュール301は、ACK2又はACK3を受信していない。それ故に、リモートTCPモジュールは、DATA2 337Aをアクティブ/スタンバイネットワークエレメント302へ再送信する。スタンバイTCPモジュール312はアクティブモードへ移行済みなので、スタンバイTCPモジュール312は、インカミングトラフィックについての責任を引き受けており、DATA2 337Aを受信する。スタンバイTCPモジュール312は、今やアクティブモードにあるスタンバイAPPモジュール311へDATA2 337Bを通信する。スタンバイAPPモジュール311は、DATA2 337Aが以前に受信され及び適切に処理されたことを認識するため、当該スタンバイAPPモジュール311は、当該データを破棄し又は無視し、及びAPP ACKメッセージ(ACK2) 340AをスタンバイTCPモジュール312へ通信するであろう。ACK2 340Aを受信することに応じて、スタンバイTCPモジュール312は、ACK2 340BをリモートTCPモジュール301へ通信するであろう。さらに、リモートTCPモジュールは、DATA3 345Aをアクティブ/スタンバイネットワークエレメント302へ再送信する。スタンバイTCPモジュール312は、DATA3 345Aを受信し及びDATA3 345BをスタンバイAPPモジュール311へ通信する。スタンバイAPPモジュール311は、DATA3 345Bを処理し及びapp ACKメッセージACK3 350AをスタンバイTCPモジュール312へ通信する。ACK3 350Aを受信することに応じて、スタンバイTCPモジュール312は、ACK3 350BをリモートTCPモジュール301へ通信する。
図4は、本発明の実施形態に係る、ネットワークエレメントからリモートピアへ送信されるデータについての確認応答及びメッセージのパスを例示するデータフロー図である。図4は、リモートネットワークエレメント400と、アクティブ/スタンバイネットワークエレメント402と、を含む。リモートネットワークエレメント400は、リモートTCPモジュール401を含む。アクティブ/スタンバイネットワークエレメント402は、アクティブ制御カード405と、スタンバイ制御カード410と、を含む。アクティブ制御カード405は、アクティブTCPモジュール406と、アクティブAPPモジュール407と、を含む。スタンバイ制御カード410は、スタンバイappモジュール411と、スタンバイTCPモジュール412と、を含む。各モジュールは図4の上部に例示され、縦線は時間の経過を例示し、1つの縦線から別の縦線へ進む線はある瞬間におけるデータの送信を例示する。
図4は、アクティブAPPモジュール407がAPP SYNCメッセージDATA1 415AをスタンバイAPPモジュール411へ通信し、当該スタンバイAPPモジュール411がAPP SYNC ACKメッセージACK1 416Aにより応答することから開始する。ACK1 416Aを受信することに応じて、アクティブAPPモジュール407は、アプリケーションデータDATA1 415BをアクティブTCPモジュール406へ通信し、当該アクティブTCPモジュール406は、データパケットDATA1 415CをリモートTCPモジュール401へ通信する。DATA1 415Cを受信することに応じて、リモートTCPモジュールは、ACKメッセージACK1 416BをアクティブTCPモジュール406へ通信し、当該アクティブTCPモジュール406は、ACK1 416CをアクティブAPPモジュール407へ通信する。ACK1 416Cを受信することに応じて、アクティブAPPモジュール407は、ACK1 416DをスタンバイAPPモジュール411へ通信する。それによって、アクティブAPPモジュール407及びスタンバイAPPモジュール411の双方は、それらの再送信リストからDATA1を除去する。
同様に、アクティブAPPモジュール407は、APP SYNCメッセージDATA2 420AをスタンバイAPPモジュール411へ通信し、当該スタンバイAPPモジュール411は、APP SYNC ACKメッセージACK2 421Aにより応答する。ACK2 421Aを受信することに応じて、アクティブAPPモジュール407は、データパケットDATA2 420BをアクティブTCPモジュール406へ通信し、当該アクティブTCPモジュール406は、データパケットDATA2 420CをリモートTCPモジュールリモートTCPモジュール401へ通信する。DATA2 420Cを受信することに応じて、リモートTCPモジュールは、ACKメッセージACK2 421BをアクティブTCPモジュール406へ通信する。しかしながら、アクティブTCPモジュール406は、ACK2 421Bを受信しない。なぜなら、受信の前にスイッチオーバイベント430が発生するからである。DATA2 420BをアクティブTCPモジュール406へ送信した後で、ただし劣化イベント430に先立って、アクティブAPPモジュール407は、APP SYNCメッセージDATA3 425AをスタンバイAPPモジュール411へ通信し、当該スタンバイAPPモジュール411は、APP SYNC ACKメッセージACK3 426Aにより応答する。ACK3 426Aを受信することに応じて、アクティブAPPモジュール407は、DATA3 425BをアクティブTCPモジュール406へ通信するが、受信に先立って劣化イベント430が発生する。スイッチオーバイベントを検出することに応じて、スタンバイ制御カード410は、ヒットレススイッチオーバ435を実行し及びアクティブモードへ移行する。
この時点において、今やアクティブモードにあるスタンバイAPPモジュール411は、ACK2又はACK3を受信しておらず、その再送信リストを用いてどのパケットを再送信すべきかを判定するであろう。スタンバイAPPモジュール411は、今やアクティブモードにあるスタンバイTCPモジュール412へDATA2 440を通信し、スタンバイTCPモジュール412は、DATA2 440BをリモートTCPモジュール401へ通信することによって応答するであろう。リモートTCPモジュール401は、DATA2 420Cを既に受信済みであり、従って、DATA 440Bは重複する。リモートTCPモジュールは、重複するデータを認識し及びACKメッセージACK2 441Aを返信することが期待される。スタンバイTCPモジュール412は、ACK2 441Aを受信し、及びそれに応じてACK2 441BをスタンバイAPPモジュール411へ通信するであろう。さらに、スタンバイAPPモジュール411は、DATA3を再送する必要があり、及びDATA3 445AをスタンバイTCPモジュールへ通信するであろう。スタンバイTCPモジュールは、DATA3 445BをリモートTCPモジュール401へ通信することによって応答するであろう。リモートTCPモジュール401は、ACKメッセージACK3 446AをスタンバイTCPモジュール412へ通信することによってDATA3 445Bに応じ、スタンバイTCPモジュール412は、それに応じてACK3 446BをスタンバイAPPモジュール411へ通信するであろう。それによって、スタンバイAPPモジュール411は、DATA2及びDATA3を、これらのデータをリモートTCPモジュール401へ再送するその再送信リストから除去するであろう。
本明細書において、命令は、ある動作を実行するように構成され若しくは所定の機能性を有する特定用途向け集積回路(ASIC:application specific integrated circuit)などのハードウェアの特定の構成、又は非一時的なコンピュータ読取可能な媒体において具現化されるメモリに記憶されるソフトウェア命令を指し得る。従って、図において示される技法は、1つ以上の電子デバイス(例えば、終端局、ネットワークエレメント)上に記憶され及び実行されるコード及びデータを用いて実装されることができる。そのような電子デバイスは、非一時的なコンピュータ読取可能な記憶媒体(例えば、磁気ディスク;光ディスク;RAM(random access memory);ROM(read only memory);フラッシュメモリデバイス;相変化メモリ)及び一時的なコンピュータ読取可能な媒体(例えば、電気的、光学的、音響的又は他の形式の伝搬信号−搬送波、赤外線信号、デジタル信号など)といったコンピュータ読取可能な媒体を用いて、コード及びデータを記憶し及び(内部的に及び/又はネットワーク上で他の電子デバイスと)通信する。また、そのような電子デバイスは、典型的に、1つ以上のストレージデバイス(非一時的な機械読取可能なストレージメディア)、ユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、及びネットワーク接続といった1つ以上の他のコンポーネントに結合される1つ以上のプロセッサのセットを含む。プロセッサのセットと他のコンポーネントとの結合は、典型的に、1つ以上のバス及び(バスコントローラとも呼ばれる)ブリッジを介する。従って、所与の電子デバイスのストレージデバイスは、典型的に、当該電子デバイスの1つ以上のプロセッサのセット上での実行のためのコード及び/又はデータを記憶する。言うまでもなく、本発明のある実施形態のうちの1つ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの様々な組み合わせを用いて実装され得る。
代替的な実施形態
図におけるフロー図は本発明のある実施形態によって実行される動作の特定の順序を示すが、そのような順序は例示的である(例えば、代替的な実施形態は、当該動作を異なる順序で実行し、ある動作を結合し、ある動作を重複させる等し得る)ことが理解されるべきである。
本発明は幾つかの実施形態の観点から説明されてきたが、本発明が説明された実施形態に限定されず、添付の特許請求の範囲及び思想内で変形及び変更により実施をされることができることを当業者は認識するであろう。従って、上記説明は、限定ではなく例示として見なされるべきである。

Claims (24)

  1. アクティブ制御カードとスタンバイ制御カードとの間のアクティブスタンバイ関係を維持するための、ネットワークエレメントにおいて実行される方法であって、当該方法は、
    リモートネットワークエレメントからデータパケットを前記アクティブ制御カード内のアクティブトランスポート制御プロトコル(「TCP」)モジュールにおいて受信するステップと、
    前記データパケットの少なくとも一部を前記アクティブTCPモジュールから前記アクティブ制御カード内のアクティブアプリケーション(「APP」)モジュールへ通信するステップと、
    前記データパケットの前記少なくとも一部を受信することに応じて、APP同期(「SYNC」)メッセージを前記アクティブAPPモジュールから前記スタンバイ制御カード上のスタンバイAPPモジュールへ通信するステップと、
    APP SYNC確認応答(「ACK」)メッセージを前記スタンバイAPPモジュールから前記アクティブAPPモジュールにおいて受信するステップと、当該APP SYNC ACKメッセージは、前記APP SYNCメッセージの成功裏の伝達を示すことと、
    前記APP SYNC ACKメッセージを受信することに応じて、APP ACKメッセージを前記アクティブAPPモジュールから前記アクティブTCPモジュールへ通信するステップと、
    前記APP ACKメッセージを受信することに応じて、データACKメッセージを前記アクティブTCPモジュールから前記リモートネットワークエレメントへ通信するステップと、当該データACKメッセージは、前記データパケットの成功裏の伝達を示すことと、
    を含み、
    前記方法は、
    前記アクティブTCPモジュールにおける1つ以上のTCPエンドポイントからTCPエンドポイント情報を取得するステップと、
    ヒットレススイッチオーバを開始するスイッチオーバイベントに先立って、取得される前記TCPエンドポイント情報を前記スタンバイAPPモジュールへ通信するステップと、
    をさらに含み、
    前記アクティブAPPモジュールは、アクティブボーダーゲートウェイプロトコル(「BGP」)APPを含み、前記スタンバイAPPモジュールは、スタンバイBGP APPを含む、
    方法。
  2. アクティブAPP状態と前記データパケットの前記少なくとも一部に含まれる情報とに基づいて、1つ以上のアクティブAPP状態変化のセットを判定するステップと、
    前記アクティブAPP状態変化のセットを含むように前記APP SYNCメッセージを生成するステップと、
    をさらに含む、請求項1に記載の方法。
  3. 前記APP SYNCメッセージは、インタープロセス通信チャネルを介して前記スタンバイAPPモジュールへ通信される、請求項1に記載の方法。
  4. 記データパケットは、BGP更新メッセージを含み、前記APP SYNCメッセージは、状態情報を前記アクティブBGP APPと同期させるために前記スタンバイBGP APPによって用いられるデータを含む、請求項1に記載の方法。
  5. 前記BGP更新メッセージ中に含まれる1つ以上のBGPルート更新を前記アクティブBGP APPにおいて読み出すステップと、
    ローカルポリシー情報ベースからの1つ以上のポリシーに基づいて、1つ以上のBGPルート更新を前記アクティブBGP APPにおいて破棄するステップと、
    アクティブBGP APP状態と、読み出される前記1つ以上のBGPルート更新と、破棄される前記1つ以上のBGPルート更新と、に基づいて、1つ以上のBGP状態変化のセットを判定するステップと、
    前記BGP状態変化のセットを含むように前記APP SYNCメッセージを生成するステップと、
    をさらに含む、請求項4に記載の方法。
  6. 前記スイッチオーバイベントを前記スタンバイAPPモジュールにおいて検出するステップと、
    過去に通信されたTCPエンドポイント情報を用いてスタンバイTCPモジュールにおける1つ以上のTCPエンドポイントを作成するステップと、
    前記スイッチオーバイベントを検出することに応じて、スタンバイ制御カードをスタンバイステータスからアクティブステータスへ移行させるヒットレススイッチオーバを実行するステップであって、当該移行は、前記リモートネットワークエレメントに透過的となる、ステップと、
    をさらに含む、請求項1に記載の方法。
  7. 第2の制御カードに結合されるべき第1の制御カードであって、当該第1の制御カードは、当該第2の制御カードとのアクティブスタンバイ関係においてアクティブ制御カードとして機能し、当該第1の制御カードは、
    1つ以上のラインカードに結合されるべきアクティブトランスポート制御プロトコル(「TCP」)モジュールであって、
    リモートネットワークエレメントからデータパケットを受信し、
    前記データパケットの少なくとも一部をアクティブアプリケーション(「APP」)モジュールへ通信し、
    APP確認応答(「ACK」)メッセージを受信し、及び、
    前記APP ACKメッセージを受信することに応じて、データACKメッセージを前記リモートネットワークエレメントへ通信する
    ように構成される、アクティブTCPモジュールと、
    前記アクティブTCPモジュールに結合され及び前記第2の制御カード上のスタンバイAPPモジュールにさらに結合されるべき前記アクティブAPPモジュールであって、
    前記データパケットの前記少なくとも一部を前記アクティブTCPモジュールから受信し、
    APP同期(「SYNC」)メッセージを前記スタンバイAPPモジュールへ通信し、
    APP SYNC ACKメッセージを前記スタンバイAPPモジュールから受信し、及び、
    前記APP SYNC ACKメッセージを受信することに応じて、APP ACKメッセージを前記アクティブTCPモジュールへ通信する、
    ように構成される、アクティブAPPモジュールと、
    を含み、
    前記アクティブAPPモジュールは、
    前記アクティブTCPモジュールにおける1つ以上のTCPエンドポイントからTCPエンドポイント情報を取得し、及び、
    ヒットレススイッチオーバを開始するスイッチオーバイベントに先立って、取得される前記TCPエンドポイント情報を、スタンバイTCPモジュールにおける1つ以上のTCPエンドポイントを作成するために前記スタンバイAPPモジュールによって使用されるように、前記スタンバイAPPモジュールへ通信する、
    ようにさらに構成され、
    前記アクティブAPPモジュールは、アクティブボーダーゲートウェイプロトコル(「BGP」)APPを含み、前記スタンバイAPPモジュールは、スタンバイBGP APPを含む、
    第1の制御カード。
  8. 前記アクティブAPPモジュールは、
    アクティブAPP状態と前記データパケットの少なくとも一部に含まれる情報とに基づいて、1つ以上のアクティブAPP状態変化のセットを判定し、及び、
    前記アクティブAPP状態変化のセットを含むように前記APP SYNCメッセージを生成する、
    ようにさらに構成される、請求項7に記載の第1の制御カード。
  9. 前記アクティブAPPモジュールは、インタープロセス通信チャネルを通じて前記スタンバイAPPモジュールに結合される、請求項7に記載の第1の制御カード。
  10. 記データパケットは、BGP更新メッセージを含み、前記APP SYNCメッセージは、状態情報を前記アクティブBGP APPと同期させるために前記スタンバイBGP APPによって用いられるデータを含む、請求項7に記載の第1の制御カード。
  11. 前記アクティブAPPモジュールは、
    前記BGP更新メッセージ中に含まれる1つ以上のBGPルート更新を読み出し、
    ローカルポリシー情報ベースからの1つ以上のポリシーに基づいて、1つ以上のBGPルート更新を破棄し、
    アクティブBGP APP状態と、読み出される前記1つ以上のBGPルート更新と、破棄される前記1つ以上のBGPルート更新と、に基づいて、1つ以上のBGP状態変化のセットを判定し、及び、
    前記BGP状態変化のセットを含むように前記APP SYNCメッセージを生成する、
    ようにさらに構成される、請求項10に記載の第1の制御カード。
  12. 障害の発生時にヒットレススイッチオーバを実行するためのネットワークエレメントであって、当該ネットワークエレメントは、
    ネットワークに結合されるべき複数のラインカードと、
    前記複数のラインカードに結合される第1の制御カードであって、アクティブスタンバイ関係においてアクティブ制御カードとして機能し、並びに、
    リモートネットワークエレメントからデータパケットを前記複数のラインカードのうちの1つを通じて受信し、
    前記データパケットの少なくとも一部をアクティブアプリケーション(「APP」)モジュールへ通信し、
    APP確認応答(「ACK」)メッセージを受信し、及び、
    前記APP ACKメッセージを受信することに応じて、データACKメッセージを前記複数のラインカードのうちの1つを通じて前記リモートネットワークエレメントへ通信する、
    ように構成される、アクティブTCPモジュールと、
    前記アクティブTCPモジュールに結合され及び第2の制御カード上のスタンバイAPPモジュールにさらに結合されるべきアクティブAPPモジュールであって、
    前記データパケットの前記少なくとも一部を前記アクティブTCPモジュールから受信し、
    APP同期(「SYNC」)メッセージを前記スタンバイAPPモジュールへ通信し、
    APP SYNC ACKメッセージを前記スタンバイAPPモジュールから受信し、及び、
    前記APP SYNC ACKメッセージを受信することに応じて、APP ACKメッセージを前記アクティブTCPモジュールへ通信する、
    ように構成される、アクティブAPPモジュールと、
    を含む、第1の制御カードと、
    前記複数のラインカード及び前記第1の制御カードに結合される前記第2の制御カードであって、前記第1の制御カードとのアクティブスタンバイ関係においてスタンバイ制御カードとして機能し、並びに、
    スタンバイAPPモジュールに結合されるべきスタンバイTCPモジュールであって、
    前記複数のラインカードと通信し、及び、
    前記スタンバイAPPモジュールと通信する、
    ように構成されるスタンバイTCPモジュールと、
    前記APP SYNCメッセージを前記アクティブAPPモジュールから受信し、
    前記APP SYNCメッセージの受信を示すための前記APP SYNC ACKメッセージを前記アクティブAPPモジュールへ送る、
    ように構成される前記スタンバイAPPモジュールと、
    を含む、第2の制御カードと、
    を備え、
    前記アクティブAPPモジュールは、
    前記アクティブTCPモジュールにおける1つ以上のTCPエンドポイントからTCPエンドポイント情報を取得し、及び、
    ヒットレススイッチオーバを開始するスイッチオーバイベントに先立って、取得される前記TCPエンドポイント情報を前記スタンバイAPPモジュールへ通信する、
    ようにさらに構成され、
    前記アクティブAPPモジュールは、アクティブボーダーゲートウェイプロトコル(「BGP」)APPを含み、前記スタンバイAPPモジュールは、スタンバイBGP APPを含む、
    ネットワークエレメント。
  13. 前記アクティブAPPモジュールは、
    アクティブAPP状態と前記データパケットの前記少なくとも一部に含まれる情報とに基づいて、アクティブAPP状態変化のセットを判定し、
    前記アクティブAPP状態変化のセットを含むように前記APP SYNCメッセージを生成する、
    ようにさらに構成される、請求項12に記載のネットワークエレメント。
  14. 前記アクティブAPPモジュールは、インタープロセス通信チャネルを通じて前記スタンバイAPPモジュールに結合される、請求項12に記載のネットワークエレメント。
  15. 記データパケットは、BGP更新メッセージを含み、前記APP SYNCメッセージは、状態情報を前記アクティブBGP APPと同期させるために前記スタンバイBGP APPによって用いられるデータを含む、請求項12に記載のネットワークエレメント。
  16. 前記アクティブAPPモジュールは、
    前記BGP更新メッセージ中に含まれる1つ以上のBGPルート更新を読み出し、
    ローカルポリシー情報ベースからの1つ以上のポリシーに基づいて、1つ以上のBGPルート更新を破棄し、
    アクティブBGP APP状態と、読み出される前記1つ以上のBGPルート更新と、破棄される前記1つ以上のBGPルート更新と、に基づいて、BGP状態変化のセットを判定し、及び、
    前記BGP状態変化のセットを含むように前記APP SYNCメッセージを生成する、
    ようにさらに構成される、請求項15に記載のネットワークエレメント。
  17. 前記スタンバイAPPモジュールは、
    前記スイッチオーバイベントを検出し、
    過去に通信されたTCPエンドポイント情報を用いて前記スタンバイTCPモジュールにおける1つ以上のTCPエンドポイントを作成し、及び、
    スイッチオーバイベントを検出することに応じて、スタンバイ制御カードをスタンバイステータスからアクティブステータスへ移行させるヒットレススイッチオーバを実行し、当該移行は、前記リモートネットワークエレメントに透過的となる、
    ようにさらに構成される、
    請求項12に記載のネットワークエレメント。
  18. アクティブ制御カードとスタンバイ制御カードとの間のアクティブスタンバイ関係を維持するための、ネットワークエレメントにおいて実行される方法であって、当該方法は、
    アプリケーション(「APP」)同期(「SYNC」)メッセージを前記アクティブ制御カード内のアクティブAPPモジュールから前記スタンバイ制御カード内のスタンバイAPPモジュールへ通信するステップと、当該APP SYNCメッセージは、リモートネットワークエレメントへ送信されるべきAPPデータパケットの少なくとも一部に関連付けられることと、
    前記スタンバイAPPモジュールからAPP SYNC確認応答(「ACK」)メッセージを前記アクティブAPPモジュールにおいて受信するステップと、前記APP SYNC ACKメッセージは、当該APP SYNCメッセージの成功裏の伝達を示すことと、
    前記APP SYNC ACKメッセージを受信することに応じて、前記APPデータパケットを前記アクティブAPPモジュールから前記アクティブ制御カード内のアクティブトランスポート制御プロトコル(「TCP」)モジュールへ通信するステップと、
    前記APPデータパケットを前記アクティブTCPモジュールから前記リモートネットワークエレメントへ通信するステップと、
    前記リモートネットワークエレメントからリモートACKメッセージを前記アクティブTCPモジュールにおいて受信するステップと、当該リモートACKメッセージは、前記リモートネットワークエレメントにおける前記APPデータパケットの成功裏の伝達を示すことと、
    前記リモートACKメッセージの少なくとも一部を前記アクティブTCPモジュールから前記アクティブAPPモジュールへ通信するステップと、
    前記リモートACKメッセージの少なくとも一部を前記アクティブAPPモジュールから前記スタンバイAPPモジュールへ通信するステップと、
    を含み、
    前記方法は、
    前記アクティブTCPモジュールにおける1つ以上のTCPエンドポイントからTCPエンドポイント情報を取得するステップと、
    ヒットレススイッチオーバを開始するスイッチオーバイベントに先立って、取得される前記TCPエンドポイント情報を前記スタンバイAPPモジュールへ通信するステップと、
    をさらに含み、
    前記アクティブAPPモジュールは、アクティブボーダーゲートウェイプロトコル(「BGP」)APPを含み、前記スタンバイAPPモジュールは、スタンバイBGP APPを含む、
    方法。
  19. 前記アクティブAPPモジュールに関連付けられる第1の再送信リストに第1の再送信エントリを追加するステップと、
    前記スタンバイAPPモジュールに関連付けられる第2の再送信リストに第2の再送信エントリを追加するステップと、
    前記リモートACKメッセージを受信することに応じて、前記第1の再送信エントリを前記第1の再送信リストから除去するステップと、
    前記リモートACKメッセージを受信することに応じて、前記第2の再送信エントリを前記第2の再送信リストから除去するステップと、
    をさらに含む、請求項18に記載の方法。
  20. アクティブAPP状態と前記APPデータパケットに含まれる情報とに関連付けられる1つ以上のアクティブAPP状態変化のセットを判定するステップ、をさらに含み、前記APP SYNCメッセージは、当該アクティブAPP状態変化のセットを含む、請求項18に記載の方法。
  21. 前記APP SYNCメッセージは、インタープロセス通信チャネルを介して前記スタンバイAPPモジュールへ通信される、請求項18に記載の方法。
  22. 記データパケットは、BGP更新メッセージを含み、前記APP SYNCメッセージは、状態情報を前記アクティブBGP APPと同期させるために前記スタンバイBGP APPによって用いられるデータを含む、請求項18に記載の方法。
  23. 前記BGP更新メッセージ中に含まれる1つ以上のBGPルート更新を前記アクティブBGP APPにおいて読み出すステップと、
    ローカルポリシー情報ベースからの1つ以上のポリシーに基づいて、1つ以上のBGPルート更新を前記アクティブBGP APPにおいて破棄するステップと、
    アクティブBGP APP状態と、読み出される前記1つ以上のBGPルート更新と、破棄される前記1つ以上のBGPルート更新と、に基づいて、1つ以上のBGP状態変化のセットを判定するステップと、
    前記BGP状態変化のセットを含むように前記APP SYNCメッセージを生成するステップと、
    をさらに含む、請求項22に記載の方法。
  24. 前記スイッチオーバイベントを前記スタンバイAPPモジュールにおいて検出するステップと、
    過去に通信されたTCPエンドポイント情報を用いてスタンバイTCPモジュールにおける1つ以上のTCPエンドポイントを作成するステップと、
    前記スイッチオーバイベントを検出することに応じて、スタンバイ制御カードをスタンバイステータスからアクティブステータスへ移行させるヒットレススイッチオーバを実行するステップであって、当該移行は、前記リモートネットワークエレメントに透過的となる、ステップと、
    をさらに含む、請求項18に記載の方法。
JP2014509862A 2011-05-09 2012-05-02 アクティブtcpアプリケーションからスタンバイtcpアプリケーションへのヒットレススイッチオーバ Expired - Fee Related JP5981533B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/103,984 US8614941B2 (en) 2011-05-09 2011-05-09 Hitless switchover from active TCP application to standby TCP application
US13/103,984 2011-05-09
PCT/IB2012/052204 WO2012153236A1 (en) 2011-05-09 2012-05-02 Hitless switchover from active tcp application to standby tcp application

Publications (2)

Publication Number Publication Date
JP2014519737A JP2014519737A (ja) 2014-08-14
JP5981533B2 true JP5981533B2 (ja) 2016-08-31

Family

ID=46172823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014509862A Expired - Fee Related JP5981533B2 (ja) 2011-05-09 2012-05-02 アクティブtcpアプリケーションからスタンバイtcpアプリケーションへのヒットレススイッチオーバ

Country Status (9)

Country Link
US (2) US8614941B2 (ja)
EP (1) EP2708014A1 (ja)
JP (1) JP5981533B2 (ja)
KR (1) KR20140035925A (ja)
CN (1) CN103535016A (ja)
BR (1) BR112013026096A2 (ja)
IL (1) IL228714A0 (ja)
WO (1) WO2012153236A1 (ja)
ZA (1) ZA201307430B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9274851B2 (en) 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US8576703B2 (en) 2010-03-19 2013-11-05 Brocade Communications Systems, Inc. Synchronization of multicast information using bicasting
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US10581763B2 (en) * 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US9027098B2 (en) 2013-03-14 2015-05-05 Genband Us Llc Systems, methods, and computer program products for recording service status of applications
US9256660B2 (en) * 2013-08-06 2016-02-09 Telefonaktiebolaget L M Ericsson (Publ) Reconciliation protocol after ICR switchover during bulk sync
US9960958B2 (en) 2014-09-16 2018-05-01 CloudGenix, Inc. Methods and systems for controller-based network topology identification, simulation and load testing
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
WO2016121293A1 (ja) * 2015-01-28 2016-08-04 日本電気株式会社 ネットワーク中継装置、ゲートウェイ冗長化システム、プログラム、および冗長化方法
WO2016149870A1 (en) * 2015-03-20 2016-09-29 Intel Corporation Techniques for improving output-packet-similarity between primary and secondary virtual machines
CN108370327A (zh) 2015-09-25 2018-08-03 Fsa技术股份有限公司 多干线数据流调节系统和方法
CN105763477B (zh) * 2016-02-03 2019-09-06 新华三技术有限公司 一种流量控制策略处理方法及装置
US9949409B2 (en) * 2016-05-11 2018-04-17 Facebook, Inc. Modular network switches, associated structures, and associated methods of manufacture and use
US10362070B1 (en) * 2016-08-19 2019-07-23 Juniper Networks, Inc Method, system, and apparatus for achieving user space intervention during connection-establishment handshakes
US11025483B1 (en) * 2016-09-27 2021-06-01 Amazon Technologies, Inc. Fault tolerant virtual private network endpoint node
US10397189B1 (en) 2016-09-27 2019-08-27 Amazon Technologies, Inc. Peered virtual private network endpoint nodes
CN111741501B (zh) * 2019-03-25 2023-02-28 上海诺基亚贝尔股份有限公司 切换核心设备的方法、设备、装置和计算机可读介质
US11477117B1 (en) 2020-11-23 2022-10-18 Juniper Networks, Inc. High-availability switchover based on traffic metrics
US11405272B1 (en) 2021-05-27 2022-08-02 Cisco Technology, Inc. System and method to debug, optimize, profile, or recover network device in live network
CN113641623B (zh) * 2021-06-30 2024-02-20 曙光网络科技有限公司 信息交互方法和装置、框式网络设备、计算机可读存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910148B1 (en) * 2000-12-07 2005-06-21 Nokia, Inc. Router and routing protocol redundancy
US20020107966A1 (en) * 2001-02-06 2002-08-08 Jacques Baudot Method and system for maintaining connections in a network
DE60304307T2 (de) * 2002-01-24 2006-12-07 Alcatel Canada Inc., Kanata Methode und Apparat zur Bereitstellung von Routing Protokoll Redundanz in einem Netzelement
US20040078625A1 (en) * 2002-01-24 2004-04-22 Avici Systems, Inc. System and method for fault tolerant data communication
US7236453B2 (en) * 2002-06-27 2007-06-26 Jeremy Benjamin, Trustee High available method for border gateway protocol version 4
US7286468B2 (en) * 2002-11-12 2007-10-23 Cisco Technology, Inc. Routing system and method for synchronizing a routing system with peers after failover
US7535827B2 (en) * 2003-10-09 2009-05-19 Alcatel Lucent High availability of resources in telecommunications network using synchronized redundancy mechanism
CN100438362C (zh) * 2003-11-27 2008-11-26 华为技术有限公司 一种实现软件上主备双机热备份的方法
US7506194B2 (en) * 2004-03-24 2009-03-17 Cisco Technology, Inc. Routing system and method for transparently rocovering routing states after a failover or during a software upgrade
US7515525B2 (en) * 2004-09-22 2009-04-07 Cisco Technology, Inc. Cooperative TCP / BGP window management for stateful switchover
US7417947B1 (en) * 2005-01-05 2008-08-26 Juniper Networks, Inc. Routing protocol failover between control units within a network router
US7672223B2 (en) * 2005-03-07 2010-03-02 Cisco Technology, Inc. Method and apparatus for replicating a transport layer protocol stream
US7609617B2 (en) * 2005-04-14 2009-10-27 Cisco Technology, Inc. BGP hitless upgrade approaches
US7751311B2 (en) * 2005-05-19 2010-07-06 Cisco Technology, Inc. High availability transport protocol method and apparatus
US7549078B2 (en) * 2006-01-31 2009-06-16 Alcatel Lucent Redundancy in routing devices
US8051326B2 (en) * 2006-12-29 2011-11-01 Futurewei Technologies, Inc. System and method for completeness of TCP data in TCP HA
US9648147B2 (en) * 2006-12-29 2017-05-09 Futurewei Technologies, Inc. System and method for TCP high availability
CN101651706A (zh) * 2008-08-14 2010-02-17 华为技术有限公司 一种数据发送和接收方法以及系统和装置
US7940650B1 (en) * 2008-11-03 2011-05-10 Juniper Networks, Inc. Peer-agnostic TCP socket replication between primary and secondary routing engines
CN102035687B (zh) * 2011-01-06 2012-10-17 华为技术有限公司 Tcp连接的备份方法及其设备

Also Published As

Publication number Publication date
US20140082043A1 (en) 2014-03-20
KR20140035925A (ko) 2014-03-24
WO2012153236A1 (en) 2012-11-15
IL228714A0 (en) 2013-12-31
CN103535016A (zh) 2014-01-22
US20120290869A1 (en) 2012-11-15
US9013978B2 (en) 2015-04-21
ZA201307430B (en) 2015-01-28
BR112013026096A2 (pt) 2016-12-27
EP2708014A1 (en) 2014-03-19
JP2014519737A (ja) 2014-08-14
US8614941B2 (en) 2013-12-24

Similar Documents

Publication Publication Date Title
JP5981533B2 (ja) アクティブtcpアプリケーションからスタンバイtcpアプリケーションへのヒットレススイッチオーバ
US7801135B2 (en) Transport protocol connection synchronization
US8913485B2 (en) Open shortest path first (OSPF) nonstop routing (NSR) with link derivation
US8717935B2 (en) OSPF non-stop routing with reliable flooding
US9264302B2 (en) Methods and systems with enhanced robustness for multi-chassis link aggregation group
US9294343B2 (en) System and method using RSVP hello suppression for graceful restart capable neighbors
US7672223B2 (en) Method and apparatus for replicating a transport layer protocol stream
US20140149819A1 (en) Method and apparatus for protocol data unit recovery in an is-is system
US20120275456A1 (en) Expedited graceful ospf restart
CN110313138B (zh) 使用多个网元实现高可用性的相关方法和装置
WO2009067865A2 (en) Method, router, line card and active master card for realizng a link state database synchronization
US8923312B2 (en) OSPF nonstop routing synchronization nack
EP2575304B1 (en) OSPF nonstop routing (NSR) synchronization reduction
US10841040B2 (en) Acknowledgment and packet retransmission for spliced streams
US10848367B2 (en) Splicing concurrent connections into a high availability session
EP4415326A1 (en) Transport layer protocol state handling for border gateway protocol (bgp) processes
US20240244124A1 (en) Input state synchronization for border gateway protocol (bgp) processes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160621

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160728

R150 Certificate of patent or registration of utility model

Ref document number: 5981533

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees