これを鑑みて、本願の実施形態は、伝送パス上のデータパケットに検出情報をカプセル化することによって伝送パス上のデータパケットに対する情報テレメトリを実施し、それによって、パケット転送性能を確保しながら伝送パス上のデータパケットに対する情報収集を実施するデータパケット検出方法、デバイス、及びシステムを提供する。
本願の実施形態で提供される技術的解決法は、次の通りである。
第1の態様に従って、データパケット検出方法が提供される。方法は:第1ネットワークデバイスによって、コントローラによって送信された第1制御情報を受信することであり、第1制御情報は検出タスクタイプを含み、検出タスクタイプは、コントローラが第1ネットワークデバイスに実行することを要求する検出タスクを示す、ことと;第1ネットワークデバイスによって、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第1データパケットを受信することであり、第1データパケットは第1検出情報を含み、第1検出情報は、第1検出ノード識別子、第1シーケンス番号、及び第1収集情報を含み、第1検出ノード識別子は、第1検出情報を処理するネットワークデバイスの検出ドメイン内の位置を示し、第1シーケンス番号は、第1検出情報を含む第1データパケットのシーケンス番号を示し、第1収集情報は、検出タスクタイプに対応する収集情報を示し、検出ドメインは、コントローラによって決定された検出範囲であり、検出ドメインは複数のネットワークデバイスを含み、複数のネットワークデバイスは第1ネットワークデバイスを含む、ことと;第1ネットワークデバイスによって第1収集情報に基づいて、第1収集情報に対応する第1の収集されたデータを決定し、第1ネットワークデバイスによって、第1検出ノード識別子を更新することと;第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第1検出情報を運ぶ第1データパケットを送信することとを含む。
この実施形態で提供される解決法に従って、検出ドメイン内のネットワークデバイスは、コントローラによって配信された制御情報に基づいて、かつ、データパケットに含まれる検出情報を使用することによって、コントローラによって要求された検出タスクのための情報収集を実施してよく、それによって、パケット転送性能を確保しながら伝送パス上のデータパケットのインサイチュ収集及び伝送パス検出を実施する。
第1の態様の可能な実施において、第1ネットワークデバイスは、検出ドメイン内のヘッドノードデバイスであり、第1ネットワークデバイスによって、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第1データパケットを受信することの後に、方法は:第1ネットワークデバイスによって、第1検出情報を第1データパケットにカプセル化することを更に含む。
第1の態様の他の可能な実施において、第1ネットワークデバイスは、検出ドメイン内のエンドノードデバイスであり、第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第1検出情報を運ぶ第1データパケットを送信することの前に、方法は:第1ネットワークデバイスによって、第1データパケットから第1検出情報を削除することを更に含む。
第1の態様の更なる他の可能な実施において、方法は:第1ネットワークデバイスによって、第1報告検出情報をコントローラへ送信することを更に含み、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含む。
第1の態様の更なる他の可能な実施において、検出タスクタイプはパケットロス検出であり、第1制御情報は検出開始時及び検出終了時を更に含み、第1ネットワークデバイスは、検出ドメイン内のヘッドノードデバイスであり、第1データパケットは、検出開始時から始まる期間に第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスへ送信された最初のデータパケットであり、第1の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、方法は:第1ネットワークデバイスによって、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第2データパケットを受信することと;第1ネットワークデバイスによって、第2検出情報を第2データパケットにカプセル化することであり、第2検出情報は、第2検出ノード識別子、第2シーケンス番号、及び第2収集情報を含む、ことと;第1ネットワークデバイスによって第2収集情報に基づいて、第2収集情報に対応する第2の収集されたデータを決定し、第1ネットワークデバイスによって、第2検出ノード識別子を更新することであり、第2の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、第2シーケンス番号は、第1シーケンス番号よりも大きく、第2検出ノード識別子は、第1検出ノード識別子と同じである、ことと;第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第2検出情報を運ぶ第2データパケットを送信することであり、第2データパケットは、検出終了時前に第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスへ送信された最後のデータパケットである、ことと;第1ネットワークデバイスによって、第1報告検出情報及び第2報告検出情報をコントローラへ送信することであり、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含み、第2報告検出情報は、更新された第2検出ノード識別子、第2シーケンス番号、及び第2の収集されたデータを含む、こととを更に含む。
第1の態様の更なる他の可能な実施において、検出タスクタイプはパケットロス検出であり、第1制御情報は検出開始時及び検出終了時を更に含み、第1ネットワークデバイスは、検出ドメイン内の中間ノードデバイス又はエンドノードデバイスであり、第1の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、方法は:第1ネットワークデバイスによって、前もってセットされた時間だけ検出終了時の値を延ばし、検出終了時の値を更新することと;第1ネットワークデバイスによって検出開始時から更新された検出終了時までの期間に、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第2データパケットを受信することであり、第2データパケットは第2検出情報を含み、第2検出情報は、第2検出ノード識別子、第2シーケンス番号、及び第2収集情報を含む、ことと;第1ネットワークデバイスによって第2収集情報に基づいて、第2収集情報に対応する第2の収集されたデータを決定し、第1ネットワークデバイスによって、第2検出ノード識別子を更新することであり、第2の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、第2シーケンス番号は、期間内に第1ネットワークデバイスによって受信される複数のデータパケットのシーケンス番号の中の最大シーケンス番号であり、第1データパケットは、期間内に第1ネットワークデバイスによって受信されたデータパケットであり、第1シーケンス番号は、期間内に第1ネットワークデバイスによって受信される複数のデータパケットのシーケンス番号の中の最小シーケンス番号である、ことと;第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第2検出情報を運ぶ第2データパケットを送信することと;第1ネットワークデバイスによって、第3報告検出情報を生成することであり、第3報告検出情報は、第3検出ノード識別子、第3シーケンス番号、及び第3の収集されたデータを含み、第3検出ノード識別子は、更新された第2検出ノード識別子と同じであり、第3の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、第3シーケンス番号は、期間内に第1ネットワークデバイスによって受信される複数のデータパケットのシーケンス番号から抜けているシーケンス番号であり、第3シーケンス番号は、第1シーケンス番号よりも大きく、第2シーケンス番号よりも小さい、ことと;第1ネットワークデバイスによって、第1報告検出情報、第2報告検出情報、及び第3報告検出情報をコントローラへ送信することであり、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含み、第2報告検出情報は、更新された第2検出ノード識別子、第2シーケンス番号、及び第2の収集されたデータを含む、こととを更に含む。
第2の態様に従って、データパケット検出方法が提供される。方法は:コントローラによって、検出ドメインを決定することであり、検出ドメインは、コントローラによって決定された検出範囲であり、検出ドメインは複数のネットワークデバイスを含む、ことと;コントローラによって、第1制御情報を複数のネットワークデバイスへ送信することであり、第1制御情報は検出タスクタイプを含み、検出タスクタイプは、コントローラが複数のネットワークデバイスに実行することを要求する検出タスクを示す、ことと;コントローラによって、第1ネットワークデバイスによって送信された第1報告検出情報を受信することであり、第1報告検出情報は、第1ネットワークデバイスによって第1検出情報に基づいて決定され、第1検出情報は、第1ネットワークデバイスが第1データパケットを第1ネットワークデバイスの次ホップネットワークデバイスへ送信する前に第1ネットワークデバイスによって第1データパケットから取得された検出情報であり、第1報告検出情報は、第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含み、第1検出ノード識別子は、第1検出情報を処理するネットワークデバイスの検出ドメイン内の位置を示し、第1シーケンス番号は、第1検出情報を含む第1データパケットのシーケンス番号を示し、第1の収集されたデータは、第1ネットワークデバイスによって第1検出情報内の第1収集情報に基づいて決定される、第1収集情報に対応する収集されたデータであり、第1収集情報は、検出タスクタイプに対応する収集情報を示し、複数のネットワークデバイスは第1ネットワークデバイスを含む、こととを含む。
この実施形態で提供される解決法に従って、検出ドメイン内のネットワークデバイスは、コントローラによって配信された制御情報に基づいて、かつ、データパケットに含まれる検出情報を使用することによって、コントローラによって要求された検出タスクのための情報収集を実施してよく、それによって、パケット転送性能を確保しながら伝送パス上のデータパケットのインサイチュ収集及び伝送パス検出を実施する。
第2の態様の可能な実施において、検出タスクタイプはパケットロス検出であり、第1制御情報は検出開始時及び検出終了時を更に含み、第1ネットワークデバイスは、検出ドメイン内のヘッドノードデバイスであり、第1データパケットは、検出開始時から始まる期間に第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスへ送信された最初のデータパケットであり、第1の収集されたデータは、第1ネットワークのデバイス識別子を含み、方法は:コントローラによって、第1ネットワークデバイスによって送信された第2報告検出情報を受信することを更に含み、第2報告検出情報は、第1ネットワークデバイスによって第2検出情報に基づいて決定され、第2検出情報は、第1ネットワークデバイスが第2データパケットを第1ネットワークデバイスの次ホップネットワークデバイスへ送信する前に第1ネットワークデバイスによって第2データパケットから取得された検出情報であり、第2報告検出情報は、第2検出ノード識別子、第2シーケンス番号、及び第2の収集されたデータを含み、第2の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、第2シーケンス番号は、第1シーケンス番号よりも大きく、第2検出ノード識別子は、第1検出ノード識別子と同じであり、第2データパケットは、検出終了時前に第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスへ送信された最後のデータパケットである。
第2の態様の他の可能な実施において、方法は:コントローラによって、第2ネットワークデバイスによって送信された第3報告検出情報を受信することを更に含み、第3報告検出情報は、第3検出ノード識別子及び第3の収集されたデータを含み、第3検出ノード識別子は、検出ドメイン内の第2ネットワークデバイスの位置を示し、第3の収集されたデータは、第2ネットワークデバイスのデバイス識別子を含み、第3報告検出情報は、第3シーケンス番号、第4シーケンス番号、及び第5シーケンス番号を更に含み、第3シーケンス番号は、検出開始時から、前もってセットされた時間だけ検出終了時を延ばすことによって得られた時点までの期間に第2ネットワークデバイスによって受信された複数のデータパケットのシーケンス番号の中の最小シーケンス番号であり、第4シーケンス番号は、期間内に第2ネットワークデバイスによって受信された複数のデータパケットのシーケンス番号から抜けているシーケンス番号であり、第5シーケンス番号は、期間内に第2ネットワークデバイスによって受信された複数のデータパケットのシーケンス番号の中の最大シーケンス番号であり、第2ネットワークデバイスは、検出ドメイン内の中間ノードデバイス又はエンドノードデバイスであり、複数のネットワークデバイスは第2ネットワークデバイスを含む。
第2の態様の更なる他の可能な実施において、方法は:コントローラによって、第1報告検出情報、第2報告検出情報、及び第3報告検出情報に基づいてパケットロス率を決定することを更に含む。
第2の態様の更なる他の可能な実施において、方法は:コントローラによって、第4シーケンス番号に基づいて第4報告検出情報を決定することであり、第4報告検出情報に含まれる第4検出ノード識別子の値は、コントローラによって受信される、第4シーケンス番号を含む全ての報告検出情報の中で最も小さい、ことと;コントローラによって、第4報告検出情報に含まれる第4の収集されたデータに基づいてパケットロス位置ノードを決定することとを更に含む。
第1の態様及び第1の態様の可能な実施のうちのいずれか1つにおいて、又は第2の態様及び第2の態様の可能な実施のうちのいずれか1つにおいて、任意に、第1検出情報はフロー識別子を更に含み、フロー識別子は、第1データパケットが属するデータフローを示す。
第1の態様及び第1の態様の可能な実施のうちのいずれか1つにおいて、又は第2の態様及び第2の態様の可能な実施のうちのいずれか1つにおいて、任意に、第1検出情報は第1長さ及び第1バージョン番号を更に含み、第1長さは、第1検出情報の長さを示し、第1バージョン番号は、第1検出情報のプロトコルバージョンを示す。
第3の態様に従って、第1ネットワークデバイスが提供される。第1ネットワークデバイスは、上記の方法における第1ネットワークデバイスの挙動を実施する機能を備える。機能は、ハードウェアに基づいて実施されてよく、あるいは、対応するソフトウェアを実行するハードウェアに基づいて実施されてよい。ハードウェア又はソフトウェアは、上記の機能に対応する1つ以上のモジュールを含む。
可能な設計において、第1ネットワークデバイスの構造は、プロセッサ及びインターフェースを含む。プロセッサは、上記の方法における対応する機能を実行することにおいて第1ネットワークデバイスを支援するよう構成される。インターフェースは、第1ネットワークデバイスと第2ネットワークデバイスとの間の通信を支援し、上記の方法における情報又は命令を第2ネットワークデバイスへ送信するか、又は上記の方法における情報又は命令を第2ネットワークデバイスから受信するよう構成される。第1ネットワークデバイスは、メモリを更に含んでもよい。メモリは、プロセッサへ結合されるよう構成され、第1ネットワークデバイスに必要であるプログラム命令及びデータを記憶する。
他の可能な設計において、第1ネットワークデバイスは、プロセッサ、送信器、受信器、ランダム・アクセス・メモリ、リード・オンリー・メモリ、及びバスを含む。プロセッサは、送信器、受信器、ランダム・アクセス・メモリ、及びリード・オンリー・メモリへバスを通じて結合される。第1ネットワークデバイスが起動する必要がある場合に、リード・オンリー・メモリに組み込まれている基本入力/出力システム又は埋め込みシステム内のブートローダが、システムを、起動するようブートし、かつ、第1ネットワークデバイスを、通常実行状態に入るようブートするために使用される。通常実行状態に入った後、第1ネットワークデバイスは、プロセッサが第1の態様及び第1の態様の可能な実施のうちのいずれか1つにおける方法を実行するように、ランダム・アクセス・メモリ内のアプリケーション・プログラム及びオペレーティング・システムを実行する。
第4の態様に従って、第1ネットワークデバイスが提供される。第1ネットワークデバイスは、メイン制御ボード及びインターフェースボードを含み、スイッチングボードを更に含んでもよい。第1ネットワークデバイスは、第1の態様及び第1の態様の可能な実施のうちのいずれか1つにおける方法を実行するよう構成される。具体的に、第1ネットワークデバイスは、第1の態様及び第1の態様の可能な実施のうちのいずれか1つにおける方法を実行するよう構成されたモジュールを含む。
第5の態様に従って、第1ネットワークデバイスが提供される。第1ネットワークデバイスは、コントローラ及び第1転送サブデバイスを含む。第1転送サブデバイスは、インターフェースボードを含み、スイッチングボードを更に含んでもよい。第1転送サブデバイスは、第4の態様におけるインターフェースボードの機能を実行するよう構成され、更には、第4の態様におけるスイッチングボードの機能を実行してもよい。コントローラは、受信器、プロセッサ、送信器、ランダム・アクセス・メモリ、リード・オンリー・メモリ、及びバスを含む。プロセッサは、受信器、送信器、ランダム・アクセス・メモリ、及びリード・オンリー・メモリへバスを通じて結合される。コントローラが起動する必要がある場合に、リード・オンリー・メモリに組み込まれている基本入力/出力システム又は埋め込みシステム内のブートローダが、システムを、起動するようブートし、かつ、コントローラを、通常実行状態に入るようブートするために使用される。通常実行状態に入った後、コントローラは、プロセッサが第4の態様におけるメイン制御ボードの機能を実行するように、ランダム・アクセス・メモリ内のアプリケーション・プログラム及びオペレーティング・システムを実行する。
第6の態様に従って、コンピュータ記憶媒体が提供され、上記の第1ネットワークデバイスによって使用されるプログラム、コード、又は命令を記憶するよう構成される。プログラム、コード、又は命令を実行する場合に、プロセッサ又はハードウェアデバイスは、上記の態様における第1ネットワークデバイスの機能又はステップを実行してよい。
第7の態様に従って、コントローラが提供される。コントローラは、上記の方法におけるコントローラの挙動を実施する機能を備える。機能は、ハードウェアに基づいて実施されてよく、あるいは、対応するソフトウェアを実行するハードウェアに基づいて実施されてよい。ハードウェア又はソフトウェアは、上記の機能に対応する1つ以上のモジュールを含む。
可能な設計において、コントローラの構造は、プロセッサ及びインターフェースを含む。プロセッサは、上記の方法における対応する機能を実行することにおいてコントローラを支援するよう構成される。インターフェースは、コントローラと第2ネットワークデバイスとの間の通信を支援し、上記の方法における情報又は命令を第2ネットワークデバイスへ送信するか、又は上記の方法における情報又は命令を第2ネットワークデバイスから受信するよう構成される。コントローラは、メモリを更に含んでもよい。メモリは、プロセッサへ結合されるよう構成され、コントローラに必要であるプログラム命令及びデータを記憶する。
他の可能な設計において、コントローラは、プロセッサ、送信器、受信器、ランダム・アクセス・メモリ、リード・オンリー・メモリ、及びバスを含む。プロセッサは、送信器、受信器、ランダム・アクセス・メモリ、及びリード・オンリー・メモリへバスを通じて結合される。コントローラが起動する必要がある場合に、リード・オンリー・メモリに組み込まれている基本入力/出力システム又は埋め込みシステム内のブートローダが、システムを、起動するようブートし、かつ、コントローラを、通常実行状態に入るようブートするために使用される。通常実行状態に入った後、コントローラは、プロセッサが第2の態様及び第2の態様の可能な実施のうちのいずれか1つにおける方法を実行するように、ランダム・アクセス・メモリ内のアプリケーション・プログラム及びオペレーティング・システムを実行する。
第8の態様に従って、コントローラが提供される。コントローラは、メイン制御ボード及びインターフェースボードを含み、スイッチングボードを更に含んでもよい。コントローラは、第2の態様及び第2の態様の可能な実施のうちのいずれか1つにおける方法を実行するよう構成される。具体的に、コントローラは、第2の態様及び第2の態様の可能な実施のうちのいずれか1つにおける方法を実行するよう構成されたモジュールを含む。
第9の態様に従って、コントローラが提供される。コントローラは、メイン制御デバイス及び第1転送サブデバイスを含む。第1転送サブデバイスは、インターフェースボードを含み、スイッチングボードを更に含んでもよい。第1転送サブデバイスは、第8の態様におけるインターフェースボードの機能を実行するよう構成され、更には、第8の態様におけるスイッチングボードの機能を実行してもよい。メイン制御デバイスは、受信器、プロセッサ、送信器、ランダム・アクセス・メモリ、リード・オンリー・メモリ、及びバスを含む。プロセッサは、受信器、送信器、ランダム・アクセス・メモリ、及びリード・オンリー・メモリへバスを通じて結合される。メイン制御デバイスが起動する必要がある場合に、リード・オンリー・メモリに組み込まれている基本入力/出力システム又は埋め込みシステム内のブートローダが、システムを、起動するようブートし、かつ、メイン制御デバイスを、通常実行状態に入るようブートするために使用される。通常実行状態に入った後、メイン制御デバイスは、プロセッサが第8の態様におけるメイン制御ボードの機能を実行するように、ランダム・アクセス・メモリ内のアプリケーション・プログラム及びオペレーティング・システムを実行する。
第10の態様に従って、コンピュータ記憶媒体が提供され、上記のコントローラによって使用されるプログラム、コード、又は命令を記憶するよう構成される。プログラム、コード、又は命令を実行する場合に、プロセッサ又はハードウェアデバイスは、上記の態様におけるコントローラの機能又はステップを実行してよい。
第11の態様に従って、ネットワークシステムが提供される。ネットワークシステムは、第1ネットワークデバイス及びコントローラを含む。第1ネットワークデバイスは、第3の態様、第4の態様、又は第5の態様における第1ネットワークデバイスである。コントローラは、第7の態様、第8の態様、又は第9の態様におけるコントローラである。
本願の実施形態で提供されるデータパケット検出方法に従って、具体的に、本願の実施形態は、インサイチュフロー情報テレメトリ(in-situ flow information telemetry又はin-band flow information telemetry)方法を提供する。検出ドメイン内のネットワークデバイスは、コントローラによって配信された制御情報に基づいて、かつ、データパケットに含まれる検出情報を使用することによって、コントローラによって要求された検出タスクのための情報収集を実施してよく、それによって、パケット転送性能を確保しながら伝送パス上のデータパケットのインサイチュ収集及び伝送パス検出を実施する。
以下は、具体的な実施形態を使用することによって、詳細な説明を独立して提供する。
図1は、本願の実施形態に従うネットワークの略構造図である。ネットワークは、コントローラ及び複数のネットワークデバイスを含む。複数のネットワークデバイスは、データフローを伝送するために、通信リンクを通じて互いへ接続されている。図1に示されるように、外部ノードデバイス1、ヘッドノードデバイス、中間ノードデバイス1、中間ノードデバイス2、エンドノードデバイス、及び外部ノードデバイス2は、通信リンクを通じて順に接続されている。データフローは、外部ノードデバイス1から出発し、ヘッドノードデバイス、中間ノードデバイス1、中間ノードデバイス2、及びエンドノードデバイスを通過し、外部ノードデバイス2に到着してよい。
コントローラは、複数のネットワークデバイスの間の伝送パス上のデータパケットに対する情報収集を実行し、かつ、伝送パス性能検出を実行するよう構成されてよい。伝送パス性能検出は、パケットロス率及びパケットロス位置決めのための検出を含む。本願のこの実施形態では、伝送パスは、データフローが通過するパスを含んでよい。コントローラは、検出ドメインを決定してよく、検出ドメインは、コントローラによって決定された検出範囲である。具体的に、可能な実施において、ネットワークエンジニアは、検出されるべき伝送パスのデバイス情報をコントローラへネットワーク管理デバイス又はユーザ装置を通じて送信する。デバイス情報は、検出されるべき伝送パスのヘッドノードデバイス識別子及びエンドノードデバイス識別子を含む。コントローラは、例えば、ノースバウンド・インターフェース(northbound interface,NBI)を通じて、デバイス情報を受信してよい。他の可能な実施において、コントローラは、前もってセットされた制御ポリシーに従って、検出されるべき伝送パスのヘッドノードデバイス識別子及びエンドノードデバイス識別子を決定する。コントローラは、ネットワーク内の複数のネットワークデバイスのトポロジを取得してよく、それにより、コントローラは、複数のネットワークデバイスのトポロジに基づいて、検出されるべき伝送パスのヘッドノードデバイス識別子及びエンドノードデバイス識別子を決定する。例えば、前もってセットされた制御ポリシーは、データ・センター(data center,DC)に含まれる転送デバイス間の伝送パスに対して検出情報収集及び性能検出を実行することである。コントローラは、DC内のトポロジに基づいて、検出されるべき伝送パスのヘッドノードデバイス識別子及びエンドノードデバイス識別子を決定する。
コントローラは、ヘッドノードデバイス識別子及びエンドノードデバイス識別子に基づいて検出ドメインを決定し、検出ドメイン内のヘッドノードデバイス及びエンドノードデバイスを決定する。検出ドメイン内の伝送パス上で、ヘッドノードデバイスとエンドノードデバイスとの間に位置するネットワークデバイスは、中間ノードデバイス、例えば、図1の中間ノードデバイス1および中間ノードデバイス2である。
任意に、コントローラは、フロー識別子を更に決定してよい。ネットワークエンジニアは、フロー識別子をコントローラへネットワーク管理デバイス又はユーザ装置を通じて送信してよく、あるいは、コントローラは、前もってセットされた制御ポリシーに従ってフロー識別子を決定する。フロー識別子は、データフローを識別するために使用される。コントローラは、フロー識別子を使用することによって、検出情報収集が実行されるべきである、検出されるべき伝送パス上の特定のデータフローを決定する。
図1に示される検出ドメインでは、ヘッドノードデバイス、中間ノードデバイス1、中間ノードデバイス2、及びエンドノードデバイスは、1つの伝送パスを通じて互いと通信する。可能な実施において、図1の検出ドメインは、複数の伝送パスを含んでもよい。例えば、中間ノードデバイス1は、リンクを通じて中間ノードデバイス3(図示せず)へ接続され、中間ノードデバイス3は、リンクを通じてエンドノードデバイスへ接続される。このようにして、データフローは、中間ノードデバイス1から中間ノードデバイス2及び中間ノードデバイス3へ負荷共有を通じて送信され得る。
図2は、本願の実施形態に従う他のネットワークの略構造図である。図1に示されるネットワーク構造に基づいて、エンドノードデバイス2が図2では加えられている。相応して、図1のエンドノードデバイスは、図2ではエンドノードデバイス1と表されている。エンドノードデバイス2は、リンクを通じて中間ノードデバイス1へ接続され、エンドノードデバイス2は更に、リンクを通じて外部ノードデバイス2へ接続される。図2に示される検出ドメインでは、複数の伝送パス出口(図2では2つの出口)がある。具体的に言えば、エンドノードデバイス1は、エンドノードデバイス1のポートを通じて外部ノードデバイス2へ接続され、エンドノードデバイス2は、エンドノードデバイス2のポートを通じて外部ノードデバイス2へ接続される。このようにして、データフローは、中間ノードデバイス1から中間ノードデバイス2及びエンドノードデバイス2へ負荷共有を通じて送信され得る。
コントローラは、通信リンクを通じて検出ドメイン内の各ネットワークデバイスと通信する。コントローラは、制御情報を検出ドメイン内のヘッドノードデバイス、中間ノードデバイス、及びエンドノードデバイスへ送信してよい(図1及び図2の検出ドメインでは、コントローラから各ネットワークデバイスの方に向けられた矢印を持った破線によって示される)。制御情報は、検出タスクタイプを含む。検出タスクタイプは、コントローラが検出ドメイン内のネットワークデバイスに実行することを要求する検出タスクを示す。例えば、検出タスクタイプは、パケットロス検出である。この場合に、検出ドメイン内のヘッドノードデバイスは、パケットロス検出の検出タスクタイプについて、データパケットに含まれる検出情報内の収集情報を決定する。収集情報は、デバイス識別子を収集することを示す。ヘッドノードデバイスは、収集情報の指示に従ってヘッドノードデバイスのデバイス識別子を収集する。ヘッドノードデバイスは、報告検出情報を生成する。報告検出情報は、検出情報に対応し、報告検出情報は、ヘッドノードデバイスのデバイス識別子を含む。ヘッドノードデバイスは、ヘッドノードデバイスの次ホップネットワークデバイス(中間ノードデバイス)に対して、検出情報を運ぶデータパケットを送信する。検出情報は、検出ノード識別子及びシーケンス番号を更に含む。検出ノード識別子は、検出情報を処理するネットワークデバイス(例えば、ヘッドノードデバイス)の検出ドメイン内の位置を示し、シーケンス番号は、検出情報を含むデータパケットのシーケンス番号を示す。このようにして、検出ドメイン内の中間ノードデバイス及びエンドノードデバイスは夫々、上記の実施において検出情報内の収集情報の指示に従ってデバイス識別子を収集し、検出情報内の検出ノード識別子を更新する。このようにして、検出情報は、データパケットとともに検出ドメイン内の伝送パスで伝送され、データパケットが通過するネットワークデバイスは、データパケット内の検出情報に基づいてデータ収集を実行し得る。
コントローラは更に、コントローラによって決定されたヘッドノードデバイスに対して、ヘッドノード識別子を運ぶ情報を送信する。ヘッドノード識別子は、デバイス識別子、デバイスIPアドレス、などを使用することによって表されてよい。ヘッドノード識別子を受信した後、ヘッドノードデバイスは、ヘッドノード識別子に基づいて、ヘッドノードデバイスがヘッドノードデバイスであると決定してよく、それにより、ヘッドノードデバイスは、検出情報をデータパケットにカプセル化してよい。任意に、ヘッドノード識別子は、コントローラによってヘッドノードデバイスへ送信される上記の制御情報において運ばれてもよい。
コントローラは更に、コントローラによって決定されたエンドノードデバイスに対して、エンドノード識別子を運ぶ情報を送信する。エンドノード識別子は、デバイス識別子、デバイスIPアドレス、などを使用することによって表されてよい。エンドノード識別子を受信した後、エンドノードデバイスは、エンドノード識別子に基づいて、エンドノードデバイスがエンドノードデバイスであると決定してよく、それにより、エンドノードデバイスは、検出情報をデータパケットから削除してよい。任意に、エンドノード識別子は、コントローラによってエンドノードデバイスへ送信される上記の制御情報において運ばれてもよい。
制御情報は、フロー識別子を更に含んでもよく、それにより、検出ドメイン内のネットワークデバイスは、フロー識別子によって示されるデータフローを検出する。本願のこの実施形態では、データフローは、伝送データのサービスタイプ、例えば、ビデオフロー及びボイスフロー、に基づいて区別されてよく、あるいは、データフローは、クインタプル情報内の一部又は全部の情報に基づいて区別されてよい。フロー識別子は、コントローラ又はネットワーク管理デバイスによって直接設定された識別子情報であってよく、あるいは、クインタプル情報に基づいてコントローラ又はネットワーク管理デバイスによって決定された識別子情報であってよい。
検出ドメイン内の各ネットワークデバイスは、報告検出情報をコントローラへ送信してよい(図1及び図2の検出ドメインでは、各ネットワークデバイスからコントローラの方に向けられた矢印を持った実線によって示される)。例えば、検出ドメイン内の中間ノードデバイスは、中間ノードデバイスの前ホップノードデバイスから受信されたデータパケット内の検出情報の指示に従って、情報を収集する。収集を完了した後、中間ノードデバイスは、生成された報告検出情報をコントローラへ送信する。コントローラは、受信された報告検出情報に基づいて伝送パスの性能を決定する。検出ドメイン内の各ネットワークデバイスは、コントローラに対して各データパケットに対応する報告検出情報を別々に送信してよく、あるいは、複数のデータパケットに対応する報告検出情報を結合し、結合された報告検出情報をコントローラへ送信してもよい。例えば、データパケット1に対応する検出情報1を処理した後、検出ドメイン内の中間ノードデバイスは、検出情報1に基づいて生成された報告検出情報1をコントローラへ送信し、そして、データパケット2に対応する検出情報2を処理した後、中間ノードデバイスは、検出情報2に基づいて生成された報告検出情報2をコントローラへ送信する。代替的に、データパケット1に対応する検出情報1を処理し、データパケット2に対応する検出情報2を処理した後、中間ノードデバイスは、報告検出情報3を生成するよう報告検出情報1及び報告検出情報2を組み合わせ、報告検出情報3をコントローラへ送信する。
上記の実施に従って、検出情報は、伝送パス上のデータパケットに対する情報収集を実施するよう、伝送パス上のデータパケットにカプセル化され、それによって、パケット転送性能を確保しながら伝送パス上のデータパケットの収集を実施する。
図3は、本願の実施形態に従うデータパケット検出方法のフローチャートである。具体的に、図3は、インサイチュフロー情報テレメトリ(in-situ flow information telemetry又はin-band flow information telemetry)方法のフローチャートである。図3に示される方法は、図1又は図2に示されるネットワーク構造に適用されてよい。方法は、次のステップを含む。
S101.コントローラは検出ドメインを決定し、このとき、検出ドメインは、コントローラによって決定された検出範囲であり、検出ドメインは、複数のネットワークデバイスを含む。
上記の実施に従って、可能な実施において、コントローラは、ネットワーク管理デバイス又はユーザ装置によって送信される検出されるべき伝送パスのデバイス情報を受信してよい。デバイス情報は、検出されるべき伝送パスのヘッドノードデバイス識別子及びエンドノードデバイス識別子を含む。例えば、ネットワークエンジニアは、第1ネットワークデバイスと第2ネットワークデバイスとの間の伝送パスが検出される必要があると要求する。ネットワークエンジニアは、第1ネットワークデバイスのデバイス識別子及び第2ネットワークデバイスのデバイス識別子をコントローラへネットワーク管理デバイス又はユーザ装置を通じて送信する。第1ネットワークデバイスのデバイス識別子及び第2ネットワークデバイスのデバイス識別子を受信した後、コントローラは、検出ドメインを決定するために、第1ネットワークデバイスを、検出されるべき伝送パスのヘッドノードデバイスとして使用し、第2ネットワークデバイスを、検出されるべき伝送パスのエンドノードデバイスとして使用する。他の可能な実施において、複数のネットワークデバイスのトポロジに基づいて、コントローラは、第1ネットワークデバイスを、検出されるべき伝送パスのヘッドノードデバイスとして使用し、第2ネットワークデバイスを、検出されるべき伝送パスのエンドノードデバイスとして使用する。検出されるべき伝送パス上で第1ネットワークデバイスと第2ネットワークデバイスとの間には少なくとも1つの中間ノードデバイスがある。更なる他の可能な実施において、コントローラは、データフローの発信元アドレスに基づいて検出ドメインのヘッドノードデバイスを決定し、データフローのあて先アドレスに基づいて検出ドメインのエンドノードデバイスを決定してよく、それにより、コントローラは検出ドメインを決定する。
図1に示されるように、コントローラによって決定された検出ドメインは、ヘッドノードデバイス、中間ノードデバイス1、中間ノードデバイス2、及びエンドノードデバイスを含む。図2に示されるように、コントローラによって決定された検出ドメインは、ヘッドノードデバイス、中間ノードデバイス1、中間ノードデバイス2、エンドノードデバイス1、及びエンドノードデバイス2を含む。
上記の実施に従って、コントローラは更に、フロー識別子を決定してよい。フロー識別子は、データフローを識別するために使用される。コントローラは、フロー識別子を使用することによって、検出情報収集が実行されるべきである、検出されるべき伝送パス上の特定のデータフローを決定する。例えば、コントローラによって決定されたフロー識別子は01であり、コントローラは、検出されるべき伝送パスを検出する場合にデータフロー01を検出する。
S102.コントローラは、第1制御情報を複数のネットワークデバイスへ送信し、このとき、第1制御情報は、検出タスクタイプを含み、検出タスクタイプは、コントローラが複数のネットワークデバイスに実行することを要求する検出タスクを示す。
S103.第1ネットワークデバイスは、コントローラによって送信された第1制御情報を受信する。
コントローラは、第1制御情報を検出ドメイン内の複数のネットワークデバイスへ送信してよい。第1制御情報に含まれる検出タスクタイプは、コントローラが複数のネットワークデバイスに実行することを要求する検出タスクを示す。例えば、コントローラは、第1制御情報を検出ドメイン内のヘッドノードデバイス、中間ノードデバイス、及びエンドノードデバイスへ送信する。第1制御情報に含まれる検出タスクタイプは、パケットロス検出である。この場合に、コントローラによって送信された第1制御情報を受信した後、検出ドメイン内のヘッドノードデバイス、中間ノードデバイス、及びエンドノードデバイスは、検出タスクタイプに基づいて、実行されるべき検出タスクがパケットロス検出であると決定し得る。
任意に、第1制御情報は、フロー識別子を更に含んでもよい。この場合に、コントローラによって送信された第1制御情報を受信した後、検出ドメイン内のヘッドノードデバイス、中間ノードデバイス、及びエンドノードデバイスは、コントローラによって示されたデータフローのための対応する検出タスクを実行し得る。
第1ネットワークデバイスが検出ドメイン内のヘッドノードデバイスである場合に、コントローラは、第1ネットワークデバイスに対して、ヘッドノード識別子を運ぶ情報を送信してよい。ヘッドノード識別子は、デバイス識別子、デバイスIPアドレス、などを使用することによって表されてよい。ヘッドノード識別子を運ぶ情報を受信した後、第1ネットワークデバイスは、第1ネットワークデバイスがヘッドノードデバイスであると決定してよく、それにより、第1ネットワークデバイスは、検出情報をデータパケットにカプセル化してよい。可能な実施において、コントローラは、ヘッドノード識別子を運ぶ情報を別に送信せず、代わりに、コントローラは、第1ネットワークデバイスがヘッドノードデバイスであると第1ネットワークデバイスに通知するよう、ヘッドノードデバイスとして働く第1ネットワークデバイスへ送信される制御情報を、ヘッドノード識別子を運ぶために使用してもよい。
第1ネットワークデバイスが検出ドメイン内のエンドノードデバイスである場合に、コントローラは、第1ネットワークデバイスに対して、エンドノード識別子を運ぶ情報を送信してよい。エンドノード識別子は、デバイス識別子、デバイスIPアドレス、などによって表されてよい。エンドノード識別子を運ぶ情報を受信した後、第1ネットワークデバイスは、第1ネットワークデバイスがエンドノードデバイスであると決定してよく、それにより、第1ネットワークデバイスは、検出情報をデータパケットから削除してよい。可能な実施において、コントローラは、エンドノード識別子を運ぶ情報を別に送信せず、代わりに、コントローラは、第1ネットワークデバイスがエンドノードデバイスであると第1ネットワークデバイスに通知するよう、エンドノードデバイスとして働く第1ネットワークデバイスへ送信される制御情報を、エンドノード識別子を運ぶために使用してもよい。
S104.第1ネットワークデバイスは、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第1データパケットを受信し、このとき、第1データパケットは第1検出情報を含み、第1検出情報は、第1検出ノード識別子、第1シーケンス番号、及び第1収集情報を含み、第1検出ノード識別子は、第1検出情報を処理するネットワークデバイスの検出ドメイン内の位置を示し、第1シーケンス番号は、第1検出情報を含む第1データパケットのシーケンス番号を示し、第1収集情報は、検出タスクタイプに対応する収集情報を示し、検出ドメインは、コントローラによって決定された検出範囲であり、検出ドメインは複数のネットワークデバイスを含み、複数のネットワークデバイスは第1ネットワークデバイスを含む。
第1検出情報は、第1検出ノード識別子、第1シーケンス番号、及び第1収集情報を含む。図4は、本願の実施形態に従う検出情報フォーマットの図である。具体的に、第1検出ノード識別子は、図4の次ホップフィールドに対応している。第1検出ノード識別子は、第1検出情報を処理するネットワークデバイスの検出ドメイン内の位置を示す。例えば、図1を参照して、ヘッドノードデバイスにおいて、第1検出ノード識別子(次ホップ)の値は0であり、中間ノードデバイス1において、第1検出ノード識別子の値は1に更新され、中間ノードデバイス2において、第1検出ノード識別子の値は2に更新され、エンドノードデバイスにおいて、第1検出ノード識別子の値は3に更新される。具体的に言えば、第1検出情報を運ぶ第1データパケットが検出ドメイン内のネットワークデバイスによって処理される場合に、ネットワークデバイスは、第1検出ノード識別子の値をステップ値だけ増やす。例えば、ステップ値は1である。同様に、図2の検出ドメイン内のネットワークデバイスは、同じ方法を使用することによって第1検出ノード識別子を更新する。留意されるべきは、第1検出ノード識別子の値が中間ノードデバイス1で1に更新される場合に、第1検出ノード識別子の値は、中間ノードデバイス2及びエンドノードデバイス2の両方で2に更新される点である。
第1シーケンス番号は、図4のシーケンス番号フィールドに対応している。第1シーケンス番号は、第1検出情報を含む第1データパケットのシーケンス番号を示す。第1シーケンス番号の値は、検出ドメイン内のヘッドノードデバイスによって決定され、第1シーケンス番号の初期値は、ヘッドノードデバイスによって決定される。例えば、データフロー01は全部で1000個のデータパケットを含み、ヘッドノードデバイスによって決定される第1シーケンス番号の初期値は0である、と仮定される。ヘッドノードデバイスがコントローラによって送信された第1制御情報を受信し、第1制御情報に基づいてデータフロー01内のデータパケットに第1検出情報をカプセル化する場合に、ヘッドノードデバイスに位置するデータパケットがデータフロー01内の100番目のデータパケット(データパケット100と表記される)であるならば、ヘッドノードデバイスは、データパケット100のシーケンス番号の値を0にセットし、次いで、データフロー01内の101番目のデータパケット(データパケット101と表記される)のシーケンス番号の値を100にセットする。
第1収集情報は、図4の収集情報フィールドに対応している。第1収集情報は、検出タスクタイプに対応する収集情報を示す。検出ドメイン内のネットワークデバイスは、第1収集情報の指示に従って、対応する情報を収集する。例えば、検出タスクタイプはパケットロス検出であり、第1収集情報の中身は、ネットワークデバイスのデバイス識別子である。具体的に、第1収集情報の値は01であり、01は、ネットワークデバイスのデバイス識別子を収集することを示す。例えば、検出ドメイン内の中間ノードデバイスは、第1収集情報の指示(ネットワークデバイスのデバイス識別子を収集することを要求する)に従って、中間ノードデバイスのデバイス識別子を収集する。本願のこの実施において、任意に、デバイス識別子は、ネットワークデバイスのループバック(loopback)IPアドレスであってよい。
任意に、第1検出情報は、長さフィールド及びバージョンフィールドを更に含んでもよい。図4に示されるように、長さフィールドは、第1検出情報の長さを示し、それにより、第1検出情報を処理する場合に、ネットワークデバイスは、長さフィールドの指示に従って第1検出情報の場所を見つけることができる。バージョンフィールドは、第1検出情報を生成するバージョンを示し、それにより、検出ドメイン内のネットワークデバイスは、統一されたバージョンに基づいて第1検出情報を処理することができる。
任意に、バージョンフィールドの長さは2ビットであり、長さフィールドの長さは4ビットであり、次ホップフィールドの長さは6ビットであり、シーケンス番号フィールドの長さは16ビットであり、収集情報フィールドの長さは32ビットである。加えて、図4は、1つの収集情報フィールドを示す。実際の適用では、第1検出情報は、1つよりも多い収集情報フィールドを含んでよく、それにより、検出ドメイン内のネットワークデバイスは、複数の収集情報フィールドを同時に処理し、複数の情報を収集し得る。
第1ネットワークデバイスが検出ドメイン内のヘッドノードデバイスである場合に、第1ネットワークデバイスは、ステップS1041を実行してよく、第1ネットワークデバイスは、第1検出情報を第1データパケットにカプセル化する。
具体的に、コントローラによって送信された第1制御情報を受信した後、ヘッドノードデバイスとして働く第1ネットワークデバイスは、第1制御情報によって示された検出タスクを実行する。第1ネットワークデバイスが検出タスクを実行する期間に、第1ネットワークデバイスは、第1ネットワークデバイスによって処理されたデータパケットに第1検出情報をカプセル化する。例えば、第1データパケットは、第1ネットワークデバイスが検出タスクを実行する期間に処理されたデータパケットであり、第1ネットワークデバイスは、第1検出情報を第1データパケットにカプセル化する。その上、第1ネットワークデバイスは、第1検出ノード識別子、第1シーケンス番号、及び第1収集情報をセットする。例えば、第1ネットワークデバイスは、第1ネットワークデバイスの前ホップネットワークデバイス(第1ネットワークデバイスへ接続される検出ドメイン外のネットワークデバイス)からデータパケット01を受信し、データパケット01は、第1ネットワークデバイスが検出タスクを実行し始める時点で受信されたデータパケットである。第1ネットワークデバイスは、検出情報01をデータパケット01にカプセル化する。検出情報01において、検出ノード識別子の値は0であり、シーケンス番号の値は0であり、収集情報の値は01(ネットワークデバイスのデバイス識別子を集めることを示す)である。検出情報01をデータパケット01にカプセル化した後、第1ネットワークデバイスは、続くS105に従って、対応する収集動作を実行してよい。次いで、第1ネットワークデバイスは、第1ネットワークデバイスの前ホップネットワークデバイスからデータパケット02を受信し、データパケット02は、データパケット01の次のデータパケットである。第1ネットワークデバイスは、検出情報02をデータパケット02にカプセル化する。検出情報02において、検出ノード識別子の値は0であり、シーケンス番号の値は1であり、収集情報の値は01である。検出情報02をデータパケット02にカプセル化した後、第1ネットワークデバイスは、続くS105に従って、対応する収集動作を実行してよい。
任意に、第1検出情報を第1データパケットにカプセル化する場合に、ヘッドノードデバイスとして働く第1ネットワークデバイスは、データパケットのタイプに基づいて第1検出情報のカプセル化位置を決定してよい。可能な実施において、第1ネットワークデバイスは、タイプ-長さ-値(type-length-value,TLV)フィールドを第1データパケットに加えてよく、それにより、第1ネットワークデバイスは、TLVフィールドを使用することによって第1検出情報の場所を見つける。例えば、第1データパケットはMPLSパケットである。第1ネットワークデバイスは、一般随伴チャネルヘッダラベル(generic associated channel header label,GAL)をMPLSパケットに加え、第1ネットワークデバイスは、GALの隣に第1検出情報を加える。他の例として、第1データパケットはインターネット・プロトコル・バージョン6(Internet Protocol version 6,IPv6)パケットであり、IPv6パケットは、ホップ・バイ・ホップ(hop by hop,HBH)拡張ヘッダを含む。第1ネットワークデバイスは、第1検出情報の場所を見つけるためにTLVフィールドをHBH拡張ヘッダに加える。
第1ネットワークデバイスが検出ドメイン内の中間ノードデバイスである場合に、第1ネットワークデバイスは、第1ネットワークデバイスの前ホップネットワークデバイス(第1ネットワークデバイスの前ホップネットワークデバイスはヘッドノードデバイスであるとする)によって送信された第1データパケットを受信してよく、第1データパケットは第1検出情報を含む。第1ネットワークデバイスは、第1検出情報に基づいて、続くS105によって示される収集動作を実行してよい。
第1ネットワークデバイスが検出ドメイン内のエンドノードデバイスである場合に、第1ネットワークデバイスは、第1ネットワークデバイスの前ホップネットワークデバイス(第1ネットワークデバイスの前ホップネットワークデバイスは中間ノードデバイスであるとする)によって送信された第1データパケットを受信してよく、第1データパケットは第1検出情報を含む。第1ネットワークデバイスは、第1検出情報に基づいて、続くS105によって示される収集動作を実行してよい。収集動作を完了した後、第1ネットワークデバイスは、S1051によって示される次の動作を更に実行してよく、第1ネットワークデバイスは、第1データパケットから第1検出情報を削除する。第1ネットワークデバイスは、検出ドメイン外の次ホップネットワークデバイスに対して、第1検出情報が削除されている第1データパケットを送信する。このようにして、検出ドメイン外のネットワークデバイスは、第1データパケット内の第1検出情報を識別することができる。
S105.第1ネットワークデバイスは、第1収集情報に基づいて、第1収集情報に対応する第1の収集されたデータを決定し、第1ネットワークデバイスは、第1検出ノード識別子を更新する。
S106.第1ネットワークデバイスは、第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第1検出情報を運ぶ第1データパケットを送信する。
S104の説明を参照して、例えば、第1ネットワークデバイスが検出ドメイン内のヘッドノードデバイスである場合に、第1ネットワークデバイスは、データパケット01を受信し、検出情報01をデータパケット01にカプセル化する。検出情報01において、検出ノード識別子の値は0であり、シーケンス番号の値は0であり、収集情報の値は01(ネットワークデバイスのデバイス識別子を集めることを示す)である。第1ネットワークデバイスは、検出情報01内の収集情報の値01の指示に従って、第1ネットワークデバイスのデバイス識別子(例えば、ヘッドノードデバイスのデバイス識別子は001である)を収集し、検出ノード識別子の値を0(依然として現在のホップデバイス上にある)に更新する。次いで、第1ネットワークデバイスは、収集後に取得された収集されたデータを記憶し、収集されたデータの値は、第1ネットワークデバイスのデバイス識別子である。具体的に、第1ネットワークデバイスは、検出情報01に基づいて、検出情報01に対応する報告検出情報01を生成する。報告検出情報01は、0の値を有する検出ノード識別子と、0の値を有するシーケンス番号と、001の値を有する収集されたデータとを含む。第1ネットワークデバイスは、報告検出情報01を記憶する。データパケット011の処理を完了した後、第1ネットワークデバイスは、データパケット01の元の伝送パス上で検出ドメイン内の中間ノードデバイスに対して、更新された検出情報01を運ぶデータパケット01を送信する。同様に、第1ネットワークデバイスは、データパケット02内の検出情報02に対して同じ動作を実行する。
第1ネットワークデバイスが検出ドメイン内の中間ノードデバイスである場合に、第1ネットワークデバイスは、ヘッドノードデバイスからデータパケット01を受信する。データパケット01は検出情報01を含み、検出情報01において、検出ノード識別子の値は0であり、シーケンス番号の値は0であり、収集情報の値は01である。第1ネットワークデバイスは、検出情報01内の収集情報の値01の指示に従って、第1ネットワークデバイスのデバイス識別子(例えば、中間ノードデバイスのデバイス識別子は002である)を収集し、検出ノード識別子の値を1に更新する。次いで、第1ネットワークデバイスは、収集後に取得された収集されたデータを記憶し、収集されたデータの値は、第1ネットワークデバイスのデバイス識別子である。具体的に、第1ネットワークデバイスは、検出情報01に基づいて、検出情報01に対応する報告検出情報01を生成する。報告検出情報01は、1の値を有する検出ノード識別子と、0の値を有するシーケンス番号と、002の値を有する収集されたデータとを含む。第1ネットワークデバイスは、報告検出情報01を記憶する。データパケット01の処理を完了した後、第1ネットワークデバイスは、データパケット01の元の伝送パス上で検出ドメイン内の中間ノードデバイスの次ホップネットワークデバイス(例えば、エンドノードデバイス)に対して、更新された検出情報01を運ぶデータパケット01を送信する。同様に、第1ネットワークデバイスは、データパケット02内の検出情報02に対して同じ動作を実行する。
第1ネットワークデバイスが検出ドメイン内のエンドノードデバイスである場合に、第1ネットワークデバイスは、中間ノードデバイスからデータパケット01を受信する。データパケット01は検出情報01を含み、検出情報01において、検出ノード識別子の値は1であり、シーケンス番号の値は0であり、収集情報の値は01である。第1ネットワークデバイスは、検出情報01内の収集情報の値01の指示に従って、第1ネットワークデバイスのデバイス識別子(例えば、エンドノードデバイスのデバイス識別子は003である)を収集し、検出ノード識別子の値を2に更新する。次いで、第1ネットワークデバイスは、収集後に取得された収集されたデータを記憶する。収集されたデータの値は、第1ネットワークデバイスのデバイス識別子である。具体的に、第1ネットワークデバイスは、検出情報01に基づいて、検出情報01に対応する報告検出情報01を生成する。報告検出情報01は、2の値を有する検出ノード識別子と、0の値を有するシーケンス番号と、003の値を有する収集されたデータとを含む。第1ネットワークデバイスは、報告検出情報01を記憶する。データパケット01の処理を完了した後、第1ネットワークデバイスは、データパケット01から検出情報01を削除し、データパケット01の元の伝送パス上で検出ドメイン内のエンドノードデバイスの次ホップネットワークデバイス(例えば、エンドノードデバイスへ接続される検出ドメイン外のネットワークデバイス)に対して、検出情報01を含まないデータパケット01を送信する。同様に、第1ネットワークデバイスは、データパケット02内の検出情報02に対して同じ動作を実行する。
任意に、第1ネットワークデバイス及びコントローラは、次の動作S107及びS108を更に実行してよい。
S107.第1ネットワークデバイスは、第1報告検出情報をコントローラへ送信し、このとき、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含む。
S108.コントローラは、第1ネットワークデバイスによって送信された第1報告検出情報を受信する。
第1ネットワークデバイスは、収集され記憶された第1報告検出情報をコントローラへ送信してよい。相応して、コントローラは、受信された第1報告検出情報に基づいて、検出ドメイン内の伝送パスに対する性能検出を実行してよい。例えば、コントローラは、検出ドメイン内の各ネットワークデバイスによって収集された報告検出情報に基づいて、パケットロス率を計算しかつパケットロス位置決めを実行する。任意に、第1ネットワークデバイスは、コントローラに対して、各データパケットに対応する収集され記憶された報告検出情報を送信してよい。代替的に、第1ネットワークデバイスは、コントローラによって配信された第1制御情報に基づいて、各データパケットに対応する収集され記憶された報告検出情報の中で選択を行い、それから、いくつかの報告検出情報をコントローラへ送信してよい。代替的に、第1ネットワークデバイスは、複数の報告検出情報を1つの報告検出情報へと結合し、結合された報告検出情報をコントローラへ送信してよい。
この実施形態で提供されるデータパケット検出方法は、特に、インサイチュフロー情報テレメトリ方法に関係がある。検出ドメイン内のネットワークデバイスは、コントローラによって配信された制御情報に基づいて、かつ、データパケットに含まれる検出情報を使用することによって、コントローラによって要求された検出タスクのための情報収集を実施してよく、それによって、パケット転送性能を確保しながら伝送パス上のデータパケットのインサイチュ収集及び伝送パス検出を実施する。
S101からS106に基づいて、次の実施は、第1制御情報内の検出タスクタイプがパケットロス検出であるところの例を使用することによって、記載される。具体的に、検出タスクタイプはパケットロス検出であり、第1制御情報は検出開始時及び検出終了時を更に含み、第1ネットワークデバイスは、検出ドメイン内のヘッドノードデバイスであり、第1データパケットは、検出開始時から始まる期間にヘッドノードデバイスによってヘッドノードデバイスの次ホップネットワークデバイスへ送信された最初のデータパケットであり、第1の収集されたデータは、ヘッドノードデバイスのデバイス識別子を含み、そして、方法は次のステップを更に含む。
S201.ヘッドノードデバイスは、ヘッドノードデバイスの前ホップネットワークデバイスによって送信された第2データパケットを受信する。
S202.ヘッドノードデバイスは、第2検出情報を第2データパケットにカプセル化し、このとき、第2検出情報は、第2検出ノード識別子、第2シーケンス番号、及び第2収集情報を含む。
S203.ヘッドノードデバイスは、第2収集情報に基づいて、第2収集情報に対応する第2の収集されたデータを決定し、ヘッドノードデバイスは、第2検出ノード識別子を更新し、このとき、第2の収集されたデータは、ヘッドノードデバイスのデバイス識別子を含み、第2シーケンス番号は、第1シーケンス番号よりも大きく、第2検出ノード識別子は、第1検出ノード識別子と同じである。
S204.ヘッドノードデバイスは、ヘッドノードデバイスの次ホップネットワークデバイスに対して、更新された第2検出情報を運ぶ第2データパケットを送信し、このとき、第2データパケットは、検出終了時前にヘッドノードデバイスによってヘッドノードデバイスの次ホップネットワークデバイスへ送信された最後のデータパケットである。
S205.ヘッドノードデバイスは、第1報告検出情報及び第2報告検出情報をコントローラへ送信し、このとき、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含み、第2報告検出情報は、更新された第2検出ノード識別子、第2シーケンス番号、及び第2の収集されたデータを含む。
S206.コントローラは、ヘッドノードデバイスによって送信される第1報告検出情報及び第2報告検出情報を受信する。
上記の実施に従って、ヘッドノードデバイスがコントローラによって送信された第1制御情報を受信した後、ヘッドノードデバイスは、第1制御情報内の検出タスクタイプに基づいて、ヘッドノードデバイスによって実行されるべき検出タスクがパケットロス検出であると決定し得る。加えて、ヘッドノードデバイスは、第1制御情報に基づいてパケットロス検出のための検出開始時及び検出終了時を更に決定し得る。データパケット01(第1データパケットに対応する)は、検出開始時から始まる期間にヘッドノードデバイスによってヘッドノードデバイスの次ホップネットワークデバイスへ送信された最初のデータパケットである、と仮定される。ヘッドノードデバイスは、上記の実施に従ってデータパケット01に検出情報01をカプセル化し、検出情報01に基づいて報告検出情報01を取得してよい。検出情報01において、検出ノード識別子の値は0であり、シーケンス番号の値は0であり、収集情報の値は01(ネットワークデバイスのデバイス識別子を集めることを示す)である。報告検出情報01において、検出ノード識別子の値は0であり、シーケンス番号の値は0であり、収集されたデータの値は001(例えば、ヘッドノードデバイスのデバイス識別子が001である)である。
検出開始時から検出終了時までの期間に、ヘッドノードデバイスは、複数の報告検出情報を取得及び記憶するよう上記の実施に従って複数のデータパケットを処理し、複数の処理されたデータパケットをヘッドノードデバイスの次ホップネットワークデバイスへ送信する。
ヘッドノードデバイスは、ヘッドノードデバイスの前ホップネットワークデバイスによって送信されたデータパケット101(上記の第2データパケットに対応する)を更に受信する。データパケット101は、検出終了時前にヘッドノードデバイスによってヘッドノードデバイスの次ホップネットワークデバイスへ送信された最後のデータパケットである。100個のデータパケットが、検出開始時から検出終了時までの期間にヘッドノードデバイスの次ホップネットワークデバイスへ送信されることが知られ得る。ヘッドノードデバイスは、検出情報101をデータパケット101にカプセル化する。検出情報101において、検出ノード識別子の値は0であり、シーケンス番号の値は100であり、収集情報の値は01である。ヘッドノードデバイスは、検出情報101内の収集情報に基づいて、対応する報告検出情報101を決定し、検出ノード識別子を更新する。報告検出情報101において、検出ノード識別子の値は0であり、シーケンス番号の値は100であり、収集されたデータの値は001である。
報告検出情報01を取得した後、ヘッドノードデバイスは、ヘッドノードデバイスのバッファに報告検出情報01を格納する。次いで、ヘッドノードデバイスは、ヘッドノードデバイスの次ホップネットワークデバイスに対して、更新された検出情報01を運ぶデータパケット01を送信する。報告検出情報101を取得した後、ヘッドノードデバイスは、ヘッドノードデバイスのバッファに報告検出情報101を格納する。次いで、ヘッドノードデバイスは、ヘッドノードデバイスの次ホップネットワークデバイスに対して、更新された検出情報101を運ぶデータパケット101を送信する。ヘッドノードデバイスは、報告検出情報01及び報告検出情報101をコントローラへ更に送信する。コントローラは、報告検出情報01及び報告検出情報101を受信し、それにより、コントローラは、報告検出情報01及び報告検出情報101に基づいて、検出ドメイン内の伝送パスに対するパケットロス検出を実行することができる。理解されるべきは、ヘッドノードデバイスは、コントローラに対して、検出期間内の最初のデータパケットに対応する報告検出情報と、検出期間内の最後のデータパケットに対応する報告検出情報とを送信し得る点である。代替的に、ヘッドノードデバイスは、コントローラに対して、検出期間内の全てのデータパケットに対応する報告検出情報を送信してもよい。
次の実施は、S101からS106に基づいて、S201からS206を参照して記載される。具体的に、第1ネットワークデバイスは、検出ドメイン内の中間ノードデバイスであり、第1データパケットは、検出開始時から始まる期間に中間ノードデバイスによってヘッドノードデバイスから受信されたデータパケットであり、第1の収集されたデータは、ヘッドノードデバイスのデバイス識別子を含む。方法は、次のステップを更に含む。
S301.中間ノードデバイスは、前もってセットされた時間だけ検出終了時の値を延ばし、検出終了時の前記値を更新する。
S302.中間ノードデバイスは、検出開始時から更新された検出終了時までの期間に、中間ノードデバイスの前ホップネットワークデバイスによって送信された第2データパケットを受信し、このとき、第2データパケットは第2検出情報を含み、第2検出情報は、第2検出ノード識別子、第2シーケンス番号、及び第2収集情報を含む。
S303.中間ノードデバイスは、第2収集情報に基づいて、第2収集情報に対応する第2の収集されたデータを決定し、中間ノードデバイスは、第2検出ノード識別子を更新し、このとき、第2の収集されたデータは、中間ノードデバイスのデバイス識別子を含み、第2シーケンス番号は、期間内に中間ノードデバイスによって受信される複数のデータパケットのシーケンス番号の中の最大シーケンス番号であり、第1データパケットは、期間内に中間ノードデバイスによって受信されたデータパケットであり、第1シーケンス番号は、期間内に中間ノードデバイスによって受信される複数のデータパケットのシーケンス番号の中の最小シーケンス番号である。
S304.中間ノードデバイスは、中間ノードデバイスの次ホップネットワークデバイスに対して、更新された第2検出情報を運ぶ第2データパケットを送信する。
S305.中間ノードデバイスは、第3報告検出情報を生成し、このとき、第3報告検出情報は、第3検出ノード識別子、第3シーケンス番号、及び第3の収集されたデータを含み、第3検出ノード識別子は、更新された第2検出ノード識別子と同じであり、第3の収集されたデータは、中間ノードデバイスのデバイス識別子を含み、第3シーケンス番号は、期間内に中間ノードデバイスによって受信される複数のデータパケットのシーケンス番号から抜けているシーケンス番号であり、第3シーケンス番号は、第1シーケンス番号よりも大きく、第2シーケンス番号よりも小さい。
S306.中間ノードデバイスは、第1報告検出情報、第2報告検出情報、及び第3報告検出情報をコントローラへ送信し、このとき、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含み、第2報告検出情報は、更新された第2検出ノード識別子、第2シーケンス番号、及び第2の収集されたデータを含む。
S307.コントローラは、中間ノードデバイスによって送信される第1報告検出情報、第2報告検出情報、及び第3報告検出情報を受信する。
上記の実施に従って、中間ノードデバイスがコントローラによって送信された第1制御情報を受信した後、中間ノードデバイスは、第1制御情報内の検出タスクタイプに基づいて、中間ノードデバイスによって実行されるべき検出タスクがパケットロス検出であると決定し得る。加えて、中間ノードデバイスは、第1制御情報に基づいてパケットロス検出のための検出開始時及び検出終了時を更に決定し得る。中間ノードデバイスは、前もってセットされた時間だけ検出終了時の値を延ばし、検出終了時の値を更新する。例えば、検出開始時は2018年5月7日10:00であり、検出終了時は2018年5月7日10:02である。中間ノードデバイスは、検出終了時を2018年5月7日10:05に更新し、それにより、中間ノードデバイスは、検出期間にヘッドノードデバイスによって送信される全てのデータパケットを受信することができる。
S201からS206の記載を参照して、中間ノードデバイスは、ヘッドノードデバイスによって送信されたデータパケット01を受信し、検出情報01に基づいて報告検出情報01を決定し、検出ノード識別子を更新する。従って、処理が中間ノードデバイスによって実行された後、検出情報01において、検出ノード識別子の値は1であり、シーケンス番号の値は0であり、収集情報の値は01であり、報告検出情報01において、検出ノード識別子の値は1であり、シーケンス番号の値は0であり、収集されたデータの値は002(例えば、中間ノードデバイスのデバイス識別子が002である)である。中間ノードデバイスは、上記の実施において、データパケット01の後にヘッドノードデバイスによって送信される複数のデータパケットを処理する。次いで、中間ノードデバイスは、ヘッドノードデバイスによって送信されたデータパケット101を受信し、検出情報101に基づいて報告検出情報101を決定し、検出ノード識別子を更新する。従って、処理が中間ノードデバイスによって実行された後、検出情報101において、検出ノード識別子の値は1であり、シーケンス番号の値は100であり、収集情報の値は01であり、報告検出情報101において、検出ノード識別子の値は1であり、シーケンス番号の値は100であり、収集されたデータの値は002(例えば、中間ノードデバイスのデバイス識別子が002である)である。
報告検出情報01を取得した後、中間ノードデバイスは、中間ノードデバイスのバッファに報告検出情報01に格納する。次いで、中間ノードデバイスは、中間ノードデバイスの次ホップネットワークデバイスに対して、更新された検出情報01を運ぶデータパケット01を送信する。報告検出情報101を取得した後、中間ノードデバイスは、中間ノードデバイスのバッファに報告検出情報101を格納する。次いで、中間ノードデバイスは、中間ノードデバイスの次ホップネットワークデバイスに対して、更新された検出情報101を運ぶデータパケット101を送信する。加えて、検出期間が終了した後、中間ノードデバイスは、報告検出情報01に含まれるシーケンス番号が、期間内に中間ノードデバイスによって受信される複数のデータパケットのシーケンス番号の中の最小シーケンス番号であり、報告検出情報101内のシーケンス番号が、期間内に中間ノードデバイスによって受信される複数のデータパケットのシーケンス番号の中の最大シーケンス番号であると決定し得る。
50のシーケンス番号を有するデータパケット51が失われる、と仮定される。すなわち、中間ノードデバイスは、ヘッドノードデバイスによって送信されたデータパケット51を受信することができない。中間ノードデバイスは、ヘッドノードデバイスから受信される最小シーケンス番号を有するデータパケット及び最大シーケンス番号を有するデータパケットと、最小シーケンス番号から最大シーケンス番号の間のシーケンス番号に対応するデータパケットとに基づいて、50のシーケンス番号を有するデータパケット51が受信されていないと決定し得る。中間ノードデバイスは報告検出情報51を生成する。報告検出情報51において、検出ノード識別子の値は1であり、シーケンス番号の値は50であり、収集されたデータの値は002である。中間ノードデバイスは報告検出情報51を記憶する。
中間ノードデバイスは、報告検出情報01と、報告検出情報101と、受信されないデータパケット51に対応する報告検出情報51とをコントローラへ更に送信する。コントローラは、ヘッドノードデバイスによって送信された報告検出情報に基づいて、ヘッドノードデバイスによって送信されるデータパケットの総数を決定し得る。コントローラは、中間ノードデバイスによって送信された報告検出情報に基づいて、ヘッドノードデバイスから中間ノードデバイスへの伝送パスで失われたパケットの数を決定し得る(例えば、上記の方法を使用することによって、データパケット21、データパケット45、及びデータパケット51が失われていると決定する)。このようにして、コントローラは、ヘッドノードデバイスから中間ノードデバイスへの伝送パスのパケットロス率を決定することができる。
上記の実施は、例として中間ノードデバイスを使用することによって記載されている。実際に、S301からS307は、エンドノードデバイスにても適用されてよい。更に、上記の実施に従って、エンドノードデバイスは更に、データパケットから検出情報を削除し、検出情報を運ばないデータパケットへとデータパケットを回復してよい。
上記の実施の記載では、中間ノードデバイスによって受信される最小のシーケンス番号を有するデータパケット及び最大シーケンス番号を有するデータパケットが、検出期間にヘッドノードデバイスによって送信される最初のデータパケット(第1データパケット)及び最後のデータパケット(第2データパケット)である例が、説明のために使用されている。実際の適用では、パケットロスは、伝送プロセスで起こる可能性があり、あるいは、検出ドメイン内のネットワークデバイスは、データパケットを2つのネットワーク(例えば、図2のエンドノードデバイス2及び中間ノードデバイス2)へ負荷共有を通じて送信する。従って、検出ドメイン内の各ネットワークデバイスは、検出期間における最小のシーケンス番号を有するデータパケットに対応する報告検出情報及び最大シーケンス番号を有するデータパケットに対応する報告検出情報のみを決定する必要があり、次いで、ネットワークデバイスは、最小シーケンス番号を有するデータパケットから最大シーケンス番号を有するデータパケットの間の失われたデータパケットに対応する報告検出情報を決定する。
可能な実施において、検出ドメイン内のネットワークデバイスは、複数の報告検出情報を結合し、結合された報告検出情報をコントローラへ報告してよい。例えば、S306で、中間ノードデバイスは、第1報告検出情報、第2報告検出情報、及び第3報告検出情報に基づいて第4報告検出情報を生成する。第4報告検出情報は、検出ノード識別子(検出ドメイン内の中間ノードデバイスの位置)、中間ノードデバイスのデバイス識別子、第1報告検出情報に含まれるシーケンス番号、第2報告検出情報に含まれるシーケンス番号、及び第3報告検出情報に含まれるシーケンス番号を含む。
コントローラは、検出ドメイン内の各ネットワークデバイスから受信された報告検出情報に基づいて、データパケットが失われる検出ドメイン内のパケットロス位置を更に決定してよい。例えば、図1に示されるように、コントローラは、エンドノードデバイスによって報告された報告検出情報に基づいて、値が50である第5シーケンス番号に対応するデータパケットが失われていると決定し得る。コントローラは、第5シーケンス番号の値に基づいて、第5シーケンス番号を含み、検出ノード識別子が最小の値を有している報告検出情報を、中間ノードデバイス1及び中間ノードデバイス2によって報告された報告検出情報から探す。コントローラは、中間ノードデバイス1からの第5報告検出情報が第5シーケンス番号を含み、第5報告検出情報に含まれる第5検出ノード識別子の値が最小であると決定する、と仮定される。コントローラは、第5報告検出情報に含まれる第5の収集されたデータ(中間ノードデバイス1のデバイス識別子)に基づいて、パケットロス位置ノードを決定する。
上記の実施において、検出ドメイン内のネットワークデバイスは、コントローラに対して、検出期間内の全てのデータパケットの報告検出情報を報告せず、最小シーケンス番号を有する報告検出情報、最大シーケンス番号を有する報告検出情報、及び失われたデータパケットに対応する報告検出情報を報告する。実際の適用では、検出ドメイン内のネットワークデバイスは、検出期間内の全てのデータパケットの報告検出情報をコントローラへ報告してもよい。このようにして、コントローラは、パケットロス率を直接計算し、各ネットワークノードによって実行される前処理の必要なしに、各ノードによって報告された報告検出情報に基づいてパケットロス位置決めを行うことができる。検出ドメイン内のネットワークデバイスが全ての報告検出情報を報告する実施において、コントローラがパケットロス位置決めを行う場合に、コントローラは最初に、失われたシーケンス番号を決定し、それから、失われたシーケンス番号を含み、検出ノード識別子が最大の値を有している報告検出情報(例えば、第6報告検出情報)を、収集された報告検出情報から探す。コントローラは、第6報告検出情報に含まれる第6の収集されたデータに基づいて、パケットロス位置ノードを決定する。
図5は、本願の実施形態に従う第1ネットワークデバイス1000の略構造図である。図5に示される第1ネットワークデバイス1000は、上記の実施形態における方法で第1ネットワークデバイスによって実行される対応するステップを実行してよい。図5に示されるように、第1ネットワークデバイス1000は、受信ユニット1002、処理ユニット1004、及び送信ユニット1006を含む。
受信ユニット1002は、コントローラによって送信された第1制御情報を受信するよう構成され、このとき、第1制御情報は検出タスクタイプを含み、検出タスクタイプは、コントローラが第1ネットワークデバイスに実行することを要求する検出タスクを示す。
受信ユニット1002は、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第1データパケットを受信するよう更に構成され、このとき、第1データパケットは第1検出情報を含み、第1検出情報は、第1検出ノード識別子、第1シーケンス番号、及び第1収集情報を含み、第1検出ノード識別子は、第1検出情報を処理するネットワークデバイスの検出ドメイン内の位置を示し、第1シーケンス番号は、第1検出情報を含む第1データパケットのシーケンス番号を示し、第1収集情報は、検出タスクタイプに対応する収集情報を示し、検出ドメインは、コントローラによって決定された検出範囲であり、検出ドメインは複数のネットワークデバイスを含み、複数のネットワークデバイスは第1ネットワークデバイスを含む。
処理ユニット1004は、第1収集情報に基づいて、第1収集情報に対応する第1の収集されたデータを決定するよう構成され、処理ユニット1004は、第1検出ノード識別子を更新するよう更に構成される。
送信ユニット1006は、第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第1検出情報を運ぶ第1データパケットを送信するよう構成される。
任意に、処理ユニット1004は、受信ユニット1002が第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第1データパケットを受信した後に、第1検出情報を第1データパケットにカプセル化するよう更に構成される。
任意に、処理ユニット1004は、送信ユニット1006が第1データパケットを第1ネットワークデバイスの次ホップネットワークデバイスへ送信する前に、第1データパケットから第1検出情報を削除するよう更に構成される。
任意に、送信ユニット1006は、第1報告検出情報をコントローラへ送信するよう更に構成され、このとき、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含む。
任意に、検出タスクタイプはパケットロス検出であり、第1制御情報は検出開始時及び検出終了時を更に含み、第1ネットワークデバイスは、検出ドメイン内のヘッドノードデバイスであり、第1データパケットは、検出開始時から始まる期間に送信ユニット1006によって第1ネットワークデバイスの次ホップネットワークデバイスへ送信された最初のデータパケットであり、第1の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含む。受信ユニット1002は、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第2データパケットを受信するよう更に構成される。処理ユニット1004は、第2検出情報を第2データパケットにカプセル化するよう更に構成され、このとき、第2検出情報は、第2検出ノード識別子、第2シーケンス番号、及び第2収集情報を含む。処理ユニット1004は、第2収集情報に基づいて、第2収集情報に対応する第2の収集されたデータを決定するよう更に構成され、処理ユニット1004は、第2検出ノード識別子を更新するよう更に構成され、このとき、第2の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、第2シーケンス番号は、第1シーケンス番号よりも大きく、第2検出ノード識別子は、第1検出ノード識別子と同じである。送信ユニット1006は、第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第2検出情報を運ぶ第2データパケットを送信するよう更に構成され、このとき、第2データパケットは、検出終了時前に送信ユニット1006によって第1ネットワークデバイスの次ホップネットワークデバイスへ送信された最後のデータパケットである。送信ユニット1006は、第1報告検出情報及び第2報告検出情報をコントローラへ送信するよう更に構成され、このとき、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含み、第2報告検出情報は、更新された第2検出ノード識別子、第2シーケンス番号、及び第2の収集されたデータを含む。
任意に、検出タスクタイプはパケットロス検出であり、第1制御情報は検出開始時及び検出終了時を更に含み、第1ネットワークデバイスは、検出ドメイン内の中間ノードデバイス又はエンドノードデバイスであり、第1の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含む。処理ユニット1004は、前もってセットされた時間だけ検出終了時の値を延ばし、検出終了時の値を更新するよう更に構成される。受信ユニット1002は、検出開始時から更新された検出終了時までの期間に、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第2データパケットを受信するよう更に構成され、このとき、第2データパケットは第2検出情報を含み、第2検出情報は、第2検出ノード識別子、第2シーケンス番号、及び第2収集情報を含む。処理ユニット1004は、第2収集情報に基づいて、第2収集情報に対応する第2の収集されたデータを決定するよう更に構成され、処理ユニット1004は、第2検出ノード識別子を更新するよう更に構成され、このとき、第2の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、第2シーケンス番号は、期間内に受信ユニット1002によって受信される複数のデータパケットのシーケンス番号の中の最大シーケンス番号であり、第1データパケットは、期間内に受信ユニット1002によって受信されたデータパケットであり、第1シーケンス番号は、期間内に受信ユニット1002によって受信される複数のデータパケットのシーケンス番号の中の最小シーケンス番号である。送信ユニット1006は、第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第2検出情報を運ぶ第2データパケットを送信するよう更に構成される。処理ユニット1004は、第3報告検出情報を生成するよう更に構成され、このとき、第3報告検出情報は、第3検出ノード識別子、第3シーケンス番号、及び第3の収集されたデータを含み、第3検出ノード識別子は、更新された第2検出ノード識別子と同じであり、第3の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、第3シーケンス番号は、期間内に受信ユニット1002によって受信される複数のデータパケットのシーケンス番号から抜けているシーケンス番号であり、第3シーケンス番号は、第1シーケンス番号よりも大きく、第2シーケンス番号よりも小さい。送信ユニット1006は、第1報告検出情報、第2報告検出情報、及び第3報告検出情報をコントローラへ送信するよう更に構成され、このとき、第1報告検出情報は、更新された第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含み、第2報告検出情報は、更新された第2検出ノード識別子、第2シーケンス番号、及び第2の収集されたデータを含む。
図5に示される第1ネットワークデバイスは、上記の実施形態における方法で第1ネットワークデバイスによって実行される対応するステップを実行してよい。検出ドメイン内のネットワークデバイスは、コントローラによって配信された制御情報に基づいて、かつ、データパケットに含まれる検出情報を使用することによって、コントローラによって要求された検出タスクのための情報収集を実施してよく、それによって、パケット転送性能を確保しながら伝送パス上のデータパケットのインサイチュ収集及び伝送パス検出を実施する。
図6は、本願の実施形態に従う第1ネットワークデバイス1100のハードウェア構造の概略図である。図6に示される第1ネットワークデバイス1100は、上記の実施形態における方法で第1ネットワークデバイスによって実行される対応するステップを実行してよい。
図6に示されるように、第1ネットワークデバイス1100は、プロセッサ1101、メモリ1102、インターフェース1103、及びバス1104を含む。インターフェース1103は、無線又は有線方式で実施されてよく、具体的には、ネットワークアダプタであってよい。プロセッサ1101、メモリ1102、及びインターフェース1103は、バス1104を通じて接続される。
インターフェース1103は、具体的に、上記の実施形態において第1ネットワークデバイスと第1ネットワークデバイスの前ホップネットワークデバイス又は次ホップネットワークデバイスとの間で情報を送信及び受信するよう構成され、かつ/あるいは、上記の実施形態において第1ネットワークデバイスとコントローラとの間で情報を送信及び受信するよう構成される送信器及び受信器を含んでよい。例えば、インターフェース1103は、コントローラによって送信された第1制御情報の受信を支援するよう構成され、第1ネットワークデバイスの前ホップネットワークデバイスによって送信された第1データパケットを受信するよう構成され、かつ/あるいは、第1ネットワークデバイスの次ホップネットワークデバイスに対して、更新された第1検出情報を運ぶ第1データパケットを送信するよう構成される。例えば、インターフェース1103は、図3のプロシージャS103、S104、及びS106を支援するよう構成される。プロセッサ1101は、上記の実施形態において第1ネットワークデバイスによって実行される処理を実行するよう構成される。例えば、プロセッサ1101は、第1収集情報に対応する第1の収集されたデータを決定するよう構成され、第1検出ノード識別子を更新するよう構成され、かつ/あるいは、本明細書で記載される技術における他のプロシージャを実行するよう構成される。例えば、プロセッサ1101は、図3のプロシージャS105を支援するよう構成される。メモリ1102は、オペレーティング・システム11021及びアプリケーション・プログラム11022を含み、プログラム、コード、又は命令を記憶するよう構成される。プログラム、コード、又は命令を実行する場合に、プロセッサ又はハードウェアデバイスは、方法の実施形態における第1ネットワークデバイスの処理プロセスを完了してよい。任意に、メモリ1102は、リード・オンリー・メモリ(英語:Read-only Memory,略してROM)及びランダム・アクセス・メモリ(英語:Random Access Memory,略してRAM)を含んでよい。ROMは、基本入力/出力システム(英語:Basic Input/Output System,略してBIOS)又は埋め込みシステムを含み、RAMは、アプリケーション・プログラム及びオペレーティング・システムを含む。第1ネットワークデバイス1100が起動する必要がある場合に、ROMに組み込まれているBIOS又は埋め込みシステム内のブートローダが、システムを、起動するようブートし、かつ、第1ネットワークデバイス1100を、通常実行状態に入るようブートするために使用される。通常実行状態に入った後、第1ネットワークデバイス1100は、方法の実施形態における第1ネットワークデバイスの処理プロセスを完了するように、RAM内のアプリケーション・プログラム及びオペレーティング・システムを実行する。
図6は、単に、第1ネットワークデバイス1100の簡略化された設計を示すことが理解され得る。実際の適用では、第1ネットワークデバイスは、インターフェース、プロセッサ、又はメモリをいくつでも含んでよい。
図7は、本願の実施形態に従う他の第1ネットワークデバイス1200のハードウェア構造の概略図である。図7に示される第1ネットワークデバイス1200は、上記の実施形態における方法で第1ネットワークデバイスによって実行される対応するステップを実行してよい。
図7に示されるように、第1ネットワークデバイス1200は、メイン制御ボード1210、インターフェースボード1230、スイッチングボード1220、及びインターフェースボード1240を含む。メイン制御ボード1210、インターフェースボード1230及び1240、並びにスイッチングボード1220は、通信用のシステムバスを通じてシステムバックボードへ接続される。メイン制御ボード1210は、システム管理、デバイス保守、及びプロトコル処理などの機能を完了するよう構成される。スイッチングボード1220は、インターフェースボード(インターフェースボードは、代替的に、ラインカード又はサービスボードと呼ばれる)間のデータ交換を完了するよう構成される。インターフェースボード1230及び1240は、様々なサービスインターフェース(例えば、POSインターフェース、GEインターフェース、及びATMインターフェース)を提供し、データパケットを転送するよう構成される。
インターフェースボード1230は、中央演算処理装置1231、転送エントリメモリ1234、物理インターフェースカード1233、及びネットワークプロセッサ1232を含んでよい。中央演算処理装置1231は、インターフェースボードを制御及び管理し、メイン制御ボード上の中央演算処理装置と通信するよう構成される。転送エントリメモリ1234は、転送エントリを記憶するよう構成される。物理インターフェースカード1233は、トラフィックを受信及び送信するよう構成される。ネットワークプロセッサ1232は、トラフィックを受信及び送信するように転送エントリに基づいて物理インターフェースカード1233を制御するよう構成される。
具体的に、物理インターフェースカード1233は、第1ネットワークデバイスの前ホップネットワークデバイスによって送信されたデータパケットを受信するよう構成され、第1ネットワークデバイスの次ホップネットワークデバイスへデータパケットを送信するよう構成され、かつ/あるいは、コントローラと情報を交換するよう構成される。
データパケットを受信した後、物理インターフェースカード1233は、データパケットを中央演算処理装置1211へ中央演算処理装置1231を通じて送信し、中央演算処理装置1211はデータパケットを処理する。
中央演算処理装置1211は、第1収集情報に対応する第1の収集されたデータを決定するよう構成される。
中央演算処理装置1211は、第1検出ノード識別子を更新するよう更に構成される。
中央演算処理装置1231は、転送エントリメモリ1234内の転送エントリを取得するようにネットワークプロセッサ1232を制御するよう更に構成され、中央演算処理装置1231は、物理インターフェースカード1233を通じてトラフィックを送信及び受信するようにネットワークプロセッサ1232を制御するよう更に構成される。
理解されるべきは、インターフェースボード1240での動作は、本発明のこの実施形態ではインターフェースボード1230での動作と一致する点である。簡潔さのために、詳細は再び記載されない。理解されるべきは、この実施形態における第1ネットワークデバイス1200は、方法の実施形態における機能及び/又は様々な実施ステップに対応し得る点である。詳細はここで再び記載されない。
加えて、留意されるべきは、1つ以上のメイン制御ボードが存在してよい点である。複数のメイン制御ボードがある場合に、一次メイン制御ボード及び二次メイン制御ボードが含まれてよい。1つ以上のインターフェースボードが存在してよく、より強力なデータ処理能力を有している第1ネットワークデバイスは、より多くのインターフェースボードを提供する。また、インターフェースボードには、1つ以上の物理インターフェースカードも存在してよい。スイッチングボードは存在しなくてもよく、あるいは、1つ以上のスイッチングボードが存在してもよい。複数のスイッチングボードがある場合に、負荷共有及び冗長バックアップが一緒に実施されてよい。中央集権型転送アーキテクチャでは、第1ネットワークデバイスはスイッチングボードを必要としないことがあり、インターフェースボードが、システム全体におけるサービスデータを処理する機能を提供する。分散型転送アーキテクチャでは、第1ネットワークデバイスは、少なくとも1つのスイッチングボードを備え、大容量のデータ交換及び処理能力を提供するように、スイッチングボードを通じて複数のインターフェースボード間でデータを交換してよい。従って、分散型アーキテクチャにおける第1ネットワークデバイスのデータアクセス及び処理能力は、中央集権型アーキテクチャにおける第1ネットワークデバイスのデータアクセス及び処理能力よりも優れている。どちらのアーキテクチャが具体的に使用されるかは、具体的なネットワーキング配置シナリオに依存し、ここで制限されない。
加えて、本願の実施形態は、上記の第1ネットワークデバイスによって使用されるコンピュータソフトウェア命令を記憶するよう構成されるコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、方法の実施形態を実行するよう設計されたプログラムを含む。
図8は、本願の実施形態に従うコントローラ2000の略構造図である。図8に示されるコントローラ2000は、上記の実施形態における方法でコントローラによって実行される対応するステップを実行してよい。図8に示されるように、コントローラ2000は、受信ユニット2002、処理ユニット2004、及び送信ユニット2006を含む。
処理ユニット2004は、検出ドメインを決定するよう構成され、このとき、検出ドメインは、処理ユニット2004によって決定された検出範囲であり、検出ドメインは、複数のネットワークデバイスを含む。
送信ユニット2006は、第1制御情報を複数のネットワークデバイスへ送信するよう構成され、このとき、第1制御情報は検出タスクタイプを含み、検出タスクタイプは、コントローラが複数のネットワークデバイスに実行することを要求する検出タスクを示す。
受信ユニット2002は、第1ネットワークデバイスによって送信された第1報告検出情報を受信するよう構成され、このとき、第1報告検出情報は、第1ネットワークデバイスによって第1検出情報に基づいて決定され、第1検出情報は、第1ネットワークデバイスが第1データパケットを第1ネットワークデバイスの次ホップネットワークデバイスへ送信する前に第1ネットワークデバイスによって第1データパケットから取得された検出情報であり、第1報告検出情報は、第1検出ノード識別子、第1シーケンス番号、及び第1の収集されたデータを含み、第1検出ノード識別子は、第1検出情報を処理するネットワークデバイスの検出ドメイン内の位置を示し、第1シーケンス番号は、第1検出情報を含む第1データパケットのシーケンス番号を示し、第1の収集されたデータは、第1ネットワークデバイスによって第1検出情報内の第1収集情報に基づいて決定される、第1収集情報に対応する収集されたデータであり、第1収集情報は、検出タスクタイプに対応する収集情報を示し、複数のネットワークデバイスは第1ネットワークデバイスを含む。
任意に、検出タスクタイプはパケットロス検出であり、第1制御情報は検出開始時及び検出終了時を更に含み、第1ネットワークデバイスは、検出ドメイン内のヘッドノードデバイスであり、第1データパケットは、検出開始時から始まる期間に第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスへ送信された最初のデータパケットであり、第1の収集されたデータは、第1ネットワークのデバイス識別子を含む。受信ユニット2002は、第1ネットワークデバイスによって送信された第2報告検出情報を受信するよう更に構成され、このとき、第2報告検出情報は、第1ネットワークデバイスによって第2検出情報に基づいて決定され、第2検出情報は、第1ネットワークデバイスが第2データパケットを第1ネットワークデバイスの次ホップネットワークデバイスへ送信する前に第1ネットワークデバイスによって第2データパケットから取得された検出情報であり、第2報告検出情報は、第2検出ノード識別子、第2シーケンス番号、及び第2の収集されたデータを含み、第2の収集されたデータは、第1ネットワークデバイスのデバイス識別子を含み、第2シーケンス番号は、第1シーケンス番号よりも大きく、第2検出ノード識別子は、第1検出ノード識別子と同じであり、第2データパケットは、検出終了時前に第1ネットワークデバイスによって第1ネットワークデバイスの次ホップネットワークデバイスへ送信された最後のデータパケットである。
任意に、受信ユニット2002は、第2ネットワークデバイスによって送信された第3報告検出情報を受信するよう更に構成され、このとき、第3報告検出情報は、第3検出ノード識別子及び第3の収集されたデータを含み、第3検出ノード識別子は、検出ドメイン内の第2ネットワークデバイスの位置を示し、第3の収集されたデータは、第2ネットワークデバイスのデバイス識別子を含み、第3報告検出情報は、第3シーケンス番号、第4シーケンス番号、及び第5シーケンス番号を更に含み、第3シーケンス番号は、検出開始時から、前もってセットされた時間だけ検出終了時を延ばすことによって得られた時点までの期間に第2ネットワークデバイスによって受信された複数のデータパケットのシーケンス番号の中の最小シーケンス番号であり、第4シーケンス番号は、期間内に第2ネットワークデバイスによって受信された複数のデータパケットのシーケンス番号から抜けているシーケンス番号であり、第5シーケンス番号は、期間内に第2ネットワークデバイスによって受信された複数のデータパケットのシーケンス番号の中の最大シーケンス番号であり、第2ネットワークデバイスは、検出ドメイン内の中間ノードデバイス又はエンドノードデバイスであり、複数のネットワークデバイスは、第2ネットワークデバイスを含む。
任意に、処理ユニット2004は、第1報告検出情報、第2報告検出情報、及び第3報告検出情報に基づいてパケットロス率を決定するよう更に構成される。
任意に、処理ユニット2004は、第4シーケンス番号に基づいて第4報告検出情報を決定するよう更に構成され、このとき、第4報告検出情報に含まれる第4検出ノード識別子の値は、受信ユニット2002によって受信される、第4シーケンス番号を含む全ての報告検出情報の中で最も小さい。処理ユニット2004は、第4報告検出情報に含まれる第4の収集されたデータに基づいてパケットロス位置ノードを決定するよう更に構成される。
図8に示されるコントローラは、上記の実施形態における方法でコントローラによって実行される対応するステップを実行してよい。検出ドメイン内のネットワークデバイスは、コントローラによって配信された制御情報に基づいて、かつ、データパケットに含まれる検出情報を使用することによって、コントローラによって要求された検出タスクのための情報収集及び報告を実施してよく、それによって、パケット転送性能を確保しながら伝送パス上のデータパケットのインサイチュ収集及び伝送パス検出を実施する。
図9は、本願の実施形態に従うコントローラ2100のハードウェア構造の概略図である。図9に示されるコントローラ2100は、上記の実施形態における方法でコントローラによって実行される対応するステップを実行してよい。
図9に示されるように、コントローラ2100は、プロセッサ2101、メモリ2102、インターフェース2103、及びバス2104を含む。インターフェース2103は、無線又は有線方式で実施されてよく、具体的には、ネットワークアダプタであってよい。プロセッサ2101、メモリ2102、及びインターフェース2103は、バス2104を通じて接続される。
インターフェース2103は、具体的に、送信器及び受信器を含んでよく、上記の実施形態において第1ネットワークデバイスとコントローラとの間で情報を送信及び受信するよう構成される。例えば、インターフェース2103は、第1ネットワークデバイスへの制御情報の送信を支援するよう構成され、かつ/あるいは、第1ネットワークデバイスによって送信された報告検出情報を受信するよう構成される。例えば、インターフェース2103は、図3のプロシージャS102及びS108を支援するよう構成される。プロセッサ2101は、上記の実施形態においてコントローラによって実行される処理を実行するよう構成される。例えば、プロセッサ2101は、検出ドメインを決定するよう構成され、かつ/あるいは、本明細書で記載される技術における他のプロシージャを実行するよう構成される。例えば、プロセッサ2101は、図3のプロシージャS101を支援するよう構成される。メモリ2102は、オペレーティング・システム21021及びアプリケーション・プログラム21022を含み、プログラム、コード、又は命令を記憶するよう構成される。プログラム、コード、又は命令を実行する場合に、プロセッサ又はハードウェアデバイスは、方法の実施形態におけるコントローラの処理プロセスを完了してよい。任意に、メモリ2102は、リード・オンリー・メモリ(英語:Read-only Memory,略してROM)及びランダム・アクセス・メモリ(英語:Random Access Memory,略してRAM)を含んでよい。ROMは、基本入力/出力システム(英語:Basic Input/Output System,略してBIOS)又は埋め込みシステムを含み、RAMは、アプリケーション・プログラム及びオペレーティング・システムを含む。コントローラ2100が起動する必要がある場合に、ROMに組み込まれているBIOS又は埋め込みシステム内のブートローダが、システムを、起動するようブートし、かつ、コントローラ2100を、通常実行状態に入るようブートするために使用される。通常実行状態に入った後、コントローラ2100は、方法の実施形態におけるコントローラの処理プロセスを完了するように、RAM内のアプリケーション・プログラム及びオペレーティング・システムを実行する。
図9は、単に、コントローラ2100の簡略化された設計を示すことが理解され得る。実際の適用では、コントローラは、インターフェース、プロセッサ、又はメモリをいくつでも含んでよい。
加えて、本願の実施形態は、上記のコントローラによって使用されるコンピュータソフトウェア命令を記憶するよう構成されるコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、方法の実施形態を実行するよう設計されたプログラムを含む。
図5、図6、図7、図8又は図9の実施において、任意に、第1検出情報は、フロー識別子を更に含む。フロー識別子は、第1データパケットが属するデータフローを示す。
図5、図6、図7、図8又は図9の実施において、任意に、第1検出情報は、第1長さ及び第1バージョン番号を更に含む。第1長さは、第1検出情報の長さを示し、第1バージョン番号は、第1検出情報のプロトコルバージョンを示す。
本願の実施形態は、ネットワークシステムを更に含み、ネットワークシステムは、第1ネットワークデバイス及びコントローラを含む。第1ネットワークデバイスは、図5、図6又は図7の第1ネットワークデバイスであり、コントローラは、図8又は図9のコントローラである。
本願で開示される内容と組み合わせて記載される方法又はアルゴリズムステップは、ハードウェアによって実施されてよく、あるいは、ソフトウェア命令を実行することによってプロセッサによって実施されてよい。ソフトウェア命令は、対応するソフトウェアモジュールを含んでよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブル・ハードディスク、CD-ROM、又は当該技術でよく知られているあらゆる他の形態の記憶媒体において記憶されてよい。例えば、記憶媒体はプロセッサへ結合され、それにより、プロセッサは、記憶媒体から情報を読み出すること又は記憶媒体に情報を書き込むことができる。確かに、記憶媒体は、代替的に、プロセッサのコンポーネントであってもよい。プロセッサ及び記憶媒体は、ASICに置かれてよい。加えて、ASICは、ユーザ装置に置かれてよい。確かに、プロセッサ及び記憶媒体は、別個のコンポーネントとしてユーザ装置に存在してもよい。
当業者であれば、上記の例の1つ以上において、本願で記載される機能がハードウェア又はハードウェアとソフトウェアとの組み合わせによって実施されてよいと気付くはずである。機能がハードウェアとソフトウェアとの組み合わせによって実施される場合に、ソフトウェアは、コンピュータ可読媒体に記憶され、あるいは、1つ以上の命令又は1つ以上のコード片としてコンピュータ可読媒体において伝送されてよい。コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含む。通信媒体は、コンピュータプログラムが1つの場所から他へ伝送されることを可能にする如何なる媒体も含む。記憶媒体は、汎用又は専用のコンピュータにアクセス可能な如何なる利用可能な媒体であってもよい。
本願の目的、技術的解決法、及び有利な効果は、上記の具体的な実施において詳細に更に記載される。理解されるべきは、上記の説明は、本願の具体的な実施にすぎない点である。
本願は、2018年6月6日付けで出願された中国特許出願第201810574118.3号の優先権を主張して2019年4月12日付けで出願された特許出願第2020-567844号の分割出願である。上記の出願の開示は、その全文を参照により本願に援用される。