(57)【要約】【解決手段】本発明はフローベースのプログラマブルネットワーク装置（１）にフロールールを設定するための方法及びシステムに関する。前記フローベースのプログラマブルネットワーク装置（１）は、入力／出力ポート（５ａ、５ｂ）、転送ルール群の中のルールにマッチするパケットフローに基づいて、前記入力ポート（５ａ）で受信したネットワーク内のデータ送信装置群（８）からの各パケットフローを前記出力ポート（５ｂ）にマッピングする前記転送ルール群を含むフローテーブル（６）と、前記各パケットフローの状態を特定する状態エントリーを含む状態テーブル（７）とを含む。フローテーブルやコントロールプレーンをオーバーロードすることなく転送ソリューションを数百万のデータ送信装置にスケールするために、本発明は、コントロール実体（４）が前記データ送信装置群（８）からパケットフロー送信の時刻及び間隔についての情報を含むパケットフロー情報を取得し、前記パケットフロー情報に基づいて前記転送ルール群を前記フローテーブルにプログラムし、特定のパケットフローのためにプログラムされた転送ルールの起動を前記特定のパケットフローの実際の送信の前にジャストインタイムでトリガーすることを提案する。【選択図】図３
2019506097.tif 000002
【特許請求の範囲】
【請求項１】
フローベースのプログラマブルネットワーク装置（１）にフロールールを設定する方法であって、
前記フローベースのプログラマブルネットワーク装置（１）は入力／出力ポート（５ａ、５ｂ）、転送ルール群の中のルールにマッチするパケットフローに基づいて、前記入力ポート（５ａ）で受信したネットワーク内のデータ送信装置群（８）からの各パケットフローを出力ポート（５ｂ）にマッピングする前記転送ルール群を含むフローテーブル（６）と、前記各パケットフローの状態を特定する状態エントリーを含む状態テーブル（７）とを含み、
前記方法は、
コントロール実体（４）が前記データ送信装置群（８）からパケットフロー送信の時刻及び間隔についての情報を含むパケットフロー情報を取得し、
前記パケットフロー情報に基づいて前記転送ルール群を前記フローテーブルにプログラムし、
特定のパケットフローのためにプログラムされた転送ルールの起動を前記特定のパケットフローの実際の送信の前にジャストインタイムでトリガーする、ことを含む方法。
【請求項２】
前記特定のパケットフローのための転送ルールの起動は、前記特定のパケットフローのための新しい又は変更された状態エントリーを用いて適時行われた前記状態テーブル（７）の更新によりトリガーされる、請求項１に記載の方法。
【請求項３】
前記新しい又は変更された状態エントリーは、その設定以来特定の時間が経過後その削除をトリガーするタイムアウトを用いて構成される、請求項２に記載の方法。
【請求項４】
前記状態テーブル（７）の更新は、前記フローベースのプログラマブルネットワーク装置（１）のＣＰＵ上に実装された時間トリガーモジュール（９）により実行される、請求項１〜３のいずれかに記載の方法。
【請求項５】
前記時間トリガーモジュール（９）は現在のクロック値に対する各パケットフロー送信の時刻を監視する、請求項４に記載の方法。
【請求項６】
前記状態テーブル（７）の更新は前記フローテーブル（６）の転送ルール群に含まれる状態遷移アクションによって実行される、請求項１〜３のいずれかに記載の方法。
【請求項７】
特定のパケットフローのための状態遷移アクションは、外部時間ソース（１０）により生成され前記パケットフローの送信時間に対応する時間値を保持する時間パケットを前記フローベースのプログラマブルネットワーク装置（１）に送信し、前記パケットフローが前記時間パケットとマッチするように、前記状態遷移アクションを含む前記フローテーブル（６）内の前記転送ルールを構成することによりトリガーされる、請求項６に記載の方法。
【請求項８】
前記外部時間ソース（１０）により生成された前記各時間パケットはブロードキャストとして送信される、請求項７に記載の方法。
【請求項９】
特定のパケットフローのための状態遷移アクションは、外部クロックソース（１１）により生成された各クロックパケットを前記フローベースのプログラマブルネットワーク装置（１）に送信することにより実現される各クロックパルスに依存することによりトリガーされる、請求項１〜３にいずれかに記載の方法。
【請求項１０】
前記フローテーブル（６）内の転送ルール群は前記各クロックパケットとマッチし、受信したクロックパケット数を数えるために対応する各フロー状態を更新するように構成された、請求項９に記載の方法。
【請求項１１】
好ましくは請求項１〜１０のいずれかに記載の方法を実行するための、フロールール設定システムであって、
フローベースのプログラマブルネットワーク装置（１）と、
コントロール実体（４）とを含み、
前記フローベースのプログラマブルネットワーク装置（１）は入力／出力ポート（５ａ、５ｂ）と、転送ルール群の中のルールにマッチするパケットフローに基づいて、前記入力ポート（５ａ）で受信したネットワーク内のデータ送信装置群（８）からの各パケットフローを前記出力ポート（５ｂ）にマッピングする前記転送ルール群を含むフローテーブル（６）と、前記各パケットフローの状態を特定する状態エントリーを含む状態テーブル（７）とを含み、
前記コントロール実体（４）は前記データ送信装置群（８）からパケットフロー送信の時刻及び間隔についての情報を含むパケットフロー情報を取得し、前記パケットフロー情報に基づいて前記転送ルール群を前記フローテーブルにプログラムし、特定のパケットフローのためにプログラムされた転送ルールの起動を前記特定のパケットフローの実際の送信の前にジャストインタイムでトリガーするように構成された、システム。
【請求項１２】
前記データ送信装置群（８）はそれぞれ、そこから前記コントロール実体（４）が前記データ送信装置群（８）のパケットフロー送信の時刻及び間隔を照会することが可能なＡＰＩを含む、請求項１１に記載のシステム。
【請求項１３】
前記データ送信装置群（８）はそれぞれ、センサー及び／又はスマートグリッドのスマートメーターを含む、請求項１１又は１２に記載のシステム。
【請求項１４】
請求項１から１３にいずれかに記載の方法及び／又はシステムにおいて採用されるように構成されたフローベースのプログラマブルネットワーク装置、特にＳＤＮスイッチ（２）。
【請求項１５】
請求項１から１３にいずれかに記載の方法及び／又はシステムにおいて採用されるように構成されたコントロール実体、特にＳＤＮコントローラー（１２）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、フローベースのプログラマブルネットワーク装置にフロールールを設定する方法とシステムに関する。
【背景技術】
【０００２】
本発明の実施形態の用途の技術分野は、例えば、非常に多数のスマートメーターなどのセンサーがネットワークインフラストラクチャーに接続された、いわゆる「スマートシティ」及びそれと同等のシナリオである。このようなセンサーの多くは、非常に少ない頻度でのみ、例えば、一時間に一回、又は一日に一回、データをＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ：物のインターネット）データベース又はサーバなどの何らかのシンクに送信する場合がある。各センサーは事前にこのデータを中央のＩｏＴサーバに送り込む、又は後者が一定の間隔で又はオンデマンドでセンサーをポーリングする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
恒常的なフロールールをネットワークの各センサーに設定した場合、ネットワークの各スイッチのフローテーブル、特にＩｏＴサーバの近くのフローテーブルが直ぐにオーバーロードになってしまう。アップリンク方向（すなわち、センサーからサーバーへの方向）では送信先ＩＰアドレスに基づく集合転送によりこの問題の多くは軽減されるが、より粒状のフロールールを必要とするダウンリンク方向ではこの問題は避けられない。
【０００４】
現在、センサーからＩｏＴサーバ又は他のシンクへパケットを伝送するネットワークインフラストラクチャーのフローベースのプログラマブルネットワーク装置に事後的にフロールールを設定することは可能である。この場合、センサー（又はそのＩｏＴゲートウェイ）はそのデータパケットをイングレススイッチに送信する。イングレススイッチとは、ＳＤＮネットワークを想定しかつマッチングルールがないと想定した場合、ＳＤＮコントローラーに照会してオンデマンドでフロールールを取得するものである。このフロールールは関連するタイムアウト値を有していてもよく、それによりしばらくして消滅する。この方法は（“スマートシティ”ネットワークなどの異種システムにおける合理的な前提と思われる、各センサーは全てのデータパケットを同時に送信しないという前提で）時間とともにフロールールのエントリーを分散するので、フロールールのオーバーロード問題が軽減される。しかしながら、そのためにスイッチとＳＤＮコントローラー間のシグナリング負荷が増大する。数百万のセンサーが一定間隔で転送経路に沿って数百万のメッセージ交換を行うことになる。これは本質的に問題とみなされてもよい。
【０００５】
代替的な方法として、フローテーブルの拡張があげられる（例えば、Ｒｏｂｅｒｔｏ  Ｂｉｆｕｌｃｏ、Ａｎｔｏｎ  Ｍａｔｓｉｕｋ：「スケーラブルＳＤＮスイッチを目指して：フローテーブルへのより速いエントリ入力」、データ通信に関するスペシャルインタレストグループの２０１５ＡＣＭ会議の会議録（ＳＩＧＣＯＭＭ’１５）．ＡＣＭ、ニューヨーク（ＮＹ）、アメリカ合衆国、３４３−３４４、ＤＯＩ＝ｈｔｔｐ：／／ｄｘ．ｄｏｉ．ｏｒｇ／１０．１１４５／２７８５９５６．２７９０００８、又はＮａｇａ  Ｋａｔｔａ、Ｏｍｉｄ  Ａｌｉｐｏｕｒｆａｒｄ、Ｊｅｎｎｉｆｅｒ  Ｒｅｘｆｏｒｄ、Ｄａｖｉｄ  Ｗａｌｋｅｒ：「ソフトウェアデファインドネットワークにおける無限キャッシュフロー」、ソフトウェアデファインドネットワーキングにおけるホットトピックに関する第３回ワークショップの会議録、（ＨｏｔＳＤＮ’１４）．ＡＣＭ、ニューヨーク（ＮＹ）、アメリカ合衆国、１７５−１８０、ＤＯＩ＝ｈｔｔｐ：／／ｄｘ．ｄｏｉ．ｏｒｇ／１０．１１４５／２６２０７２８．２６２０７３４に記載されるもの）。例えば、スイッチのＣＰＵを用いて多数のエントリーを保持することが可能なソフトウェアフローテーブルを実装してもよい。しかしその場合、データプレーントラフィックの処理に関する転送処理量及びスケーラビリティが限定されてしまう。
【０００６】
したがって、本発明の目的は、フローテーブルやコントロールプレーンをオーバーロードすることなく、転送ソリューションが数百万のＩｏＴセンサーなどのデータ送信装置にスケールされるようにフローベースのプログラマブルネットワーク装置にフロールールを設定する方法及びシステムを改善及び発展させることである。
【課題を解決するための手段】
【０００７】
本発明によれば、上記の目的は、フローベースのプログラマブルネットワーク装置にフロールールを設定する方法により達成される。前記フローベースのプログラマブルネットワーク装置は入力／出力ポート、転送ルール群の中のルールにマッチするパケットフローに基づいて、前記入力ポートで受信したネットワーク内のデータ送信装置からのパケットフローを出力ポートにマッピングする前記転送ルールを含むフローテーブルと、前記各パケットフローの状態を特定する状態エントリーを含む状態テーブルとを含み、前記方法は、コントロール実体が前記データ送信装置群からパケットフロー送信の時刻及び間隔についての情報を含むパケットフロー情報を取得し、前記パケットフロー情報に基づいて前記転送ルール群を前記フローテーブルにプログラムし、特定のパケットフローのためにプログラムされた転送ルールの起動を前記特定のパケットフローの実際の送信の前にジャストインタイムでトリガーする、ことを含む。
【０００８】
更に、上記の目的は、フローベースのプログラマブルネットワーク装置とコントロール実体とを含むフロールール設定システムにより達成される。前記フローベースのプログラマブルネットワーク装置は入力／出力ポートと、転送ルール群の中のルールにマッチするパケットフローに基づいて、前記入力ポートで受信したネットワーク内のデータ送信装置からのパケットフローを前記出力ポートにマッピングする前記転送ルールを含むフローテーブルと、前記各パケットフローの状態を特定する状態エントリーを含む状態テーブルとを含み、コントロール実体は前記データ送信装置群からパケットフロー送信の時刻及び間隔についての情報を含むパケットフロー情報を取得し、前記パケットフロー情報に基づいて前記転送ルール群を前記フローテーブルにプログラムし、特定のパケットフローのためにプログラムされた転送ルールの起動を前記特定のパケットフローの実際の送信の前にジャストインタイムでトリガーするように構成される。
【０００９】
本発明によれば、上記の目的は時間で保護されたやり方でフロールールの設定を実現することにより達成できることが認識された。本発明の実施形態は、ステートフルなパケット処理を可能にしＳＤＮコントローラーなどのコントロール実体によりプログラマブルだが毎回コントローラーを参照する必要のないＳＤＮスイッチなどのフローベースのプログラマブルネットワーク装置の定義に基づくものである。特に、このようなスイッチは絶対時間に基づいてその内部状態を更新できる（及びそれにより内部アクションをトリガーできる）。本発明の実施形態の背後にある概念は、各スイッチがセンサーなどの接続されたデータ送信装置がトラフィックを生成する時間や間隔に関する知識を取得し、この知識を用いてこのセンサーのトラフィックシンク（例えば、ＩｏＴサーバ）への転送動作を統治するフロールールを自立的に「設定」又は「起動」するというものである。コントロールプレーンに負荷を与える事後的なルール設定の代わりに、本発明の実施形態はジャストインタイムでのフロールール設定を実現する。事後的な場合と同様、この方法は（例えば、Ｄｕｓｉ，  Ｍ．、Ｂｉｆｕｌｃｏ，Ｒ．、Ｇｒｉｎｇｏｌｉ，Ｆ．、Ｓｃｈｎｅｉｄｅｒ，Ｆ．：「ソフトウェアデファインドネットワーキングにおける事後的ロジック：フローテーブル要求事項の測定」、無線通信とモバイルコンピューティングの会議（ＩＷＣＭＣ）、２０１４  Ｉｎｔｅｒｎａｔｉｏｎａｌ、ｖｏｌ．、ｎｏ．、ｐｐ．３４０−３４５、４−８（２０１４年８月）に記載されるように）経時的なフローテーブルのエントリーの分散を可能にし、その一方でコントローラーとの対話の回避を可能にする。
【００１０】
より詳細には、本発明の実施形態によれば、接続されたデータ送信装置毎のパケット生成の時間と間隔についての情報を取得するコントロール実体は、この情報を用いて、センサーとサーバ間でのトラフィックを転送するために計算された経路に沿って時間トリガーのフロールール生成をスイッチにプログラムする。そのようなプログラミングが一旦行われると、各スイッチは、実際にセンサーがデータパケットを送信する（又はサーバがセンサーにデータポーリングを要求する）前にジャストインタイムでコントローラーと対話せずに自立的に該当するフロールールを起動（及び非起動）することができる。ここで「ジャストインタイムで」とは、センサーからのデータの転送が実際の送信近くの設定可能な長さの時間窓の期間可能になることを意味する。コントローラーと対話せずにスイッチへの転送フロールールの時間決めされた又はジャストインタイムの生成又は設定をトリガーするそのような方法又はシステムを提供することにより、各スイッチにおける高粒度のトラフィック転送ルールの数がスケールされる、すなわち、フロールールのスケーラビリティが達成される。
【００１１】
要約すると、本発明の実施形態は、時間とともにフローエントリーを分配するフロールールをジャストインタイムで設定して低頻度でのみ通信する多数の装置のスケーラビリティを向上させることができる。また、これをコントローラーとの（多くの）対話なしに、すなわち、スイッチにより自立的に又は経路上のシグナリングを介して行うことができる。
【００１２】
本発明の実施形態によれば、前記特定のパケットフロー、すなわち、ネットワーク内の特定のデータ送信装置からのパケットフローのための転送ルールの起動は、前記特定のパケットフローのための新しい又は変更された状態エントリーを用いて適時行われた前記状態テーブル（７）の更新によりトリガーされる。実施形態によれば、前記新しい又は変更された状態エントリーは、その設定以来特定の時間が経過後その削除をトリガーするタイムアウトを用いて構成されてもよい。これにより、パケットフローの実際の送信時近くの（実装されたタイムアウト値によって設定可能な長さの）短い時間のみデータ送信装置のために可能な「送信窓」を開けることができる。これにより潜在的なアタッカーによるセンサーデータの遮断又は操作が困難になるため、ネットワークのセキュリティが向上する。タイムアウトを用いる代わりに、最後のパケットの転送後にルールの除去が可能である場合に所定の（及び公知の）数の連続するパケット（多くの場合、１つのみ）が個々のセンサーにより送信されるという事実を活用してフロールールの設定を自動的に解除してもよい。
【００１３】
実施形態によれば、前記フローベースのプログラマブルネットワーク装置は、前記コントロール実体が時間のトリガーのフロールールを生成するためにプログラムする時間トリガーモジュールを備える。より詳細には、前記状態テーブルの更新は、前記フローベースのプログラマブルネットワーク装置のＣＰＵ上に実装された時間トリガーモジュールにより実行されてもよい。前記時間トリガーモジュールは現在のクロック値に対する各パケットフロー送信の時刻を監視するように構成されてもよい。具体的には、時間トリガーモジュールは内部クロックを備えてもよく、コントロール実体により時間トリガーモジュールに報告・構成されるように、（ソフトウェアに実装された）センサー毎のパケット送信の時刻に対応する期限のリストを保持してもよい。
【００１４】
実施形態によれば、前記状態テーブルの更新は前記フローテーブルの転送ルール群に含まれる状態遷移アクションによって実行されてもよい。この場合、外部時間ソースを採用してもよい。例えば、この時間ソースはコントロール実体自体であってもよく、又はＩＥＥＥ１５８８／ＰＴＰ（プレシジョンタイムプロトコル）時間ソースであってもよい。時間ソースは、スイッチの高速経路に（時間値を含む）時間パケットを配信してもよい。具体的には、特定のパケットフローのための状態遷移アクションは、各パケットフローの送信時間に対応する時間値を保持する時間パケットを送信し、前記パケットフローが前記時間パケットとマッチするように、前記状態遷移アクションを含む前記フローテーブル内に前記転送ルールを構成することによりトリガーされてもよい。
【００１５】
実施形態によれば、前記外部時間ソースにより生成された前記時間パケットはブロードキャストとして送信されてもよい。これにより、時間パケットは、その到達により状態変化をトリガーできる全てのフローベースのプログラマブルネットワーク装置／スイッチ（すなわち、各データ送信装置／センサーからシンクへの経路上の全てのスイッチ）に最終的に到達することになる。
【００１６】
実施形態によれば、特定のパケットフローのための状態遷移アクションは、外部クロックソースにより生成された各クロックパケットを前記フローベースのプログラマブルネットワーク装置に送信することにより実現される各クロックパルスに依存することによりトリガーされてもよい。クロックソースの実装に関して、外部クロックソースは、その目的のために、例えば、コントロール実体の中に作成してもよい、又はクロックパルスやクロックチックとなる場合がある周期的な同期パケットを送信するＩＥＥＥ１５８８／ＰＴＰマスタータイムサーバなどのレバレッジレガシーシステムの中に設けられてもよい。
【００１７】
外部クロックソースを基準ソースとして用いる際、フローテーブルにおける転送ルールは、クロックパケットにマッチし、受信したクロックパケット数を数えるために対応する各フロー状態を更新するように構成されてもよい。具体的に、クロックソースからブロードキャストとして送信されたクロックパルス又はクロックチックは、全てのスイッチが内部カウンターを増分してローカルタイマーが不在の状態で十分な粒度で時間をエミュレートするのを可能にする。
【００１８】
本発明の実施形態によれば、コントローラーがデータ送信装置毎のパケット生成の時間及び間隔に関する知識を取得できるように、各データ送信装置がそこから前記コントロール実体が必要な情報を照会することが可能なＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ：“アプリケーションプログラミングインターフェース”）を含んでもよい。本発明の主要な用途シナリオによれば、各データ送信装置はセンサー及び／又はスマートグリッドなどのスマートメーターを備えてもよい。一般に、各装置のパケット送信の時間及び間隔についての知識は、新しい装置／センサーが一度接続されたときに静的又は手動の構成を介して、又は機械学習方法を介して取得できる。
【００１９】
本発明の内容を有利に設計し発展させる方法がいくつもある。このため、従属する請求項、及び以下の図示された例としての本発明の好適な実施形態の説明を参照されたい。図に補助された本発明の好適な実施形態の説明と関連して、本発明の内容の一般的に好適な実施形態及び更なる進展が説明されよう。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の実施形態が適用可能なネットワークアーキテクチャの一般的概念を代表的に説明する概略図である。
【図２】図２は、本発明の実施形態による状態テーブルとフローテーブルを備えたネットワークスイッチを説明する概略図である。
【図３】図３は、本発明の実施形態による時間トリガーモジュールを備えたネットワークスイッチを説明する概略図である。
【図４】図４は、本発明の実施形態による外部時間ソースの最適化を伴うネットワークスイッチを説明する概略図である。
【図５】図５は、本発明の実施形態による外部時間ソースの最適化を伴うネットワークスイッチを説明する概略図である。
【発明を実施するための形態】
【００２１】
以下に詳細に説明するように、本発明の実施形態では、各フローベースのプログラマブルネットワーク装置１（例えば、ＳＤＮスイッチ２）がそれらを構成する又はプログラムするために用いることが可能なコントロールインターフェース３を露出しているものとする。また、一般性を失うことなく、簡素化のために、各装置１は論理的に中央のコントロール実体４（例えば、ＳＤＮコントローラー１２）により制御されるものとする。しかし、当業者には理解されるように、本発明は、各ネットワーク装置１が異なるコントローラーにより制御される場合にも、それらのコントローラーが互いにメッセージを交換できるのであれば適用可能である。コントロール実体４は、コントロールチャネルによってネットワークの各装置（以後、相互交換可能に「フローベースのプログラマブルネットワーク装置１」又は短く「スイッチ２」という）に接続されている。各スイッチ２は、本発明の実施形態が適用可能なネットワークアーキテクチャの一般的概念を示す図１に代表的に示されるように、他のスイッチ２又はエンドホストに接続可能な一組のポート５（インプットポート５ａ及びアウトプットポート５ｂ）を有する。エンドホストに接続されたポート５を「エッジポート」と呼び、１つ又は複数のポートを有するスイッチを「エッジスイッチ」と呼ぶ。
【００２２】
また、図１に示されるように、各スイッチ２は更にフローテーブル（ＦＴ）６を備える。フローテーブル６にはフローテーブルエントリー（ＦＴＥ）が含まれる。ＦＴＥは、ＦＴＥが適用されるネットワークパケットをパケットのヘッダーフィールドの値を指定することにより特定するマッチ部と、マッチされたパケットに適用されるアクションを指定するアクション部と、当該ＦＴＥがどのパケットにもマッチしない場合その時間の経過後に当該ＦＴＥを削除しなければならない時間を指定するアイドルタイムアウトとからなる。スイッチ２のＦＴ６におけるＦＴＥのセットはそのスイッチ２がどのようにネットワークパケットを転送するかを規定する。ＦＴＥのアクションにコントロールチャネルを介したコントローラー４へのパケットの送信が含まれていてもよい。本発明の文脈において、スイッチ２からコントローラー４へのネットワークパケットの移転を「ｐａｃｋｅｔ＿ｉｎ」と呼ぶ。ｐａｃｋｅｔ＿ｉｎには以下の情報が含まれる：それを生成したネットワークパケット、それが送信されるスイッチの識別子、及びパケットが受信されたスイッチ２のインプットポート５ａの識別子。スイッチ２はＦＴＥが削除されるたびにコントローラー４に通知するように構成されてもよい。
【００２３】
加えて、図２に示されるように、スイッチ２は状態テーブル７を備えてもよい。状態テーブルのエントリーは所定のネットワークフローの状態を規定する。例えば、（センサーやスマートメーターなどの）ネットワーク内のデータ送信装置８により生成されたパケットがスイッチ２に入り、状態テーブル７内のエントリーの１つにマッチした場合、パケットはスイッチ２内のそのような状態情報を保持するメタデータにより質が改善される。また、ＦＴＥがこの状態情報マッチしてもよい。更に、ＦＴＥのアクションが所定のフローのアクションｓｅｔ＿ｓｔａｔｅを含んでいてもよい。そのようなアクションｓｅｔ＿ｓｔａｔｅが、所定の状態テーブルのエントリーについて、状態テーブル７に含まれる状態情報を修正する。これにより、ネットワークパケットを受信次第、フローテーブル６を用いて所定のフローの状態遷移を実行することができる。状態テーブルのエントリーとＦＴＥはともにアイドルとハードのタイムアウトの両方に関連付けられている。この種のスイッチのそれ以外の又は類似した特性／能力に関する詳細は、Ｇｉｕｓｅｐｐｅ  Ｂｉａｎｃｈｉ他：「オープンステート：スイッチ内部のプログラミングプラットフォームから独立したステートフルオープンフローアプリケーション」、ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔ．  Ｃｏｍｍｕｎ．  Ｒｅｖ．  ４４、  ２  （２０１４年４月）、４４−５１から得られる。
【００２４】
本発明の実施形態の以下の記述との関連において、それらの実施形態が適用されるネットワークとして、ＳＤＮネットワーク、例えば、“オープンフロー”技術に基づくＳＤＮネットワークが想定される。実際、ＳＤＮネットワークは上記の全ての特性を示す。しかしながら、当業者には理解されるように、本発明はそのような特性を示す他のいずれのネットワークにも適用可能である。以下、「フロールール」、「転送ルール」、及び「ＦＴＥ」という用語は折々に交換可能に用いられる。
【００２５】
図３は、時間で保護されたフロールールの設定がスイッチ２のＣＰＵの上部に実装された時間トリガーモジュール９を用いることにより実行される本発明の実施形態を示す。コントローラー４は、「１」で示されるある時刻にスイッチ２のフローテーブル６と時間トリガーモジュール９を構成する。図示された実施形態において、コントローラー４は、状態ＤＥＦＡＵＬＴを有するフローは全てドロップされると規定する第１の転送ルール（ＩＤ１を持つＦＴＥ）及び状態ＯＫを有するフローは全て転送されると規定する第２の転送ルール（ＩＤ２を持つＦＴＥ）を設定することによりスイッチ２のフローテーブル６をプログラムする。
【００２６】
スイッチ２のフローテーブル６には当初、インカミングフローに状態ＤＥＦＡＵＬＴを割り当てる（ＩＤＤを持つ）単一のエントリーだけが含まれる。そのため、以上の条件によりインカミングパケットはいずれもフローテーブルのＦＴＥ  ＩＤ１により処理される、すなわち、ドロップされる。しかし、時刻「２」で時間トリガーモジュール９がコントローラー４によりプログラムされた動作を実行すると、状態テーブル７は（ＩＤ１を持つ）新しい状態エントリーで更新される。この時間トリガーモジュール９によって追加された新しい状態エントリーにより、フローＡ（ここでは、図示のセンサー８により送信されたと仮定する）の転送が可能になる。これは、このエントリーが状態ＯＫと関連付けられているからである、換言すれば、フローＡはフローテーブルのＦＴＥ  ＩＤ２により処理される、すなわち、転送されるからである。状態エントリー１はまた、設定されて以来所定の時間が経過した後にその削除をトリガーするハードタイムアウトと関連付けられている。
【００２７】
本発明の実施形態に係わる時間トリガーモジュールの可能な実装方法の１つは、タイマーの使用である。すなわち、時間トリガーモジュール９は内部クロックを備え、関係するセンサー８の予定パケットフロー送信時刻に対応する期限のリストを保持する。時間トリガーモジュール９は内部クロックを監視してそのような期限の接近を確認する。各期限は、現在のクロック値と対比することによりその期限を超えたかどうかを示す時間値と関連付けられている。所定の期限を超えると、対応するイベントが生成される。例えば、図３の実施形態の文脈において、（コントローラー４により時間トリガーモジュール９にプログラムされた情報によって）フローＡの予定送信時間が近づいているとき、時間トリガーモジュール９は、フローＡの転送を有効にするために、フローＡの状態遷移を実行する各エントリー（図３でＩＤ１を持つエントリー）を入力して状態テーブル７を更新する。１０秒のタイムアウトの後、この状態エントリーは削除され「転送窓」は閉められる。すなわち、センサー８から送信されたデータはもはや転送されない。
【００２８】
以上のような実装は通常、スイッチ２のＣＰＵに依存する。スイッチ２は通常、専用ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：“特定用途向け集積回路”）に実装された高速経路及びＣＰＵの上部に実装された低速経路からなる。監視する期限数が多い場合、すなわち、構成されるイベント数が多い場合、スイッチ２のＣＰＵはオーバーロードになる。スイッチ２で多くの時間を決められたイベントの記録を維持する場合、特に構成比の大きな周辺センサー８をアグリゲートするアグリゲーションスイッチ２では多量のＣＰＵリソースを消費するので、本発明の更なる２つの実施形態による最適化を以下に説明する。両最適化とも外部の時間トリガーの存在に依存し、スイッチ２の高速経路における完全な実行を保証する（すなわち、スイッチ２のＣＰＵに負荷をかけることがない）。
【００２９】
図４に示される第１の最適化は、ネットワークにデータパケットを送信する外部時間ソース１０に依存する。このデータパケットは、スイッチ２が読み出すことができる時間値を含みＴで表される時間パケットである。時間ソース１０はコントローラー４自体であってもよく、又はＩＥＥＥ１５８８／ＰＴＰ（正確時間プロトコル）であってもよく、又は他の適切な時間ソースであってもよい。スイッチ２の高速経路に伝送されている時間パケットはスイッチ２の高速経路によってのみ処理される。
【００３０】
（センサーなどのネットワーク装置８からのデータ送信の期限を過ぎたことによる）イベントのトリガーは、ＦＴＥを用いて実行できる。すなわち、ＦＴＥが、スイッチ２において特定のフロールールを有効にする必要があるときに時間ソース１０により送信される時間パケットＴとマッチし、状態テーブル７における一部のエントリー（例えば、その通信を有効にする必要がある装置８に関連するエントリー）の状態を変更する状態ｓｅｔ＿ａｃｔｉｏｎを用いて構成される。具体的には、図示の実施形態によれば、スイッチ２の入力ポート５ａで受信された時間パケットＴがＩＤＤを持つ状態テーブルのエントリーにより状態ＤＥＦＡＵＬＴを割り当てられる。この時間パケットＴは、スイッチ２のフローテーブル６により処理されると、いくつかのフロー、例えば、フローＡに対し状態エントリーを設定するＦＴＥ  ＩＤ１にマッチする、すなわち、時間パケットＴはフローＡの状態ＯＫへの状態遷移を引き起こす。その結果、フローＡはＦＴＥ  ＩＤ２とマッチして転送される。状態エントリーは１０秒のタイムアウトが満了した後消滅する。
【００３１】
このソリューションを大規模に機能させる１つの方法は、時間パケットをブロードキャストとして送信することである。それにより時間パケットは、その到達に応じて状態変更をトリガーすることができる全てのスイッチに最終的に到達する。また、ネットワークは時間パケットのリアルタイム配信を保証すべきである。これはネットワークにおいて適切なＱｏＳ機構を実施することにより実現できる。
【００３２】
第２の最適化による実施形態が図５に示される。具体的には、この第２の最適化はネットワーク内のどこかにある外部クロックソース１１に依存しており、この外部クロックソース１１はネットワークのデータプレーンに基準クロックパルス（「クロックチック」）をブロードキャストする（すなわち、基準クロックパルスは全てのネットワークスイッチ２により受信可能である）基準クロックとして用いられるものである。これらのクロックチックが定期的かつ公知の間隔で入力される場合、スイッチ２は（図３の実施形態のような）ＣＰＵ集中型タイマーを保持する必要がなく、簡素な内部カウンターを増分して所定の粒度でクロックの進行を模倣することができる。この粒度は、接続された全てのセンサー８の組み合わせから生じるタイミング要求に対応するのに十分細かくなければならない。ただし、異なるセンサー８の個々のデータ送信特性を管理しそれに適応できる粒度の高い模倣クロックパルスを構築するために、異なる種類のクロックパルス、例えば、毎時発信されるクロックパルスＴ１と毎分発信されるクロックパルスＴ２とを組み合わせてもよい。
【００３３】
図５の実施形態において、コントローラー４はまず、クロックパケットにより実現されるクロックチックのカウンターを作成するために、いくつかの状態遷移を設定して（「１」に示されるような）スイッチ２のフローテーブル６をプログラムする。フローテーブル６のＦＴＥはクロックパケットとマッチし、受信したクロックパケット数を数えるために対応するフロー状態を更新する。具体的には、状態１を有するクロックパケットがＦＴＥ  ＩＤ１にマッチし、クロックパケットのフローの状態エントリー（すなわち、状態エントリーＩＤ２）の状態を状態２へ遷移させる。その結果、スイッチ２によって受信された次のクロックパケットは（状態テーブルのエントリーＩＤ２にマッチするので）状態２を割り当てられる。これにより、フローテーブル６では、このクロックパケットが、再度クロックパケットの状態遷移（すなわち、２から３への状態遷移）を引き起こすＦＴＥ  ＩＤ２にマッチすることになる。図５におけるＦＴＥの１つでカウンターをリセットするＦＴＥ、すなわち、ＦＴＥ  ＩＤ３は、いくつかのフロー、例えば、フローＡに対し状態エントリーを設定する。したがって、クロックパルスが一時間毎に送信されるとすると、フローＡが属するネットワーク内のデータ送信装置８は３時間毎にそのデータを送信するのを可能にされる。状態エントリーは１０秒のタイムアウトが満了になった後消滅する。すなわち、実装されたタイムアウトにより「送信窓」は１０秒間だけ開かれる。
【００３４】
上記の実施形態では、ネットワーク内の各スイッチ２はそれ自体のクロックカウンターを備えるので一般的なクロックソース１１がネットワーク内の全てのスイッチ２に仕える場合があり、各スイッチ２は異なる時刻に状態テーブル７のエントリーを変更できることに注意されたい。
【００３５】
スケーラビリティと低いオーバーヘッドという利点に加えて、上記の実施形態はセキュリティ関連の利点も有する。第１に、実際のデータ送信の近くの非常に短い時間だけ「有効な」フロールールを有することにより、ネットワーク内のアタッカーがセンサー８に侵入する又はセンサーのデータを取得するのが困難になる。上記時間以外ではセンサー８に向けられたパケットは転送できず、またセンサー８は基本的に不可視である。第２に、フロールールの時間で保護された設定により、設置されたセンサー８のためのトラフィック生成及び転送の機会は基本的に制限される。“スマートシティ”などの文脈では、非常に異種のソースからのセンサー８が多数存在することになる。しかしながら、（データシート又は任意の情報源によって）一期間に一回のみデータを生成すると期待されるセンサー８はそれ以上の頻度でネットワークにデータを送り込むことには成功しないだろう。これは、イングレススイッチ２は事前に設定された時間の外で対応するフロールールを持つことはないからである。
【００３６】
最後に、（一定の間隔でのアクセスの代わりに）ＩｏＴサーバからのセンサーデータへのオンデマンドのアクセスもまた本発明の文脈において可能であることに注意されたい。しかしながら、この場合、イングレススイッチ２は事後モードを用いてコントローラー４に対し対応するフロールールを求める必要がある。
【００３７】
ここで説明した本発明の変形例や他の実施形態が、本発明が関係し上記の説明や添付の図面に示された内容の恩恵を受ける当業者により想到されよう。従って、本発明は開示された特定の実施形態に限定されるべきではなく、変形例や他の実施形態が添付の特許請求の範囲に含まれることが意図されていると理解すべきである。ここでは特定の用語が使われているが、それらは限定する目的ではなく一般的及び説明的意味で使われている。
【符号の説明】
【００３８】
１  フローベースのプログラマブルネットワーク装置
２  ＳＤＮスイッチ
３  コントロールインターフェース
４  コントロール実体
５  ポート
６  フローテーブル
７  状態テーブル
８  データ送信装置／センサー
９  時間トリガーモジュール
１０  外部時間源
１１  外部クロックソース
１２  ＳＤＮコントローラー
【図１】
2019506097.tif 000003
【図２】
2019506097.tif 000004
【図３】
2019506097.tif 000005
【図４】
2019506097.tif 000006
【図５】
2019506097.tif 000007
【国際調査報告】
2019506097.tif 000008
2019506097.tif 000009