本発明の実施形態は、情報テクノロジーの分野に関し、詳細には、パケット処理方法および装置に関する。
ユーザの増えゆくネットワークサービス需要を満たすために、さまざまな新たなネットワークテクノロジー、たとえば、NVGRE(Network Virtualization GRE、総称ルーティングカプセル化を使用したネットワーク仮想化)テクノロジー、およびVXLAN(Virtual extensible Local Area Network、仮想拡張可能ローカル・エリア・ネットワーク)テクノロジーなどのレイヤ2ネットワークテクノロジーが生み出されている。新たなネットワークテクノロジーが現れるにつれて、ネットワークサービスと連携するために新たなネットワークプロトコルが絶えず現れ、その一方で、新たなネットワークプロトコルは、既存のネットワークサービスに新たな問題をもたらす、すなわち、既存のネットワークサービス方法を、新たなネットワークプロトコルを使用してネットワークに適用することができない、たとえば、既存の通信方法を、レイヤ2ネットワークと従来のネットワークとの間における通信のために使用することができないといった事態が避けられない。
前述の問題を解決するために、プログラム開発者は、新たなネットワークプロトコルに従って、ネットワークサービスを実施するための完全なプログラムを開発し、それらのプログラムは、従来のネットワークプロトコルを使用するネットワークとの互換性を有することをさらに必要とし、新たなネットワークプロトコルを使用するネットワークと、従来のネットワークプロトコルを使用するネットワークとは、連携して互換性を伴ってネットワークサービスを提供することができる。言い換えれば、プログラム開発者は、ネットワークによって使用されるそれぞれのネットワークプロトコルのために完全なプログラムのセットを開発する必要があるが、ネットワークプロトコルをサポートするプログラムを開発するために多くの開発リソースを投じる必要があり、また開発サイクルが長くなり、このことは、ネットワーク・サービス・パフォーマンスに影響を与える。
本発明の実施形態は、新たなネットワークプロトコルをサポートするプログラムの開発がネットワーク・サービス・パフォーマンスに影響を与えるという従来技術における問題を解決するのに役立つパケット処理方法を提供する。
第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の実施様式に関連して、第3の実施様式においては、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得するステップの前に、この方法は、ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信するステップをさらに含み、
第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得するステップは、
第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報をルール・プロファイル・リポジトリから取得するステップであって、少なくとも1つのプロトコルの、リポジトリ内に格納されているプロトコル・ルール・プロファイル情報のうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに関連付けられ、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用される、ステップを含む。
第1の態様における任意の実施様式から第1の態様における第3の実施様式に関連して、第4の実施様式においては、第1の処理対象パケットの第1のプロトコル識別子を取得するステップの前に、この方法は、
ネットワーク管理デバイスによって送信される、かつ少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報を受信するステップであって、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、ネットワーク管理デバイスによって少なくとも1つのプロトコルのコンテンツを解析することによって得られ、少なくとも1つのプロトコルのうちのそれぞれのプロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータが、プロトコルのコンテンツ内に規定されている、受信するステップと、
少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を、少なくとも1つのプロトコルのプロトコル識別子に関連付け、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納するステップとをさらに含む。
第1の態様の第4の実施様式に関連して、第5の実施様式においては、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得するステップの前に、この方法は、
少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信するステップをさらに含む。
第1の態様における任意の実施様式から第1の態様の第5の実施様式に関連して、第6の実施様式においては、処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコルIPアドレス、宛先IPアドレス、宛先メディア・アクセス・コントロールMACアドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含む。
第2の態様によれば、本発明の一実施形態は、
第1の処理対象パケットの第1のプロトコル識別子を取得するプロトコル識別子取得モジュールと、
第1のプロトコル識別子に対応するプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得し、ルール・プロファイル・リポジトリが、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのプロトコルのプロトコル識別子に関連付けられ、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、パケットを処理するための方法およびパラメータを記述するために使用され、パケットが、少なくとも1つのプロトコルによって規定されている基準を満たすルールプロファイル取得モジュールと、
第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する処理モジュールとを含むパケット処理装置を提供する。
第2の態様に関連して、第1の実施様式においては、プロトコル識別子取得モジュールは、第1のプロトコル識別子のものである、かつ、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションに従って第1の処理対象パケットを読み取り、
読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつプリセットロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されている。
第2の態様に関連して、第2の実施様式においては、プロトコル識別子取得モジュールは、第1の処理対象パケットのプリセットロケーションから第1の処理対象パケットを読み取り、読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつ読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されている。
第2の態様における任意の実施様式から第2の態様の第2の実施様式に関連して、第3の実施様式においては、この装置は、
ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する受信モジュールをさらに含み、
ルールプロファイル取得モジュールは、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報をルール・プロファイル・リポジトリから取得し、少なくとも1つのプロトコルの、 内に格納されているプロトコル・ルール・プロファイル情報のうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに関連付けられ、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用されるように特に構成されている。
第2の態様における任意の実施様式から第2の態様の第3の実施様式に関連して、第4の実施様式においては、受信モジュールが、ネットワーク管理デバイスによって送信される、かつ少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報をさらに受信し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、ネットワーク管理デバイスによって少なくとも1つのプロトコルのコンテンツを解析することによって得られ、少なくとも1つのプロトコルのうちのそれぞれのプロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータが、プロトコルのコンテンツ内に規定され、
この装置は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を、少なくとも1つのプロトコルのプロトコル識別子に関連付け、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納するストレージモジュールをさらに含む。
第2の態様の第4の実施様式に関連して、第5の実施様式においては、受信モジュールは、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信するようにさらに構成されている。
第2の態様における任意の実施様式から第2の態様の第5の実施様式に関連して、第6の実施様式においては、処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコルIPアドレス、宛先IPアドレス、宛先メディア・アクセス・コントロールMACアドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含む。
本発明の実施形態において提供されるパケット処理方法および装置においては、処理対象パケット上での処理中に、パケットを、ルール・プロファイル・リポジトリ内のプロトコル・ルール・プロファイル情報に従って処理することができる。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
本発明の実施形態における、または従来技術における技術的なソリューションをより明確に説明するために、以降では、これらの実施形態または従来技術を説明する上で必要とされる添付の図面を簡単に紹介する。明らかに、以降の説明における添付の図面は、本発明のいくつかの実施形態を示しているにすぎないが、当技術分野における標準的な技術者なら、それでもなお、創造的な取り組みを伴わずにこれらの添付の図面からその他の図面を導き出すことができる。
本発明によるパケット処理方法の実施形態1のフローチャートである。
本発明によるパケット処理方法の実施形態2のフローチャートである。
本発明によるパケット処理方法の実施形態3のフローチャートである。
本発明によるパケット処理装置の実施形態1の構造図である。
本発明によるパケット処理装置の実施形態2の構造図である。
本発明の一実施形態によるパケット処理装置のハードウェア構造の概略図である。
本発明の実施形態の目的、技術的なソリューション、および利点をより明確にするために、以降では、本発明の実施形態における添付の図面を参照しながら本発明の実施形態における技術的なソリューションを明確にかつ完全に説明する。明らかに、説明されている実施形態は、本発明の実施形態のうちのすべてではなく、一部である。当技術分野における標準的な技術者によって本発明の実施形態に基づいて創造的な取り組みを伴わずに得られるその他のすべての実施形態は、本発明の保護範囲内に収まるものとする。
図1は、本発明によるパケット処理方法の実施形態1のフローチャートである。図1において示されているように、この実施形態における方法は、パケット処理装置によって実施することができ、この処理装置は、ハードウェアおよび/またはソフトウェアを用いて実装することができ、好ましくは、パケット処理を完遂するためにデータを受信、送信、および処理する機能を有するデバイス内に配置される。具体的には、この方法は下記を含む。
S101:第1の処理対象パケットの第1のプロトコル識別子を取得する。
さまざまなプロトコルに従って、これらのプロトコルに対応する、かつ、パケット処理装置によって処理することができる処理対象パケットのために使用されるカプセル化方法、フォーマット、およびパラメータはさまざまであり、したがって、パケット処理装置によってプロトコル識別子を取得するために使用される方法も、さまざまである(たとえば、従来技術においては、さまざまなプロトコルのために、さまざまなプロトコル識別プログラムが開発されている)。この実施形態においては、前述のプロトコルのうちの少なくとも1つに普遍的に適用可能な方法を使用して、プロトコル識別子を取得することができる。具体的には、たとえば、ある方法においては、あるプロトコル識別子のものである、かつ、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションに従って第1の処理対象パケットを読み取ることができ、読み取り結果が、このプロトコル・ルール・プロファイル情報内に記述されている、かつこの読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子が特定され、ルール・プロファイル・リポジトリは、パケット処理装置内に配置され、この少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納するために使用される。たとえば、ルール・プロファイル・リポジトリは、2つのタイプのプロトコルを解析することによって得られたプロトコル・ルール・プロファイル情報を格納し、プロトコル識別子のものである、かつ、第1のタイプのプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションは、イーサネット(登録商標)・ヘッダ・フィールドの後の10番目のバイトであり、プロトコル識別子の値は、0x11であり、プロトコル識別子のものである、かつ、第2のタイプのプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションは、イーサネット・ヘッダ・フィールドの後の14番目のバイトであり、プロトコル識別子の値は、0x1Fである。処理対象パケットのイーサネット・ヘッダ・フィールドの10番目のバイトおよび14番目のバイトは、2つのタイプのプロトコル・ルール・プロファイル情報に従って別々に読み取られる。イーサネット・ヘッダ・フィールドの後の10番目のバイトを読み取ることによって得られた結果は、0x13であり、これは、第1のプロトコルにマッチすることに失敗しているが、イーサネット・ヘッダ・フィールドの後の14番目のバイトを読み取ることによって得られた結果は、0x1Fであり、これは、第2のプロトコルにマッチすることに成功しており、したがって、処理対象パケットのプロトコル識別子は、第2のプロトコル識別子02である。
別の方法においては、第1の処理対象パケットの第1のプロトコル識別子は、第1の処理対象パケットのプリセットロケーションから読み取られる。すなわち、1つのプリセットロケーションが、さまざまなカプセル化方法を伴うそれぞれのパケットごとに、同一の基準に従って確保され、パケットのプロトコル識別子を配置するために使用される。たとえば、この同一の基準は、プリセットロケーションがパケットの第1のビットであるということを規定し、パケット処理装置は、第1の処理対象パケットを受信した際に第1の処理対象パケットの第1のビットを読み取り、読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつプリセットロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定する。たとえば、パケット読み取り装置によって第1の処理対象パケットの第1のビットを読み取ることによって得られた結果は、0x1Fであり、これは、少なくとも1つのプロトコルのうちのそれぞれのプロトコルの、この装置内のルール・プロファイル・リポジトリに格納されているプロトコル・ルール・プロファイル情報内に記述されている、かつ第1のビットに対応するパラメータにマッチし、第1の処理対象パケットの第1のプロトコル識別子が特定される。パケット処理装置が現在、1つのプロトコルのみをサポートしている場合には、パケット処理装置は、読み取り結果をこのパケット処理装置の既知のパラメータとマッチさせて、処理対象パケットのプロトコル識別子を特定する、ということを理解することもできる。
柔軟なことに、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、プロトコルのプロトコル・ルール・プロファイル情報内に記述されているパラメータに関連付けられ、第1の処理対象パケットの第1のプロトコル識別子の特定中にプロトコル識別子を取得するために使用される場合には、読み取り結果をプロトコル識別子として使用することができる。たとえば、第2のプロトコルのプロトコル・ルール・プロファイル情報は、第2のプロトコルのプロトコル・ルール・プロファイル情報内に記述されているパラメータ0x1Fと関連付けてルール・プロファイル・リポジトリ内に格納され、第1の処理対象パケットのイーサネット・ヘッダ・フィールドの後の14番目のバイトを読み取ることによって得られた結果が0x1Fと整合している場合には、第1の処理対象パケットの第1のプロトコル識別子が0x1Fであるということが特定される。
S102:第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得する。
ルール・プロファイル・リポジトリは、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報は、少なくとも1つのプロトコルのプロトコル識別子に関連付けられ、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報は、パケットを処理するための方法およびパラメータを記述するために使用され、パケットは、少なくとも1つのプロトコルによって規定されている基準を満たし、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報は、パケット処理装置によって読み取ることができる同一の言語で書かれている。すなわち、ルール・プロファイル・リポジトリは、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、第1の処理対象パケットを処理する際に、パケット処理装置は、S101において取得された第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報のみを使用することによって、第1の処理対象パケットを処理する。
S103:第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する。
たとえば、第1の処理対象パケット上でパケット処理装置によって実行される処理は、ネットワーク通信であり、具体的なオペレーションとしては、パケット・アドレスを知ること、転送テーブルを検索すること、パケットを再カプセル化すること、およびパケットを送信することが含まれる。これらの複数のオペレーションは、パケット処理装置内に既に組み込まれており、第1の処理対象パケットは、第1のプロトコル・ルール・プロファイル情報に従ってこれらの複数のオペレーションにおいて処理される。これらの複数のオペレーションは、プロトコルとは無関係の組み込みオペレーションとして理解することができ、すなわち、それぞれのプロトコルのもとでのパケット上での処理中に、パケットは、プロトコル識別子に従って取得されるプロトコル・ルール・プロファイル情報に従ってそれぞれのオペレーションにおいて処理される。パケットは、それぞれのプロトコルのもとでのネットワーク通信において前述のオペレーションのうちのそれぞれに従って処理され、したがって、プロトコルのもとでのパケット上での特定の処理中に、パケットは、プロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている方法およびパラメータに従って組み込みオペレーションにおいて処理される。
したがって、組み込みオペレーションは、パケット処理装置内に組み込まれているということを理解することができ、新たなプロトコルに対処する必要がある場合には、パケット処理装置は、新たなプロトコルのコンテンツを解析して、新たなプロトコルのもとでパケットを処理する際のプロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をパケット処理装置内のルール・プロファイル・リポジトリに格納し、新たなプロトコルのもとでのパケット上での処理中に、パケットを、新たなプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報に従って組み込みオペレーションにおいて処理することができる。
この実施形態においては、それぞれのプロトコルを解析して、プロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納し、パケット上での処理中に、パケットを、プロトコル・ルール・プロファイル情報に従って組み込みオペレーションにおいて処理することができる。すなわち、パケット上での処理は、それぞれのプロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図2は、本発明によるパケット処理方法の実施形態2のフローチャートである。図2において示されているように、この方法は下記を含む。
S201:少なくとも1つのプロトコルの、ネットワーク管理デバイスによって送信されるプロトコル・ルール・プロファイル情報を受信する。
たとえば、パケット処理装置が初めて使用されるときに、ネットワーク管理デバイスは、パケット処理装置によってサポートされることが必要な少なくとも1つのプロトコルに従って、対応するプロトコル・ルール・プロファイル情報を送信する。たとえば、パケット処理装置が、2つのプロトコルが使用されるネットワーク環境において使用されることになり、ネットワーク管理デバイスは、これらの2つのプロトコルを解析して、パケット処理装置によって読み取ることができる同一の言語で記述されているプロトコル・ルール・プロファイル情報を得て、これらの2つのプロトコルのプロトコル・ルール・プロファイル情報をパケット処理装置へ送信する。別の例に関しては、新たなテクノロジーが発展するにつれて、第3のプロトコルを使用するネットワークが現れているが、現在のパケット処理装置は、第3のプロトコルの前に現れている2つのプロトコルにしか適用できない。パケット処理装置を、第3のプロトコルを使用するネットワークに適用できるようにすることを可能にするために、ネットワーク管理デバイスは、第3のプロトコルを解析して、第3のプロトコルのプロトコル・ルール・プロファイル情報を得て、第3のプロトコルのプロトコル・ルール・プロファイル情報をパケット処理装置へ送信し、第3のプロトコルのプロトコル・ルール・プロファイル情報は、2つのプロトコルのプロトコル・ルール・プロファイル情報の言語と同一である、かつパケット処理装置によって読み取ることができる言語で書かれている。少なくとも1つのプロトコルの、ネットワーク管理デバイスによって送信されるプロトコル・ルール・プロファイル情報を受信する際に、パケット処理装置は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を、少なくとも1つのプロトコルのプロトコル識別子に関連付け、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納し、ルール・プロファイル・リポジトリは、パケットを処理するために必要とされる方法およびパラメータをパケット処理装置において構成するものとして理解することもできる。
特に、少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報は、ネットワーク管理デバイスによって少なくとも1つのプロトコルのコンテンツを解析することによって得られ、少なくとも1つのプロトコルのうちのそれぞれのプロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータは、プロトコルのコンテンツ内に規定されている。たとえば、プロトコルは、パケットのフォーマットおよびコンテンツを規定し、プロトコルが使用される対象のパケットを処理するために使用すべき方法およびパラメータが、プロトコルを解析することによって得られ、すなわち、プロトコルのプロトコル・ルール・プロファイル情報が得られる。
S202:少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信する。
構成命令は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報用の、たとえば、一片のプロトコル・ルール・プロファイル情報を有効にするまたは無効にするための、あるいは2つのプロトコルのもとでのルールプロファイル情報どうしの間における相互作用を設定するための構成コマンドである。
S201およびS202は、任意選択のステップである、すなわち、パケット処理装置が初めて使用されて、プロトコル・ルール・プロファイル情報を伴って構成されていない場合、またはパケット処理装置によってサポートされる必要があるプロトコルが変わった場合に、S201およびS202を実行する、すなわち、関連したプロトコルのコンテンツを解析して、プロトコルのルールプロファイル情報を得て、ルールプロファイル情報をパケット処理装置内に構成する、ということに留意されたい。既にプロトコル・ルール・プロファイル情報を伴って構成されていて、前述の第1の処理対象パケット上での処理中にパケットを処理することができるパケット処理装置に関しては、S201およびS202を実行する必要はなく、S203を直接実行することができる。
S203:第1の処理対象パケットのプロトコル識別子を取得する。
具体的な内容については、実施形態1のS102において説明しており、ここで再び詳細に説明することはしない。
S204:ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する。
ネットワークサービスが多様化するにつれて、同一のパケット処理装置が、ネットワーク通信サービスおよびサブスクリプション情報取得サービスなどの複数のタイプのサービスを実行する場合があり、さまざまなサービスに関して、パケット処理装置は、さまざまな手順でパケットを処理する。たとえば、ネットワーク通信サービスに関しては、処理手順は、パケット・アドレスを順次知ること、転送テーブルを検索すること、およびパケットを再カプセル化することであるが、サブスクリプション情報取得サービスの処理手順は、サブスクリプション・アイテム・シンボルを順次識別すること、サブスクリプション情報を検索すること、サブスクリプション情報のマッチングである、といった具合である。前述のオペレーションは、パケット処理装置内でさまざまなサービスタイプに従ってさまざまな組み込みオペレーションとして構成され、したがって、第1の処理対象パケットを処理する前に、パケット処理装置は、ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する必要があり、すなわち、パケット処理装置は、有効化コマンドに従って、パケット処理装置が現在担当している対象のサービスタイプを有効にする。たとえば、2つのサービスタイプに対応する組み込みオペレーションの2つのセットが、パケット処理装置内に組み込まれており、組み込みオペレーションの1つのセットが、ネットワーク相互作用サービスを担当しており、組み込みオペレーションの他方のセットが、サブスクリプション情報取得サービスを担当しており、現在の作業環境においては、パケット処理装置は、ネットワーク相互作用サービスのみを担当しており、あるサービスタイプに対応する(ネットワーク相互作用を実行するための)受信された有効化コマンドに従って、ネットワーク相互作用サービスが選択されて有効にされ(すなわち、対応する組み込みオペレーションが有効にされ)、サブスクリプション情報取得サービスが無効にされる(すなわち、対応する組み込みオペレーションが無効にされる)。しかしながら、パケット処理装置が1つのサービスタイプのみを担当する(これに応じて、ルールプロファイル情報が、このサービスタイプにのみ対応する)ということが初期化中にプリセットされている場合には、またはパケット処理装置が、ネットワーク管理デバイスによって送信された有効化コマンドに従って、パケット処理装置が担当するサービスタイプを既に有効にした後には、その後のパケット処理プロセスにおいて、S204を実行しないことが可能であり、S205を直接実行することができるということに留意されたい。この実施形態においては、一例として、パケット処理装置は、複数のタイプのサービスを処理することを担当しており、パケット処理装置が担当するサービスタイプを有効にしない、すなわち、S204が実行される。S204は、S203の前に実行することができ、またはS203の後に実行することもできる。
S205:第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得する。
少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内に格納されているプロトコル・ルール・プロファイル情報のうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、これらのプロトコル・ルール・プロファイル・サブ情報は、サービスタイプに関連付けられ、これらのプロトコル・ルール・プロファイル・サブ情報は、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用され、したがって、パケット処理装置が1つのサービスタイプのみを担当している場合には、プロトコル・ルール・プロファイル・サブ情報は、プロトコル・ルール・プロファイル情報と同等であることが可能である。この実施形態においては、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報が、S203において取得された第1のプロトコル識別子と、サービスタイプを有効にするための、S204において受信される有効化コマンドとに従って、ルール・プロファイル・リポジトリから取得される。
S206:第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する。
たとえば、第1のプロトコル・ルール・プロファイル情報は、ネットワーク通信サービスに従ってパケットが処理される際に使用される処理するための方法およびパラメータを含み、処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
任意選択で、パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコル(IP)アドレス、宛先IPアドレス、宛先メディア・アクセス・コントロール(MAC)アドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含む。
パケット上での処理は、プロトコル・ルール・プロファイル情報内で記述されている処理するための方法およびパラメータに従って完遂され、これについては、S103において具体的に説明しており、ここで再び詳細に説明することはしない。
この実施形態においては、それぞれのプロトコルを解析して、プロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納し、パケット上での処理中に、パケットをプロトコル・ルール・プロファイル情報に従って処理する。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図3は、本発明によるパケット処理方法の実施形態3のフローチャートである。図3において示されているように、この実施形態におけるサービスタイプは、ネットワーク通信であり、この方法は下記を含む。
S301:少なくとも1つのプロトコルの、ネットワーク管理デバイスによって送信されるプロトコル・ルール・プロファイル情報、および少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する構成命令を受信する。
パケット処理装置が初めて使用されるときに、ネットワーク管理デバイスは、パケット処理装置によってサポートされることが必要なプロトコルに従って、これらのプロトコルに対応するプロトコル・ルール・プロファイル情報を送信する。この実施形態においては、サポートされることが必要なプロトコルは、たとえば、VXLANプロトコルおよびNVGREプロトコルであり、ネットワーク管理デバイスは、VXLANプロトコルおよびNVGREプロトコルのコンテンツを解析して、テーブル1において示されているプロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をパケット処理装置のルール・プロファイル・リポジトリ内に格納し、プロトコル・ルール・プロファイル情報は、ネットワーク通信サービスまたはその他のサービスを実行するための、パケット処理装置内にある組み込みオペレーションによって識別することができる。
テーブル1で提供されている2つのタイプのプロトコル・ルール・プロファイル情報においては、[FORMAT]は、キーワード「eth/ip/udp/payload」と、組み込みオペレーションによって識別することができるパケットフォーマットとを定義しており、ethは、イーサネット・ヘッダ・フィールドを表しており、ipは、IP(インターネット・プロトコル)ヘッダ・フィールドを表しており、udpは、UDP(User Datagram Protocol、ユーザ・データグラム・プロトコル)ヘッダ・フィールドを表しており、payloadは、データ・ペイロードを表しており、protoは、組み込みオペレーションによって識別することができないフォーマットを定義するためのキーワードとして使用され、すなわち、組み込みオペレーションによって以前に識別されていない新たに付加されたコンテンツ(文字、割り振られた値、フォーマットなど)が、新たなプロトコル内に現れ、プロトコル・ルール・プロファイル情報を得るために新たなプロトコルが解析される場合には、新たなプロトコル内に現れる新たに付加されたコンテンツを定義するためにキーワード「proto」が使用される。たとえば、組み込みオペレーションによって以前に識別されていないデータ・フォーマットが、VXLANプロトコルに新たに付加され、データ・フォーマットは、4つの定数「08-00-00-00」、変数「VNI」、および定数「00」を含み、プロトコル・ルール・プロファイル情報を得るためにVXLANプロトコルが解析される場合には、データ・フォーマット「08-00-00-00-VNI-00」を定義するためにキーワードprotoが使用される。
「Packet: eth[1]-ip[1]-udp[1]-proto[1]-eth[2]-ip[2]-payload」は、パケットの脱カプセル化/カプセル化のために使用されるフォーマットおよび変数パラメータを定義しており、eth[1]は、第1のイーサネット・ヘッダ・フィールドを表しており、eth[2]は、第2のイーサネット・ヘッダ・フィールドを表しており、同様に、ipまたはudpなどのキーワードの後の角括弧内の値は、特定のフィールドを規定している。
[FIELD]は、変数パラメータを定義しており、outer_dst_mac、outer_src_mac、outer_src_ip、outer_dst_ip、ip_protocol、dst_port、VNI/VSID、inner_dst_mac、inner_src_mac、inner_src_ip、およびinner_dst_ipはすべて、変数パラメータであり、これらの変数パラメータの割り振られた値は、Positionにおいて規定されている特定の読み取り方法に従って得ることができる。たとえば、変数outer_scr_macの割り振られた値は、「Position: eth[1]; Offset: 6; Length: 6」に従った読取りを通じて得られ、すなわち、eth[1]フィールドの開始位置から6バイトのオフセットが行われ、7番目のバイトから12番目のバイトまでのバイトが読み取られ、読み取り結果が、変数outer_scr_macの割り振られた値として使用される。
[IDENTIFICATION]は、プロトコル識別ルールを定義しており、[OPERATION]は、ネットワーク通信サービスによって必要とされるパラメータを定義しており、FORWARDは、パケットの受信および送信をコントロールするために使用されるサブサービスを表しており、LBは、ロード・バランシングをコントロールするために使用されるサブサービスを表している。「dst_ip: inner_dst_ip; dst_mac: inner_dst_mac; domain: VNI」の中のdst_ip、dst_mac、およびdomainは、ネットワーク通信サービス内の組み込みオペレーションによって必要とされるパラメータであり、これらのパラメータの特定の割り振られた値は、inner_dst_ipなどの変数パラメータの割り振られた値によって特定され、またはdst_ip、dst_mac、およびdomainなどのパラメータの割り振られた値は、プロトコル・ルール・プロファイル情報内で直接規定することもできる。
加えて、テーブル1は、プロトコル・ルール・プロファイル情報を記述するための一例として使用されているにすぎず、ルール・プロファイル・リポジトリがプロトコル・ルール・プロファイル情報を格納する特定の様式、および使用される文字、フォーマットなどは、テーブル1のものに限定されない。
S301は任意選択のステップであるということに留意されたい。すなわち、パケット処理装置が初めて使用されて、プロトコル・ルール・プロファイル情報を伴って構成されていない場合に、S301を実行する。既にプロトコル・ルール・プロファイル情報を伴って構成されていて、第1の処理対象パケット上での処理中にパケットを処理することができるパケット処理装置に関しては、S301を実行する必要はなく、S302を直接実行することができる。
S302:第1の処理対象パケットを受信する。
S302を実行する際に、パケット処理装置は、受信された第1の処理対象パケットに関連しているサービスタイプ、および受信された第1の処理対象パケットが満たすプロトコルの基準を知らない。
S303:第1の処理対象パケットのプロトコル識別子を取得する。
プロトコル・ルール・プロファイル情報内の[IDENTIFICATION]において定義されていて、プロトコルを識別するために必要とされる変数パラメータは、「ip_protocol、dst_port」であり、対応するロケーションは、「Position: udp[1]; Offset: 2; Length: 2」および「Position: ip[1]; Offset: 9; Length: 1」において定義されている対応する読み取り方法に従って読み取られ、変数パラメータip_protocolに関して、割り振られた値0x11が得られ、変数パラメータdst_portに関して、割り振られた値0x2118が得られ、0x11および0x2118は、ルール・プロファイル・リポジトリ内のVXLANプロトコルに成功裏にマッチし、これによって、プロトコル識別子01が得られる。
この実施形態においては、VXLANプロトコルのプロトコル・ルール・プロファイル情報内の読み取りロケーションと、NVGREプロトコルのプロトコル・ルール・プロファイル情報内の読み取りロケーションとは、同じである。しかしながら、実際の用途において、2つのタイプのプロトコル・ルール・プロファイル情報内の読み取りロケーションどうしが異なる可能性がある場合には、これらの2つのタイプのプロトコル・ルール・プロファイル情報内のこれらの読み取りロケーションどうしは、別々に読み取られ、その後に、読み取られたコンテンツと、対応するプロトコル識別子との間においてマッチングが実行される。
S304:ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する。
具体的な取得方法については、S204において説明しており、ここで再び詳細に説明することはしない。しかしながら、パケット処理装置が1つのサービスタイプのみを担当するということが初期化中にプリセットされている場合には、オプションとして、S304を実行しないことが可能であり、実際の状況に従ってS305を直接実行することができるということに留意されたい。この実施形態においては、パケット処理装置は、複数のタイプのサービスを処理することを担当しており、すなわち、S304が実行され、S304は、S303の前に実行することができ、またはS303の後に実行することもできる。
S305:ルール・プロファイル・リポジトリからプロトコル・ルール・プロファイル情報を取得する。
この実施形態においては、パケット処理装置は、さまざまなサービスタイプを担当することができ、したがって、プロトコル・ルール・プロファイル情報を取得することは、具体的には、プロトコル識別子01に対応する第1のプロトコル・ルール・プロファイル情報に従って、サービスタイプ0305に対応するプロトコル・ルール・プロファイル・サブ情報、すなわち、VXLANプロトコルのもとでのサービス1のプロトコル・ルール・プロファイル・サブ情報を特定することである。
S306:取得されたプロトコル・ルール・プロファイル情報を使用することによって、第1の処理対象パケットを処理する。
S103において説明したように、ネットワーク通信サービスにおける組み込みオペレーションは、パケット・アドレスを知ること、転送テーブルを検索すること、およびパケットを再カプセル化することを含む。
具体的な内容は、下記のとおりである。
a.アドレスを知る。第1の処理対象パケットのプロトコル識別子は01であるため、宛先MACアドレス(変数パラメータinner_dst_macの割り振られた値)、宛先IPアドレス(変数パラメータinner_dst_ipの割り振られた値)、ネットワークドメイン識別子(変数パラメータVNIの割り振られた値)などが、対応する第1のプロトコル・ルール・プロファイル情報に従って取得される。第1の処理対象パケットのプロトコル識別子が02である場合には、宛先MACアドレス(変数パラメータinner_dst_macの割り振られた値)、宛先IPアドレス(変数パラメータinner_dst_ipの割り振られた値)、ネットワーク識別子(変数パラメータVSIDの割り振られた値)などが、対応するプロトコル・ルール・プロファイル情報に従って取得されるということを理解することができる。したがって、組み込みオペレーションは、プロトコルとは無関係であり、それぞれのオペレーションにおけるパケット上での処理中に、パケットに対応するプロトコル識別子に対応しているプロトコル・ルール・プロファイル情報のみをルール・プロファイル・リポジトリから取得すればよく、パケットは、対応する方法およびパラメータに従って処理することができるということを知ることができる。
b.転送テーブルを検索する。VXLANプロトコルのもとでアドレスを知ることによって、VNI=6000ということがわかり、構成命令は、VNI=6000およびVSID=3000が同じ転送ドメインを示すということを規定しているため、宛先IPアドレスおよび宛先MACアドレスに従ってVSID=3000に対応するネットワークの転送テーブルにおいて宛先が特定される。
c.再カプセル化する。VSID=3000によれば、宛先は、NVGREプロトコルを使用するネットワークであるということがわかり、したがって、VXLANプロトコルのもとでのプロトコル・ルール・プロファイル情報に従ってパケットのVXLANパケット・カプセル化が除去され、NVGREプロトコルのもとでのプロトコル・ルール・プロファイル情報に従ってNVGREパケット・カプセル化が付加される。具体的には、パケットのVXLANパケット・カプセル化は、payloadを取得するために、VXLANプロトコルのもとでのプロトコル・ルール・プロファイル情報内の[FORMAT]において記述されている方法、パラメータ、およびパケットフォーマットに従って除去され、NVGREパケット・カプセル化は、NVGREプロトコルのもとでのプロトコル・ルール・プロファイル情報内の[FORMAT]において記述されている方法、パラメータ、およびパケットフォーマットに従って実行される。
より好ましくは、この実施形態においては、パケット処理装置は、ロード・バランシングをコントロールする機能をさらに有する。具体的には、第1の処理対象パケットの送信中に、第1の処理対象パケットは、同じ論理インターフェースに属する任意の物理インターフェースを通じて送り出すことができ、パケット障害によってもたらされるさらなるオーバーヘッドを回避するために、同じフローに属するパケットどうしは、同じ物理インターフェースを通じて送り出すべきである。したがって、ステップa〜ステップcを実行する過程で、LBサブサービスに対応する下記の組み込みオペレーションを実行することもできる。
d.フロー識別子を取得する。プロトコル識別子01に対応して、プロトコル・ルール・プロファイル・テーブル内の「LB: para[1]: outer_src_ip; para[2]: outer_dst_ip; para[3]: Name: inner_src_ip; para[4]: inner_dst_ip; para[5]: VNI」に従って、5つの変数パラメータ「outer_src_ip、outer_dst_ip、VNI、inner_src_ip、inner_dst_ip」の割り振られた値が、ハッシュオペレーションのためのフロー識別子として使用される。パケットが別のプロトコル識別子に対応している場合には、フロー識別子を取得するオペレーションが実行されたときに、対応する変数パラメータの割り振られた値が、対応するプロトコル・ルール・プロファイル情報内に規定されているものとして取得されるということを理解することができる。たとえば、プロトコル識別子に対応するプロトコル・ルール・プロファイル内に規定されているフロー識別子取得方法は、プロトコル識別子01に対応する方法とは異なり、パラメータも異なる、すなわち、3つのタイプのフロー識別子のみが必要とされる可能性がある。
e.送信インターフェースを特定する。
ハッシュオペレーションなどの送信インターフェースを特定するためのオペレーションが、プロトコル識別子01に対応して得られる5つのタイプのフロー識別子に関して、対応するプロトコル・ルール・プロファイル情報に従って実行され、オペレーションによって得られた値に従って、パケットを送信するための物理インターフェースが特定される。
S307:パケットを送信する。
パケットは、NVGREプロトコルを使用するネットワーク上の宛先へ送信される。
この実施形態においては、実施形態1および実施形態2は、ネットワーク通信サービスにおいて適用され、実際の環境においては、実施形態1および実施形態2は、サブスクリプション情報取得サービスまたはネットワーク環境モニタリング・サービスなどの別のパケット処理サービスにさらに適用可能である。プログラム開発者は、プロトコルとは無関係にそれぞれのサービスにマッチする組み込みオペレーションを開発するだけでよく、それぞれのプロトコルに関するパケットが処理される際には、パケットは、プロトコル・ルール・プロファイル情報に従って、組み込みオペレーションにおいて処理される。
この実施形態においては、それぞれのプロトコルを解析して、プロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納し、パケット上での処理中に、パケットを、プロトコル・ルール・プロファイル情報に従ったオペレーションにおいて処理する。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図4は、本発明によるパケット処理装置の実施形態1の構造図である。図4において示されているように、この装置は、
第1の処理対象パケットの第1のプロトコル識別子を取得するプロトコル識別子取得モジュール401と、
第1のプロトコル識別子に対応するプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得し、ルール・プロファイル・リポジトリが、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのプロトコルのプロトコル識別子に関連付けられ、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、パケットを処理するための方法およびパラメータを記述するために使用され、パケットが、少なくとも1つのプロトコルによって規定されている基準を満たすルールプロファイル取得モジュール402と、
第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する処理モジュール403とを含む。
この実施形態においては、パケット処理装置は、ルール・プロファイル・リポジトリ内に格納されている、かつそれぞれのプロトコルに対応するプロトコル・ルール・プロファイル情報を使用し、それぞれのプロトコルのもとでの、プロトコルによって限定されない組み込みオペレーションにおいての、さまざまなパケット上での処理中に、これらのパケットは、プロトコル・ルール・プロファイル情報に従って処理される。すなわち、パケット上での処理は、それぞれのプロトコルによって限定されないことが可能であり、それぞれのプロトコルのもとでパケットを処理するプロセスが簡略化され、処理プログラムをそれぞれのプロトコルに従って開発する必要がなくなり、それによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図5は、本発明によるパケット処理装置の実施形態2の構造図である。図5において示されているように、プロトコル識別子取得モジュール401は、第1のプロトコル識別子のものである、かつ、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションに従って第1の処理対象パケットを読み取り、
読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつ読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されており、またはプロトコル識別子取得モジュール401は、第1の処理対象パケットのプリセットロケーションから第1の処理対象パケットを読み取り、読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつ読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されている。
さらに、この装置は、ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する受信モジュール404をさらに含み、
ルールプロファイル取得モジュール402は、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報をルール・プロファイル・リポジトリから取得し、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内に格納されているプロトコル・ルール・プロファイル情報のうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに関連付けられ、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用されるように特に構成されている。
さらに、受信モジュール404は、ネットワーク管理デバイスによって送信される、かつ少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報をさらに受信し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、ネットワーク管理デバイスによって少なくとも1つのプロトコルのコンテンツを解析することによって得られ、少なくとも1つのプロトコルのうちのそれぞれのプロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータが、プロトコルのコンテンツ内に規定され、
この装置は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を、少なくとも1つのプロトコルのプロトコル識別子に関連付け、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納するストレージモジュール405をさらに含む。
特に、受信モジュール404は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信するようにさらに構成されている。
特に、処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコルIPアドレス、宛先IPアドレス、宛先メディア・アクセス・コントロールMACアドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含む。
前述のモジュールは、前述の方法実施形態に対応しており、詳細についてここで再び説明することはしない。
この実施形態においては、パケット処理装置は、ルール・プロファイル・リポジトリ内に格納されている、かつそれぞれのプロトコルに対応するプロトコル・ルール・プロファイル情報を使用し、パケット上での処理中に、パケットは、プロトコル・ルール・プロファイル情報に従って処理される。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図6は、本発明の一実施形態によるパケット処理装置のハードウェア構造の概略図である。図6において示されているように、この装置は、プロセッサ601、メモリ602、通信インターフェース603、バス604、受信機605、および送信機606を含む。
プロセッサ601、メモリ602、および通信インターフェース603は、バス604を使用することによって互いに接続されており、バス604は、ISAバス、PCIバス、EISAバスなどであることが可能である。バスは、アドレスバス、データバス、コントロールバスなどへと分類することができる。表示を簡単にするために、図6においては、それらのバスを表すのに太いラインが1本だけ使用されているが、これは、1本のバスしかない、または1つのタイプのバスしかないということを示すものではない。
メモリ602は、プログラムを格納する。具体的には、プログラムは、プログラムコードを含むことができ、プログラムコードは、コンピュータオペレーション命令を含む。メモリ602は、高速RAMメモリを含むことができ、不揮発性メモリ(non-volatile memory)、たとえば、少なくとも1つの磁気ディスク・メモリをさらに含むことができる。
プロセッサ601は、メモリ602内に格納されているプログラムを実行し、また、第1の処理対象パケットの第1のプロトコル識別子を取得するように構成されており、
第1のプロトコル識別子に対応するプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得し、ルール・プロファイル・リポジトリが、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのプロトコルのプロトコル識別子に関連付けられ、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、パケットを処理するための方法およびパラメータを記述するために使用され、パケットが、少なくとも1つのプロトコルによって規定されている基準を満たすようにさらに構成されている。
プロセッサ601は、第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する。
さらに、プロセッサ601は、第1のプロトコル識別子のものである、かつ、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションに従って第1の処理対象パケットを読み取り、
読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつ読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されており、または
プロセッサ601は、第1の処理対象パケットのプリセットロケーションから第1の処理対象パケットを読み取り、読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつ読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されている。
受信機605は、ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信するようにさらに構成されており、プロセッサ601は、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報をルール・プロファイル・リポジトリから取得し、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内に格納されているプロトコル・ルール・プロファイル情報のうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに関連付けられ、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用されるように特に構成されている。
さらに、受信機605は、ネットワーク管理デバイスによって送信される、かつ少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報をさらに受信し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、ネットワーク管理デバイスによって少なくとも1つのプロトコルのコンテンツを解析することによって得られ、少なくとも1つのプロトコルのうちのそれぞれのプロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータが、プロトコルのコンテンツ内に規定され、
メモリ602は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を、少なくとも1つのプロトコルのプロトコル識別子に関連付け、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納するように特に構成されている。
さらに特に、受信機605は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信するようにさらに構成されている。
処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコルIPアドレス、宛先IPアドレス、宛先メディア・アクセス・コントロールMACアドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含むということに留意されたい。
プロセッサ601が第1の処理対象パケット上での処理を完遂した場合には、送信機606は、処理されたパケットを特定のサービスタイプに従って送信する。
この実施形態においては、プロセッサは、ルール・プロファイル・リポジトリ内に格納されている、かつそれぞれのプロトコルに対応するプロトコル・ルール・プロファイル情報を使用し、パケット上での処理中に、パケットは、プロトコル・ルール・プロファイル情報に従って処理される。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
方法実施形態のステップのうちのすべてまたは一部は、関連するハードウェアに命令するプログラムによって実施することができるということを、当技術分野における標準的な技術者なら理解することができる。プログラムは、コンピュータ可読ストレージメディア内に格納することができる。プログラムが作動したときに、方法実施形態のステップが実行される。前述のストレージメディアは、プログラムコードを格納することができる任意のメディア、たとえば、ROM、RAM、磁気ディスク、または光ディスクを含む。
最後に、前述の実施形態は、本発明の技術的なソリューションを説明することを意図されているにすぎず、本発明を限定することを意図されているものではないということに留意されたい。本発明について、前述の実施形態を参照しながら詳細に説明しているが、当技術分野における標準的な技術者なら、それでもなお、本発明の実施形態の技術的なソリューションの範囲から逸脱することなく、前述の実施形態において説明されている技術的なソリューションに対する修正形態を作成すること、またはこれらの技術的な特徴のうちの一部またはすべてに対する均等な代替形態を作成することが可能であるということを理解するはずである。
401 プロトコル識別子取得モジュール
402 ルールプロファイル取得モジュール
403 処理モジュール
404 受信モジュール
405 ストレージモジュール
601 プロセッサ
602 メモリ
603 通信インターフェース
604 バス
605 受信機
606 送信機
本発明の実施形態は、情報テクノロジーの分野に関し、詳細には、パケット処理方法および装置に関する。
ユーザの増えゆくネットワークサービス需要を満たすために、さまざまな新たなネットワークテクノロジー、たとえば、NVGRE(総称ルーティングカプセル化を使用したネットワーク仮想化)テクノロジー、およびVXLAN(仮想拡張可能ローカル・エリア・ネットワーク)テクノロジーなどのレイヤ2ネットワークテクノロジーが生み出されている。新たなネットワークテクノロジーが現れるにつれて、ネットワークサービスと連携するために新たなネットワークプロトコルが絶えず現れ、その一方で、新たなネットワークプロトコルは、既存のネットワークサービスに新たな問題をもたらす、すなわち、既存のネットワークサービス方法を、新たなネットワークプロトコルを使用してネットワークに適用することができない、たとえば、既存の通信方法を、レイヤ2ネットワークと従来のネットワークとの間における通信のために使用することができないといった事態が避けられない。
前述の問題を解決するために、プログラム開発者は、新たなネットワークプロトコルに従って、ネットワークサービスを実施するための完全なプログラムを開発し、それらのプログラムは、従来のネットワークプロトコルを使用するネットワークとの互換性を有することをさらに必要とし、新たなネットワークプロトコルを使用するネットワークと、従来のネットワークプロトコルを使用するネットワークとは、連携して互換性を伴ってネットワークサービスを提供することができる。言い換えれば、プログラム開発者は、ネットワークによって使用されるそれぞれのネットワークプロトコルのために完全なプログラムのセットを開発する必要があるが、ネットワークプロトコルをサポートするプログラムを開発するために多くの開発リソースを投じる必要があり、また開発サイクルが長くなり、このことは、ネットワーク・サービス・パフォーマンスに影響を与える。
本発明の実施形態は、新たなネットワークプロトコルをサポートするプログラムの開発がネットワーク・サービス・パフォーマンスに影響を与えるという従来技術における問題を解決するのに役立つパケット処理方法を提供する。
第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の態様、すなわち第1の態様の第1または第2の実施様式に関連して、第3の実施様式においては、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得するステップの前に、この方法は、ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信するステップをさらに含み、
第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得するステップは、
第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報をルール・プロファイル・リポジトリから取得するステップであって、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに関連付けられ、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用される、ステップを含む。
第1の態様の第3の実施様式に関連して、第4の実施様式においては、第1の処理対象パケットの第1のプロトコル識別子を取得するステップの前に、この方法は、
ネットワーク管理デバイスによって送信される、かつ少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報を受信するステップであって、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、ネットワーク管理デバイスによってプロトコルのコンテンツを解析することによって得られ、プロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータが、プロトコルのコンテンツ内に規定されている、ステップと、
プロトコルのプロトコル・ルール・プロファイル情報を、プロトコルのプロトコル識別子に関連付け、プロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納するステップとをさらに含む。
第1の態様の第4の実施様式に関連して、第5の実施様式においては、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得するステップの前に、この方法は、
少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信するステップをさらに含む。
第1の態様、すなわち、第1の態様の第1から第5の実施様式のうちの任意の実施様式に関連して、第6の実施様式においては、処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコルIPアドレス、宛先IPアドレス、宛先メディア・アクセス・コントロールMACアドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含む。
第2の態様によれば、本発明の一実施形態は、
第1の処理対象パケットの第1のプロトコル識別子を取得するプロトコル識別子取得モジュールと、
第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得し、ルール・プロファイル・リポジトリが、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、プロトコルのプロトコル識別子に関連付けられ、プロトコルのプロトコル・ルール・プロファイル情報が、パケットを処理するための方法およびパラメータを記述するために使用され、パケットが、プロトコルによって規定されている基準を満たすように構成されているルールプロファイル取得モジュールと、
第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理するように構成されている処理モジュールとを含むパケット処理装置を提供する。
第2の態様に関連して、第1の実施様式においては、プロトコル識別子取得モジュールは、第1のプロトコル識別子のものである、かつ、少なくとも1つのプロトコルのうちの1つのプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションに従って第1の処理対象パケットを読み取り、
第1の処理対象パケットの読み取りロケーションからの読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されているパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように構成されている。
第2の態様に関連して、第2の実施様式においては、プロトコル識別子取得モジュールは、第1の処理対象パケットのプリセットロケーションから第1の処理対象パケットを読み取り、第1の処理対象パケットのプリセットロケーションからの読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されているパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されている。
第2の態様、すなわち第2の態様の第1または第2の実施様式に関連して、第3の実施様式においては、この装置は、
ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する受信モジュールをさらに含み、
ルールプロファイル取得モジュールは、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報をルール・プロファイル・リポジトリから取得し、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに関連付けられ、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用されるように特に構成されている。
第2の態様の第3の実施様式に関連して、第4の実施様式においては、受信モジュールが、ネットワーク管理デバイスによって送信される、かつ少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報をさらに受信し、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、ネットワーク管理デバイスによってプロトコルのコンテンツを解析することによって得られ、プロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータが、プロトコルのコンテンツ内に規定され、
この装置は、プロトコルのプロトコル・ルール・プロファイル情報を、プロトコルのプロトコル識別子に関連付け、プロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納するように構成されているストレージモジュールをさらに含む。
第2の態様の第4の実施様式に関連して、第5の実施様式においては、受信モジュールは、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信するようにさらに構成されている。
第2の態様、すなわち第2の態様の第1から第5の実施様式の任意の実施様式に関連して、第6の実施様式においては、処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコルIPアドレス、宛先IPアドレス、宛先メディア・アクセス・コントロールMACアドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含む。
本発明の実施形態において提供されるパケット処理方法および装置においては、処理対象パケット上での処理中に、パケットを、ルール・プロファイル・リポジトリ内のプロトコル・ルール・プロファイル情報に従って処理することができる。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
本発明の実施形態における、または従来技術における技術的なソリューションをより明確に説明するために、以降では、これらの実施形態または従来技術を説明する上で必要とされる添付の図面を簡単に紹介する。明らかに、以降の説明における添付の図面は、本発明のいくつかの実施形態を示しているにすぎないが、当技術分野における標準的な技術者なら、それでもなお、創造的な取り組みを伴わずにこれらの添付の図面からその他の図面を導き出すことができる。
本発明によるパケット処理方法の実施形態1のフローチャートである。
本発明によるパケット処理方法の実施形態2のフローチャートである。
本発明によるパケット処理方法の実施形態3のフローチャートである。
本発明によるパケット処理装置の実施形態1の構造図である。
本発明によるパケット処理装置の実施形態2の構造図である。
本発明の一実施形態によるパケット処理装置のハードウェア構造の概略図である。
本発明の実施形態の目的、技術的なソリューション、および利点をより明確にするために、以降では、本発明の実施形態における添付の図面を参照しながら本発明の実施形態における技術的なソリューションを明確にかつ完全に説明する。明らかに、説明されている実施形態は、本発明の実施形態のうちのすべてではなく、一部である。当技術分野における標準的な技術者によって本発明の実施形態に基づいて創造的な取り組みを伴わずに得られるその他のすべての実施形態は、本発明の保護範囲内に収まるものとする。
図1は、本発明によるパケット処理方法の実施形態1のフローチャートである。図1において示されているように、この実施形態における方法は、パケット処理装置によって実施することができ、この処理装置は、ハードウェアおよび/またはソフトウェアを用いて実装することができ、好ましくは、パケット処理を完遂するためにデータを受信、送信、および処理する機能を有するデバイス内に配置される。具体的には、この方法は下記を含む。
S101:第1の処理対象パケットの第1のプロトコル識別子を取得する。
さまざまなプロトコルに従って、これらのプロトコルに対応する、かつ、パケット処理装置によって処理することができる処理対象パケットのために使用されるカプセル化方法、フォーマット、およびパラメータはさまざまであり、したがって、パケット処理装置によってプロトコル識別子を取得するために使用される方法も、さまざまである(たとえば、従来技術においては、さまざまなプロトコルのために、さまざまなプロトコル識別プログラムが開発されている)。この実施形態においては、前述のプロトコルのうちの少なくとも1つに普遍的に適用可能な方法を使用して、プロトコル識別子を取得することができる。具体的には、たとえば、ある方法においては、あるプロトコル識別子のものである、かつ、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションに従って第1の処理対象パケットを読み取ることができ、読み取り結果が、このプロトコル・ルール・プロファイル情報内に記述されている、かつこの読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子が特定され、ルール・プロファイル・リポジトリは、パケット処理装置内に配置され、この少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納するために使用される。たとえば、ルール・プロファイル・リポジトリは、2つのタイプのプロトコルを解析することによって得られたプロトコル・ルール・プロファイル情報を格納し、プロトコル識別子のものである、かつ、第1のタイプのプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションは、イーサネット(登録商標)・ヘッダ・フィールドの後の10番目のバイトであり、プロトコル識別子の値は、0x11であり、プロトコル識別子のものである、かつ、第2のタイプのプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションは、イーサネット・ヘッダ・フィールドの後の14番目のバイトであり、プロトコル識別子の値は、0x1Fである。処理対象パケットのイーサネット・ヘッダ・フィールドの後の10番目のバイトおよび14番目のバイトは、2つのタイプのプロトコル・ルール・プロファイル情報に従って別々に読み取られる。イーサネット・ヘッダ・フィールドの後の10番目のバイトを読み取ることによって得られた結果は、0x13であり、これは、第1のプロトコルにマッチすることに失敗しているが、イーサネット・ヘッダ・フィールドの後の14番目のバイトを読み取ることによって得られた結果は、0x1Fであり、これは、第2のプロトコルにマッチすることに成功しており、したがって、処理対象パケットのプロトコル識別子は、第2のプロトコル識別子02である。
別の方法においては、第1の処理対象パケットの第1のプロトコル識別子は、第1の処理対象パケットのプリセットロケーションから読み取られる。すなわち、1つのプリセットロケーションが、さまざまなカプセル化方法を伴うそれぞれのパケットごとに、同一の基準に従って確保され、パケットのプロトコル識別子を配置するために使用される。たとえば、この同一の基準は、プリセットロケーションがパケットの第1のビットであるということを規定し、パケット処理装置は、第1の処理対象パケットを受信した際に第1の処理対象パケットの第1のビットを読み取り、読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつプリセットロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定する。たとえば、パケット処理装置によって第1の処理対象パケットの第1のビットを読み取ることによって得られた結果は、0x1Fであり、これは、少なくとも1つのプロトコルのうちのそれぞれのプロトコルの、この装置内のルール・プロファイル・リポジトリに格納されているプロトコル・ルール・プロファイル情報内に記述されている、かつ第1のビットに対応するパラメータにマッチし、第1の処理対象パケットの第1のプロトコル識別子が特定される。パケット処理装置が現在、1つのプロトコルのみをサポートしている場合には、パケット処理装置は、読み取り結果をこのパケット処理装置の既知のパラメータとマッチさせて、処理対象パケットのプロトコル識別子を特定する、ということを理解することもできる。
柔軟なことに、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、プロトコルのプロトコル・ルール・プロファイル情報内に記述されているパラメータに関連付けられ、第1の処理対象パケットの第1のプロトコル識別子の特定中にプロトコル識別子を取得するために使用される場合には、読み取り結果をプロトコル識別子として使用することができる。たとえば、第2のプロトコルのプロトコル・ルール・プロファイル情報は、第2のプロトコルのプロトコル・ルール・プロファイル情報内に記述されているパラメータ0x1Fと関連付けてルール・プロファイル・リポジトリ内に格納され、第1の処理対象パケットのイーサネット・ヘッダ・フィールドの後の14番目のバイトを読み取ることによって得られた結果が0x1Fと整合している場合には、第1の処理対象パケットの第1のプロトコル識別子が0x1Fであるということが特定される。
S102:第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得する。
ルール・プロファイル・リポジトリは、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報は、少なくとも1つのプロトコルのプロトコル識別子に関連付けられ、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報は、パケットを処理するための方法およびパラメータを記述するために使用され、パケットは、少なくとも1つのプロトコルによって規定されている基準を満たし、少なくとも1つのプロトコルのうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報は、パケット処理装置によって読み取ることができる同一の言語で書かれている。すなわち、ルール・プロファイル・リポジトリは、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、第1の処理対象パケットを処理する際に、パケット処理装置は、S101において取得された第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報のみを使用することによって、第1の処理対象パケットを処理する。
S103:第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する。
たとえば、第1の処理対象パケット上でパケット処理装置によって実行される処理は、ネットワーク通信であり、具体的なオペレーションとしては、パケット・アドレスを知ること、転送テーブルを検索すること、パケットを再カプセル化すること、およびパケットを送信することが含まれる。これらの複数のオペレーションは、パケット処理装置内に既に組み込まれており、第1の処理対象パケットは、第1のプロトコル・ルール・プロファイル情報に従ってこれらの複数のオペレーションにおいて処理される。これらの複数のオペレーションは、プロトコルとは無関係の組み込みオペレーションとして理解することができ、すなわち、それぞれのプロトコルのもとでのパケット上での処理中に、パケットは、プロトコル識別子に従って取得されるプロトコル・ルール・プロファイル情報に従ってそれぞれのオペレーションにおいて処理される。パケットは、それぞれのプロトコルのもとでのネットワーク通信において前述のオペレーションのうちのそれぞれに従って処理され、したがって、プロトコルのもとでのパケット上での特定の処理中に、パケットは、プロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている方法およびパラメータに従って組み込みオペレーションにおいて処理される。
したがって、組み込みオペレーションは、パケット処理装置内に組み込まれているということを理解することができ、新たなプロトコルに対処する必要がある場合には、パケット処理装置は、新たなプロトコルのコンテンツを解析して、新たなプロトコルのもとでパケットを処理する際のプロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をパケット処理装置内のルール・プロファイル・リポジトリに格納し、新たなプロトコルのもとでのパケット上での処理中に、パケットを、新たなプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報に従って組み込みオペレーションにおいて処理することができる。
この実施形態においては、それぞれのプロトコルを解析して、プロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納し、パケット上での処理中に、パケットを、プロトコル・ルール・プロファイル情報に従って組み込みオペレーションにおいて処理することができる。すなわち、パケット上での処理は、それぞれのプロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図2は、本発明によるパケット処理方法の実施形態2のフローチャートである。図2において示されているように、この方法は下記を含む。
S201:少なくとも1つのプロトコルの、ネットワーク管理デバイスによって送信されるプロトコル・ルール・プロファイル情報を受信する。
たとえば、パケット処理装置が初めて使用されるときに、ネットワーク管理デバイスは、パケット処理装置によってサポートされることが必要な少なくとも1つのプロトコルに従って、対応するプロトコル・ルール・プロファイル情報を送信する。たとえば、パケット処理装置が、2つのプロトコルが使用されるネットワーク環境において使用されることになり、ネットワーク管理デバイスは、これらの2つのプロトコルを解析して、パケット処理装置によって読み取ることができる同一の言語で記述されているプロトコル・ルール・プロファイル情報を得て、これらの2つのプロトコルのプロトコル・ルール・プロファイル情報をパケット処理装置へ送信する。別の例に関しては、新たなテクノロジーが発展するにつれて、第3のプロトコルを使用するネットワークが現れているが、現在のパケット処理装置は、第3のプロトコルの前に現れている2つのプロトコルにしか適用できない。パケット処理装置を、第3のプロトコルを使用するネットワークに適用できるようにすることを可能にするために、ネットワーク管理デバイスは、第3のプロトコルを解析して、第3のプロトコルのプロトコル・ルール・プロファイル情報を得て、第3のプロトコルのプロトコル・ルール・プロファイル情報をパケット処理装置へ送信し、第3のプロトコルのプロトコル・ルール・プロファイル情報は、2つのプロトコルのプロトコル・ルール・プロファイル情報の言語と同一である、かつパケット処理装置によって読み取ることができる言語で書かれている。少なくとも1つのプロトコルの、ネットワーク管理デバイスによって送信されるプロトコル・ルール・プロファイル情報を受信する際に、パケット処理装置は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を、少なくとも1つのプロトコルのプロトコル識別子に関連付け、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納し、ルール・プロファイル・リポジトリは、パケットを処理するために必要とされる方法およびパラメータをパケット処理装置において構成するものとして理解することもできる。
特に、少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報は、ネットワーク管理デバイスによって少なくとも1つのプロトコルのコンテンツを解析することによって得られ、少なくとも1つのプロトコルのうちのそれぞれのプロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータは、プロトコルのコンテンツ内に規定されている。たとえば、プロトコルは、パケットのフォーマットおよびコンテンツを規定し、プロトコルが使用される対象のパケットを処理するために使用すべき方法およびパラメータが、プロトコルを解析することによって得られ、すなわち、プロトコルのプロトコル・ルール・プロファイル情報が得られる。
S202:少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信する。
構成命令は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報用の、たとえば、一片のプロトコル・ルール・プロファイル情報を有効にするまたは無効にするための、あるいは2つのプロトコルのもとでのルールプロファイル情報どうしの間における相互作用を設定するための構成コマンドである。
S201およびS202は、任意選択のステップである、すなわち、パケット処理装置が初めて使用されて、プロトコル・ルール・プロファイル情報を伴って構成されていない場合、またはパケット処理装置によってサポートされる必要があるプロトコルが変わった場合に、S201およびS202を実行する、すなわち、関連したプロトコルのコンテンツを解析して、プロトコルのルールプロファイル情報を得て、ルールプロファイル情報をパケット処理装置内に構成する、ということに留意されたい。既にプロトコル・ルール・プロファイル情報を伴って構成されていて、前述の第1の処理対象パケット上での処理中にパケットを処理することができるパケット処理装置に関しては、S201およびS202を実行する必要はなく、S203を直接実行することができる。
S203:第1の処理対象パケットのプロトコル識別子を取得する。
具体的な内容については、実施形態1のS101において説明しており、ここで再び詳細に説明することはしない。
S204:ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する。
ネットワークサービスが多様化するにつれて、同一のパケット処理装置が、ネットワーク通信サービスおよびサブスクリプション情報取得サービスなどの複数のタイプのサービスを実行する場合があり、さまざまなサービスに関して、パケット処理装置は、さまざまな手順でパケットを処理する。たとえば、ネットワーク通信サービスに関しては、処理手順は、パケット・アドレスを順次知ること、転送テーブルを検索すること、およびパケットを再カプセル化することであるが、サブスクリプション情報取得サービスの処理手順は、サブスクリプション・アイテム・シンボルを順次識別すること、サブスクリプション情報を検索すること、サブスクリプション情報のマッチングである、といった具合である。前述のオペレーションは、パケット処理装置内でさまざまなサービスタイプに従ってさまざまな組み込みオペレーションとして構成され、したがって、第1の処理対象パケットを処理する前に、パケット処理装置は、ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する必要があり、すなわち、パケット処理装置は、有効化コマンドに従って、パケット処理装置が現在担当している対象のサービスタイプを有効にする。たとえば、2つのサービスタイプに対応する組み込みオペレーションの2つのセットが、パケット処理装置内に組み込まれており、組み込みオペレーションの1つのセットが、ネットワーク相互作用サービスを担当しており、組み込みオペレーションの他方のセットが、サブスクリプション情報取得サービスを担当しており、現在の作業環境においては、パケット処理装置は、ネットワーク相互作用サービスのみを担当しており、あるサービスタイプに対応する(ネットワーク相互作用を実行するための)受信された有効化コマンドに従って、ネットワーク相互作用サービスが選択されて有効にされ(すなわち、対応する組み込みオペレーションが有効にされ)、サブスクリプション情報取得サービスが無効にされる(すなわち、対応する組み込みオペレーションが無効にされる)。しかしながら、パケット処理装置が1つのサービスタイプのみを担当する(これに応じて、ルールプロファイル情報が、このサービスタイプにのみ対応する)ということが初期化中にプリセットされている場合には、またはパケット処理装置が、ネットワーク管理デバイスによって送信された有効化コマンドに従って、パケット処理装置が担当するサービスタイプを既に有効にした後には、その後のパケット処理プロセスにおいて、S204を実行しないことが可能であり、S205を直接実行することができるということに留意されたい。この実施形態においては、一例として、パケット処理装置は、複数のタイプのサービスを処理することを担当しており、パケット処理装置が担当するサービスタイプを有効にしない、すなわち、S204が実行される。S204は、S203の前に実行することができ、またはS203の後に実行することもできる。
S205:第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得する。
少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内に格納されているプロトコル・ルール・プロファイル情報のうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、これらのプロトコル・ルール・プロファイル・サブ情報は、サービスタイプに関連付けられ、これらのプロトコル・ルール・プロファイル・サブ情報は、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用され、したがって、パケット処理装置が1つのサービスタイプのみを担当している場合には、プロトコル・ルール・プロファイル・サブ情報は、プロトコル・ルール・プロファイル情報と同等であることが可能である。この実施形態においては、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報が、S203において取得された第1のプロトコル識別子と、サービスタイプを有効にするための、S204において受信される有効化コマンドとに従って、ルール・プロファイル・リポジトリから取得される。
S206:第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する。
たとえば、第1のプロトコル・ルール・プロファイル情報は、ネットワーク通信サービスに従ってパケットが処理される際に使用される処理するための方法およびパラメータを含み、処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
任意選択で、パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコル(IP)アドレス、宛先IPアドレス、宛先メディア・アクセス・コントロール(MAC)アドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含む。
パケット上での処理は、プロトコル・ルール・プロファイル情報内で記述されている処理するための方法およびパラメータに従って完遂され、これについては、S103において具体的に説明しており、ここで再び詳細に説明することはしない。
この実施形態においては、それぞれのプロトコルを解析して、プロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納し、パケット上での処理中に、パケットをプロトコル・ルール・プロファイル情報に従って処理する。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図3は、本発明によるパケット処理方法の実施形態3のフローチャートである。図3において示されているように、この実施形態におけるサービスタイプは、ネットワーク通信であり、この方法は下記を含む。
S301:少なくとも1つのプロトコルの、ネットワーク管理デバイスによって送信されるプロトコル・ルール・プロファイル情報、および少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する構成命令を受信する。
パケット処理装置が初めて使用されるときに、ネットワーク管理デバイスは、パケット処理装置によってサポートされることが必要なプロトコルに従って、これらのプロトコルに対応するプロトコル・ルール・プロファイル情報を送信する。この実施形態においては、サポートされることが必要なプロトコルは、たとえば、VXLANプロトコルおよびNVGREプロトコルであり、ネットワーク管理デバイスは、VXLANプロトコルおよびNVGREプロトコルのコンテンツを解析して、テーブル1において示されているプロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をパケット処理装置のルール・プロファイル・リポジトリ内に格納し、プロトコル・ルール・プロファイル情報は、ネットワーク通信サービスまたはその他のサービスを実行するための、パケット処理装置内にある組み込みオペレーションによって識別することができる。
テーブル1で提供されている2つのタイプのプロトコル・ルール・プロファイル情報においては、[FORMAT]は、キーワード「eth/ip/udp/payload」と、組み込みオペレーションによって識別することができるパケットフォーマットとを定義しており、ethは、イーサネット・ヘッダ・フィールドを表しており、ipは、IPヘッダ・フィールドを表しており、udpは、UDP(ユーザ・データグラム・プロトコル)ヘッダ・フィールドを表しており、payloadは、データ・ペイロードを表しており、protoは、組み込みオペレーションによって識別することができないフォーマットを定義するためのキーワードとして使用され、すなわち、組み込みオペレーションによって以前に識別されていない新たに付加されたコンテンツ(文字、割り振られた値、フォーマットなど)が、新たなプロトコル内に現れ、プロトコル・ルール・プロファイル情報を得るために新たなプロトコルが解析される場合には、新たなプロトコル内に現れる新たに付加されたコンテンツを定義するためにキーワード「proto」が使用される。たとえば、組み込みオペレーションによって以前に識別されていないデータ・フォーマットが、VXLANプロトコルに新たに付加され、データ・フォーマットは、4つの定数「08-00-00-00」、変数「VNI」、および定数「00」を含み、プロトコル・ルール・プロファイル情報を得るためにVXLANプロトコルが解析される場合には、データ・フォーマット「08-00-00-00-VNI-00」を定義するためにキーワードprotoが使用される。
「Packet: eth[1]-ip[1]-udp[1]-proto[1]-eth[2]-ip[2]-payload」は、パケットの脱カプセル化/カプセル化のために使用されるフォーマットおよび変数パラメータを定義しており、eth[1]は、第1のイーサネット・ヘッダ・フィールドを表しており、eth[2]は、第2のイーサネット・ヘッダ・フィールドを表しており、同様に、ipまたはudpなどのキーワードの後の角括弧内の値は、特定のフィールドを規定している。
[FIELD]は、変数パラメータを定義しており、outer_dst_mac、outer_src_mac、outer_src_ip、outer_dst_ip、ip_protocol、dst_port、VNI/VSID、inner_dst_mac、inner_src_mac、inner_src_ip、およびinner_dst_ipはすべて、変数パラメータであり、これらの変数パラメータの割り振られた値は、Positionにおいて規定されている特定の読み取り方法に従って得ることができる。たとえば、変数outer_scr_macの割り振られた値は、「Position: eth[1]; Offset: 6; Length: 6」に従った読取りを通じて得られ、すなわち、eth[1]フィールドの開始位置から6バイトのオフセットが行われ、7番目のバイトから12番目のバイトまでのバイトが読み取られ、読み取り結果が、変数outer_scr_macの割り振られた値として使用される。
[IDENTIFICATION]は、プロトコル識別ルールを定義しており、[OPERATION]は、ネットワーク通信サービスによって必要とされるパラメータを定義しており、FORWARDは、パケットの受信および送信をコントロールするために使用されるサブサービスを表しており、LBは、ロード・バランシングをコントロールするために使用されるサブサービスを表している。「dst_ip: inner_dst_ip; dst_mac: inner_dst_mac; domain: VNI」の中のdst_ip、dst_mac、およびdomainは、ネットワーク通信サービス内の組み込みオペレーションによって必要とされるパラメータであり、これらのパラメータの特定の割り振られた値は、inner_dst_ipなどの変数パラメータの割り振られた値によって特定され、またはdst_ip、dst_mac、およびdomainなどのパラメータの割り振られた値は、プロトコル・ルール・プロファイル情報内で直接規定することもできる。
加えて、テーブル1は、プロトコル・ルール・プロファイル情報を記述するための一例として使用されているにすぎず、ルール・プロファイル・リポジトリがプロトコル・ルール・プロファイル情報を格納する特定の様式、および使用される文字、フォーマットなどは、テーブル1のものに限定されない。
S301は任意選択のステップであるということに留意されたい。すなわち、パケット処理装置が初めて使用されて、プロトコル・ルール・プロファイル情報を伴って構成されていない場合に、S301を実行する。既にプロトコル・ルール・プロファイル情報を伴って構成されていて、第1の処理対象パケット上での処理中にパケットを処理することができるパケット処理装置に関しては、S301を実行する必要はなく、S302を直接実行することができる。
S302:第1の処理対象パケットを受信する。
S302を実行する際に、パケット処理装置は、受信された第1の処理対象パケットに関連しているサービスタイプ、および受信された第1の処理対象パケットが満たすプロトコルの基準を知らない。
S303:第1の処理対象パケットのプロトコル識別子を取得する。
プロトコル・ルール・プロファイル情報内の[IDENTIFICATION]において定義されていて、プロトコルを識別するために必要とされる変数パラメータは、「ip_protocol、dst_port」であり、対応するロケーションは、「Position: udp[1]; Offset: 2; Length: 2」および「Position: ip[1]; Offset: 9; Length: 1」において定義されている対応する読み取り方法に従って読み取られ、変数パラメータip_protocolに関して、割り振られた値0x11が得られ、変数パラメータdst_portに関して、割り振られた値0x2118が得られ、0x11および0x2118は、ルール・プロファイル・リポジトリ内のVXLANプロトコルに成功裏にマッチし、これによって、プロトコル識別子01が得られる。
この実施形態においては、VXLANプロトコルのプロトコル・ルール・プロファイル情報内の読み取りロケーションと、NVGREプロトコルのプロトコル・ルール・プロファイル情報内の読み取りロケーションとは、同じである。しかしながら、実際の用途において、2つのタイプのプロトコル・ルール・プロファイル情報内の読み取りロケーションどうしが異なる可能性がある場合には、これらの2つのタイプのプロトコル・ルール・プロファイル情報内のこれらの読み取りロケーションどうしは、別々に読み取られ、その後に、読み取られたコンテンツと、対応するプロトコル識別子との間においてマッチングが実行される。
S304:ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する。
具体的な取得方法については、S204において説明しており、ここで再び詳細に説明することはしない。しかしながら、パケット処理装置が1つのサービスタイプのみを担当するということが初期化中にプリセットされている場合には、オプションとして、S304を実行しないことが可能であり、実際の状況に従ってS305を直接実行することができるということに留意されたい。この実施形態においては、パケット処理装置は、複数のタイプのサービスを処理することを担当しており、すなわち、S304が実行され、S304は、S303の前に実行することができ、またはS303の後に実行することもできる。
S305:ルール・プロファイル・リポジトリからプロトコル・ルール・プロファイル情報を取得する。
この実施形態においては、パケット処理装置は、さまざまなサービスタイプを担当することができ、したがって、プロトコル・ルール・プロファイル情報を取得することは、具体的には、プロトコル識別子01に対応する第1のプロトコル・ルール・プロファイル情報に従って、サービスタイプ0305に対応するプロトコル・ルール・プロファイル・サブ情報、すなわち、VXLANプロトコルのもとでのサービス1のプロトコル・ルール・プロファイル・サブ情報を特定することである。
S306:取得されたプロトコル・ルール・プロファイル情報を使用することによって、第1の処理対象パケットを処理する。
S103において説明したように、ネットワーク通信サービスにおける組み込みオペレーションは、パケット・アドレスを知ること、転送テーブルを検索すること、およびパケットを再カプセル化することを含む。
具体的な内容は、下記のとおりである。
a.アドレスを知る。第1の処理対象パケットのプロトコル識別子は01であるため、宛先MACアドレス(変数パラメータinner_dst_macの割り振られた値)、宛先IPアドレス(変数パラメータinner_dst_ipの割り振られた値)、ネットワークドメイン識別子(変数パラメータVNIの割り振られた値)などが、対応する第1のプロトコル・ルール・プロファイル情報に従って取得される。第1の処理対象パケットのプロトコル識別子が02である場合には、宛先MACアドレス(変数パラメータinner_dst_macの割り振られた値)、宛先IPアドレス(変数パラメータinner_dst_ipの割り振られた値)、ネットワーク識別子(変数パラメータVSIDの割り振られた値)などが、対応するプロトコル・ルール・プロファイル情報に従って取得されるということを理解することができる。したがって、組み込みオペレーションは、プロトコルとは無関係であり、それぞれのオペレーションにおけるパケット上での処理中に、パケットに対応するプロトコル識別子に対応しているプロトコル・ルール・プロファイル情報のみをルール・プロファイル・リポジトリから取得すればよく、パケットは、対応する方法およびパラメータに従って処理することができるということを知ることができる。
b.転送テーブルを検索する。VXLANプロトコルのもとでアドレスを知ることによって、VNI=6000ということがわかり、構成命令は、VNI=6000およびVSID=3000が同じ転送ドメインを示すということを規定しているため、宛先IPアドレスおよび宛先MACアドレスに従ってVSID=3000に対応するネットワークの転送テーブルにおいて宛先が特定される。
c.再カプセル化する。VSID=3000によれば、宛先は、NVGREプロトコルを使用するネットワークであるということがわかり、したがって、VXLANプロトコルのもとでのプロトコル・ルール・プロファイル情報に従ってパケットのVXLANパケット・カプセル化が除去され、NVGREプロトコルのもとでのプロトコル・ルール・プロファイル情報に従ってNVGREパケット・カプセル化が付加される。具体的には、パケットのVXLANパケット・カプセル化は、payloadを取得するために、VXLANプロトコルのもとでのプロトコル・ルール・プロファイル情報内の[FORMAT]において記述されている方法、パラメータ、およびパケットフォーマットに従って除去され、NVGREパケット・カプセル化は、NVGREプロトコルのもとでのプロトコル・ルール・プロファイル情報内の[FORMAT]において記述されている方法、パラメータ、およびパケットフォーマットに従って実行される。
より好ましくは、この実施形態においては、パケット処理装置は、ロード・バランシングをコントロールする機能をさらに有する。具体的には、第1の処理対象パケットの送信中に、第1の処理対象パケットは、同じ論理インターフェースに属する任意の物理インターフェースを通じて送り出すことができ、パケット障害によってもたらされるさらなるオーバーヘッドを回避するために、同じフローに属するパケットどうしは、同じ物理インターフェースを通じて送り出すべきである。したがって、ステップa〜ステップcを実行する過程で、LBサブサービスに対応する下記の組み込みオペレーションを実行することもできる。
d.フロー識別子を取得する。プロトコル識別子01に対応して、プロトコル・ルール・プロファイル・テーブル内の「LB: para[1]: outer_src_ip; para[2]: outer_dst_ip; para[3]: Name: inner_src_ip; para[4]: inner_dst_ip; para[5]: VNI」に従って、5つの変数パラメータ「outer_src_ip、outer_dst_ip、VNI、inner_src_ip、inner_dst_ip」の割り振られた値が、ハッシュオペレーションのためのフロー識別子として使用される。パケットが別のプロトコル識別子に対応している場合には、フロー識別子を取得するオペレーションが実行されたときに、対応する変数パラメータの割り振られた値が、対応するプロトコル・ルール・プロファイル情報内に規定されているものとして取得されるということを理解することができる。たとえば、プロトコル識別子に対応するプロトコル・ルール・プロファイル情報内に規定されているフロー識別子取得方法は、プロトコル識別子01に対応する方法とは異なり、パラメータも異なる、すなわち、3つのタイプのフロー識別子のみが必要とされる可能性がある。
e.送信インターフェースを特定する。
ハッシュオペレーションなどの送信インターフェースを特定するためのオペレーションが、プロトコル識別子01に対応して得られる5つのタイプのフロー識別子に関して、対応するプロトコル・ルール・プロファイル情報に従って実行され、オペレーションによって得られた値に従って、パケットを送信するための物理インターフェースが特定される。
S307:パケットを送信する。
パケットは、NVGREプロトコルを使用するネットワーク上の宛先へ送信される。
この実施形態においては、実施形態1および実施形態2は、ネットワーク通信サービスにおいて適用され、実際の環境においては、実施形態1および実施形態2は、サブスクリプション情報取得サービスまたはネットワーク環境モニタリング・サービスなどの別のパケット処理サービスにさらに適用可能である。プログラム開発者は、プロトコルとは無関係にそれぞれのサービスにマッチする組み込みオペレーションを開発するだけでよく、それぞれのプロトコルに関するパケットが処理される際には、パケットは、プロトコル・ルール・プロファイル情報に従って、組み込みオペレーションにおいて処理される。
この実施形態においては、それぞれのプロトコルを解析して、プロトコル・ルール・プロファイル情報を得て、プロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納し、パケット上での処理中に、パケットを、プロトコル・ルール・プロファイル情報に従ったオペレーションにおいて処理する。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図4は、本発明によるパケット処理装置の実施形態1の構造図である。図4において示されているように、この装置は、
第1の処理対象パケットの第1のプロトコル識別子を取得するプロトコル識別子取得モジュール401と、
第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得し、ルール・プロファイル・リポジトリが、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのプロトコルのプロトコル識別子に関連付けられ、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、パケットを処理するための方法およびパラメータを記述するために使用され、パケットが、少なくとも1つのプロトコルによって規定されている基準を満たすルールプロファイル取得モジュール402と、
第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する処理モジュール403とを含む。
この実施形態においては、パケット処理装置は、ルール・プロファイル・リポジトリ内に格納されている、かつそれぞれのプロトコルに対応するプロトコル・ルール・プロファイル情報を使用し、それぞれのプロトコルのもとでの、プロトコルによって限定されない組み込みオペレーションにおいての、さまざまなパケット上での処理中に、それらのパケットは、プロトコル・ルール・プロファイル情報に従って処理される。すなわち、パケット上での処理は、それぞれのプロトコルによって限定されないことが可能であり、それぞれのプロトコルのもとでパケットを処理するプロセスが簡略化され、処理プログラムをそれぞれのプロトコルに従って開発する必要がなくなり、それによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図5は、本発明によるパケット処理装置の実施形態2の構造図である。図5において示されているように、プロトコル識別子取得モジュール401は、第1のプロトコル識別子のものである、かつ、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションに従って第1の処理対象パケットを読み取り、
読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつ読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されており、またはプロトコル識別子取得モジュール401は、第1の処理対象パケットのプリセットロケーションから第1の処理対象パケットを読み取り、読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつプリセットロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されている。
さらに、この装置は、ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信する受信モジュール404をさらに含み、
ルールプロファイル取得モジュール402は、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報をルール・プロファイル・リポジトリから取得し、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内に格納されているプロトコル・ルール・プロファイル情報のうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに関連付けられ、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用されるように特に構成されている。
さらに、受信モジュール404は、ネットワーク管理デバイスによって送信される、かつ少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報をさらに受信し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、ネットワーク管理デバイスによって少なくとも1つのプロトコルのコンテンツを解析することによって得られ、少なくとも1つのプロトコルのうちのそれぞれのプロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータが、プロトコルのコンテンツ内に規定され、
この装置は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を、少なくとも1つのプロトコルのプロトコル識別子に関連付け、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納するストレージモジュール405をさらに含む。
特に、受信モジュール404は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信するようにさらに構成されている。
特に、処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコルIPアドレス、宛先IPアドレス、宛先メディア・アクセス・コントロールMACアドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含む。
前述のモジュールは、前述の方法実施形態に対応しており、詳細についてここで再び説明することはしない。
この実施形態においては、パケット処理装置は、ルール・プロファイル・リポジトリ内に格納されている、かつそれぞれのプロトコルに対応するプロトコル・ルール・プロファイル情報を使用し、パケット上での処理中に、パケットは、プロトコル・ルール・プロファイル情報に従って処理される。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
図6は、本発明の一実施形態によるパケット処理装置のハードウェア構造の概略図である。図6において示されているように、この装置は、プロセッサ601、メモリ602、通信インターフェース603、バス604、受信機605、および送信機606を含む。
プロセッサ601、メモリ602、および通信インターフェース603は、バス604を使用することによって互いに接続されており、バス604は、ISAバス、PCIバス、EISAバスなどであることが可能である。バスは、アドレスバス、データバス、コントロールバスなどへと分類することができる。表示を簡単にするために、図6においては、それらのバスを表すのに太いラインが1本だけ使用されているが、これは、1本のバスしかない、または1つのタイプのバスしかないということを示すものではない。
メモリ602は、プログラムを格納する。具体的には、プログラムは、プログラムコードを含むことができ、プログラムコードは、コンピュータオペレーション命令を含む。メモリ602は、高速RAMメモリを含むことができ、不揮発性メモリ、たとえば、少なくとも1つの磁気ディスク・メモリをさらに含むことができる。
プロセッサ601は、メモリ602内に格納されているプログラムを実行し、また、第1の処理対象パケットの第1のプロトコル識別子を取得するように構成されており、
第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリから取得し、ルール・プロファイル・リポジトリが、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を格納し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのプロトコルのプロトコル識別子に関連付けられ、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、パケットを処理するための方法およびパラメータを記述するために使用され、パケットが、少なくとも1つのプロトコルによって規定されている基準を満たすようにさらに構成されている。
プロセッサ601は、第1のプロトコル・ルール・プロファイル情報に従って第1の処理対象パケットを処理する。
さらに、プロセッサ601は、第1のプロトコル識別子のものである、かつ、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内にあるプロトコル・ルール・プロファイル情報内に記述されている読み取りロケーションに従って第1の処理対象パケットを読み取り、
読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつ読み取りロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されており、または
プロセッサ601は、第1の処理対象パケットのプリセットロケーションから第1の処理対象パケットを読み取り、読み取り結果が、プロトコル・ルール・プロファイル情報内に記述されている、かつプリセットロケーションに対応するパラメータにマッチした場合には、第1の処理対象パケットの第1のプロトコル識別子を特定するように特に構成されている。
受信機605は、ネットワーク管理デバイスによって送信される、かつサービスタイプに対応する有効化コマンドを受信するようにさらに構成されており、プロセッサ601は、第1のプロトコル識別子に対応する第1のプロトコル・ルール・プロファイル情報の、サービスタイプに対応する第1のプロトコル・ルール・プロファイル・サブ情報をルール・プロファイル・リポジトリから取得し、少なくとも1つのプロトコルの、ルール・プロファイル・リポジトリ内に格納されているプロトコル・ルール・プロファイル情報のうちのそれぞれのプロトコルのプロトコル・ルール・プロファイル情報が、少なくとも1つのサービスタイプに従って、少なくとも一片のプロトコル・ルール・プロファイル・サブ情報へと分類され、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに関連付けられ、プロトコル・ルール・プロファイル・サブ情報が、サービスタイプに基づいてパケットを処理するための方法およびパラメータを記述するために使用されるように特に構成されている。
さらに、受信機605は、ネットワーク管理デバイスによって送信される、かつ少なくとも1つのプロトコルに対応するプロトコル・ルール・プロファイル情報をさらに受信し、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報が、ネットワーク管理デバイスによって少なくとも1つのプロトコルのコンテンツを解析することによって得られ、少なくとも1つのプロトコルのうちのそれぞれのプロトコルによって規定されている基準を満たすパケットを処理するための方法およびパラメータが、プロトコルのコンテンツ内に規定され、
メモリ602は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報を、少なくとも1つのプロトコルのプロトコル識別子に関連付け、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報をルール・プロファイル・リポジトリ内に格納するように特に構成されている。
さらに特に、受信機605は、少なくとも1つのプロトコルのプロトコル・ルール・プロファイル情報に関する、ネットワーク管理デバイスによって送信される構成命令を受信するようにさらに構成されている。
処理するための方法は、
プロトコルを識別する方法、アドレスを知る方法、再カプセル化を行う方法、フロー識別子を取得する方法、および送信インターフェースを特定する方法のうちの少なくとも1つを含み、
パラメータは、
プロトコル識別子、パケットフォーマット、ソース・インターネット・プロトコルIPアドレス、宛先IPアドレス、宛先メディア・アクセス・コントロールMACアドレス、ソースMACアドレス、ネットワーク識別子、および、送信インターフェースを特定するためのコンピューティング値というパラメータのうちの少なくとも1つを含むということに留意されたい。
プロセッサ601が第1の処理対象パケット上での処理を完遂した場合には、送信機606は、処理されたパケットを特定のサービスタイプに従って送信する。
この実施形態においては、プロセッサは、ルール・プロファイル・リポジトリ内に格納されている、かつそれぞれのプロトコルに対応するプロトコル・ルール・プロファイル情報を使用し、パケット上での処理中に、パケットは、プロトコル・ルール・プロファイル情報に従って処理される。すなわち、パケット上での処理は、プロトコルによって限定されないことが可能であり、パケットを処理するプロセスが簡略化され、処理プログラムをプロトコルに従って開発する必要がなくなり、これによって、開発リソースを節約し、ネットワーク・サービス・パフォーマンスを改善するのを支援する。
方法実施形態のステップのうちのすべてまたは一部は、関連するハードウェアに命令するプログラムによって実施することができるということを、当技術分野における標準的な技術者なら理解することができる。プログラムは、コンピュータ可読ストレージメディア内に格納することができる。プログラムが作動したときに、方法実施形態のステップが実行される。前述のストレージメディアは、プログラムコードを格納することができる任意のメディア、たとえば、ROM、RAM、磁気ディスク、または光ディスクを含む。
最後に、前述の実施形態は、本発明の技術的なソリューションを説明することを意図されているにすぎず、本発明を限定することを意図されているものではないということに留意されたい。本発明について、前述の実施形態を参照しながら詳細に説明しているが、当技術分野における標準的な技術者なら、それでもなお、本発明の実施形態の技術的なソリューションの範囲から逸脱することなく、前述の実施形態において説明されている技術的なソリューションに対する修正形態を作成すること、またはこれらの技術的な特徴のうちの一部またはすべてに対する均等な代替形態を作成することが可能であるということを理解するはずである。
401 プロトコル識別子取得モジュール
402 ルールプロファイル取得モジュール
403 処理モジュール
404 受信モジュール
405 ストレージモジュール
601 プロセッサ
602 メモリ
603 通信インターフェース
604 バス
605 受信機
606 送信機