(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】Diameter接続性の回復のための方法、システム、およびコンピュータ可読媒体
(51)【国際特許分類】
H04L 41/0668 20220101AFI20240905BHJP
【FI】
H04L41/0668
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024515925
(86)(22)【出願日】2022-08-10
(85)【翻訳文提出日】2024-03-12
(86)【国際出願番号】 US2022039981
(87)【国際公開番号】W WO2023055489
(87)【国際公開日】2023-04-06
(32)【優先日】2021-10-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】グローバー,ラリット
(72)【発明者】
【氏名】シュリマリ,ジャイェシュ
(72)【発明者】
【氏名】テワリ,ビマル・チャンドラ
(57)【要約】
Diameter接続性を回復するための方法、システム、およびコンピュータ可読媒体。方法の一例は、Diameter識別子を有するDiameterクライアントとの第1のDiameter接続を受け入れることを含む。方法は、Diameter識別子を用いて新たなDiameter接続を確立する要求を受信することを含む。方法は、新たなDiameter接続を確立する要求を特定の制限時間にわたって保持し、要求を保持している間、第1のDiameter接続を精査して、第1のDiameter接続が切断されているかどうかを判断することを含む。第1のDiameter接続が切断されているとの判断に応答して、方法は、第1のDiameter接続を中止し、Diameter識別子を有するDiameterクライアントとの第2のDiameter接続を受け入れることを含む。
【特許請求の範囲】
【請求項1】
Diameter接続性を回復するための方法であって、
Diameter識別子を有するDiameterクライアントとの第1のDiameter接続を受け入れることと、
前記Diameter識別子を用いて新たなDiameter接続を確立する要求を受信することと、
新たなDiameter接続を確立する前記要求を特定の制限時間にわたって保持し、前記要求を保持している間、前記第1のDiameter接続を精査して、前記第1のDiameter接続が切断されているかどうかを判断することと、
前記第1のDiameter接続が切断されていると判断し、前記第1のDiameter接続が切断されているとの判断に応答して、前記第1のDiameter接続を中止し、前記Diameter識別子を有する前記Diameterクライアントとの第2のDiameter接続を受け入れることと、
を含む方法。
【請求項2】
前記第1のDiameter接続が切断されていると判断することは、前記特定の制限時間に達する前に前記第1のDiameter接続が切断されていると判断することを含む、請求項1に記載の方法。
【請求項3】
前記第1のDiameter接続を精査することは、前記第1のDiameter接続上で前記DiameterクライアントにDiameterウォッチドッグ要求を送信することを含む、先行する請求項のいずれかに記載の方法。
【請求項4】
前記第1のDiameter接続が切断されていると判断することは、前記Diameterクライアントからリセットメッセージを受信することを含む、請求項3に記載の方法。
【請求項5】
前記リセットメッセージは、前記Diameterクライアントが前記Diameterウォッチドッグ要求を予期しない接続で受信されたとして処理する結果として送信される伝送制御プロトコル(TCP)メッセージである、請求項4に記載の方法。
【請求項6】
前記第1のDiameter接続を確立することは、前記Diameter識別子を用いて前記第1のDiameter接続のための第1のピアステートマシンを作成することを含む、先行する請求項のいずれかに記載の方法。
【請求項7】
前記第1のDiameter接続を中止して前記第2のDiameter接続を確立することは、前記第1のピアステートマシンをクリーンアップした後に、第2のピアステートマシンを作成することによって前記新たなDiameter接続を確立するための前記要求の処理を再開することを含む、請求項6に記載の方法。
【請求項8】
前記Diameterクライアントは、アクティブノードと、前記アクティブノードの障害に応答してアクティブな役割を引き継ぐように構成される1つまたは複数のスタンバイノードとを備える高可用性構成で展開される、先行する請求項のいずれかに記載の方法。
【請求項9】
新たなDiameter接続を確立するための前記要求を保持するための前記特定の制限時間は、Diameterトランザクションタイムアウト未満である、先行する請求項のいずれかに記載の方法。
【請求項10】
前記第1のDiameter接続を確立することは、トランスポート接続を確立した後に前記トランスポート接続上で機能交換要求(CER)メッセージを受信することを含む、先行する請求項のいずれかに記載の方法。
【請求項11】
Diameter接続性を回復するためのシステムであって、
少なくとも1つのプロセッサおよびメモリと、
前記少なくとも1つのプロセッサによって実現されるとともに、
Diameter識別子を有するDiameterクライアントとの第1のDiameter接続を受け入れ、
前記Diameter識別子を用いて新たなDiameter接続を確立する要求を受信し、
新たなDiameter接続を確立する前記要求を特定の制限時間にわたって保持し、前記要求を保持している間、前記第1のDiameter接続を精査して、前記第1のDiameter接続が切断されているかどうかを判断し、
前記第1のDiameter接続が切断されていると判断し、前記第1のDiameter接続が切断されているとの判断に応答して、前記第1のDiameter接続を中止し、前記Diameter識別子を有する前記Diameterクライアントとの第2のDiameter接続を受け入れる、
ように構成されるDiameterサーバと、
を備えるシステム。
【請求項12】
前記第1のDiameter接続が切断されていると判断することは、前記特定の制限時間に達する前に前記第1のDiameter接続が切断されていると判断することを含む、請求項11に記載のシステム。
【請求項13】
前記第1のDiameter接続を精査することは、前記第1のDiameter接続上で前記DiameterクライアントにDiameterウォッチドッグ要求を送信することを含む、請求項11または請求項12のいずれかに記載のシステム。
【請求項14】
前記第1のDiameter接続が切断されていると判断することは、前記Diameterクライアントからリセットメッセージを受信することを含む、請求項13に記載のシステム。
【請求項15】
前記リセットメッセージは、前記Diameterクライアントが前記Diameterウォッチドッグ要求を予期しない接続で受信されたとして処理する結果として送信される伝送制御プロトコル(TCP)メッセージである、請求項14に記載のシステム。
【請求項16】
前記第1のDiameter接続を確立することは、前記Diameter識別子を用いて前記第1のDiameter接続のための第1のピアステートマシンを作成することを含む、請求項11~請求項15のいずれかに記載のシステム。
【請求項17】
前記第1のDiameter接続を中止して前記第2のDiameter接続を確立することは、前記第1のピアステートマシンをクリーンアップした後に、第2のピアステートマシンを作成することによって前記新たなDiameter接続を確立するための前記要求の処理を再開することを含む、請求項16に記載のシステム。
【請求項18】
前記Diameterクライアントは、アクティブノードと、前記アクティブノードの障害に応答してアクティブな役割を引き継ぐように構成される1つまたは複数のスタンバイノードとを備える高可用性構成で展開される、請求項11~請求項17のいずれかに記載のシステム。
【請求項19】
新たなDiameter接続を確立するための前記要求を保持するための前記特定の制限時間は、Diameterトランザクションタイムアウト未満である、請求項11~請求項18のいずれかに記載のシステム。
【請求項20】
実行可能な命令が記憶された非一時的コンピュータ可読媒体であって、前記命令は、コンピュータのプロセッサによって実行されると、前記コンピュータを制御して、
Diameter識別子を有するDiameterクライアントとの第1のDiameter接続を受け入れるステップと、
前記Diameter識別子を用いて新たなDiameter接続を確立する要求を受信するステップと、
新たなDiameter接続を確立する前記要求を特定の制限時間にわたって保持し、前記要求を保持している間、前記第1のDiameter接続を精査して、前記第1のDiameter接続が切断されているかどうかを判断するステップと、
前記第1のDiameter接続が切断されていると判断し、前記第1のDiameter接続が切断されているとの判断に応答して、前記第1のDiameter接続を中止し、前記Diameter識別子を有する前記Diameterクライアントとの第2のDiameter接続を受け入れるステップと、
を実行する、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
この出願は、その開示内容全体が参照により本明細書に組み込まれる、2021年10月1日に出願された米国特許出願第17/491,984号の優先権の利益を主張する。
【0002】
技術分野
本明細書中に記載される主題は電気通信ネットワークに関する。より詳細には、本明細書中に記載される主題は、Diameter接続性の回復のための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0003】
背景
Diameterは、コアネットワーク要素間で加入者およびポリシー情報を伝達するために通信コアネットワークで広く使用される認証、認可、およびアカウンティング(AAA)プロトコルである。Diameterはアプリケーション層で動作し、例えば伝送制御プロトコル(TCP)やストリーム制御伝送プロトコル(SCTP)を基礎となるトランスポートプロトコルとして使用する。Diameterクライアントは、Diameter接続を開始するためにCER(機能交換要求(Capability Exchange Request))メッセージを送信する前に、サーバとのトランスポート接続を確立する。サーバがCEA(機能交換応答(Capability Exchange Answer))メッセージで応答すると、Diameter接続が確立される。
【0004】
Diameterクライアントが機能しなくなる、再起動する、あるいはアクティブノードを切り替える場合、接続が回復されるまでに時間がかかる場合がある。Diameter接続性の回復が遅れると、通話の切断、アカウンティングの損失、認可/アカウンティングの失敗など、クライアントでサービスに影響を与える問題をもたらす可能性がある。
【0005】
これらおよびその他の困難を考慮すると、Diameter接続性を回復するための方法、システム、およびコンピュータ可読媒体の必要性が存在する。
【発明の概要】
【0006】
概要
Diameter接続性を回復するための方法は、Diameter識別子を有するDiameterクライアントとの第1のDiameter接続を受け入れることを含む。方法は、Diameter識別子を用いて新たなDiameter接続を確立する要求を受信することを含む。方法は、新たなDiameter接続を確立する要求を特定の制限時間にわたって保持し、要求を保持している間、第1のDiameter接続を精査して、第1のDiameter接続が切断されているかどうかを判断することを含む。方法は、第1のDiameter接続が切断されていると判断し、第1のDiameter接続が切断されているとの判断に応答して、第1のDiameter接続を中止し、Diameter識別子を有するDiameterクライアントとの第2のDiameter接続を受け入れることを含む。
【0007】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続が切断されていると判断することは、特定の制限時間に達する前に第1のDiameter接続が切断されていると判断することを含む。
【0008】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続を精査することは、第1のDiameter接続上でDiameterクライアントにDiameterウォッチドッグ要求を送信することを含む。
【0009】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続が切断されていると判断することは、Diameterクライアントからリセットメッセージを受信することを含む。
【0010】
本明細書中に記載される主題の他の態様によれば、リセットメッセージは、DiameterクライアントがDiameterウォッチドッグ要求を予期しない接続で受信されたとして処理する結果として送信される伝送制御プロトコル(TCP)メッセージである。
【0011】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続を確立することは、Diameter識別子を用いて第1のDiameter接続のための第1のピアステートマシンを作成することを含む。
【0012】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続を中止して第2のDiameter接続を確立することは、第1のピアステートマシンをクリーンアップした後に、第2のピアステートマシンを作成することによって新たなDiameter接続を確立するための要求の処理を再開することを含む。
【0013】
本明細書中に記載される主題の他の態様によれば、Diameterクライアントは、アクティブノードと、アクティブノードの障害に応答してアクティブな役割を引き継ぐように構成される1つまたは複数のスタンバイノードとを備える高可用性構成で展開される。
【0014】
本明細書中に記載される主題の他の態様によれば、新たなDiameter接続を確立するための要求を保持するための特定の制限時間は、Diameterトランザクションタイムアウト未満である。
【0015】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続を確立することは、トランスポート接続を確立した後にトランスポート接続上で機能交換要求(CER)メッセージを受信することを含む。
【0016】
本明細書中に記載される主題の他の態様によれば、Diameter接続性を回復するためのシステムは、少なくとも1つのプロセッサおよびメモリを含む。システムは、少なくとも1つのプロセッサによって実現されるとともに、Diameter識別子を有するDiameterクライアントとの第1のDiameter接続を受け入れ、Diameter識別子を用いて新たなDiameter接続を確立する要求を受信し、新たなDiameter接続を確立する要求を特定の制限時間にわたって保持し、要求を保持している間、第1のDiameter接続を精査して、第1のDiameter接続が切断されているかどうかを判断し、第1のDiameter接続が切断されていると判断し、第1のDiameter接続が切断されているとの判断に応答して、第1のDiameter接続を中止し、Diameter識別子を有するDiameterクライアントとの第2のDiameter接続を受け入れるように構成されるDiameterサーバをさらに含む。
【0017】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続が切断されていると判断することは、特定の制限時間に達する前に第1のDiameter接続が切断されていると判断することを含む。
【0018】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続を精査することは、第1のDiameter接続上でDiameterクライアントにDiameterウォッチドッグ要求を送信することを含む。
【0019】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続が切断されていると判断することは、Diameterクライアントからリセットメッセージを受信することを含む。
【0020】
本明細書中に記載される主題の他の態様によれば、リセットメッセージは、DiameterクライアントがDiameterウォッチドッグ要求を予期しない接続で受信されたとして処理する結果として送信される伝送制御プロトコル(TCP)メッセージである。
【0021】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続を確立することは、Diameter識別子を用いて第1のDiameter接続のための第1のピアステートマシンを作成することを含む。
【0022】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続を中止して第2のDiameter接続を確立することは、第1のピアステートマシンをクリーンアップした後に、第2のピアステートマシンを作成することによって新たなDiameter接続を確立するための要求の処理を再開することを含む。
【0023】
本明細書中に記載される主題の他の態様によれば、Diameterクライアントは、アクティブノードと、アクティブノードの障害に応答してアクティブな役割を引き継ぐように構成される1つまたは複数のスタンバイノードとを備える高可用性構成で展開される。
【0024】
本明細書中に記載される主題の他の態様によれば、新たなDiameter接続を確立するための要求を保持するための特定の制限時間は、Diameterトランザクションタイムアウト未満である。
【0025】
本明細書中に記載される主題の他の態様によれば、第1のDiameter接続を確立することは、トランスポート接続を確立した後にトランスポート接続上で機能交換要求(CER)メッセージを受信することを含む。
【0026】
本明細書中に記載される主題の他の態様によれば、コンピュータのプロセッサによって実行されるとコンピュータを制御してステップを実行する実行可能命令が記憶された非一時的コンピュータ可読媒体が提供される。ステップは、Diameter識別子を有するDiameterクライアントとの第1のDiameter接続を受け入れるステップと、Diameter識別子を用いて新たなDiameter接続を確立する要求を受信するステップと、新たなDiameter接続を確立する要求を特定の制限時間にわたって保持し、要求を保持している間、第1のDiameter接続を精査して、第1のDiameter接続が切断されているかどうかを判断するステップと、第1のDiameter接続が切断されていると判断し、第1のDiameter接続が切断されているとの判断に応答して、第1のDiameter接続を中止し、Diameter識別子を有するDiameterクライアントとの第2のDiameter接続を受け入れるステップとを含む。
【0027】
本明細書中に記載される主題は、ハードウェアおよび/またはファームウェアと組み合わせたソフトウェアで実現することができる。例えば、本明細書中に記載される主題は、プロセッサによって実行されるソフトウェアで実現することができる。1つの例示的な実装形態では、本明細書中に記載される主題は、コンピュータのプロセッサによって実行されるとコンピュータを制御してステップを実行するコンピュータ実行可能命令が記憶されたコンピュータ可読媒体を使用して実現されてもよい。
【0028】
本明細書中に記載される主題を実現するのに適した例示的なコンピュータ可読媒体としては、ディスクメモリデバイス、チップメモリデバイス、プログラマブルロジックデバイス、および特定用途向け集積回路などの非一時的デバイスが挙げられる。さらに、本明細書中に記載される主題を実現するコンピュータ可読媒体は、単一のデバイスまたはコンピューティングプラットフォーム上に配置されてもよく、あるいは複数のデバイスまたはコンピューティングプラットフォームにわたって分散されてもよい。
【0029】
ここで、本明細書中に記載される主題について添付図面を参照して説明する。
【図面の簡単な説明】
【0030】
【
図1】DiameterサーバとDiameterクライアントとの間で送信されるメッセージを示すメッセージフロー図である。
【
図2】Diameterクライアントが古い接続で到達不可能であるとDiameterサーバが判断する前にDiameterクライアントが再起動を完了する例示的な状況を示すメッセージフロー図である。
【
図3】Diameterクライアントがサービスを再開した後にDiameter接続が切断されるとDiameterサーバが直ちに判断しない例示的な状況を示すメッセージフロー図である。
【
図4】高可用性構成の例を示すメッセージフロー図である。
【
図5】Diameter接続性の回復を示すメッセージフロー図である。
【
図6】Diameter接続性を回復するための例示的な方法のフロー図である。
【発明を実施するための形態】
【0031】
詳細な説明
本明細書中に記載される主題は、Diameter接続性を回復するための方法、システム、およびコンピュータ可読媒体に関する。
【0032】
Diameterは、コアネットワーク要素間で加入者およびポリシー情報を伝達するために通信コアネットワークで広く使用される認証、認可、およびアカウンティング(AAA)プロトコルである。Diameterはアプリケーション層で動作し、例えば伝送制御プロトコル(TCP)やストリーム制御伝送プロトコル(SCTP)を基礎となるトランスポートプロトコルとして使用する。Diameterクライアントは、Diameter接続を開始するためにCER(機能交換要求(Capability Exchange Request))メッセージを送信する前に、サーバとのトランスポート接続を確立する。サーバがCEA(機能交換応答(Capability Exchange Answer))メッセージで応答すると、Diameter接続が確立される。
【0033】
通常、Diameter接続は本質的に永続的であり、つまり、Diameter接続は、数週間、数か月、数年などの長期間にわたって確立されたままである。Diameterネットワーク要素(またはノード)は、それらが接続されるピアごとにピアステートマシンを維持する。Diameterネットワーク要素は、基礎となるトランスポート接続の健全性とピアアプリケーションの稼働状態を継続的に監視するため、接続が不安定/終了したり、ピアアプリケーションが遅い/停止したりするなどの問題を検出するとすぐに適切な措置を講じることができる。ピアノードからのDiameterアプリケーション応答は、ピアアプリケーションが到達可能であり、生きていることを保証するものとみなされる。
【0034】
しかしながら、接続上で送信するのに十分なシグナリングがない場合、Diameterノードはアプリケーション層ウォッチドッグであるDWR/DWA(Diameter Watchdog Request/Answer)を使用して、トランスポート層またはアプリケーション層の障害をタイムリーに検出する。ウォッチドッグメッセージを送信するまでの待機時間は、最初はTwinitに設定される構成可能なタイマーTwによって制御される。
【0035】
RFC3539に従って、Twinitにおける推奨値は、30秒であり、6秒からランダムジッター値を引いた値よりも小さく設定してはならない。アクティブなトランスポート接続が存在しないピアへのトランスポート接続試行の頻度を制御する別のタイマー(Tc)がある。RFC6733に従って、Tcにおける推奨値も30秒である。
【0036】
2つのDiameterノードA、Bがこれらの間に確立されたDiameter接続を有する状況の例を考慮されたい。ノードAが接続を閉じるようになっている場合、またはノードAが正常な態様でサービスを停止する場合、ノードAはDPR(Disconnect-Peer-Request)メッセージをノードBに送信することが期待される。
【0037】
しかしながら、ノードAが突然利用できなくなる場合(ノードAがシャットダウンするなど)、ノードAはDPRを送信できない。その結果、ノードBはノードAがまだ生きていると想定し続ける。ノードBがこの接続でTw持続時間にわたって応答に出会わない場合、ノードBはノードAにDWRを送信する。ノードAがまだ動作していない場合、このDWRは失われる。さらにTw持続時間にわたって待った後、ノードBは、最終的に、ノードAがもはやサービス中でないと推測し、ピアステートマシンをクリーンアップしてトランスポート接続を閉じる。
【0038】
この例が
図1に示される。
図1に示すように、Diameterノードが切断された接続を検出するには、最大Tw時間の2倍かかる場合がある。一部の実装態様は、ピアがデッドまたは到達不能であると宣言する前に、さらに数回DWRを送信する。
【0039】
図1は、Diameterサーバ102とDiameterクライアント104との間で送信されるメッセージを示すメッセージフロー図である。Diameterサーバ102およびDiameterクライアント104は各々、少なくとも1つのプロセッサとメモリとを備えるコンピュータシステム上に実現され得る。
図1は、Diameterクライアント104が再起動を完了する前に接続が切断されるとDiameterサーバ102が判断するシナリオを示す。
【0040】
Diameterクライアント104は、メッセージ106を送信して、トランスポート層108においてDiameterサーバ102との新たなトランスポート接続を開始する。その後、Diameterクライアント104は、Diameterサーバ102とのDiameter接続を確立するために要求メッセージ110を送信する。要求メッセージ110は、例えば、Diameterクライアント104におけるDiameter識別子を有する機能交換要求(CER)メッセージとなり得る。Diameter識別子は、例えばOrigin-ホストOH1となり得る。
【0041】
Diameterサーバ102は、接続のためのピアステートマシン114を作成する(112)ことによってDiameter接続を確立する。ステートマシン114は、閉状態と開状態との間で状態を変更することができる。ステートマシン114は、Diameterクライアント104におけるDiameter識別子、Origin-ホストOH1と関連付けられる。
【0042】
Diameterサーバ102は、要求メッセージ110に対して、応答メッセージ116、例えば機能交換応答(CEA)で応答する。要求メッセージ116は、トランスポート層108を介してDiameterクライアントに送信される(118)。その後、Diameterクライアント104は、さまざまなDiameterメッセージ120、例えば電気通信ネットワークのコアネットワークを動作させるためのメッセージをDiameterサーバ102と交換することができる。
【0043】
その後、Diameterクライアント104は再起動し始める(122)。Diameterクライアント104は、さまざまな理由のいずれかで再起動を開始することができる。しかしながら、Diameterクライアント104は、Diameter接続を閉じるためにDiameterサーバ102にメッセージを送信しないという点で、正常に再起動していない。
【0044】
同時に、ウォッチドッグタイマー124が、Diameterメッセージ120の最後の交換時から実行されている。ウォッチドッグタイマー124が期限切れになると、ウォッチドッグタイマー124はメッセージ126をステートマシン114に送信し、ステートマシン114はDWRメッセージ128を送信することによって応答する。Diameter送信タイマー130が動作を開始する。その後、DWRメッセージ128は、トランスポート層108によってDiameterクライアント104に送信される(132)。
【0045】
しかしながら、Diameterクライアント104は依然として再起動中である(122)。したがって、Diameterクライアント104はDWRメッセージ132を受信しないか、またはDWRメッセージ132に応答せず、メッセージが失われる。送信タイマー130は、期限切れになると、メッセージ134(例えば、R-Peer-Disc)をステートマシン114に送信する。
【0046】
ステートマシン114は、送信タイマー130が期限切れになる前にDWAメッセージを受信しないことに応答して、Diameter接続がダウンしていると判断する。Diameterサーバ102は、Diameter接続用に予約されたコンピューティングリソースを解放し(136)、ステートマシン114を削除する(138)。
【0047】
その後、Diameterクライアント104は再起動を完了し(122)、新たなメッセージ140を送信してトランスポート層接続を確立する。Diameterクライアント104は、Diameter接続を確立するために要求メッセージ142、例えばOrigin-ホスト=OH1を伴うCERメッセージを送信する。Diameterサーバ102は、新たなOH1ステートマシン146を作成することによって、新たなDiameter接続を作成する(144)。ステートマシン146は、応答メッセージ148、例えば、CEAメッセージを送信する。Diameterサーバ102は、トランスポート層108を使用して応答メッセージ150を送信する。
【0048】
前述のシナリオの変形例として、古い接続ではノードAに到達できないとノードBが判断できる前に、ノードAが再起動してサービスに戻る可能性がある。この場合、ノードAは、古い接続でノードBからDWR(またはその他のメッセージ)を受信する場合その接続を認識しなくなるため、古いトランスポート接続を(例えば、TCP RSTビットを送信することによって)即座にリセット/中止する。したがって、ノードBは、ノードAがサービスを再開した後、第1のメッセージを送信するとすぐに、接続が切断されると判断する。リセット指示を受信すると、ノードBは「古い」Diameterピアステートマシンをクリーンアップする。このシナリオが
図2に示される。
【0049】
図2は、Diameterクライアント104が古い接続では到達不可能であるとDiameterサーバ102が判断する前にDiameterクライアント104が再起動を完了する例示的な状況を示すメッセージフロー図である。
【0050】
Diameterクライアント104は、メッセージ106を送信して、トランスポート層108においてDiameterサーバ102との新たなトランスポート接続を開始する。その後、Diameterクライアント104は、Diameterサーバ102とのDiameter接続を確立するために要求メッセージ110を送信する。要求メッセージ110は、例えば、Diameterクライアント104におけるDiameter識別子を伴う機能交換要求(CER)メッセージとなり得る。Diameter識別子は、例えばOrigin-ホストOH1となり得る。
【0051】
Diameterサーバ102は、接続のためのピアステートマシン114を作成する(112)することによってDiameter接続を確立する。ステートマシン114は、閉状態と開状態との間で状態を変更することができる。ステートマシン114は、Diameterクライアント104におけるDiameter識別子、Origin-ホストOH1と関連付けられる。
【0052】
Diameterサーバ102は、要求メッセージ110に対して、応答メッセージ116、例えば機能交換応答(CEA)で応答する。要求メッセージ116は、トランスポート層108を介してDiameterクライアントに送信される(118)。その後、Diameterクライアント104は、さまざまなDiameterメッセージ120、例えば電気通信ネットワークのコアネットワークを動作させるためのメッセージをDiameterサーバ102と交換することができる。
【0053】
その後、Diameterクライアント104は再起動し始める(122)。Diameterクライアント104は、さまざまな理由のいずれかで再起動を開始することができる。しかしながら、Diameterクライアント104は、Diameter接続を閉じるためにDiameterサーバ102にメッセージを送信しないという点で、正常に再起動していない。
【0054】
同時に、ウォッチドッグタイマー124が、Diameterメッセージ120の最後の交換時から実行されている。ウォッチドッグタイマー124が期限切れになると、ウォッチドッグタイマー124はメッセージ126をステートマシン114に送信し、ステートマシン114はDWRメッセージ128を送信することによって応答する。その後、DWRメッセージ128は、トランスポート層108によってDiameterクライアント104に送信される(132)。
【0055】
Diameterクライアント104は再起動を完了し(122)、DWRメッセージ132を受信する。Diameterクライアント104は、古い接続を認識せず、それに応答して、メッセージ202、例えばTCP RSTビットを送信することによって古いトランスポート接続をリセット/中止する。
【0056】
Diameterサーバ102は、メッセージ202を受信する(206)。Diameterサーバ102は、Diameter接続用に予約されたコンピューティングリソースを解放し(208)、ステートマシン114を削除する(210)。
【0057】
Diameterクライアント104は、トランスポート層接続を確立するために新たなメッセージ212を送信する。Diameterクライアント104は、Diameter接続を確立するために要求メッセージ214、例えばOrigin-ホスト=OH1を伴うCERメッセージを送信する。Diameterサーバ102は、新たなOH1ステートマシン218を作成することによって、新たなDiameter接続を作成する(216)。ステートマシン218は、応答メッセージ220、例えば、CEAメッセージを送信する。Diameterサーバ102は、トランスポート層108を使用して応答メッセージ220を送信する(222)。
【0058】
ノードBがDiameterサーバであり、構成されたTw間隔に従って送信するDWRを除き、ノードA(クライアント)に送信するシグナリングがほとんど(またはまったく)ない、別の状況例を考慮されたい。この場合、クライアントノードがサービスを再開した後でも、サーバは前の接続が切断されていることをすぐには認識しない。さらに悪いことに、サーバは、再起動後にクライアントによって送信された新たなDiameter接続要求(CER)も拒否する。
【0059】
これは、CERメッセージの受信時に、サーバが同じOrigin-ホストに関して既存のピアステートマシンが存在するかどうかを確認するためである。RFC6733に従って、サーバが同じピア(CERにおけるOrigin-ホストによって識別される)とのR-開放状態(つまり、確立された状態)の既存の接続を見つける場合、サーバは、CERを拒否し、CERが受信されたトランスポート接続をドロップする必要がある。その後、クライアントはTcタイマー間隔の後に接続を再試行することが期待される。このシナリオが
図3に示される。
【0060】
図3は、Diameterクライアント104がサービスを再開した後にDiameter接続が切断されるとDiameterサーバ102が直ちに判断しない例示的な状況を示すメッセージフロー図である。
【0061】
Diameterクライアント104は、メッセージ106を送信して、トランスポート層108においてDiameterサーバ102との新たなトランスポート接続を開始する。その後、Diameterクライアント104は、Diameterサーバ102とのDiameter接続を確立するために要求メッセージ110を送信する。要求メッセージ110は、例えば、Diameterクライアント104におけるDiameter識別子を伴う機能交換要求(CER)メッセージとなり得る。Diameter識別子は、例えばOrigin-ホストOH1となり得る。
【0062】
Diameterサーバ102は、接続のためのピアステートマシン114を作成する(112)ことによってDiameter接続を確立する。ステートマシン114は、閉状態と開状態との間で状態を変更することができる。ステートマシン114は、Diameterクライアント104におけるDiameter識別子、Origin-ホストOH1と関連付けられる。
【0063】
Diameterサーバ102は、要求メッセージ110に対して、応答メッセージ116、例えば機能交換応答(CEA)で応答する。要求メッセージ116は、トランスポート層108を介してDiameterクライアントに送信される(118)。その後、Diameterクライアント104は、さまざまなDiameterメッセージ120、例えば電気通信ネットワークのコアネットワークを動作させるためのメッセージをDiameterサーバ102と交換することができる。
【0064】
その後、Diameterクライアント104は再起動し始める(122)。Diameterクライアント104は、さまざまな理由のいずれかで再起動を開始することができる。しかしながら、Diameterクライアント104は、Diameter接続を閉じるためにDiameterサーバ102にメッセージを送信しないという点で、正常に再起動していない。ウォッチドッグタイマー124が、Diameterメッセージ120の最後の交換時から実行されている。
【0065】
Diameterクライアント104がサービスを再開すると、Diameterクライアント104はメッセージ302を送信して、新たなトランスポート接続を確立する。Diameterクライアント104は、要求メッセージ304、例えばOrigin-ホスト=OH1を伴うCERメッセージを送信する。Diameterサーバ102は、同じ識別子、Origin-ホスト=OH1を伴う既存のステートマシン114が存在することを見出す(306)。これに応答して、Diameterサーバ102は、要求メッセージ304を拒否し、トランスポート接続の切断を開始し(308)、トランスポート接続を閉じるメッセージ310を送信する。
【0066】
ウォッチドッグタイマー124が期限切れになると、ウォッチドッグタイマー124はメッセージ312をステートマシン114に送信し、ステートマシン114はDWRメッセージ314を送信することによって応答する。その後、DWRメッセージ314は、トランスポート層108によってDiameterクライアント104に送信される(316)。
【0067】
これに応答して、Diameterクライアント104は、トランスポート接続をリセットするメッセージ318を送信する。Diameterサーバ102は、メッセージ318を、例えば、R-Peer-Discメッセージ320として受信する。Diameterサーバ102は、ステートマシン114を削除し(322)、コンピューティングリソースを解放する。
【0068】
Tcタイマーが期限切れになると、Diameterクライアント104は、トランスポート層接続を確立するために新たなメッセージ324を送信する。Diameterクライアント104は、Diameter接続を確立するために要求メッセージ326、例えばOrigin-ホスト=OH1を伴うCERメッセージを送信する。Diameterサーバ102は、新たなOH1ステートマシン330を作成することによって、新たなDiameter接続を作成する(328)。ステートマシン330は、応答メッセージ332、例えば、CEAメッセージを送信する。Diameterサーバ102は、トランスポート層108を使用して応答メッセージ332を送信する(334)。
【0069】
Diameter接続性の回復が遅れると、通話の切断、アカウンティングの損失、認可/アカウンティングの失敗など、クライアントでサービスに影響を与える問題をもたらす可能性がある。
【0070】
この問題は、クライアントがスタンドアロンノードとして展開される場合と比較して、クライアントがHA(高可用性、例えば1+1、n+1、またはn+k)構成で展開される場合により発生し得る。これは、一般に、スタンドアロンクライアントノードが再起動後にサービスを再開するまでに数十秒(場合によっては数分)かかるためであり、したがって、その時点までにサーバが(
図1に示されるウォッチドッグ障害メカニズムを通じて)切断された接続を検出している可能性が非常に高いためである。したがって、接続はほとんどの場合、クライアントがサービスに戻るとすぐに回復される。
【0071】
HA構成では、アクティブノードに障害が発生すると、スタンバイノードの1つが数秒以内またはそれよりも短い時間内にアクティブの役割を引き継ぐ(以下、「スイッチオーバー」と呼ぶ)。スイッチオーバー時間はTwタイマー値に比べてはるかに短いため、クライアントは、サーバが古い接続で次のDWRを送信して接続の切断を検出し得るかなり前に、Diameter接続の再確立を試みる。言い換えれば、クライアントがスイッチオーバー直後(例えば2秒以内)に動作していたとしても、接続が回復されるまでに長い遅延が発生する可能性がある。このシナリオが
図4に示される。
【0072】
図4は、高可用性構成の例を示すメッセージフロー図である。Diameterクライアント104は、アクティブノード402とスタンバイノード404とを含む。
【0073】
Diameterクライアント104は、ノード402を使用して、トランスポート層108でDiameterサーバ102との新しいトランスポート接続を開始するメッセージ106を送信する。その後、Diameterクライアント104は、Diameterサーバ102とのDiameter接続を確立するために要求メッセージ110を送信する。要求メッセージ110は、例えば、Diameterクライアント104におけるDiameter識別子を伴う機能交換要求(CER)メッセージとなり得る。Diameter識別子は、例えばOrigin-ホストOH1となり得る。
【0074】
Diameterサーバ102は、接続のためのピアステートマシン114を作成する(112)ことによってDiameter接続を確立する。ステートマシン114は、閉状態と開状態との間で状態を変更することができる。ステートマシン114は、Diameterクライアント104におけるDiameter識別子、Origin-ホストOH1と関連付けられる。
【0075】
Diameterサーバ102は、要求メッセージ110に対して、応答メッセージ116、例えば機能交換応答(CEA)で応答する。要求メッセージ116は、トランスポート層108を介してDiameterクライアントに送信される(118)。その後、Diameterクライアント104は、さまざまなDiameterメッセージ120、例えば電気通信ネットワークのコアネットワークを動作させるためのメッセージをDiameterサーバ102と交換することができる。
【0076】
その後、Diameterクライアント104は、アクティブノード402からスタンバイノード404へのスイッチオーバー406を開始し、スタンバイノード404がアクティブになる。Diameterクライアント104は、さまざまな理由のいずれかでスイッチオーバーを開始することができる。Diameterクライアント104は、Diameter接続を閉じるためにDiameterサーバ102にメッセージを送信しない。ウォッチドッグタイマー124が、Diameterメッセージ120の最後の交換時から実行されている。
【0077】
現在アクティブであるノード404を使用してDiameterクライアント104がサービスを再開すると、Diameterクライアント104は、新たなトランスポート接続を確立するためにメッセージ302を送信する。Diameterクライアント104は、要求メッセージ304、例えばOrigin-ホスト=OH1を伴うCERメッセージを送信する。Diameterサーバ102は、同じ識別子、Origin-ホスト=OH1を伴う既存のステートマシン114が存在することを見出す(306)。これに応答して、Diameterサーバ102は、要求メッセージ304を拒否し、トランスポート接続の切断を開始し(308)、トランスポート接続を閉じるメッセージ310を送信する。
【0078】
ウォッチドッグタイマー124が期限切れになると、ウォッチドッグタイマー124はメッセージ312をステートマシン114に送信し、ステートマシン114はDWRメッセージ314を送信することによって応答する。その後、DWRメッセージ314は、トランスポート層108によってDiameterクライアント104に送信される(316)。
【0079】
これに応答して、Diameterクライアント104は、トランスポート接続をリセットするメッセージ318を送信する。Diameterサーバ102は、メッセージ318を、例えば、R-Peer-Discメッセージ320として受信する。Diameterサーバ102は、ステートマシン114を削除し(322)、コンピューティングリソースを解放する。
【0080】
Tcタイマーが期限切れになると、Diameterクライアント104は、トランスポート層接続を確立するために新たなメッセージ324を送信する。Diameterクライアント104は、Diameter接続を確立するために要求メッセージ326、例えばOrigin-ホスト=OH1を伴うCERメッセージを送信する。Diameterサーバ102は、新たなOH1ステートマシン330を作成することによって、新たなDiameter接続を作成する(328)。ステートマシン330は、応答メッセージ332、例えば、CEAメッセージを送信する。Diameterサーバ102は、トランスポート層108を使用して応答メッセージ332を送信する(334)。
【0081】
接続要求が拒否されると、クライアントが別のTcタイマーが期限切れになるのを待ってから新しい要求を開始すると、Diameter接続性の回復に遅延が発生する可能性がある。この遅延は、Diameterサーバが、同じクライアントからの新しい接続で最初のCERを受信するとすぐに、クライアントとの切断された古い接続を検出することで軽減できる。これにより、サーバは、次のウォッチドッグタイムアウトを待つことなく、また追加のオーバーヘッドを発生させることなく、古いピアステートマシンを即座にクリーンアップして新しい接続を受け入れることができる。
【0082】
DiameterサーバがCERで受信したOrigin-ホストに対応する既存のピアステートマシンを見つけると、Diameterサーバは以下を実施することで、このCERがクライアントの再起動またはスイッチオーバーの結果であるかどうかを判断できる。
【0083】
-サーバは、Diameterで使用される典型的なトランザクションタイムアウト(数秒程度)よりもはるかに短い最大制限時間「Hold-cer-timer」(例えば、200ミリ秒)にわたってCER処理を条件付きで保留にするものとする。
【0084】
-サーバは、直ちに、またはできるだけ早く、古い接続でDWRを送信するものとする。
【0085】
-サーバはクライアントからCER要求をすでに受信しているため、クライアントアプリケーションがサービスに戻っていつでもDWRを受信できる状態にあることが期待される。
【0086】
-これがクライアントスイッチオーバーのケースである場合、DWRは、以前のアクティブノードと同じパブリックIPを使用するため、新たなアクティブノードに到達する。
【0087】
-これがスタンドアロンクライアントの再起動の場合、DWRは当初のクライアントノードに到達する。
【0088】
-いずれの場合にも、クライアントは、これを予期しない接続上のメッセージとして扱い、接続を直ちにリセット/中止する必要がある(例えば、TCP RSTを送り返す)。この指示は、一般に、数ミリ秒(0~10ミリ秒)以内にサーバに到達する必要がある。
【0089】
-このリセット指示を受信すると、サーバのトランスポート層はすぐに(またはできるだけ早く)アプリケーションにそれを通知し、アプリケーションがピアステートマシンをクリーンアップする。
【0090】
-これらのステップはほぼ瞬時に実行されるため、サーバはhold-cer-timerが期限切れになるかなり前にCER処理を再開する。当初のステートマシンはもう存在しないため、サーバは、これが新たなクライアントからの新たな接続要求であるかのように処理を進め、接続を受け入れる。
【0091】
-サーバがhold-cer-timer持続時間内にDWAを受信する場合、このことは古い接続がまだ生きていることを示すため、サーバは現在と同じように動作し、つまり、新しいCERを拒否し、新しい接続をドロップするものとする。
【0092】
-何らかの理由で、サーバがhold-cer-timer制限時間内にDWAまたはトランスポートリセット指示を受信しない場合(例えば、クライアントがローリングリブートまたはバックツーバックスイッチオーバーに苦しんでいる場合)、サーバは、CERを拒否し、新たな接続をドロップする。言い換えれば、それは、CERを拒否する前に短い時間(例えば200ミリ秒)待機することを除けば、従来のアプローチよりも悪くはない。
【0093】
要約すると、このアプローチにより、サーバはクライアントが再起動したかスイッチオーバーしたかを判断し、それに応じて、さらに遅延することなく新たな接続要求を受け入れることができる。これにより、再起動/スイッチオーバー後にクライアントによる接続試行をやみくもに拒否する場合と比較して、Diameter接続性の回復速度が向上する。このアプローチが
図5に示される。
【0094】
図5は、Diameter接続性の回復を示すメッセージフロー図である。
Diameterクライアント104は、メッセージ106を送信して、トランスポート層108においてDiameterサーバ102との新たなトランスポート接続を開始する。その後、Diameterクライアント104は、Diameterサーバ102とのDiameter接続を確立するために要求メッセージ110を送信する。要求メッセージ110は、例えば、Diameterクライアント104におけるDiameter識別子を伴う機能交換要求(CER)メッセージとなり得る。Diameter識別子は、例えばOrigin-ホストOH1となり得る。
【0095】
Diameterサーバ102は、接続のためのピアステートマシン114を作成する(112)ことによってDiameter接続を確立する。ステートマシン114は、閉状態と開状態との間で状態を変更することができる。ステートマシン114は、Diameterクライアント104におけるDiameter識別子、Origin-ホストOH1と関連付けられる。
【0096】
Diameterサーバ102は、要求メッセージ110に対して、応答メッセージ116、例えば機能交換応答(CEA)で応答する。要求メッセージ116は、トランスポート層108を介してDiameterクライアントに送信される(118)。その後、Diameterクライアント104は、さまざまなDiameterメッセージ120、例えば電気通信ネットワークのコアネットワークを動作させるためのメッセージをDiameterサーバ102と交換することができる。
【0097】
その後、Diameterクライアント104は、アクティブノード402からスタンバイノード404へのスイッチオーバー406を開始し、その後、スタンバイノード404がアクティブになる。Diameterクライアント104は、さまざまな理由のいずれかでスイッチオーバーを開始することができる。Diameterクライアント104は、Diameter接続を閉じるためにDiameterサーバ102にメッセージを送信しない。ウォッチドッグタイマー124が、Diameterメッセージ120の最後の交換時から実行されている。
【0098】
Diameterクライアント104が、現在アクティブであるノード404を使用してサービスを再開すると、Diameterクライアント104は、新たなトランスポート接続を確立するためにメッセージ302を送信する。Diameterクライアント104は、要求メッセージ304、例えばOrigin-ホスト=OH1を伴うCERメッセージを送信する。Diameterサーバ102は、同じ識別子、Origin-ホスト=OH1を伴う既存のステートマシン114が存在することを見出す(306)。
【0099】
要求メッセージ304を拒否する代わりに、Diameterサーバ102は、DWRメッセージ502を送信することによってDiameter接続を精査する。Diameterクライアント104は、DWRメッセージ504を受信し、接続をリセット/中止するべくメッセージ506を送り返す(例えば、TCP RSTを送り返す)ことによって、DWRメッセージ504を予期しない接続上のメッセージとして扱う。トランスポート層108は、Diameterアプリケーションにメッセージ508を通知する。Diameterサーバ102は、ステートマシン114を削除し(510)、Diameter接続に使用されるコンピューティングリソースを解放する。
【0100】
その後、Diameterサーバ102は、新たなピアステートマシン514を作成することによって、新たなDiameter接続を作成する(512)。Diameterサーバは、CER処理を再開し、CEAメッセージ516を送信し、トランスポート層108は、メッセージ518をDiameterクライアント104に送信して、新たなDiameter接続の確立を完了する。
【0101】
本明細書中で提案する解決策は、サーバが時間を無駄にすることなくクライアントのスイッチオーバー/再起動を確実に判断して接続性を回復するための効率的な方法を提供する。また、この解決策は、影響を受ける接続上で、および(クライアントでの)再起動/スイッチオーバーの可能性が疑われる場合にDWRを送信することで、影響範囲を制限する。
【0102】
図6は、Diameter接続性を回復するための例示的な方法600のフロー図である。方法600は、任意の適切なDiameterノード、例えばDiameterサーバによって実行することができる。いくつかの例では、Diameterクライアントは、アクティブノードと、アクティブノードの障害に応答してアクティブな役割を引き継ぐように構成される1つまたは複数のスタンバイノードとを有する高可用性構成で展開される。
【0103】
方法600は、Diameter識別子を有するDiameterクライアントとの第1のDiameter接続を確立すること602を含む。例えば、DiameterクライアントおよびサーバはCER/CEAメッセージを交換できる。第1のDiameter接続を確立することは、Diameter識別子を用いて第1のDiameter接続用の第1のピアステートマシンを作成することを含むことができる。Diameterクライアントおよびサーバは、Diameterクライアントが再起動する(例えば、再起動または新たなアクティブノードへのスイッチオーバー)前に何らかの時間にわたって第1のDiameter接続でDiameterメッセージを交換してもよい。
【0104】
方法600は、Diameter識別子を用いて新たなDiameter接続を確立する要求を受信すること604を含む。方法600は、新たなDiameter接続を確立する要求を特定の制限時間にわたって保持し606、要求を保持する間、第1のDiameter接続を精査して、第1のDiameter接続が切断されているかどうかを判断することを含む。第1のDiameter接続を精査することは、第1のDiameter接続でDiameterクライアントにDiameterウォッチドッグ要求を送信することを含むことができる。新たなDiameter接続を確立するための要求を保持するための特定の制限時間は、例えば、Diameterトランザクションタイムアウトより短いか、または大幅に短くすることができる。
【0105】
方法600は、第1のDiameter接続が切断されていると判断すること608を含む。第1のDiameter接続が切断されていると判断することは、特定の制限時間に達する前に第1のDiameter接続が切断されていると判断することを含むことができる。第1のDiameter接続が切断されていると判断することは、Diameterクライアントからリセットメッセージを受信することを含むことができる。リセットメッセージは、DiameterクライアントがDiameterウォッチドッグ要求を予期しない接続で受信されたとして処理した結果として送信される伝送制御プロトコル(TCP)メッセージであり得る。
【0106】
方法600は、第1のDiameter接続が切断されているとの判断に応答して、第1のDiameter接続を中止し、Diameter識別子を有するDiameterクライアントと第2のDiameter接続を確立すること610を含む。第1のDiameter接続を中止して第2のDiameter接続を確立することは、第1のピアステートマシンをクリーンアップし、第2のピアステートマシンを作成して新たなDiameter接続を確立する要求の処理を再開することを含むことができる。
【0107】
本開示の範囲は、そのような特徴または一般化が本明細書で説明される問題の一部またはすべてを軽減するかどうかに関係なく、本明細書で開示される任意の特徴もしくは特徴の組み合わせ(明示的または黙示的のいずれか)、または開示される特徴の一般化を含む。したがって、このような特徴の組み合わせに対して、本出願(または本出願に対する優先権を主張する出願)の審査中に、新たな請求項が作成される可能性がある。
【0108】
特に、添付の請求項を参照すると、従属請求項の特徴は独立請求項の特徴と組み合わせることができ、それぞれの独立請求項の特徴は、単に添付の請求項に列挙された特定の組み合わせだけではなく、任意の適切な方法で組み合わせることができる。
【国際調査報告】