IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シスコ テクノロジー,インコーポレイテッドの特許一覧

特許7499944IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出
<>
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図1
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図2
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図3
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図4
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図5A
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図5B
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図6
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図7
  • 特許-IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-06
(45)【発行日】2024-06-14
(54)【発明の名称】IPルートクラスタリングを使用したインターネットラストマイルの機能停止検出
(51)【国際特許分類】
   H04L 41/044 20220101AFI20240607BHJP
【FI】
H04L41/044
【請求項の数】 12
(21)【出願番号】P 2023507243
(86)(22)【出願日】2021-07-14
(65)【公表番号】
(43)【公表日】2023-09-01
(86)【国際出願番号】 US2021041614
(87)【国際公開番号】W WO2022031411
(87)【国際公開日】2022-02-10
【審査請求日】2023-03-29
(31)【優先権主張番号】63/061,445
(32)【優先日】2020-08-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/950,472
(32)【優先日】2020-11-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508041127
【氏名又は名称】シスコ テクノロジー,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100140431
【弁理士】
【氏名又は名称】大石 幸雄
(72)【発明者】
【氏名】バーマン,アダム ラウファー
(72)【発明者】
【氏名】ワイツマン,サミュエル ユージーン
(72)【発明者】
【氏名】グージョン,アントワーヌ
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2010-171544(JP,A)
【文献】米国特許出願公開第2010/0157788(US,A1)
【文献】国際公開第2010/064531(WO,A1)
【文献】特表2009-506686(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/66,13/00,41/00-69/40
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
ネットワークに関連付けられたネットワークアプライアンスによって、複数のネットワークノードを監視することと、
前記ネットワークアプライアンスによって、前記ネットワークのラストマイル内の前記複数のネットワークノードのうちのあるネットワークノードが前記ネットワークから切断されたことを検出することと、
前記複数のネットワークノードの各々について、最も低い共通の先祖ノードを識別することと、
前記複数のネットワークノードの各々を、前記複数のネットワークノードの各々の対応する最も低い共通の先祖ノードに直接接続するネットワークモデルを生成することと、
前記ネットワークアプライアンスによって、前記ネットワークモデル上に前記ネットワークノードをオーバーレイして、前記ネットワークノードの最も低い共通の先祖ノードを示すモデルオーバーレイを生成することと、
前記ネットワークアプライアンスによって、前記モデルオーバーレイから識別された前記ネットワークノードの前記最も低い共通の先祖ノードに基づいて、前記ネットワークノードの切断に関連付けられたラストマイルの機能停止ソースを決定することと、を含む、コンピュータ実装方法。
【請求項2】
前記ネットワークが、少なくとも部分的に、インターネットサービスプロバイダ(ISP)ネットワークを通じて形成され、前記ネットワークアプライアンスが、前記ISPネットワークから分離されている、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ネットワークアプライアンスによって、トレースルーティングの一部として前記複数のネットワークノードの少なくとも一部分を横断する1つ以上のデータパケットを受信することと、
前記トレースルーティングを通じて識別され、前記ネットワークアプライアンスにおいて受信された前記1つ以上のデータパケットの1つ以上のルートに基づいて、前記ネットワークモデルを生成することと、を更に含む、請求項1又は2に記載のコンピュータ実装方法。
【請求項4】
前記トレースルーティングが、前記1つ以上のデータパケットが横断する複数のルートを識別することを含む複数のトレースルーティングの一部として行われる、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記トレースルーティングを通じて識別された前記1つ以上のルートを、前記複数のノードの前記少なくとも一部分におけるノード間の接続の有向非巡回グラフに変換することと、
前記非巡回グラフをツリーに変形させて、前記モデルを形成することと、を更に含む、請求項3又は4に記載のコンピュータ実装方法。
【請求項6】
前記ネットワークノードに対する前記最も低い共通の先祖ノードが、前記ツリー内の前記ネットワークノードに対する第1の先祖ノードである、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記最も低い共通の先祖ノードが、前記ネットワークノードからのアップストリーム通信及び前記ネットワークノードへのダウンストリーム通信のいずれか又は両方の単一のポイントを提供する、前記ネットワーク内の前記ネットワークノードに対する最も近いアップストリームノードである、請求項1~6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
前記ネットワークアプライアンスによって、所定の時間に前記ネットワークノードからパケットを受信することに失敗したことに応答して、前記ネットワークノードが前記ネットワークから切断されたことを検出することを更に含む、請求項1~7のいずれか一項に記載のコンピュータ実装方法。
【請求項9】
前記ネットワークモデルが、前記ネットワークの前記少なくとも一部分内のノードに関連付けられたインターネットプロトコルバージョン6(IPv6)アドレスに基づいて生成される、請求項1~8のいずれか一項に記載のコンピュータ実装方法。
【請求項10】
前記ネットワークモデルが、前記ネットワークの前記少なくとも一部分内のノードに関連付けられたインターネットプロトコルバージョン4(IPv4)アドレスに基づいて生成される、請求項1~9のいずれか一項に記載のコンピュータ実装方法。
【請求項11】
請求項1~10のいずれか一項に記載の方法を行うように構成された1つ以上のプロセッサを備えるシステム。
【請求項12】
命令を含むコンピュータ可読媒体であって、前記命令が、1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、請求項1~10のいずれか一項に記載の方法を行わせる、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年8月5日に出願された米国特許仮出願第63/061,445号の利益を主張する、2020年11月17日に出願された米国特許非仮出願第16/950,472号の利益及び優先権を主張するものであり、各々の内容は、参照によりそれらの全体が本明細書に組み込まれる。
【0002】
(発明の分野)
本技術は、IPルートクラスタリングを使用してラストマイルの機能停止を検出することに関する。
【背景技術】
【0003】
ほとんどの組織は、信頼できるインターネットアクセスを必要とする。機能停止が発生すると、問題の原因を突き止めるのに時間がかかる可能性がある。これは、機能停止を引き起こすインフラストラクチャが、問題を経験している組織の制御外にあるときに特に当てはまる。都市又はインターネットサービスプロバイダ(Internet Service Provider、ISP)全体の規模での大規模なインターネットの機能停止が検出されることがある。しかしながら、これらの大規模な機能停止は稀である。はるかにより一般的であるのは、近隣又は特定のインターネットルートに影響を与える機能停止である。これらの小規模な機能停止は、検出するのが困難である。
【図面の簡単な説明】
【0004】
本開示の様々な利点及び特徴を得ることができる方法を説明するために、上記で簡単に説明した原理のより詳細な説明を、添付の図面に示される、本開示の特定の実施形態を参照することによって行う。これらの図面は、本開示の例示的な実施形態のみを示すものであり、したがって、本開示の範囲を限定するものとみなされるべきではないことを理解した上で、本明細書における原理は、添付の図面の使用を通じて、更なる特異性及び詳細とともに記載及び説明される。
図1】いくつかの例による例示的なネットワーク環境を示す。
図2】いくつかの例によるネットワークモードを生成するための例示的な方法を示す。
図3】いくつかの例による例示的なツリーデータ構造を示す。
図4】いくつかの例による例示的なツリーデータ構造を生成するための例示的な方法を示す。
図5A】いくつかの例による機能停止を伴う例示的なネットワーク環境を示す。
図5B】いくつかの例による機能停止を伴う例示的なツリーデータ構造を示す。
図6】いくつかの例によるネットワーク環境における機能停止を検出するための例示的な方法を示す。
図7】いくつかの例による例示的なネットワークデバイスを示す。
図8】いくつかの例による例示的なコンピューティングデバイスを示す。
【発明を実施するための形態】
【0005】
本開示の様々な実施形態を以下に詳細に説明する。特定の実装形態が説明されるが、これは例示の目的で行われることを理解されたい。当業者は、本開示の精神及び範囲から逸脱することなく、他の構成要素及び構成が使用されてもよいことを認識するであろう。本開示の更なる特徴及び利点は、以下の説明に記載され、一部はその説明から明らかになるか、又は本明細書に開示された原理の実施によって知ることができる。本開示の特徴及び利点は、添付の特許請求の範囲において特に指摘される手段及び組み合わせによって実現及び取得することができる。本開示のこれら及び他の特徴は、以下の説明及び添付の特許請求の範囲からより完全に明らかになるか、又は本明細書に記載の原理を実施することによって知ることができる。
【0006】
概要
本明細書では、ネットワーキング環境における機能停止検出のためのシステム、方法、及びコンピュータ可読媒体が開示される。
【0007】
少なくとも1つの例によれば、ネットワークモデルを生成するためのコンピュータ実装方法が提供される。本方法は、第1のネットワークノードによって、第1のネットワークノードをソースノードとして、かつ第2のネットワークノードを宛先ノードとして関連付けるルートを含むネットワークデータパケットを第2のネットワークノードに送信することと、ネットワークデータパケットが第3のネットワークノードを横断するときに、第3のネットワークノードによって、ルートを更新することと、第2のネットワークノードによって、ネットワークデータパケットを受信することと、第2のネットワークノードによって、ネットワークデータパケットをネットワークアプライアンスに送信することと、ネットワークアプライアンスによって、ネットワークデータパケットのルートに基づいて、ネットワークモデルを生成することと、を含むことができる。
【0008】
少なくとも1つの他の例によれば、インターネットの機能停止を検出するためのコンピュータ実装方法も提供される。本方法は、ネットワークのネットワークアプライアンスによって、複数のネットワークノードをリアルタイムで監視することと、ネットワークアプライアンスによって、複数のネットワークノードのうちの少なくとも1つのネットワークノードがネットワークから切断されたことを検出することと、ネットワークアプライアンスによって、ネットワークモデル上に少なくとも1つのネットワークノードをオーバーレイすることと、ネットワークアプライアンスによって、少なくとも1つのネットワークノードの最も低い共通の先祖ノードを識別することによって、少なくとも1つのネットワークノードの機能停止ソースを決定することと、を含むことができる。
【0009】
少なくとも1つの他の例によれば、システムが提供される。システムは、1つ以上のプロセッサと、コンピュータ可読命令を記憶する1つ以上のメモリとを備え、コンピュータ可読命令は、1つ以上のプロセッサによって実行されたときに、1つ以上のプロセッサに、先行請求項のいずれか一項に記載の方法を行わせる。
【0010】
この概要は、特許請求される主題の主要な又は本質的な特徴を特定することを意図するものではなく、特許請求される主題の範囲を決定するために単独で使用されることを意図するものでもない。主題は、本出願の明細書全体の適切な部分、いずれか又は全ての図面、及び各請求項を参照することによって理解されるべきである。
【0011】
前述のことは、他の特徴及び実施形態とともに、以下の明細書、特許請求の範囲、及び添付の図面を参照すると、より明らかになるであろう。
【0012】
説明
ほとんどの組織は、信頼できるインターネットアクセスを必要とする。上記で説明したように、より小規模な機能停止は、都市規模又はインターネットサービスプロバイダ(ISP)全体の機能停止などの大規模な機能停止と比較して、より一般的であり、検出するのがより困難である。例えば、近隣又は特定のインターネットルートに影響を及ぼす機能停止は、特定のデバイスが誤って構成されていること、ネットワーククロゼットが電力を失うこと、又は何らかの他のローカル問題を含み得る。これらは、より頻繁に発生し、既存のシステムは、これらのタイプの機能停止を検出するように装備されていない。更に、IPv6環境はよりはるかに多くの利用可能なIPアドレスを含み、その多くが利用されない可能性があるので、既存のシステムは、IPv6世界においてこれらの問題を識別するには不十分である可能性が高い。言い換えれば、IPv6環境のアクティブプロービングは、IPv4環境と比較してIPアドレスがあまり密に利用されないので、機能しない。したがって、パケットを各IPアドレスに送信し、応答を待つことは、信じがたいほど計算集約的であり、非効率的である。更に、ISPは、頻繁にIPアドレスを再割り当てし、これは更なる非効率性を引き起こす。
【0013】
したがって、開示される技術は、IPv4環境とIPv6環境の両方に対して機能する、より小規模な機能停止を検出するためのシステム、方法、及びコンピュータ可読媒体を提供する。更に、開示される技術は、電気通信ネットワークのラストマイルにおける機能停止を識別するのに有用である。ラストマイルは、電気通信サービス(例えば、インターネット)をエンドユーザ(例えば、顧客)に配信する電気通信ネットワークの最終区間である。例えば、近隣又は特定のインターネットルートに影響を与える機能停止は、特定のデバイスが誤って構成されていること、ネットワーククロゼットが電力を失うこと、又は何らかの他のローカル問題のために発生し得る。これらの機能停止は、ラストマイルの機能停止として分類することができ、既存の技術では検出することが困難であり得る。開示される技術は、ラストマイルの機能停止についての機能停止を適応的に検出し、特徴付けることができる。
【0014】
本技術は、次のように、以下の開示において説明される。説明は、図1に示されるように、様々なネットワークノード(例えば、ルータ、スイッチ、クライアントエンドポイント)を有する例示的なISPネットワークの説明から始まる。ネットワーク構造を決定するための例示的な方法の説明は、図2に示されるように提供される。小規模な機能停止(例えばラストマイルの機能停止)を検出及び識別するための例示的な方法の説明は、図3及び図4に示すように提供される。説明は、図5に示されるような例示的なネットワークデバイス、及び図6に示されるようなネットワーキング環境において機能停止検出を提供するのに適した例示的なハードウェア構成要素を含む例示的なコンピューティングデバイスアーキテクチャの説明で終えられる。本開示は、次に図1を参照する。
【0015】
図1は、インターネットサービスプロバイダ(ISP)コアネットワーク110を有する例示的なネットワーク環境100を示す。ISPコアネットワーク110は、様々なネットワークノード120-1~120-9(まとめて120)と通信する。ISPコアネットワーク110間及びネットワークノード120間の通信は、外部BGP(Exterior Border Gateway Protocol、EBGP)と内部BGP(Interior Border Gateway Protocol、IBGP)の両方を含むボーダーゲートウェイプロトコル(Border Gateway Protocol、BGP)、又は内部ゲートウェイプロトコル(Interior Gateway Protocol、IGP)を利用することができる。更に、ネットワークノード120は、トンネリング技術を利用することによって、他のネットワークノード間で通信することができる。
【0016】
ISPコアネットワーク110は、ネットワークノード120との間でデータパケットを送信、受信、維持、及び監視することによって、1つ以上のネットワークノード120へのインターネットアクセスを提供することができる。いくつかの実装形態では、ISPコアネットワーク110は、ネットワーク環境100内でデータパケットを管理するように構成されたネットワークアプライアンス112を有する。更に、ネットワークアプライアンス112は、データパケットを分析して、ネットワークモデルを作成し、ネットワークノード120がネットワーク環境100からいつ切断するかを決定することができる。例えば、ネットワークアプライアンス112は、ネットワークノード間のルートを含むネットワークデータパケットを受信することができる。ネットワークアプライアンス112は、次いで、接続されたノード(例えば、ネットワークノード間のルート)に基づいて、ネットワークモデルを生成することができる。
【0017】
更に、ネットワークアプライアンス112は、ISPコアネットワーク110の一部である必要はないと企図される。例えば、サードパーティアプリケーション又はサービスは、同様に、ネットワークノード120との間でデータパケットを送信、受信、維持、及び監視することができる。更に、サードパーティアプリケーション又はサービスは、ネットワークデータパケットを利用して、ネットワークモデルを生成することができる。
【0018】
ネットワークノード120は、ISPコアネットワーク110に接続することができる。ネットワークノード120は、ルータ、アクセスポイント、サーバ、ハブ、アンテナ、ネットワークインターフェースカード(Network Interface Card、NIC)、モジュール、ケーブル、ファイアウォール、リピータ、センサ、クライアントエンドポイント、プライベートネットワークなどを含むがこれらに限定されない任意のタイプのネットワークノードであり得る。更に、ネットワークノード120は、接続されたユーザがインターネットにアクセスすることを可能にするためにデータパケットを送受信するように構成される。更に、ネットワークノード120は、有線プロトコル、無線プロトコル、又はTCP/IP、OSI(Open Systems Interconnection)プロトコル(例えば、L1~L7プロトコル)、ルーティングプロトコル(例えば、RIP、IGP、BGP、STP、ARP、OSPF、EIGRP、NAT)、若しくは任意の他のプロトコル(例えば、HTTP、SSH、SSL、RTP、FTP、SMTP、POP、PPP、NNTP、IMAP、Telnet、SSL、SFTP、WIFI、Bluetooth、VTP、ISL、IEEE802規格、L2TP、IPSecなど)を含むがこれらに限定されない任意の他のプロトコルを利用するように構成される。ネットワークノード120は、1つ以上のポリシー、構成、サービス、設定、及び/又は能力(例えば、セキュリティポリシー、サブネット化及びルーティング方式、転送方式、NAT設定、VPN設定、IPマッピング、ポート番号、セキュリティ情報、ネットワーク管理サービス、バックアップサービス、災害復旧サービス、帯域幅又は性能サービス、侵入検出サービス、ネットワーク監視サービス、コンテンツフィルタリングサービス、アプリケーション制御、WAN最適化、ファイアウォールサービス、ゲートウェイサービス、ストレージサービス、プロトコル構成サービス、無線展開サービスなど)を受信し、利用することができることも理解される。
【0019】
更に、ネットワークノード120は、ネットワークデータパケットを送信、受信、及び/又は更新若しくは修正するように構成される。ネットワークデータパケットは、第1のネットワークノードと第2のネットワークノードとの間のルートに関連付けられ得る。更に、ネットワークデータパケットは、第1のネットワークノードがネットワーク環境100を介して第2のネットワークノードにネットワークデータパケットを送信することができるように、第1のネットワークノードをソースノードとして、かつ第2のネットワークノードを宛先ノードとして関連付けることができる。場合によっては、ネットワークデータパケットは、第3のネットワークノードを横断して、最終的に第2のネットワークノードに到達し得る。これらの場合、第3のネットワークノードは、ネットワークデータパケットのルートを更新及び/又は修正して、第3のネットワークノードを横断ノードとして関連付けるように構成され得る。したがって、第2のネットワークノードがネットワークデータパケットを受信するとき、ネットワークデータパケットは、ネットワークデータパケットのソースノード、及び宛先ノードへのルート内の任意の横断ノードを識別する。加えて、ネットワークデータパケットは、ネットワークデータパケットと相互作用した任意の及び/又は全てのネットワークノード120(例えば、送信ノード、受信ノード、中間ノード)のIPアドレスを含むことができる。いくつかの実装形態では、ネットワークノード120は、トレースルート機能、複数のトレースルート機能、マルチトレースルート機能(例えば、ダブリントレースルート)などを実装することができる。
【0020】
本明細書で使用されるトレースルート機能は、可能なルートを生成及び表示し、かつインターネットプロトコル(Internet Protocol、IP)ネットワーク上のパケットの遅延を測定するためのコンピュータネットワーク診断コマンドを含むことができる。更に、ルートの履歴を、ルート内の各ネットワークノード120から受信されたパケットの往復時間として記録することができる。
【0021】
ネットワークアプライアンス112は、トレースルート機能によって収集された情報(例えば、ネットワークデータパケット)を利用して、ネットワークトポロジを生成することができる。いくつかの実施形態では、ネットワークアプライアンスは、トレースルーティングを通じて識別された1つ以上のルートを、複数のネットワークノード120内のネットワークノード120間の接続のグラフ(例えば、有向非巡回グラフ)に変換してもよい。次いで、グラフを変形及び/又は使用して、グラフ内のノードに基づいてネットワークモデル(例えば、ツリーデータ構造)を生成することができる。
【0022】
更に、ネットワークアプライアンス112によって生成されるネットワークトポロジは、特定のネットワークノード120とISPコアネットワーク110との間の通信を識別することができる。より具体的には、ネットワークアプライアンスは、ISPコアネットワーク110から特定のネットワークノード120への、それに向かう、及び/又はそれを通る通信が、ダウンストリーム通信であり、ネットワークノード120からコアネットワーク110への又はそれに向かう通信が、アップストリーム通信であることを識別することができる。しかしながら、通信はISPコアネットワーク110を横断する必要はないことを理解されたい。例えば、ネットワークノード120-8からネットワークノード120-5への通信は、アップストリーム通信であり得、ネットワークノード120-5からネットワークノード120-8への通信は、ダウンストリーム通信であり得る。
【0023】
図2は、ネットワークモデルを生成するための例示的な方法200を示す。図2に示される方法200は、方法を実施するのに様々な方法があるので、例として提供される。更に、例示的な方法は特定の順序のステップで示されているが、当業者であれば、図2及び図2に示されるモジュールは任意の順序で実行することができ、示されるよりも少ない又は多いモジュールを含み得ることを理解するであろう。更に、図2に示される各モジュールは、方法における1つ以上のステップ、プロセス、方法、又はルーチンを表す。
【0024】
ブロック202において、方法200は、例えば、第1のネットワークノードによって、ネットワークデータパケットを第2のネットワークノードに送信することができる。ネットワークデータパケットは、第1のネットワークノードをソースノードとして、かつ第2のネットワークノードを宛先ノードとして関連付けるルートを含むことができる。
【0025】
ブロック204において、方法200は、ネットワークデータパケットが第3のネットワークノードを横断するときに、第3のネットワークノードによって、ネットワークデータパケット内のルートを更新することができる。
【0026】
ブロック206において、方法200は、第2のネットワークノードによって、ネットワークデータパケットが第3のネットワークノードを横断したことを示す更新されたルートを有するネットワークデータパケットを受信する。
【0027】
ブロック208において、方法200は、第2のネットワークノードによって、更新されたルートでネットワークアプライアンスにネットワークデータパケットを送信する。
【0028】
ブロック210において、方法200は、ネットワークアプライアンスによって、ネットワークデータパケットのルートに基づいて、ネットワークモデルを生成する。場合によっては、複数のネットワークデータパケットが、様々な他のノードによって送信及び受信されていることがある。これらの場合、ネットワークアプライアンスは、ネットワークモデルを生成及び/又は更新することができる。上述したように、ネットワークアプライアンスは、ISPの外部のアプライアンスであり得ることが更に企図される。言い換えれば、ISPの外部のネットワークアプライアンスも、ネットワークデータパケットのルートに基づいて、ネットワークモデルを生成することができる。
【0029】
更に、場合によっては、複数のルートがネットワークノード間で利用可能である。したがって、これらの場合、ネットワークモデルは、これらのネットワークノード間の複数のルートを含むことができる。例えば、ダブリントレースルート機能は、ネットワークノード間の可能なパスのスーパーセットを識別することができる。したがって、ネットワークアプライアンスは、ネットワークノード間の複数のルートを使用して、ネットワークノード間に複数のルートを有するネットワークモデルを生成することができる。したがって、ネットワークモデルは、所与のネットワーク環境のインフラストラクチャ及びトポロジの現在の状態を反映し、共通の先祖(例えば、ISPコアネットワーク110により近い接続されたネットワークノード)関連のクエリに効率的に回答するために使用され得る。当業者であれば、新しいネットワークノードは、ネットワーク環境に追加されるときに、ネットワークモデルに追加され得ることも理解するであろう。
【0030】
図3は、ネットワーク環境(例えば、ネットワーク環境100)から生成及び/又は変形された例示的なツリーデータ構造300を示す。より具体的には、ネットワークアプライアンス112は、ネットワーク環境100からツリーデータ構造300を生成及び/又は変形することができる。ツリーデータ構造は、任意の2つのノードが正確に1つのパスによって接続される無向グラフである。図示のように、ツリーデータ構造300は、異なる構造のネットワーク環境100からのネットワークノード120を含む。ツリーデータ構造300を生成するために、ネットワークアプライアンス112は、アルゴリズム(例えば、以下の方法400)を適用して、ツリーデータ構造300を計算することができる。ツリーデータ構造300は、ネットワーク環境100の状態を正確に反映する構造を提供する一方で、共通の先祖関連のクエリに回答する際に効率的であるデータ構造も提供する。より具体的には、ツリーデータ構造300は、各ネットワークノード120の(ファジー)共通の先祖を識別する。次いで、ツリーデータ構造300は、共通の先祖関連のクエリに回答するための(例えば、1つ以上のネットワークノード120の機能停止に対する単一の障害ポイントを識別するための)ネットワークモデルとして使用され得る。
【0031】
図4は、ネットワークトポロジをツリーデータ構造(例えば、ツリーデータ構造300)に生成、変換、又は変形するための例示的な方法400を示す。図4に示される方法400は、方法を実施するのに様々な方法があるので、例として提供される。更に、例示的な方法は特定の順序のステップで示されているが、当業者であれば、図4及び図4に示されるモジュールは任意の順序で実行することができ、示されるよりも少ない又は多いモジュールを含み得ることを理解するであろう。更に、図4に示される各モジュールは、方法における1つ以上のステップ、プロセス、方法、又はルーチンを表す。
【0032】
ブロック402において、ネットワークコントローラは、ネットワークトポロジ(例えば、ネットワーク環境100及び/又はネットワーク環境100の有向非巡回グラフを反映するデータパケット)を受信する。
【0033】
ブロック404において、ネットワークアプライアンスは、ネットワークトポロジ内の複数のノード(例えば、ネットワークノード120)を決定することができる。
【0034】
ブロック406において、ネットワークアプライアンスは、複数のノードの各々について最も低い単一の共通の先祖を決定することができる。最も低い単一の共通の先祖は、ネットワークモデル(例えば、ツリーデータ構造300)内の複数のノードのうちの特定のノードの上流の第1の先祖ノードであり得る。
【0035】
ブロック408において、ネットワークアプライアンスは、複数のノード、及び最も低い単一の共通の先祖の各々に基づいて、ツリーデータ構造を生成することができる。ツリーは、グラフ内の冗長パス(例えば、ノード間の複数のパス又はルート)が除去されるように構成することができ、ノードは、最も低い単一の共通の先祖に直接接続され得る。例えば、図1において、ネットワークノード120-4は、ISPコアネットワーク110からの複数のルートを有する。したがって、ネットワークノード120-4は、図3では、ISPコアネットワーク110において単一の共通の先祖を有するように示されている。別の例として、図1において、ネットワークノード120-8は、ネットワークノード120-5を通る1つのルートのみを有する。したがって、ネットワークノード120-8は、図3のネットワークノード120-5において単一の共通の先祖を有するように示されている。
【0036】
図5A及び図5Bは、ISPコアネットワーク110及びネットワークノード120-1~120-7(まとめてネットワークノード120)を有する例示的なネットワーク環境500a、500bを示す。ネットワーク環境500a、500bは、同じネットワーク環境を反映している(まとめてネットワーク環境500)。より具体的には、図5Aは、非巡回グラフ形式のネットワーク環境500aを示し、図5Bは、ツリーデータ構造形式のネットワーク環境500bを示す。上述したように、環境500bのツリーデータ構造は、各ネットワークノード120に対して最も低い単一の共通の先祖ノードを提供する。加えて、ネットワーク環境500は、いくつかのネットワークノードが現在切断されているネットワークノード120-8~120-9(まとめて切断されたネットワークノード120’)であることを検出している。
【0037】
上述したように、ISPコアネットワーク110は、ネットワークアプライアンス112を含むことができる。ネットワークアプライアンス112は、ネットワークノード120が切断されたネットワークノード120’になったときを検出するように構成され得る。例えば、ネットワークノード120は、ネットワークノード120が依然としてISPコアネットワーク110に接続されていることを示すデータパケットを周期的に送信するように構成でき、ネットワークアプライアンス112は、このデータパケットを受信及び監視するように構成できる。したがって、ネットワークアプライアンス112が、切断されたネットワークノード120’からデータパケットを受信しないとき、ネットワークアプライアンス112は、切断されたネットワークノード120’がISPコアネットワーク110から切断されていると決定することができる。
【0038】
加えて、ネットワークアプライアンス112は、ネットワークノード120が切断されたネットワークノード120’になることを引き起こしている障害の原因を識別するように構成され得る。より具体的には、ネットワークアプライアンス112によって生成されたネットワークモデルに基づいて、ネットワークアプライアンス112は、概して、ネットワークノード120間の共通リンク及び代替ルートを識別することができる。したがって、切断されたネットワークノード120’に対する共通ネットワークノードを検索することによって、ネットワークアプライアンス112は、障害の原因を識別することができる。例えば、図5Aにおいて、ネットワークノード120-8’、120-9’は、共通の接続されたネットワークノード120としてネットワークノード120-5を有する。しかしながら、ネットワークノード120-5が障害の原因であった場合、切断されたネットワークノード120-9’は、ネットワークノード120-6、120-7にわたる可能なルーティングのために、切断されないはずである。したがって、ネットワークノード120-2は、障害の原因である可能性が高い。言い換えれば、ネットワークアプライアンス112による分析の結果は、潜在的な単一の障害ポイントを強調し、かつ機能停止を現在経験しているエリアを画定する、ネットワークモデル内のノードである。このアプローチを用いて、ネットワークアプライアンス112は、より小さい規模だけでなく、適応的な様式でも、障害(例えば、機能停止)を拾い上げ、特徴付けることができる。したがって、ネットワークアプライアンス112は、ハイパーローカルの機能停止(例えば、顧客のルータの機能停止)から、大規模な広い規模のISPの機能停止(例えば、都市全体に影響を及ぼす機能停止)、及びその間の中規模機能停止(例えば、地区又は近隣における電力機能停止)まで、機能停止を検出、識別、及び提示することができる。
【0039】
これは、図5Bのツリーデータ構造を利用することによって、更に簡素化することができる。上記の例を続けると、ネットワークノード120-8’、120-9’は、共通の接続されたネットワークノード120としてネットワークノード120-5を有するようには示されていない。代わりに、ツリーデータ構造は、ネットワークノード120-2を最も低い共通の先祖として識別する。したがって、ツリーデータ構造を事前に計算し、ツリーデータ構造をクエリのために利用することによって、共通の先祖関連のクエリに対して高い効率で回答することができる。
【0040】
図6は、ネットワーク環境における障害の原因(例えばラストマイルの機能停止)を識別するための例示的な方法600を示す。図6に示される方法600は、方法を実施するのに様々な方法があるので、例として提供される。更に、例示的な方法は特定の順序のステップで示されているが、当業者であれば、図6及び図6に示されるモジュールは任意の順序で実行することができ、示されるよりも少ない又は多いモジュールを含み得ることを理解するであろう。更に、図6に示される各モジュールは、方法における1つ以上のステップ、プロセス、方法、又はルーチンを表す。
【0041】
ブロック602において、方法600は、ネットワークのネットワークアプライアンスによって、複数のネットワークノードをリアルタイムで監視することができる。ネットワークノードは、例えばリアルタイムで、ノードレベルで機能停止を検出するための適用可能な技術を通じて監視され得る。例えば、ネットワークアプライアンスは、スケジュールされた間隔で複数のネットワークノードからデータパケットを受信するように構成され得る。上述したように、ネットワークアプライアンスは、ISPから分離することができる。言い換えれば、ネットワークアプライアンスは、アプリケーション、サービス、及び/又はそれらを行うことができるデバイスとすることができる。
【0042】
ブロック604において、方法600は、ネットワークアプライアンスによって、複数のネットワークノードのうちの少なくとも1つのネットワークノードがネットワークから切断されたことを検出することができる。ネットワークノードを監視し、ネットワークノードの切断を検出する際に、機能停止の対象であるノードのIPアドレスを識別することができる。例えば、ネットワークアプライアンスは、ネットワークアプライアンスが所定の時間において又は設定された時間量内にネットワークノードからデータパケットを受信できないときに、ネットワークノードがネットワークから切断されたことを検出することができる。
【0043】
ネットワークノードを監視し、切断されたノードを識別する際に、例えばMトンネルステータスの集約から生じる、デバイス切断のストリームを監視することができる。更に、適用可能な機能停止検出方式を適用して、潜在的なインターネットの機能停止を識別することができる。適用される機能停止検出方式は、バーストモデル、例えば、Kleinbergバーストモデルに基づくことができる機能停止モデル、又は、例えば、基本的な二項検定に基づく二項モードによって定義することができる。更に、潜在的に中断されたIPアドレスのセットは、機能停止が発生したときに識別することができる。
【0044】
ブロック606において、方法600は、ネットワークアプライアンスによって、ネットワークアプライアンスによって生成されたネットワークモデル上に少なくとも1つのネットワークノードをオーバーレイすることができる。例えば、ネットワークモデルは、図2のブロック210においてネットワークアプライアンスによって生成されたネットワークモデルであってもよい。次いで、モデルオーバーレイが、ネットワークモデル上にオーバーレイされた少なくとも1つのネットワークノードから生成される。モデルオーバーレイは、ネットワークモデルのスキームにおいて切断されたノード(例えば、少なくとも1つのネットワークノード)を識別及び/又は示すことができる。例えば、図5A及び図5Bは、切断された少なくとも1つのネットワークノード(例えば、ネットワークノード120-8’及び120-9’)を識別及び実証するために、ネットワークモデル上にオーバーレイされたモデルオーバーレイを示す。
【0045】
ブロック608において、方法600は、ネットワークアプライアンスによって、少なくとも1つのネットワークノードの最も低い共通の先祖ノードを識別することによって、少なくとも1つのネットワークノードの機能停止ソースを決定することができる。より具体的には、最も低い共通の先祖ノードは、ネットワークノードからのアップストリーム通信及びネットワークノードへのダウンストリーム通信のいずれか又は両方の単一の障害ポイントを提供する、ネットワーク内のネットワークノードに対する最も近いアップストリームノードであり得る。2つ以上のネットワークノードが機能停止を経験する状況では、2つ以上のネットワークノードの最も低い共通の先祖ノードは、2つ以上のネットワークノードからのアップストリーム通信及び2つ以上のネットワークノードへのダウンストリーム通信のいずれか又は両方の単一の障害ポイントを提供する、ネットワーク内のネットワークノードに最も近い共有アップストリームノードであり得る。
【0046】
次に、本開示は、スイッチ、ルータ、ノード、サーバ、クライアントデバイス、オーケストレータなどの例示的なネットワークデバイス及びコンピューティングデバイスを示す図7及び図8を参照する。
【0047】
図7は、スイッチング、ルーティング、負荷分散、及び他のネットワーキング動作を行うのに適した例示的なネットワークデバイス700(例えば、ネットワークノード120)を示す。ネットワークデバイス700は、中央処理ユニット(Central Processing Unit、CPU)704と、インターフェース702と、バス710(例えば、PCIバス)と、を含む。適切なソフトウェア又はファームウェアの制御下で動作するとき、CPU704は、パケット管理、エラー検出、及び/又はルーティング機能を実行する責任がある。CPU704は、オペレーティングシステム及び任意の適切なアプリケーションソフトウェアを含むソフトウェアの制御下で、これら全ての機能を達成することが好ましい。CPU704は、INTEL X86ファミリのマイクロプロセッサからのプロセッサなど、1つ以上のプロセッサ708を含むことができる。場合によっては、プロセッサ708は、ネットワークデバイス700の動作を制御するために特別に設計されたハードウェアであり得る。場合によっては、メモリ706(例えば、不揮発性RAM、ROMなど)も、CPU704の一部を形成する。しかしながら、メモリがシステムに結合され得る多くの異なる方法が存在する。
【0048】
インターフェース702は、通常、モジュラインターフェースカード(「ラインカード」と呼ばれることもある)として提供される。概して、それらは、ネットワークを介したデータパケットの送信及び受信を制御し、時には、ネットワークデバイス700とともに使用される他の周辺機器をサポートする。提供され得るインターフェースの中には、イーサネットインターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェースなどがある。更に、高速トークンリングインターフェース、無線インターフェース、イーサネットインターフェース、ギガビットイーサネットインターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェース、WIFIインターフェース、3G/4G/7Gセルラインターフェース、CAN BUS、LoRAなど、様々な超高速インターフェースが提供されてもよい。一般に、これらのインターフェースは、適切な媒体との通信に適したポートを含むことができる。場合によっては、それらはまた、独立したプロセッサを含んでもよく、場合によっては、揮発性RAMを含んでもよい。独立したプロセッサは、パケット交換、メディア制御、信号処理、暗号処理、及び管理などの通信集約的タスクを制御することができる。通信集約的タスクのために別個のプロセッサを提供することによって、これらのインターフェースは、マスタCPU(例えば、704)が、ルーティング計算、ネットワーク診断、セキュリティ機能などを効率的に行うことを可能にする。
【0049】
図7に示されるシステムは、本開示の1つの特定のネットワークデバイスであるが、決して、本開示が実装され得る唯一のネットワークデバイスアーキテクチャではない。例えば、通信並びにルーティング計算などを処理する単一のプロセッサを有するアーキテクチャがしばしば使用される。更に、他のタイプのインターフェース及び媒体もまた、ネットワークデバイス700とともに使用され得る。
【0050】
ネットワークデバイスの構成にかかわらず、ネットワークデバイスは、本明細書で説明するローミング、ルート最適化、及びルーティング機能のための汎用ネットワーク動作及び機構のためのプログラム命令を記憶するように構成された(メモリ706を含む)1つ以上のメモリ又はメモリモジュールを使用することができる。プログラム命令は、例えば、オペレーティングシステム及び/又は1つ以上のアプリケーションの動作を制御し得る。1つ以上のメモリはまた、モビリティバインディング、登録、及び関連付けテーブルなどのテーブルを記憶するように構成され得る。メモリ706はまた、様々なソフトウェアコンテナ並びに仮想化された実行環境及びデータを保持することができる。
【0051】
ネットワークデバイス700はまた、ルーティング及び/又はスイッチング動作を行うように構成され得る特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)を含み得る。ASICは、バス710を介してネットワークデバイス700内の他の構成要素と通信して、データ及び信号を交換し、例えば、ルーティング、スイッチング、及び/又はデータ記憶動作など、ネットワークデバイス700による様々なタイプの動作を調整することができる。
【0052】
図8は、FaaS動作及び要求を処理し、実行環境を展開し、FaaS機能に関連付けられたコードをロードし、本明細書で説明される任意の他のコンピューティング動作を行うために使用され得るシステム800(例えば、ネットワークアプライアンス112)の例示的なコンピューティングシステムアーキテクチャを示す。この例では、システム800の構成要素は、バスなどの接続806を使用して互いに電気通信している。システム800は、処理ユニット(CPU又はプロセッサ)804と、読取り専用メモリ(Read Only Memory、ROM)818及びランダムアクセスメモリ(Random Access Memory、RAM)816などのメモリ820を含む様々なシステム構成要素をプロセッサ804に結合する接続806と、を含む。
【0053】
システム800は、プロセッサ804に直接接続されたか、それに極めて近接して接続されたか、又はそれの一部として統合された高速メモリのキャッシュを含むことができる。システム800は、プロセッサ804による迅速なアクセスのために、メモリ820及び/又は記憶デバイス808からキャッシュ802にデータをコピーすることができる。このようにして、キャッシュは、データを待っている間のプロセッサ804の遅延を回避する性能向上を提供することができる。これら及び他のモジュールは、様々なアクションを行うようにプロセッサ804を制御するか、又は制御するように構成され得る。他のメモリ820も同様に使用可能であり得る。メモリ820は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ804は、任意の汎用プロセッサと、プロセッサ804を制御するように構成された、記憶デバイス808に記憶されたサービス1 810、サービス2 812、及びサービス3 814などのハードウェアサービス又はソフトウェアサービスと、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサと、を含むことができる。プロセッサ804は、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型のコンピューティングシステムであってもよい。マルチコアプロセッサは、対称又は非対称であってもよい。
【0054】
コンピューティングシステム800とのユーザ対話を可能にするために、入力デバイス822は、音声用のマイクロフォン、ジェスチャ又はグラフィカル入力用のタッチセンシティブスクリーン、キーボード、マウス、モーション入力、音声など、任意の数の入力機構を表すことができる。出力デバイス824は、当業者に知られているいくつかの出力機構のうちの1つ以上とすることもできる。いくつかの事例では、マルチモーダルシステムは、ユーザがコンピューティングシステム800と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース826は、概して、ユーザ入力及びシステム出力を支配及び管理することができる。任意の特定のハードウェア構成上で動作することに対する制限はなく、したがって、ここでの基本的な特徴は、改良されたハードウェア又はファームウェア構成が開発されるにつれて、それらの構成と容易に置換され得る。
【0055】
記憶デバイス808は、不揮発性メモリとすることができ、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)816、読取り専用メモリ(ROM)818、及びこれらのハイブリッドなど、コンピュータによってアクセス可能なデータを記憶することができるハードディスク又は他のタイプのコンピュータ可読媒体とすることができる。
【0056】
記憶デバイス808は、プロセッサ804を制御するためのサービス810、812、814を含むことができる。他のハードウェア又はソフトウェアモジュールも企図される。記憶デバイス808は、接続806に接続することができる。一態様では、特定の機能を行うハードウェアモジュールは、機能を遂行するために、プロセッサ804、接続806、出力デバイス824などの必要なハードウェア構成要素に関連してコンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
【0057】
説明を明確にするために、いくつかの事例では、本技術は、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせで具現化される方法におけるデバイス、デバイス構成要素、ステップ又はルーチンを備える機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。
【0058】
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、及びメモリは、ビットストリームなどを含むケーブル又はワイヤレス信号を含むことができる。しかしながら、言及されるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、及び信号自体などの媒体を明示的に除外する。
【0059】
上述の例による方法は、コンピュータ可読媒体に記憶されるか、又は別様にコンピュータ可読媒体から利用可能なコンピュータ実行可能命令を使用して実装することができる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理装置に、ある特定の機能若しくは機能のグループを行わせるか、又は他の方法で構成する命令及びデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、又はソースコードであってもよい。説明される例による方法中に命令、使用される情報、及び/又は作成される情報を記憶するために使用され得るコンピュータ可読媒体の例としては、磁気又は光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク化された記憶デバイスなどが挙げられる。
【0060】
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、及び/又はソフトウェアを備えることができ、様々なフォームファクタのいずれかをとることができる。そのようなフォームファクタの典型的な例としては、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書で説明される機能はまた、周辺機器又はアドインカードにおいて具現化され得る。そのような機能はまた、更なる例として、単一のデバイス内で実行される異なるチップ又は異なるプロセス間の回路基板上に実装され得る。
【0061】
命令、そのような命令を搬送するための媒体、それらを実行するためのコンピューティングリソース、及びそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示において説明される機能を提供するための手段である。
【0062】
添付の特許請求の範囲内の態様を説明するために様々な例及び他の情報が使用されたが、当業者はこれらの例を使用して多種多様な実装形態を導出することができるので、そのような例における特定の特徴又は構成に基づいて特許請求の範囲の限定が暗示されるべきではない。更に、いくつかの主題は、構造的特徴及び/又は方法ステップの例に特有の言語で説明されている場合があるが、添付の特許請求の範囲において定義される主題は、これらの説明された特徴又は行為に必ずしも限定されないことを理解されたい。例えば、そのような機能は、本明細書で識別された構成要素以外の構成要素において異なるように分散され得るか、又は行われ得る。むしろ、説明された特徴及びステップは、添付の特許請求の範囲内のシステム及び方法の構成要素の例として開示される。
【0063】
セット「のうちの少なくとも1つ」及び/又はセットのうちの「1つ以上」を記載する請求項の文言又は他の文言は、セットの1つのメンバー又はセットの(任意の組み合わせでの)複数のメンバーが請求項を満たすことを示す。例えば、「A及びBのうちの少なくとも1つ」を記載する請求項の文言は、A、B、又はA及びBを意味する。別の例では、「A、B、及びCのうちの少なくとも1つ」を記載する請求項の文言は、A、B、C、又はA及びB、又はA及びC、又はB及びC、又はA及びB及びCを意味する。セット「のうちの少なくとも1つ」及び/又はセットのうちの「1つ以上」という文言は、セットを、セット内に列挙された項目に限定しない。例えば、「A及びBのうちの少なくとも1つ」を記載する請求項の文言は、A、B、又はA及びBを意味することができ、A及びBのセット内に列挙されていない項目を更に含むことができる。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8