(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022052741
(43)【公開日】2022-04-04
(54)【発明の名称】境界ゲートウェイプロトコルのためのターゲットネイバー探索
(51)【国際特許分類】
H04L 45/02 20220101AFI20220328BHJP
【FI】
H04L45/02
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021151642
(22)【出願日】2021-09-17
(31)【優先権主張番号】17/030,085
(32)【優先日】2020-09-23
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】513311642
【氏名又は名称】ノキア ソリューションズ アンド ネットワークス オサケユキチュア
(74)【代理人】
【識別番号】100094112
【弁理士】
【氏名又は名称】岡部 讓
(74)【代理人】
【識別番号】100106183
【弁理士】
【氏名又は名称】吉澤 弘司
(74)【代理人】
【識別番号】100114915
【弁理士】
【氏名又は名称】三村 治彦
(74)【代理人】
【識別番号】100125139
【弁理士】
【氏名又は名称】岡部 洋
(74)【代理人】
【識別番号】100209808
【弁理士】
【氏名又は名称】三宅 高志
(72)【発明者】
【氏名】プランジャル クマー デュッタ
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA14
5K030HC01
5K030HD03
5K030LB05
5K030MD07
(57)【要約】
【課題】境界ゲートウェイプロトコルにおける柔軟なルーティングを提供すること。
【解決手段】第1のルータは、第1のルータから複数のネットワークホップ離れた第2のルータからユニキャストであるターゲットメッセージを受信する。第1のルータは、ターゲットメッセージに応じて、第1のルータと第2のルータとの間にトランスポート層接続を確立する。次いで、第1のルータは、トランスポート層接続を介してセッションを確立する。セッションは、境界ゲートウェイプロトコル(BGP)に従って動作する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1のルータにおいて、前記第1のルータから複数のネットワークホップ離れた第2のルータからのユニキャストであるターゲットメッセージを受信するステップと、
前記ターゲットメッセージに応じて、前記第1のルータと前記第2のルータとの間にトランスポート層接続を確立するステップと、
前記トランスポート層接続上でセッションを確立するステップであって、前記セッションは、境界ゲートウェイプロトコル(BGP)に従って動作するステップとを含む方法。
【請求項2】
前記ターゲットメッセージを受信するステップは、前記第1のルータによって監視される第1のインターネットプロトコル(IP)アドレスを含むターゲットメッセージを受信するステップを含む、請求項1に記載の方法。
【請求項3】
前記ターゲットメッセージを受信するステップは、トランスポート層パラメータ、前記第2のルータに関連付けられた自律システム番号(ASN)、および前記第2のルータに関連付けられたルーティングプロトコルの識別子の少なくとも1つを含むターゲットメッセージを受信するステップを含む、請求項2に記載の方法。
【請求項4】
前記第1のルータは、前記第2のルータに関連付けられた前記ASNによって示されるように、前記第2のルータを含む自律システム(AS)内のルートリフレクタルータである、請求項3に記載の方法。
【請求項5】
前記少なくとも1つのトランスポート層パラメータが前記第1のルータに受け入れ可能であるかを判断するステップと、
前記少なくとも1つのトランスポート層パラメータが受け入れ可能であると判断することに応じて、前記第1のルータと前記第2のルータとの間にターゲット隣接関係を形成するステップとをさらに含む、請求項3に記載の方法。
【請求項6】
前記トランスポート層接続を形成するステップは、前記第2のルータとのターゲット隣接関係を形成することに応じて、前記トランスポート層接続を形成するステップを含む、請求項5に記載の方法。
【請求項7】
前記トランスポート層接続は、前記第1のIPアドレスと前記第2のルータに関連付けられた第2のIPアドレスとを用いて確立された伝送制御プロトコル(TCP)接続である、請求項3に記載の方法。
【請求項8】
前記セッションがアクティブであることを示すために前記第1のルータと前記第2のルータとの間でkeep-aliveメッセージを交換するステップと、
前記セッションの持続時間の増加に応じて、前記ターゲットメッセージの頻度を減少させるステップとをさらに含む、請求項1に記載の方法。
【請求項9】
前記セッションの前記持続時間が閾値持続時間を超えることに応じて、前記ターゲットメッセージの送信をオフにするステップをさらに含む、請求項8に記載の方法。
【請求項10】
第1のルータであって、
前記第1のルータから複数のネットワークホップ離れた第2のルータからのユニキャストであるターゲットメッセージを受信するトランシーバと、
前記ターゲットメッセージに応じて前記第1のルータと前記第2のルータとの間のトランスポート層接続を確立し、前記トランスポート層接続上でセッションを確立するプロセッサであって、前記セッションは、境界ゲートウェイプロトコル(BGP)に従って動作するプロセッサとを含む第1のルータ。
【請求項11】
前記トランシーバは、前記第1のルータによって監視される第1のインターネットプロトコル(IP)アドレスを含むターゲットメッセージを受信する、請求項10に記載の第1のルータ。
【請求項12】
前記トランシーバは、トランスポート層パラメータ、前記第2のルータに関連付けられた自律システム番号(ASN)、および前記第2のルータに関連付けられたルーティングプロトコルの識別子の少なくとも1つを含むターゲットメッセージを受信する、請求項11に記載の第1のルータ。
【請求項13】
前記第1のルータは、前記第2のルータに関連付けられた前記ASNによって示されるように、前記第2のルータを含む自律システム(AS)内のルートリフレクタである、請求項12に記載の第1のルータ。
【請求項14】
前記プロセッサは、前記少なくとも1つのトランスポート層パラメータが受け入れ可能であるかを判断し、
前記プロセッサは、前記少なくとも1つのトランスポート層パラメータが受け入れ可能であると判断することに応じて前記第1のルータと前記第2のルータとの間でターゲット隣接関係を形成する、請求項12に記載の第1のルータ。
【請求項15】
前記プロセッサは、前記第2のルータとの前記ターゲット隣接関係の形成に応じて前記トランスポート層接続を形成する、請求項14に記載の第1のルータ。
【請求項16】
前記トランスポート層接続は、前記第1のIPアドレスと前記第2のルータに関連付けられた第2のIPアドレスとを用いて確立される伝送制御プロトコル(TCP)接続である、請求項12に記載の第1のルータ。
【請求項17】
前記トランシーバは、前記セッションがアクティブであることを示すために前記第2のルータとkeep-aliveメッセージを交換し、前記プロセッサは、前記セッションの持続時間が増加することに応じて、前記ターゲットメッセージの頻度を減少させる、請求項12に記載の第1のルータ。
【請求項18】
前記プロセッサは、前記セッションの前記持続時間が閾値持続時間を超えることに応じて前記ターゲットメッセージの送信をオフにする、請求項17に記載の第1のルータ。
【請求項19】
少なくとも1つのプロセッサと、
コンピュータプログラムコードを含む少なくとも1つのメモリとを含む装置であって、
前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサとともに、少なくとも
第1のルータにおいて、前記第1のルータから複数のネットワークホップ離れた第2のルータからのユニキャストであるターゲットメッセージを受信するステップと、
前記ターゲットメッセージに応じて前記第1のルータと前記第2のルータとの間のトランスポート層接続を確立するステップと、
前記トランスポート層接続上でセッションを確立するステップであって、前記セッションは、境界ゲートウェイプロトコル(BGP)に従って動作するステップとを前記装置にさせる装置。
【請求項20】
前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサとともに、少なくとも
前記セッションがアクティブであることを示すために前記第2のルータとkeep-aliveメッセージを交換するステップと、
前記セッションの持続時間が増加することに応じて前記ターゲットメッセージの頻度を減少させるステップと、
前記セッションの前記持続時間が閾値持続時間を超えることに応じて前記ターゲットメッセージの送信をオフにするステップとを前記装置にさせる、請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
境界ゲートウェイプロトコル(BGP)は、例えば、自律システム(AS)間でネットワークを介してルーティング情報を交換するための制御プレーンプロトコルである。ネットワーク層到達性情報(NLRI)は、BGPを使用して交換され、レイヤ2およびレイヤ3の仮想私設通信網(VPN)、Label Switched Paths(LSPs)のマルチプロトコルラベルスイッチング(MPLS)などを含む様々なタイプのVPNもセットアップすることができる。一対のBGPルータ間のBGPピアリングは、BGPセッションと呼ばれ、ピアリングBGPルータは、ネットワーク内の複数のホップを介して直接接続または接続することができる。同じASの2つのルータ間のBGPセッションを内部BGP(i-BGP)と呼び、異なるASのルータ間のBGPセッションを外部BGP(e-BGP)と呼び、これは、異なるAS間でルーティング情報を交換する外部ゲートウェイプロトコルとして用いられる。BGPセッションは、伝送制御プロトコル(TCP)でアプリケーションとして実行され、これは、BGPセッションにおけるBGPメッセージの無損失で、信頼できる、および適切な配信を提供する。ピアリングBGPルータは、セッションの生存を維持するために所定の時間間隔でkeep-aliveメッセージを交換する。
【0002】
BGPは、ネットワーク仮想化オーバーレイ、例えば、オーバーレイに基づくvirtual extensible LAN(VXLAN)、汎用ルーティングカプセル化(NVGRE)を用いるネットワーク仮想化、およびMPLS over user datagram protocol(MPLSoUDP)をサポートするために、大規模データセンタにおける制御プレーンプロトコルとして使用される。BGPはまた、いくつかの大規模データセンタにおけるIS-ISおよびOSPFのようなリンクステート型ルーティングプロトコルの代わりに、アンダーレイルーティングプロトコルとして活用され得る。従来のリンクステート型プロトコルは、Shortest-Path-First(SPF)アルゴリズムを使用して経路を計算する。その結果、ソースと宛先との間のすべてのトラフィックは、同じSPF経路を辿り、データセンタ内で要求されるルーティングの柔軟性を提供しない。データセンタにおいて、ネットワークトポロジは、ネットワークへのサーバおよび他のシステムの継続的な追加のために頻繁に成長(水平にスケールアウト)する。BGPは、異なるタイプのトラフィックに関連するポリシーに基づいて異なる経路に沿ってトラフィックをルーティングできるように、ポリシーベースのルーティングをサポートする。BGPのこの態様は、データセンタにおけるアンダーレイルーティングプロトコルとしての展開の1つの動機である。BGPのいくつかの実施形態はまた、IS-ISおよびOSPFのようなリンクステートおよびSPF機能をサポートする。
【図面の簡単な説明】
【0003】
添付の図面を参照することによって、本開示はよりよく理解でき、その多くの特徴および利点は当業者にとって明らかとなる。異なる図面における同じ参照符号の使用は、類似または同一の項目を示す。
【0004】
【
図1】いくつかの実施形態によるマルチホップ境界ゲートウェイプロトコル(BGP)セッションを確立するためのターゲットネイバー探索を実装するネットワークのブロック図である。
【
図2】いくつかの実施形態による5-stage Closネットワークのブロック図である。
【
図3】いくつかの実施形態によるネイバー探索のためのターゲットHelloメッセージにおいて使用されるBGPユーザデータグラムプロトコル(UDP)メッセージヘッダである。
【
図4】いくつかの実施形態によるネイバー探索のためのターゲットHelloメッセージを送信するために使用されるBGP Helloメッセージである。
【
図5】いくつかの実施形態によるBGP Helloメッセージに含まれるフラグセットを示す図である。
【
図6】いくつかの実施形態によるType-Length-Value(TLV)フォーマットを示す。
【
図7】いくつかの実施形態によるBGP Helloメッセージを特徴付ける追加ビットを含むフラグのセットを示す図である。
【
図8】いくつかの実施形態による構成シーケンス番号TLVを示す。
【
図9】いくつかの実施形態によるマルチホップBGPルータ間の片側プロビジョニングを実装する通信システムのブロック図である。
【
図10】いくつかの実施形態によるターゲットネイバー探索を実行するようにルータを構成するための方法のフロー図である。
【
図11】いくつかの実施形態によるターゲットネイバー探索中にターゲットHelloメッセージを処理するための方法の第1部分のフロー図である。
【
図12】いくつかの実施形態によるターゲットネイバー探索中にターゲットHelloメッセージを処理するための方法の第2部分のフロー図である。
【
図13】いくつかの実施形態によるマルチホップBGPセッションの確立に応じてターゲットHelloメッセージ削減を実行するための方法のフロー図である。
【
図14】いくつかの実施形態によるマルチホップネイバー探索のためのターゲットHelloメッセージをサポートするNetwork Function Virtualization(NFV)アーキテクチャのブロック図である。
【発明を実施するための形態】
【0005】
多くのデータセンタは、柔軟なポリシーベースのルーティングをサポートするアンダーレイルーティングプロトコルとして境界ゲートウェイプロトコル(BGP)を利用する。BGPは、Open Shortest Path First(OSPF、OSPFv3)及びintermediate system-intermediate system(IS-IS)のような他のリンクステート型ルーティングプロトコルよりも好ましい、これらのリンクステート型プロトコルが同じ経路に従うようにソースと宛先との間のすべてのトラフィックを強制するからである。BGPセッションは、伝送制御プロトコル(TCP)のようなトランスポート層プロトコルでアプリケーションとして実行され、これは、BGPメッセージの無損失で信頼できる適切な配信を提供する。リーフルータは、異なる自律システム番号(ASN)を割り当てられ、1つのASNは、スパインのすべてのスパインルータに割り当てられる。BGPセッションは、各ASNに関連するエンティティ間で形成される。BGPセッションを形成するために、BGPルータは、BGPルータのすべてのリンクの各BGPネイバーについてネイバーインターネットプロトコル(IP)アドレスおよび自律システム(AS)を決定するためにネイバー探索を行い、ならびにルータのAS、ネイバールータ/スパインの生存性、アドレスなどのリンク属性、最大転送ユニット(MTU)などの情報を生成および配信する。BGPルータは、すべてのリンク上で「Hello」メッセージをマルチキャストすることによってネイバー探索を開始する。Helloメッセージは、ASNおよびルータのBGP識別子、Helloメッセージの保留時間、および場合によっては、他のパラメータを表すための1つまたは複数のType-Length-Value(TLV)を含む。ネイバーのBGPルータは、BGPルータのうちの1つが他のBGPルータからHelloメッセージを受信し、BGPルータ間に隣接関係を確立することに応じてTCP接続を確立する。次いで、BGPセッションは、TCP接続のトップで確立される。
【0006】
従来のBGPネイバー探索は、単一のリンクまたはホップを介して直接接続されるネイバーを探索するにすぎない。複数のホップにわたってBGPセッションを確立することを試みるルータは、従来のBGPネイバー探索を使用して互いに探索することができず、これはいくつかの欠点をもたらす。従来のBGPネイバー探索は、BGPピア間のTCP接続の確立前にマルチホップBGPピア間のトランスポートパラメータをネゴシエートするメカニズムを提供しない。トランスポートパラメータの例は、デュアルスタック(IPv4およびIPv6)をサポートするピアにおけるスタック優先度、ピアリングセッションのためにBGPルータによって使用されるローカルIPアドレスなどを含む。片側プロビジョニングは、例えば、ASのすべてのBGPルータとのピアリングを有するルートリフレクタをサポートするために、ルータが単一のリンクでネイバーを探索できるだけである場合、単一のリンク探索がメッシュネットワークにつながるため、実装することができない。さらに、片側プロビジョニングシナリオにおけるいくつかのルータは、ルートリフレクタが1ホップ以上離れている場合、ルートリフレクタを探索することができない。従来のBGPネイバー探索の別の欠点は、BGPセッションがトランスポートプロトコルで実行されているので、BGPセッションの確立前に動作する探索メカニズムなしに、基礎となるトランスポートプロトコルのネゴシエーションを実行することができないことである。
【0007】
図1~
図14は、ターゲットネイバー探索を実行するルータによってユニキャストされるターゲットネイバー探索メッセージを使用して実行されるマルチホップ境界ゲートウェイプロトコル(BGP)ネイバー探索の実施形態を開示する。いくつかの実施形態では、第1のルータは、第1のルータから複数のホップ離れた第2のルータからユニキャストであるターゲットネイバー探索メッセージを受信する。ターゲットネイバー探索メッセージは、第1のルータによって監視されるIPアドレスおよびトランスポート層パラメータ、ならびに第2のルータの自律システム番号(ASN)およびBGP識別子を含む。トランスポート層パラメータの例としては、第1のルータと第2のルータとの間のトランスポート層接続のためのIPアドレスが挙げられる。第1のルータは、トランスポート層パラメータを評価し、パラメータが許容可能であれば、第2のルータとのターゲット隣接関係を形成する。本明細書で使用される場合、「許容される」という用語は、第1および第2のルータの動作によって共有されるか、または互換性があるパラメータを指す。例えば、第2のルータは、タイムアウト間隔などのパラメータを示す情報を送信することができ、第1のルータは、提案されたパラメータが第1のルータの動作によって共有されるか、または互換性があるならば、それらのパラメータが許容可能であると判断する。
【0008】
トランスポート層接続は、ターゲット隣接関係の形成に応じてネゴシエートされたトランスポート層パラメータに基づいて確立される。いくつかの実施形態では、トランスポート層接続は、第1および第2のルータに関連付けられたIPアドレスを使用して確立された伝送制御プロトコル(TCP)接続である。次いで、BGPセッションは、トランスポート層接続を介して形成される。いくつかの実施形態では、第1のルータは、ターゲットネイバー探索メッセージをユニキャストしないパッシブルータであり、第2のルータは、隣接関係を確立するためにターゲットメッセージをユニキャストするアクティブルータである。例えば、第1のルータは、第2のルータおよび1つまたは複数の追加のアクティブルータを含むAS内でルートリフレクタとして機能するパッシブルータとして構成することができる。第1および第2のルータは、BGPセッションがアクティブであることを示すためにセッションkeep-aliveメッセージを定期的に交換する。いくつかの実施形態では、セッションkeep-aliveメッセージはルータがピア隣接関係を維持することを可能にするので、ターゲットネイバー探索メッセージの送信は、BGPセッションが動作している後に冗長になる。その結果、いくつかの実施形態では、ターゲットネイバー探索メッセージの周波数は減少され、場合によっては、ターゲット隣接関係の持続時間が増加するにつれてオフにされる。
【0009】
図1は、いくつかの実施形態による、マルチホップ境界ゲートウェイプロトコル(BGP)セッションを確立するためのターゲットネイバー探索を実装するネットワーク100のブロック図である。ネットワーク100は、ルータ101、102、103、104、105、106、107、108、109のセットを含み、これらは、本明細書において「ルータ101~109」と総称される。ルータ101~109は、BGPのようなポリシーベースのルーティングをサポートするルーティングプロトコルに基づいて通信のためのセッションを確立し、このルーティングプロトコルは、特に自律システム(AS)間でルーティング情報を交換するために広く使用される制御プレーンプロトコルである。BGPのいくつかの実施形態は、異なるタイプのレイヤ3、レイヤ2仮想私設通信網(VPN)、Label Switched Paths(LSPs)のマルチプロトコルラベルスイッチング(MPLS)などを設定するために使用されるネットワーク層到達性情報(NLRI)の交換をサポートするように拡張される。BGPの拡張バージョンは、マルチプロトコルBGP(MP-BGP)と呼ばれる。
【0010】
ルータ101~109は、BGPを介して交換される情報を使用して、一対のBGPルータ間にBGPピアリングを確立する。BGPピアリングは、BGPセッションとも称される。ピアリングBGPルータは、直接接続され得るか、または複数ホップ離れ得る。図示した実施形態では、ルータ101とルータ102との間のBGPセッション110は、ルータ101とルータ102とがリンクによって直接接続されるので、シングルホップセッションである。ルータ102とルータ108との間のBGPセッション115は、BGPセッション115が複数のルータ、例えばルータ104、106を横断するので、マルチホップセッションである。
【0011】
BGPセッション110、115は、伝送制御プロトコル(TCP)のようなトランスポート層プロトコル上でアプリケーションとして実行され、これは、セッションにおけるBGPメッセージの無損失で、信頼できる、適切な配信を提供する。BGPセッションを作成するために、ピアリングBGPルータは、BGPをTCPの上のアプリケーションとして示すポート番号179などの所定のポート番号でTCPセッションを作成するように構成される。TCP接続が動作可能になると、ピアリングBGPルータは、TCP接続を介してBGPセッションを確立する。BGPセッションが確立された後、ピアリングルータは、BGPセッションを介して到達性情報を(メッセージとして)交換することができる。いくつかの実施形態では、BGPルータは、セッションを維持するために、BGPセッション上で60秒ごとに19バイトのkeep-aliveメッセージを周期的に送信する。BGPルータはまた、異なる時間間隔で、またはイベントに応じて、異なるサイズのkeep-aliveメッセージを送信することができる。同一の自律システム(AS)における2つのルータ間のBGPセッションは、内部BGP(i-BGP)と呼ばれる。異なるAS内のルータ間のBGPセッションは、外部BGP(e-BGP)と呼ばれる。
【0012】
いくつかの実施形態では、BGPは、AS間でルーティング情報を交換するための外部ゲートウェイプロトコルとして使用される。他の実施形態では、BGPは、ネットワーク仮想化オーバーレイ、例えば、virtual extensible LAN(VXLAN)、汎用ルーティングカプセル化(NVGRE)を使用するネットワーク仮想化、およびMPLS over user datagram routing encapsulation(MPLSoUDP)ベースのオーバーレイをサポートするために、大規模データセンタにおける制御プレーンプロトコルとして使用される。BGPはまた、いくつかの大規模データセンタにおけるIS-ISおよびOSPFのようなリンクステート型ルーティングプロトコルの代わりに、アンダーレイルーティングプロトコルとして活用され得る。従来のリンクステート型プロトコルは、Shortest-Path-First(SPF)アルゴリズムを使用して経路を計算する。その結果、ソースと宛先との間のすべてのトラフィックは、同じSPF経路を辿り、データセンタ内で要求されるルーティングの柔軟性を提供しない。データセンタにおいて、ネットワークトポロジは、ネットワークへのサーバおよび他のシステムの継続的な追加のために頻繁に成長(水平にスケールアウトする)する。BGPは、異なるタイプのトラフィックに関連するポリシーに基づいて異なる経路に沿ってトラフィックをルーティングできるように、ポリシーベースのルーティングをサポートする。BGPのこの態様は、データセンタにおけるアンダーレイルーティングプロトコルとしてのその展開の1つの動機付けである。BGPのいくつかの実施形態はまた、IS-ISおよびOSPFのようなリンク状態およびSPF機能をサポートする。
【0013】
BGPの従来の実装は、複数ホップ離れたBGPにおけるネイバーの動的探索をサポートしない。各マルチホップネイバーに関する情報は、ルータにおいて明示的に構成されなければならず、ルータは、マルチホップネイバー情報に基づいて各ネイバーへのTCP接続を確立する。その後、ルータは、TCP接続を介してBGPセッションを確立する。従来のBGPにおけるネイバー探索は、単一のリンクまたはホップを介して直接接続されるネイバーの動的発見に限定される。ネイバー探索の間、単一のリンクまたはホップを介してルータに接続されたネイバーを表す情報は、ネイバーによってマルチキャストされる。次いで、ネイバーを識別する情報がルータに構成される。ネイバーを識別する情報としては、例えば、ネイバーに関連付けられたIPアドレス、ルータのBGP識別子、ネイバー端のリンクの属性等が挙げられる。探索されたネイバーの情報に基づいて、ルータは、各ネイバーへのTCP接続を確立し、その後、TCP接続を介してBGPセッションを確立する。複数のホップにわたってBGPセッションを確立することを試みるルータは、従来のBGPネイバー探索を使用して互いに探索することができない。したがって、本明細書で説明するように、従来のBGPネイバー探索は、BGPピア間のTCP接続の確立前にマルチホップBGPピア間でトランスポートパラメータをネゴシエートするメカニズムを提供せず、他の欠点を生み出す。
【0014】
BGPの従来の実装における前述の欠点に少なくとも部分的に対処するために、ルータ101~109のいくつかの実施形態は、複数のリンクまたはホップ離れたあるネイバーを識別することができるターゲットネイバー探索を実装する。例えば、ルータ102は、マルチホップネイバー探索を開始するためにルータ108にターゲットネイバー探索メッセージ120をユニキャストすることができる。ターゲットネイバー探索メッセージ120は、ルータ108のIPアドレス、トランスポート層パラメータ、ルータ102に関連するASN、ネットワーク層プロトコルの指示(例えば、IPv4またはIPv6)、およびルータ102に関連するBGP識別子などの情報を含む。メッセージ120を受信すると、ルータ108は、ルータ102とのターゲット隣接関係125を形成する。ルータ108は、ターゲットネイバー探索メッセージ120によって作成されたターゲット隣接関係125に応じてルータ102とのトランスポート層接続を確立する。次いで、ルータ108は、トランスポート層接続を介してBGPセッション115セッションを確立する。いくつかの実施形態では、ルータ102、108は、BGPセッション115がアクティブであることを示すためにセッションkeep-aliveメッセージを交換する。いくつかの実施形態では、BGPセッションが動作した後、セッションkeep-aliveメッセージがピアルータへの隣接関係125を維持するので、ルータ間の周期的ターゲットネイバー探索メッセージは冗長となる。ルータ102、108によって交換されるターゲットネイバー探索メッセージの頻度は、ターゲット隣接関係125の持続時間が増加するにつれて減少され得る。
【0015】
BGPセッション115の持続時間に対する応答は増加する。場合によっては、ターゲットkeep-aliveメッセージの送信は、BGPセッション115の持続時間が閾値持続時間を超えることに応じてオフにされる。
【0016】
図2は、いくつかの実施形態による、シングルホップBGPセッションを確立するためのリンクレベルネイバー探索を実装する5-stage Closネットワーク200のブロック図である。5-stage Closネットワーク200は、スパインルータを含む1つまたは複数のスパインを介してリーフルータを相互接続するリーフアンドスパイントポロジーにおいて実装される。図示した実施形態では、5-stage Closネットワーク200は、スパイン205、210、215によって相互接続される4つのリーフルータ201、202、203、204(本明細書において「リーフルータ201~204」と総称する)を含む。スパイン205はルータ206、207を含み、スパイン210はルータ211、212、213、214を含み、スパイン215はルータ216,217を含む。リーフルータ201~204は、リーフルータ201に接続されるサーバ220、221、222などの1つまたは複数のサーバへの接続を提供する。
図2に示すルータ、スパイン、スパインルータ、およびサーバの数は、例示目的のために選択される。ネットワーク200のいくつかの実施形態は、より多い数またはより少ない数のリーフルータ、スパイン、スパインルータ、およびサーバを含む。さらに、ネットワーク200内のエンティティの数は、1つまたは複数のルータ、スパイン、スパインルータ、またはサーバの追加または削除に起因して動的に変化することができる。
【0017】
リーフルータ201~204は、2つ以上のスパインルータに冗長に接続される。図示した実施形態では、リーフルータ201はスパインルータ206、207に冗長に接続され、リーフルータ202はスパインルータ206、207に冗長に接続されている。リーフルータ203はスパインルータ216、217に冗長に接続され、リーフルータ204はスパインルータ216、217に冗長接続される。異なるスパインのスパインルータも冗長に接続されている。図示した実施形態では、スパインルータ206はスパインルータ211、212に冗長に接続され、スパインルータ207はスパインルータ213、214に冗長に接続される。リーフルータ201~204は相互接続されず、スパイン内のスパインルータはClosトポロジーにおいて相互接続されない。したがって、サーバ220~222は、他のリーフルータ202~204に関連する他のサーバに5ホップ以下で接続される。
【0018】
リーフルータおよびスパインには、自律システム番号(ASN)が割り当てられる。図示された実施形態では、自律システム番号231、232、233、234(本明細書では「ASN231~234」と総称される)は、リーフルータ201~204にそれぞれ割り当てられる。ASN235、240、245は、スパイン205、210、215にそれぞれ割り当てられる。いくつかの実施形態では、ASN231~234、235、240、245は、レンジ64512~65534の値を有するASNなどの利用可能なASNの所定のセットを含むPrivate Use ASN空間から割り当てられる。5-stage Closネットワーク200内のルータ201~204、206、207、211~214、216、217は、BGPに従って実装および動作する。5-stage Closネットワーク200のトポロジーにおいて、直接接続されたルータ対は常に異なるASに属するので、それらの間のセッションは外部BGPセッションとして確立される。
【0019】
BGPにおけるネイバープロビジョニングは、BGPルータのリンク上でBGPネイバーのためのネイバーIPアドレスおよびASを構成する。したがって、BGPプロビジョニングは、新しいリーフ、スパイン、およびそれらの間のリンクの追加に応じてデータセンタファブリックの成長に応じて注意深く更新される。例えば、新しいサーバラックを配備することに応じて新しいリーフルータがスパイン205に接続される場合、新しいリーフルータは、ルータ206、207とのe-BGPセッションのために構成される必要があり、ルータ206、207の各々は、リーフルータとのe-BGPセッションのために構成される必要がある。いくつかの実施形態では、数百のリーフルータがスパイン205に追加され、各リーフルータの追加は、e-BGPピアリングのために明示的な構成を必要とする。
【0020】
さらに、大規模データセンタにおけるBGP展開では、BGPは、BGPを実行するデータセンタのリンクレベルトポロジーの詳細ビューを提供するために、直接接続されたリンク上でそのリンクおよびそのネイバーを記述し、BGP-LSを介してこの情報をエクスポートすることができるべきである。BGPが、そのリンク上でそのネイバーを探索し、その生存性を監視し、リンク属性(アドレス等)を学習する能力は、そのようなBGPネットワークにおいてリンク状態トポロジーを伝達するために必要とされる。この情報は、BGPにおけるリンク状態のルーティング機能をサポートするために活用され得る。この情報はまた、従来のBGPルーティングを実行するネットワークにおいてリンク状態トポロジーを伝えるために、およびデータセンタおよびコア/アクセスネットワークにまたがるエンドツーエンドトラフィックエンジニアリング使用ケースを可能にするために、活用され得る。
【0021】
リンクレベルBGPネイバー探索を実装するために、BGPルータは、すべてのリンク上でUDPベースのHelloメッセージをマルチキャストする。このメッセージにおいて、UDP宛先ポートは、所定の値(例えば179)として符号化され、マルチキャストパケットのIPヘッダ内の宛先アドレスは、「このサブネット上のすべてのルータ」グループマルチキャストアドレスとして符号化される。例えば、グループマルチキャストアドレスは、IPv4の場合には224.0.0.2、IPv6の場合にはFF02::2として符号化することができる。IPソースアドレスは、メッセージが送られるインターフェースのアドレスに設定される。
【0022】
BGP Helloメッセージのいくつかの実施形態は、送信ルータのASNおよびBGP識別子、受信BGPルータであって、別のHelloメッセージを受信することなく、送信BGPルータから受信したHelloメッセージの記録を維持する時間を指定する時間を保持する受信BGPルータ、および様々な他のパラメータを記述する1つまたは複数のTLV(Type-Length-Valueフォーマット)であって、TCP接続固有パラメータなどの1つまたは複数を含む。
【0023】
BGPルータがリンク上の直接接続されたネイバーからHelloメッセージを受信し、メッセージに含まれるパラメータが受信BGPルータにとって許容される場合、受信BGPルータはネイバーと隣接関係を確立する。隣接関係が確立されると、BGPルータはTCP接続を確立し、その後、TCP接続の上でBGPセッションを確立する。この手法は、直接接続されたルータとのピアリング関係を探索するために使用される。例えば、5-stage Closネットワーク200内のルータ201~204、206、207、211~214、216、217は、任意のネイバールータとのe-BGPピアリングのいかなる明示的な構成もなく、BGPルータとして実装される。各ルータ201~204、206、207、211~214、216、217は、5-stage Closネットワーク200のリンクにBGP Helloをマルチキャストする。ネイバーBGPルータは、Helloメッセージの交換を介して自動的に互いに探索する。例えば、ルータ201、206は、それらを接続するリンクにBGP Helloをマルチキャストする。その結果、ルータ201、206は、互いに探索し、それらの間のe-BGPセッションを確立するために必要なパラメータを学習する。ルータ201とルータ206との間には隣接関係が形成され、隣接関係に関連付けられたパラメータを用いてBGPセッションが確立される。ネイバー探索に対するこの手法は、複数のBGPルータがEthernetLANなどのブロードキャストマルチアクセスネットワークによって相互接続される場合に欠点を有する。
【0024】
本明細書で説明するように、従来のBGPネイバー探索は、リンク上で直接接続されたネイバーを探索することに限定され、これはいくつかの欠点をもたらす。その結果、ルータ(例えば、
図1に示すルータ101~109、および
図2に示すルータ201~204、206、207、211~214、216および217)は、ターゲットネイバー探索を実施し、ルータが、互いに離れる1つまたは複数のネットワークホッピングであるルータを探索することを可能にする。ターゲットネイバー探索は、ネイバールータの特性を学習するために使用され、ネイバールータとのBGPセッションを設定する適切な決定を行う。例えば、ターゲットネイバー探索は、マルチホップBGPピアリングにおける以下の問題に対処する。
【0025】
第1に、従来のBGPピアリングは、ルータにおける固定トランスポートパラメータの事前プロビジョニングを必要とする。例えば、従来のBGPピアリングは、ピア間のTCP接続を確立するために使用されるIPアドレスを事前プロビジョニングすることを必要とする可能性がある。これは、異なるトランスポートパラメータを伴う以下のシナリオにおいて問題になる。1)ピアは、デュアルスタックネットワークプロトコル(例えば、IPv4およびIPv6)をサポートするが、ピアは、ネットワークプロトコルの一方または他方を使用することを好む。さらに、ピアは、そのネットワークプロトコル優先を動的に変更することができる。ルータのうちの1つが100個のピアリングセッションを有し、すべてのピアがその優先を変更する場合、ルータは、100個のピアの各々に対する構成を更新する必要がある。同様に、ルータのうちの1つが、その優先にローカル変更を行う場合、100個のピアの各々は、それらの構成を更新する必要がある。2)ルータのいくつかの実施形態は、セキュリティ上の理由から、すべてのピアリングセッションにおいて接続にわたって同じローカルIPアドレスを使用しない。例えば、ルータ201は、ピアルータが属するロケーション、ネットワーク、またはASに基づいてローカルIPアドレスを選択することができる。BGPは、マルチホップBGPピア間のTCP接続の確立前にトランスポートパラメータをネゴシエートするメカニズムをサポートしない。したがって、ルータのいくつかの実施形態は、TCP接続に使用されるIPアドレスをネゴシエートするための探索メカニズムを実装する。
【0026】
第2に、従来のBGPでは片側プロビジョニングは可能ではない。例えば、片側プロビジョニングは、ASにおいて必要とされるi-BGP(internal BGP)ピアリングの数を削減するために、BGPルーティングレフレクタとしてAS内にルータを確立するために使用される。いくつかの実施形態では、すべてのi-BGPルータは、AS内のすべての他のi-BGPルータとのi-BGPピアリングを有し、i-BGPルータ間のi-BGPセッションのフルメッシュをもたらす。フルメッシュを避けるために、単一のルータ(または冗長のために2つ)がルートリフレクタとして確立され、AS内の他のルータがルートリフレクタに対するピアとして構成される。したがって、ルートリフレクタは、i-BGPの論理的フルメッシュ要件の代替を提供する。ルートリフレクタは、i-BGPセッションのための焦点として作用し、ルートリフレクタの目的は、AS内のルータに関与するトラフィックの集中である。例えば、複数のi-BGPルータは、フルメッシュ内のすべての他のルータとのピアではなく、ルートリフレクタサーバとして働くルートリフレクタにおいて実装される中心点とピアすることができる。他のi-BGPルータはルートリフレクタへのクライアントとなる。大規模i-BGPネットワークでは、ルートリフレクタは、ルートリフレクタとクライアントルータとの間のピアリング関係を確立するために、クライアントルータの各々のIPアドレス(少なくとも)で構成される。各潜在的なクライアントのためにルートリフレクタを構成する代わりに、ルータのいくつかの実施形態は、クライアントを自動的に探索し(ルートリフレクタとして動作するとき)、クライアントとのピアリングセッションのためのトランスポートパラメータをネゴシエートするように構成される。ルートリフレクタに対するクライアントとして動作するとき、ルータは、ルートリフレクタによって送信されるターゲット探索メッセージに基づいて、ルートリフレクタとのピアリングセッションのためのトランスポートパラメータをネゴシエートするように構成される。
【0027】
従来のマルチホップBGPは、BGPセッションの確立前に先行する探索メカニズムがないために、異なるトランスポートプロトコル(例えば、TCP以外のトランスポートプロトコル)をBGPセッションの基礎となるメカニズムとしてネゴシエートすることをサポートしない。その結果、ルータは、BGPセッションの確立前にターゲットネイバー探索メッセージをユニキャストし、ターゲットネイバー探索メッセージは、基礎となるトランスポートプロトコルをネゴシエートするために使用される。
【0028】
ターゲットネイバー探索を実装するために、ルータ(
図1に示すルータ101~109等)はローカルIPアドレスで、ネットワーク内の複数のルーティングホップ離れている潜在的なネイバールータからユニキャストされるHelloメッセージを待ち受ける。ルータは、定期的にHelloメッセージを潜在的なネイバールータのIPアドレスにユニキャストするようにも設定される。ネイバールータは、対応するIPアドレスでユニキャストHelloメッセージを受信している。本明細書では、Helloメッセージを「ターゲットHelloメッセージ」と呼ぶ。ターゲットHelloメッセージは、マルチホップBGPセッションのネゴシエーション用のさまざまなパラメータを伝送する。ネイバーからターゲットHelloメッセージを受信すると、ルータはメッセージに含まれるパラメータを評価する。パラメータが受け入れ可能な場合、ルータはネイバーとターゲット隣接関係を形成する。パラメータが受け入れ可能でない場合、ルータは、受け入れ可能なパラメータセットが識別されるか、隣接関係を形成する試みが失敗するまで、追加のメッセージを交換することによって、異なるパラメータセットをネゴシエートできる。ターゲット隣接関係の形成後、ルータとネイバールータは、ネゴシエートされたパラメータに基づいてTCP接続を確立する。ネゴシエートされたパラメータの例には、TCP接続などで使用されるIPアドレスが含まれる。新しい隣接関係の形成に続いて、隣接するネイバーとのBGPセッションが確立される。
【0029】
いくつかの実施形態では、ターゲットネイバー探索は、片側プロビジョニングをサポートするために使用される。片側プロビジョニングシナリオでは、1つのルータが「パッシブ」ルータとして構成され、ネットワーク内の他のルータが「アクティブ」ルータとして構成される。アクティブなBGPルータのみが、そのIPアドレス上でHelloメッセージを受信している(パッシブ)隣接ルータ内のIPアドレスに周期的なターゲットHelloをユニキャストすることによって、BGPピアリングを開始するように構成される。パッシブBGPルータは、潜在的なネイバーにターゲットHelloをユニキャストするように構成されず、潜在的なネイバーからターゲットHelloメッセージを受信するまで、任意の潜在的なネイバーを知らないままである(例えば、ルータはゼロ構成にある)。ネイバーからのターゲットHelloの受信に応じて、パッシブBGPルータは、ターゲットHelloメッセージに含まれるパラメータを評価する。パラメータがパッシブBGPルータに受け入れられる場合、ターゲット隣接がネイバー(すなわちアクティブBGPルータ)と形成され、パッシブBGPルータはターゲットHelloをネイバーへユニキャストし始める。パッシブBGPルータのいくつかの実施形態は、ASN内のルータのセットのためのルートリフレクタを実装するために使用される。
【0030】
ターゲットHelloメッセージを使用して隣接関係を形成する2つのピアリングルータの間には、1つのターゲットHello隣接関係のみが存在すべきである。したがって、ネイバールータの隣接関係の1:1のマッピングがある。BGPセッションが2つのターゲットピア間で動作可能になると、周期的なセッションkeep-aliveメッセージは、BGPセッションの生存性を維持するために使用される。いくつかの実施形態では、ルータによって交換されるターゲットHelloメッセージは、BGPセッションが延長された期間にわたって動作した後に冗長になる。BGPセッションkeep-aliveメッセージは、各ルータがそのピアへの隣接関係を維持することを意図する。ターゲットHelloメッセージをすべてのネイバーに周期的な間隔で送信することによって消費されるオーバーヘッドおよび帯域幅は、ルータがネイバーに多数のBGPセッションを維持するときに、顕著になり、潜在的に負担となる。例えば、ターゲットHelloメッセージを送信することによって消費されるオーバーヘッドおよび帯域幅は、多数のi-BGPルータへのBGPセッションを維持するルータの性能に悪影響を及ぼす可能性がある。
【0031】
ターゲットHello隣接関係もまた、Denial of Service(DoS)攻撃に対して脆弱である。例えば、既存のターゲット受信ルータに偽のHelloパケットを送信するDoS攻撃により、既存のターゲット受信ルータが失われる可能性がある。TCPセッションとは異なり、ユニバーサルデータグラムプロトコル(UDP)ベースのHelloメッセージに対してピア毎の保護を提供することは常には可能でない。既存の真の隣接関係は、偽の隣接関係を抑制しながら保護することができるが、必要なハードウェア、ファームウェア、またはソフトウェアは、低コストルータでは利用できない場合がある。その結果、ターゲットHelloは、少なくとも可能な程度まで、ターゲットBGP隣接関係の維持に依存するべきではない。必要なターゲットHelloメッセージの数を減少させることにより、時々起こるHello攻撃中のターゲットHello隣接関係の復元力を維持することができる。いくつかの実施形態では、ルータは、ピアリングルータ間でBGPセッションが確立された後に、ターゲットHelloの交換レートを低減するためにターゲットHello削減を実装する。場合によっては、ルータは、BGPセッションの持続時間が閾値持続時間を超える場合、ターゲットHelloメッセージの交換をオフにする。ルータはまた、通常の周波数でターゲットHelloメッセージを送信することによって、またはターゲットHelloメッセージの交換がオフにされた場合にターゲットHelloメッセージの送信を再開することによって実行されるルータの構成の変更に応じて、更新された情報を送信することもできる。
【0032】
図3は、いくつかの実施形態による、ネイバー探索のためのターゲットHelloメッセージにおいて使用されるBGPユーザデータグラムプロトコル(UDP)メッセージヘッダ300である。ターゲットHelloメッセージは、宛先ポート番号179のような所定の宛先ポート番号を含むUDPメッセージを使用する。ターゲットHelloメッセージは、以下のフィールドを含むBGP UDPメッセージヘッダ300を含む。バージョン:この1オクテット符号なし整数は、メッセージのプロトコルバージョン番号を示す。いくつかの実施形態において、BGPバージョン番号は4である。タイプ:BGPメッセージのタイプ。いくつかの実施形態では、ターゲットHelloメッセージはタイプ1に割り当てられる。メッセージ長さ:ヘッダ300を含むBGP UDPメッセージ全体のオクテット単位の長さを指定する2オクテット符号なし整数。AS番号:UDPメッセージ送信者のAS番号。BGP識別子:UDPメッセージ送信者のBGP識別子。BGP UDPメッセージヘッダ300を含むBGP UDPメッセージは、アドレスに応じてIPv4またはIPv6のいずれかを使用して送信することができる。
【0033】
図4は、いくつかの実施形態による、ネイバー探索のためのターゲットHelloメッセージを送信するために使用されるBGP Helloメッセージ400である。BGP Helloメッセージ400は、
図3に示すBGP UDPメッセージヘッダ300のようなメッセージヘッダ405を含む。BGP Helloメッセージ400は、以下のフィールドも含む。隣接関係保持時間:Hello隣接関係は、秒単位でタイマーを保持する。隣接関係保持時間は、受信BGPネイバールータが別のHelloを受信せずに隣接関係状態を維持する時間または持続時間を指定する。0の値は、受信BGPピアが、送信者への隣接関係が中断または中断されようとしていることを直ちにマークすべきであることを意味している。フラグ:フラグフィールドの定義されたビットを
図5に示す。他の未定義ビットは、送信機によってクリアされ、受信機によって無視されるべきである。TLV:このフィールドは、例えば
図6に示されるように、1つまたは複数のTLV(Type-Length-Value)を含む。
【0034】
図5は、いくつかの実施形態による、BGP Helloメッセージに含まれるフラグ500のセットを示す。フラグ500のセットは、
図4に示されるBGP Helloメッセージ400のいくつかの実施形態に含まれる。フラグ500のセットは、SETの場合、Helloメッセージが状態変化メッセージであることを示し、CLEARの場合、Helloメッセージが通常の周期的メッセージであることを示すSビットを含む。例えば、Sビットフラグの設定に基づいて、Helloメッセージは、以下の変形を有する。1.状態変化Helloメッセージ:これらのHelloメッセージは、ローカルインターフェースの状態およびパラメータならびにリンク上の他のルータへの隣接関係を伝達するTLVを含む。これらは、インタフェースレベルにおいて隣接関係または何らかのパラメータの状態が変化する場合にのみ生成される。2.周期的Helloメッセージ:これらは、TLVを含まない通常の周期的Helloメッセージであり、定常状態条件の間にリンク上の隣接関係を維持するために使用される。
フラグ500のセット内の予約されたビットは、送信機によって0に設定され、受信機によって無視される。
【0035】
図6は、いくつかの実施形態によるType-Length-Value(TLV)フォーマット600を示す。TLVフォーマットは、
図4に示すBGP Helloメッセージ400のいくつかの実施形態に含まれるTLVに使用される。TLVフォーマット600は、以下のフィールドを含む。Type:TLVのタイプを示す16オクテットフィールド。Length:オクテットの単位でValueフィールドの長さを示す16オクテットフィールド。Value:可変サイズタイプ依存Valueフィールド。
【0036】
Helloメッセージのいくつかの実施形態は、以下の6つのTLVのうちの1つまたは複数を搬送する。
【0037】
1)受け入れられたASNリストTLV
TLVは、BGPルータがBGPセッションを受け入れるAS番号の順序付けされていないリストをシグナリングするために使用される。受け入れられたASNリストTLVは、いくつかの実施形態では必ずしもシグナリングされない。シグナリングされない場合、ルータは、そのネイバーから任意のASNからのBGPピアリングを受け入れることを示す。ASNのリストを示すことは、一方の側が隣接関係のセットアップを試み続ける一方、他方の側が間違ったASNのためにこれを受け入れない一方向の状態でネイバー探索プロセスが縮退することを回避するのに役立つ。
【0038】
2)ピアリングアドレスTLV
ピアリングアドレスTLVは、BGP TCPセッションを設定するために使用されるアドレスをネイバーに示すために使用される。ピアリングアドレスと共に、ルータはそのサポートされるルートタイプ(AFI/SAFI)を指定することができる。AFI/SAFI値が0/0と指定された場合、それは、ネイバーが任意のAFI/SAFIのネゴシエーションを試みることができることを示す。このTLVの複数のインスタンスは、各ピアリングアドレス、たとえばIPv4およびIPv6に対して、または異なるAFI/SAFIセッションに対する複数のIPv4アドレスとして、Helloメッセージに含まれ得る。
【0039】
3)ローカルプレフィックスTLV
BGPネイバー探索メカニズムのいくつかの実施形態は、BGPルータが、そのネイバールータに属するプレフィックスについて、そのローカルルーティングテーブル内のルートをプログラムすることを要求する。そのようなシナリオの1つは、BGP TCPピアリングがネイバールータ上のループバックアドレスの間にセットアップされるときである。本明細書で使用される場合、用語「ループバックアドレス」は、デバイスがそれ自体のデータパケットを送受信することを可能にするアドレスを指す。これは、TCPセッションが立ち上げられる前にルータが互いにループバックアドレスに到達可能であることを必要とする。ローカルプレフィックスTLVは、BGPルータが、それがシグナリングされている基礎となるリンクを指し示すそのようなローカルルーティングエントリを設定するために、そのローカルプレフィックスをそのネイバーに明示的にシグナリングすることを可能にするTLVである。
【0040】
4)リンク属性TLV
リンク属性TLVは、ローカルルータ上のインターフェースのリンク属性をネイバーに知らせる状態変化Helloメッセージに含まれる。このTLVの一例は、状態変化Helloメッセージに含まれる。このTLVが含まれていない状態変化Helloメッセージは破棄され、エラーがそのために記録される。このTLVは、BGPルータが、特定のリンク上のそのネイバーIPアドレスならびにそのリンク識別子を学習することを可能にする。
【0041】
5)ネイバーTLV
ネイバーTLVは、BGPルータによって使用され、特定のリンク上のネイバールータとのHello隣接関係状態を示す。ネイバーは、そのAS番号およびBGP識別子によって識別される。ルータは、その状態に関係なく、そのリンク上で発見されたネイバーの各々に対してネイバーTLVを含む。
【0042】
6)暗号認証TLV
暗号認証TLVは、いくつかの実施形態では、スプーフィング攻撃に対する保護によるBGP Helloメッセージのための認証メカニズムの一部として使用される。
【0043】
図7は、いくつかの実施形態による、BGP Helloメッセージを特徴付ける追加ビットを含むフラグ700のセットを示す。フラグ700のセットは、
図4に示されるBGP Helloメッセージ400のいくつかの実施形態に含まれる。
図5に関して本明細書で説明するSビットに加えて、フラグ700のセットは、以下を含む。ターゲットHelloビットであるT:1の値は、このHelloメッセージがターゲットHelloであることを指定する。0の値は、このHelloメッセージが、単一のリンクを介してルータ間で直接送信されるHelloメッセージであることを指定する。要求送信ターゲットHelloビットであるR:1の値は、このHelloメッセージのソースに周期的なターゲットHelloを送信するように受信機に要求する。0の値は要求しない。ターゲットマルチホップネイバー探索を開始するラベル交換ルータ(LSR)のようなルータは、Rの値を1に設定する。Rが1である場合、別のLSRのような受信ルータは、この要求を有するHelloメッセージに応じてターゲットHelloメッセージをHelloソースに送信するように構成されたかどうかをチェックする。そうでなければ、ルータは要求を無視する。もしそうであれば、HelloソースへのターゲットHelloの周期的送信を開始する。
【0044】
図8は、いくつかの実施形態による構成シーケンス番号TLV800を示す。構成シーケンス番号TLV800は、
図4に示すBGP Helloメッセージ400のいくつかの実施形態に含まれる。構成シーケンス番号TLV800のTypeフィールドには、値7が割り当てられる。構成シーケンス番号TLV800のLengthフィールドの値は4オクテットである。図示した実施形態では、Valueフィールドは、送信BGPルータの構成状態を識別する4オクテット符号なし構成シーケンス番号を搬送する。構成シーケンス番号TLV800は、受信BGPルータが送信BGPルータ上の構成変化を検出するために使用される。構成シーケンス番号TLV800は、ターゲット探索に限定されず、リンクベース探索において同様に使用することができる。
【0045】
HelloメッセージにSフラグが設定されると、送信BGPルータは構成シーケンス番号TLV800を含む。構成シーケンス番号TLV800は、リンクHelloまたはターゲットHelloに関係なく適用可能である。ターゲット探索のために、Helloメッセージは、所定の宛先ポート番号(例えば、宛先ポート179)を有するUDPメッセージ上でユニキャスト宛先IPアドレスに送信される。リンク属性TLVは、リンクHelloメッセージにのみ適用可能であるので、リンク属性TLVを除くTLVは、ターゲットHelloメッセージに含まれてもよい。
【0046】
図9は、いくつかの実施形態による、マルチホップBGPルータ間の片側プロビジョニングを実装する通信システム900のブロック図である。通信システム900は、IPネットワーク910によって相互接続されるルータ901、902、903、904、905(本明細書では、「ルータ901~905」と総称する)を含む。ルータ905は、ターゲットHelloメッセージをあらゆる潜在的なネイバーにユニキャストしない「パッシブ」ルータとして構成される。したがって、パッシブルータ905は、最初に、任意の潜在的なネイバーを認識せず、たとえば、パッシブルータ905はゼロ構成にある。いくつかの実施形態では、ルータ905は、本明細書で説明するように、ルートリフレクタルータとして機能する。ルータ901~904は、パッシブルータ905にターゲットHelloメッセージをユニキャストする「アクティブ」ルータとして構成される。ネイバールータ901~904のうちの1つからターゲットHelloメッセージを受信すると、パッシブルータ905は、メッセージに含まれるパラメータを評価する。パラメータがルータ905に受け入れられる場合、ターゲット隣接関係はネイバールータ901~904で形成される。ターゲット隣接関係の形成に応じて、ルータ905は、ターゲットHelloをネイバーへユニキャストすることを開始する。
【0047】
ターゲットHelloメッセージは、ルータ901~905に関連付けられたIPアドレスに基づいて送信される。例えば、ルータ901がIPアドレスIP-901を有し、ルータ905がIPアドレスIP-905を有する場合、(パッシブ)ルータ905は、ターゲットHelloメッセージのIPアドレスIP-905を受信する。(パッシブ)ルータ905は、最初にルータ901~904のいずれともピアリング関係で構成されていない。ルータ901は、IPアドレスIP-905で周期的に(または他の時間間隔で)ターゲットHelloメッセージを(パッシブ)ルータ905に送信する。IPアドレスIP-905上でルータ901からターゲットHelloメッセージを受信すると、ルータ905は、ルータ901とターゲット隣接関係を形成する。次いで、ルータ905は、IPアドレスIP-901上でルータ901にターゲットHelloメッセージを周期的に送信し始める。この時点でルータ905はルータ901を探索している。ルータ905は、ルータ901への隣接関係が中断または途絶されたことに応じて、IPアドレスIP-901上のルータ901へのターゲットHelloメッセージの送信を中断することができる。したがって、片側プロビジョニングは、ルータ905における明示的なピアリング構成なしにルータ901~904の追加の削除を可能にする。
【0048】
ルータ901~905のいくつかの実施形態は、
図4に示すBGP Helloメッセージ400などのターゲットHelloメッセージ内の隣接関係保持時間フィールドに含まれる情報に基づいて、ターゲットHelloメッセージ削減を実装する。0xffffの隣接関係保持時間値は、無限保持時間を意味するように定義される。ピアリングルータ対(ルータ901および905など)は、以下のようにターゲットHelloメッセージ削減を実行する。1)BGPルータは、ターゲットHello隣接関係を確立するために、周期的なターゲットHelloをそのネイバーに送信することを開始する。各BGPルータは、ネイバーへのそのターゲットHelloメッセージにおいて、その構成された隣接関係保持時間を提案する。2)ターゲットHelloがBGPルータを受信することによって受け入れられる場合、ソースBGPルータとターゲットHello隣接関係を確立し、それに続いてBGPセッションが確立される。3)BGPセッションが動作可能になった後、各BGPルータは、後続のターゲットHelloメッセージにおける隣接関係保持時間フィールドにおいて「緩和」保持時間(設定されたものよりも長い)を提案し始めることができる。ルータ901~905は、Helloメッセージのセットを送信した後、例えば、一定の保持時間を提供する5つのHelloメッセージを送信した後に、提供された保持時間を所定の(または動的に決定された)因子だけ増加させる。提供された保持時間を緩和するプロセスが続くと、例えば、閾値持続時間を超える時間間隔の後、BGPルータは、0xffffの最大保持時間値に達する。したがって、セッションが動作した後、ルータ901~905間の保持時間は無限大にネゴシエートされる。ターゲットHello隣接関係が存在し続け、隣接保持時間のみが無限大であることに留意されたい。4)ターゲットBGP Hello隣接関係(例えば、構成シーケンス番号)に関連する任意のパラメータに何らかの変化がある場合、更新されたターゲットHelloは、最後のHelloメッセージにおいて提供された「現在の」保持時間(例えば、無限大)へのいかなる変化も伴わずに送信される。BGP Helloは信頼できないので、ルータ901~905は、変化を反映するために、設定された間隔(またはより速い間隔)でHelloのセット(例えば、5つのメッセージのセット)を送信してもよい。Helloメッセージは、無限保持時間を提供し続け、パケットが送られた後に減少した送信レートに戻る。5)ルータ901~905のうちの2つの間のBGPセッションが失敗し、隣接の切断につながった場合、各ルータ901~905は、それらの構成された隣接関係保持時間を提供し、上述のステップ1~3で概説される手順を繰り返す。これは、BGPセッションが、ピアリングBGPルータがきわめて再開可能である場合にも同様に当てはまる。したがって、削減手順は、オペレータが、障害の場合に多数のBGPセッションを引き起こしやすくするために非常に積極的な隣接保持時間を構成することを可能にするが、セッションが動作しているときにHello隣接関係維持のオーバーヘッドを低減する。積極的隣接保持時間は、偽のHello隣接関係をより迅速に切り離すように構成される。6)ネイバールータ901~905が無限保持時間をネゴシエートし、ネイバールータ901~905が隣接関係を切り離すことを決定すると、ローカルBGPルータは、遠隔ノードがもはやHelloメッセージを受け入れていないことを検出することができない。したがって、ルータ901~905のいくつかの実施形態は、ターゲットHello隣接関係を下げながら、ゼロ秒の隣接保持時間を提供する1つまたは複数の連続Helloメッセージ(例えば、3つのHelloメッセージのセット)を送信する。いくつかの実施形態では、ゼロ秒の保持時間値は、受信BGPルータが、送信側への隣接関係が低下していることをマークすべきであることを意味している。
【0049】
いくつかの実施形態において、ルータ901~905は、BGPセッションが確立された後、ターゲットHelloにおける無限隣接関係保持時間を提供する必要はない。例えば、ルータ901~905は、設定された隣接関係保持時間よりも著しく大きい値を提供することができる。しかしながら、BGPセッション設定後に無限隣接関係保持時間を利用することは、上述の手順から導き出される利点を増加させる。例えば、
図9のBGPルータは、片側プロビジョニングに加えて目標とするBGP Hello削減を実装することができ、これによりルータ905(例えば、ルートリフレクタルータ)が多数の周期的な目標とするHelloメッセージを送受信する負担が軽減される。
【0050】
図10は、いくつかの実施形態による、ターゲットネイバー探索を実行するようにルータを構成するための方法1000のフロー図である。方法1000は、
図1に示すネットワーク100、
図2に示す5-stage Closネットワーク200、および
図9に示す通信システム900のいくつかの実施形態におけるルータにおいて実施される。
【0051】
方法1000は、ブロック1001で開始する。入力1005は、ルータがターゲットHelloメッセージを送信する場所を示すネイバールータのターゲットIPアドレスを含む。ターゲットIPアドレスが提供されていない場合、ルータが片側プロビジョニング方式でパッシブな役割を果たしていることを意味する。例えば、
図9に示したルータ905からは、ターゲットIPアドレスは提供されない。入力1005はまた、Boolean変数であるHello削減変数を含む。Hello削減変数がTRUEに設定される場合、ターゲットHello削減技術がネイバールータに適用されるか、またはターゲットIPアドレスが提供されず、ルータがパッシブモードで動作している場合、ターゲットHello削減技術がすべての潜在的なネイバールータに適用される。Hello削減変数がFALSEに設定される場合、ターゲットHello削減は適用されない。
【0052】
ブロック1010において、ルータは、ターゲットIPアドレスおよびHello削減変数を将来の参照のために記憶する。判断ブロック1015で、ルータは、ターゲットIPアドレスが提供されたかどうかを判断する。そうである場合、方法1000はブロック1020に進む。そうでなければ、方法はブロック1025に進み、方法1000は終了する。
【0053】
ブロック1020において、ルータは、ターゲットIPアドレスへのターゲットHelloメッセージの送信を開始する。ターゲットHelloメッセージは、定期的に、所定の時間間隔で、または1つまたは複数のイベントに応じて送信される。次いで、方法1000はブロック1025に進み、方法1000は終了する。
【0054】
図11は、いくつかの実施形態による、ターゲットネイバー探索中にターゲットHelloメッセージを処理するための方法の第1の部分1100のフローである。本方法は、
図1に示すネットワーク100、
図2に示す5-stage Closネットワーク200、および
図9に示す通信システム900のいくつかの実施形態におけるルータにおいて実施される。
【0055】
本方法は、ブロック1101で開始する。入力1105は、ルータによって受信されたターゲットHelloメッセージを含む。
【0056】
判断ブロック1110において、ルータは、ターゲットHelloメッセージに含まれる識別子と共に、ターゲットHello隣接関係が存在するか否かを判断する。いくつかの実施形態では、識別子は、ターゲットHelloメッセージを送信したルータに関連付けられたIPアドレスである。隣接関係が存在する場合、方法はブロック1115に進む。隣接関係が存在しない場合、方法は判断ブロック1120に進む。
【0057】
ブロック1115で、ルータは、Helloメッセージ内のパラメータを隣接関係に同期させる。いくつかの実施形態では、パラメータは、隣接関係保持時間、構成シーケンス番号などを含む。次に、方法はノード1へ進み、ノード1は
図12のブロック1205に接続する。
【0058】
判断ブロック1120において、ルータは、片側プロビジョニング方式でリフレクタルータのようなパッシブな役割で構成されるかどうかを判断する。ルータがパッシブな役割で構成される場合、方法はブロック1125に進む。ルータがアクティブな役割で構成される場合、方法はブロック1130に進む。
【0059】
ブロック1125で、ルータは、受信されたターゲットHelloメッセージのIPヘッダ内のソースアドレスに基づいて、動的ターゲットIPアドレス構成を作成する。次いで、方法はノード2へ流れ、ノード2は
図12のブロック1210に接続する。
【0060】
ブロック1130において、ルータは、ルータにおいて構成されたターゲットIPアドレスのうち、ターゲットHelloメッセージのIPヘッダ内のソースアドレスを調べる。次いで、方法はノード3に流れ、ノード3は
図12の判断ブロック1215に接続する。
【0061】
図12は、いくつかの実施形態による、ターゲットネイバー探索中にターゲットHelloメッセージを処理するための方法の第2の部分1200のフローである。ノード1は、
図11に示したブロック1115を終端ブロック1205に接続する。ノード2は、
図11に示したブロック1125とブロック1210とを接続する。ノード3は、
図11に示したブロック1130を判断ブロック1215に接続する。
【0062】
判断ブロック1210において、であって、ルータは、リモートルータのターゲットIPアドレスへの周期的なターゲットHelloメッセージの送信を開始する。
【0063】
判断ブロック1215において、ルータは、ターゲットHelloメッセージのIPヘッダ内のソースアドレスがルータ内で設定されたターゲットIPアドレスのうちの1つと一致するか否かを判断する。そうでなければ、方法はブロック1220へ進む。ソースアドレスがルータにおいて構成されたターゲットIPアドレスのうちの1つと一致する場合、方法はブロック1225に進む。
【0064】
ブロック1220で、ルータは、一致するターゲットIPアドレスが存在しないため、ターゲットHelloメッセージをドロップする。次いで、方法はブロック1205に進み、方法は終了する。
【0065】
ブロック1225で、ルータは、受信されたターゲットHelloメッセージに含まれる識別子に対する新しいターゲットHello隣接関係を作成する。いくつかの実施形態では、識別子は、ターゲットHelloメッセージを送信したルータに関連付けられたIPアドレスである。ルータはまた、隣接関係によってネゴシエートされるパラメータに基づいて、BGPセッションの確立をトリガする。例えば、ターゲットHelloメッセージにおいてピアリングアドレスTLVが受信された場合、各ピアリングアドレスTLVにおいて指定されたIPアドレスにTCP接続が確立される。ピアリングアドレスTLVが受信されない場合、TCP接続は、ターゲットHelloメッセージのIPヘッダ内のソースアドレスに確立される。いずれの場合においても、対応するBGPセッションは、TCP接続を使用して確立される。次いで、方法はブロック1205に進み、方法は終了する。
【0066】
図13は、いくつかの実施形態による、マルチホップBGPセッションの確立に応じてターゲットHelloメッセージ削減を実行するための方法1300のフロー図である。方法1300は、
図1に示されるネットワーク100、
図2に示される5-stage Closネットワーク200、および
図9に示される通信システム900のいくつかの実施形態におけるルータにおいて実施される。
【0067】
本方法はブロック1301で開始する。入力1305は、動作中のマルチホップBGPセッションを示す情報を含む。
【0068】
ブロック1310で、ルータは、片側プロビジョニング方式でパッシブな役割を果たしているか否かを判断する。そうである場合、方法は、判断ブロック1315に進む。ルータがアクティブな役割で動作している場合、方法はブロック1320に進む。
【0069】
判断ブロック1315において、ルータは、それが自己探索されたネイバーへのターゲットHello削減のために構成されるかどうかを判断する。そうである場合、方法1300はブロック1335に進む。そうでなければ、方法1300はブロック1340に進み、方法1300は終了する。
【0070】
ブロック1320において、ルータは、セッションに関連するターゲットHello隣接関係を識別する。ブロック1325で、ルータは、隣接関係を起動する親ターゲットIPアドレス構成を決定する。
【0071】
判断ブロック1330において、ルータは、ターゲットIPアドレス構成においてターゲットHello削減が設定されているか否かを判断する。そうでなければ、方法1300はブロック1340に流れ、方法1300は終了する。ターゲットHello削減が構成された場合、方法1300はブロック1335に進む。
【0072】
ブロック1335において、ルータは、ターゲットHelloメッセージ上でターゲットHello削減を開始し、ターゲットIPアドレスに送信される。本明細書で説明するように、ターゲットHello削減を実行することは、隣接関係がアクティブであることを示すためにルータ間でターゲットネイバー探索メッセージを交換することを含む。ターゲットネイバー探索メッセージの頻度は、セッションの持続時間の増加に応じて減少する。いくつかの実施形態では、ターゲットネイバー探索メッセージの送信は、セッションの持続時間が閾値持続時間を超えることに応じてオフにされる。ターゲットネイバー探索メッセージの送信は、その後、必要に応じてオンにされ得る。
【0073】
図14は、いくつかの実施形態による、マルチホップネイバー探索のためのターゲットHelloメッセージをサポートするネットワーク機能仮想化(NFV)アーキテクチャ1400のブロック図である。NFVアーキテクチャ1400は、
図1に示されるネットワーク100、
図2に示される5-stage Closネットワーク200、および
図9に示される通信システム900のいくつかの実施形態を実装するために使用される。NFVアーキテクチャ1400は、コンピューティングハードウェア1402、ストレージハードウェア1403、およびネットワークハードウェア1404を含むハードウェアリソース1401を含む。コンピューティングハードウェア1402は、1つまたは複数のプロセッサを使用して実装され、ストレージハードウェア1403は、1つまたは複数のメモリを使用して実装され、ネットワークハードウェア1404は、1つまたは複数のトランシーバ、送信機、受信機、インターフェースなどを使用して実装される。
【0074】
仮想化レイヤ1405は、ハードウェアリソース1401の抽象表現を提供する。仮想化レイヤ1405によってサポートされる抽象表現は、NFV管理およびオーケストレーション(M&O)モジュール1415の一部である仮想化インフラストラクチャマネージャ1410を使用して管理することができる。マネージャ1410のいくつかの実施形態は、NFVアーキテクチャ1400において生じ得る性能測定値およびイベントを収集および転送するように構成される。例えば、性能測定値は、NFV M&O1415内に実装されるオーケストレータ(ORCH)1417に転送される。ハードウェアリソース1401および仮想化レイヤ1405は、仮想コンピューティングリソース1421、仮想ストレージリソース1422、および仮想ネットワーキングリソース1423を含む仮想リソース1420を実装するために使用され得る。
【0075】
仮想ネットワーキング機能(VNF1、VNF2、VNF3)は、NFVインフラストラクチャ(例えば、ハードウェアリソース1801)で動作し、仮想リソース1420を利用する。たとえば、仮想ネットワーキング機能(VNF1、VNF2、VNF3)は、仮想コンピューティングリソース1421によってサポートされる仮想マシン、仮想ストレージリソース1422によってサポートされる仮想メモリ、または仮想ネットワークリソース1423によってサポートされる仮想ネットワークを使用して実装され得る。要素管理システム(EMS1、EMS2、EMS3)は、仮想ネットワーキング機能(VNF1、VNF2、VNF3)を管理する役割を担う。例えば、要素管理システム(EMS1、EMS2、EMS3)は、障害および性能管理に関与してもよい。いくつかの実施形態では、仮想ネットワーキング機能(VNF1、VNF2、VNF3)の各々は、マネージャ1410またはオーケストレータ1417と情報を交換し、行動を調整する対応するVNFマネージャ1425によって制御される。
【0076】
NFVアーキテクチャ1400は、運用支援システム(OSS)/ビジネス支援システム(BSS)1430を含むことができる。OSS/BSS1430は、OSS機能を用いた障害管理を含むネットワーク管理を扱う。OSS/BSS1430はまた、BSS機能を用いた顧客および製品管理にも対処する。NFVアーキテクチャ1400のいくつかの実施形態は、NFVアーキテクチャ1400によってサポートされるサービス、仮想ネットワーク機能、またはインフラストラクチャの記述を記憶するための記述子1435のセットを使用する。記述子1435内の情報は、NFV M&O1415によって更新または修正され得る。
【0077】
NFVアーキテクチャ1400は、制御プレーン機能またはユーザプレーン機能を提供するネットワークスライスを実装する。ネットワークスライスは、スライスごとに異なり得る通信サービスおよびネットワーク能力を提供する完全な論理ネットワークである。ユーザ機器は、コアネットワークとユーザ機器との間の複数のサービスフローをサポートする複数のスライスに同時にアクセスすることができる。ユーザ機器のいくつかの実施形態は、ユーザ機器のためのスライスインスタンスの選択を支援するためにネットワークにNetwork Slice Selection Assistance Information(NSSAI)パラメータを提供する。単一のNSSAIは、いくつかのスライスの選択につながり得る。NFVアーキテクチャ1800はまた、デバイス能力、サブスクリプション情報、およびローカルオペレータポリシーを使用して選択を行うことができる。NSSAIは、より小さなコンポーネントすなわちSingle-NSSAI(S-NSSAI)の集合であり、Slice Service Type(SST)および場合によってはSlice Differentiator(SD)を含む。スライスサービスタイプは、特徴およびサービスに関して予想されるネットワーク挙動(例えば、広い帯域幅または大量IoTに特化した挙動)を指し、SDは、たとえば、異なるサービスに関連するトラフィックを異なるスライスに分離するために、同じタイプのいくつかのネットワークスライスインスタンスの中から選択するのを助けることができる。
【0078】
いくつかの実施形態では、上述の技法のいくつかの態様は、ソフトウェアを実行する処理システムの1つまたは複数のプロセッサによって実装され得る。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に格納された、またはそうでなければ有形に具現化された実行可能命令の1つまたは複数のセットを備える。ソフトウェアは、1つまたは複数のプロセッサによって実行されると、上述の技法の1つまたは複数の態様を実行するために1つまたは複数のプロセッサを操作する命令および特定のデータを含み得る。非一時的コンピュータ可読記憶媒体は、たとえば、磁気または光ディスク記憶デバイス、フラッシュメモリなどのソリッドステート記憶デバイス、カセット、ランダムアクセスメモリ(RAM)または他の不揮発性メモリデバイスなどを含み得る。非一時的コンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または1つもしくは複数のプロセッサによって解釈されるかもしくはそうでなければ実行可能である他の命令フォーマットであり得る。
【0079】
コンピュータ可読記憶媒体は、コンピュータシステムに命令および/またはデータを提供するために使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体または記憶媒体の組み合わせを含み得る。そのような記憶媒体は、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイディスク)、磁気媒体(例えば、フロッピーディスク、磁気テープ、または磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)またはカセット)、不揮発性メモリ(例えば、読み取り専用メモリ(ROM)またはフラッシュメモリ)、または微小電気機械システム(MEMS)ベースの記憶媒体を含むことができるが、これらに限定されない。コンピュータ可読記憶媒体は、コンピューティングシステム(例えば、システムRAMまたはROM)に埋め込まれるか、コンピューティングシステム(例えば、磁気ハードドライブ)に固定的に取り付けられるか、コンピューティングシステムに取り外し可能に取り付けられるか(例えば、光ディスクまたはユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)、または有線もしくは無線ネットワーク(例えば、ネットワークアクセス可能ストレージ(NAS))を介してコンピュータシステムに結合され得る。
【0080】
本明細書で使用される場合、「回路」という用語は、以下のうちの1つまたは複数またはすべてを指すことができる。a)ハードウェアのみの回路実装(実装、アナログ回路および/またはデジタル回路のみなど)b)ハードウェア回路とソフトウェアの組み合わせであって、例えば(適用可能な場合)、i.アナログおよび/またはデジタルハードウェア回路とソフトウェア/ファームウェアとの組み合わせ、ii.ソフトウェア(携帯電話またはサーバなどの装置に様々な機能を実行させるために協働するデジタル信号プロセッサ、ソフトウェア、およびメモリを含む)を有するハードウェアプロセッサの任意の部分c)ハードウェア回路および/またはプロセッサであって、動作のためにソフトウェア(例えば、ファームウェア)を必要とするマイクロプロセッサまたはマイクロプロセッサの一部分であり、動作のために必要とされない場合、ソフトウェアは存在しなくてもよい。回路のこの定義は、任意の特許請求の範囲を含む、本願におけるこの用語のすべての使用に適用される。さらなる例として、本願で使用されるように、回路という用語はまた、単にハードウェア回路もしくはプロセッサ(もしくは複数のプロセッサ)、もしくはハードウェア回路もしくはプロセッサの一部、ならびに付随するソフトウェアおよび/もしくはファームウェア(もしくはそれらの)の実装形態も包含する。回路という用語はまた、例えば、特定の請求項の要素に適用可能である場合、モバイルデバイスのためのベースバンド集積回路またはプロセッサ集積回路、またはサーバ、セルラネットワークデバイス、または他のコンピューティングもしくはネットワークデバイスにおける同様の集積回路も包含する。
【0081】
一般的な説明において上述のアクティビティまたは要素の全てが必要とされるわけではなく、特定のアクティビティまたはデバイスの一部が要求されなくてもよいこと、および1つまたは複数のさらなるアクティビティが、説明されるものに加えて実行され得ること、または含まれることに留意されたい。さらに、アクティビティが列挙される順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明されてきた。しかしながら、当業者は、以下の特許請求の範囲に記載される本開示の範囲から逸脱することなく、様々な修正および変更を行うことができることを理解する。したがって、明細書および図面は、限定的な意味ではなく例示的な意味で見なされるべきであり、すべてのそのような修正は、本開示の範囲内に含まれることが意図される。
【0082】
利益、他の利点、および問題に対する解決策は、特定の実施形態に関して上述されてきた。しかしながら、利益、利点、問題に対する解決策、および任意の利益、利点、または解決策が起こるか、またはより顕著になり得る任意の特徴は、任意のまたはすべての特許請求の範囲の重要な、必要な、または必須の特徴と解釈されるべきではない。さらに、開示される主題は、本明細書の教示の利益を有する当業者に明らかな異なるが同等のやり方で修正および実施され得るので、上記で開示される特定の実施形態は、例示にすぎない。本明細書において示される構造または設計の詳細は、以下の特許請求の範囲に記載されるもの以外の限定を意図しない。したがって、上記で開示した特定の実施形態は、変更または修正することができ、すべてのそのような変形は、開示した主題の範囲内にあると考えられることは明白である。したがって、本明細書で求められる保護は、以下の特許請求の範囲に記載されるとおりである。
【外国語明細書】