(57)【要約】  本出願の実施形態は、リソースオーバーヘッドを低減し、ネットワークスループットを改善するためのトラフィック測定方法、デバイス、およびシステムを提供し、通信技術の分野に関する。具体的な解決策は次のとおりであり、すなわち、パケット処理デバイスがバッファを備え、パケット処理デバイスは測定対象パケットを取得する。バッファ内の占有記憶空間が事前設定閾値未満である場合、パケット処理デバイスは、測定対象パケットの測定対象情報をバッファに書き込み、測定対象情報が測定対象パケットのフロー識別子と測定対象パケットのトラフィック量とを含み、バッファから測定対象情報を読み取り、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更し、aが正の整数である。あるいは、バッファ内の占有記憶空間が事前設定閾値以上である場合、パケット処理デバイスは、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更し、wは正の整数であり、wはa未満である。本出願の実施形態はトラフィック測定に使用される。
2020529171.tif 000002
【特許請求の範囲】
【請求項１】
パケット処理デバイスに適用されるトラフィック測定方法であって、前記パケット処理デバイスがバッファを備え、前記方法は、
測定対象パケットを取得するステップと、
前記バッファ内の占有記憶空間が事前設定閾値未満である場合、前記測定対象パケットの測定対象情報を前記バッファに書き込むステップであって、前記測定対象情報が、前記測定対象パケットのフロー識別子および前記測定対象パケットのトラフィック量を含む、ステップと、
前記バッファから前記測定対象情報を読み取るステップと、
前記測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける前記測定対象パケットに対応するa個のデータを変更するステップであって、aが正の整数である、ステップとを含む、または
前記バッファ内の占有記憶空間が前記事前設定閾値以上である場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更するステップであって、wが正の整数であり、wがa未満である、ステップとを含む、トラフィック測定方法。
【請求項２】
前記a個のデータはa個のカウンタの値であり、前記w個のデータはw個のカウンタの値である、請求項1に記載のトラフィック測定方法。
【請求項３】
前記第1のアルゴリズムはハッシュ関数を含み、前記第1の測定データはc個の場所におけるデータを含み、cは正の整数であり、前記測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける前記測定対象パケットに対応するa個のデータを変更する前記ステップは、
前記測定対象パケットの前記フロー識別子および前記ハッシュ関数に基づいて、前記c個の場所からu個の場所を判定するステップであって、uが正の整数であり、uがc以下である、ステップと、
前記測定対象パケットの前記トラフィック量に基づいて、前記u個の場所におけるa個のデータを変更するステップであって、uがa以下である、ステップとを含む、請求項1または2に記載のトラフィック測定方法。
【請求項４】
フローテーブルが前記パケット処理デバイスに格納され、前記第2の測定データは前記フローテーブルにおけるデータを含み、前記フローテーブルは前記フロー識別子と第1のデータrとの間の対応関係を含み、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する前記ステップは、
前記測定対象情報および前記第2のアルゴリズムに基づいて、前記測定対象パケットに対応し、かつ前記第2の測定データにある第1のデータrfを変更するステップを含む、請求項1から3のいずれか一項に記載のトラフィック測定方法。
【請求項５】
前記測定対象情報および前記第2のアルゴリズムに基づいて、前記測定対象パケットに対応し、かつ前記第2の測定データにある第1のデータrfを変更する前記ステップは、
前記フローテーブルが前記測定対象パケットのフロー識別子fを含む場合、前記測定対象パケットに対応し、かつ前記フローテーブルにある第1のデータrfを、前記測定対象パケットに対応する前記第1のデータrfと前記測定対象パケットの前記トラフィック量との和に更新するステップを含む、請求項4に記載のトラフィック測定方法。
【請求項６】
フローテーブルが前記パケット処理デバイスに格納され、前記第2の測定データは前記フローテーブルにおけるデータを含み、前記フローテーブルは前記フロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含み、前記フローテーブルが前記測定対象パケットのフロー識別子fを含まず、かつ前記フローテーブルがいっぱいである場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する前記ステップの前に、前記方法は、
デクリメント値
【数１】
2020529171.tif 000057
を計算するステップと、
前記フローテーブルに含まれる各フロー識別子に対応する第1のデータrを、前記第1のデータrと前記デクリメント値
【数２】
2020529171.tif 000058
との差に更新するステップと、
前記フローテーブルに含まれる各フロー識別子に対応する第2のデータdを、前記第2のデータdと前記デクリメント値
【数３】
2020529171.tif 000059
との和に更新するステップと、
第1の事前設定条件を満たすフロー識別子と前記第1のデータrおよび前記第2のデータdのそれぞれとの間の対応関係を前記フローテーブルから削除するステップとをさらに含み、
前記第1の事前設定条件を満たす前記フロー識別子が、対応する更新された第1のデータrが0以下であるフロー識別子である、請求項1から3のいずれか一項に記載のトラフィック測定方法。
【請求項７】
前記フローテーブルは前記フロー識別子と前記第1のデータr、前記第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、前記フローテーブルが前記測定対象パケットの前記フロー識別子fを含まず、かつ前記フローテーブルがいっぱいである場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する前記ステップは、
前記測定対象パケットの前記トラフィック量が前記デクリメント値
【数４】
2020529171.tif 000060
よりも大きい場合、前記測定対象パケットの前記トラフィック量と前記デクリメント値
【数５】
2020529171.tif 000061
との差を、前記測定対象パケットに対応する第1のデータrfに設定するステップと、
前記デクリメント値
【数６】
2020529171.tif 000062
を、前記測定対象パケットに対応する第2のデータdfに設定するステップと、
総デクリメントトラフィック量Eを、前記測定対象パケットに対応する第3のデータefに設定するステップと、
前記測定対象パケットの前記フロー識別子fと、前記測定対象パケットに対応する前記第1のデータrf、前記測定対象パケットに対応する前記第2のデータdf、および前記測定対象パケットに対応する前記第3のデータefのそれぞれとの間の対応関係を前記フローテーブルに挿入するステップとを含む、請求項6に記載のトラフィック測定方法。
【請求項８】
前記方法は、
前記総デクリメントトラフィック量Eを、前記総デクリメントトラフィック量Eと前記デクリメント値
【数７】
2020529171.tif 000063
との和に更新するステップをさらに含む、請求項6または7に記載のトラフィック測定方法。
【請求項９】
デクリメント値
【数８】
2020529171.tif 000064
を計算する前記ステップは、
前記測定対象パケットの前記トラフィック量および前記フローテーブルに含まれる前記フロー識別子に対応する前記第1のデータrを値の順に並べ替え、並べ替えた後の最初の2つの値をR1およびR2として、また並べ替えた後の最後の値をRkとして示すステップと、
前記デクリメント値
【数９】
2020529171.tif 000065
をR1、R2、Rk、および次式
【数１０】
2020529171.tif 000066
に基づいて計算するステップであって、
【数１１】
2020529171.tif 000067
【数１２】
2020529171.tif 000068
であり、δは定数を表す、ステップとを含む、請求項6から8のいずれか一項に記載のトラフィック測定方法。
【請求項１０】
フローテーブルが前記パケット処理デバイスに格納され、前記第2の測定データは前記フローテーブルのデータを含み、前記フローテーブルは、前記フロー識別子と第1のデータrおよび第3のデータeのそれぞれとの間の対応関係を含み、前記フローテーブルが前記測定対象パケットのフロー識別子fを含まず、かつ前記フローテーブルがいっぱいではない場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する前記ステップは、
前記測定対象パケットの前記トラフィック量を、前記測定対象パケットに対応する第1のデータrfに設定するステップと、
総デクリメントトラフィック量Eを、前記測定対象パケットに対応する第3のデータefに設定するステップと、
前記測定対象パケットの前記フロー識別子fと、前記測定対象パケットに対応する前記第1のデータrfおよび前記測定対象パケットに対応する前記第3のデータefのそれぞれとの間の対応関係を前記フローテーブルに挿入するステップとを含む、請求項1から3のいずれか一項に記載のトラフィック測定方法。
【請求項１１】
前記フローテーブルはエントリを含み、前記エントリは、前記フロー識別子と前記第1のデータr、前記第2のデータd、および前記第3のデータeのそれぞれとの間の対応関係を含み、前記第1のデータr、前記第2のデータd、および前記第3データeはそれぞれ3つのカウンタの値である、請求項4から10のいずれか一項に記載のトラフィック測定方法。
【請求項１２】
前記第2の測定データはローカルな総トラフィック量を含み、前記バッファ内の前記占有記憶空間が前記事前設定閾値以上である場合、前記方法は、
前記ローカルな総トラフィック量を、前記ローカルな総トラフィック量と前記測定対象パケットの前記トラフィック量との和に更新するステップをさらに含む、請求項1から11のいずれか一項に記載のトラフィック測定方法。
【請求項１３】
前記方法は、
前記第1の測定データおよび／または前記第2の測定データをネットワークコントローラに送信するステップであって、前記第1の測定データおよび／または前記第2の測定データが、目的の測定データを計算するために前記ネットワークコントローラによって使用される、ステップをさらに含む、請求項1から12のいずれか一項に記載のトラフィック測定方法。
【請求項１４】
前記測定対象パケットの前記フロー識別子が目的のフロー識別子であり、測定対象パケットを取得する前記ステップの前に、前記方法は、
前記ネットワークコントローラによって送信された命令メッセージを受信するステップであって、前記命令メッセージが前記目的のフロー識別子を含む、ステップをさらに含む、請求項1から13のいずれか一項に記載のトラフィック測定方法。
【請求項１５】
m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信するステップであって、前記第1の測定データが第1のアルゴリズムに基づいて取得され、前記第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ステップと、
グローバルな第1の測定データを取得するために前記m個の第1の測定データを組み合わせるステップと、
グローバルな第2の測定データを取得するために前記n個の第2の測定データを組み合わせるステップと、
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて目的の測定データを計算するステップとを含む、トラフィック測定方法。
【請求項１６】
前記目的の測定データおよび前記グローバルな第1の測定データは同じデータ構造を有する、請求項15に記載のトラフィック測定方法。
【請求項１７】
第1の測定データのそれぞれがp行q列の要素を含み、グローバルな第1の測定データを取得するために前記m個の第1の測定データを組み合わせる前記ステップは、
前記グローバルな第1の測定データを取得するために、前記m個の第1の測定データのものであり、かつ対応する場所にある各m個の要素を組み合わせるステップであって、前記グローバルな第1の測定データがp行q列の要素を含む、ステップを含む、請求項15または16に記載のトラフィック測定方法。
【請求項１８】
第2の測定データのそれぞれがローカルな総トラフィック量およびフローテーブルを含み、前記フローテーブルは少なくとも1つのエントリを含み、前記エントリは前記フロー識別子と1対1の対応関係にあり、グローバルな第2の測定データを取得するために前記n個の第2の測定データを組み合わせる前記ステップは、
グローバルな総トラフィック量を取得するために、前記n個の第2の測定データにおけるn個のローカルな総トラフィック量を加えるステップと、
グローバルなフローテーブルを取得するために前記n個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせるステップであって、前記グローバルなフローテーブルにおいて、前記フロー識別子は前記エントリと1対1の対応関係にある、ステップとを含み、
前記グローバルな総トラフィック量および前記グローバルなフローテーブルは前記グローバルな第2の測定データである、請求項15から17のいずれか一項に記載のトラフィック測定方法。
【請求項１９】
前記エントリはフロー識別子と前記フロー識別子に対応するトラフィックデータとを含み、前記n個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせる前記ステップは、
前記n個の第2の測定データに対応する前記n個のフローテーブルの前記エントリにおいて、同じフロー識別子を有する複数のエントリについて、前記複数のエントリを前記グローバルなフローテーブルの1つのエントリに組み合わせるために、前記複数のエントリにおけるトラフィックデータを加えるステップと、
異なるフロー識別子を有するエントリのそれぞれを前記グローバルなフローテーブルの1つのエントリとして使用するステップとを含む、請求項18に記載のトラフィック測定方法。
【請求項２０】
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて目的の測定データを計算する前記ステップは、
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて最適化目的関数を構築するステップと、
凸最適化アルゴリズムおよび前記最適化目的関数に基づいて前記目的の測定データを計算するステップとを含み、
前記最適化目的関数の式が、
minimize
【数１３】
2020529171.tif 000069
であり、
前記最適化目的関数が次の制約、すなわち、
制約1：T＝N＋sk（x＋y）、
制約2：｜x｜1＋｜y｜1＝V、および
制約3：∀s∈H、rs＋ds≦xs≦rs＋ds＋esを満たし、
「minimize」は前記最適化目的関数を最小化する独立変数値の計算を表し、Tは前記目的の測定データを表し、Nは前記グローバルなフローテーブルを表し、Vは前記グローバルな総トラフィック量を表し、Hは前記グローバルな第1の測定データを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xsはフロー識別子sに対応するデータフローのトラフィック量を表し、yは、Hに含まれないデータフローのものであり、かつ前記第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量にあるトラフィック量を表し、x＋yは前記第2のアルゴリズムに基づいて測定された前記データフローの前記トラフィック量を表し、sk（x＋y）は入力としてx＋yを使用することにより、また前記第1のアルゴリズムを呼び出すことにより取得された結果を表し、
｜T｜＊は、Tの核型ノルムを表し、かつ行列のすべての特異値の和として定義され、｜x｜1は、ベクトルxのL1ノルムを表し、かつxのすべてのデータの絶対値の和として定義され、
【数１４】
2020529171.tif 000070
は、ベクトルyのフロベニウスノルムを表し、かつxのすべての前記データの二乗和として定義され、
α、β、およびγの計算式はそれぞれ、
【数１５】
2020529171.tif 000071
【数１６】
2020529171.tif 000072
および
γ＝10σyであり、
PNおよびQNはそれぞれ行列Nの長さおよび幅を表し、η（N）はNのデータの平均を表し、mxおよびnxはそれぞれ前記ベクトルxの長さおよび幅を表し、σyはyのすべてのデータの標準偏差を表す、請求項18または19に記載のトラフィック測定方法。
【請求項２１】
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて目的の測定データを計算する前記ステップは、
前記グローバルな第1の測定データ、前記グローバルな第2の測定データ、および次式：
T＝N＋sk（x）
に基づいて前記目的の測定データを計算するステップを含み、
Tは前記目的の測定データを表し、Nは前記グローバルなフローテーブルを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xは前記第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量を表し、sk（x）は、入力としてxを使用することにより、かつ前記第1のアルゴリズムを呼び出すことにより取得された結果を表す、請求項18または19に記載のトラフィック測定方法。
【請求項２２】
前記グローバルなフローテーブルはエントリを含み、前記エントリはフロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含み、xに対応する前記データフローの前記トラフィック量は、前記データフローのフロー識別子に対応する前記第1のデータrと前記第2のデータdとの和である、請求項21に記載のトラフィック測定方法。
【請求項２３】
前記グローバルなフローテーブルはエントリを含み、前記エントリはフロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、xに対応する前記データフローの前記トラフィック量は、前記データフローのフロー識別子に対応する前記第1のデータrと前記第2のデータdと前記第3のデータeとの和である、請求項21に記載のトラフィック測定方法。
【請求項２４】
m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信する前記ステップの前に、前記方法は、
各パケット処理デバイスに命令メッセージを送信するステップであって、前記命令メッセージは、前記測定対象パケット処理デバイスに対応する目的のフロー識別子を運ぶ、ステップをさらに含み、
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するということは以下を意味する、すなわち、
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローのラストホップデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローのファーストホップデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローの受信エンドデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローの送信エンドデバイスであることを意味する、請求項15から23のいずれか一項に記載のトラフィック測定方法。
【請求項２５】
少なくとも1つのプロセッサと、メモリと、バッファと、通信インターフェースと、バスとを備えるパケット処理デバイスであって、前記少なくとも1つのプロセッサ、前記メモリ、および前記バッファは前記バスを使用することにより互いに接続され、
前記通信インターフェースは、前記パケット処理デバイスがパケット転送デバイスまたはパケット受信エンドデバイスであるときに、測定対象パケットを取得するように構成され、
前記メモリは、命令を格納するように構成され、
前記プロセッサは、以下の動作、すなわち、
前記パケット処理デバイスがパケット送信エンドデバイスである場合、測定対象パケットを取得する動作と、
前記バッファ内の占有記憶空間が事前設定閾値未満である場合、前記測定対象パケットの測定対象情報を前記バッファに書き込む動作であって、前記測定対象情報が、前記測定対象パケットのフロー識別子および前記測定対象パケットのトラフィック量を含む、動作と、
前記バッファから前記測定対象情報を読み取る動作と、
前記測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける前記測定対象パケットに対応するa個のデータを変更する動作であって、aが正の整数である、動作とを実施するために、または
前記バッファ内の占有記憶空間が前記事前設定閾値以上である場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する動作であって、wが正の整数であり、wがa未満である、動作とを実施するために前記メモリに格納された前記命令を呼び出すように構成され、
前記バッファは、前記プロセッサが前記測定対象パケットの前記測定対象情報を前記バッファに書き込んだ後、前記測定対象情報を格納するように構成される、パケット処理デバイス。
【請求項２６】
前記a個のデータはa個のカウンタの値であり、前記w個のデータはw個のカウンタの値である、請求項25に記載のパケット処理デバイス。
【請求項２７】
前記第1のアルゴリズムはハッシュ関数を含み、前記第1の測定データはc個の場所におけるデータを含み、cは正の整数であり、前記プロセッサは、
前記測定対象パケットの前記フロー識別子および前記ハッシュ関数に基づいて、前記c個の場所からu個の場所を判定し、uが正の整数であり、uがc以下であり、
前記測定対象パケットの前記トラフィック量に基づいて、前記u個の場所におけるa個のデータを変更し、uがa以下である、ように特に構成される、請求項25または26に記載のパケット処理デバイス。
【請求項２８】
前記通信インターフェースは、
前記第1の測定データおよび／または前記第2の測定データをネットワークコントローラに送信し、前記第1の測定データおよび／または前記第2の測定データが、目的の測定データを計算するために前記ネットワークコントローラによって使用される、ようにさらに構成される、請求項25から27のいずれか一項に記載のパケット処理デバイス。
【請求項２９】
前記測定対象パケットの前記フロー識別子が目的のフロー識別子であり、前記通信インターフェースは、
前記測定対象パケットを取得する前に、前記ネットワークコントローラによって送信された命令メッセージを受信し、前記命令メッセージが前記目的のフロー識別子を含む、ようにさらに構成される、請求項25から28のいずれか一項に記載のパケット処理デバイス。
【請求項３０】
少なくとも1つのプロセッサと、メモリと、通信インターフェースと、バスとを備えるネットワークコントローラであって、前記少なくとも1つのプロセッサおよび前記メモリは前記バスを使用することにより互いに接続され、
前記通信インターフェースは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信し、前記第1の測定データが第1のアルゴリズムに基づいて取得され、前記第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ように構成され、
前記メモリは、命令を格納するように構成され、
前記プロセッサは、以下の動作、すなわち、
グローバルな第1の測定データを取得するために前記m個の第1の測定データを組み合わせる動作と、
グローバルな第2の測定データを取得するために前記n個の第2の測定データを組み合わせる動作と、
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて目的の測定データを計算する動作とを実施するために前記メモリに格納された前記命令を呼び出すように構成される、ネットワークコントローラ。
【請求項３１】
前記目的の測定データおよび前記グローバルな第1の測定データは同じデータ構造を有する、請求項30に記載のネットワークコントローラ。
【請求項３２】
第1の測定データのそれぞれがp行q列の要素を含み、前記プロセッサは、
前記グローバルな第1の測定データを取得するために、前記m個の第1の測定データのものであり、かつ対応する場所にある各m個の要素を組み合わせ、前記グローバルな第1の測定データがp行q列の要素を含む、ように特に構成される、請求項30または31に記載のネットワークコントローラ。
【請求項３３】
第2の測定データのそれぞれがローカルな総トラフィック量およびフローテーブルを含み、前記フローテーブルは少なくとも1つのエントリを含み、前記エントリは前記フロー識別子と1対1の対応関係にあり、前記プロセッサは、
グローバルな総トラフィック量を取得するために、前記n個の第2の測定データにおけるn個のローカルな総トラフィック量を加え、
グローバルなフローテーブルを取得するために前記n個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせ、前記グローバルなフローテーブルにおいて、前記フロー識別子は前記エントリと1対1の対応関係にある、ように特に構成され、
前記総トラフィック量および前記グローバルなフローテーブルは前記グローバルな第2の測定データである、請求項30から32のいずれか一項に記載のネットワークコントローラ。
【請求項３４】
前記通信インターフェースは、
前記m個のパケット処理デバイスによってそれぞれ送信された前記m個の第1の測定データと、前記n個のパケット処理デバイスによってそれぞれ送信された前記n個の第2の測定データとを受信する前に、各パケット処理デバイスに命令メッセージを送信し、前記命令メッセージは、前記測定対象パケット処理デバイスに対応する目的のフロー識別子を運ぶ、ようにさらに構成され、
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するということは以下を意味する、すなわち、
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローのラストホップデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローのファーストホップデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローの受信エンドデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローの送信エンドデバイスであることを意味する、請求項30から33のいずれか一項に記載のネットワークコントローラ。
【請求項３５】
システムであって、前記システムは、ネットワークコントローラと少なくとも1つのパケット処理デバイスとを備え、前記パケット処理デバイスは、請求項1から14のいずれか一項に記載のトラフィック測定方法を実行するように構成され、前記ネットワークコントローラは、請求項15から24のいずれか一項に記載のトラフィック測定方法を実行するように構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2017年8月4日に中国専利局に出願された「TRAFFIC MEASUREMENT METHOD，DEVICE，AND SYSTEM」と題する中国特許出願第201710662793．7号の優先権を主張するものであり、同中国特許出願は、参照によりその全体が本明細書に組み込まれる。
【０００２】
本出願の実施形態は、通信技術の分野に関し、詳細には、トラフィック測定方法、デバイス、およびシステムに関する。
【背景技術】
【０００３】
ビッグデータ技術および人工知能技術の進歩は、ネットワークインテリジェンスの開発を促進する。ネットワークインテリジェンスの基礎は、ネットワーク規模のデータ測定である。ネットワーク規模のデータ測定は、各パケットに基づいて実行される情報の抽象化および情報に関する統計の収集を必要とする。
【０００４】
現在、従来技術には、スケッチベース（sketch−based）アルゴリズムに基づくトラフィック測定技術が存在する。図1に示されるように、sketch−basedアルゴリズムでは、測定対象標識に関して高精度クエリを維持するために、大量の高次元データ情報が低次元線形部分空間にマッピングされ、低次元線形部分空間のデータ構造に対して動作が実行され得る。線形部分空間は、指定されたデータ構造で形成され、通常は2次元またはそれより高次元の行列である。
【０００５】
sketch−basedアルゴリズムは、限られたクエリを通常サポートする。例えば、「フローfのサイズが閾値を超えているか否か」を問い合わせるために、sketch−basedアルゴリズムの中でもCount−Min Sketchアルゴリズムを使用することができるが、「閾値を超えるすべてのフローを見つける」ためにCount−Min Sketchアルゴリズムを使用する場合は、すべての可能なデータフローを数え上げる必要がある。しかしながら、大量のデータフローを数え上げることは計算の観点から許されない。sketch−basedアルゴリズムのクエリ能力を改善するには、多くのsketch−basedアルゴリズムが追加のデータ構造を維持する必要があり、したがって、追加のリソースオーバーヘッドが発生する。加えて、行う測定に応じて、異なるsketch−based測定アルゴリズムが必要とされる。1つの実際の測定タスクで様々な測定を行う必要がある場合、複数のsketch−basedアルゴリズムが同時にデプロイされる必要がある。複数のsketch−basedアルゴリズムを同時に実行すると、非常に大きいリソースオーバーヘッドが発生する。
【０００６】
sketch−basedアルゴリズムは大きなリソースオーバーヘッドおよび比較的低い処理効率をもたらすため、大量の測定されていないパケットが通常蓄積され、パケット測定に大量のリソースが使用される。その結果、正常なパケット転送が影響を受け、ネットワークスループットが比較的低くなる。
【発明の概要】
【０００７】
本出願の実施形態は、リソースオーバーヘッドを低減し、ネットワークスループットを改善するためのトラフィック測定方法、デバイス、およびシステムを提供する。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、以下の技術的な解決策が本出願の実施形態において使用される。
【０００９】
第1の態様によれば、本出願の一実施形態は、パケット処理デバイスに適用されるトラフィック測定方法を提供し、パケット処理デバイスはバッファを備え、本方法は以下のステップ、すなわち、パケット処理デバイスによって、測定対象パケットをまず取得するステップと、バッファ内の占有記憶空間が事前設定閾値未満である場合、パケット処理デバイスによって、測定対象パケットの測定対象情報をバッファに書き込むステップであって、測定対象情報が、測定対象パケットのフロー識別子および測定対象パケットのトラフィック量を含む、ステップと、パケット処理デバイスによって、バッファから測定対象情報を次いで読み取るステップと、パケット処理デバイスによって、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータをさらに変更するステップであって、aが正の整数である、ステップとを含む、またはバッファ内の占有記憶空間が事前設定閾値以上である場合、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更するステップであって、wが正の整数であり、wがa未満である、ステップとを含む。
【００１０】
このように、wはa未満であるため、測定対象パケットを処理するために第2のアルゴリズムが使用される場合、第1のアルゴリズムが使用される場合よりも少ない個数だけ、測定データにおける測定対象パケットに対応するデータを変更すれば済む。したがって、第2のアルゴリズムを使用することにより測定対象パケットを処理することは、より高速かつ効率的であり、より小さいリソースオーバーヘッドをもたらす。パケット処理デバイスは、第1のアルゴリズムに基づいて測定対象パケットを処理する際のパケット処理デバイスの負荷が比較的重いか否かを判定するために、バッファが比較的いっぱいであるか否かを判定し、その結果、第1のアルゴリズムに基づいて測定対象パケットを処理する際のパケット処理デバイスの負荷が比較的重い場合、パケット処理デバイスは、より高速な第2のアルゴリズムを使用することにより測定対象パケットを処理するように切り替え、これにより、正常なパケット転送サービスを確保し、ネットワークスループットを改善する。
【００１１】
第1の態様に関連して、可能な実装形態では、a個のデータはa個のカウンタの値であり、w個のデータはw個のカウンタの値である。
【００１２】
このように、測定対象パケットの処理中に、パケット処理デバイスによって変更される第1の測定データおよび第2の測定データにおけるデータは、具体的にはカウンタの値である。
【００１３】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第1のアルゴリズムはハッシュ関数を含み、第1の測定データはc個の場所におけるデータを含み、cは正の整数である。パケット処理デバイスによって、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更するステップは、パケット処理デバイスによって、測定対象パケットのフロー識別子およびハッシュ関数に基づいて、c個の場所からu個の場所を判定するステップであって、uが正の整数であり、uがc以下である、ステップと、パケット処理デバイスによって、測定対象パケットのトラフィック量に基づいて、u個の場所におけるa個のデータを変更するステップであって、uがa以下である、ステップとを含む。
【００１４】
換言すれば、測定対象パケットの処理中に、パケット処理デバイスは、u個の場所におけるa個のデータを変更する。
【００１５】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、バッファから測定対象情報を読み取るステップの後、本方法は、バッファから測定対象パケットの測定対象情報を削除するステップをさらに含む。
【００１６】
このように、バッファは、新しく取得された測定対象パケットの測定対象情報を格納するために空間を解放することができる。
【００１７】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルがパケット処理デバイスに格納され、第2の測定データはフローテーブルにおけるデータを含み、フローテーブルはフロー識別子と第1のデータrとの間の対応関係を含む。パケット処理デバイスによって、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更するステップは、測定対象情報および第2のアルゴリズムに基づいて、測定対象パケットに対応し、かつ第2の測定データにある第1のデータrfを変更するステップを含む。
【００１８】
この場合、パケット処理デバイスは、測定対象パケットに対応し、かつ第1の測定データにあるデータを変更する。
【００１９】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、パケット処理デバイスによって、測定対象情報および第2のアルゴリズムに基づいて、測定対象パケットに対応し、かつ第2の測定データにある第1のデータrfを変更するステップは、フローテーブルが測定対象パケットのフロー識別子fを含む場合、測定対象パケットに対応し、かつフローテーブルにある第1のデータrfを、測定対象パケットに対応する第1のデータrfと測定対象パケットのトラフィック量との和に更新するステップを含む。
【００２０】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルがパケット処理デバイスに格納され、フローテーブルはフロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含む。フローテーブルが測定対象パケットのフロー識別子fを含まず、フローテーブルがいっぱいである場合、パケット処理デバイスによって、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更するステップの前に、本方法は、デクリメント値
【数１】
2020529171.tif 000003
を計算するステップと、フローテーブルに含まれる各フロー識別子に対応する第1のデータrを、第1のデータrとデクリメント値
【数２】
2020529171.tif 000004
との差に更新するステップと、フローテーブルに含まれる各フロー識別子に対応する第2のデータdを、第2のデータdとデクリメント値
【数３】
2020529171.tif 000005
との和に更新するステップと、第1の事前設定条件を満たすフロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係をフローテーブルから削除するステップであって、第1の事前設定条件を満たすフロー識別子が、対応する更新された第1のデータrが0以下であるフロー識別子である、ステップとをさらに含む。
【００２１】
第1のデータrの値は、フロー識別子に対応するデータフローのトラフィック量を示し得る。フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいである場合、パケット処理デバイスは、対応する第1のデータrが比較的小さい1つまたは複数のフロー識別子をフローテーブルから削除し得る。フローテーブルの空間は、比較的トラフィック量の多いデータフローのフロー識別子を格納するために使用されるように削除動作によって解放される。
【００２２】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルはフロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含む。フローテーブルが測定対象パケットのフロー識別子fを含まず、フローテーブルがいっぱいである場合、パケット処理デバイスによって、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更するステップは、測定対象パケットのトラフィック量がデクリメント値
【数４】
2020529171.tif 000006
よりも大きい場合、測定対象パケットのトラフィック量とデクリメント値
【数５】
2020529171.tif 000007
との差を、測定対象パケットに対応する第1のデータrfに設定するステップと、デクリメント値
【数６】
2020529171.tif 000008
を、測定対象パケットに対応する第2のデータdfに設定するステップと、総デクリメントトラフィック量Eを、測定対象パケットに対応する第3のデータefに設定するステップと、測定対象パケットのフロー識別子fと、測定対象パケットに対応する第1のデータrf、測定対象パケットに対応する第2のデータdf、および測定対象パケットに対応する第3のデータefのそれぞれとの間の対応関係をフローテーブルに挿入するステップとを含む。
【００２３】
フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいである場合、パケット処理デバイスは、削除動作を実行した後、測定対象パケットのフロー識別子をフローテーブルに挿入し得る。
【００２４】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、本方法は、パケット処理デバイスによって、総デクリメントトラフィック量Eを、総デクリメントトラフィック量Eとデクリメント値
【数７】
2020529171.tif 000009
との和に更新するステップをさらに含む。
【００２５】
削除動作の後、デクリメント値は総デクリメントトラフィック量Eに加えられ得る。
【００２６】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、パケット処理デバイスによって、デクリメント値
【数８】
2020529171.tif 000010
を計算するステップは、測定対象パケットのトラフィック量およびフローテーブルに含まれるフロー識別子に対応する第1のデータrを値の順に並べ替え、並べ替えた後の最初の2つの値をR1およびR2として、また並べ替えた後の最後の値をRkとして示す、ステップと、デクリメント値
【数９】
2020529171.tif 000011
をR1、R2、Rk、および次式
【数１０】
2020529171.tif 000012
に基づいて計算するステップであって、
【数１１】
2020529171.tif 000013
【数１２】
2020529171.tif 000014
であり、δは定数を表す、ステップとを含む。
【００２７】
このように、すべての第1のデータrの値に基づいてフィッティングによりロングテール分布が取得され、フィッティングにより取得された分布から閾値（つまり、デクリメント値）を選択することによりロングテール部分が削除される。
【００２８】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルがパケット処理デバイスに格納され、フローテーブルはフロー識別子と第1のデータrおよび第3のデータeのそれぞれとの間の対応関係を含む。フローテーブルが測定対象パケットのフロー識別子fを含まず、フローテーブルがいっぱいではない場合、パケット処理デバイスによって、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更するステップは、測定対象パケットのトラフィック量を、測定対象パケットに対応する第1のデータrfに設定するステップと、総デクリメントトラフィック量Eを、測定対象パケットに対応する第3のデータefに設定するステップと、測定対象パケットのフロー識別子fと、測定対象パケットに対応する第1のデータrfおよび測定対象パケットに対応する第3のデータefのそれぞれとの間の対応関係をフローテーブルに挿入するステップとを含む。
【００２９】
フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいではない場合、測定対象パケットに対応するフロー識別子はフローテーブルに挿入され得る。
【００３０】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルはエントリを含み、エントリは、フロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、第1のデータr、第2のデータd、および第3データeはそれぞれ3つのカウンタの値である。
【００３１】
このように、フロー識別子に対応する第1のデータr、第2のデータd、および第3のデータeは、具体的にはカウンタの値であり得る。
【００３２】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第2の測定データはローカルな総トラフィック量を含み、バッファ内の占有記憶空間が事前設定閾値以上である場合、本方法は、パケット処理デバイスによって、ローカルな総トラフィック量を、ローカルな総トラフィック量と測定対象パケットのトラフィック量との和に更新するステップをさらに含む。
【００３３】
換言すれば、新しい測定対象パケットが取得されるたびに、パケット処理デバイスは、新しい測定対象パケットのトラフィック量をローカルな総トラフィック量に加え得る。
【００３４】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フロー識別子は5タプルであり、5タプルは、送信元インターネットプロトコル（internet protocol、IP）アドレスと、送信元ポートと、宛先IPアドレスと、宛先ポートと、トランスポート層プロトコルとを含む、またはフロー識別子は2タプルであり、2タプルは、送信元IPアドレスと宛先IPアドレスとを含む。
【００３５】
このように、データフローを識別するために使用されるフロー識別子は比較的柔軟であり得る。
【００３６】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、本方法は、パケット処理デバイスによって、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信するステップであって、第1の測定データおよび／または第2の測定データが、目的の測定データを計算するためにネットワークコントローラによって使用される、ステップをさらに含む。
【００３７】
このように、ネットワークコントローラは、受信した第1の測定データおよび／または第2の測定データに基づいて目的の測定データを計算し、他の何らかの処理を実行することができる。
【００３８】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、パケット処理デバイスによって、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信するステップは、事前設定期間に基づいて、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信するステップ、またはパケット処理デバイスによって、ネットワークコントローラによって送信された測定データ要求メッセージを受信し、測定データ要求メッセージに応じて、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信する、ステップを含む。
【００３９】
このように、パケット処理デバイスは、ネットワークコントローラに測定データを周期的に送信してもよいし、ネットワークコントローラから命令を受信した後にネットワークコントローラに測定データを送信してもよい。
【００４０】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、測定対象パケットのフロー識別子が目的のフロー識別子であり、測定対象パケットを取得するステップの前に、本方法は、ネットワークコントローラによって送信された命令メッセージを受信するステップであって、命令メッセージが目的のフロー識別子を含む、ステップをさらに含む。
【００４１】
このように、パケット処理デバイスは、目的のフロー識別子を持つ測定対象パケットのみについてトラフィック測定を実行する。
【００４２】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルに対応するデータ構造はハッシュテーブルまたはバイナリツリーである。
【００４３】
このように、フローテーブルは、ハッシュテーブルまたはバイナリツリーの形式で特に実装され得る。
【００４４】
第1の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、ソフトウェア定義ネットワーク（software defined network、SDN）ソフトウェアスイッチがパケット処理デバイス上に構成される。
【００４５】
このように、パケット処理デバイスは、具体的にはソフトウェア定義ネットワークSDNのデータプレーン上のデバイスであり得る。
【００４６】
第2の態様によれば、本出願の一実施形態は、ネットワークコントローラによって、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信するステップであって、第1の測定データが第1のアルゴリズムに基づいて取得され、第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ステップと、ネットワークコントローラによって、グローバルな第1の測定データを取得するためにm個の第1の測定データを組み合わせるステップと、ネットワークコントローラによって、グローバルな第2の測定データを取得するためにn個の第2の測定データを組み合わせるステップと、ネットワークコントローラによって、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算するステップとを含む、トラフィック測定方法を提供する。
【００４７】
このように、ネットワークコントローラは、パケット処理デバイスによって報告された第1の測定データおよび第2の測定データに基づいて、ネットワーク内のトラフィックデータを包括的に計算できる。
【００４８】
第2の態様に関連して、可能な実装形態では、目的の測定データおよびグローバルな第1の測定データは同じデータ構造を有する。
【００４９】
このように、ネットワークコントローラによって取得された目的の測定データ、第1のアルゴリズムに基づいて取得された第1の測定データ、およびグローバルな第1の測定データは同じデータ構造を有する。ネットワークコントローラは、第2のアルゴリズムの削除動作で失われたトラフィック情報を回復するために、第2のアルゴリズムに基づいて取得されたグローバルな第2の測定データをグローバルな第1の測定データの形式に変換し、その結果、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて取得された目的の測定データは、第1のアルゴリズムに対応する測定精度と同等の測定精度を有することができると理解できる。
【００５０】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第1の測定データのそれぞれがp行q列の要素を含む。ネットワークコントローラによって、グローバルな第1の測定データを取得するためにm個の第1の測定データを組み合わせるステップは、グローバルな第1の測定データを取得するために、m個の第1の測定データのものであり、かつ対応する場所にある各m個の要素を組み合わせるステップであって、グローバルな第1の測定データがp行q列の要素を含む、ステップを含む。
【００５１】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第2の測定データのそれぞれがローカルな総トラフィック量およびフローテーブルを含み、フローテーブルは少なくとも1つのエントリを含み、エントリはフロー識別子と1対1の対応関係にある。ネットワークコントローラによって、グローバルな第2の測定データを取得するためにn個の第2の測定データを組み合わせるステップは、グローバルな総トラフィック量を取得するために、n個の第2の測定データにおけるn個のローカルな総トラフィック量を加えるステップと、グローバルなフローテーブルを取得するためにn個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせるステップであって、グローバルなフローテーブルにおいて、フロー識別子はエントリと1対1の対応関係にある、ステップとを含む。グローバルな総トラフィック量およびグローバルなフローテーブルは、グローバルな第2の測定データである。
【００５２】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、エントリはフロー識別子とフロー識別子に対応するトラフィックデータとを含む。ネットワークコントローラによって、n個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせるステップは、n個の第2の測定データに対応するn個のフローテーブルのエントリにおいて、同じフロー識別子を有する複数のエントリについて、複数のエントリをグローバルなフローテーブルの1つのエントリに組み合わせるために、複数のエントリにおけるトラフィックデータを加えるステップと、異なるフロー識別子を有するエントリのそれぞれをグローバルなフローテーブルの1つのエントリとして使用するステップとを含む。
【００５３】
このように、グローバルなフローテーブルにおいて、フロー識別子は同じエントリに対応する。
【００５４】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、ネットワークコントローラによって、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算するステップは、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて最適化目的関数を構築するステップと、凸最適化アルゴリズムおよび最適化目的関数に基づいて目的の測定データを計算するステップであって、最適化目的関数の式が、minimize
【数１３】
2020529171.tif 000015
であり、最適化目的関数が次の制約、すなわち、制約1：T＝N＋sk（x＋y）、制約2：｜x｜1＋｜y｜1＝V、および制約3：∀s∈H、rs＋ds≦xs≦rs＋ds＋esを満たし、「minimize」は最適化目的関数を最小化する独立変数値の計算を表し、Tは目的の測定データを表し、Nはグローバルなフローテーブルを表し、Vはグローバルな総トラフィック量を表し、Hはグローバルな第1の測定データを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xsはフロー識別子sに対応するデータフローのトラフィック量を表し、yは、Hに含まれないデータフローのものであり、かつ第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量にあるトラフィック量を表し、x＋yは第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量を表し、sk（x＋y）は入力としてx＋yを使用することにより、また第1のアルゴリズムを呼び出すことにより取得された結果を表す。｜T｜＊は、Tの核型ノルムを表し、かつ行列のすべての特異値の和として定義され、｜x｜1は、ベクトルxのL1ノルムを表し、かつxのすべてのデータの絶対値の和として定義され、
【数１４】
2020529171.tif 000016
は、ベクトルyのフロベニウスノルムを表し、かつxのすべてのデータの二乗和として定義され、α、β、およびγの計算式はそれぞれ、
【数１５】
2020529171.tif 000017
【数１６】
2020529171.tif 000018
およびγ＝10σyであり、PNおよびQNはそれぞれ行列Nの長さおよび幅を表し、η（N）はNのデータの平均を表し、mxおよびnxはそれぞれベクトルxの長さおよび幅を表し、σyはyのすべてのデータの標準偏差を表す、ステップとを含む。
【００５５】
一般的な凸最適化問題に対する閉形式の解はない、つまり、出力と入力との間の関数関係の式を明示的に与えることはできない。この解を見つける仕方においては、予想されるグローバルな最適解の代わりに使用するために、制約規則に基づいて特定の範囲内で探索することにより、近似的な局所最適解を見つけるための近似法が使用される。
【００５６】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、凸最適化アルゴリズムは、内点法、交互方向乗数法（alternating direction method of multipliers、ADMM）、または劣勾配アルゴリズムを含む。
【００５７】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、ネットワークコントローラによって、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算するステップは、グローバルな第1の測定データ、グローバルな第2の測定データ、および次式：T＝N＋sk（x）に基づいて目的の測定データを計算するステップであって、Tは目的の測定データを表し、Nはグローバルなフローテーブルを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xは第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量を表し、sk（x）は、入力としてxを使用することにより、かつ第1のアルゴリズムを呼び出すことにより取得された結果を表す、ステップを含む。
【００５８】
このように、ネットワークコントローラは、xおよびNに基づいた簡単な計算によって目的の測定データを取得できる。
【００５９】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、グローバルなフローテーブルはエントリを含み、エントリはフロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含み、xに対応するデータフローのトラフィック量は、データフローのフロー識別子に対応する第1のデータrと第2のデータdとの和である。
【００６０】
このように、ネットワークコントローラは、rおよびdに基づいてxを取得し、xおよびNに基づいた簡単な計算によって目的の測定データを取得できる。
【００６１】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、グローバルなフローテーブルはエントリを含み、エントリはフロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、xに対応するデータフローのトラフィック量は、データフローのフロー識別子に対応する第1のデータrと第2のデータdと第3のデータeとの和である。
【００６２】
このように、ネットワークコントローラは、r、d、およびeに基づいてxを取得し、xおよびNに基づいた簡単な計算によって目的の測定データを取得できる。
【００６３】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、ネットワークコントローラによって、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信するステップは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを周期的に受信するステップを含む。あるいは、ネットワークデバイスによって、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信するステップの前に、本方法は、各パケット処理デバイスに測定データ要求メッセージを送信するステップをさらに含む。
【００６４】
このように、ネットワークコントローラは、パケット処理デバイスによって送信された測定データを周期的に受信してもよいし、測定データを収集する必要があるときにパケット処理デバイスのそれぞれに測定データ要求メッセージを送信してもよい。
【００６５】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、ネットワークコントローラによって、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信するステップの前に、本方法は、各パケット処理デバイスに命令メッセージを送信するステップであって、命令メッセージが、測定対象パケット処理デバイスに対応する目的のフロー識別子を運ぶ、ステップをさらに含む。測定対象パケット処理デバイスが目的のフロー識別子に対応するということは以下を意味する、すなわち、測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローのラストホップデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローのファーストホップデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローの受信エンドデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローの送信エンドデバイスであることを意味する。
【００６６】
このように、ネットワークコントローラは、構成ポリシーを使用することによりパケット処理デバイスと目的のフロー識別子との間の対応関係を事前構成することができ、その結果、ネットワーク内の1つのパケットのトラフィック量が、複数のパケット処理デバイスによって測定および報告される代わりに、ネットワーク内の1つのパケット処理デバイスのみによって測定および報告される。したがって、ネットワーク内のパケット処理デバイスによって個別に測定されたパケットは互いに重複せず、これにより、測定の繰り返しを避け、正確なネットワークトラフィックの測定を実現する。
【００６７】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、ソフトウェア定義ネットワークSDNコントローラがネットワークコントローラ上に構成される。
【００６８】
このように、ネットワークコントローラは、具体的にはソフトウェア定義ネットワークSDNの制御プレーン上のコントローラであり得る。
【００６９】
第3の態様によれば、本出願の一実施形態は、少なくとも1つのプロセッサと、メモリと、バッファと、通信インターフェースと、バスとを備えるパケット処理デバイスを提供し、少なくとも1つのプロセッサ、メモリ、およびバッファはバスを使用することにより互いに接続される。通信インターフェースは、パケット処理デバイスがパケット転送デバイスまたはパケット受信デバイスであるときに、測定対象パケットを取得するように構成される。メモリは、命令を格納するように構成される。プロセッサは、以下の動作、すなわち、パケット処理デバイスがパケット送信デバイスである場合、測定対象パケットを取得する動作と、バッファ内の占有記憶空間が事前設定閾値未満である場合、測定対象パケットの測定対象情報をバッファに書き込む動作であって、測定対象情報が、測定対象パケットのフロー識別子および測定対象パケットのトラフィック量を含む、動作と、バッファから測定対象情報を読み取る動作と、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更する動作であって、aが正の整数である、動作とを実施する、またはバッファ内の占有記憶空間が事前設定閾値以上である場合、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更する動作であって、wが正の整数であり、wがa未満である、動作とを実施するためにメモリに格納された命令を呼び出すように構成される。バッファは、プロセッサが測定対象パケットの測定対象情報をバッファに書き込んだ後、測定対象情報を格納するように構成される。
【００７０】
第3の態様に関連して、可能な実装形態では、a個のデータはa個のカウンタの値であり、w個のデータはw個のカウンタの値である。
【００７１】
第3の態様および上述の可能な実装に関して、別の可能な実装では、第1のアルゴリズムはハッシュ関数を含み、第1の測定データはc個の場所におけるデータを含み、cは正の整数であり、プロセッサは、測定対象パケットのフロー識別子およびハッシュ関数に基づいて、c個の場所からu個の場所を判定し、uが正の整数であり、uがc以下であり、測定対象パケットのトラフィック量に基づいて、u個の場所におけるa個のデータを変更し、uがa以下である、ように特に構成される。
【００７２】
第3の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、通信インターフェースは、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信し、第1の測定データおよび／または第2の測定データが、目的の測定データを計算するためにネットワークコントローラによって使用される、ようにさらに構成される。
【００７３】
第3の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、測定対象パケットのフロー識別子が目的のフロー識別子であり、通信インターフェースは、測定対象パケットを取得する前に、ネットワークコントローラによって送信された命令メッセージを受信し、命令メッセージが目的のフロー識別子を含む、ようにさらに構成される。
【００７４】
第4の態様によれば、本出願の一実施形態は、少なくとも1つのプロセッサと、メモリと、通信インターフェースと、バスとを備えるネットワークコントローラを提供し、少なくとも1つのプロセッサおよびメモリはバスを使用することにより互いに接続される。通信インターフェースは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信し、第1の測定データが第1のアルゴリズムに基づいて取得され、第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ように構成される。メモリは、命令を格納するように構成される。プロセッサは、以下の動作、すなわち、グローバルな第1の測定データを取得するためにm個の第1の測定データを組み合わせる動作と、グローバルな第2の測定データを取得するためにn個の第2の測定データを組み合わせる動作と、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算する動作とを実施するためにメモリに格納された命令を呼び出すように構成される。
【００７５】
第4の態様に関連して、可能な実装形態では、目的の測定データおよびグローバルな第1の測定データは同じデータ構造を有する。
【００７６】
第4の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第1の測定データのそれぞれがp行q列の要素を含み、プロセッサは、グローバルな第1の測定データを取得するために、m個の第1の測定データのものであり、かつ対応する場所にある各m個の要素を組み合わせ、グローバルな第1の測定データがp行q列の要素を含む、ように特に構成される。
【００７７】
第4の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第2の測定データのそれぞれがローカルな総トラフィック量およびフローテーブルを含み、フローテーブルは少なくとも1つのエントリを含み、エントリはフロー識別子と1対1の対応関係にあり、プロセッサは、グローバルな総トラフィック量を取得するために、n個の第2の測定データにおけるn個のローカルな総トラフィック量を加え、グローバルなフローテーブルを取得するためにn個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせ、グローバルなフローテーブルにおいて、フロー識別子はエントリと1対1の対応関係にあり、グローバルな総トラフィック量およびグローバルなフローテーブルはグローバルな第2の測定データである、ように特に構成される。
【００７８】
第4の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、通信インターフェースは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信する前に、各パケット処理デバイスに命令メッセージを送信し、命令メッセージが、測定対象パケット処理デバイスに対応する目的のフロー識別子を運ぶ、ようにさらに構成される。測定対象パケット処理デバイスが目的のフロー識別子に対応するということは以下を意味する、すなわち、測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローのラストホップデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローのファーストホップデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローの受信エンドデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローの送信エンドデバイスであることを意味する。
【００７９】
第5の態様によれば、本出願の一実施形態は、バッファと、取得ユニットと、書き込みユニットと、読み取りユニットと、第1の変更ユニットと、第2の変更ユニットとを備えるパケット処理デバイスを提供する。取得ユニットは、測定対象パケットを取得するように構成される。書き込みユニットは、バッファ内の占有記憶空間が事前設定閾値未満である場合、測定対象パケットの測定対象情報をバッファに書き込み、測定対象情報が測定対象パケットのフロー識別子と測定対象パケットのトラフィック量とを含む、ように構成される。バッファは、書き込みユニットが測定対象情報をバッファに書き込んだ後、測定対象情報を格納するように構成される。読み取りユニットは、バッファから測定対象情報を読み取るように構成される。第1の変更ユニットは、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更し、aは正の整数である、ように構成される。第2の変更ユニットは、バッファ内の占有記憶空間が事前設定閾値以上である場合、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更し、wは正の整数であり、wはa未満である、ように構成される。
【００８０】
第5の態様に関連して、可能な実装形態では、a個のデータはa個のカウンタの値であり、w個のデータはw個のカウンタの値である。
【００８１】
第5の態様および上述の可能な実装に関して、別の可能な実装では、第1のアルゴリズムはハッシュ関数を含み、第1の測定データはc個の場所におけるデータを含み、cは正の整数であり、第1の変更ユニットは、測定対象パケットのフロー識別子およびハッシュ関数に基づいて、c個の場所からu個の場所を判定し、uが正の整数であり、uがc以下であり、測定対象パケットのトラフィック量に基づいて、u個の場所におけるa個のデータを変更し、uがa以下である、ように特に構成される。
【００８２】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、本デバイスは、読み取りユニットがバッファから測定対象情報を読み取った後、バッファから測定対象パケットの測定対象情報を削除するように構成された削除ユニットをさらに備える。
【００８３】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルがパケット処理デバイスに格納され、第2の測定データはフローテーブルにおけるデータを含み、フローテーブルはフロー識別子と第1のデータrとの間の対応関係を含み、第2の変更ユニットは、測定対象情報および第2のアルゴリズムに基づいて、測定対象パケットに対応し、かつ第2の測定データにある第1のデータrfを変更するように特に構成される。
【００８４】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第2の変更ユニットは、フローテーブルが測定対象パケットのフロー識別子fを含む場合、測定対象パケットに対応し、かつフローテーブルにある第1のデータrfを、測定対象パケットに対応する第1のデータrfと測定対象パケットのトラフィック量との和に更新するように特に構成される。
【００８５】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルは、フロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含み、本デバイスは、フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいである場合、第2の変更ユニットが測定対象情報および第2のアルゴリズムに基づいて第2の測定データにおける測定対象パケットに対応するw個のデータを変更するステップの前に、デクリメント値
【数１７】
2020529171.tif 000019
を計算し、フローテーブルに含まれる各フロー識別子に対応する第1のデータrを、第1のデータrとデクリメント値
【数１８】
2020529171.tif 000020
との差に更新し、フローテーブルに含まれる各フロー識別子に対応する第2のデータdを、第2のデータdとデクリメント値
【数１９】
2020529171.tif 000021
との和に更新し、第1の事前設定条件を満たすフロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係をフローテーブルから削除する、ように構成された処理ユニットをさらに備える。第1の事前設定条件を満たすフロー識別子は、対応する更新された第1のデータrが0以下であるフロー識別子である。
【００８６】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルは、フロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、第2の変更ユニットは、フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいである場合、測定対象パケットのトラフィック量がデクリメント値
【数２０】
2020529171.tif 000022
よりも大きい場合、測定対象パケットのトラフィック量とデクリメント値
【数２１】
2020529171.tif 000023
との差を、測定対象パケットに対応する第1のデータrfに設定し、デクリメント値
【数２２】
2020529171.tif 000024
を、測定対象パケットに対応する第2のデータdfに設定し、総デクリメントトラフィック量Eを、測定対象パケットに対応する第3のデータefに設定し、測定対象パケットのフロー識別子fと、測定対象パケットに対応する第1のデータrf、測定対象パケットに対応する第2のデータdf、および測定対象パケットに対応する第3のデータefのそれぞれとの間の対応関係をフローテーブルに挿入する、ように特に構成される。
【００８７】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、本デバイスは、総デクリメントトラフィック量Eを、総デクリメントトラフィック量Eとデクリメント値
【数２３】
2020529171.tif 000025
との和に更新するように構成された更新ユニットをさらに備える。
【００８８】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、処理ユニットは、測定対象パケットのトラフィック量およびフローテーブルに含まれるフロー識別子に対応する第1のデータrを値の順に並べ替え、並べ替えた後の最初の2つの値をR1およびR2として、また並べ替えた後の最後の値をRkとして示し、デクリメント値
【数２４】
2020529171.tif 000026
をR1、R2、Rk、および次式
【数２５】
2020529171.tif 000027
に基づいて計算し、
【数２６】
2020529171.tif 000028
【数２７】
2020529171.tif 000029
であり、δは定数を表す、ように特に構成される。
【００８９】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルは、フロー識別子と第1のデータrおよび第3のデータeのそれぞれとの間の対応関係を含み、第2の変更ユニットは、フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいではない場合、測定対象パケットのトラフィック量を、測定対象パケットに対応する第1のデータrfに設定し、総デクリメントトラフィック量Eを、測定対象パケットに対応する第3のデータefに設定し、測定対象パケットのフロー識別子fと、測定対象パケットに対応する第1のデータrfおよび測定対象パケットに対応する第3のデータefのそれぞれとの間の対応関係をフローテーブルに挿入する、ように特に構成される。
【００９０】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フローテーブルはエントリを含み、エントリは、フロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、第1のデータr、第2のデータd、および第3データeはそれぞれ3つのカウンタの値である。
【００９１】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第2の測定データはローカルな総トラフィック量を含み、更新ユニットは、ローカルな総トラフィック量を、ローカルな総トラフィック量と測定対象パケットのトラフィック量との和に更新するようにさらに構成される。
【００９２】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、フロー識別子は5タプルであり、5タプルは、送信元インターネットプロトコルIPアドレスと、送信元ポートと、宛先IPアドレスと、宛先ポートと、トランスポート層プロトコルとを含む、またはフロー識別子は2タプルであり、2タプルは、送信元IPアドレスと宛先IPアドレスとを含む。
【００９３】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、本デバイスは、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信し、第1の測定データおよび／または第2の測定データが、目的の測定データを計算するためにネットワークコントローラによって使用される、ように構成された送信ユニットをさらに備える。
【００９４】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、送信ユニットは、事前設定期間に基づいて第1の測定データおよび／または第2の測定データをネットワークコントローラに送信するように特に構成される。
【００９５】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、本デバイスは、ネットワークコントローラによって送信された測定データ要求メッセージを受信するように構成された受信ユニットをさらに備える。送信ユニットは、第1の受信ユニットによって受信された測定データ要求メッセージに応じて、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信するように特に構成される。
【００９６】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、測定対象パケットのフロー識別子が目的のフロー識別子であり、受信ユニットは、取得ユニットが測定対象パケットを取得する前に、ネットワークコントローラによって送信された命令メッセージを受信し、命令メッセージが目的のフロー識別子を含む、ようにさらに構成される。
【００９７】
第6の態様によれば、本出願の一実施形態は、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信し、第1の測定データが第1のアルゴリズムに基づいて取得され、第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ように構成された受信ユニットと、グローバルな第1の測定データを取得するためにm個の第1の測定データを組み合わせるように構成された第1の組み合わせユニットと、グローバルな第2の測定データを取得するためにn個の第2の測定データを組み合わせるように構成された第2の組み合わせユニットと、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算するように構成された計算ユニットとを備える、ネットワークコントローラを提供する。
【００９８】
第6の態様に関連して、可能な実装形態では、目的の測定データおよびグローバルな第1の測定データは同じデータ構造を有する。
【００９９】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第1の測定データのそれぞれがp行q列の要素を含み、第1の組み合わせユニットは、グローバルな第1の測定データを取得するために、m個の第1の測定データのものであり、かつ対応する場所にある各m個の要素を組み合わせ、グローバルな第1の測定データがp行q列の要素を含む、ように特に構成される。
【０１００】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、第2の測定データのそれぞれがローカルな総トラフィック量およびフローテーブルを含み、フローテーブルは少なくとも1つのエントリを含み、エントリはフロー識別子と1対1の対応関係にあり、第2の組み合わせユニットは、グローバルな総トラフィック量を取得するために、n個の第2の測定データにおけるn個のローカルな総トラフィック量を加え、グローバルなフローテーブルを取得するためにn個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせ、グローバルなフローテーブルにおいて、フロー識別子はエントリと1対1の対応関係にあり、グローバルな総トラフィック量およびグローバルなフローテーブルはグローバルな第2の測定データである、ように特に構成される。
【０１０１】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、エントリはフロー識別子とフロー識別子に対応するトラフィックデータとを含み、第2の組み合わせユニットは、n個の第2の測定データに対応するn個のフローテーブルのエントリにおいて、同じフロー識別子を有する複数のエントリについて、複数のエントリをグローバルなフローテーブルの1つのエントリに組み合わせるために、複数のエントリにおけるトラフィックデータを加え、異なるフロー識別子を有するエントリのそれぞれをグローバルなフローテーブルの1つのエントリとして使用する、ように特に構成される。
【０１０２】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、計算ユニットは、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて最適化目的関数を構築し、凸最適化アルゴリズムおよび最適化目的関数に基づいて目的の測定データを計算する、ように特に構成される。最適化目的関数の式が、minimize
【数２８】
2020529171.tif 000030
であり、最適化目的関数が次の制約、すなわち、制約1：T＝N＋sk（x＋y）、制約2：｜x｜1＋｜y｜1＝V、および制約3：∀s∈H、rs＋ds≦xs≦rs＋ds＋esを満たし、「minimize」は最適化目的関数を最小化する独立変数値の計算を表し、Tは目的の測定データを表し、Nはグローバルなフローテーブルを表し、Vはグローバルな総トラフィック量を表し、Hはグローバルな第1の測定データを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xsはフロー識別子sに対応するデータフローのトラフィック量を表し、yは、Hに含まれないデータフローのものであり、かつ第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量にあるトラフィック量を表し、x＋yは第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量を表し、sk（x＋y）は入力としてx＋yを使用することにより、また第1のアルゴリズムを呼び出すことにより取得された結果を表し、｜T｜＊は、Tの核型ノルムを表し、かつ行列のすべての特異値の和として定義され、｜x｜1は、ベクトルxのL1ノルムを表し、かつxのすべてのデータの絶対値の和として定義され、
【数２９】
2020529171.tif 000031
は、ベクトルyのフロベニウスノルムを表し、かつxのすべてのデータの二乗和として定義され、α、β、およびγの計算式はそれぞれ、
【数３０】
2020529171.tif 000032
【数３１】
2020529171.tif 000033
およびγ＝10σyであり、PNおよびQNはそれぞれ行列Nの長さおよび幅を表し、η（N）はNのデータの平均を表し、mxおよびnxはそれぞれベクトルxの長さおよび幅を表し、σyはyのすべてのデータの標準偏差を表す。
【０１０３】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、計算ユニットは、グローバルな第1の測定データ、グローバルな第2の測定データ、および次式：T＝N＋sk（x）に基づいて目的の測定データを計算し、Tは目的の測定データを表し、Nはグローバルなフローテーブルを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xは第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量を表し、sk（x）は、入力としてxを使用することにより、かつ第1のアルゴリズムを呼び出すことにより取得された結果を表す、ように特に構成される。
【０１０４】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、グローバルなフローテーブルはエントリを含み、エントリはフロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含み、xに対応するデータフローのトラフィック量は、データフローのフロー識別子に対応する第1のデータrと第2のデータdとの和である。
【０１０５】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、エントリはフロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、xに対応するデータフローのトラフィック量は、データフローのフロー識別子に対応する第1のデータrと第2のデータdと第3のデータeとの和である。
【０１０６】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、受信ユニットは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを周期的に受信するように特に構成される。
【０１０７】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、ネットワークコントローラは、測定データ要求メッセージを各パケット処理デバイスに送信するように構成された送信ユニットをさらに備える。
【０１０８】
第6の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、送信ユニットは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信ユニットが受信する前に、各パケット処理デバイスに命令メッセージを送信し、命令メッセージが、測定対象パケット処理デバイスに対応する目的のフロー識別子を運ぶ、ようにさらに構成される。測定対象パケット処理デバイスが目的のフロー識別子に対応するということは以下を意味する、すなわち、測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローのラストホップデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローのファーストホップデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローの受信エンドデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローの送信エンドデバイスであることを意味する。
【０１０９】
第7の態様によれば、本出願の一実施形態は、1つまたは複数のプロセッサと1つまたは複数のメモリとを備えるパケット処理デバイスを提供する。1つまたは複数のメモリは、1つまたは複数のプロセッサに接続される。1つまたは複数のメモリはコンピュータプログラムコードを格納するように構成され、コンピュータプログラムコードはコンピュータ命令を含む。1つまたは複数のプロセッサがコンピュータ命令を実行すると、パケット処理デバイスは、第1の態様および第1の態様の実装形態のいずれか1つによるトラフィック測定方法を実行する。
【０１１０】
第8の態様によれば、本出願の一実施形態は、1つまたは複数のプロセッサと1つまたは複数のメモリとを備えるネットワークコントローラを提供する。1つまたは複数のメモリは、1つまたは複数のプロセッサに接続される。1つまたは複数のメモリはコンピュータプログラムコードを格納するように構成され、コンピュータプログラムコードはコンピュータ命令を含む。1つまたは複数のプロセッサがコンピュータ命令を実行すると、ネットワークコントローラは、第2の態様および第2の態様の実装形態のいずれか1つによるトラフィック測定方法を実行する。
【０１１１】
第9の態様によれば、本出願の一実施形態は、命令を含むコンピュータ可読記憶媒体を提供し、命令がパケット処理デバイスで実行されると、パケット処理デバイスは、第1の態様および第1の態様の実装形態のいずれか1つによるトラフィック測定方法を実行する。
【０１１２】
第10の態様によれば、本出願の一実施形態は、命令を含むコンピュータ可読記憶媒体を提供し、命令がネットワークコントローラで実行されると、ネットワークコントローラは、第2の態様および第2の態様の実装形態のいずれか1つによるトラフィック測定方法を実行する。
【０１１３】
第11の態様によれば、本出願の一実施形態は、命令を含むコンピュータプログラム製品を提供し、製品がパケット処理デバイスで実行されると、パケット処理デバイスは、第1の態様および第1の態様の実装形態のいずれか1つによるトラフィック測定方法を実行する。
【０１１４】
第12の態様によれば、本出願の一実施形態は、命令を含むコンピュータプログラム製品を提供し、製品がネットワークコントローラで実行されると、ネットワークコントローラは、第2の態様および第2の態様の実装形態のいずれか1つによるトラフィック測定方法を実行する。
【０１１５】
第13の態様によれば、本出願の一実施形態はシステムを提供し、本システムはネットワークコントローラと少なくとも1つのパケット処理デバイスとを備え、パケット処理デバイスは、第1の態様および第1の態様の実装形態のいずれか1つによるトラフィック測定方法を実行するように構成され、ネットワークコントローラは、第2の態様および第2の態様の実装形態のいずれか1つによるトラフィック測定方法を実行するように構成される。
【０１１６】
第3の態様から第13の態様の有益な効果については、第1の態様および第2の態様の対応する説明を参照されたい。ここでは細部を繰り返し説明しない。
【図面の簡単な説明】
【０１１７】
【図１】従来技術におけるsketch−basedアルゴリズムの原理図である。
【図２】本出願の一実施形態によるネットワークシステムの概略的なアーキテクチャ図である。
【図３ａ】本出願の一実施形態によるパケット処理デバイスの概略構成図である。
【図３ｂ】本出願の一実施形態によるネットワークコントローラの概略構成図である。
【図４】本出願の一実施形態によるトラフィック測定方法の流れ図である。
【図５】本出願の一実施形態によるロックフリー循環キューの概略図である。
【図６】本出願の一実施形態によるマッピング関係の概略図である。
【図７】本出願の一実施形態による別のトラフィック測定方法の流れ図である。
【図８】本出願の一実施形態によるフローテーブルの概略図である。
【図９】本出願の一実施形態による変更プロセスの流れ図である。
【図１０】本出願の一実施形態によるsketch−basedアルゴリズムとCPUクロックサイクル数との間の対応関係の図である。
【図１１】本出願の一実施形態による別のトラフィック測定方法の流れ図である。
【図１２】本出願の一実施形態による別のトラフィック測定方法の流れ図である。
【図１３】本出願の一実施形態によるトラフィック測定方法とネットワークスループットとの間の対応関係の図である。
【図１４ａ】本出願の一実施形態によるトラフィック測定方法と再現率との間の対応関係の図である。
【図１４ｂ】本出願の一実施形態によるトラフィック測定方法と誤検出率との間の対応関係の図である。
【図１４ｃ】本出願の一実施形態によるトラフィック測定方法と相対誤差との間の対応関係の図である。
【図１４ｄ】本出願の一実施形態による別のトラフィック測定方法と再現率との間の対応関係の図である。
【図１４ｅ】本出願の一実施形態による別のトラフィック測定方法と誤検出率との間の対応関係の図である。
【図１４ｆ】本出願の一実施形態による別のトラフィック測定方法と相対誤差との間の対応関係の図である。
【図１５】本出願の一実施形態による別のパケット処理デバイスの概略構成図である。
【図１６】本出願の一実施形態による別のネットワークコントローラの概略構成図である。
【図１７】本出願の一実施形態による別のパケット処理デバイスの概略構成図である。
【図１８】本出願の一実施形態による別のネットワークコントローラの概略構成図である。
【発明を実施するための形態】
【０１１８】
理解を容易にするために、本出願の実施形態に関連するいくつかの概念の説明は、参考のための例として与えられている。詳細を以下に示す。
【０１１９】
ローカルエリアネットワークは、エリア内の複数のコンピュータを相互接続することにより形成されるコンピュータグループである。
【０１２０】
パケット送信エンドデバイスは、パケットを生成して送信するデバイスである。
【０１２１】
パケット転送デバイスは、あるデバイスによって送信されたパケットを受信し、そのパケットを別のデバイスに転送するデバイスである。
【０１２２】
パケット受信エンドデバイスは、パケットの宛先エンド受信デバイスである。
【０１２３】
キューは、テーブルの前方（front）での削除動作およびテーブルの後方（rear）での挿入動作のみを許可する特別な線形テーブルである。
【０１２４】
ソフトウェア定義ネットワークは、ネットワークデバイスの制御プレーンとデータプレーンとがネットワークトラフィックを柔軟に制御するために分離され、ネットワークをパイプラインとしてよりインテリジェントにすることを意味する。
【０１２５】
以下、本出願の実施形態の技術的解決策を、本出願の実施形態における添付の図面を参照して説明する。本出願の実施形態の説明において、別段の指定のない限り、「／」は「または」を意味する。例えば、A／BはAまたはBを意味し得る。本明細書における「および／または」は、関連する対象を記述するための関連関係のみを記述し、3つの関係が含まれ得ることを表している。例えば、Aおよび／またはBは、以下の3つの場合、すなわちAのみが含まれる場合と、AとBとの両方が含まれる場合と、Bのみが含まれる場合とを表し得る。加えて、本出願の実施形態の説明において、「複数」とは、2つ以上を意味する。
【０１２６】
本出願の実施形態におけるネットワークシステムの基本的な概略的なアーキテクチャ図については、図2を参照されたい。ネットワークシステム01は、少なくとも1つのパケット処理デバイス100とネットワークコントローラ200とを備え得る。例えば、ネットワークシステム01は、具体的にはローカルエリアネットワーク（例えば、企業ネットワークまたはキャンパスネットワーク）またはデータセンタネットワークであってもよいし、ワイドエリアネットワークなどの通信ネットワークであってもよい。パケット処理デバイス100は、パケットを送信、受信、または転送するように構成され、具体的には、ホスト、ルータ、またはスイッチなどのデバイスであり得る。ネットワークコントローラ200は、パケット処理デバイスおよびネットワーク内の別のデバイスを制御および管理するように構成される。
【０１２７】
例えば、パケット処理デバイス100はスイッチである。図3aは、スイッチ10の概略構成図を提示している。スイッチ10は、ラインカードと転送モジュールとを備え得る。ラインカードは、ネットワーク回線とスイッチとの間のインターフェースであり得る。転送モジュールは、ラインカード間でパケットを送信するように構成される。
【０１２８】
図3bは、ネットワークコントローラ200の概略構成図を提示している。ネットワークコントローラ200は、インターフェースと、ネットワーク機能モジュールと、命令転送モジュールと、ネットワーク監視および管理モジュールとを備え得る。ネットワークインターフェースは、ネットワーク管理者がネットワーク機能、例えば、リソース管理、経路計算、および制御ポリシーをデプロイおよび開発することを可能にする。ネットワーク機能モジュールは、様々なネットワーク管理および制御プログラムを含む。転送命令配信モジュールは、様々な管理および制御プログラムに対応する命令を、データプレーン上のスイッチおよびルータに配信する。ネットワーク監視および管理モジュールは、ネットワークの状態を監視するように構成され得る。
【０１２９】
本出願の一実施形態はトラフィック測定方法を提供し、本方法は、図2に示されるネットワークシステムにおけるパケット処理デバイスおよびネットワークコントローラに関する。バッファがパケット処理デバイスに配置される。図4を参照すると、本方法は以下のステップを含み得る。
【０１３０】
101．パケット処理デバイスは測定対象パケットを取得する。
【０１３１】
測定対象パケットは、トラフィック量が測定されるパケットである。トラフィック量は、ネットワークでのパケットの送信中に生成されるトラフィックの量であり、具体的にはパケットのサイズ、例えばパケットのバイト数であり得る。パケットは、任意の形式または任意の定義のパケット、例えば、IPパケット、媒体アクセス制御（media access control、MAC）パケット、インターネット・コントロール・メッセージ・プロトコル（internet control message protocol、ICMP）パケット、伝送制御プロトコル（transmission control protocol、TCP）パケット、またはユーザ・データグラム・プロトコル（user datagram protocol、UDP）パケットを含み得る。
【０１３２】
パケット処理デバイスが異なるデバイスである場合、パケット処理デバイスにより測定対象パケットを取得する方式も異なる。例えば、パケット処理デバイスがパケット送信エンドデバイスである場合、パケット処理デバイスは、具体的にはパケットを生成するホストであり得る。この場合、パケット処理デバイスは、ホスト上のプログラムによって生成されたネットワークパケットを直接取得できる。パケット処理デバイスがパケット受信エンドデバイスまたはパケット転送デバイスである場合、パケット処理デバイスが測定対象パケットを取得することは、パケット処理デバイスが別のデバイスから測定対象パケットを受信することを意味する。
【０１３３】
ステップ101の後、処理を実行するために、すなわち測定対象パケットのトラフィック量を測定するために、ステップ102またはステップ105に進む。
【０１３４】
102．バッファ内の占有記憶空間が事前設定閾値未満である場合、パケット処理デバイスは、測定対象パケットの測定対象情報をバッファに書き込み、測定対象情報が測定対象パケットのフロー識別子と測定対象パケットのトラフィック量とを含む。
【０１３５】
フロー識別子は、測定対象パケットに対応するデータフローを識別するために使用される。異なるフロー識別子は、測定対象パケットの（測定対象パケットに対応する）異なるデータフローを示す。各測定対象パケットは1つのフロー識別子に対応していてもよく、各フロー識別子は複数の測定対象パケットに対応していてもよい。同様に、各測定対象パケットは1つのデータフローに対応していてもよく、各データフローは複数の測定対象パケットに対応していてもよい。
【０１３６】
測定対象パケットの測定対象情報は、測定対象パケットのトラフィック量と、測定対象パケットに対応するフロー識別子とを含み得る。例えば、測定対象情報は、具体的には測定対象パケットにあり、かつトラフィック量を表すために使用されるフィールド、および測定対象パケットにあり、かつフロー識別子を表すために使用されるフィールドであり得る。あるいは、測定対象情報は、具体的には測定対象パケットのヘッダ情報であってもよく、ヘッダ情報は、トラフィック量を表すために使用されるフィールドと、フロー識別子を表すために使用されるフィールドとを含む。あるいは、測定対象情報は、具体的には測定対象パケットであってもよく、測定対象パケットは、トラフィック量を表すために使用されるフィールドと、フロー識別子を表すために使用されるフィールドとを含む。
【０１３７】
事前設定閾値は、実際の要件に応じて設定されてよく、例えば90％であり得る。ステップ101の後、バッファ内の占有記憶空間が事前設定閾値未満である場合、すなわちバッファが完全にいっぱいではない場合、パケット処理デバイスは、測定対象パケットの測定対象情報を一時的に格納するために、測定対象パケットの測定対象情報をバッファに書き込むことができる。
【０１３８】
例えば、バッファは数十または数百の測定対象パケットの測定対象情報を収容できる。バッファのサイズは、測定対象情報によって占有される空間のサイズの整数倍に設定され得る。例えば、測定対象情報が測定対象パケットのヘッダ情報であり、ヘッダ情報のサイズが17バイトである場合、バッファのサイズは17バイトの整数倍に設定されてよく、例えば1700バイトであり得る。このように、バッファは整数の数の完全な測定対象情報を収容できる。
【０１３９】
現在の測定対象パケットが測定対象パケット1である場合、測定対象パケット1の測定対象情報がバッファに書き込まれる前に、バッファは空であってもよいし、バッファは別の測定対象パケットの測定対象情報を格納していてもよいことに留意されたい。
【０１４０】
103．パケット処理デバイスはバッファから測定対象情報を読み取る。
【０１４１】
ステップ102において測定対象パケット1の測定対象情報をバッファに書き込んだ後、パケット処理デバイスは、ステップ102においてバッファに書き込まれた測定対象パケット1の測定対象情報をバッファから読み取ることができる。
【０１４２】
測定対象パケット1の測定対象情報がバッファに書き込まれる前にバッファが空である場合、パケット処理デバイスは、測定対象パケット1の測定対象情報をバッファに書き込んだ後、測定対象パケット1の測定対象情報を直接読み取ってもよい。あるいは、測定対象パケット1がバッファに書き込まれる前にバッファが別の測定対象パケットの測定対象情報を格納している場合、測定対象パケット1の測定対象情報をバッファに書き込んだ後、パケット処理デバイスは、別の測定対象パケットの測定対象情報をまず読み取り、測定対象パケット1の測定対象情報を次いで読み取ることができる。
【０１４３】
例えば、一実装形態では、バッファにおけるデータ構造は具体的には先入れ先出しキューであり得る。このように、パケット処理デバイスは、測定対象パケットの測定対象情報がバッファに書き込まれる順に測定対象パケットを測定し得る。
【０１４４】
104．パケット処理デバイスは、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更し、aは正の整数である。
【０１４５】
第1の測定データは第1のアルゴリズムに対応している。第1の測定データは、第1のアルゴリズムに基づいて測定される少なくとも1つの測定対象パケットのトラフィック量を保存するために使用される。パケット処理デバイスが測定対象パケット1の測定対象情報をバッファから読み取った後、パケット処理デバイスは、第1のアルゴリズムならびに測定対象パケット1の測定対象情報にあるフロー識別子およびトラフィック量に基づいて、第1の測定データにおける測定対象パケット1に対応するa個のデータを変更することができる。
【０１４６】
105．バッファ内の占有記憶空間が事前設定閾値以上である場合、パケット処理デバイスは、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更し、wは正の整数であり、wはa未満である。
【０１４７】
第2の測定データは第2のアルゴリズムに対応している。第2の測定データは、第2のアルゴリズムに基づいて測定される少なくとも1つの測定対象パケットのトラフィック量を保存するために使用される。ステップ101の後、バッファ内の占有記憶空間が事前設定閾値以上である場合、すなわちバッファが比較的いっぱいである場合、パケット処理デバイスは、第2のアルゴリズムならびに測定対象パケット1の測定対象情報にあるフロー識別子およびトラフィック量に基づいて、第2の測定データにおける測定対象パケット1に対応するw個のデータを変更することができる。
【０１４８】
本出願の本実施形態では、wはa未満であることに留意されたい。具体的には、測定対象パケットを処理するために第2のアルゴリズムが使用される場合、第1のアルゴリズムが使用される場合よりも少ない個数だけ、測定データにおける測定対象パケットに対応するデータを変更すれば済む。したがって、第2のアルゴリズムを使用することにより測定対象パケットを処理することは、より高速かつ効率的であり、より小さいリソースオーバーヘッドをもたらす。したがって、本出願の本実施形態では、バッファおよび第1のアルゴリズムを使用することにより測定対象パケットを処理する方式は、低速チャネル処理方式と呼ばれ、第2のアルゴリズムを使用することにより測定対象パケットを処理する方式は、高速チャネル処理方式と呼ばれ得る。
【０１４９】
本出願の本実施形態における「測定対象パケットを処理すること」における「処理すること」は、測定対象パケットのフロー識別子に基づいて測定対象パケットのトラフィック量を収集または測定することであることに留意されたい。
【０１５０】
具体的には、本出願の本実施形態では、測定対象パケットが取得された後、バッファが完全にいっぱいでない場合、パケット処理デバイスは、第1のアルゴリズムに基づいて測定対象パケットを処理し得る。しかしながら、バッファが比較的いっぱいである場合、このことは、測定対象パケットが第1のアルゴリズムに基づいて処理されるときに測定対象パケットが蓄積され、その結果、測定対象パケットを処理するタスクが第1のアルゴリズムに基づいて適時完了できないことを意味し得る。この場合、パケット処理デバイスは、第1のアルゴリズムが測定対象パケットを処理するために継続的に使用されるために大量の測定対象パケットが蓄積するのを防ぐために、高速の第2のアルゴリズムに基づいて測定対象パケットを測定することができ、それにより、占有リソースの過剰なオーバーヘッドを回避し、パケット処理デバイスの正常なパケット転送サービスへの影響とネットワークスループットへの影響とを回避する。
【０１５１】
したがって、本出願の本実施形態において提供されるトラフィック測定方法によれば、第1のアルゴリズムに基づいて測定対象パケットを処理する際のパケット処理デバイスの負荷が比較的重いか否かを判定するために、バッファが比較的いっぱいであるか否かが判定され、その結果、第1のアルゴリズムに基づいて測定対象パケットを処理する際のパケット処理デバイスの負荷が比較的重い場合、パケット処理デバイスは、より高速な第2のアルゴリズムを使用することにより測定対象パケットを処理するように切り替え、これにより、正常なパケット転送サービスを確保し、ネットワークスループットを改善する。
【０１５２】
本出願の本実施形態では、図5を参照すると、バッファに対応するデータ構造はロックフリー循環キューであり得る。リーダ（ライタ）は、それぞれの読み取り（書き込み）場所を記録する。読み取り（書き込み）動作が完了するたびに、場所は1ビットずつ前方に移動する。別の形式のバッファでは、通常、ロックを保持する動作を実行でき、ロックを保持しない動作を実行できない。別の動作がロックを解除するまで動作を実行できない。したがって、通常、読み取り動作と書き込み動作とをバッファで同時に実行することはできない。しかしながら、本出願の本実施形態で提供される図5に示されるロックフリー循環キューでは、通常、読み取り動作と書き込み動作とは同時に実行することができ、読み取り動作と書き込み動作とは、読み取り場所と書き込み場所とが互いに比較的近い場合にのみ同時に実行することはできない。したがって、ロックフリーの循環キューを使用することは、処理効率を向上させることができる。
【０１５３】
本出願の本実施形態では、第1のアルゴリズムはハッシュ関数を含むことができ、第1の測定データはc個の場所におけるデータを含むことができ、ここでcは正の整数である。図6に示されるマッピング関係を参照すると、ステップ104において、パケット処理デバイスが、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更することは、以下のステップを含み得る。
【０１５４】
1041．パケット処理デバイスは、測定対象パケットのフロー識別子およびハッシュ関数に基づいて、c個の場所からu個の場所を判定し、uは正の整数であり、uはc以下である。
【０１５５】
1042．パケット処理デバイスは、測定対象パケットのトラフィック量に基づいて、u個の場所におけるa個のデータを変更する。
【０１５６】
本明細書では、uはa以下である。具体的には、u個の場所のそれぞれがa個のデータの少なくとも1つに対応し得る。
【０１５７】
本出願の本実施形態では、特定の実装形態は次のようになり得る、すなわち、ステップ104の第1のアルゴリズムに対応する第1の測定データにおけるa個のデータは、具体的にはa個のカウンタの値であり得、ステップ105の第2のアルゴリズムに対応する第2の測定データにおけるw個のデータは、具体的にはw個のカウンタの値であり得る。この場合、測定対象パケットの処理中に、第1のアルゴリズムを使用するにはa個のカウンタの値を更新する必要があり、第2のアルゴリズムを使用するにはw個のカウンタの値を更新する必要があり、wはa未満である。
【０１５８】
本出願の本実施形態における第1のアルゴリズムは、比較的高い測定精度を有するアルゴリズムであり得、例えばsketch−basedアルゴリズムであり得る。具体的には、複数のタイプのsketch−basedアルゴリズムがあり得、例えばFlowRadarアルゴリズム、RevSketchアルゴリズム、UnivMonアルゴリズム、Deltoidアルゴリズム、TwoLevelアルゴリズム、FMアルゴリズム、kMinアルゴリズム、LCアルゴリズム、およびMRACアルゴリズムがあり得る。このように、従来技術と比較して、本出願の本実施形態で提供されるトラフィック測定方法によれば、sketch−basedアルゴリズムを使用することにより測定対象パケットを処理するタスクを適時完了できないとバッファを使用することにより判定された場合、測定対象パケットはより高速な処理速度の第2のアルゴリズムを使用することにより処理され、それにより、大量の測定対象パケットが蓄積するのを防ぎ、ネットワークスループットを改善する。
【０１５９】
以下では説明のために、第1のアルゴリズムがsketch−basedアルゴリズムである例が使用される。
【０１６０】
第1のアルゴリズムがsketch−basedアルゴリズムである場合、第1の測定データはsketchデータ構造に対応し得る。sketchデータ構造の概略図については、図6を参照されたい。sketchデータ構造における第1の測定データは、行列形式で表され得る。sketch−basedアルゴリズムでは、測定対象パケットのフロー識別子が抽出され、ハッシュ結果を取得するために複数のハッシュ関数に基づいて測定対象パケットのフロー識別子に対して計算が実行され、複数のセルが行列から選択され、選択されたセルのそれぞれにおけるデータが測定対象パケットのトラフィック量に基づいて更新される。一実装形態では、行列内の各セルが1つまたは複数のカウンタを含む。通常、セルにおけるカウンタの初期値は、変更されない限り0であり得る。別の実装形態では、行列内の各セルは、例えば、ビットデータ構造またはキー値マッピング構造にあり得る。
【０１６１】
行列内の各セルが1つまたは複数のカウンタを含む場合、ステップ104でパケット処理デバイスによって変更されるa個のデータは、行列内の少なくとも1つのセルに対応するa個のカウンタの値であり得、aは通常は4以上である。
【０１６２】
加えて、本出願の本実施形態で提供される測定アルゴリズムでは、パケット処理デバイスにデプロイされた複数の第1のアルゴリズムがあり得、すなわち、複数のsketch−basedアルゴリズムがパケット処理デバイスに同時にデプロイされ得、各sketch−basedアルゴリズムが1つのsketchデータ構造に対応しているため、1つの第1の測定データに対応している。ステップ104において、sketch−basedアルゴリズムごとに、パケット処理デバイスは、このsketch−basedアルゴリズムに対応する第1の測定データにおけるa個のデータを個別に変更することができる。異なるsketch−basedアルゴリズムは、aの異なる特定の値に対応し得る。
【０１６３】
さらに、図7を参照すると、ステップ103の後、トラフィック測定方法は以下のステップを含み得る。
【０１６４】
106．パケット処理デバイスは、測定対象パケットの測定対象情報をバッファから削除する。
【０１６５】
測定対象パケットの測定対象情報を読み取った後、パケット処理デバイスは、新しく取得された別の測定対象パケットの測定対象情報を書き込むために記憶空間を解放するために、測定対象パケットの測定対象情報をバッファから削除し得る。
【０１６６】
本出願の本実施形態では、第2の測定データはフローテーブルに対応し、フローテーブルはパケット処理デバイスに格納され、第2の測定データはフローテーブルにおけるデータを含み得る。例えば、フローテーブルに対応するデータ構造は、具体的にはハッシュテーブルまたはバイナリツリーであり得る。フローテーブルにより占有される記憶空間は比較的小さく、例えば数キロバイトであり得る。
【０１６７】
ある場合では、フローテーブルは、フロー識別子と第1のデータrとの間の対応関係を含む、すなわち、フロー識別子に対応するデータフローと第1のデータrとの間の対応関係を含む。ステップ105において、パケット処理デバイスが、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更することは、以下のステップを特に含み得る。
【０１６８】
1051．パケット処理デバイスは、測定対象情報および第2のアルゴリズムに基づいて、測定対象パケットに対応し、かつ第2の測定データにある第1のデータrfを変更する。
【０１６９】
この場合、第2の測定データは、フロー識別子と第1のデータrとの間の対応関係を含む。パケット処理デバイスは、測定対象情報における測定対象パケットのフロー識別子および第2のアルゴリズムに基づいて、測定対象パケットのフロー識別子fに対応する第1のデータrを判定することができ、測定対象情報における測定対象パケットのトラフィック量に基づいて、第1のデータrを変更する。この場合、wは1であり得る。具体的には、パケット処理デバイスは、1つのデータ、すなわち、測定対象パケットに対応し、かつ第2の測定データにある第1のデータrfを変更する。
【０１７０】
フローテーブルはカウンタを含むことができ、測定対象パケットに対応する第1のデータrfは、具体的にはカウンタの値であり得る。具体的には、パケット処理デバイスは、1つのカウンタの値を更新できる。この場合、wは1である。
【０１７１】
具体的には、ステップ1051は次のステップを含み得る。
【０１７２】
1052．フローテーブルが測定対象パケットのフロー識別子fを含む場合、測定対象パケットに対応し、かつフローテーブルにある第1のデータrfを、測定対象パケットに対応する第1のデータrfと測定対象パケットのトラフィック量との和に更新する。
【０１７３】
測定対象パケットのフロー識別子fがフローテーブルに既に存在し、測定対象パケットに対応するフロー識別子fと測定対象パケットに対応する第1のデータrfとの間の対応関係もフローテーブルに存在する場合、パケット処理デバイスは、測定対象パケットに対応する第1のデータrfを、測定対象パケットに対応する第1のデータrfと測定対象パケットのトラフィック量との和に更新し得る。したがって、1つのデータのみ、すなわち測定対象パケットに対応する第1のデータrfのみが、測定対象パケットの処理中に変更される。
【０１７４】
別の例では、フローテーブルは、フロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含む、すなわち、フロー識別子に対応するデータフローと第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含む。フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいである場合、パケット処理デバイスは、比較的小さいトラフィック量を有するデータフローに対応するフロー識別子、第1のデータr、および第2のデータdをフローテーブルから削除し得る。具体的には、ステップ105の前に、本方法は以下のステップをさらに含み得る。
【０１７５】
201．パケット処理デバイスはデクリメント値
【数３２】
2020529171.tif 000034
を計算する。
【０１７６】
202．パケット処理デバイスは、フローテーブルに含まれる各フロー識別子に対応する第1のデータrを、第1のデータrとデクリメント値
【数３３】
2020529171.tif 000035
との差に更新する。
【０１７７】
203．パケット処理デバイスは、フローテーブルに含まれる各フロー識別子に対応する第2のデータdを、第2のデータdとデクリメント値
【数３４】
2020529171.tif 000036
との和に更新する。
【０１７８】
204．パケット処理デバイスは、第1の事前設定条件を満たすフロー識別子と、第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を削除する。
【０１７９】
第1の事前設定条件を満たすフロー識別子は、対応する更新された第1のデータrが0以下であるフロー識別子である。
【０１８０】
ステップ201から204に対応する動作は削除動作と呼ばれ得る。削除動作により一部のトラフィック情報が失われる。削除動作において、パケット処理デバイスは、対応する第1のデータrがデクリメント値
【数３５】
2020529171.tif 000037
未満であるデータフローに対応するフロー識別子、第1のデータr、および第2のデータdを削除し得る。換言すれば、パケット処理デバイスは、第1のデータrが比較的小さいデータフローをフローテーブルから削除し、その結果、フローテーブルは、第1のデータrが比較的大きいデータフローに対応するフロー識別子を保存できる。
【０１８１】
さらに、フローテーブルは、フロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み得る。フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいである場合、ステップ201から204に基づいて、ステップ105は以下のステップを特に含み得る。
【０１８２】
1053．測定対象パケットのトラフィック量がデクリメント値
【数３６】
2020529171.tif 000038
よりも大きい場合、パケット処理デバイスは、測定対象パケットのトラフィック量とデクリメント値
【数３７】
2020529171.tif 000039
との差を、測定対象パケットに対応する第1のデータrfに設定する。
【０１８３】
1054．パケット処理デバイスは、デクリメント値
【数３８】
2020529171.tif 000040
を、測定対象パケットに対応する第2のデータdfに設定する。
【０１８４】
1055．パケット処理デバイスは、総デクリメントトラフィック量Eを、測定対象パケットに対応する第3のデータefに設定する。
【０１８５】
1056．パケット処理デバイスは、測定対象パケットのフロー識別子fと測定対象パケットに対応する第1のデータrf、測定対象パケットに対応する第2のデータdf、および測定対象パケットに対応する第3のデータefのそれぞれとの間の対応関係をフローテーブルに挿入する。
【０１８６】
測定対象パケットのトラフィック量がデクリメント値
【数３９】
2020529171.tif 000041
よりも大きい場合、このことは、測定対象パケットのデータフローのトラフィック量が比較的大きいことを示すことができ、データフローに対応するフロー識別子、第1のデータr、および第2のデータdがフローテーブルに保存され得る。したがって、測定対象パケットのフロー識別子fと測定対象パケットに対応する第1のデータrf、測定対象パケットに対応する第2のデータdf、および測定対象パケットに対応する第3のデータefのそれぞれとの間の対応関係がフローテーブルに挿入され得る。
【０１８７】
この場合、パケット処理デバイスは、ステップ105において測定対象パケットに対応する第1のデータrf、第2のデータdf、および第3のデータefを変更することができる、すなわちw＝3個のデータを変更する必要がある。
【０１８８】
本出願の本実施形態では、第1のデータrは、削除動作後の対応するデータフローの残りのトラフィック量として理解され得る。削除動作がゼロ回実行される場合、第1のデータrは測定対象パケットのトラフィック量であり得、測定対象パケットに対応するデータフローのフロー識別子は第1のデータrに対応する。第2のデータdは、削除動作中の対応するデータフローの失われたトラフィック量として理解され得る。第3のデータeは、対応するフロー識別子が今回フローテーブルに挿入される前の最大トラフィック損失の推定値として理解され得る。
【０１８９】
ステップ1055において、パケット処理デバイスは、総デクリメントトラフィック量Eを、測定対象パケットに対応する第3のデータefに設定する。具体的には、フロー識別子fのフローテーブルへの挿入中、フロー識別子fが今回フローテーブルに挿入される前の最大トラフィック損失の推定値は、総デクリメントトラフィック量Eである。
【０１９０】
ステップ201から204およびステップ1056の後、本方法は以下のステップをさらに含み得る。
【０１９１】
205．パケット処理デバイスは、総デクリメントトラフィック量Eを、総デクリメントトラフィック量Eとデクリメント値
【数４０】
2020529171.tif 000042
との和に更新する。
【０１９２】
削除動作を実行した後、パケット処理デバイスは、デクリメント値
【数４１】
2020529171.tif 000043
を総デクリメントトラフィック量Eにさらに加え、その結果、次回のフロー識別子のフローテーブルへの挿入中、フロー識別子に対応する第3のデータeは、総デクリメントトラフィック量Eに設定され得る。総デクリメントトラフィック量Eは、具体的にはカウンタの値であり得る。
【０１９３】
具体的には、総デクリメントトラフィック量Eは、パケット処理デバイスが削除動作を実行するたびに失われるデクリメント値
【数４２】
2020529171.tif 000044
の和である。フロー識別子fのフローテーブルへの挿入中、フロー識別子fが今回フローテーブルに挿入される前の最大トラフィック損失の推定値は、パケット処理デバイスが削除動作を実行するたびに失われるデクリメント値
【数４３】
2020529171.tif 000045
の和である。
【０１９４】
ステップ201において、パケット処理デバイスがデクリメント値
【数４４】
2020529171.tif 000046
を計算することは、以下のステップを含み得る。
【０１９５】
2011．パケット処理デバイスは、測定対象パケットのトラフィック量およびフローテーブルに含まれるフロー識別子に対応する第1のデータrを値の順に並べ替え、並べ替えた後の最初の2つの値をR1およびR2として、また並べ替えた後の最後の値をRkとして示す。
【０１９６】
2012．パケット処理デバイスは、デクリメント値
【数４５】
2020529171.tif 000047
をR1、R2、Rk、および次の式
【数４６】
2020529171.tif 000048
に基づいて計算し、
【数４７】
2020529171.tif 000049
【数４８】
2020529171.tif 000050
であり、δは定数を表す。
【０１９７】
ステップ2011および2012の主な原則は、フローテーブルにおけるすべての第1のデータrの値をフィッティングすることによりロングテール分布を取得し、フィッティングにより取得された分布からロングテール部分を、閾値（つまり、デクリメント値
【数４９】
2020529171.tif 000051
）を選択することにより削除することである。
【０１９８】
別の場合では、フローテーブルが測定対象パケットのフロー識別子fを含まず、かつフローテーブルがいっぱいではない場合、ステップ105において、パケット処理デバイスが、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更することは、以下のステップを含み得る。
【０１９９】
1057．パケット処理デバイスは、測定対象パケットのトラフィック量を、測定対象パケットに対応する第1のデータrfに設定する。
【０２００】
1058．パケット処理デバイスは、総デクリメントトラフィック量Eを、測定対象パケットに対応する第3のデータefに設定する。
【０２０１】
1059．パケット処理デバイスは、測定対象パケットのフロー識別子fと測定対象パケットに対応する第1のデータrfおよび測定対象パケットに対応する第3のデータefのそれぞれとの間の対応関係をフローテーブルに挿入する。
【０２０２】
この場合、パケット処理デバイスは、2つのデータ、すなわち測定対象パケットに対応する第1のデータrfおよび第3のデータefを変更することができ、つまりw＝2である。加えて、パケット処理デバイスは、測定対象パケットのフロー識別子fと測定対象パケットに対応する第1のデータrfおよび測定対象パケットに対応する第3のデータefのそれぞれとの間の対応関係をフローテーブルに挿入する。
【０２０３】
加えて、本出願の本実施形態では、図8を参照すると、フローテーブルはエントリを特に含むことができ、エントリは、フロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み得る。加えて、エントリ内の第1のデータr、第2のデータd、および第3のデータeは、具体的にはそれぞれ3つのカウンタの値であり得る。具体的には、各測定対象パケットについて、パケット処理デバイスは、第2のアルゴリズムに基づいて、1つのカウンタの値（r）、2つのカウンタの値（eおよびr）、または3つのカウンタの値（e、r、およびd）を変更し得る。通常、フローテーブルにおけるカウンタの初期値は0に設定され得る。
【０２０４】
ステップ105の具体的な実施プロセスについては、図9を参照されたい。
【０２０５】
さらに、第2の測定データは、ローカルな総トラフィック量を含み得る。図7と参照すると、バッファ内の占有記憶空間が事前設定閾値以上である場合、本方法は以下のステップをさらに含み得る。
【０２０６】
107．パケット処理デバイスは、ローカルな総トラフィック量を、ローカルな総トラフィック量と測定対象パケットのトラフィック量との和に更新する。
【０２０７】
本出願の本実施形態では、パケット処理デバイスは、各測定対象パケットの取得されたトラフィック量をローカルな総トラフィック量に加えることができる。具体的には、ローカルな総トラフィック量は、第2のアルゴリズムに基づいて測定される必要があるトラフィック量、つまり高速チャネルに入る総トラフィック量として理解され得る。具体的には、ローカルな総トラフィック量はまたカウンタの値であり得る。
【０２０８】
ステップ107とステップ105との間に特定の順序関係はない。つまり、ステップ107は、ステップ105の前であってもステップ105の後であってもよい。
【０２０９】
本出願の上述の実施形態で提供される第2のアルゴリズムの内容は、ステップ105、ステップ1051から1059、ステップ201から205、ステップ2011および2012、ならびにステップ107の対応する内容を特に含み得ることに留意されたい。
【０２１０】
加えて、従来技術の測定方法が使用される場合に、各パケットが4つのsketch−basedアルゴリズム、すなわちFlowRadarアルゴリズム、RevSketchアルゴリズム、UnivMonアルゴリズム、およびDeltoidアルゴリズムにより処理されるときに使用される対応する中央処理装置（central processing unit、CPU）クロックサイクルを示す実験データが図10に示され得る。sketch−basedアルゴリズムを使用することにより1つのパケットを処理することは、数千の、または数万にもなるCPUクロックサイクルに対応することが図10からわかる。しかしながら、本出願の本実施形態において提供される第2のアルゴリズムを使用することにより、1つのパケットを処理するのに必要とされるのは数十のCPUクロックサイクルだけである。本出願で提供される第2のアルゴリズムの処理効率がより高いことがわかる。本出願の本実施形態では、sketch−basedアルゴリズムと第2のアルゴリズムとの間で切り替えが実行され、それにより、リソースオーバーヘッドを低減し、パケット処理デバイスの全体的な処理効率を改善する。
【０２１１】
本出願の本実施形態では、データフローを識別するために使用され、かつ測定対象パケットに対応するフロー識別子は、複数の特定の形式にあり得る。例えば、フロー識別子は5タプルであってよく、5タプルは、送信元インターネットプロトコルIPアドレスと、送信元ポートと、宛先IPアドレスと、宛先ポートと、トランスポート層プロトコルとを含む。あるいは、フロー識別子は2タプルであり、2タプルは送信元IPアドレスと宛先IPアドレスとを含む。あるいは、測定対象パケットがIPパケットである場合、フロー識別子はTOSフィールドの最初の3文字であり得る。あるいは、測定対象パケットがマルチプロトコル・ラベル・スイッチング（multi−protocol label switching、MPLS）パケットである場合、フロー識別子はEXPフィールドであり得る。あるいは、フロー識別子はイーサネット送信元アドレスとイーサネット宛先アドレスとを含み得る。
【０２１２】
さらに、ステップ105の後、図11を参照すると、本出願の本実施形態において提供されるトラフィック測定方法は、以下のステップをさらに含み得る。
【０２１３】
108．パケット処理デバイスは、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信し、第1の測定データおよび／または第2の測定データが、目的の測定データを計算するためにネットワークコントローラによって使用される。
【０２１４】
パケット処理デバイスは、第1の測定データおよび／または第2の測定データをネットワークコントローラに報告することができ、その結果、ネットワークコントローラは、トラフィックに関する統計値を収集したり、ネットワーク管理を実行したりなどするために、第1の測定データおよび／または第2の測定データに基づいて目的の測定データを計算することができる。
【０２１５】
具体的には、可能な実装形態では、ステップ108は以下のステップを含み得る。
【０２１６】
1081．パケット処理デバイスは、事前設定期間に基づいて、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信する。
【０２１７】
本実装形態では、報告期間が到来すると、パケット処理デバイスは、取得した第1の測定データおよび／または第2の測定データをネットワークコントローラに報告することができる。
【０２１８】
別の可能な実装形態では、ステップ108は以下のステップを含み得る。
【０２１９】
1082．パケット処理デバイスは、ネットワークコントローラによって送信された測定データ要求メッセージを受信する。
【０２２０】
1083．パケット処理デバイスは、測定データ要求メッセージに応じて、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信する。
【０２２１】
本実装形態では、パケット処理デバイスは、ネットワークコントローラによって送信された測定データ要求メッセージを受信した後に、取得した第1の測定データおよび／または第2の測定データをネットワークコントローラに報告することができる。
【０２２２】
具体的には、第1の測定データは第1のアルゴリズムおよび低速チャネルに対応し、第2の測定データは第2のアルゴリズムおよび高速チャネルに対応する。パケット処理デバイスが、測定データが最後に報告された後に第1のアルゴリズムのみに基づいて測定対象パケットを処理する場合、パケット処理デバイスは第1の測定データのみを報告する。パケット処理デバイスが、測定データが最後に報告された後に第2のアルゴリズムのみに基づいて測定対象パケットを処理する場合、パケット処理デバイスは第2の測定データのみを報告する。パケット処理デバイスが、測定データが最後に報告された後に、第1のアルゴリズムおよび第2のアルゴリズムに基づいて測定対象パケットを処理する場合、パケット処理デバイスは第1の測定データおよび第2の測定データの両方を報告する。換言すれば、パケット処理デバイスは、報告の各時点で第1の測定データおよび第2の測定データの少なくとも一方を報告することができる。
【０２２３】
さらに、ステップ108の後、パケット処理デバイスは、今回報告された第1の測定データおよび／または第2の測定データをさらに削除し得る。例えば、第1の測定データがsketchデータ構造に対応する行列内のデータであり、第2の測定データがフローテーブル内のデータであり、行列セルおよびフローテーブルがそれぞれ1つまたは複数のカウンタを含む場合、第1の測定データおよび／または第2の測定データを周期的に報告した後、パケット処理デバイスは、行列セルおよびフローテーブル内のカウンタの値、ならびにローカルな総トラフィック量に対応するカウンタの値を初期値にさらにリセットすることができ、例えば、第1の測定データおよび／または第2の測定データを削除するために、すべての値を0にリセットすることができる。加えて、総デクリメントトラフィック量Eのカウンタの値も初期値にリセットされ得る。
【０２２４】
あるいは、ステップ108の後、パケット処理デバイスは、第1の測定データおよび／または第2の測定データを削除しないが、今回報告された第1の測定データおよび／または第2の測定データを記録してもよく、その結果、次回の報告時に、パケット処理デバイスは、新しい第1の測定データおよび／または第2の測定データ、ならびに今回報告された第1の測定データおよび／または第2の測定データに基づいて、2つの報告期間中に実際のトラフィック値を取得することができる。あるいは、ネットワークコントローラは、パケット処理デバイスによって2回報告された第1の測定データおよび／または第2の測定データに基づいて、2つの報告期間中に実際のトラフィック値を取得することができる。
【０２２５】
上述のプロセスは、例として図2に示されるアーキテクチャにおける1つのパケット処理デバイスを使用することによって説明されていることに留意されたい。図2に示されるアーキテクチャにおける別のパケット処理デバイスの処理プロセスは、上述のプロセスと同様である。つまり、複数のパケット処理デバイスはそれぞれ、第1の測定データおよび／または第2の測定データをネットワークプロセッサに送信することができる。
【０２２６】
複数のパケット処理デバイスの報告プロセスに対応して、ネットワークコントローラは、複数のパケット処理デバイスによって送信された第1の測定データおよび／または第2の測定データを受信し得る。これは、次のステップを特に含み得る。
【０２２７】
109．ネットワークコントローラは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信し、第1の測定データが第1のアルゴリズムに基づいて取得され、第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である。
【０２２８】
ここで、m個のパケット処理デバイスおよびn個のパケット処理デバイスは、図2に示されるアーキテクチャにおけるパケット処理デバイスであり、m個のパケット処理デバイスとn個のパケット処理デバイスとは、異なるパケット処理デバイスであってもよいし、同じパケット処理デバイスであってもよいし、部分的に重複してもよい。例えば、ここでのm個のパケット処理デバイスは、パケット処理デバイス1およびパケット処理デバイス2であってもよく、ここでのn個のパケット処理デバイスは、パケット処理デバイス3およびパケット処理デバイス4であってもよい。別の例として、ここでのm個のパケット処理デバイスは、パケット処理デバイス1およびパケット処理デバイス2であってもよく、ここでのn個のパケット処理デバイスは、パケット処理デバイス2、パケット処理デバイス3、およびパケット処理デバイス4であってもよい。別の例として、ここで、m＝nであり、m個のパケット処理デバイスおよびn個のパケット処理デバイスの両方ともパケット処理デバイス1、パケット処理デバイス2、パケット処理デバイス3、およびパケット処理デバイス4である。
【０２２９】
図2に示されるアーキテクチャにおける各パケット処理デバイスは、第1の測定データおよび第2の測定データの少なくとも一方をネットワークコントローラに報告することができ、これは、2つの報告期間中にパケット処理デバイスが、第1の測定データを更新するために第1のアルゴリズムのみに基づいて測定対象パケットを処理するため、または第2の測定データを更新するために第2のアルゴリズムのみに基づいて測定対象パケットを処理するため、または第1のアルゴリズムおよび第2のアルゴリズムに基づいて第1の測定データおよび第2の測定データの両方を更新するためである。
【０２３０】
具体的には、図2に示されるアーキテクチャにおけるすべてのパケット処理デバイスが第1の測定データおよび第2の測定データをネットワークコントローラに報告できる、または図2に示されるアーキテクチャにおけるいくつかのパケット処理デバイスが第1の測定データをネットワークコントローラに報告でき、図2に示されるアーキテクチャにおけるいくつかのパケット処理デバイスが第2の測定データをネットワークコントローラに報告できる。図2に示されるアーキテクチャにおけるすべてのパケット処理デバイスが第1の測定データのみをネットワークコントローラに報告する場合、nは0であり得る。図2に示されるアーキテクチャにおけるすべてのパケット処理デバイスが第2の測定データのみをネットワークコントローラに報告する場合、mは0であり得る。
【０２３１】
110．ネットワークコントローラは、グローバルな第1の測定データを取得するためにm個の第1の測定データを組み合わせる。
【０２３２】
m個のパケット処理デバイスによって報告されたm個の第1の測定データを受信した後、ネットワークコントローラは、グローバルな第1の測定データと呼ばれる第1の測定データの合計を取得するために、m個の第1の測定データを組み合わせることができる。
【０２３３】
111．ネットワークコントローラは、グローバルな第2の測定データを取得するためにn個の第2の測定データを組み合わせる。
【０２３４】
n個のパケット処理デバイスによって報告されたn個の第2の測定データを受信した後、ネットワークコントローラは、グローバルな第2の測定データと呼ばれる第2の測定データの合計を取得するために、n個の第2の測定データを組み合わせることができる。
【０２３５】
112．ネットワークコントローラは、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算する。
【０２３６】
グローバルな第1の測定データおよびグローバルな第2の測定データを取得した後、ネットワークコントローラは、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算し得る。
【０２３７】
このように、ネットワークコントローラは、パケット処理デバイスによって報告された第1の測定データおよび第2の測定データに基づいて、ネットワーク内のトラフィックデータに関する統計値、すなわち目的の測定データを包括的に収集できる。
【０２３８】
ステップ112において計算された目的の測定データは、グローバルな第1の測定データと同じデータ構造を有し得る。具体的には、ネットワークコントローラによって取得された目的の測定データ、第1のアルゴリズムに基づいて取得された第1の測定データ、およびグローバルな第1の測定データは同じデータ構造を有する。ネットワークコントローラは、第2のアルゴリズムの削除動作で失われたトラフィック情報を回復するために、第2のアルゴリズムに基づいて取得されたグローバルな第2の測定データをグローバルな第1の測定データの形式に変換し、その結果、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて取得された目的の測定データは、第1のアルゴリズムに対応する測定精度と同等の測定精度を有することができると理解できる。
【０２３９】
したがって、本出願の本実施形態において提供される測定方法では、第1のアルゴリズムに基づく測定対象パケットの処理の負荷が比較的大きい場合、より高速な処理速度の第2のアルゴリズムに基づく処理への切り替えがバッファを使用することにより実行され、それによりネットワークスループットを改善し得る。加えて、第1のアルゴリズムおよび第2のアルゴリズムに基づいて取得された目的の測定データは、第1のアルゴリズムに基づいて取得された第1の測定データと同じデータ構造を有し、それにより、第1のアルゴリズムに対応する測定精度と同等の比較的高い測定精度を維持することができる。
【０２４０】
例えば、第1のアルゴリズムはsketch−basedアルゴリズムであり、第1の測定データはsketchデータ構造であり、第2の測定データはハッシュテーブル構造である。この場合、グローバルな第1の測定データもsketchデータ構造であり、グローバルな第2の測定データもハッシュテーブル構造であり、計算によって取得された目的の測定データはsketchデータ構造である。
【０２４１】
具体的には、ステップ1081から1083の送信方式に対応して、ステップ109は次のステップを特に含み得る。
【０２４２】
1091．ネットワークコントローラは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを周期的に受信する。
【０２４３】
あるいは、別の実装形態では、ステップ109の前に、本方法は以下のステップをさらに含み得る。
【０２４４】
1092．ネットワークコントローラは、測定データ要求メッセージを各パケット処理デバイスに送信する。
【０２４５】
ステップ1092において、ネットワークコントローラは、図2に示されるアーキテクチャにおける各パケット処理デバイスに測定データ要求メッセージを実際に送信することができる。図2に示されるアーキテクチャがA個のパケット処理デバイスを含むとき、Aはmとnとの和以下である。
【０２４６】
本出願の本実施形態では、第1の測定データのそれぞれがp行q列の要素を含む場合、ステップ110は以下のステップを特に含み得る。
【０２４７】
1100．ネットワークコントローラは、グローバルな第1の測定データを取得するために、m個の第1の測定データのものであり、かつ対応する場所にある各m個の要素を組み合わせ、グローバルな第1の測定データがp行q列の要素を含む。
【０２４８】
グローバルな第1の測定データは、m個の第1の測定データのそれぞれと同じデータ構造および同じ量の要素を有する。ネットワークコントローラは、グローバルな第1の測定データを取得するために、p×q個の場所のそれぞれに対応するm個の第1の測定データであるm個の要素を単に加える。p行q列の要素はp×q行列として理解され、組み合わせプロセスは行列加算として理解され得る。本明細書における要素は場所に対応し、各場所に対応する要素は、1つまたは複数のデータを特に含み得ることに留意されたい。例えば、第1の測定データのデータ構造が図6に示されるsketchデータ構造である場合、第1の測定データは4×5行列として表され、各セルのデータは1つの要素を参照し、各セルは複数のデータを含み得る。
【０２４９】
本出願の本実施形態では、第2の測定データのそれぞれがローカルな総トラフィック量およびフローテーブルを含む。フローテーブルが少なくとも1つのエントリを含み、かつエントリがフロー識別子と1対1の対応関係にある場合、ステップ111は次のステップを特に含み得る。
【０２５０】
1111．ネットワークコントローラは、グローバルな総トラフィック量を取得するために、n個の第2の測定データにおけるn個のローカルな総トラフィック量を加える。
【０２５１】
1112．ネットワークコントローラは、グローバルなフローテーブルを取得するためにn個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせ、グローバルなフローテーブルにおいて、フロー識別子はエントリと1対1の対応関係にある。
【０２５２】
1113．ネットワークコントローラによって取得されたグローバルな総トラフィック量およびグローバルなフローテーブルは、グローバルな第2の測定データである。
【０２５３】
ステップ1112において、エントリは、フロー識別子とフロー識別子に対応するトラフィックデータとを特に含むことができ、n個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせるステップは以下のステップを含む。
【０２５４】
301．n個の第2の測定データに対応するn個のフローテーブルのエントリにおいて、同じフロー識別子を有する複数のエントリについて、ネットワークコントローラは、複数のエントリをグローバルなフローテーブルの1つのエントリに組み合わせるために、複数のエントリにおけるトラフィックデータを加える。
【０２５５】
302．ネットワークコントローラは、グローバルなフローテーブルの1つのエントリとして、異なるフロー識別子を有するエントリのそれぞれを使用する。
【０２５６】
例えば、次の表1を参照すると、フローテーブル1がエントリ1およびエントリ2を含む場合、エントリ1はフロー識別子1に対応し、エントリ2はフロー識別子2に対応し、フローテーブル2がエントリ3およびエントリ4を含み、エントリ3はフロー識別子2に対応し、エントリ4はフロー識別子3に対応し、エントリ2およびエントリ3は同じフロー識別子2に対応する。したがって、組み合わされたグローバルなフローテーブルでは、エントリ2およびエントリ3が1つのエントリに組み合わされ、エントリ1およびエントリ4はそれぞれグローバルなフローテーブルの1つのエントリである。
【０２５７】
【表１】
2020529171.tif 000052
【０２５８】
本出願の本実施形態は、パケット処理デバイスに1つの第1のアルゴリズムのみがデプロイされる例を使用することにより説明されていることに留意されたい。複数の第1のアルゴリズムがパケット処理デバイスにデプロイされる場合、各第1のアルゴリズムは1つの第1の測定データに対応し、したがって1つのグローバルな第1の測定データに対応する。したがって、ネットワークコントローラは、複数の第1のアルゴリズムに基づいて複数のグローバルな第1の測定データを取得することができ、複数の目的の測定データを取得するために、複数のグローバルな第1の測定データのそれぞれをグローバルな第2の測定データと組み合わせることができる。
【０２５９】
本出願の本実施形態では、グローバルな第1の測定データおよびグローバルな第2の測定データを取得した後、ネットワークコントローラは、圧縮センシングベースの最適化問題を構築することにより、第1の測定データと同じデータ構造を有する目的の測定データを取得し得る。具体的には、ステップ112は次のステップを含み得る。
【０２６０】
1121．ネットワークコントローラは、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて、最適化目的関数を構築する。
【０２６１】
1122．ネットワークコントローラは、凸最適化アルゴリズムおよび最適化目的関数に基づいて目的の測定データを計算する。
【０２６２】
最適化目的関数の式が、
minimize
【数５０】
2020529171.tif 000053
であり、
最適化目的関数が次の制約、すなわち、
制約1：T＝N＋sk（x＋y）、
制約2：｜x｜1＋｜y｜1＝V、および
制約3：∀s∈H、rs＋ds≦xs≦rs＋ds＋esを満たし、
「minimize」は最適化目的関数を最小化する独立変数値の計算を表し、Tは目的の測定データを表し、Nはグローバルなフローテーブルを表し、Vはグローバルな総トラフィック量を表し、Hはグローバルな第1の測定データを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xsはフロー識別子sに対応するデータフローのトラフィック量を表し、yは、Hに含まれないデータフローのものであり、かつ第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量にあるトラフィック量を表し、x＋yは第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量を表し、sk（x＋y）は入力としてx＋yを使用することにより、また第1のアルゴリズムを呼び出すことにより取得された結果を表し、rsは、フロー識別子sに対応する第1のデータrを表し、dsは、フロー識別子sに対応する第2のデータdを表し、esは、フロー識別子sに対応する第3のデータeを表し、
｜T｜＊は、Tの核型ノルムを表し、かつ行列のすべての特異値の和として定義され、｜x｜1は、ベクトルxのL1ノルムを表し、かつxのすべてのデータの絶対値の和として定義され、
【数５１】
2020529171.tif 000054
は、ベクトルyのフロベニウスノルムを表し、かつxのすべてのデータの二乗和として定義され、
α、β、およびγの計算式はそれぞれ、
【数５２】
2020529171.tif 000055
【数５３】
2020529171.tif 000056
および
γ＝10σyであり、
PNおよびQNはそれぞれ行列Nの長さおよび幅を表し、η（N）はNのデータの平均を表し、mxおよびnxはそれぞれベクトルxの長さおよび幅を表し、σyはyのすべてのデータの標準偏差を表す。
【０２６３】
ここで、xおよびyはベクトルとして表されてもよく、ベクトルの第iのデータはフロー識別子iのトラフィック量である。フロー識別子iがxまたはyにない場合、第iのデータx［i］またはy［i］は0である。例えば、フロー識別子が5タプルの場合、合計2104の異なる5タプルの可能性があり、グローバルなフローテーブルNは合計2104個のデータを有し、mxおよびnxの値はそれぞれ2104と1であり、xおよびyは両方とも長さが2104の5タプルベクトルである。
【０２６４】
ここでは、複数の凸最適化アルゴリズムがある。例えば、凸最適化アルゴリズムは、内点法、交互方向乗数法ADMM、または劣勾配法であり得る。
【０２６５】
一般的な凸最適化問題に対する閉形式の解はない、つまり、出力と入力との間の関数関係の式を明示的に与えることはできない。したがって、ステップ1121および1122では、予想されるグローバルな最適解の代わりに使用するために、制約規則に基づいて特定の範囲内で探索することにより、近似的な局所最適解を見つけるための近似法が使用され得る。
【０２６６】
sk（x＋y）は入力としてx＋yを使用することにより、また第1のアルゴリズムを呼び出すことにより取得された結果を表す。したがって、sk（x＋y）は、第1のアルゴリズムに基づいて取得されたグローバルな第1の測定データNと同じデータ構造を持ち、sk（x＋y）、N、およびこれら2つの和、すなわち目的の測定関数も同じデータ構造を有する。このように、計算された目的の測定データは、第1のアルゴリズムの精度と同等の高い精度によって特徴付けられる。
【０２６７】
目的の測定データが取得された後、目的の測定データは、ネットワーク例外検出、ネットワークトラフィック分布統計値、ネットワークトモグラフィ、分散型サービス妨害（distributed denial of service、DDoS）攻撃検出などのうちの少なくとも1つに使用され得る。異なる第1のアルゴリズムでは、計算された目的の測定データの機能も異なり得る。例えば、第1のアルゴリズムがDeltoid、RevSketch、またはFlowRadarである場合、計算された目的の測定データはエレファントフロー検出に使用され、第1のアルゴリズムがTwoLevelである場合、計算された目的の測定データはDDoS検出に使用され、第1のアルゴリズムがLC、kMin、またはFMの場合、計算された目的の測定データはフロー量統計に使用され得る、などである。
【０２６８】
さらに、本出願の本実施形態では、ステップ101で取得された測定対象パケットのフロー識別子は、目的のフロー識別子であり得る。換言すれば、測定対象パケットは、目的のフロー識別子を有するパケットである。パケット処理デバイスが複数のパケットを受信する場合、目的のフロー識別子を有するパケットが測定対象パケットであり、目的のフロー識別子を持たないパケットのトラフィックは測定されない。したがって、図12を参照すると、ステップ101の前に、本方法は以下のステップをさらに含み得る。
【０２６９】
113．ネットワークコントローラは、各パケット処理デバイスに命令メッセージを送信し、命令メッセージは、測定対象パケット処理デバイスに対応する目的のフロー識別子を運ぶ。
【０２７０】
114．パケット処理デバイスは、ネットワークコントローラによって送信された命令メッセージを受信し、命令メッセージは目的のフロー識別子を含む。
【０２７１】
具体的には、ネットワークコントローラは、パケット処理デバイスが目的のフロー識別子に対応するパケットのトラフィック量を測定および報告することを規定するために、目的のフロー識別子を送信し得る。
【０２７２】
加えて、ネットワークコントローラは、構成ポリシーを使用することによりパケット処理デバイスと目的のフロー識別子との間の対応関係を事前構成することができ、その結果、ネットワーク内の1つのパケットのトラフィック量が、複数のパケット処理デバイスによって測定および報告される代わりに、ネットワーク内の1つのパケット処理デバイスのみによって測定および報告される。したがって、ネットワーク内のパケット処理デバイスによって測定されたパケットは互いに重複せず、これにより、測定の繰り返しを避け、正確なネットワークトラフィックの測定を実現する。
【０２７３】
例えば、測定対象パケット処理デバイスが目的のフロー識別子に対応するということは以下を含み得る、すなわち、測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローのラストホップデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローのファーストホップデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローの受信エンドデバイスである、または測定対象パケット処理デバイスが目的のフロー識別子に対応するデータフローの送信エンドデバイスであることを含み得る。当然のことながら、パケット処理デバイスと目的のフロー識別子との間には別の対応関係もあるが、ここでは細部を繰り返し説明しない。
【０２７４】
加えて、本出願の本実施形態の特定の実装形態では、図2に示されるネットワークシステムはSDNネットワークであり得、ネットワークコントローラはSDNネットワーク内のSDNコントローラであり得、パケット処理デバイスはSDNソフトウェアスイッチと共に配置されたSDNネットワーク内のデバイスであり得る。
【０２７５】
加えて、本出願の上述の実施形態は、第2のアルゴリズムが、本明細書において第1のフローテーブルアルゴリズムと呼ばれるフローテーブルベースのアルゴリズムである例を使用することにより主に説明されていることに留意されたい。本出願の本実施形態の別の実装形態では、第2のアルゴリズムは、代替的に、第2のフローテーブルアルゴリズム、すなわちMisraGriesアルゴリズムであってもよい。第2のフローテーブルアルゴリズムの主な原則は、フロー識別子を1つのフローテーブルに記録することであり、各エントリは現在のトラフィック量を表すカウンタが1つしかない。フローテーブルがいっぱいになると、トラフィック量が最小のエントリが削除される。本出願の本実施形態において提供される第1のフローテーブルアルゴリズムと比較して、第2のフローテーブルアルゴリズムでは、毎回1つのエントリのみが削除されるため、削除の量が非常に多く、大量のリソースを必要とし、アルゴリズムの効率に影響を与える。加えて、各フローテーブルエントリにはカウンタが1つしかないため、削除動作により起因するエラーは記録できないため、最終結果の精度は比較的低くなる。
【０２７６】
本明細書では、従来技術におけるsketch−basedアルゴリズムのみに基づくトラフィック測定方法が方法1と呼ばれ、sketch−basedアルゴリズムが第1のアルゴリズムとして使用され、第2のフローテーブルアルゴリズムが第2のアルゴリズムとして使用される測定方法が方法2と呼ばれ、sketch−basedアルゴリズムが第1のアルゴリズムとして使用され、第1のフローテーブルアルゴリズムが第2のアルゴリズムとして使用される測定方法が方法3と呼ばれる。この場合、sketch−basedアルゴリズムであるDeltoid、UnivMon、TwoLevel、RevSketch、FlowRadar、FM、kMin、LC、およびMRACを個別に使用すると、実験により取得され、かつ方法1、方法2、および方法3にそれぞれ対応するネットワークスループットが図13に示される。図13において、縦線で塗りつぶされた部分は方法1に対応し、斜線で塗りつぶされた部分は方法2に対応し、格子で塗りつぶされた部分は方法3に対応する。図13の実験データは、方法3を使用することでより高いネットワークスループットに到達できることを示し得る。
【０２７７】
加えて、ステップ112において、ステップ1121および1122は、凸最適化アルゴリズムを使用することにより目的の測定関数Tを解くための特定の実装形態を提供する。ステップ112の別の実装形態では、ネットワークコントローラは、処理の複雑さを低減するために、凸最適化アルゴリズムの代わりに単純な計算により目的の測定関数Tを解くことができる。例えばT＝N＋sk（x）であり、Nはグローバルなフローテーブルを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、sk（x）は入力としてxを使用することにより、また第1のアルゴリズムを呼び出すことにより取得された結果を表す。特定の実装形態では、xの各フロー識別子に対応するデータフローのトラフィック量は、フロー識別子に対応する第1のデータrと第2のデータdとの和であり得る。別の特定の実装形態では、xの各フロー識別子に対応するデータフローのトラフィック量は、フロー識別子に対応する第1のデータrと第2のデータdと第3のデータeとの和であり得る。実験データは、ステップ1121および1122において提供される目的の測定関数を計算するためのアルゴリズムを使用すると、より良好なパフォーマンスが達成され得ることを示している。
【０２７８】
例えば、ネットワーク例外検出の精度が説明のための例として使用される。従来技術におけるsketch−basedアルゴリズムのみに基づくトラフィック測定方法が方法Aと呼ばれ、sketch−basedアルゴリズムが第1のアルゴリズムとして使用され、第1のフローテーブルアルゴリズムが第2のアルゴリズムとして使用され、目的の測定関数が式T＝N＋sk（x）に基づいて計算され、xはrとdとの和である、対応するトラフィック測定方法が方法Bと呼ばれ、sketch−basedアルゴリズムが第1のアルゴリズムとして使用され、第1のフローテーブルアルゴリズムが第2のアルゴリズムとして使用され、目的の測定関数が式T＝N＋sk（x）に基づいて計算され、xがrとdとeとの和である、対応するトラフィック測定方法が方法Cと呼ばれ、sketch−basedアルゴリズムが第1のアルゴリズムとして使用され、第1のフローテーブルアルゴリズムが第2のアルゴリズムとして使用され、目的の測定関数が上述の凸最適化アルゴリズムを使用することにより計算されるトラフィック測定方法が方法Dと呼ばれると仮定される。この場合、heavy hitterフローまたはheavy changerフローに基づいてネットワーク例外を検出するためにsketch−basedアルゴリズムであるFlowRadar、RevSketch、UnivMon、およびDeltoidが個別に使用されるときに、再現（recall）率、誤検出率（precision）、および相対誤差（relative error）の観点から方法Aから方法Dまでの場合および理想的な精度の場合が図14aから図14fに示されている。図14aから図14fにおいて、縦線で塗りつぶされた部分は方法Aに対応し、横線で塗りつぶされた部分は方法Bに対応し、点で塗りつぶされた部分は方法Cに対応し、格子で塗りつぶされた部分は方法Dに対応し、バックスラッシュで塗りつぶされた部分は、理想的な精度値を表す。加えて、図14aから図14cはheavy hitterフローに対応しており、図14dから図14fはheavy changerフローに対応している。図14aから図14fにより、方法Dに対応する検出精度がより高く、理想的な精度値に近いことがわかる。
【０２７９】
上記は、ネットワーク要素間の相互作用の観点から、本出願の実施形態で提供される解決策を主に説明している。上述の機能を実施するために、各ネットワーク要素、例えばパケット処理デバイスまたはネットワークコントローラは、機能を実行するための対応するハードウェア構造および／またはソフトウェアモジュールを含むことが理解できる。当業者であれば、本明細書で開示した各実施形態に関連して説明した例におけるアルゴリズムステップは、本出願において、ハードウェアまたはハードウェアとコンピュータソフトウェアとの組み合わせを使用することによって実施され得ることを容易に承知するはずである。機能がハードウェアで行われるかコンピュータソフトウェアによって駆動されるハードウェアで行われるかは、技術的解決策の具体的な応用形態および設計制約によって決まる。当業者は、それぞれの具体的な応用形態に対して説明された機能を実施するために、異なる方法を使用することができるが、こうした実施が、本出願の範囲を超えるものであると見なされるべきではない。
【０２８０】
本出願の実施形態では、パケット処理デバイスおよびネットワークコントローラは、上述の方法例に基づいて機能モジュールに分割されてもよい。例えば、機能モジュールは、各機能の分割によって取得されてもよいし、2つ以上の機能が1つの処理モジュールに統合されてもよい。統合されたモジュールはハードウェアの形態で実施されてもよいし、ソフトウェア機能モジュールの形態で実施されてもよい。本出願の実施形態におけるモジュール分割は一例であり、単に論理的な機能分割であり、実際の実装では他の分割であってもよいことに留意されたい。
【０２８１】
本出願の一実施形態は、パケット処理デバイス1500をさらに提供する。図15を参照すると、パケット処理デバイス1500は、少なくとも1つのプロセッサ1501と、メモリ1502と、バッファ1503と、通信インターフェース1504と、バス1505とを備え、少なくとも1つのプロセッサ1501、メモリ1502、およびバッファ1503はバス1505を使用することにより互いに接続される。通信インターフェース1504は、パケット処理デバイス1500がパケット転送デバイスまたはパケット受信エンドデバイスであるときに、測定対象パケットを取得するように構成される。メモリ1502は、命令を格納するように構成される。プロセッサ1501は、以下の動作、すなわち、パケット処理デバイス1500がパケット送信エンドデバイスである場合、測定対象パケットを取得する動作と、バッファ1503内の占有記憶空間が事前設定閾値未満である場合、測定対象パケットの測定対象情報をバッファ1503に書き込む動作であって、測定対象情報が、測定対象パケットのフロー識別子および測定対象パケットのトラフィック量を含む、動作と、バッファ1503から測定対象情報を読み取る動作と、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更する動作であって、aが正の整数である、動作とを実施するために、またはバッファ1503内の占有記憶空間が事前設定閾値以上である場合、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更する動作であって、wが正の整数であり、wがa未満である、動作とを実施するためにメモリ1502に格納された命令を呼び出すように構成される。バッファ1503は、プロセッサ1501が測定対象パケットの測定対象情報をバッファ1503に書き込んだ後、測定対象情報を格納するように構成される。
【０２８２】
本明細書のバッファ1503およびメモリ1502は、2つの独立したハードウェアモジュールであってもよいし、1つのハードウェアモジュールに統合されてもよいことに留意されたい。
【０２８３】
プロセッサ1501は、図4、図7、および図11のステップ101から105、図7のステップ106および107、図9のステップ1052および1059を実行する際にパケット処理デバイス1500をサポートするように構成されてもよい。通信インターフェース1504は、図4および図7のステップ101（パケット処理デバイス1500がパケット転送デバイスまたはパケット受信エンドデバイスである場合）、図11のステップ108、ならびに図12のステップ114を実行する際にパケット処理デバイス1500をサポートするように構成される。加えて、図15の構成要素は、本明細書で説明される技術の別のプロセスを実行する際にパケット処理デバイス1500をサポートするようにさらに構成され得る。
【０２８４】
本出願の一実施形態は、ネットワークコントローラ1600をさらに提供する。図16を参照すると、ネットワークコントローラ1600は、少なくとも1つのプロセッサ1601と、メモリ1602と、通信インターフェース1603と、バス1604とを備えることができ、少なくとも1つのプロセッサ1601およびメモリ1602はバス1604を使用することにより互いに接続される。通信インターフェース1603は、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信し、第1の測定データが第1のアルゴリズムに基づいて取得され、第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ように構成される。メモリ1602は、命令を格納するように構成される。プロセッサ1601は、以下の動作、すなわち、グローバルな第1の測定データを取得するためにm個の第1の測定データを組み合わせる動作と、グローバルな第2の測定データを取得するためにn個の第2の測定データを組み合わせる動作と、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算する動作とを実施するためにメモリ1602に格納された命令を呼び出すように構成される。
【０２８５】
プロセッサ1601は、図11および図12のステップ110から112を実行する際にネットワークコントローラ1600をサポートするように構成されてもよい。通信インターフェース1603は、図11および図12のステップ109ならびに図12のステップ113を実行する際にネットワークコントローラ1600をサポートするように構成される。加えて、図16の構成要素は、本明細書で説明される技術の別のプロセスを実行する際にネットワークコントローラ1600をサポートするようにさらに構成され得る。
【０２８６】
図15および図16のプロセッサは、それぞれ異なるタイプのプロセッサを含むことも同じタイプのプロセッサを含むこともでき、具体的には、計算処理能力を備えた次のデバイス、すなわち中央処理装置CPU、ARMプロセッサ、フィールドプログラマブルゲートアレイ（field programmable gate array、FPGA）、および専用プロセッサのいずれか1つであり得る。あるいは、プロセッサはメニーコアプロセッサとして統合されてもよい。
【０２８７】
図15および図16のメモリは、それぞれ以下の記憶媒体、すなわちランダムアクセスメモリ（random access memory、RAM）、読み取り専用メモリ（read only memory、ROM）、不揮発性メモリ（non−volatile memory、NVM）、ソリッドステートドライブ（solid state drive、SSD）、機械的ハードディスク、磁気ディスク、ディスクアレイなどのいずれか1つまたは任意の組み合わせであり得る。
【０２８８】
図15および図16の通信インターフェースはそれぞれ別のデバイスとデータを交換するように構成される。通信インターフェースは、ネットワークアクセス機能を備えた次のデバイス、すなわちネットワークインターフェース（例えば、イーサネットインターフェース）、ワイヤレスネットワークインターフェースカードなどのいずれか1つまたは任意の組み合わせであり得る。
【０２８９】
図15および図16のバスはそれぞれ、アドレスバス、データバス、制御バスなどを含むことができる。表現を簡単にするため、図10ではバスを表すために太線が使用されている。バスは、有線データ伝送に使用される次のデバイス、すなわち、インダストリ・スタンダード・アーキテクチャ（industry standard architecture、ISA）バス、ペリフェラル・コンポーネント・インターコネクト（peripheral component interconnect、PCI）バス、エクステンデッド・インダストリ・スタンダード・アーキテクチャ（extended industry standard architecture、EISA）バスなどのいずれか1つまたは任意の組み合わせであり得る。
【０２９０】
本出願の一実施形態は、パケット処理デバイス1700をさらに提供する。図17を参照すると、パケット処理デバイス1700は、バッファ1701と、取得ユニット1702と、書き込みユニット1703と、読み取りユニット1704と、第1の変更ユニット1705と、第2の変更ユニット1706と、削除ユニット1707と、更新ユニット1708と、処理ユニット1709と、送信ユニット1710と、受信ユニット1711とを備え得る。取得ユニット1702は、測定対象パケットを取得するように構成される。書き込みユニット1703は、バッファ内の占有記憶空間が事前設定閾値未満である場合、測定対象パケットの測定対象情報をバッファに書き込み、測定対象情報が測定対象パケットのフロー識別子と測定対象パケットのトラフィック量とを含む、ように構成される。バッファ1701は、書き込みユニット1703が測定対象情報をバッファ1701に書き込んだ後、測定対象情報を格納するように構成される。読み取りユニット1704は、バッファ1701から測定対象情報を読み取るように構成される。第1の変更ユニット1705は、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更し、aは正の整数である、ように構成される。第2の変更ユニット1706は、バッファ1701内の占有記憶空間が事前設定閾値以上である場合、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更し、wは正の整数であり、wはa未満である、ように構成される。
【０２９１】
送信ユニット1710および受信ユニット1711は、図15に示される通信インターフェース1504の機能に対応し得る。書き込みユニット1703、読み取りユニット1704、第1の変更ユニット1705、第2の変更ユニット1706、削除ユニット1707、処理ユニット1708、および更新ユニット1709は、プロセッサ1501の機能に対応し得る。取得ユニット1702は、図15に示される通信インターフェース1504またはプロセッサ1501のいくつかの機能に対応し得る。ここでは細部を繰り返し説明しない。
【０２９２】
本出願の一実施形態は、ネットワークコントローラ1800をさらに提供する。図18を参照すると、ネットワークコントローラ1800は、受信ユニット1801と、第1の組み合わせユニット1802と、第2の組み合わせユニット1803と、計算ユニット1804と、送信ユニット1805とを備え得る。受信ユニット1801は、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信し、第1の測定データが第1のアルゴリズムに基づいて取得され、第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ように構成される。第1の組み合わせユニット1802は、グローバルな第1の測定データを取得するためにm個の第1の測定データを組み合わせるように構成される。第2の組み合わせユニット1803は、グローバルな第2の測定データを取得するためにn個の第2の測定データを組み合わせるように構成される。計算ユニット1804は、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算するように構成される。
【０２９３】
送信ユニット1805および受信ユニット1801は、図16に示される通信インターフェース1603の機能に対応し得る。第1の組み合わせユニット1802、第2の組み合わせユニット1803、および計算ユニット1804は、図16に示されるプロセッサ1601の機能に対応し得る。ここでは細部を繰り返し説明しない。
【０２９４】
上述の方法の実施形態におけるステップのすべての関連する内容が、対応する機能モジュールの機能の説明において記載され得ることに留意されたい。ここでは細部を繰り返し説明しない。
【０２９５】
実装形態に関する上の説明を通して、説明を簡便にする目的で上記機能モジュールの分割が説明のための一例として使用されているに過ぎないことを当業者は明確に知ることができる。実際の適用においては、上記各機能を、異なる機能モジュールに割り振り、要件に従って実装することができる、すなわち、装置の内部構造が上記の各機能の全部または一部を実装するための異なる機能モジュールに分割される。
【０２９６】
本出願の一実施形態は、上述のパケット処理デバイスによって使用されるコンピュータソフトウェア命令を格納するように構成されたコンピュータ記憶媒体をさらに提供する。命令がパケット処理デバイスで実行されると、パケット処理デバイスは、上述の実施形態のトラフィック測定方法を実行する。例えば、記憶媒体は具体的には上述のメモリであってもよい。
【０２９７】
本出願の一実施形態は、上述のネットワークコントローラによって使用されるコンピュータソフトウェア命令を格納するように構成されたコンピュータ記憶媒体をさらに提供する。命令がネットワークコントローラで実行されると、ネットワークコントローラは、上述の実施形態のトラフィック測定方法を実行する。
【０２９８】
本出願の一実施形態は、命令を含むコンピュータプログラム製品をさらに提供し、製品が上述のパケット処理デバイスで実行されると、パケット処理デバイスは、上述の実施形態のトラフィック測定方法を実行する。
【０２９９】
本出願の一実施形態は、命令を含むコンピュータプログラム製品をさらに提供し、製品が上述のネットワークコントローラで実行されると、ネットワークコントローラは、上述の実施形態のトラフィック測定方法を実行する。
【０３００】
本出願の一実施形態は、システムをさらに提供する。システムの基本アーキテクチャについては、図2を参照されたい。システムは、ネットワークコントローラと少なくとも1つのパケット処理デバイスとを備え得る。システム内のアクセスネットワークデバイスおよび端末は、本出願の上述の実施形態で提供されるトラフィック測定方法を実行し得る。
【０３０１】
パケット処理デバイスは、測定対象パケットを取得し、バッファ内の占有記憶空間が事前設定閾値未満である場合、測定対象パケットの測定対象情報をバッファに書き込み、測定対象情報が、測定対象パケットのフロー識別子および測定対象パケットのトラフィック量を含み、バッファから測定対象情報を読み取り、測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける測定対象パケットに対応するa個のデータを変更し、aが正の整数である、ように構成され得る、またはバッファ内の占有記憶空間が事前設定閾値以上である場合、測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける測定対象パケットに対応するw個のデータを変更し、wが正の整数であり、wがa未満である、ように構成され得る。
【０３０２】
ネットワークコントローラは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信し、第1の測定データが第1のアルゴリズムに基づいて取得され、第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数であり、グローバルな第1の測定データを取得するためにm個の第1の測定データを組み合わせ、グローバルな第2の測定データを取得するためにn個の第2の測定データを組み合わせ、グローバルな第1の測定データおよびグローバルな第2の測定データに基づいて目的の測定データを計算する、ように構成され得る。
【０３０３】
システムの1つの分割方式では、システムは制御プレーンとデータプレーンとを含み得る。少なくとも1つのパケット処理デバイスは、制御プレーンの機能に対応していてもよく、ネットワークコントローラは、制御プレーンの機能に対応していてもよい。
【０３０４】
上記の実施形態の全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせを使用することによって実施されてもよい。ソフトウェアプログラムが実施形態を実施するために使用される場合、実施形態は、コンピュータプログラム製品の形態で完全にまたは部分的に実施されてもよい。コンピュータプログラム製品は、1つまたは複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータにロードされて実行されると、本出願の実施形態による手順または機能がすべてまたは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラマブル装置であってもよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されてもよいし、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、またはデータセンタから別のウェブサイト、コンピュータ、サーバ、またはデータセンタに、有線（例えば、同軸ケーブル、光ファイバ、またはデジタル加入者線（digital subscriber line、DSL））または無線（例えば、赤外線、電波、またはマイクロ波）方式で送信され得る。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体であってもよく、または1つまたは複数の使用可能な媒体を一体化するサーバまたはデータセンタなどのデータ記憶装置であってもよい。使用可能な媒体は、磁気媒体（例えば、フロッピーディスク、ハードディスク、または磁気テープ）、光学媒体（例えば、DVD）、半導体媒体（例えば、ソリッドステートディスク（solid state disk（SSD）））などであってもよい。
【０３０５】
本出願を実施形態に関連して説明したが、保護を請求する本出願を実施する過程において、当業者であれば、添付の図面、開示内容、および添付の特許請求の範囲を検討することにより本開示の実施形態の他の変形を理解し実施することができる。特許請求の範囲において、「含む」（comprising）は別の構成要素または別のステップを排除せず、「a」または「one」は「複数の」場合を排除しない。単一のプロセッサまたは別のユニットが、特許請求の範囲に列挙されたいくつかの機能を実装することができる。一部の手段が互いに異なる従属請求項に記録されているが、このことは、より良い効果を生み出すためにこれらの手段を組み合わせることができないことを意味しない。
【０３０６】
上記の説明は、単に本出願の具体的な実装形態に過ぎず、本出願の保護範囲を限定することを意図するものではない。本出願において開示された技術的範囲内のあらゆる変形や置き換えは、本出願の保護範囲内に含まれるものとする。したがって、本出願の保護範囲は、特許請求の範囲の保護範囲に属する。
【符号の説明】
【０３０７】
01  ネットワークシステム
10  スイッチ
100  パケット処理デバイス
200  ネットワークコントローラ
1500  パケット処理デバイス
1501  プロセッサ
1502  メモリ
1503  バッファ
1504  通信インターフェース
1505  バス
1600  ネットワークコントローラ
1601  プロセッサ
1602  メモリ
1603  通信インターフェース
1604  バス
1700  パケット処理デバイス
1701  バッファ
1702  取得ユニット
1703  書き込みユニット
1704  読み取りユニット
1705  第1の変更ユニット
1706  第2の変更ユニット
1707  削除ユニット
1708  更新ユニット
1709  処理ユニット
1710  送信ユニット
1711  受信ユニット
1800  ネットワークコントローラ
1801  受信ユニット
1802  第1の組み合わせユニット
1803  第2の組み合わせユニット
1804  計算ユニット
1805  送信ユニット
【図１】
2020529171.tif 000073
【図２】
2020529171.tif 000074
【図３ａ】
2020529171.tif 000075
【図３ｂ】
2020529171.tif 000076
【図４】
2020529171.tif 000077
【図５】
2020529171.tif 000078
【図６】
2020529171.tif 000079
【図７】
2020529171.tif 000080
【図８】
2020529171.tif 000081
【図９】
2020529171.tif 000082
【図１０】
2020529171.tif 000083
【図１１】
2020529171.tif 000084
【図１２】
2020529171.tif 000085
【図１３】
2020529171.tif 000086
【図１４ａ】
2020529171.tif 000087
【図１４ｂ】
2020529171.tif 000088
【図１４ｃ】
2020529171.tif 000089
【図１４ｄ】
2020529171.tif 000090
【図１４ｅ】
2020529171.tif 000091
【図１４ｆ】
2020529171.tif 000092
【図１５】
2020529171.tif 000093
【図１６】
2020529171.tif 000094
【図１７】
2020529171.tif 000095
【図１８】
2020529171.tif 000096
【手続補正書】
【提出日】令和2年3月13日(2020.3.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
この場合、パケット処理デバイスは、測定対象パケットに対応し、かつ第2の測定データにあるデータを変更する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
第2の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、ネットワークコントローラによって、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信するステップは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを周期的に受信するステップを含む。あるいは、ネットワークコントローラによって、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信するステップの前に、本方法は、各パケット処理デバイスに測定データ要求メッセージを送信するステップをさらに含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
第5の態様および上述の可能な実装形態に関連して、別の可能な実装形態では、本デバイスは、ネットワークコントローラによって送信された測定データ要求メッセージを受信するように構成された受信ユニットをさらに備える。送信ユニットは、受信ユニットによって受信された測定データ要求メッセージに応じて、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信するように特に構成される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１６３
【補正方法】変更
【補正の内容】
【０１６３】
さらに、図7を参照すると、ステップ104の後、トラフィック測定方法は以下のステップを含み得る。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０２２５
【補正方法】変更
【補正の内容】
【０２２５】
上述のプロセスは、例として図2に示されるアーキテクチャにおける1つのパケット処理デバイスを使用することによって説明されていることに留意されたい。図2に示されるアーキテクチャにおける別のパケット処理デバイスの処理プロセスは、上述のプロセスと同様である。つまり、複数のパケット処理デバイスはそれぞれ、第1の測定データおよび／または第2の測定データをネットワークコントローラに送信することができる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０２９１
【補正方法】変更
【補正の内容】
【０２９１】
送信ユニット1710および受信ユニット1711は、図15に示される通信インターフェース1504の機能に対応し得る。書き込みユニット1703、読み取りユニット1704、第1の変更ユニット1705、第2の変更ユニット1706、削除ユニット1707、処理ユニット1709、および更新ユニット1708は、プロセッサ1501の機能に対応し得る。取得ユニット1702は、図15に示される通信インターフェース1504またはプロセッサ1501のいくつかの機能に対応し得る。ここでは細部を繰り返し説明しない。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０３００
【補正方法】変更
【補正の内容】
【０３００】
本出願の一実施形態は、システムをさらに提供する。システムの基本アーキテクチャについては、図2を参照されたい。システムは、ネットワークコントローラと少なくとも1つのパケット処理デバイスとを備え得る。システム内のネットワークコントローラおよびパケット処理デバイスは、本出願の上述の実施形態で提供されるトラフィック測定方法を実行し得る。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０３０３
【補正方法】変更
【補正の内容】
【０３０３】
システムの1つの分割方式では、システムは制御プレーンとデータプレーンとを含み得る。少なくとも1つのパケット処理デバイスは、データプレーンの機能に対応していてもよく、ネットワークコントローラは、制御プレーンの機能に対応していてもよい。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
パケット処理デバイスに適用されるトラフィック測定方法であって、前記パケット処理デバイスがバッファを備え、前記方法は、
測定対象パケットを取得するステップと、
前記バッファ内の占有記憶空間が事前設定閾値未満である場合、前記測定対象パケットの測定対象情報を前記バッファに書き込むステップであって、前記測定対象情報が、前記測定対象パケットのフロー識別子および前記測定対象パケットのトラフィック量を含む、ステップと、
前記バッファから前記測定対象情報を読み取るステップと、
前記測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける前記測定対象パケットに対応するa個のデータを変更するステップであって、aが正の整数である、ステップとを含む、または
前記バッファ内の占有記憶空間が前記事前設定閾値以上である場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更するステップであって、wが正の整数であり、wがa未満である、ステップとを含む、トラフィック測定方法。
【請求項２】
前記a個のデータはa個のカウンタの値であり、前記w個のデータはw個のカウンタの値である、請求項1に記載のトラフィック測定方法。
【請求項３】
前記第1のアルゴリズムはハッシュ関数を含み、前記第1の測定データはc個の場所におけるデータを含み、cは正の整数であり、前記測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける前記測定対象パケットに対応するa個のデータを変更する前記ステップは、
前記測定対象パケットの前記フロー識別子および前記ハッシュ関数に基づいて、前記c個の場所からu個の場所を判定するステップであって、uが正の整数であり、uがc以下である、ステップと、
前記測定対象パケットの前記トラフィック量に基づいて、前記u個の場所におけるa個のデータを変更するステップであって、uがa以下である、ステップとを含む、請求項1または2に記載のトラフィック測定方法。
【請求項４】
フローテーブルが前記パケット処理デバイスに格納され、前記第2の測定データは前記フローテーブルにおけるデータを含み、前記フローテーブルは前記フロー識別子と第1のデータrとの間の対応関係を含み、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する前記ステップは、
前記測定対象情報および前記第2のアルゴリズムに基づいて、前記測定対象パケットに対応し、かつ前記第2の測定データにある第1のデータrfを変更するステップを含む、請求項1から3のいずれか一項に記載のトラフィック測定方法。
【請求項５】
前記測定対象情報および前記第2のアルゴリズムに基づいて、前記測定対象パケットに対応し、かつ前記第2の測定データにある第1のデータrfを変更する前記ステップは、
前記フローテーブルが前記測定対象パケットのフロー識別子fを含む場合、前記測定対象パケットに対応し、かつ前記フローテーブルにある第1のデータrfを、前記測定対象パケットに対応する前記第1のデータrfと前記測定対象パケットの前記トラフィック量との和に更新するステップを含む、請求項4に記載のトラフィック測定方法。
【請求項６】
フローテーブルが前記パケット処理デバイスに格納され、前記第2の測定データは前記フローテーブルにおけるデータを含み、前記フローテーブルは前記フロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含み、前記フローテーブルが前記測定対象パケットのフロー識別子fを含まず、かつ前記フローテーブルがいっぱいである場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する前記ステップの前に、前記方法は、
デクリメント値
【数１】
2020529171.tif 000097
を計算するステップと、
前記フローテーブルに含まれる各フロー識別子に対応する第1のデータrを、前記第1のデータrと前記デクリメント値
【数２】
2020529171.tif 000098
との差に更新するステップと、
前記フローテーブルに含まれる各フロー識別子に対応する第2のデータdを、前記第2のデータdと前記デクリメント値
【数３】
2020529171.tif 000099
との和に更新するステップと、
第1の事前設定条件を満たすフロー識別子と前記第1のデータrおよび前記第2のデータdのそれぞれとの間の対応関係を前記フローテーブルから削除するステップとをさらに含み、
前記第1の事前設定条件を満たす前記フロー識別子が、対応する更新された第1のデータrが0以下であるフロー識別子である、請求項1から5のいずれか一項に記載のトラフィック測定方法。
【請求項７】
前記フローテーブルは前記フロー識別子と前記第1のデータr、前記第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、前記フローテーブルが前記測定対象パケットの前記フロー識別子fを含まず、かつ前記フローテーブルがいっぱいである場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する前記ステップは、
前記測定対象パケットの前記トラフィック量が前記デクリメント値
【数４】
2020529171.tif 000100
よりも大きい場合、前記測定対象パケットの前記トラフィック量と前記デクリメント値
【数５】
2020529171.tif 000101
との差を、前記測定対象パケットに対応する第1のデータrfに設定するステップと、
前記デクリメント値
【数６】
2020529171.tif 000102
を、前記測定対象パケットに対応する第2のデータdfに設定するステップと、
総デクリメントトラフィック量Eを、前記測定対象パケットに対応する第3のデータefに設定するステップと、
前記測定対象パケットの前記フロー識別子fと、前記測定対象パケットに対応する前記第1のデータrf、前記測定対象パケットに対応する前記第2のデータdf、および前記測定対象パケットに対応する前記第3のデータefのそれぞれとの間の対応関係を前記フローテーブルに挿入するステップとを含む、請求項6に記載のトラフィック測定方法。
【請求項８】
前記方法は、
前記総デクリメントトラフィック量Eを、前記総デクリメントトラフィック量Eと前記デクリメント値
【数７】
2020529171.tif 000103
との和に更新するステップをさらに含む、請求項6または7に記載のトラフィック測定方法。
【請求項９】
デクリメント値
【数８】
2020529171.tif 000104
を計算する前記ステップは、
前記測定対象パケットの前記トラフィック量および前記フローテーブルに含まれる前記フロー識別子に対応する前記第1のデータrを値の順に並べ替え、並べ替えた後の最初の2つの値をR1およびR2として、また並べ替えた後の最後の値をRkとして示すステップと、
前記デクリメント値
【数９】
2020529171.tif 000105
をR1、R2、Rk、および次式
【数１０】
2020529171.tif 000106
に基づいて計算するステップであって、
【数１１】
2020529171.tif 000107
【数１２】
2020529171.tif 000108
であり、δは定数を表す、ステップとを含む、請求項6から8のいずれか一項に記載のトラフィック測定方法。
【請求項１０】
フローテーブルが前記パケット処理デバイスに格納され、前記第2の測定データは前記フローテーブルのデータを含み、前記フローテーブルは、前記フロー識別子と第1のデータrおよび第3のデータeのそれぞれとの間の対応関係を含み、前記フローテーブルが前記測定対象パケットのフロー識別子fを含まず、かつ前記フローテーブルがいっぱいではない場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する前記ステップは、
前記測定対象パケットの前記トラフィック量を、前記測定対象パケットに対応する第1のデータrfに設定するステップと、
総デクリメントトラフィック量Eを、前記測定対象パケットに対応する第3のデータefに設定するステップと、
前記測定対象パケットの前記フロー識別子fと、前記測定対象パケットに対応する前記第1のデータrfおよび前記測定対象パケットに対応する前記第3のデータefのそれぞれとの間の対応関係を前記フローテーブルに挿入するステップとを含む、請求項1から9のいずれか一項に記載のトラフィック測定方法。
【請求項１１】
前記フローテーブルはエントリを含み、前記エントリは、前記フロー識別子と前記第1のデータr、前記第2のデータd、および前記第3のデータeのそれぞれとの間の対応関係を含み、前記第1のデータr、前記第2のデータd、および前記第3データeはそれぞれ3つのカウンタの値である、請求項4から10のいずれか一項に記載のトラフィック測定方法。
【請求項１２】
前記第2の測定データはローカルな総トラフィック量を含み、前記バッファ内の前記占有記憶空間が前記事前設定閾値以上である場合、前記方法は、
前記ローカルな総トラフィック量を、前記ローカルな総トラフィック量と前記測定対象パケットの前記トラフィック量との和に更新するステップをさらに含む、請求項1から11のいずれか一項に記載のトラフィック測定方法。
【請求項１３】
前記方法は、
前記第1の測定データおよび／または前記第2の測定データをネットワークコントローラに送信するステップであって、前記第1の測定データおよび／または前記第2の測定データが、目的の測定データを計算するために前記ネットワークコントローラによって使用される、ステップをさらに含む、請求項1から12のいずれか一項に記載のトラフィック測定方法。
【請求項１４】
前記測定対象パケットの前記フロー識別子が目的のフロー識別子であり、測定対象パケットを取得する前記ステップの前に、前記方法は、
前記ネットワークコントローラによって送信された命令メッセージを受信するステップであって、前記命令メッセージが前記目的のフロー識別子を含む、ステップをさらに含む、請求項1から13のいずれか一項に記載のトラフィック測定方法。
【請求項１５】
m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信するステップであって、前記第1の測定データが第1のアルゴリズムに基づいて取得され、前記第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ステップと、
グローバルな第1の測定データを取得するために前記m個の第1の測定データを組み合わせるステップと、
グローバルな第2の測定データを取得するために前記n個の第2の測定データを組み合わせるステップと、
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて目的の測定データを計算するステップとを含む、トラフィック測定方法。
【請求項１６】
前記目的の測定データおよび前記グローバルな第1の測定データは同じデータ構造を有する、請求項15に記載のトラフィック測定方法。
【請求項１７】
第1の測定データのそれぞれがp行q列の要素を含み、グローバルな第1の測定データを取得するために前記m個の第1の測定データを組み合わせる前記ステップは、
前記グローバルな第1の測定データを取得するために、前記m個の第1の測定データのものであり、かつ対応する場所にある各m個の要素を組み合わせるステップであって、前記グローバルな第1の測定データがp行q列の要素を含む、ステップを含む、請求項15または16に記載のトラフィック測定方法。
【請求項１８】
第2の測定データのそれぞれがローカルな総トラフィック量およびフローテーブルを含み、前記フローテーブルは少なくとも1つのエントリを含み、前記エントリは前記フロー識別子と1対1の対応関係にあり、グローバルな第2の測定データを取得するために前記n個の第2の測定データを組み合わせる前記ステップは、
グローバルな総トラフィック量を取得するために、前記n個の第2の測定データにおけるn個のローカルな総トラフィック量を加えるステップと、
グローバルなフローテーブルを取得するために前記n個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせるステップであって、前記グローバルなフローテーブルにおいて、前記フロー識別子は前記エントリと1対1の対応関係にある、ステップとを含み、
前記グローバルな総トラフィック量および前記グローバルなフローテーブルは前記グローバルな第2の測定データである、請求項15から17のいずれか一項に記載のトラフィック測定方法。
【請求項１９】
前記エントリはフロー識別子と前記フロー識別子に対応するトラフィックデータとを含み、前記n個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせる前記ステップは、
前記n個の第2の測定データに対応する前記n個のフローテーブルの前記エントリにおいて、同じフロー識別子を有する複数のエントリについて、前記複数のエントリを前記グローバルなフローテーブルの1つのエントリに組み合わせるために、前記複数のエントリにおけるトラフィックデータを加えるステップと、
異なるフロー識別子を有するエントリのそれぞれを前記グローバルなフローテーブルの1つのエントリとして使用するステップとを含む、請求項18に記載のトラフィック測定方法。
【請求項２０】
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて目的の測定データを計算する前記ステップは、
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて最適化目的関数を構築するステップと、
凸最適化アルゴリズムおよび前記最適化目的関数に基づいて前記目的の測定データを計算するステップとを含み、
前記最適化目的関数の式が、
minimize
【数１３】
2020529171.tif 000109
であり、
前記最適化目的関数が次の制約、すなわち、
制約1：T＝N＋sk（x＋y）、
制約2：｜x｜1＋｜y｜1＝V、および
制約3：∀s∈H、rs＋ds≦xs≦rs＋ds＋esを満たし、
「minimize」は前記最適化目的関数を最小化する独立変数値の計算を表し、Tは前記目的の測定データを表し、Nは前記グローバルなフローテーブルを表し、Vは前記グローバルな総トラフィック量を表し、Hは前記グローバルな第1の測定データを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xsはフロー識別子sに対応するデータフローのトラフィック量を表し、yは、Hに含まれないデータフローのものであり、かつ前記第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量にあるトラフィック量を表し、x＋yは前記第2のアルゴリズムに基づいて測定された前記データフローの前記トラフィック量を表し、sk（x＋y）は入力としてx＋yを使用することにより、また前記第1のアルゴリズムを呼び出すことにより取得された結果を表し、
｜T｜＊は、Tの核型ノルムを表し、かつ行列のすべての特異値の和として定義され、｜x｜1は、ベクトルxのL1ノルムを表し、かつxのすべてのデータの絶対値の和として定義され、
【数１４】
2020529171.tif 000110
は、ベクトルyのフロベニウスノルムを表し、かつyのすべての前記データの二乗和として定義され、
α、β、およびγの計算式はそれぞれ、
【数１５】
2020529171.tif 000111
【数１６】
2020529171.tif 000112
および
γ＝10σyであり、
PNおよびQNはそれぞれ行列Nの長さおよび幅を表し、η（N）はNのデータの平均を表し、mxおよびnxはそれぞれ前記ベクトルxの長さおよび幅を表し、σyはyのすべてのデータの標準偏差を表す、請求項18または19に記載のトラフィック測定方法。
【請求項２１】
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて目的の測定データを計算する前記ステップは、
前記グローバルな第1の測定データ、前記グローバルな第2の測定データ、および次式：
T＝N＋sk（x）
に基づいて前記目的の測定データを計算するステップを含み、
Tは前記目的の測定データを表し、Nは前記グローバルなフローテーブルを表し、xはHに含まれるフロー識別子に対応するデータフローのトラフィック量を表し、xは前記第2のアルゴリズムに基づいて測定されたデータフローのトラフィック量を表し、sk（x）は、入力としてxを使用することにより、かつ前記第1のアルゴリズムを呼び出すことにより取得された結果を表す、請求項18または19に記載のトラフィック測定方法。
【請求項２２】
前記グローバルなフローテーブルはエントリを含み、前記エントリはフロー識別子と第1のデータrおよび第2のデータdのそれぞれとの間の対応関係を含み、xに対応する前記データフローの前記トラフィック量は、前記データフローのフロー識別子に対応する前記第1のデータrと前記第2のデータdとの和である、請求項21に記載のトラフィック測定方法。
【請求項２３】
前記グローバルなフローテーブルはエントリを含み、前記エントリはフロー識別子と第1のデータr、第2のデータd、および第3のデータeのそれぞれとの間の対応関係を含み、xに対応する前記データフローの前記トラフィック量は、前記データフローのフロー識別子に対応する前記第1のデータrと前記第2のデータdと前記第3のデータeとの和である、請求項21に記載のトラフィック測定方法。
【請求項２４】
m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信する前記ステップの前に、前記方法は、
各パケット処理デバイスに命令メッセージを送信するステップであって、前記命令メッセージは、前記測定対象パケット処理デバイスに対応する目的のフロー識別子を運ぶ、ステップをさらに含み、
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するということは以下を意味する、すなわち、
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローのラストホップデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローのファーストホップデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローの受信エンドデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローの送信エンドデバイスであることを意味する、請求項15から23のいずれか一項に記載のトラフィック測定方法。
【請求項２５】
少なくとも1つのプロセッサと、メモリと、バッファと、通信インターフェースと、バスとを備えるパケット処理デバイスであって、前記少なくとも1つのプロセッサ、前記メモリ、および前記バッファは前記バスを使用することにより互いに接続され、
前記通信インターフェースは、前記パケット処理デバイスがパケット転送デバイスまたはパケット受信エンドデバイスであるときに、測定対象パケットを取得するように構成され、
前記メモリは、命令を格納するように構成され、
前記プロセッサは、以下の動作、すなわち、
前記パケット処理デバイスがパケット送信エンドデバイスである場合、測定対象パケットを取得する動作と、
前記バッファ内の占有記憶空間が事前設定閾値未満である場合、前記測定対象パケットの測定対象情報を前記バッファに書き込む動作であって、前記測定対象情報が、前記測定対象パケットのフロー識別子および前記測定対象パケットのトラフィック量を含む、動作と、
前記バッファから前記測定対象情報を読み取る動作と、
前記測定対象情報および第1のアルゴリズムに基づいて、第1の測定データにおける前記測定対象パケットに対応するa個のデータを変更する動作であって、aが正の整数である、動作とを実施するために、または
前記バッファ内の占有記憶空間が前記事前設定閾値以上である場合、前記測定対象情報および第2のアルゴリズムに基づいて、第2の測定データにおける前記測定対象パケットに対応するw個のデータを変更する動作であって、wが正の整数であり、wがa未満である、動作とを実施するために前記メモリに格納された前記命令を呼び出すように構成され、
前記バッファは、前記プロセッサが前記測定対象パケットの前記測定対象情報を前記バッファに書き込んだ後、前記測定対象情報を格納するように構成される、パケット処理デバイス。
【請求項２６】
前記a個のデータはa個のカウンタの値であり、前記w個のデータはw個のカウンタの値である、請求項25に記載のパケット処理デバイス。
【請求項２７】
前記第1のアルゴリズムはハッシュ関数を含み、前記第1の測定データはc個の場所におけるデータを含み、cは正の整数であり、前記プロセッサは、
前記測定対象パケットの前記フロー識別子および前記ハッシュ関数に基づいて、前記c個の場所からu個の場所を判定し、uが正の整数であり、uがc以下であり、
前記測定対象パケットの前記トラフィック量に基づいて、前記u個の場所におけるa個のデータを変更し、uがa以下である、ように特に構成される、請求項25または26に記載のパケット処理デバイス。
【請求項２８】
前記通信インターフェースは、
前記第1の測定データおよび／または前記第2の測定データをネットワークコントローラに送信し、前記第1の測定データおよび／または前記第2の測定データが、目的の測定データを計算するために前記ネットワークコントローラによって使用される、ようにさらに構成される、請求項25から27のいずれか一項に記載のパケット処理デバイス。
【請求項２９】
前記測定対象パケットの前記フロー識別子が目的のフロー識別子であり、前記通信インターフェースは、
前記測定対象パケットを取得する前に、前記ネットワークコントローラによって送信された命令メッセージを受信し、前記命令メッセージが前記目的のフロー識別子を含む、ようにさらに構成される、請求項25から28のいずれか一項に記載のパケット処理デバイス。
【請求項３０】
少なくとも1つのプロセッサと、メモリと、通信インターフェースと、バスとを備えるネットワークコントローラであって、前記少なくとも1つのプロセッサおよび前記メモリは前記バスを使用することにより互いに接続され、
前記通信インターフェースは、m個のパケット処理デバイスによってそれぞれ送信されたm個の第1の測定データと、n個のパケット処理デバイスによってそれぞれ送信されたn個の第2の測定データとを受信し、前記第1の測定データが第1のアルゴリズムに基づいて取得され、前記第2の測定データが第2のアルゴリズムに基づいて取得され、mとnとは両方とも非負の整数である、ように構成され、
前記メモリは、命令を格納するように構成され、
前記プロセッサは、以下の動作、すなわち、
グローバルな第1の測定データを取得するために前記m個の第1の測定データを組み合わせる動作と、
グローバルな第2の測定データを取得するために前記n個の第2の測定データを組み合わせる動作と、
前記グローバルな第1の測定データおよび前記グローバルな第2の測定データに基づいて目的の測定データを計算する動作とを実施するために前記メモリに格納された前記命令を呼び出すように構成される、ネットワークコントローラ。
【請求項３１】
前記目的の測定データおよび前記グローバルな第1の測定データは同じデータ構造を有する、請求項30に記載のネットワークコントローラ。
【請求項３２】
第1の測定データのそれぞれがp行q列の要素を含み、前記プロセッサは、
前記グローバルな第1の測定データを取得するために、前記m個の第1の測定データのものであり、かつ対応する場所にある各m個の要素を組み合わせ、前記グローバルな第1の測定データがp行q列の要素を含む、ように特に構成される、請求項30または31に記載のネットワークコントローラ。
【請求項３３】
第2の測定データのそれぞれがローカルな総トラフィック量およびフローテーブルを含み、前記フローテーブルは少なくとも1つのエントリを含み、前記エントリは前記フロー識別子と1対1の対応関係にあり、前記プロセッサは、
グローバルな総トラフィック量を取得するために、前記n個の第2の測定データにおけるn個のローカルな総トラフィック量を加え、
グローバルなフローテーブルを取得するために前記n個の第2の測定データに対応するn個のフローテーブルのエントリを組み合わせ、前記グローバルなフローテーブルにおいて、前記フロー識別子は前記エントリと1対1の対応関係にある、ように特に構成され、
前記総トラフィック量および前記グローバルなフローテーブルは前記グローバルな第2の測定データである、請求項30から32のいずれか一項に記載のネットワークコントローラ。
【請求項３４】
前記通信インターフェースは、
前記m個のパケット処理デバイスによってそれぞれ送信された前記m個の第1の測定データと、前記n個のパケット処理デバイスによってそれぞれ送信された前記n個の第2の測定データとを受信する前に、各パケット処理デバイスに命令メッセージを送信し、前記命令メッセージは、前記測定対象パケット処理デバイスに対応する目的のフロー識別子を運ぶ、ようにさらに構成され、
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するということは以下を意味する、すなわち、
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローのラストホップデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローのファーストホップデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローの受信エンドデバイスである、または
前記測定対象パケット処理デバイスが前記目的のフロー識別子に対応するデータフローの送信エンドデバイスであることを意味する、請求項30から33のいずれか一項に記載のネットワークコントローラ。
【請求項３５】
システムであって、前記システムは、ネットワークコントローラと少なくとも1つのパケット処理デバイスとを備え、前記パケット処理デバイスは、請求項1から14のいずれか一項に記載のトラフィック測定方法を実行するように構成され、前記ネットワークコントローラは、請求項15から24のいずれか一項に記載のトラフィック測定方法を実行するように構成される、システム。
【国際調査報告】
2020529171.tif 000113
2020529171.tif 000114
2020529171.tif 000115
2020529171.tif 000116