(57)【要約】      （修正有）【課題】ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）においてフォワーダに記憶される冗長情報を減少させ、パケットを処理するフォワーダの能力を改善する方法を提供する。【解決手段】方法は、フォワーダが実行し、入力パケットを受信するステップと、入力パケットに従って、入力パケットが属するフローを決定するステップと、フローとコンテキスト識別子セットとの間の第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップと、を含む。第１の対応における各フローに対応するコンテキスト識別子セットは、少なくとも１つのコンテキスト識別子を含み、コンテキスト識別子とコンテキストとの間の第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定する。さらに、コンテキスト識別子セットに対応するコンテキストに従って、入力パケットを処理するステップを含む。【選択図】図３
2020065264.tif 000002
【特許請求の範囲】
【請求項１】
フォワーダにより実行される、ソフトウェア・デファインド・ネットワーク（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）においてパケットを処理するための方法であって、
入力パケットを受信するステップと、
前記入力パケットに従って、前記入力パケットが属するフローを決定するステップと、
フローとコンテキスト識別子セットとの間の第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップであって、前記第１の対応における各フローに対応するコンテキスト識別子セットは少なくとも１つのコンテキスト識別子を含む、決定するステップと、
コンテキスト識別子とコンテキストとの間の第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定するステップと、
前記コンテキスト識別子セットに対応するコンテキストに従って、前記入力パケットを処理するステップと
を含む、方法。
【請求項２】
前記入力パケットに従って、前記入力パケットが属するフローを決定するステップは、
前記入力パケットのパケットヘッダまたはコンテンツに従って、前記入力パケットが属するフローを決定するステップを含む、請求項１に記載の方法。
【請求項３】
前記第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップの前に、前記方法はさらに、
前記第１の対応が、前記入力パケットが属するフローに対応するコンテキスト識別子セットを有するか否かを決定するステップを含み、
はいの場合に、
前記第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップを実行するステップを含み、あるいは、
そうではない場合に、
フロー規則リクエストメッセージをコントローラに送信するステップであって、前記フロー規則リクエストメッセージは、前記入力パケットのパケットヘッダまたはコンテンツを含む、送信するステップと、
前記コントローラにより送信されたフロー規則インスタレーションメッセージを受信するステップであって、前記フロー規則インスタレーションメッセージは、前記入力パケットのフローに対応するコンテキスト識別子セットを含む、受信するステップと、
前記入力パケットが属するフローに関する情報および前記入力パケットのフローに対応するコンテキスト識別子セットを、前記第１の対応に追加するステップとを実行するステップを含む、請求項１または２に記載の方法。
【請求項４】
前記コントローラにより送信された前記フロー規則インスタレーションメッセージは、前記コンテキスト識別子セットに対応するコンテキストをさらに含み、
前記フォワーダが前記フロー規則インスタレーションメッセージを受信した後に、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストが、第２の対応に記憶されていないことが判明した場合に、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストが前記第２の対応に追加される、請求項３に記載の方法。
【請求項５】
前記コンテキスト識別子とコンテキストとの間の第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定するステップの前に、前記方法はさらに、
前記第２の対応が、前記コンテキスト識別子セットに対応するコンテキストを有するか否かを決定するステップを含み、
はいの場合に、第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定するステップを実行するステップを含み、あるいは、
前記コンテキストセットにおけるいくつかまたは全てのコンテキスト識別子が対応するコンテキストを有しない場合に、
コンテキスト・リクエスト・メッセージを前記コントローラに送信するステップであって、前記コンテキスト・リクエスト・メッセージは、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子を含む、送信するステップと、
前記コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信するステップであって、前記コンテキスト・インスタレーション・メッセージは、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを含む、受信するステップと、
前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを、前記第２の対応に追加するステップとを実行するステップを含む、請求項１または２に記載の方法。
【請求項６】
前記コンテキスト識別子セットが複数のコンテキスト識別子を含むときに、前記コンテキスト識別子セットに対応するコンテキストに従って、前記入力パケットを処理するステップは、予め設定されたコンテキストシーケンスで実行される、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
予め設定されたコンテキストシーケンスは、少なくとも２つのコンテキストがシーケンス中で同じである場合を含む場合に、前記フォワーダは、前記少なくとも２つのコンテキストの双方に従って、前記入力パケットを処理する、請求項６に記載の方法。
【請求項８】
前記方法はさらに、
前記コントローラにより送信されたフロー削除メッセージを受信するステップであって、前記フロー削除メッセージは、削除対象のフローに関する情報を含む、受信するステップと、
前記削除対象のフローに関する情報および削除対象のフローに対応するコンテキスト識別子セットを前記第１の対応から削除するステップとを含む、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子が他のフローに対応しない場合に、前記方法はさらに、
前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子ならびに前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子に対応するコンテキストを前記第２の対応からさらに削除するステップを含む、請求項８に記載の方法。
【請求項１０】
前記方法はさらに、
前記コントローラにより送信されたコンテキスト削除メッセージを受信するステップであって、前記コンテキスト削除メッセージは、少なくとも１つの削除対象のコンテキスト識別子を含む、受信するステップと、
前記少なくとも１つの削除対象のコンテキスト識別子および前記少なくとも１つの削除対象のコンテキスト識別子に対応するコンテキストを前記第２の対応から削除するステップと
を含む、請求項１〜７のいずれか一項に記載の方法。
【請求項１１】
前記少なくとも１つの削除対象のコンテキスト識別子に対応するコンテキストを削除した後に、前記方法はさらに、
前記削除されたコンテキストに対応するコンテキスト識別子を前記第１の対応から削除するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記削除されたコンテキストに対応するコンテキスト識別子を前記第１の対応から削除した後に、前記方法はさらに、
前記削除されたコンテキスト識別子に対応するフローに関する情報を前記第１の対応から削除するステップを含む、請求項１１に記載の方法。
【請求項１３】
前記方法はさらに、
前記入力パケットが処理された後に、コンテキスト処理結果を取得するステップを含む、請求項１〜１２のいずれか一項に記載の方法。
【請求項１４】
前記方法はさらに、
前記コンテキスト処理結果を前記コントローラに送信するステップを含む、請求項１３に記載の方法。
【請求項１５】
前記方法はさらに、新しく決定されたコンテキスト識別子セットに対応するコンテキストに従って前記入力パケットをさらに処理するために、前記コントローラにより前記入力パケットに関して決定される、新しく決定されたフローおよび新しく決定されたコンテキスト識別子セットを受信するステップを含む、請求項１４に記載の方法。
【請求項１６】
前記コンテキスト処理結果が新しく生成されたパケットである場合に、前記方法はさらに、
前記新しく生成されたパケットに従って、前記新しく生成されたパケットが属するフローを決定するステップと、
前記第１の対応に従って、前記新しく生成されたパケットが属するフローに対応する新しいコンテキスト識別子セットを決定するステップと、
前記第２の対応に従って、前記新しいコンテキスト識別子セットに対応するコンテキストを決定するステップと、
前記新しいコンテキスト識別子セットに対応するコンテキストに従って、前記新しく生成されたパケットを処理するステップと
を含む、請求項１３に記載の方法。
【請求項１７】
前記方法はさらに、
前記入力パケットのフローに対応する前記コンテキスト識別子セット中のいくつかまたは全てのコンテキスト識別子が他のフローにさらに対応することを含む、請求項１〜１６のいずれか一項に記載の方法。
【請求項１８】
前記コンテキスト識別子はさらに、各コンテキストのコンテキストタイプを示すためにさらに使用され、前記コンテキストタイプはアクションタイプを含まない、請求項１〜１６のいずれか一項に記載の方法。
【請求項１９】
インターフェース、プロセッサおよびメモリを具備する、ソフトウェア・デファインド・ネットワーク（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）で使用されるフォワーダであって、
前記メモリは、フローとコンテキスト識別子セットとの間の第１の対応およびコンテキスト識別子とコンテキストとの間の第２の対応を記憶するように構成され、前記第１の対応における各フローに対応するコンテキスト識別子セットは、少なくとも１つのコンテキスト識別子を含み、
前記インターフェースは、入力パケットを受信するように構成され、
前記プロセッサは、前記入力パケットに従って、前記入力パケットが属するフローを決定し、前記メモリに記憶された前記第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットを決定し、前記メモリに記憶された第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定し、前記コンテキスト識別子セットに対応するコンテキストに従って、前記入力パケットを処理するように構成されている、フォワーダ。
【請求項２０】
前記プロセッサが、前記入力パケットに従って、前記入力パケットが属するフローを決定するように構成されていることは、具体的に、
前記プロセッサが、前記入力パケットのパケットヘッダまたはコンテンツに従って、前記入力パケットに対応するフローを決定するように構成されていることである、請求項１９に記載のフォワーダ。
【請求項２１】
前記インターフェースは受信機および送信機を備え、前記インターフェースが、入力パケットを受信するように構成されていることは、具体的に、
前記インターフェース中の受信機が前記入力パケットを受信するように構成されていることである、請求項１９または２０に記載のフォワーダ。
【請求項２２】
前記プロセッサはさらに、
前記メモリに記憶された前記第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットが決定される前に、
前記第１の対応が、前記入力パケットが属するフローに対応するコンテキスト識別子セットを有するか否かを決定するように構成され、
はいの場合に、前記第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットを決定し、または、そうではない場合に、送信機に通知するように構成され、
前記送信機は、前記プロセッサの通知を受信した後に、フロー規則リクエストメッセージをコントローラに送信するように構成され、前記フロー規則リクエストメッセージは、前記入力パケットのパケットヘッダまたはコンテンツを含み、
前記受信機は、前記コントローラにより送信されたフロー規則インスタレーションメッセージを受信するように構成され、前記フロー規則インスタレーションメッセージは、前記入力パケットのフローに対応するコンテキスト識別子セットを含み、
前記プロセッサは、前記入力パケットが属するフローに関する情報および前記入力パケットのフローに対応するコンテキスト識別子セットを、前記第１の対応に追加するようにさらに構成されている、請求項２１に記載のフォワーダ。
【請求項２３】
前記プロセッサはさらに、
前記メモリに記憶された前記第２の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットに対応するコンテキストが決定される前に、
前記第２の対応が、前記入力パケットが属するフローに対応する前記コンテキスト識別子セットに対応するコンテキストを有するか否かを決定するように構成され、
はいの場合に、前記メモリに記憶された前記第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定し、または、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子が対応するコンテキストを有しない場合に、送信機に通知するように構成され、
前記送信機は、コンテキスト・リクエスト・メッセージを前記コントローラに送信するようにさらに構成され、前記コンテキスト・リクエスト・メッセージは、前記入力パケットが属するフローに対応するコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子を含み、
前記受信機は、前記コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信するようにさらに構成され、前記コンテキスト・インスタレーション・メッセージは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを含み、
前記プロセッサは、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを、前記第２の対応に追加するようにさらに構成されている、請求項２１に記載のフォワーダ。
【請求項２４】
前記入力パケットが属する複数のフローがある場合に、前記プロセッサが、フローとコンテキスト識別子との間の前記第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットが決定するように構成されていることは、具体的に、
前記プロセッサが、前記第１の対応に従って、前記入力パケットが属する各フローに対応するコンテキスト識別子セットをシーケンシャルに取得するように構成されていることである、請求項１９または２０に記載のフォワーダ。
【請求項２５】
前記コンテキスト識別子セットが複数のコンテキスト識別子を含むときに、前記プロセッサは、前記コンテキスト識別子セットに対応するコンテキストに従って、前記入力パケットを、予め設定されたコンテキストシーケンスで処理するように構成されている、請求項１９または２０に記載のフォワーダ。
【請求項２６】
前記予め設定されたコンテキストシーケンスが、少なくとも２つのコンテキストがシーケンス中で同じである場合を含む場合に、前記プロセッサは、前記少なくとも２つのコンテキストの双方に従って、前記入力パケットを処理するようにさらに構成されている、請求項２５に記載のフォワーダ。
【請求項２７】
前記受信機は、前記コントローラにより送信されたフロー削除メッセージを受信するようにさらに構成され、前記フロー削除メッセージは、削除対象のフローに関する情報を含み、
前記プロセッサは、前記削除対象のフローに関する情報および削除対象のフローに対応するコンテキスト識別子セットを前記第１の対応から削除するようにさらに構成されている、請求項１９〜２６のいずれか一項に記載のフォワーダ。
【請求項２８】
前記プロセッサはさらに、
前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子が他のフローに対応しないことが判明した場合に、
前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子ならびに前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子に対応するコンテキストを前記第２の対応から削除するように構成されている、請求項２７に記載のフォワーダ。
【請求項２９】
前記プロセッサはさらに、
前記入力パケットが処理された後に取得されたコンテキスト処理結果を取得するように構成されている、請求項２１〜２８のいずれか一項に記載のフォワーダ。
【請求項３０】
前記送信機は、報告メッセージを使用することにより、前記プロセッサにより取得された前記コンテキスト処理結果を前記コントローラに送信するように構成されている、請求項２９に記載のフォワーダ。
【請求項３１】
前記受信機はさらに、新しく決定されたコンテキスト識別子セットに対応するコンテキストに従って前記入力パケットをさらに処理するよう前記プロセッサに命令するために、前記コントローラにより前記入力パケットに関して決定される、新しく決定されたフローおよび新しく決定されたコンテキスト識別子セットを受信するように構成されている、請求項３０に記載のフォワーダ。
【請求項３２】
前記プロセッサはさらに、
前記コンテキスト処理結果が新しく生成されたパケットである場合に、前記新しく生成されたパケットに従って、前記新しく生成されたパケットが属するフローを決定し、
前記第１の対応に従って、前記新しく生成されたパケットが属するフローに対応する新しいコンテキスト識別子セットを決定し、
前記第２の対応に従って、前記新しいコンテキスト識別子に対応するコンテキストを決定し、
前記新しいコンテキスト識別子セットに対応するコンテキストに従って、前記新しく生成されたパケットを処理するように構成されている、請求項２９に記載のフォワーダ。
【請求項３３】
フォワーダにより実行される、ソフトウェア・デファインド・ネットワーク（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）においてパケットを処理するための方法であって、
入力パケットを受信するステップと、
前記入力パケットに従って、前記入力パケットが属するフローを決定するステップと、
フローとコンテキスト識別子セットとの間の前記第１の対応が、前記入力パケットが属するフローに対応するコンテキスト識別子セットを有するか否かを決定するステップと、はいの場合に、前記第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップ、あるいは、そうではない場合に、フロー規則リクエストメッセージをコントローラに送信するステップであって、前記フロー規則リクエストメッセージは、前記入力パケットのパケットヘッダまたはコンテンツを含む、送信するステップと、前記コントローラにより送信されたフロー規則インスタレーションメッセージを受信するステップであって、前記フロー規則インスタレーションメッセージは、前記入力パケットのフローに対応するコンテキスト識別子セットを含む、受信するステップと、
コンテキスト識別子とコンテキストとの間の第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定するステップと、
前記コンテキスト識別子セットに対応するコンテキストに従って、前記入力パケットを処理するステップと
を含む、方法。
【請求項３４】
前記入力パケットに従って、前記入力パケットが属するフローを決定するステップは、
前記入力パケットのパケットヘッダまたはコンテンツに従って、前記入力パケットが属するフローを決定するステップを含む、請求項３３に記載の方法。
【請求項３５】
前記方法はさらに、前記コントローラにより送信されたフロー規則インスタレーションメッセージの受信後に、前記入力パケットが属するフローに関する情報および前記入力パケットのフローに対応するコンテキスト識別子セットを、前記第１の対応に追加するステップを含む、請求項３３に記載の方法。
【請求項３６】
前記コントローラにより送信された前記フロー規則インスタレーションメッセージは、前記コンテキスト識別子セットに対応するコンテキストをさらに含み、
前記フォワーダが前記フロー規則インスタレーションメッセージを受信した後に、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストが、第２の対応に記憶されていないことが判明した場合に、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストが前記第２の対応に追加される、請求項３３〜３５のいずれか一項に記載の方法。
【請求項３７】
前記コンテキスト識別子とコンテキストとの間の第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定するステップの前に、前記方法はさらに、
前記第２の対応が前記コンテキスト識別子セットに対応するコンテキストを有するか否かを決定するステップを含み、
はいの場合に、前記第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定するステップを実行するステップを含み、あるいは、
前記コンテキストセットにおけるいくつかまたは全てのコンテキスト識別子が対応するコンテキストを有しない場合に、
コンテキスト・リクエスト・メッセージを前記コントローラに送信するステップであって、前記コンテキスト・リクエスト・メッセージは、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子を含む、送信するステップと、
前記コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信するステップであって、前記コンテキスト・インスタレーション・メッセージは、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを含む、受信するステップと、
前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを、前記第２の対応に追加するステップとを実行するステップを含む、請求項３３〜３５のいずれか一項に記載の方法。
【請求項３８】
前記方法はさらに、前記コンテキスト識別子セットが複数のコンテキスト識別子を含むときに、前記コンテキスト識別子セットに対応するコンテキストに従って、前記入力パケットを処理するステップを、予め設定されたコンテキストシーケンスで実行するステップを含む、請求項３３〜３７のいずれか一項に記載の方法。
【請求項３９】
前記方法はさらに、予め設定されたコンテキストシーケンスは、少なくとも２つのコンテキストがシーケンス中で同じである場合を含む場合に、前記フォワーダにより、前記少なくとも２つのコンテキストの双方に従って、前記入力パケットを処理するステップを含む、請求項３８に記載の方法。
【請求項４０】
前記方法はさらに、
前記入力パケットが処理された後に、コンテキスト処理結果を取得するステップを含む、請求項３３〜３９のいずれか一項に記載の方法。
【請求項４１】
前記方法はさらに、
前記コンテキスト処理結果を前記コントローラに送信するステップを含む、請求項４０に記載の方法。
【請求項４２】
前記コンテキスト処理結果が新しく生成されたパケットである場合に、前記方法はさらに、
前記新しく生成されたパケットに従って、前記新しく生成されたパケットが属するフローを決定するステップと、
前記第１の対応に従って、前記新しく生成されたパケットが属するフローに対応する新しいコンテキスト識別子セットを決定するステップと、
前記第２の対応に従って、前記新しいコンテキスト識別子セットに対応するコンテキストを決定するステップと、
前記新しいコンテキスト識別子セットに対応するコンテキストに従って、前記新しく生成されたパケットを処理するステップとを含む、請求項４０に記載の方法。
【請求項４３】
前記方法はさらに、
前記入力パケットのフローに対応する前記コンテキスト識別子セット中のいくつかまたは全てのコンテキスト識別子が他のフローにさらに対応することを含む、請求項３３〜４２のいずれか一項に記載の方法。
【請求項４４】
前記コンテキスト識別子はさらに、各コンテキストのコンテキストタイプを示すためにさらに使用され、前記コンテキストタイプはアクションタイプを含まない、請求項３３〜４２のいずれか一項に記載の方法。
【請求項４５】
インターフェース、プロセッサおよびメモリを具備する、ソフトウェア・デファインド・ネットワーク（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）で使用されるフォワーダであって、
前記メモリは、フローとコンテキスト識別子セットとの間の第１の対応およびコンテキスト識別子とコンテキストとの間の第２の対応を記憶するように構成され、前記第１の対応における各フローに対応するコンテキスト識別子セットは、少なくとも１つのコンテキスト識別子を含み、
前記インターフェースは、入力パケットを受信するように構成され、
前記プロセッサは、前記メモリに記憶された前記第１の対応が、前記入力パケットが属するフローに対応するコンテキスト識別子セットを有するか否かを決定するように構成され、はいの場合に、前記第１の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットを決定し、または、そうではない場合に、インターフェースに通知するように構成され、
前記インターフェースは、前記プロセッサの通知を受信した後に、フロー規則リクエストメッセージをコントローラに送信するように構成され、前記フロー規則リクエストメッセージは、前記入力パケットのパケットヘッダまたはコンテンツを含み、
前記インターフェースは、前記コントローラにより送信されたフロー規則インスタレーションメッセージを受信するように構成され、前記フロー規則インスタレーションメッセージは、前記入力パケットのフローに対応するコンテキスト識別子セットを含み、
前記プロセッサは、前記メモリに記憶された前記第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定し、前記コンテキスト識別子セットに対応するコンテキストに従って、前記入力パケットを処理するようにさらに構成されている、フォワーダ。
【請求項４６】
前記インターフェースは受信機および送信機を備え、前記インターフェースが、入力パケットを受信するように構成されていることは、具体的に、
前記インターフェース中の受信機が入力パケットを受信するように構成されていることである、請求項４５に記載のフォワーダ。
【請求項４７】
前記プロセッサはさらに、
前記メモリに記憶された前記第２の対応に従って、前記入力パケットが属するフローに対応するコンテキスト識別子セットに対応するコンテキストが決定される前に、
前記第２の対応が、前記入力パケットが属するフローに対応する前記コンテキスト識別子セットに対応するコンテキストを有するか否かを決定するように構成され、
はいの場合に、前記メモリに記憶された前記第２の対応に従って、前記コンテキスト識別子セットに対応するコンテキストを決定し、又は、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子が対応するコンテキストを有しない場合に、送信機に通知するように構成され、
前記送信機は、前記プロセッサの通知の受信後に、コンテキスト・リクエスト・メッセージを前記コントローラに送信するようにさらに構成され、前記コンテキスト・リクエスト・メッセージは、前記入力パケットが属するフローに対応するコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子を含み、
前記受信機は、前記コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信するようにさらに構成され、前記コンテキスト・インスタレーション・メッセージは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを含み、
前記プロセッサは、前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびに前記コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを、前記第２の対応に追加するようにさらに構成されている、請求項４６に記載のフォワーダ。
【請求項４８】
前記コンテキスト識別子セットが複数のコンテキスト識別子を含むときに、前記プロセッサは、前記コンテキスト識別子セットに対応するコンテキストに従って、前記入力パケットを、予め設定されたコンテキストシーケンスで処理するように構成されている、請求項４５または４６に記載のフォワーダ。
【請求項４９】
前記予め設定されたコンテキストシーケンスは、少なくとも２つのコンテキストがシーケンス中で同じである場合を含む場合に、前記プロセッサは、前記少なくとも２つのコンテキストの双方に従って、前記入力パケットを処理するようにさらに構成されている、請求項４８に記載のフォワーダ。
【請求項５０】
前記受信機は、前記コントローラにより送信されたフロー削除メッセージを受信するようにさらに構成され、前記フロー削除メッセージは、削除対象のフローに関する情報を含み、
前記プロセッサは、前記削除対象のフローに関する情報および削除対象のフローに対応するコンテキスト識別子セットを前記第１の対応から削除するようにさらに構成されている、請求項４６〜４９のいずれか一項に記載のフォワーダ。
【請求項５１】
前記プロセッサはさらに、前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子が他のフローに対応しないことが判明した場合に、前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子ならびに前記削除されたフローに対応するいくつかまたは全てのコンテキスト識別子に対応するコンテキストを前記第２の対応から削除するように構成されている、請求項５０に記載のフォワーダ。
【請求項５２】
前記プロセッサはさらに、
前記入力パケットが処理された後に取得されたコンテキスト処理結果を取得するように構成されている、請求項４６〜５１のいずれか一項に記載のフォワーダ。
【請求項５３】
前記送信機は、報告メッセージを使用することにより、前記プロセッサにより取得された前記コンテキスト処理結果を前記コントローラに送信するように構成されている、請求項５２に記載のフォワーダ。
【請求項５４】
前記受信機はさらに、新しく決定されたコンテキスト識別子セットに対応するコンテキストに従って前記入力パケットをさらに処理するよう前記プロセッサに命令するために、前記コントローラにより前記入力パケットに関して決定される、新しく決定されたフローおよび新しく決定されたコンテキスト識別子セットを受信するように構成されている、請求項５３に記載のフォワーダ。
【請求項５５】
前記プロセッサはさらに、
前記コンテキスト処理結果が新しく生成されたパケットである場合に、前記新しく生成されたパケットに従って、前記新しく生成されたパケットが属するフローを決定し、
前記第１の対応に従って、前記新しく生成されたパケットが属するフローに対応する新しいコンテキスト識別子セットを決定し、
前記第２の対応に従って、前記新しいコンテキスト識別子に対応するコンテキストを決定し、
前記新しいコンテキスト識別子セットに対応するコンテキストに従って、前記新しく生成されたパケットを処理するように構成されている、請求項５２に記載のフォワーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信技術の分野に関し、特に、パケットを処理するための方法およびフォワーダに関する。
【背景技術】
【０００２】
ソフトウェア・デファインド・ネットワーク（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ、ＳＤＮと略す）は、従来のクローズドネットワークをオープンな環境に変換することを意図しており、コンピュータと同様に、プログラミングも実現できる。ＯｐｅｎＦｌｏｗ技術は、ＳＤＮを実現する方法である。ＯｐｅｎＦｌｏｗ技術は、Ｓｔａｎｆｏｒｄ大学により最も早く提案され、現在のネットワークが、既存の送信制御プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ、ＴＣＰと略す）／インターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ、ＩＰと略す）の技術条件に基づく、革新的なネットワーク相互接続の概念による新サービスに直面したときに生じる、様々なボトルネックを解決することを目的としている。ＯｐｅｎＦｌｏｗは、単一のネットワークエレメントにより元来および完全に実現される処理プロセスを転送するパケットを、ＯｐｅｎＦｌｏｗフォワーダおよびコントローラが共同して完了するプロセスに変換し、それにより、サービス制御からのデータ転送の分離を実現する。コントローラは、標準規格のインターフェース、すなわち、ＯｐｅｎＦｌｏｗプロトコルを使用することにより、ＯｐｅｎＦｌｏｗフォワーダにおいてフローテーブルを制御し、それにより、ネットワーク全体にわたる集中制御を実現する。
【０００３】
ＯｐｅｎＦｌｏｗフォワーダにおける最重要コンポーネントのうちの１つは、フローテーブルであり、フローテーブルは、大量のフローテーブルエントリにより形成され、各フローテーブルエントリがパケット制御規則である。パケットの受信後、フォワーダは、フローテーブルエントリにクエリすることにより、実行される必要のあるアクションを取得してもよい。フォワーダは、複数のフローテーブルを含んでもよく、コントローラは、フォワーダの１以上のフローテーブルに対するサービスフローに特有のフローテーブルエントリを伝える。
【０００４】
各ＯｐｅｎＦｌｏｗフローテーブルエントリは、フロー情報（フロー・マッチ・フィールド（ｆｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ）、カウンタおよびアクション（Ａｃｔｉｏｎ））により形成される。詳細として、以下の通り表１に示すものを参照する：
【表１】
2020065264.tif 000003
【０００５】
表１中のフロー・マッチ・フィールドは、複数のフィールドにより形成されるマッチ情報であり、フローテーブルエントリの識別子であり、フローを定義するのに使用されてもよい。表２は、フロー・マッチ・フィールドの例を示し、フロー・マッチ・フィールドは１０個のフィールドにより形成される。
【表２】
2020065264.tif 000004
【０００６】
表１中のカウンタは、トラフィック関連データをカウントするのに使用され、カウンタは、各フローテーブル、各フローまたは各ポートに従った個別設定を実行してもよい。
【０００７】
表１中のアクションは、フローテーブルエントリとマッチする、パケット上で実行されるべきアクションのタイプ、例えば、転送またはドロップのような、アクションタイプを示す。現在のＯｐｅｎｆｌｏｗプロトコルで定義されたアクションタイプは以下を含む：
Ｏｕｔｐｕｔ：特定のポートからのパケットを転送
Ｓｅｔ−Ｑｕｅｕｅ：特定の転送キューを使用することによりパケットを転送
Ｄｒｏｐ：パケットをドロップ
Ｇｒｏｕｐ：処理を実行するために複数のフローをアクションにグルーピング
Ｐｕｓｈ−Ｔａｇ／Ｐｏｐ−Ｔａｇ：カプセル化またはカプセル除去
Ｓｅｔ−Ｆｉｅｌｄ：パケットヘッダを変更、および、
Ｃｈａｎｇｅ−ＴＴＬ：ＴＴＬフィールドを変更
【０００８】
現在のフローテーブルのアクションモードは、２つのタイプを含む：アクティブモードおよびパッシブモード。アクティブモードでは、コントローラは、コントローラにより収集されたフローテーブル情報をフォワーダにアクティブに伝え、その後、フォワーダは、フローテーブルに従った転送を直接実行してもよい。パッシブモードは、パケット受信後にマッチングフローテーブルを何ら見つけていないときに、フォワーダはコントローラにパケットを転送し、コントローラは、処理の実行方法を決定し、対応するフローテーブルエントリをフォワーダに伝えることを指す。
【０００９】
従来の技術のフローテーブルでは、フローおよびアクションは直接関係付けられ、いくつかのフローに対応するアクションが同じであるときに、対応するアクションは、各フローに対するフローテーブルエントリに保存される必要があり、そのため、フォワーダに記憶された情報に大量の冗長が発生し、維持も非常に難しい。例えば、アクションが変更されたときに、関連フローテーブルエントリが全て変更される必要がある。
【発明の概要】
【００１０】
本発明の実施形態は、ＳＤＮにおいてパケットを処理するための方法およびフォワーダを提供し、方法は、フォワーダに記憶される冗長情報を減少させ、パケットを処理するためのフォワーダの能力を改善するのに使用される。
【００１１】
第１の態様に従って、フォワーダにより実行される、ＳＤＮにおいてパケットを処理するための方法が提供され、具体的に、
入力パケットを受信するステップと、
入力パケットに従って、入力パケットが属するフローを決定するステップと、
フローとコンテキスト識別子セットとの間の第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップであって、第１の対応における各フローに対応するコンテキスト識別子セットは少なくとも１つのコンテキスト識別子を含む、決定するステップと、
コンテキスト識別子とコンテキストとの間の第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定するステップと、
コンテキスト識別子セットに対応するコンテキストに従って、入力パケットを処理するステップと
を含む。
【００１２】
第１の態様を参照し、第１の態様の第１の可能性ある実現方法では、方法はさらに、第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップの前に、第１の対応が、入力パケットが属するフローに対応するコンテキスト識別子セットを有するか否かを決定するステップを含み、
はいの場合に、
第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップを実行するステップを含み、あるいは、
そうではない場合に、
フロー規則リクエストメッセージをコントローラに送信するステップであって、フロー規則リクエストメッセージは、入力パケットのパケットヘッダまたはコンテンツを含む、送信するステップと、
コントローラにより送信されたフロー規則インスタレーションメッセージを受信するステップであって、フロー規則インスタレーションメッセージは、入力パケットのフローに対応するコンテキスト識別子セットを含む、受信するステップと、
入力パケットが属するフローに関する情報および入力パケットのフローに対応するコンテキスト識別子セットを、第１の対応に追加するステップとを実行するステップを含む。
【００１３】
第１の態様または第１の態様の第１の可能性ある実現方法を参照し、第１の態様の第２の可能性ある実現方法では、方法はさらに、コンテキスト識別子とコンテキストとの間の第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定するステップの前に、第２の対応がコンテキスト識別子セットに対応するコンテキストを有するか否かを決定するステップを含み、
はいの場合に、
第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定するステップを実行するステップを含み、あるいは、
コンテキストセットにおけるいくつかまたは全てのコンテキスト識別子が対応するコンテキストを有しない場合に、
コンテキスト・リクエスト・メッセージをコントローラに送信するステップであって、コンテキスト・リクエスト・メッセージは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子を含む、送信するステップと、
コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信するステップであって、コンテキスト・インスタレーション・メッセージは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを含む、受信するステップと、
コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを、第２の対応に追加するステップとを実行するステップを含む。
【００１４】
第２の態様に従って、受信機、プロセッサおよびメモリを具備する、ＳＤＮにおいて使用されるフォワーダが提供され、
メモリは、フローとコンテキスト識別子セットとの間の第１の対応およびコンテキスト識別子とコンテキストとの間の第２の対応を記憶するように構成され、第１の対応における各フローに対応するコンテキスト識別子セットは、少なくとも１つのコンテキスト識別子を含み、
受信機は、入力パケットを受信するように構成され、
プロセッサは、入力パケットに従って、入力パケットが属するフローを決定し、メモリに記憶された第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットを決定し、メモリに記憶された第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定し、コンテキスト識別子セットに対応するコンテキストに従って、入力パケットを処理するように構成されている。
【００１５】
第２の態様を参照し、第２の態様の第１の可能性ある実現方法では、フォワーダはさらに送信機を備え、
プロセッサはさらに、メモリに記憶された第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットが決定される前に、第１の対応が、入力パケットが属するフローに対応するコンテキスト識別子セットを有するか否かを決定するように構成され、はいの場合に、第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットを決定し、または、そうではない場合に、フロー規則リクエストメッセージをコントローラに送信するよう送信機に通知するように構成され、フロー規則リクエストメッセージは、入力パケットのパケットヘッダまたはコンテンツを含み、
受信機は、コントローラにより送信されたフロー規則インスタレーションメッセージを受信するように構成され、
プロセッサは、入力パケットが属するフローに関する情報および入力パケットのフローに対応するコンテキスト識別子セットを、第１の対応に追加するようにさらに構成され、
フロー規則インスタレーションメッセージは、入力パケットのフローに対応するコンテキスト識別子セットを含む。
【００１６】
第２の態様または第２の態様の第１の可能性ある実現方法を参照し、第２の態様の第２の可能性ある実現方法では、プロセッサはさらに、メモリに記憶された第２の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットに対応するコンテキストが決定される前に、第２の対応が、入力パケットが属するフローに対応するコンテキスト識別子セットに対応するコンテキストを有するか否かを決定するように構成され、はいの場合に、メモリに記憶された第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定し、またはコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子が対応するコンテキストを有しない場合に、送信機に通知するように構成され、
送信機は、コンテキスト・リクエスト・メッセージをコントローラに送信するようにさらに構成され、
受信機は、コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信するようにさらに構成され、
プロセッサは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを、第２の対応に追加するようにさらに構成され、
コンテキスト・リクエスト・メッセージは、入力パケットが属するフローに対応するコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子を含み、
コンテキスト・インスタレーション・メッセージは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを含む。
【００１７】
第３の態様に従って、フォワーダにより実行される、ＳＤＮにおいてパケットを処理するための別の方法は、具体的に、
入力パケットを受信するステップと、
入力パケットに従って、入力パケットが属するフローを決定するステップと、
フローとコンテキスト識別子セットとの間の第１の対応が、入力パケットが属するフローに対応するコンテキスト識別子セットを有するか否かを決定するステップと、はいの場合に、第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットを決定するステップ、あるいは、そうではない場合に、フロー規則リクエストメッセージをコントローラに送信するステップであって、フロー規則リクエストメッセージは、入力パケットのパケットヘッダまたはコンテンツを含む、送信するステップと、コントローラにより送信されたフロー規則インスタレーションメッセージを受信するステップであって、フロー規則インスタレーションメッセージは、入力パケットのフローに対応するコンテキスト識別子セットを含む、受信するステップと、
コンテキスト識別子とコンテキストとの間の第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定するステップと、
コンテキスト識別子セットに対応するコンテキストに従って、入力パケットを処理するステップとを含む。
【００１８】
第３の態様を参照し、第３の態様の第１の可能性ある実現方法では、方法はさらに、
コンテキスト識別子とコンテキストとの間の第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定するステップの前に、第２の対応がコンテキスト識別子セットに対応するコンテキストを有するか否かを決定するステップを含み、
はいの場合に、
第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定するステップを実行するステップを含み、あるいは、
コンテキストセットにおけるいくつかまたは全てのコンテキスト識別子が対応するコンテキストを有しない場合に、
コンテキスト・リクエスト・メッセージをコントローラに送信するステップであって、コンテキスト・リクエスト・メッセージは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子を含む、送信するステップと、
コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信するステップであって、コンテキスト・インスタレーション・メッセージは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを含む、受信するステップと、
コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを、第２の対応に追加するステップとを実行するステップを含む。
【００１９】
第４の態様に従って、インターフェース、プロセッサおよびメモリを具備する、別のフォワーダが提供され、
メモリは、フローとコンテキスト識別子セットとの間の第１の対応およびコンテキスト識別子とコンテキストとの間の第２の対応を記憶するように構成され、第１の対応における各フローに対応するコンテキスト識別子セットは、少なくとも１つのコンテキスト識別子を含み、
インターフェースは、入力パケットを受信するように構成され、
プロセッサは、メモリに記憶された第１の対応が、入力パケットが属するフローに対応するコンテキスト識別子セットを有するか否かを決定するように構成され、はいの場合に、第１の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットを決定し、または、そうではない場合に、インターフェースに通知するように構成され、
インターフェースは、プロセッサの通知を受信した後に、フロー規則リクエストメッセージをコントローラに送信するように構成され、
インターフェースは、コントローラにより送信されたフロー規則インスタレーションメッセージを受信するように構成され、
プロセッサは、メモリに記憶された第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定し、コンテキスト識別子セットに対応するコンテキストに従って、入力パケットを処理するようにさらに構成され、
フロー規則リクエストメッセージは、入力パケットのパケットヘッダまたはコンテンツを含み、
フロー規則インスタレーションメッセージは、入力パケットのフローに対応するコンテキスト識別子セットを含む。
【００２０】
第４の態様を参照し、第４の態様の第１の可能性ある実現方法では、プロセッサはさらに、メモリに記憶された第２の対応に従って、入力パケットが属するフローに対応するコンテキスト識別子セットに対応するコンテキストが決定される前に、第２の対応が、入力パケットが属するフローに対応するコンテキスト識別子セットに対応するコンテキストを有するか否かを決定するように構成され、はいの場合に、メモリに記憶された第２の対応に従って、コンテキスト識別子セットに対応するコンテキストを決定し、または、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子が対応するコンテキストを有しない場合に、送信機に通知するように構成され、
送信機は、プロセッサの通知の受信後に、コンテキスト・リクエスト・メッセージをコントローラに送信するようにさらに構成され、
受信機は、コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信するようにさらに構成され、
プロセッサは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを、第２の対応に追加するようにさらに構成され、
コンテキスト・リクエスト・メッセージは、入力パケットが属するフローに対応するコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子を含み、
コンテキスト・インスタレーション・メッセージは、コンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子ならびにコンテキスト識別子セットにおけるいくつかまたは全てのコンテキスト識別子に対応するコンテキストを含む。
【００２１】
本発明の実施形態では、フローは、コンテキスト識別子セットに対応し、フローは、コンテキストに直接関係付けられず、複数のフローがコンテキストを共有するときでさえ、このコンテキストは、複数回保存される必要はなく、従来の技術のものと同じハードウェア条件下で、フォワーダの記憶能力および処理能力は、本発明の実施形態で大きく改善される。
【００２２】
本発明の実施形態における技術的解決策をさらに明確に説明するために、以下で、先行技術の実施形態を説明するのに必要な添付図面を簡単に紹介する。明白なことに、以下の説明中の添付図面は、本発明のいくつかの実施形態を示すに過ぎず、さらに、当業者は、創造的な努力をすることなく、これらの添付図面から他の図面を導き出すことができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に従った、ＳＤＮの概略的なアーキテクチャ図である。
【図２】本発明の実施形態に従った、フォワーダの概略的な構成図である。
【図３】本発明の実施形態に従った、フォワーダによりパケットを処理するための方法の概略的なフローチャートである。
【図４】本発明の実施形態に従った、ＯｐｅｎＦｌｏｗフォワーダにより入力パケットを処理するための方法の概略的なフローチャートである。
【図５】本発明の実施形態に従った、フォワーダによりフローまたはコンテキストをインストールするための方法の概略的なフローチャートである。
【図６ａ】本発明の実施形態に従った、フォワーダとコントローラとの間の交渉を実行するための方法の概略的なフローチャートである。
【図６ｂ】本発明の実施形態に従った、フォワーダとコントローラとの間の交渉を実行するための別の方法の概略的なフローチャートである。
【図７】本発明の実施形態に従った、フロー、フローに対応するＣＩＤセットまたはＣＩＤに対応するコンテキストに関する情報をコントローラによりクエリ、変更または削除するための方法の概略的なフローチャートである。
【発明を実施するための形態】
【００２４】
以下では、本発明の実施形態における添付図面を参照して、本発明の実施形態における技術的解決策を明確かつ完全に説明する。明白なことに、説明する実施形態は、本発明の実施形態のいくつかではあるが、全てではない。創造的な努力をすることなく、本発明の実施形態に基づいて当業者により得られる他の全ての実施形態は、本発明の保護範囲内にある。
【００２５】
図１は、ＳＤＮの概略的なアーキテクチャ図であり、ＳＤＮは、フォワーダ１４およびコントローラ１２を少なくとも含む。フォワーダ１４は、データレイヤを転送する責任があり、コントローラ１２は、ネットワークにわたる集中制御を実行し、制御レイヤの機能を実現する責任がある。フォワーダ１４は、制御プロトコルを使用することにより、コントローラ１２と通信する。１つのフォワーダは、１以上の他のフォワーダに接続されてもよく、パケットを送信／受信するための１以上のエンティティ（例えば、固定端末、移動体端末およびパーソナルコンピュータ）にも接続されてもよい。
【００２６】
図２は、フォワーダの概略的な構成図であり、フォワーダ１４はインターフェース１４０２、プロセッサ１４０４およびメモリ１４０６を具備する。フォワーダ１４は、インターフェース１４０２を使用することにより、コントローラ１２または他のネットワークエンティティと通信する。インターフェース１４０２は、コントローラ１２または他のネットワークエンティティから、メッセージ、情報、パケットまたはデータを受信するように構成され、あるいは、コントローラ１２または他のネットワークエンティティに、メッセージ、情報、パケットまたはデータを送信するように構成される。プロセッサ１４０４は、インターフェース１４０２により受信されたメッセージ、情報、パケットまたはデータに関していくつかの対応する処理を実行してもよい。メモリ１４０６は、フローおよびコンテキストに関する情報を記憶するように構成されてもよい。さらに、メモリ１４０６は、他の情報を記憶するようにさらに構成されてもよく、例えば、受信機２００２により受信されたメッセージ、情報、パケットまたはデータを記憶するように、あるいは、プロセッサ１４０４の処理結果を記憶するように構成されてもよい。メモリ１４０６に記憶された、フローおよびコンテキストに関する情報はまた、フローとコンテキスト識別子（Ｃｏｎｔｅｘｔ  Ｉｄｅｎｔｉｆｉｅｒ、ＣＩＤと略す）セットとの間の第１の対応およびＣＩＤとコンテキストとの間の第２の対応を含む。
【００２７】
説明を簡略化するために、フローとＣＩＤセットとの間の第１の対応は、以下においてフローテーブルと呼ばれ、このネーム：「フローテーブル」は、第１の対応の記憶の形を制限するように使用されない。その理由は、メモリ１４０６が第１の対応を記憶するときに、テーブルの形で使用されてもよく、他の形、例えば、記憶ユニットが１以上の他の記憶ユニットにマッピングされる形もまた使用されてもよい。
【００２８】
メモリ１４０６は、１以上のフローテーブルを記憶してもよい。表３は、本発明の実施形態における、フローテーブルの概略的な構造図である。表３に示すフローテーブルは、表１に示す従来の技術のフローテーブルとは異なる。従来の技術のフローテーブルの各フローが、Ａｃｔｉｏｎと直接関係付けられる一方、本発明の本実施形態のフローテーブルにおける各フローは、ＣＩＤに関係付けられ、コンテキストに直接関係付けられない。
【００２９】
表３に示すように、フローテーブルにおける各フローに関する情報（例えば、フロー・マッチ・フィールド）とＣＩＤセットとの間の対応はフローテーブルエントリと呼ばれてもよい。フロー・マッチ・フィールドは、フローを識別するために使用され、フロー・マッチ・フィールドは、パケットが属するフローを識別するために必要とされる情報を含み、これらの構造は、表２に示す異なるタプルの任意の組み合わせを含んでもよく、マルチプロトコル・ラベル・スイッチング（Ｍｕｌｔｉｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ、ＭＰＬＳと略す）識別子、区別されたサービスコードポイント（ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  ｓｅｒｖｉｃｅｓ  ｃｏｄｅ  ｐｏｉｎｔ、ＤＳＣＰと略す）コード、転送レイヤプロトコルタイプ、汎用ルーティングカプセル化識別子（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ、ＧＲＥ  ＩＤと略す）、ＧＰＲＳトネリングプロトコルのトンネルエンドポイント識別子（ｔｕｎｎｅｌ  ｅｎｄｐｏｉｎｔ  ｉｄｅｎｔｉｆｉｅｒ  ｏｆ  ＧＰＲＳ  ｔｕｎｎｅｌｉｎｇ  ｐｒｏｔｏｃｏｌ、ＧＴＰ  ＴＥＩＤと略す）およびこれらに類するもののような、他のコンテンツも含んでもよく、あるいは、パケットオフセット値、マッチ長およびこれらに類するものを使用することにより、形成されてもよい。
【００３０】
表３の各フローは、ＣＩＤセットに対応し、各ＣＩＤセットは、少なくとも１つのＣＩＤを含む。ＣＩＤは、コンテキストを一意的に識別するために使用され、例えば、任意の伝搬システムのキャラクタ、数字、文字、数字および文字ならびに数字および他のキャラクタであってもよい、多くの表現形を有することがある。さらに、ＣＩＤは、コンテキストのタイプを示すために使用されてもよい。
【表３】
2020065264.tif 000005
【００３１】
先述のフローテーブルに加えて、メモリ１４０６は、ＣＩＤとコンテキストとの間の第２の対応をさらに保存する。説明の簡略化のために、ＣＩＤとコンテキストとの間の第２の対応は、以下においてコンテキストリストと呼ばれ、同様に、このネームは、第２の対応の記憶の形を制限するように使用されない。その理由は、メモリ１４０６が第２の対応を記憶するときに、テーブルの形で使用されてもよく、他の形、例えば、記憶ユニットが１以上の他の記憶ユニットにマッピングされる形もまた使用されてもよい。
【００３２】
表４は、本発明の実施形態における、コンテキストリストの概略的な構造図である。表４における各ＣＩＤは、コンテキストに対応する。コンテキストは、パケットを処理するために必要とされる情報を含む。
【００３３】
パケットを処理するために必要とされる情報に加えて、従来の技術のＡｃｔｉｏｎは、パケットのタイプ（Ａｃｔｉｏｎ  Ｔｙｐｅ）をさらに含む一方、本発明の実施形態では、フォワーダは、ＣＩＤを使用することにより、対応するコンテキストのタイプを既に知っていることがあり、そのため、コンテキストは、Ａｃｔｉｏｎ  Ｔｙｐｅに類似するこのような情報をこれ以上含まない。多くのコンテキストタイプがあり、本発明の実現では、従来の技術のａｃｔｉｏｎタイプ（例えば、パケット転送およびパケットドロップ）を含むのに加え、ＣＩＤにより示されるコンテキストタイプは、他のタイプをさらに含んでもよく、これにより、フォワーダは、多様な方法で入力パケットを処理してもよい。例えば、コンテキストタイプは、帯域幅制御、ディープ・パケット・インスペクション（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ、ＤＰＩ）、オンライン課金、オフライン課金、ファイアウォール処理、ネットワークアドレス変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ、ＮＡＴ）、合法の傍受（ｌａｗｆｕｌ  ｉｎｔｅｒｃｅｐｔｉｏｎ）、パケット再構築、リンク検出（例えば、双方向転送検出プロトコル（Ｂｉｄｉｒｅｃｔｉｏｎａｌ  Ｆｏｒｗａｒｄｉｎｇ  Ｄｅｔｅｃｔｉｏｎ  Ｐｒｏｔｏｃｏｌ、ＢＦＤＰ）、リンクレイヤディスカバリプロトコル（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ、ＬＬＤＰ）またはこれらに類するもの）、あるいは、これらに類するものをさらに含んでもよい。異なるコンテキストタイプはまた、異なるコンテキストに対応し、例えば、帯域幅制御タイプのコンテキストは、最大許容帯域幅、保証帯域幅、転送の優先度およびこれらに類するものを含んでもよく、オフライン課金タイプのコンテキストは、オフライン課金グループのグループ識別子、課金情報の報告インターバル、および、これらに類するものを含んでもよく、一方で、ルーティングおよび転送タイプのコンテキストは、転送ポート番号、送信元ＭＡＣアドレスまたは宛先ＭＡＣアドレスおよびこれらに類するものを含んでもよい。
【表４】
2020065264.tif 000006
【００３４】
異なるフローが、同じコンテキストに従って処理される必要がある場合に、コンテキストに対応するＣＩＤのみがフローテーブルに繰り返し保存され、コンテキストは、繰り返し保存される必要はない。例えば、フォワーダは、フローテーブルにおける各フローに対応するＣＩＤセットに、コンテキストに対応するＣＩＤを保存することのみを必要とし、コンテキストは、ＣＩＤとコンテキストとの間の対応において、一度だけ保存されることのみを必要とする。このように、フォワーダに対して、さらに多くの記憶スペースが節約されてもよく、節約された記憶スペースにより、フォワーダがより多くのコンテキストを記憶できるようにもなり、そのため、従来の技術のものと同じ条件下では、本発明の本実施形態におけるフォワーダは、より多くのコンテキストを記憶してもよく、パケット処理のためにより多くのコンテキストタイプをサポートしてもよい。
【００３５】
さらに、本発明の本実施形態では、パケット上で実行されるコンテキスト処理は、既存のＡｃｔｉｏｎより複雑な処理論理を実現するのに使用されてもよい。従来の技術では、ＯｐｅｎＦｌｏｗフォワーダがａｃｔｉｏｎを実行するときに、現在のパケットのみが処理され、フォワーダは、処理されたパケットにおいて状態維持を実行せず、そのため、ａｃｔｉｏｎのみを使用して、単一のパケットにおけるステートレスハンドリング（ｓｔａｔｅｌｅｓｓ  ｈａｎｄｌｉｎｇ）を実行できるが、フローの以前のパケット処理結果に従って、後続するパケットにおけるステートフルハンドリングを実行できない。しかし、以前のパケット処理結果は、パケット並び替え、ＤＰＩおよびウイルス検出のような、いくつかの複雑な処理動作に必要とされる。そのため、現在のａｃｔｉｏｎ設計における制限を考慮すると、従来の技術におけるＯｐｅｎＦｌｏｗフォワーダは、パケットにおける比較的単純なアクションの実行にのみ適用可能であるが、複雑なアクションを実現できない。本発明の本実施形態におけるフォワーダは、コンテキスト処理ユニットを使用することにより、パケット処理後の状態を保存してもよく、それにより、パケットにおけるさらに複雑な処理を実行してもよい。
【００３６】
理解を容易にするために、特定の例を使用することにより、本発明で提供されるフォワーダについて以下に詳細に述べる。
【００３７】
例えば、図２を参照すると、フォワーダ１４のインターフェース１４０２は、入力パケットを受信するように構成された受信機１４０２２を含んでもよい。入力パケットは、別のフォワーダにより送信されてもよく、別のエンティティ（例えば、コンピュータ、移動体端末または固定端末）により送信されてもよい。
【００３８】
プロセッサ１４０４は、入力パケットが属するフローを決定するように、例えば入力パケットのパケットヘッダまたはコンテンツに従って、入力パケットが属するフローを決定するように、構成されている。
【００３９】
プロセッサ１４０４は、メモリ１４０６に記憶された第１の対応に従って、入力パケットが属するフローに対応するＣＩＤセットを決定するように、および、メモリ１４０６に記憶された第２の対応に従って、ＣＩＤセットに対応するコンテキストを決定するように、および、ＣＩＤセットに対応するコンテキストに従って、入力パケットを処理するように、さらに構成されている。
【００４０】
入力パケットの処理後、プロセッサ１４０４は、コンテキスト処理結果を取得する。別の例では、図２を参照すると、フォワーダ１４のインターフェース１４０２は、送信機１４０２４をさらに含んでもよい。送信機１４０２４は、プロセッサ１４０４が入力パケットを処理した後に取得されたコンテキスト処理結果をコントローラ１２に送信するように構成されている。
【００４１】
送信機１４０２４により送信されたコンテキスト処理結果を受信後、コントローラ１２は、入力パケットを処理し続ける必要があるか否かを、コンテキスト処理結果に従って決定してもよく、はいの場合に、入力パケットに関して決定される、新しく決定されたフローおよび新しく決定されたＣＩＤセットをフォワーダ１４に送信する。フォワーダ１４中の受信機１４０２２は、新しく決定されたコンテキスト識別子セットに対応するコンテキストに従って入力パケットをさらに処理するようプロセッサ１４０４に命令するために、コントローラ１２により入力パケットに関して決定される、新しく決定されたフローおよび新しく決定されたコンテキスト識別子セットを受信するようにさらに構成されてもよい。
【００４２】
通常の場合では、入力パケットの受信前に、メモリ１４０６は既に大半のフローに対応するＣＩＤセットを保存する。しかし、入力パケットのフローに対応するＣＩＤセットを、メモリ１４０６に記憶された第１の対応中で見つけられない場合も時折起こり、この場合には、フォワーダ１４は、入力パケットのフローに対応するＣＩＤセットをコントローラ１２から取得してもよい。本発明の別の例では、プロセッサ１４０４が、入力パケットが属するフローを決定した後に、プロセッサ１４０４は、入力パケットが属するフローに対応するＣＩＤセットを第１の対応が有するか否かを決定するようにさらに構成されていてもよく、はいの場合に、プロセッサ１４０４は、第１の対応に従って、入力パケットが属するフローに対応するＣＩＤセットを決定し、いいえの場合、プロセッサ１４０４は、コントローラ１２にフロー規則リクエストメッセージを送信するように送信機１４０２４に通知し、フロー規則リクエストメッセージは、入力パケットのパケットヘッダまたはコンテンツを含む。
【００４３】
受信機１４０２２は、コントローラ１２により送信されたフロー規則インスタレーションメッセージを受信するようにさらに構成され、フロー規則インスタレーションメッセージは、入力パケットのフローに対応するＣＩＤセットを含む。その後、プロセッサ１４０４は、メモリ１４０６に記憶された第２の対応に従って、ＣＩＤセットに対応するコンテキストを決定してもよく、ＣＩＤセットに対応するコンテキストに従って、入力パケットを処理してもよい。
【００４４】
オプション的に、プロセッサ１４０４は、入力パケットが属するフローに関する情報および入力パケットのフローに対応するＣＩＤセットを第１の対応にさらに追加してもよい。
【００４５】
従来の技術では、フォワーダが、コントローラからの入力パケットのフローに対応するＡｃｔｉｏｎをリクエストしたときはいつでも、コントローラは、フロー規則インスタレーションメッセージにＡｃｔｉｏｎを運ばせ、フロー規則インスタレーションメッセージをコントローラに送信する。Ａｃｔｉｏｎは、多くの処理パラメータを含み、そのため、様々なＡｃｔｉｏｎを送信するための要件を満たすために、フロー規則インスタレーションメッセージは、比較的長く設計される必要があるが、フロー規則インスタレーションメッセージが過剰に長く設計された場合に、送信時間は延長され、パケット処理効率に影響を及ぼす。この問題は、単に、本発明で提供される例を使用することにより解決されるかもしれない。コントローラが、フォワーダからフロー規則リクエストメッセージを受信するときに、コントローラは、フロー規則インスタレーションメッセージを使用することにより、入力パケットのフローに対応するＣＩＤセットをフォワーダに送信することのみを必要とし、フォワーダが既にＣＩＤセットに対応するコンテキストを記憶している場合に、フォワーダは、ＣＩＤセットにおける各ＣＩＤに従って、対応するコンテキストを見つけることのみを必要とする。ＣＩＤセットにより占有されるスペースは非常に小さく、ＣＩＤセットを送信するためのフロー規則インスタレーションメッセージは、過剰に長く設計される必要はなく、そのため、フロー規則インスタレーションメッセージを送信するのに使用される時間もまた短くなり、フォワーダがパケットを処理する効率もある程度改善できる。
【００４６】
当然、先述の例で説明した方法に加えて、コントローラ１２はさらに、ＣＩＤセットに対応するコンテキストおよびＣＩＤセットを共にフォワーダ１４に送信してもよい。例えば、コントローラ１２により送信されるフロー規則インスタレーションメッセージは、ＣＩＤセットに対応するコンテキストをさらに含んでもよい。この場合には、フロー規則インスタレーションメッセージのフォーマットは以下の通りであってもよい：
＜フロー規則インスタレーションメッセージ＞：＝｛フローに関する情報，＜ＣＩＤ１，ＣＩＤ２，ＣＩＤ３＞，［ＣＩＤ１，Ｃｏｎｔｅｘｔ１］，［ＣＩＤ２，Ｃｏｎｔｅｘｔ２］，［ＣＩＤ３，Ｃｏｎｔｅｘｔ３］｝
【００４７】
受信機１４０２２がフロー規則インスタレーションメッセージを受信した後に、第２の対応がＣＩＤセット中のいくつかまたは全てのＣＩＤ、ならびに、いくつかまたは全てのＣＩＤに対応するコンテキストを保存していないことがプロセッサ１４０４により判明した場合、プロセッサ１４０４は、いくつかまたは全てのＣＩＤと、いくつかまたは全てのＣＩＤに対応するコンテキストとを第２の対応に追加する。
【００４８】
同様に、通常の場合では、入力パケットの受信前に、大半のＣＩＤおよびＣＩＤに対応するコンテキストは、メモリ１４０６に記憶された第２の対応に既に記憶されている。しかし、１または複数のＣＩＤに対応するコンテキストを、メモリ１４０６に記憶された第２の対応中で見つけられない場合も時折起こり、この場合には、フォワーダ１４は、１または複数のＣＩＤに対応するコンテキストをコントローラ１２から取得および入力してもよい。例えば、別の例では、メモリ１４０６に記憶された第２の対応に従って、ＣＩＤセットに対応するコンテキストを決定する前に、プロセッサ１４０４は、入力パケットが属するフローに対応するＣＩＤセットに対応するコンテキストを第２の対応が有するか否かをさらに決定してもよく、はいの場合に、メモリ１４０６に記憶された第２の対応に従って、ＣＩＤセットに対応するコンテキストを決定し、あるいは、ＣＩＤセット中のいくつかまたは全てのＣＩＤが対応するコンテキストを有しない場合、コントローラ１２にコンテキスト・リクエスト・メッセージを送信するよう送信機１４０２４に通知し、コンテキスト・リクエスト・メッセージは、入力パケットが属するフローに対応するＣＩＤセット中のいくつかまたは全てのＣＩＤを含む。
【００４９】
受信機１４０２２は、コントローラ１２により送信されるコンテキスト・インスタレーション・メッセージを受信するようにさらに構成され、コンテキスト・インスタレーション・メッセージは、ＣＩＤセット中のいくつかまたは全てのＣＩＤならびにＣＩＤセット中のいくつかまたは全てのＣＩＤに対応するコンテキストを含む。
【００５０】
オプション的に、プロセッサ１４０８は、ＣＩＤセット中のいくつかまたは全てのＣＩＤならびにいくつかまたは全てのＣＩＤに対応するコンテキストを第２の対応に追加するようにさらに構成されていてもよい。
【００５１】
フォワーダは、パケット処理後の様々な処理結果を取得し、フォワーダは、コントローラにいくつかの処理結果を、例えば、合法の傍受により取得された関連情報、ＮＡＴサービスの実行後に取得された結果およびこれらに類するものを報告する必要がある。フォワーダは、いくつかの結果をさらに処理する必要があるかもしれない。例えば、本発明の別の例では、フォワーダ１４中のプロセッサ１４０８が入力パケットを処理した後に取得された処理結果は、新しく生成されたパケットであってもよい。新しく生成されたパケットにおいてフォワーダ１４により実行される処理は、入力パケットにおいて実行される処理と同様であり、これは、本明細書において再度詳細に説明しない。
【００５２】
従来の技術では、ＯｐｅｎＦｌｏｗのａｃｔｉｏｎは、現在のパケットにおいてどのタイプの処理が実行されるかを規定しているに過ぎず、フォワーダは、パケットの処理結果を維持せず、そのため、パケットに関する以前の処理結果に基づいて次の処理が実行される必要があるときに、従来の技術におけるａｃｔｉｏｎを実現できない。
【００５３】
先述の例で説明した第１の対応は、フォワーダ１４における初期設定を実行するときに、技術者によりメモリ１４０６に記憶されてもよく、フォワーダ１４およびコントローラ１２が接続を確立した後に、コントローラ１２によりフォワーダ１４に送信されてもよい。例えば、入力パケットの受信前に、受信機１４０２２は、最初に、コントローラ１２により送信されたフロー規則インスタレーションメッセージを受信してもよく、フロー規則インスタレーションメッセージは、フォワーダ１４によりサポートされるいくつかまたは全てのフローに関する情報ならびにフォワーダ１４によりサポートされるいくつかまたは全てのフローに対応するＣＩＤセットを含む。受信機１４０２２は、第１の対応を形成するために、フォワーダ１４によりサポートされるいくつかまたは全てのフローに関する情報ならびにフォワーダ１４によりサポートされるいくつかまたは全てのフローに対応するＣＩＤセットを、１対１の対応方法で保存するようメモリ１４０６に通知する。
【００５４】
同様に、先述の例で説明した第２の対応は、フォワーダ１４における初期設定を実行するときに、技術者によりメモリ１４０６に記憶されてもよく、フォワーダ１４およびコントローラ１２が接続を確立した後に、コントローラ１２によりフォワーダ１４に送信されてもよい。例えば、入力パケットの受信前に、受信機１４０２２は、最初に、コントローラ１２により送信されたコンテキスト・インスタレーション・メッセージを受信してもよく、コンテキスト・インスタレーション・メッセージは、フォワーダ１４によりサポートされるいくつかまたは全てのＣＩＤならびにフォワーダ１４によりサポートされるいくつかまたは全てのＣＩＤに対応するコンテキストを含む。受信機１４０２２は、第２の対応を形成するために、フォワーダ１４によりサポートされるいくつかまたは全てのＣＩＤならびにフォワーダ１４によりサポートされるいくつかまたは全てのＣＩＤに対応するコンテキストを、１対１の対応方法で保存するようメモリ１４０６に通知する。
【００５５】
別の例では、フォワーダ１４がコントローラ１２と通信する前に、フォワーダ１４は、フローおよびコンテキストを処理するためのピアの能力を知るために、最初に、コントローラ１２と交渉してもよい。例えば、フォワーダ１４中の送信機１４０２４は、コントローラ１２に能力交渉リクエストメッセージを送信し、能力交渉リクエストメッセージは、フォワーダによりサポートされるコンテキスト能力リストを含み、これにより、コントローラ１２は、フォワーダ１４がサポートできるいくつかまたは全てのコンテキストをフォワーダ１４に送信する。受信機１４０２２は、コントローラ１２により送信された交渉リスポンスメッセージを受信し、交渉リスポンスメッセージは、コントローラ１２によりサポートされるコンテキスト能力リストを含んでもよく、これにより、フォワーダ１４は、コントローラ１２によりサポートされるコンテキスト能力リストに従って、コントローラがサポートできる、コントローラからのいくつかまたは全てのコンテキストをリクエストする。
【００５６】
フォワーダ１４およびコントローラ１２の前の先述の交渉は、コントローラ１２によりアクティブに開始されてもよい。例えば、フォワーダ１４中の受信機１４０２２は、コントローラ１２により送信される能力交渉リクエストメッセージを受信し、能力交渉リクエストメッセージは、コントローラ１２によりサポートされるコンテキスト能力リストを含み、これにより、フォワーダ１４は、コントローラ１２によりサポートされるコンテキスト能力リストに従って、コントローラがサポートできる、コントローラ１２からのいくつかまたは全てのコンテキストをリクエストする。フォワーダ１４中の送信機１４０２４は、コントローラ１２に交渉リスポンスメッセージを送信し、交渉リスポンスメッセージは、フォワーダ１４によりサポートされるコンテキスト能力リストを含んでもよく、これにより、コントローラ１２は、フォワーダ１４がサポートできるいくつかまたは全てのコンテキストをフォワーダ１４に送信する。
【００５７】
コントローラ１２は、フォワーダ１４のメモリ１４０６に記憶された第１の対応または第２の対応を、例えば、第１の対応あるいは第２の対応中の、クエリ、変更または削除情報を管理してもよい。
【００５８】
例えば、コントローラ１２が、フローに対応するＣＩＤセットをクエリする必要がある場合に、コントローラ１２は、フロー規則クエリ・リクエスト・メッセージをフォワーダ１４に送信し、フォワーダ１４中の受信機１４０２２は、コントローラ１２により送信されたフロー規則クエリ・リクエスト・メッセージを受信し、クエリ・リクエスト・メッセージは、クエリされることになるフローに関する情報を含む。プロセッサ１４０６は、第１の対応に従って、クエリされることになるフローに対応するＣＩＤセットを見つけ、コントローラ１２にフロー規則クエリ・リスポンス・メッセージを送信するよう送信機１４０２４に通知し、フロー規則クエリ・リスポンス・メッセージは、クエリされることになるフローに関する情報およびクエリされることになるフローに対応するＣＩＤセットを含む。
【００５９】
別の例に関して、コントローラ１２が、１または複数のＣＩＤに対応するコンテキストをクエリする必要がある場合に、コントローラ１２は、コンテキスト・クエリ・リクエスト・メッセージをフォワーダ１４に送信し、フォワーダ１４中の受信機１４０２２は、コントローラ１２により送信されたコンテキスト・クエリ・リクエスト・メッセージを受信し、クエリ・リクエスト・メッセージは、クエリされることになるＣＩＤを含み、１以上のクエリされることになるＣＩＤがあることがある。プロセッサ１４０４は、第２の対応に従って、クエリされることになるＣＩＤに対応するコンテキストを見つけ、コントローラにコンテキスト・クエリ・リスポンス・メッセージを送信するよう送信機１４０２４に通知し、クエリ・リスポンス・メッセージは、クエリされることになるＣＩＤに対応するコンテキストを含む。オプション的に、先述のクエリ・リスポンス・メッセージは、クエリされることになるＣＩＤをさらに含んでもよい。
【００６０】
別の例に関して、コントローラ１２が、フローに対応するＣＩＤセットを変更する必要がある場合に、コントローラ１２は、フォワーダ１４にフロー変更メッセージを送信し、フォワーダ１４中の受信機１４０２２は、コントローラ１２により送信されたフロー規則変更メッセージを受信し、フロー変更メッセージは、変更されることになるフローに関する情報および変更されることになるフローに対応する新しいＣＩＤセットを含む。受信機１４０２２は、第１の対応において、変更されることになるフローに対応するＣＩＤセットを、新しいＣＩＤセットに変更するようプロセッサ１４０４に通知する。例えば、受信機１４０２２は、コントローラ１２により送信されたフロー規則変更メッセージを受信し、フロー規則変更メッセージに含まれる、変更されることになるフローに関する情報は、以下の通りである：送信元ＩＰアドレスが１０．８８．８５．５５であり、宛先ＩＰアドレスが１０．８８．８０．５６であるフローに関して、変更されることになるフローに対応する新しいＣＩＤセットは、ＣＩＤ１、ＣＩＤ２およびＣＩＤ５である。第１の対応において、当初、送信元ＩＰアドレスが１０．８８．８５．５５であり、宛先ＩＰアドレスが１０．８８．８０．５６であるフローに対応するＣＩＤセットは、ＣＩＤ１、ＣＩＤ２およびＣＩＤ３であり、先述のフロー変更メッセージを受信後、受信機１４０２２は、送信元ＩＰアドレスが１０．８８．８５．５５であり、宛先ＩＰアドレスが１０．８８．８０．５６であるフローに対応するＣＩＤセットを、ＣＩＤ１、ＣＩＤ２およびＣＩＤ５に変更するようプロセッサ１４０４に通知する。
【００６１】
別の例に関して、コントローラ１２は、１または複数のＣＩＤに対応するコンテキストを変更する必要がある場合に、コントローラ１２は、コンテキスト変更メッセージをフォワーダ１４に送信し、フォワーダ１４中の受信機１４０２２は、コントローラ１２により送信されたコンテキスト変更メッセージを受信し、コンテキスト変更メッセージは、変更されることになるＣＩＤおよび変更されることになるコンテキスト識別子に対応する新しいコンテキストを含む。受信機１４０２２は、第２の対応において、変更されることになるＣＩＤに対応するコンテキストを、新しいコンテキストに変更するようプロセッサ１４０４に通知する。例えば、当初ＣＩＤ１に対応するコンテキストはＣｏｎｔｅｘｔ１ａであり、受信機１４０２２により受信されたコンテキスト変更メッセージがＣＩＤ１およびＣＩＤ１に対応する新しいコンテキストであるＣｏｎｔｅｘｔ１ｂを含む場合に、受信機１４０２２は、第２の対応において、ＣＩＤ１に対応するコンテキストを、Ｃｏｎｔｅｘｔ１ｂに変更するようプロセッサ１４０４に通知する。
【００６２】
別の例に関して、コントローラ１２が、フローに関する情報を削除する必要がある場合に、コントローラ１２は、フロー削除メッセージをフォワーダ１４に送信し、フォワーダ１４中の受信機１４０２２は、コントローラ１２により送信されたフロー削除メッセージを受信し、フロー削除メッセージは、削除対象のフローに関する情報を含む。受信機１４０２２は、削除対象のフローに関する情報および削除対象のフローに対応するＣＩＤセットを第１の対応から削除するようプロセッサ１４０４に通知する。
【００６３】
オプション的に、削除されたフローに対応するいくつかまたは全てのＣＩＤが他のフローに対応しない場合に、プロセッサ１４０４は、削除されたフローに対応するいくつかまたは全てのＣＩＤならびに削除されたフローに対応するいくつかまたは全てのＣＩＤに対応するコンテキストを第２の対応からさらに削除してもよい。
【００６４】
例えば、フロー１に対応するＣＩＤセットがＣＩＤ１およびＣＩＤ２を含み、フロー２に対応するＣＩＤセットがＣＩＤ１およびＣＩＤ３を含むと仮定する。プロセッサ１４０４は、フロー１に関する情報を第１の対応から削除した後、ＣＩＤ２がフロー１にのみ対応することがプロセッサ１４０４により判明した場合に、プロセッサ１４０４は、ＣＩＤ２に対応するコンテキストを第２の対応からさらに削除してもよい。しかし、ＣＩＤ１はフロー１に対応するだけでなく、フロー２にも対応するため、プロセッサ１４０４は、ＣＩＤ１に対応するコンテキストを削除しない。
【００６５】
フロー２に関する情報も削除された後、ＣＩＤ１が他のフローに対応しないことがプロセッサ１４０４により判明した場合に、プロセッサ１４０４は、ＣＩＤ１に対応するコンテキストを第２の対応から削除する。
【００６６】
オプション的に、プロセッサ１４０４は、削除されたフローに関する情報あるいは削除されたコンテキストに対応するＣＩＤをコントローラ１２に報告するよう送信機１４０２４にさらに通知してもよい。
【００６７】
別の例に関して、コントローラ１２がコンテキストを削除する必要がある場合に、コントローラ１２は、コンテキスト削除メッセージをフォワーダ１４に送信し、フォワーダ１４中の受信機１４０２２は、コントローラ１２により送信されたコンテキスト削除メッセージを受信するように構成され、コンテキスト削除メッセージは、少なくとも１つの削除対象のコンテキスト識別子を含む。受信機１４０２２は、少なくとも１つの削除対象のＣＩＤおよび少なくとも１つの削除対象のＣＩＤに対応するコンテキストを第２の対応から削除するようプロセッサ１４０４に命令するように構成されている。
【００６８】
オプション的に、第２の対応中のコンテキストの削除後、プロセッサ１４０４は、それに応じて第１の対応をさらに変更してもよく、例えば、プロセッサ１４０４は、第１の対応中の削除されたコンテキストに対応するＣＩＤを削除する。
【００６９】
プロセッサ１４０４が、コンテキストのＣＩＤに対応するフローを処理するときに、コンテキストの削除により、問題の発生が引き起こされることがあり、そのため、第１の対応中の削除されたコンテキストに対応するＣＩＤの削除後、プロセッサ１４０４は、第１の対応中の削除されたＣＩＤに対応するフローに関する情報をさらに削除してもよい。
【００７０】
例えば、フロー１に対応するＣＩＤセットがＣＩＤ１およびＣＩＤ２を含み、フロー２に対応するＣＩＤセットがＣＩＤ１およびＣＩＤ３を含むと仮定する。プロセッサ１４０４が、メモリ１４０６に記憶された第２の対応から、コンテキストに対応するＣＩＤ１を削除した後、ＣＩＤ１に対応するフローがフロー１およびフロー２を含むことがプロセッサ１４０４により判明した場合に、プロセッサ１４０４は、第１の対応中のフロー１に関する情報およびフロー２に関する情報をさらに削除してもよい。さらに、プロセッサ１４０４は、フロー１およびフロー２に別々に対応するＣＩＤセットをさらに削除してもよい。
【００７１】
オプション的に、プロセッサ１４０４は、削除されたコンテキストに対応するＣＩＤおよび削除されたフローに関する情報をコントローラ１２に報告するよう送信機１４０２４にさらに通知してもよい。
【００７２】
本発明で提供される先述の例を使用することにより、コントローラ１２は、フォワーダ１４に保存された第１の対応および第２の対応を効率的に管理してもよい。
【００７３】
本発明の本実施形態で提供されるフォワーダの紹介後、本発明の実施形態に従った方法を、いくつかの例を使用することにより以下で紹介する。
【００７４】
図３は、本発明の実施形態に従った、フォワーダによりパケットを処理するための方法の概略的なフローチャートであり、具体的には以下の通りである：
【００７５】
ステップ３０２：フォワーダが入力パケットを受信する。
【００７６】
入力パケットは、別のフォワーダにより送信されてもよく、別のエンティティ（例えば、コンピュータ、移動体端末または固定端末）により送信されてもよい。
【００７７】
ステップ３０４：フォワーダは、入力パケットに従って、入力パケットが属するフローを決定する。
【００７８】
フォワーダは、入力パケットのパケットヘッダまたはコンテンツに従って、入力パケットが属するフローを決定してもよい。入力パケットが属する１以上のフローがあることがある。
【００７９】
例えば、フォワーダが入力パケットを受信した後、入力パケットのパケットヘッダは以下の通りである：
ＭＡＣ１｜ＭＡＣ２｜ＩＰ−ＴＹＰＥ（０ｘ０８００）｜ＩＰ１｜ＩＰ２｜ＴＣＰ−ＴＹＰＥ（６）｜ＰＯＲＴ１｜ＰＯＲＴ２
ここで、ＭＡＣ１は、パケットのＭＡＣ送信元アドレスであり、ＭＡＣ２は、パケットのＭＡＣ宛先アドレスである。ＩＰ−ＴＹＰＥ（０Ｘ８００）は、パケットのネットワーク・レイヤ・プロトコルがＩＰｖ４プロトコルであることを示し、ＩＰ１はパケットのＩＰ送信元アドレスであり、ＩＰ２はパケットのＩＰ宛先アドレスである。ＴＣＰ−ＴＹＰＥ（６）は、パケットの転送レイヤプロトコルがＴＣＰプロトコルであることを示し、ＰＯＲＴ１はパケットの送信元ＴＣＰポート番号であり、ＰＯＲＴ２はパケットの宛先ＴＣＰポート番号である。
【００８０】
入力パケットが属するフローは、入力パケットのパケットヘッダのいくつかまたは全てのコンテンツを使用することにより決定されてもよい。先述のパケットヘッダを例として使用することにより、先述のパケットヘッダに従って、入力パケットが、ＭＡＣ送信元アドレスがＭＡＣ１であり、ＭＡＣ宛先アドレスがＭＡＣ２であるフローに属し、入力パケットが、ＩＰ送信元アドレスがＩＰ１であり、ＩＰ送信元アドレスがＩＰ２であるフローに属することなどを決定してもよい。
【００８１】
ステップ３０６：フォワーダは、フローとＣＩＤとの間の第１の対応に従って、入力パケットが属するフローに対応するＣＩＤセットを決定し、第１の対応における各フローに対応するＣＩＤセットは少なくとも１つのＣＩＤを含む。
【００８２】
フォワーダが１つのフローテーブルのみを有し、フローテーブルが表５に示すフローテーブルエントリを含み、表５の第１の列がフロー・マッチ・フィールドを示し、第２の列がフロー・マッチ・フィールドにマッチするＣＩＤセットを示すと仮定する。
【表５】
2020065264.tif 000007
【００８３】
フォワーダは、入力パケットのパケットヘッダとフローテーブル５におけるフロー・マッチ・フィールドとをマッチさせ、入力パケットが属するフロー（ＭＡＣ送信元アドレスがＭＡＣ１であり、ＭＡＣ宛先アドレスがＭＡＣ２であるフロー）に対応するＣＩＤセットがＣＩＤセット１であることに気付く。
【００８４】
入力パケットのパケットヘッダが、フローテーブル中の複数のフローテーブルエントリとマッチすることがあるときに、フォワーダは、フローテーブルエントリの優先度に従って、入力パケットとマッチするフローテーブルエントリとして、最も優先度の高いフローテーブルエントリを選択する。
【００８５】
ステップ３０８：フォワーダは、ＣＩＤとコンテキストとの間の第２の対応に従って、入力パケットが属するフローに対応するＣＩＤセットに対応するコンテキストを決定する。
【００８６】
例えば、先述のＣＩＤセット１はＣＩＤのみを含む、例えば、ＣＩＤ＝５であると仮定する。フォワーダに保存されたＣＩＤとコンテキストとの間の第２の対応を、以下の通り表６に示す：
【表６】
2020065264.tif 000008
【００８７】
先述の説明に従うと、入力パケットが属する第１のフローに対応するＣＩＤセットはＣＩＤセット１であり、ＣＩＤセット１が、シリアル番号が５であるＣＩＤのみを有する場合に、フォワーダは、シリアル番号が５であるＣＩＤに従って、ＣＩＤに対応するコンテキストがｏｕｔｐｏｒｔ：１であることに気付いてもよい。
【００８８】
ステップ３１０：フォワーダは、ステップ３０８で決定されたコンテキストに従って、入力パケットを処理する。
【００８９】
例えば、シリアル番号が５であるＣＩＤに対応するＣｏｎｔｅｘｔがｏｕｔｐｏｒｔ：１である場合に、フォワーダは入力パケットをポート１に転送する。
【００９０】
先述の実施形態で説明した方法を使用することにより、フォワーダは、さらなるコンテキストを記憶してもよく、パケット処理に対するさらなるタイプをサポートしてもよく、それにより、パケットを処理するためのフォワーダの能力を改善する。
【００９１】
先述の実施形態で説明した方法は、入力パケットが属する複数のフローがある場合にさらに適用可能であり、例えば、ステップ３０４において入力パケットが属する２つのフローがあることをフォワーダが決定したときに、ステップ３１０の実行後、フォワーダは、ステップ３０６にさらにシフトしてもよく、別のフローテーブルに従って、入力パケットが属する別のフローに対応するＣＩＤセットを決定してもよい。例えば、フォワーダ中の別のフローテーブルが表７に示すフローテーブルエントリを含み、表７の第１の列はフロー・マッチ・フィールドを示し、第２の列は、フロー・マッチ・フィールドにマッチするＣＩＤセットを示すと仮定する。
【表７】
2020065264.tif 000009
【００９２】
フォワーダは、入力パケットのヘッダとフォワーダ中のフローテーブル７におけるフロー・マッチ・フィールドとをマッチさせ、入力パケットが属する別のフロー（ＩＰ送信元アドレスがＩＰ１であり、ＩＰ宛先アドレスがＩＰ２であるフロー）に対応するＣＩＤセットがＣＩＤセット２であることに気付く。その後、フォワーダは、ＣＩＤセット２に対応するＣＩＤに従って、入力パケットを処理してもよい。
【００９３】
入力パケットが属するフローに対応するＣＩＤセットが複数のＣＩＤを含む場合に、フォワーダは、予め設定されたコンテキストシーケンスで、複数のＣＩＤに対応するコンテキストに従って、入力パケットを処理する。
【００９４】
先述のコンテキストシーケンスが、少なくとも２つのコンテキストがシーケンス中で同じである場合を含む場合に、フォワーダは、少なくとも２つのコンテキストの双方に従って、入力パケットを処理する。
【００９５】
コンテキストが実行されるシーケンスは、以下の３つの方法で示されてもよい：
【００９６】
（１）第１の対応において、シーケンス番号は、各フローに対応するＣＩＤセット中の各ＣＩＤに対して設定される。例えば、入力パケットが属するフローに対応するＣＩＤセットはＣＩＤ１〜ＣＩＤ５であり、ＣＩＤ１〜ＣＩＤ５に対応するシーケンス番号は、表８の第２の列に別々に示される。フォワーダは、第２の列のシーケンス中のＣＩＤ１〜ＣＩＤ５に対応するコンテキストに従って、入力パケットを処理する。ＣＩＤ３およびＣＩＤ４が同じシーケンス番号を有することから、フォワーダは、ＣＩＤ３およびＣＩＤ４の双方に対応するコンテキストに従って、入力パケットを処理する。
【表８】
2020065264.tif 000010
【００９７】
（２）第１の対応において、各フローに対応するＣＩＤセット中の各ＣＩＤは、デフォルトの配列のシーケンスを有し、いくつかのＣＩＤと他のＣＩＤとの間に関係があってもよい。例えば、入力パケットが属するフローに対応するＣＩＤセットが表９に示され、第１の列はＣＩＤの配列シーケンスを示し、第２の列は、各ＣＩＤと他のＣＩＤとの間の関係を示す。ＣＩＤ１〜ＣＩＤ５に従って入力パケットを処理するときに、フォワーダは、他のＣＩＤに関係付けられていないＣＩＤに対して、表９の第１の列におけるＣＩＤの配列シーケンスで処理を実行する。第２の列が、ＣＩＤ３とＣＩＤ４が関係付けられていることを示していることから、フォワーダは、ＣＩＤ３およびＣＩＤ４の双方に対応するコンテキストに従って、入力パケットを処理する。
【表９】
2020065264.tif 000011
【００９８】
（３）第１の対応において、各フローに対応するＣＩＤセットおよびＣＩＤセット中の各ＣＩＤを実行するシーケンスは、２つのリストを使用することにより示されてもよい。例えば、入力パケットが属するフローに対応するＣＩＤセットは、表１０に示され、表１０は、ＣＩＤのデフォルトの配列シーケンスを昇順で示すために使用され、表１１は、ＣＩＤ間の関係を示すために使用される。関係を有することが記録された表１１におけるＣＩＤに対して、フォワーダは、これらのＣＩＤに対応するコンテキストに従って、入力パケットを同時に処理する。関係を有することが記録されていない表１１におけるＣＩＤに対して、交換は、表１０に示したＣＩＤのデフォルトの配列シーケンスで、入力パケットを処理する。
【表１０】
2020065264.tif 000012
【表１１】
2020065264.tif 000013
【００９９】
従来の技術では、フォワーダは、入力パケットのフローに対応するＡｃｔｉｏｎの配列シーケンスで、シーケンシャルに実行を行うことのみができる。しかし、本発明の本実施形態では、ＣＩＤのシーケンス番号間の関係またはＣＩＤが導入され、これにより、いくつかのＣＩＤに対応するコンテキストが並行して処理されてもよく、それにより、パケットを処理するためのフォワーダの効率が改善される。
【０１００】
しかし、実際の適用では、全てのコンテキストタイプが並行して処理されるわけではなく、２つまたは複数のコンテキストの処理結果が互いに影響しない場合にのみ、これらの２つまたは複数のコンテキストが並行して処理され得る。例えば、ファイアウォール処理および転送のような２つのコンテキストタイプは並行して処理できない。これらの２つのコンテキストの処理結果が互いに影響することから、フォワーダは、入力データにおいてファイアウォール処理を最初に実行し、その後、転送を実行する必要がある。あるいは、入力パケットを最初に転送し、その後、ファイアウォール処理を実行する必要がある。しかし、合法の傍受および転送は、並行して処理されてもよい。処理が並行して実行されることがある多くの例があるが、本明細書では１つずつ列挙しない。
【０１０１】
ステップ３１０では、入力パケットの処理後、フォワーダは、コンテキスト処理結果を取得する。オプション的に、別の例では、フォワーダは、以下のステップをさらに実行してもよい：
【０１０２】
ステップ３１２：フォワーダは、コンテキスト処理結果をコントローラに送信する。
【０１０３】
フォワーダは、イベント報告メッセージを使用することにより、コンテキスト処理結果をコントローラに送信する。例えば、パケット転送が成功したか否か、入力パケットにおけるオンライン課金の実行後に取得された課金結果、入力パケットにおけるＤＰＩの実行後に取得された結果およびこれらに類するもののような、多くのコンテキスト処理結果があってもよい。
【０１０４】
例えば、ステップ３１０においてフォワーダにより入力パケットにおいて実行されたコンテキスト処理が、入力パケットにおいて実行されたＤＰＩである場合に、ステップ３１２において、フォワーダは、イベント報告メッセージを使用することにより、入力パケットにおけるＤＰＩの実行後に取得された結果をコントローラに送信してもよい。イベント報告メッセージは、報告される必要のあるイベント（例えば、Ｐ２Ｐパケットの検出（Ｐ２Ｐ＿ＤＴＥＣＴＥＤ））を含む。さらに、イベント報告メッセージは、入力パケットのいくつかまたは全てのコンテンツ、ならびに／あるいは、コンテキスト実行の結果（例えば、入力パケットにおけるＤＰＩの実行後に取得された詳細な情報）をさらに含んでもよい。
【０１０５】
イベント報告メッセージの受信後、コントローラは、コンテキスト処理結果に従って、入力パケットを処理し続ける必要があるか否かを決定してもよく、はいの場合に、入力パケットに対して決定される、新しく決定されたフローおよび新しく決定されたＣＩＤセットをフォワーダに送信してもよく、これにより、フォワーダは、新しく決定されたフローおよび新しく決定されたＣＩＤセットに従って、入力パケットを処理する。例えば、イベント報告メッセージの受信後、イベント報告メッセージに含まれるコンテキスト処理結果が「入力パケットの転送に成功した」であることがコントローラにより判明した場合、コントローラは、何ら処理を実行しなくてもよい。別の例に関して、フォワーダは、イベント報告メッセージを使用することにより、報告される必要のあるイベントならびに入力パケットのいくつかまたは全てのコンテンツがコントローラに送信された後、コントローラにより、入力パケットを処理し続ける必要があることが判明した場合、コントローラは、新しいフローテーブルエントリをフォワーダに送信し、これにより、フォワーダは、新しいフローテーブルエントリに従って、入力パケットを処理し、新しいフローテーブルエントリは、入力パケットに対して決定される、新しく決定されたフロー・マッチ・フィールドおよび新しく決定されたＣＩＤセットを含む。
【０１０６】
一般的な状況では、入力パケットの受信前に、フォワーダは既に、パケットが属するフローに対応するＣＩＤセットを保存している。しかし、フォワーダが、第１の対応中の入力パケットのフローに対応するＣＩＤセットを見つけられない場合も時折起こり、この場合、フォワーダは、入力パケットのフローに対応するＣＩＤセットをコントローラから取得してもよい。図３を参照すると、本発明の別の例では、フォワーダがステップ３０６を実行する前に、方法はさらに以下のステップを含んでもよい：
【０１０７】
ステップ３０５ａ：第１の対応が、入力パケットが属するフローに対応するＣＩＤセットを有するか否かを決定する。はいの場合に、ステップ３０６〜ステップ３１０を実行し、あるいは、そうではない場合に、ステップ３０５ｂ〜ステップ３０５ｄを実行する。
【０１０８】
ステップ３０５ｂ：入力パケットをバッファにバッファリングし、フロー規則リクエストメッセージをコントローラに送信し、フロー規則リクエストメッセージは、入力パケットのパケットヘッダあるいは入力パケットのいくつかまたは全てのコンテンツを含む。
【０１０９】
例えば、ＯｐｅｎＦｌｏｗプロトコルを使用することにより、フォワーダがコントローラと通信するときに、フォワーダは、入力パケットに対応するＣＩＤセットを取得することをリクエストするために、パケット報告（Ｐａｃｋｅｔ＿Ｉｎ）メッセージをコントローラに送信し、Ｐａｃｋｅｔ＿Ｉｎメッセージは、入力パケットのパケットヘッダあるいは入力パケットのいくつかまたは全てのコンテンツを含む。さらに、Ｐａｃｋｅｔ＿Ｉｎメッセージは、入力パケットがバッファリングされるバッファ（例えば、Ｂｕｆｆｅｒ＿ＩＤ）、報告の理由（例えば、「フローテーブルが、マッチしたフローテーブルエントリを有しない」理由）およびこれらに類するものに関する情報をさらに運んでもよい。
【０１１０】
ステップ３０５ｃ：コントローラにより送信されたフロー規則インスタレーションメッセージを受信し、フロー規則インスタレーションメッセージは、入力パケットのフローに対応するＣＩＤセットを含む。
【０１１１】
例えば、フォワーダにより送信されたフロー規則リクエストメッセージの受信後、コントローラは、フロー規則リクエストメッセージ中の入力パケットのパケットヘッダまたはコンテンツに従って、入力パケットが属するフローに対応するＣＩＤセットが、具体的には以下の通りである７個のＣＩＤを含むことを決定する：
ＣＩＤ１  最大帯域幅の２Ｍｂｐｓでの制御
ＣＩＤ２  パケット再構築
ＣＩＤ３  ＤＰＩ
ＣＩＤ４  ウイルスファイアウォール検出
ＣＩＤ５  パケットバッファリング
ＣＩＤ６  合法の傍受
ＣＩＤ７  ポート１への転送
【０１１２】
コントローラは、フロー規則インスタレーションメッセージを使用することにより、入力パケットが属するフローに対応するＣＩＤセットをフォワーダに送信し、例えば、コントローラは、フロー規則インスタレーションメッセージを使用することにより、入力パケットが属するフローに対応するＣＩＤセットをフォワーダに送信してもよく、フロー規則インスタレーションメッセージのフォーマットは以下の通りである：
＜フロー規則インスタレーションメッセージ＞：＝｛フローに関する情報，＜ＣＩＤ１，ＣＩＤ２，ＣＩＤ３，ＣＩＤ４，ＣＩＤ５，ＣＩＤ６，ＣＩＤ７＞｝
【０１１３】
オプション的に、コントローラは、以下のような、複数のフロー規則インスタレーションメッセージを使用することにより、フォワーダに、入力パケットが属するフローに対応するＣＩＤセットも送信してもよい：
＜フロー規則インスタレーションメッセージ１＞：＝｛フローに関する情報，＜ＣＩＤ１，ＣＩＤ２，ＣＩＤ３，ＣＩＤ４＞｝
＜フロー規則インスタレーションメッセージ２＞：＝｛フローに関する情報，＜ＣＩＤ５，ＣＩＤ６，ＣＩＤ７＞｝
【０１１４】
オプション的に、コントローラにより送信されたフロー規則インスタレーションメッセージは、以下のような、各ＣＩＤを実行するシーケンスをさらに含む：
＜フロー規則インスタレーションメッセージ＞：＝｛フローに関する情報，＜（ＣＩＤ１，１），（ＣＩＤ２，２），（ＣＩＤ３，３），（ＣＩＤ４，４），（ＣＩＤ５，４），（ＣＩＤ６，４），（ＣＩＤ７，５）＞｝
【０１１５】
各ＣＩＤを実行する先述のシーケンスを使用することにより、ＣＩＤ４、ＣＩＤ５およびＣＩＤ６は、同時に実行される必要があることが理解される。フロー規則インスタレーションメッセージの先述のフォーマットは例に過ぎず、実際の適用では別のフォーマットであってもよく、例えば、入力パケットが属するフローに対応するＣＩＤセットは、入力パケットのフローに対応するＣＩＤセットがフォワーダに送信され得る限り、ＣＩＤリスト（ｌｉｓｔ）を使用することにより示される。
【０１１６】
別の例に関して、フォワーダにより送信されたフロー規則リクエストメッセージの受信後、コントローラは、フロー規則リクエストメッセージ中の入力パケットのパケットヘッダまたはコンテンツに従って、入力パケットが属するフローが、ＢＦＤ／ＬＬＤＰプロトコルに対応するフローであると決定し、コントローラは、ＢＦＤ／ＬＬＤＰプロトコルに対応するフローに対応するＣＩＤセットを決定する。対応するＣＩＤセットは、以下の通りのＣＩＤのみを含んでもよい：
ＣＩＤ８  ＢＦＤ／ＬＬＤＰプロトコル処理
【０１１７】
コントローラは、フロー規則インスタレーションメッセージを使用することにより、入力パケットが属するフローに対応するＣＩＤセットをフォワーダに送信する。例えば、フロー規則インスタレーションメッセージのフォーマットは、以下の通りである：
＜フロー規則インスタレーションメッセージ＞：＝｛フローに関する情報，＜ＣＩＤ８＞｝
【０１１８】
先述のフロー規則インスタレーションメッセージの受信後、コントローラは、入力パケットにおいてＢＦＤ／ＬＬＤＰプロトコル処理を実行するのみであり、例えば、プロトコルステートマシンを更新する。入力パケットが属する複数のフローがあるときに、コントローラは、複数のフロー規則インスタレーションメッセージを使用することにより、フローに対応するＣＩＤセットをフォワーダに送信してもよく、これにより、フォワーダは、フローに対応するＣＩＤセットを異なるフローテーブルに保存する。
【０１１９】
例えば、ＯｐｅｎＦｌｏｗプロトコルを使用することにより、フォワーダがコントローラと通信するときに、先述のフロー規則インスタレーションメッセージは、Ｆｌｏｗ＿Ｍｏｄメッセージであってもよく、先述のフローに関する情報は、フロー・マッチ・フィールド（Ｆｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ）であってもよい。入力パケットが２つのフローに対応し、フローに対応するフロー・マッチ・フィールドはＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１およびＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ２に別々に対応すると仮定する。コントローラは、Ｆｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１およびＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１に対応するＣＩＤ  ｌｉｓｔ１を、フォワーダに送信される第１のＦｌｏｗ＿Ｍｏｄメッセージに運ばせ、Ｆｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ２およびＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ２に対応するＣＩＤ  ｌｉｓｔ２を、フォワーダに送信される第２のＦｌｏｗ＿Ｍｏｄメッセージに運ばせる。コントローラは、フローテーブル（例えば、フローテーブルのＩＤ（ｔａｂｌｅ  ｉｄ））に関する情報を、各Ｆｌｏｗ＿Ｍｏｄメッセージにさらに運ばせてもよく、これにより、フォワーダは、各Ｆｌｏｗ＿Ｍｏｄメッセージで運ばれるＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄおよびＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄに対応するＣＩＤセットを、対応するフローテーブルに追加する。例えば、第１のＦｌｏｗ＿Ｍｏｄメッセージは、ｔａｂｌｅ  ｉｄ＝１を含み、第２のＦｌｏｗ＿Ｍｏｄメッセージは、ｔａｂｌｅ  ｉｄ＝２を含む。さらに、Ｆｌｏｗ＿Ｍｏｄメッセージは、フローテーブル処理シーケンスを示すために使用される情報をさらに運んでよい。例えば、第１のＦｌｏｗ＿Ｍｏｄメッセージは、表示情報のピース（例えば、「Ｇｏｔｏ−ｔａｂｌｅ  ２」）を含む。第１のＦｌｏｗ＿Ｍｏｄメッセージの受信後、フォワーダは、表１におけるＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１に従って、対応するＣＩＤ  ｌｉｓｔ１を見つけ、ＣＩＤ  ｌｉｓｔ１に対応するコンテキストに従って、入力パケットを処理し、その後、フォワーダは、対応するＣＩＤ  ｌｉｓｔ２を見つけるために、表２に従って、入力パケットにおけるマッチングを実行する必要がさらにあり、ＣＩＤ  ｌｉｓｔ２に対応するコンテキストに従って、入力パケットを処理する。
【０１２０】
ステップ３０５ｄ：入力パケットが属するフローに関する情報および入力パケットが属するフローに対応するＣＩＤセットを第１の対応に追加する。
【０１２１】
ステップ３０５ｄは、オプション的であり、ステップ３０５ｄは、ステップ３０５ｃの後に実行されてもよく、ステップ３０６の後に実行されてもよい。
【０１２２】
従来の技術では、フォワーダが、コントローラからの入力パケットが属するフローに対応するＡｃｔｉｏｎをリクエストしたときはいつでも、コントローラは、フロー規則インスタレーションメッセージにＡｃｔｉｏｎを運ばせ、フロー規則インスタレーションメッセージをコントローラに送信する。Ａｃｔｉｏｎは、多くの処理パラメータを含み、そのため、様々なＡｃｔｉｏｎを送信するための要件を満たすために、フロー規則インスタレーションメッセージは、比較的長く設計される必要があるが、フロー規則インスタレーションメッセージが過剰に長く設計された場合に、送信時間は延長され、パケット処理効率に影響を及ぼす。この問題は、単に、本発明で提供される例を使用することにより解決されるかもしれない。コントローラが、フォワーダからフロー規則リクエストメッセージを受信するときに、コントローラは、フロー規則インスタレーションメッセージを使用することにより、入力パケットのフローに対応するＣＩＤセットをフォワーダに送信することのみを必要とし、フォワーダが既にＣＩＤセットに対応するコンテキストを記憶している場合に、フォワーダは、ＣＩＤセットにおける各ＣＩＤに従って、対応するコンテキストを見つけることのみを必要とする。ＣＩＤセットにより占有されるスペースは非常に小さく、ＣＩＤセットを送信するためのフロー規則インスタレーションメッセージは、過剰に長く設計される必要はなく、そのため、フロー規則インスタレーションメッセージを送信するのに使用される時間もまた短くなり、フォワーダがパケットを処理する効率もある程度改善できる。
【０１２３】
当然、先述の例で説明した方法に加えて、コントローラはさらに、ＣＩＤセットに対応するコンテキストおよびＣＩＤセットを共にフォワーダに送信してもよい。例えば、ステップ３０５ｃにおいてコントローラにより送信されたフロー規則インスタレーションメッセージは、ＣＩＤセットに対応するコンテキストをさらに含んでもよい。この場合には、フロー規則インスタレーションメッセージのフォーマットは以下の通りであってもよい：
＜フロー規則インスタレーションメッセージ＞：＝｛フローに関する情報，＜ＣＩＤ１，ＣＩＤ２，ＣＩＤ３＞，［ＣＩＤ１，Ｃｏｎｔｅｘｔ１］，［ＣＩＤ２，Ｃｏｎｔｅｘｔ２］，［ＣＩＤ３，Ｃｏｎｔｅｘｔ３］｝
【０１２４】
フロー規則インスタレーションメッセージの受信後に、第２の対応がＣＩＤセット中のいくつかまたは全てのＣＩＤ、ならびに、いくつかまたは全てのＣＩＤに対応するコンテキストを保存していないことがフォワーダにより判明した場合、フォワーダは、いくつかまたは全てのＣＩＤと、いくつかまたは全てのＣＩＤに対応するコンテキストとを第２の対応に追加する。
【０１２５】
通常の状況では、入力パケットの受信前に、大半のＣＩＤおよびＣＩＤに対応するコンテキストは、フォワーダ中の第２の対応に既に記憶されている。しかし、フォワーダが、１または複数のＣＩＤに対応するコンテキストを、第２の対応中で見つけられない場合も起こり、この場合には、フォワーダは、１または複数のＣＩＤに対応するコンテキストをコントローラから取得してもよい。図３を参照すると、別の例では、ステップ３０８の実行前に、フォワーダは、以下のステップをさらに実行してもよい：
【０１２６】
ステップ３０７ａ：第２の対応が、入力パケットが属するフローに対応するＣＩＤセットに対応するコンテキストを有するか否かを決定する。はいの場合に、ステップ３０８を実行し、あるいは、第２の対応が、ＣＩＤセット中にいくつかまたは全てのＣＩＤを有しない場合、ステップ３０７ｂ〜ステップ３０７ｄを実行する。
【０１２７】
ステップ３０７ｂ：コンテキスト・リクエスト・メッセージをコントローラに送信し、コンテキスト・リクエスト・メッセージは、ＣＩＤセット中にいくつかまたは全てのＣＩＤを含む。
【０１２８】
ステップ３０７ｃ：コントローラにより送信されたコンテキスト・インスタレーション・メッセージを受信し、コンテキスト・インスタレーション・メッセージは、ＣＩＤセット中のいくつかまたは全てのＣＩＤならびにＣＩＤセット中のいくつかまたは全てのＣＩＤに対応するコンテキストを含む。
【０１２９】
オプション的に、コンテキスト・インスタレーション・メッセージは、ＣＩＤセットを除く他のＣＩＤおよび他のＣＩＤに対応するコンテキストをさらに含んでもよい。
【０１３０】
ステップ３０７ｄ：コンテキスト・インスタレーション・メッセージ中の各ＣＩＤおよびコンテキスト・インスタレーション・メッセージ中の各ＣＩＤに対応するコンテキストを、第２の対応に追加する。
【０１３１】
ステップ３０７ｄは、オプション的であり、ステップ３０７ｄは、ステップ３０７ｃの後に実行されてもよく、ステップ３０８の後に実行されてもよい。
【０１３２】
従来の技術におけるＯｐｅｎＦｌｏｗプロトコルと矛盾しないように、本発明の実施形態は、別の実現解決策をさらに提供し、解決策では、フォワーダは、従来の技術におけるプロセスに従って、従来の技術における既存のＡｃｔｉｏｎを処理してもよい。従来の技術における既存のＡｃｔｉｏｎに加えて、パケットが属するフローにおいてコンテキスト処理を実行するようフォワーダに命令するために使用されるＡｃｔｉｏｎ（例えば、Ｈａｎｄｌｅ＿Ｃｏｎｔｅｘｔ）は、本実施形態でさらに新しく定義されてもよい。図４を参照すると、本発明の実施形態の方法は以下の通りである：
【０１３３】
ステップ４０２：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、入力パケットを受信する。
【０１３４】
ステップ４０４：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、パケットに従って、パケットが属するフローを決定する。
【０１３５】
ステップ４０６：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、フローテーブルが、入力パケットが属するフローに対応するアクションを有するか否かを決定し、はいの場合に、対応するアクションを実行し、そうではない場合に、ステップ４０８を実行する。
【０１３６】
ステップ４０８：入力パケットをバッファにバッファリングし、入力パケットに対応するアクションを取得するようリクエストするために、Ｐａｃｋｅｔ＿ＩｎメッセージをＯｐｅｎＦｌｏｗコントローラに送信する。
【０１３７】
先述のＰａｃｋｅｔ＿Ｉｎメッセージは、入力パケットのいくつかまたは全てのコンテンツを運ぶ。さらに、Ｐａｃｋｅｔ＿Ｉｎメッセージは、入力パケットがバッファリングされるバッファ（例えば、Ｂｕｆｆｅｒ＿ＩＤ）、報告の理由（例えば、「フローテーブルが、マッチしたフローテーブルエントリを有しない」理由）およびこれらに類するものに関する情報をさらに運んでもよい。
【０１３８】
ステップ４１０：ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒは、Ｐａｃｋｅｔ＿Ｉｎメッセージ中の情報に従って、入力パケットに対応するアクションおよび入力パケットが属するフローに対応するＣＩＤセットを決定し、フロー規則インスタレーション（例えば、Ｆｌｏｗ＿Ｍｏｄ）メッセージを使用することにより、入力パケットのフローに対応するアクションおよび入力パケットが属するフローに対応するＣＩＤセットをＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈに送信する。入力パケットに対応するアクションは、ＯｐｅｎＦｌｏｗプロトコルで定義された標準的なアクションであってもよく、パケットが属するフローにおいてコンテキスト処理を実行するようフォワーダに命令するために使用される、新しく追加されたアクション、例えば、Ｈａｎｄｌｅ＿Ｃｏｎｔｅｘｔアクションであってもよい。入力パケットに対応するアクションが、ＯｐｅｎＦｌｏｗプロトコルで定義された標準的なアクションであるときに、Ｐａｃｋｅｔ＿Ｉｎメッセージは、ＣＩＤセットを含まない、標準的なアクションに対応するパラメータを運ぶことのみを必要とする。入力パケットが属するフローに対応するアクションが、パケットが属するフローにおいてコンテキスト処理を実行するようフォワーダに命令するために使用されるアクションを含むときに、入力パケットが属するフローに対応するＣＩＤセットは、アクションのパラメータとして、フロー規則インスタレーションメッセージで運ばれる必要がある。この解決策を使用することにより、既存のＯｐｅｎｆｌｏｗアクションおよびコンテキスト処理は、ＯｐｅｎＦｌｏｗプロトコルの既存のアクションと矛盾しない方法で、共存できる。
【０１３９】
例えば、先述のＦｌｏｗ＿Ｍｏｄメッセージは、入力パケットが属するフローに対応するＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄおよび１以上のアクション（例えば、Ｓｅｔ−ｆｉｅｉｌｄおよびＯｕｔｐｕｔ）を含むフローマッチ情報に対応するアクションリストを含んでもよい。入力パケットがいくつかのコンテキストに従って処理される必要がある場合に、フロー・マッチ・フィールドに対応するアクションは、Ｈａｎｄｌｅ＿Ｃｏｎｔｅｘｔアクションをさらに含んでもよく、Ｈａｎｄｌｅ＿Ｃｏｎｔｅｘｔアクションのパラメータは、入力パケットが属するフローに対応するＣＩＤセットである。これらの実現フォーマットは以下の通りである：
Ｆｌｏｗ＿Ｍｏｄ：＝｛ｍａｔｃｈ  ｆｉｅｌｄ，Ｉｎｓｔｒｕｃｔｉｏｎｓ（ａｃｔｉｏｎ  ｌｉｓｔ）｝
【０１４０】
入力パケットが属する複数のフローがあるときに、ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒは、複数のＦｌｏｗ＿Ｍｏｄメッセージを使用することにより、フローに対応するＦｌｏｗ  ｅｎｔｒｙをＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈに送信してもよく、これにより、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、フローに対応するＦｌｏｗ  ｅｎｔｒｙを異なるフローテーブルに保存する。各Ｆｌｏｗ  ｅｎｔｒｙは、先述のＨａｎｄｌｅ＿ＣｏｎｔｅｘｔアクションおよびＨａｎｄｌｅ＿Ｃｏｎｔｅｘｔアクションのパラメータ（例えば、ＣＩＤセット）をオプション的に含む。
【０１４１】
例えば、入力パケットが２つのフローに対応し、２つのフローに対応するフロー・マッチ・フィールドはＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１およびＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ２に別々に対応すると仮定する。ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒは、Ｆｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１およびＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１に対応するアクションリストを、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈに送信される第１のＦｌｏｗ＿Ｍｏｄメッセージに運ばせ、Ｆｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ２およびＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ２に対応するアクションリストを、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈに送信される第２のＦｌｏｗ＿Ｍｏｄメッセージに運ばせる。ＯｐｅｎＦｌｏｗで定義されたこれらのアクションタイプおよびパラメータに加えて、先述の２つのメッセージのアクションリストは、コンテキスト処理要件に従って、Ｈａｎｄｌｅ＿ＣｏｎｔｅｘｔアクションのタイプおよびＨａｎｄｌｅ＿Ｃｏｎｔｅｘｔアクションのパラメータ（例えば、ＣＩＤセット）をオプション的に含む。
【０１４２】
ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒは、フローテーブル（例えば、フローテーブルのＩＤ）に関する情報を、各Ｆｌｏｗ＿Ｍｏｄメッセージにさらに運ばせてもよく、これにより、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、各Ｆｌｏｗ＿Ｍｏｄメッセージで運ばれるフローに関する情報およびフローに対応するＣＩＤセットを、対応するフローテーブルに追加する。例えば、第１のＦｌｏｗ＿Ｍｏｄメッセージは、ｔａｂｌｅ  ｉｄ＝１を含み、第２のＦｌｏｗ＿Ｍｏｄメッセージは、ｔａｂｌｅ  ｉｄ＝２を含む。
【０１４３】
さらに、Ｆｌｏｗ＿Ｍｏｄメッセージは、フローテーブル処理シーケンスを示すために使用される情報をさらに運んでもよい。例えば、第１のＦｌｏｗ＿Ｍｏｄメッセージは、表示情報のピース（例えば、「Ｇｏｔｏ−ｔａｂｌｅ  ２」）を含む。第１のＦｌｏｗ＿Ｍｏｄメッセージの受信後、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、表１におけるＦｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１に従って、対応するアクションリストを見つけ、Ｆｌｏｗ  ｍａｔｃｈ  ｆｉｅｌｄ１に対応するアクションに従って、入力パケットを処理する。対応するアクションリストが、Ｈａｎｄｌｅ＿Ｃｏｎｔｅｘｔアクションを含む場合に、フォワーダは、Ｈａｎｄｌｅ＿Ｃｏｎｔｅｘｔアクションのパラメータに従って、入力パケットが属するフローに対応するＣＩＤセット（例えば、ＣＩＤ  ｌｉｓｔ１）を取得し、ＣＩＤ  ｌｉｓｔ１に従って、第２の対応においてＣＩＤ  ｌｉｓｔ１に対応するコンテキストを見つけ、その後、ＣＩＤ  ｌｉｓｔ１に対応するコンテキストに従って、入力パケットを処理する。先述の表１のフロー規則処理の完了後、対応するアクションリストを見つけるために、表２に従って、入力パケットにおいてマッチングがさらに実行される必要があり、入力パケットはアクションリストに従って処理される。
【０１４４】
ステップ４１２：フロー規則インスタレーションメッセージの受信後、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、入力パケットが属するフローに関する情報および入力パケットのフローに対応するＣＩＤセットを、対応する第１の対応に追加する。
【０１４５】
ステップ４１２は、オプション的であり、ステップ４１２は、ステップ４１０の後に実行されてもよく、ステップ４１４の後に実行されてもよい。
【０１４６】
ステップ４１４：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、Ｂｕｆｆｅｒ＿ＩＤに対応するバッファから、バッファリングされたパケットを取り出し、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈは、入力パケットが属するフローに対応するアクションに従って、入力パケットを処理する。
【０１４７】
入力パケットが属するフローに対応するアクションがＨａｎｄｌｅ＿Ｃｏｎｔｅｘｔであるときに、入力パケットにおいてフォワーダにより実行される処理は、ステップ４０６〜ステップ４１０におけるものと類似しており、これは、本明細書では再度詳細に説明しない。
【０１４８】
ＯｐｅｎＦｌｏｗに基づく先述の実現では、アクションは、Ｆｌｏｗ＿ｍｏｄメッセージのＡｐｐｌｙ−Ａｃｔｉｏｎｓ構造に含まれてもよく、Ｗｒｉｔｅ−Ａｃｔｉｏｎｓ構造に含まれてもよい。当業者は、ＯｐｅｎＦｌｏｗプロトコルを例として使用することによってのみ前述の説明が実行され、フォワーダは、別のプロトコルを使用することにより、コントローラと通信してもよいことを理解できる。
【０１４９】
フォワーダは、パケット処理後の様々な処理結果を取得し、フォワーダは、コントローラにいくつかの処理結果を、例えば、合法の傍受により取得された関連情報、ＮＡＴサービスの実行後に取得された結果およびこれらに類するものを報告する必要がある。フォワーダは、いくつかの結果をさらに処理する必要があるかもしれない。本発明の別の例では、フォワーダが入力パケットを処理した後に取得された処理結果は、新しく生成されたパケットであってもよい。
【０１５０】
例えば、入力パケットにおいてフォワーダにより実行される処理は、入力パケットにおいて実行される傍受である。傍受の結果は、通常、特定のネットワークエンティティに転送される必要があり、そのため、フォワーダは、傍受された結果（例えば、入力パケットのコンテンツ）をカプセル化する必要があり、それにより、新しく生成されたパケットを取得する。フォワーダが、新しく生成されたパケットを取得した後、新しく生成されたパケットにおいてフォワーダにより実行される処理は、入力パケットにおいて実行される処理と同じである、すなわち、ステップ３０２〜ステップ３１２におけるものと類似した処理が、新しく生成されたパケットにおいて実行される。
【０１５１】
従来の技術では、ＯｐｅｎＦｌｏｗのａｃｔｉｏｎは、現在のパケットにおいてどのタイプの処理が実行されるかを規定しているに過ぎず、フォワーダは、パケットの処理結果を維持せず、そのため、パケットに関する以前の処理結果に基づいて次の処理が実行される必要があるときに、従来の技術におけるＡｃｔｉｏｎを実現できない。
【０１５２】
先述の例で説明した第１の対応は、フォワーダにおける初期設定を実行するときに、技術者によりフォワーダに記憶されてもよく、フォワーダおよびコントローラが接続を確立した後に、コントローラによりフォワーダに送信されてもよい。例えば、図５を参照すると、入力パケットの受信前に、フォワーダは、コントローラにより送信された、ステップ５０２に示すフロー規則インスタレーションメッセージを受信してもよく、フロー規則インスタレーションメッセージは、フォワーダによりサポートされるいくつかまたは全てのフローに関する情報ならびにフォワーダによりサポートされるいくつかまたは全てのフローに対応するＣＩＤセットを含む。
【０１５３】
例えば、コントローラは、１以上のフロー規則インスタレーションメッセージを使用することにより、フォワーダによりサポートされるフローに関する情報およびフォワーダによりサポートされるフローに対応するＣＩＤセットを、フォワーダに送信してもよい。
【０１５４】
フォワーダは、第１の対応を形成するために、フォワーダによりサポートされるいくつかまたは全てのフローに関する情報ならびにフォワーダによりサポートされるいくつかまたは全てのフローに対応するＣＩＤセットを、１対１の対応方法で保存する。
【０１５５】
先述の例で説明した第２の対応は、フォワーダにおける初期設定を実行するときに、技術者によりフォワーダに記憶されてもよく、フォワーダおよびコントローラが接続を確立した後に、コントローラによりフォワーダに送信されてもよい。例えば、図５を参照すると、入力パケットの受信前に、フォワーダは、コントローラにより送信された、ステップ５０４に示すコンテキスト・インスタレーション・メッセージを受信してもよく、コンテキスト・インスタレーション・メッセージは、フォワーダによりサポートされるいくつかまたは全てのＣＩＤならびにフォワーダによりサポートされるいくつかまたは全てのＣＩＤに対応するコンテキストを含む。
【０１５６】
コントローラが、複数のコンテキストをフォワーダに送信する必要があるときに、コントローラは、コンテキスト・インスタレーション・メッセージを使用することにより、複数のコンテキストをフォワーダに送信してもよく、複数のコンテキスト・インスタレーション・メッセージを使用することにより、複数のコンテキストをフォワーダに送信してもよい。各コンテキスト・インスタレーション・メッセージは、１以上のＣＩＤおよび１以上のＣＩＤに対応するコンテキストを含んでもよい。
【０１５７】
フォワーダは、第２の対応を形成するために、フォワーダによりサポートされるいくつかまたは全てのＣＩＤならびにフォワーダによりサポートされるいくつかまたは全てのＣＩＤに対応するコンテキストを、１対１の対応方法で保存する。
【０１５８】
別の例では、フォワーダがコントローラと通信する前に、フォワーダは、フローおよびコンテキストを処理するためのピアの能力を知るために、最初に、コントローラと交渉してもよい。例えば、図６ａは、フォワーダが最初に交渉を開始する場合を示し、具体的には以下のステップを含む：
【０１５９】
ステップａ６０２：フォワーダは、コントローラに能力交渉リクエストメッセージを送信し、能力交渉リクエストメッセージは、フォワーダによりサポートされるコンテキスト能力リストを含み、これにより、コントローラは、フォワーダがサポートできるいくつかまたは全てのコンテキストをフォワーダに送信する。
【０１６０】
オプション的に、先述のコントローラは、フォワーダがサポートできるいくつかまたは全てのコンテキストをフォワーダにアクティブに送信してもよく、フォワーダにより送信されるフロー規則リクエストメッセージおよびコンテキスト・リクエスト・メッセージの受信後に、フォワーダがサポートできるいくつかまたは全てのコンテキストをフォワーダに送信してもよい。
【０１６１】
ステップａ６０４：フォワーダは、コントローラにより送信された交渉リスポンスメッセージを受信し、交渉リスポンスメッセージは、コントローラによりサポートされるコンテキスト能力リストを含んでもよく、これにより、フォワーダは、コントローラによりサポートされるコンテキスト能力リストに従って、コントローラがサポートできる、コントローラからのいくつかまたは全てのコンテキストをリクエストする。
【０１６２】
フォワーダおよびコントローラの前の先述の交渉は、コントローラによりアクティブに開始されてもよい。例えば、図６ｂを参照すると、交渉は具体的には以下のステップを含む：
【０１６３】
ステップｂ６０２：フォワーダは、コントローラにより送信された能力交渉リクエストメッセージを受信し、能力交渉リクエストメッセージは、コントローラによりサポートされるコンテキスト能力リストを含み、これにより、フォワーダは、コントローラによりサポートされるコンテキスト能力リストに従って、コントローラがサポートできる、コントローラからのいくつかまたは全てのコンテキストをリクエストする。
【０１６４】
オプション的に、先述のコントローラは、フォワーダがサポートできるいくつかまたは全てのコンテキストをフォワーダにアクティブに送信してもよく、フォワーダにより送信されるフロー規則リクエストメッセージおよびコンテキスト・リクエスト・メッセージの受信後に、フォワーダがサポートできるいくつかまたは全てのコンテキストをフォワーダに送信してもよい。
【０１６５】
ステップｂ６０４：フォワーダは、コントローラに交渉リスポンスメッセージを送信し、交渉リスポンスメッセージは、フォワーダによりサポートされるコンテキスト能力リストを含んでもよく、これにより、コントローラは、フォワーダがサポートできるいくつかまたは全てのコンテキストをフォワーダに送信する。
【０１６６】
コントローラは、フォワーダに記憶された第１の対応または第２の対応を管理してもよい。例えば、図７を参照すると、コントローラは、第１の対応あるいは第２の対応中の、クエリ、変更または削除情報を管理してもよい。いくつかの例を使用することにより、以下で説明が行われ、これらの例はいずれも相対的に独立したものであり、互いに影響しないことに留意すべきである。
【０１６７】
例１：コントローラが、フローに対応するＣＩＤセットをクエリする必要がある場合に、コントローラは、ステップ７０２に示すフロー規則クエリ・リクエスト・メッセージをフォワーダに送信し、フォワーダは、以下のステップを実行する：
コントローラにより送信されたフロー規則クエリ・リクエスト・メッセージを受信するステップであって、クエリ・リクエスト・メッセージは、クエリされることになるフローに関する情報を含む、受信するステップと、第１の対応に従って、クエリされることになるフローに対応するＣＩＤセットを見つけるステップと、ステップ７０４で示すフロー規則クエリ・リスポンス・メッセージをコントローラに送信するステップであって、フロー規則クエリ・リスポンス・メッセージは、クエリされることになるフローに関する情報およびクエリされることになるフローに対応するＣＩＤセットを含む、送信するステップ。
【０１６８】
例２：コントローラが、１または複数のＣＩＤに対応するコンテキストをクエリする必要がある場合に、コントローラは、ステップ８０２に示すコンテキスト・クエリ・リクエスト・メッセージをフォワーダに送信し、フォワーダは、以下のステップを実行する：
コントローラにより送信されたコンテキスト・クエリ・リクエスト・メッセージを受信するステップであって、クエリ・リクエスト・メッセージは、クエリされることになるＣＩＤを含み、１以上のクエリされることになるＣＩＤがあることがある、受信するステップと、
第２の対応に従って、クエリされることになるＣＩＤに対応するコンテキストを見つけるステップと、ステップ８０４に示すコンテキスト・クエリ・リスポンス・メッセージをコントローラに送信するステップであって、クエリ・リスポンス・メッセージは、クエリされることになるＣＩＤに対応するコンテキストを含む、送信するステップ。
【０１６９】
オプション的に、先述のクエリ・リスポンス・メッセージは、クエリされることになるＣＩＤをさらに含んでもよい。
【０１７０】
例３：コントローラが、フローに対応するＣＩＤセットを変更する必要がある場合に、コントローラは、ステップ９０２に示すフロー変更メッセージをフォワーダに送信し、フォワーダは、以下のステップを実行する：
コントローラにより送信されたフロー規則変更メッセージを受信するステップであって、フロー規則変更メッセージは、変更されることになるフローに関する情報および変更されることになるフローに対応する新しいＣＩＤセットを含む、受信するステップと、
フロー規則変更メッセージの受信後に、第１の対応において、変更されることになるフローに対応するＣＩＤセットを、新しいＣＩＤセットに変更するステップ。
【０１７１】
例えば、フォワーダは、コントローラにより送信されたフロー規則変更メッセージを受信し、フロー規則変更メッセージに含まれる、変更されることになるフローに関する情報は、以下の通りである：送信元ＩＰアドレスが１０．８８．８５．５５であり、宛先ＩＰアドレスが１０．８８．８０．５６であるフローに関して、変更されることになるフローに対応する新しいＣＩＤセットは、ＣＩＤ１、ＣＩＤ２およびＣＩＤ５である。
【０１７２】
第１の対応において、当初、送信元ＩＰアドレスが１０．８８．８５．５５であり、宛先ＩＰアドレスが１０．８８．８０．５６であるフローに対応するＣＩＤセットは、ＣＩＤ１、ＣＩＤ２およびＣＩＤ３であり、先述のフロー変更メッセージを受信後、フォワーダは、送信元ＩＰアドレスが１０．８８．８５．５５であり、宛先ＩＰアドレスが１０．８８．８０．５６であるフローに対応するＣＩＤセットを、ＣＩＤ１、ＣＩＤ２およびＣＩＤ５に変更する。
【０１７３】
例４：コントローラは、１または複数のＣＩＤに対応するコンテキストを変更する必要がある場合に、コントローラは、ステップ１００２に示すコンテキスト変更メッセージをフォワーダに送信し、フォワーダは、以下のステップを実行する：
コントローラにより送信されたコンテキスト変更メッセージを受信するステップであって、コンテキスト変更メッセージは、変更されることになるＣＩＤおよび変更されることになるコンテキスト識別子に対応する新しいコンテキストを含む、受信するステップと、
コンテキスト変更メッセージの受信後に、第２の対応において、変更されることになるＣＩＤに対応するコンテキストを、新しいコンテキストに変更するステップ。
【０１７４】
例えば、当初ＣＩＤ１に対応するコンテキストはＣｏｎｔｅｘｔ１ａであり、フォワーダにより受信されたコンテキスト変更メッセージがＣＩＤ１およびＣＩＤ１に対応する新しいコンテキストであるＣｏｎｔｅｘｔ１ｂを含む場合に、フォワーダは、第２の対応において、ＣＩＤ１に対応するコンテキストを、Ｃｏｎｔｅｘｔ１ｂに変更する。
【０１７５】
例５：コントローラが、フローに関する情報を削除する必要がある場合に、コントローラは、ステップ１１０２に示すフロー削除メッセージをフォワーダに送信し、フォワーダは、以下のステップを実行する：
コントローラにより送信されたフロー削除メッセージを受信するステップであって、フロー削除メッセージは、削除対象のフローに関する情報を含む、受信するステップと、
削除対象のフローに関する情報および削除対象のフローに対応するＣＩＤセットを第１の対応から削除するステップ。
【０１７６】
オプション的に、削除されたフローに対応するいくつかまたは全てのＣＩＤが他のフローに対応しない場合に、フォワーダは、削除されたフローに対応するいくつかまたは全てのＣＩＤならびに削除されたフローに対応するいくつかまたは全てのＣＩＤに対応するコンテキストを第２の対応からさらに削除してもよい。
【０１７７】
例えば、フロー１に対応するＣＩＤセットがＣＩＤ１およびＣＩＤ２を含み、フロー２に対応するＣＩＤセットがＣＩＤ１およびＣＩＤ３を含むと仮定する。フォワーダは、フロー１に関する情報を第１の対応から削除した後、ＣＩＤ２がフロー１にのみ対応することがフォワーダにより判明した場合に、フォワーダは、ＣＩＤ２に対応するコンテキストを第２の対応からさらに削除してもよい。しかし、ＣＩＤ１はフロー１に対応するだけでなく、フロー２にも対応するため、フォワーダは、ＣＩＤ１に対応するコンテキストを削除しない。
【０１７８】
フロー２に関する情報も削除された後、ＣＩＤ１が他のフローに対応しないことがフォワーダにより判明した場合に、フォワーダは、ＣＩＤ１に対応するコンテキストを第２の対応から削除する。
【０１７９】
オプション的に、フォワーダは、削除されたフローに関する情報あるいは削除されたコンテキストに対応するＣＩＤをコントローラに報告してもよい。
【０１８０】
例６：コントローラがコンテキストを削除する必要がある場合に、コントローラは、ステップ１２０２に示すコンテキスト削除メッセージをフォワーダに送信し、フォワーダは、コントローラにより送信されたコンテキスト削除メッセージを受信し、コンテキスト削除メッセージは、少なくとも１つの削除対象のコンテキスト識別子を含む。フォワーダは、少なくとも１つの削除対象のＣＩＤおよび少なくとも１つの削除対象のＣＩＤに対応するコンテキストを第２の対応から削除する。
【０１８１】
オプション的に、第２の対応中のコンテキストの削除後、フォワーダは、それに応じて第１の対応をさらに変更してもよく、例えば、コントローラは、以下のステップをさらに実行してもよい：
削除されたコンテキストに対応するＣＩＤを第１の対応から削除するステップ。
【０１８２】
フォワーダが、コンテキストのＣＩＤに対応するフローを処理するときに、コンテキストの削除により、問題の発生が引き起こされることがあり、そのため、第１の対応中の削除されたコンテキストに対応するＣＩＤの削除後、フォワーダは、第１の対応中の削除されたＣＩＤに対応するフローに関する情報をさらに削除してもよい。
【０１８３】
例えば、フロー１に対応するＣＩＤセットがＣＩＤ１およびＣＩＤ２を含み、フロー２に対応するＣＩＤセットがＣＩＤ１およびＣＩＤ３を含むと仮定する。フォワーダが、第２の対応から、コンテキストに対応するＣＩＤ１を削除した後、ＣＩＤ１に対応するフローがフロー１およびフロー２を含むことがフォワーダにより判明した場合に、フォワーダは、第１の対応中のフロー１に関する情報およびフロー２に関する情報をさらに削除する。さらに、フォワーダは、フロー１およびフロー２に別々に対応するＣＩＤセットをさらに削除してもよい。
【０１８４】
オプション的に、フォワーダは、削除されたコンテキストに対応するＣＩＤおよび削除されたフローに関する情報をコントローラにさらに報告してもよい。
【０１８５】
本発明で提供した先述の例を使用することにより、コントローラは、フォワーダに保存された第１の対応および第２の対応を効率的に管理してもよい。
【０１８６】
前述の任意の方法の実施形態は、図２に示すフォワーダ中のいくつかまたは全てのコンポーネントにより実現されてもよい。
【０１８７】
先述の実施形態の説明全体を通して、当業者は、ハードウェアのみを使用することにより、または、ソフトウェアおよび必要なユニバーサル・ハードウェア・プラットフォームを使用することにより、本発明が実現されてもよいことを理解できる。このような理解に基づき、本発明の技術的解決策は、コンピュータプログラム製品の形で具現化されてもよい。コンピュータプログラム製品は、（コンパクト・ディスク・リード・オンリー・メモリ、ＵＳＢフラッシュドライブ、または、リムーバブルハードディスクとすることができる）不揮発性記憶媒体に記憶されてもよい。ソフトウェア製品は、（パーソナルコンピュータ、受信エンドまたはネットワークデバイスとすることができる）コンピュータデバイスが、本発明の実施形態で提供される方法を実行できる多数の命令を含む。
【０１８８】
本発明の方法を実現するための追跡セッション同期方法および追跡セッション同期装置を前述で詳細に紹介した。当業者は、本発明の概念に基づき、特定の実現方法および適用の範囲に関して変更を行ってもよい。そのため、本明細書の内容は、本発明に対する限定として解釈されない。
【図１】
2020065264.tif 000014
【図２】
2020065264.tif 000015
【図３】
2020065264.tif 000016
【図４】
2020065264.tif 000017
【図５】
2020065264.tif 000018
【図６ａ】
2020065264.tif 000019
【図６ｂ】
2020065264.tif 000020
【図７】
2020065264.tif 000021
【手続補正書】
【提出日】令和2年1月15日(2020.1.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フォワーダにより実行される、ソフトウェア・デファインド・ネットワーク（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）においてパケットを処理するための方法であって、
入力パケットを受信するステップと、
前記入力パケットに従って前記入力パケットが属するフローを決定するステップと、
フローとコンテキスト識別子セットとの間の第１の対応が、前記入力パケットが属する前記フローに対応するコンテキスト識別子セットを有するか決定し、肯定である場合、前記第１の対応に従って前記入力パケットが属する前記フローに対応する前記コンテキスト識別子セットを決定し、又は、否定である場合、コントローラにフロー規則リクエストメッセージを送信し、前記フロー規則リクエストメッセージは前記入力パケットのパケットヘッダ又はコンテンツを含み、前記コントローラによって送信されたフロー規則インスタレーションメッセージを受信するステップであって、前記フロー規則インスタレーションメッセージは前記入力パケットの前記フローに対応する前記コンテキスト識別子セットを含む、受信するステップと、
コンテキスト識別子とコンテキストとの間の第２の対応に従って前記コンテキスト識別子セットに対応するコンテキストを決定するステップと、
前記コンテキスト識別子セットに対応する前記コンテキストに従って前記入力パケットを処理するステップと、
を含む、方法。
【請求項２】
前記入力パケットに従って前記入力パケットが属するフローを決定するステップは、
前記入力パケットのパケットヘッダ又はコンテンツに従って、前記入力パケットが属する前記フローを決定するステップを含む、請求項１記載の方法。
【請求項３】
当該方法は更に、
前記コントローラによって送信された前記フロー規則インスタレーションメッセージが受信された後、前記入力パケットが属する前記フローに関する情報と、前記入力パケットの前記フローに対応する前記コンテキスト識別子セットとを前記第１の対応に加えるステップを含む、請求項１記載の方法。
【請求項４】
前記コントローラによって送信された前記フロー規則インスタレーションメッセージは更に、前記コンテキスト識別子セットに対応する前記コンテキストを含み、
前記フォワーダが前記フロー規則インスタレーションメッセージを受信した後、前記コンテキスト識別子セットにおける一部又は全てのコンテキスト識別子に対応するコンテキストが前記第２の対応に記憶されていないことが検出された場合、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子と、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子に対応する前記コンテキストとが前記第２の対応に加えられる、請求項１乃至３何れか一項記載の方法。
【請求項５】
コンテキスト識別子とコンテキストとの間の第２の対応に従って前記コンテキスト識別子セットに対応するコンテキストを決定するステップの前に、当該方法は更に、
前記第２の対応が前記コンテキスト識別子セットに対応する前記コンテキストを有するか決定するステップと、
肯定である場合、第２の対応に従って前記コンテキスト識別子セットに対応するコンテキストを決定する前記ステップを実行するステップ、又は、前記コンテキスト識別子セットにおける一部又は全てのコンテキスト識別子が対応するコンテキストを有さない場合、以下のステップ、
前記コントローラにコンテキストリクエストメッセージを送信するステップであって、前記コンテキストリクエストメッセージは前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子を含む、送信するステップと、
前記コントローラによって送信されたコンテキストインスタレーションメッセージを受信するステップであって、前記コンテキストインスタレーションメッセージは、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子と、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子に対応するコンテキストとを含む、受信するステップと、
前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子と、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子に対応する前記コンテキストとを前記第２の対応に加えるステップと、
を実行するステップと、
を含む、請求項１乃至３何れか一項記載の方法。
【請求項６】
当該方法は更に、
前記コンテキスト識別子セットが複数のコンテキスト識別子を含むとき、所定のコンテキストシーケンスにおいて、前記コンテキスト識別子セットに対応する前記コンテキストに従って前記入力パケットの処理を実行するステップを含む、請求項１乃至５何れか一項記載の方法。
【請求項７】
当該方法は更に、
前記所定のコンテキストシーケンスが、少なくとも２つのコンテキストがシーケンス中で同じであるケースを含む場合、前記フォワーダが、前記少なくとも２つのコンテキストの双方に従って前記入力パケットを処理するステップを含む、請求項６記載の方法。
【請求項８】
当該方法は更に、
前記入力パケットが処理された後、コンテキスト処理結果を取得するステップを含む、請求項１乃至７何れか一項記載の方法。
【請求項９】
当該方法は更に、
前記コントローラに前記コンテキスト処理結果を送信するステップを含む、請求項８記載の方法。
【請求項１０】
前記コンテキスト処理結果が新たに生成されたパケットである場合、当該方法は更に、
前記新たに生成されたパケットに従って前記新たに生成されたパケットが属するフローを決定するステップと、
前記第１の対応に従って前記新たに生成されたパケットが属する前記フローに対応する新たなコンテキスト識別子セットを決定するステップと、
前記第２の対応に従って前記新たなコンテキスト識別子セットに対応するコンテキストを決定するステップと、
前記新たなコンテキスト識別子セットに対応する前記コンテキストに従って前記新たに生成されたパケットを処理するステップと、
を含む、請求項８記載の方法。
【請求項１１】
当該方法は更に、
前記入力パケットの前記フローに対応する前記コンテキスト識別子セットにおける一部又は全てのコンテキスト識別子が更に他のフローに対応している、ことを含む、請求項１乃至１０何れか一項記載の方法。
【請求項１２】
前記コンテキスト識別子は更に、各コンテキストのコンテキストタイプを示すのに用いられ、前記コンテキストタイプはアクションタイプを含まない、請求項１乃至１０何れか一項記載の方法。
【請求項１３】
ソフトウェア・デファインド・ネットワーク（ＳＤＮ）で使用されるフォワーダであって、当該フォワーダは、インタフェース、プロセッサ及びメモリを含み、
前記メモリは、フローとコンテキスト識別子セットとの間の第１の対応と、コンテキスト識別子とコンテキストとの間の第２の対応とを記憶するよう構成され、前記第１の対応における各フローに対応するコンテキスト識別子セットは少なくとも１つのコンテキスト識別子を含み、
前記インタフェースは、入力パケットを受信するよう構成され、
前記プロセッサは、前記メモリに記憶される前記第１の対応が前記入力パケットが属するフローに対応するコンテキスト識別子セットを有するか決定し、肯定である場合、前記第１の対応に従って前記入力パケットが属する前記フローに対応する前記コンテキスト識別子セットを決定し、又は、否定である場合、前記インタフェースに通知するよう構成され、
前記インタフェースは、前記プロセッサの通知が受信された後、コントローラにフロー規則リクエストメッセージを送信するよう構成され、前記フロー規則リクエストメッセージは前記入力パケットのパケットヘッダ又はコンテンツを含み、
前記インタフェースは更に、前記コントローラによって送信されたフロー規則インスタレーションメッセージを受信するよう構成され、前記フロー規則インスタレーションメッセージは前記入力パケットの前記フローに対応する前記コンテキスト識別子セットを含み、
前記プロセッサは更に、前記メモリに記憶される前記第２の対応に従って前記コンテキスト識別子セットに対応するコンテキストを決定し、前記コンテキスト識別子セットに対応する前記コンテキストに従って前記入力パケットを処理するよう構成されるフォワーダ。
【請求項１４】
前記インタフェースは、受信機と送信機とを含み、前記インタフェースが入力パケットを受信するよう構成されることは、具体的には、前記インタフェースにおける前記受信機が前記入力パケットを受信するよう構成されることである、請求項１３記載のフォワーダ。
【請求項１５】
前記プロセッサは更に、前記入力パケットが属する前記フローに対応する前記コンテキスト識別子セットに対応する前記コンテキストが前記メモリに記憶される前記第２の対応に従って決定される前、前記第２の対応が前記入力パケットが属する前記フローに対応する前記コンテキスト識別子セットに対応する前記コンテキストを有するか決定し、肯定である場合、前記メモリに記憶される前記第２の対応に従って前記コンテキスト識別子セットに対応する前記コンテキストを決定し、又は、前記コンテキスト識別子セットにおける一部又は全てのコンテキスト識別子が対応するコンテキストを有しない場合、前記送信機に通知するよう構成され、
前記送信機は更に、前記プロセッサの通知が受信された後、前記コントローラにコンテキストリクエストメッセージを送信するよう構成され、前記コンテキストリクエストメッセージは前記入力パケットが属する前記フローに対応する前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子を含み、
前記受信機は更に、前記コントローラによって送信されたコンテキストインスタレーションメッセージを受信するよう構成され、前記コンテキストインスタレーションメッセージは、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子と、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子に対応するコンテキストとを含み、
前記プロセッサは更に、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子と、前記コンテキスト識別子セットにおける前記一部又は全てのコンテキスト識別子に対応するコンテキストとを前記第２の対応に加えるよう構成される、請求項１４記載のフォワーダ。
【請求項１６】
前記コンテキスト識別子セットが複数のコンテキスト識別子を含むとき、前記プロセッサは、所定のコンテキストシーケンスにおいて、前記コンテキスト識別子セットに対応する前記コンテキストに従って前記入力パケットを処理するよう構成される、請求項１３又は１４記載のフォワーダ。
【請求項１７】
前記所定のコンテキストシーケンスが、少なくとも２つのコンテキストがシーケンス中で同じであるケースを含む場合、前記プロセッサは更に、前記少なくとも２つのコンテキストの双方に従って前記入力パケットを処理するよう構成される、請求項１６記載のフォワーダ。
【請求項１８】
前記受信機は更に、前記コントローラによって送信されたフロー削除メッセージを受信するよう構成され、前記フロー削除メッセージは削除対象のフローに関する情報を含み、
前記プロセッサは更に、前記削除対象のフローに関する情報と、前記削除対象のフローに対応するコンテキスト識別子セットとを前記第１の対応から削除するよう構成される、請求項１４乃至１７何れか一項記載のフォワーダ。
【請求項１９】
前記プロセッサは更に、前記削除されたフローに対応する一部又は全てのコンテキスト識別子が他のフローに対応しないと検出された場合、前記削除されたフローに対応する前記一部又は全てのコンテキスト識別子と、前記削除されたフローに対応する前記一部又は全てのコンテキスト識別子に対応するコンテキストとを前記第２の対応から削除するよう構成される、請求項１８記載のフォワーダ。
【請求項２０】
前記プロセッサは更に、前記入力パケットが処理された後に取得されるコンテキスト処理結果を取得するよう構成される、請求項１４乃至１９何れか一項記載のフォワーダ。
【請求項２１】
前記送信機は、報告メッセージを使用することによって、前記プロセッサによって取得された前記コンテキスト処理結果を前記コントローラに送信するよう構成される、請求項２０記載のフォワーダ。
【請求項２２】
前記受信機は更に、新たに決定されたコンテキスト識別子セットに対応するコンテキストに従って前記入力パケットを更に処理するよう前記プロセッサに指示するため、前記入力パケットに対して前記コントローラによって決定された前記新たに決定されたフローと新たに決定されたコンテキスト識別子セットとを受信するよう構成される、請求項２１記載のフォワーダ。
【請求項２３】
前記プロセッサは更に、
前記コンテキスト処理結果が新たに生成されたパケットである場合、前記新たに生成されたパケットに従って前記新たに生成されたパケットが属するフローを決定し、
前記第１の対応に従って前記新たに生成されたパケットが属する前記フローに対応する新たなコンテキスト識別子セットを決定し、
前記第２の対応に従って前記新たなコンテキスト識別子に対応するコンテキストを決定し、
前記新たなコンテキスト識別子に対応する前記コンテキストに従って前記新たに生成されたパケットを処理するよう構成される、請求項２０記載のフォワーダ。
【外国語明細書】
2020065264000001.pdf