(57)【要約】【課題】パケット転送処理の高速化とパケット処理遅延のばらつきの抑制を図る。【解決手段】フラグメントされたＩＰパケットとフラグメント元のＩＰパケットに適合するフローテーブルのエントリとを対応付けるフラグメントパケットＩＤテーブル３と、フラグメント情報を取得し、ＩＰパケットのヘッダ情報に基づいてパケットＩＤを生成し、フラグメントパケットＩＤテーブルを参照して、パケットＩＤを有するＩＰパケットに適用するアクションを記載したフローエントリを取得し、アクションをＩＰパケットに適用するフラグメントパケット処理機能１０３と、先頭のＩＰパケットを受信時に、当該エントリをフラグメントパケットＩＤテーブルに追加し、最後尾のパケットの受信時に、当該エントリをフラグメントパケットＩＤテーブルから削除するフラグメントパケットＩＤテーブル更新機能１０７と、を備える。【選択図】図１
2015070434.tif 000002
【特許請求の範囲】
【請求項１】
フラグメントされたＩＰ（Internet Protocol）パケットを処理可能なＯｐｅｎＦｌｏｗスイッチであって、
フラグメントされたＩＰパケットとフラグメント元のＩＰパケットに適合するフローテーブルのエントリとの対応関係を管理するフラグメントパケットＩＤテーブルと、
ＩＰパケットがフラグメントされたか否かを示す情報を取得し、ＩＰパケットのヘッダ情報に基づいてパケットＩＤを生成し、前記フラグメントパケットＩＤテーブルを参照して、前記パケットＩＤを有するＩＰパケットに適用するアクションを記載したフローエントリを取得し、前記アクションをＩＰパケットに適用するフラグメントパケット処理機能と、
フラグメントされたＩＰパケットのうち、先頭のＩＰパケットを受信した時に、当該エントリを前記フラグメントパケットＩＤテーブルに追加する一方、フラグメントされたＩＰパケットのうち、最後尾のパケットを受信した時に、当該エントリを前記フラグメントパケットＩＤテーブルから削除するフラグメントパケットＩＤテーブル更新機能と、を備えることを特徴とするＯｐｅｎＦｌｏｗスイッチ。
【請求項２】
前記フラグメントパケット処理機能では、ＩＰパケットヘッダにおけるｆｌａｇフィールド中のＭＦ（More Fragment）ビットの値に基づいて、ＩＰパケットがフラグメントされたか否かを示す情報を取得することを特徴とする請求項１に記載のＯｐｅｎＦｌｏｗスイッチ。
【請求項３】
前記フラグメントパケット処理機能では、ＩＰパケットの受信インタフェース、送信元イーサネット（登録商標）アドレス、宛先イーサネット（登録商標）アドレス、イーサフレーム種別、ＶＬＡＮ  ＩＤ、ＶＬＡＮ優先度コード、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル、ＤＳＣＰ値、及びＩＰパケット識別子に基づいて、パケットＩＤの生成を行なうことを特徴とする請求項１または請求項２に記載のＯｐｅｎＦｌｏｗスイッチ。
【請求項４】
前記フラグメントパケットＩＤテーブルは、フラグメント元のＩＰパケット毎に一意な値を格納するパケットＩＤフィールドと、フラグメント元のＩＰパケットに適合するフローテーブルのエントリに対するポインタを格納する参照先エントリフィールドと、を有することを特徴とする請求項１から請求項３のいずれかに記載のＯｐｅｎＦｌｏｗスイッチ。
【請求項５】
前記フラグメントパケットＩＤテーブル更新機能では、ＩＰパケットのＭＦビットの値および前記フラグメントパケットＩＤテーブルの前記ＩＰパケットに対するエントリの有無に基づいて、前記フラグメントパケットＩＤテーブルのエントリを更新することを特徴とする請求項１から請求項４のいずれかに記載のＯｐｅｎＦｌｏｗスイッチ。
【請求項６】
フラグメントされたＩＰ（Internet Protocol）パケットを処理可能なＯｐｅｎＦｌｏｗスイッチの動作を制御するプログラムであって、
フラグメントされたＩＰパケットとフラグメント元のＩＰパケットに適合するフローテーブルのエントリとの対応関係をフラグメントパケットＩＤテーブルで管理する処理と、
ＩＰパケットがフラグメントされたか否かを示す情報を取得する処理と、
ＩＰパケットのヘッダ情報に基づいてパケットＩＤを生成する処理と、
前記フラグメントパケットＩＤテーブルを参照して、前記パケットＩＤを有するＩＰパケットに適用するアクションを記載したフローエントリを取得し、前記アクションをＩＰパケットに適用する処理と、
フラグメントされたＩＰパケットのうち、先頭のＩＰパケットを受信した時に、当該エントリを前記フラグメントパケットＩＤテーブルに追加する一方、フラグメントされたＩＰパケットのうち、最後尾のパケットを受信した時に、当該エントリを前記フラグメントパケットＩＤテーブルから削除する処理と、の一連の処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラグメントされたすべてのＩＰ（Internet Protocol）パケットに対して、フラグメント元のＩＰパケットが一致するフローエントリのアクションを適用するＯｐｅｎＦｌｏｗスイッチおよびプログラムに関する。
【背景技術】
【０００２】
近年、通信制御をフロー単位で行なうことにより、より粒度の細かいサービス品質制御を可能とするＯｐｅｎＦｌｏｗの技術が提案されている（非特許文献１）。フローとは、レイヤ１からレイヤ４までの情報で識別され、アプリケーション毎の一連の通信のまとまりである。ＯｐｅｎＦｌｏｗは、データプレーン処理を行なうＯｐｅｎＦｌｏｗスイッチと、制御プレーン処理を行なうＯｐｅｎＦｌｏｗコントローラの間で、フロー単位の制御情報のやり取りを行なうためのプロトコルである。ＯｐｅｎＦｌｏｗを適用することにより、ユーザやアプリケーションに応じたＱｏＳ制御や経路制御が可能となる。
【０００３】
ＯｐｅｎＦｌｏｗスイッチは、ＯｐｅｎＦｌｏｗコントローラより指示されたパケット処理ルールをフローテーブルに格納する。フローテーブルは、当該エントリに一致するパケットの条件を記載するマッチフィールド、当該エントリに一致したパケットに対する処理内容を記載するアクションフィールド、当該エントリが処理したパケットに関する統計情報を記載する統計情報フィールドから構成される。
【０００４】
図５は、ＯｐｅｎＦｌｏｗの概略を示す図である。図５に示すように、ＯｐｅｎＦｌｏｗスイッチは、パケットを受信すると、フローテーブル内の該当エントリに記載されたアクションに従い、パケット転送処理を行なう。ＯｐｅｎＦｌｏｗでは、パケット単位でフローテーブルを参照するため、フラグメントされたＩＰパケットに対しては、正しい処理を行なうことができない。具体的には、フローエントリのマッチ条件としてＴＣＰやＵＤＰのポート番号が含まれていた場合、フラグメント後の先頭パケット以外は本来マッチするべきエントリにマッチしないという状況に陥ってしまう。
【０００５】
図６は、ＩＰパケットのフラグメント状態を示す図である。図６の上段にフラグメント元のＩＰパケットを示している。このＩＰパケットは、左側から「ＩＰヘッダ」、「ＴＣＰ／ＵＤＰヘッダ」、「ペイロード」を有している。このＩＰパケットにフラグメント処理を施した例が図６の下段である。下段の左側が先頭パケットであり、フラグメント元のＩＰパケットと同様に、「ＴＣＰ／ＵＤＰヘッダ」を有している。しかしながら、下段の右側は、先頭パケットではなく、「ＴＣＰ／ＵＤＰヘッダ」を有していない。
【０００６】
非特許文献１に示すＯｐｅｎＦｌｏｗのプロトコル仕様においては、ＩＰパケットのフラグメントに対する動作モードとして、次表のように、ＮＯＲＭＡＬ、ＤＲＯＰ、ＲＥＡＳＭの３つが規定されている。
【０００７】
【表１】
2015070434.tif 000003
【０００８】
ＮＯＲＭＡＬモードの場合、フラグメントされたパケットも非フラグメントパケットのように扱われる。このため、フラグメントの先頭パケット（レイヤ４ヘッダを含む）とそれ以降のフラグメントパケット（レイヤ４ヘッダを含まない）に一致するフローエントリが同じになるとは限らず、先頭パケットより後のパケットに対しては正しく処理をすることができない。ＤＲＯＰモードの場合、フラグメントされたパケットは転送処理が行なわれない。従って、ＮＯＲＭＡＬ、ＤＲＯＰいずれのモードもフラグメントされたＩＰパケットを正しく処理することができない。
【０００９】
一方、ＲＥＡＳＭモードの場合、フラグメントされたパケットはＯｐｅｎＦｌｏｗスイッチで一度再構築されてから、フローエントリの処理が適用される。そのため、フラグメントされたパケットであっても、マッチ条件にレイヤ４情報を含むフローエントリに一致し、正しく処理される。
【００１０】
また、非特許文献２によれば、送信元でＩＰフラグメントが発生しないよう、ＩＰヘッダのｆｌａｇフィールドにおいてＤＦ（Don't Fragment）ビットを有効化することも可能である。本技術を使えば、そもそもフラグメントが発生しないため、ＯｐｅｎＦｌｏｗにおけるフラグメント処理の課題を回避することが可能である。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ１．３．２、Ｏｐｅｎ  Ｎｅｔｗｏｒｋｉｎｇ  Ｆｏｕｎｄａｔｉｏｎ、２０１３年４月
【非特許文献２】ＲＦＣ７９１、“Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ”、１９８１年９月
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、非特許文献１のＲＥＡＳＭモードにおけるフラグメントされたＩＰパケットを再構築する処理は、上記の表に記載されているように、全フラグメントの到着を待つためのバッファリング処理や、再構築時のデータ加工処理を伴うため、ＯｐｅｎＦｌｏｗスイッチの転送処理性能を低下させることになる。
【００１３】
また、非特許文献２のＤＦビットの利用は、送信元が宛先までの最小ＭＴＵ（Maximum Transmission Unit）をあらかじめ知っておき、その値に収まるよう正しくＩＰパケット長を制御することが必要となる。ＭＴＵを測定する方法にはＩＣＭＰパケットを利用したＰａｔｈ  ＭＴＵ  Ｄｉｓｃｏｖｅｒｙがあるが、中継ルータがＩＣＭＰのＦＮ（Fragment Needed）パケットを正しく転送する必要があり、ＯｐｅｎＦｌｏｗネットワークにおいてはその転送処理が保証されない。
【００１４】
本発明は、このような事情に鑑みてなされたものであり、通常のＯｐｅｎＦｌｏｗのパケット処理の前に、必要に応じてフラグメントパケットに対する処理を行なうことによって、パケット転送処理の高速化とパケット処理遅延のばらつきの抑制を図り、ＩＰフラグメントが発生せざるを得ないネットワークに対してもＯｐｅｎＦｌｏｗ技術を適用することができるＯｐｅｎＦｌｏｗスイッチおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
（１）上記の目的を達成するために、本発明は、以下のような手段を講じた。すなわち、本発明のＯｐｅｎＦｌｏｗスイッチは、フラグメントされたＩＰ（Internet Protocol）パケットを処理可能なＯｐｅｎＦｌｏｗスイッチであって、フラグメントされたＩＰパケットとフラグメント元のＩＰパケットに適合するフローテーブルのエントリとの対応関係を管理するフラグメントパケットＩＤテーブルと、ＩＰパケットがフラグメントされたか否かを示す情報を取得し、ＩＰパケットのヘッダ情報に基づいてパケットＩＤを生成し、前記フラグメントパケットＩＤテーブルを参照して、前記パケットＩＤを有するＩＰパケットに適用するアクションを記載したフローエントリを取得し、前記アクションをＩＰパケットに適用するフラグメントパケット処理機能と、フラグメントされたＩＰパケットのうち、先頭のＩＰパケットを受信した時に、当該エントリを前記フラグメントパケットＩＤテーブルに追加する一方、フラグメントされたＩＰパケットのうち、最後尾のパケットを受信した時に、当該エントリを前記フラグメントパケットＩＤテーブルから削除するフラグメントパケットＩＤテーブル更新機能と、を備えることを特徴とする。
【００１６】
このように、ＩＰパケットがフラグメントされたか否かを示す情報を取得し、ＩＰパケットのヘッダ情報に基づいてパケットＩＤを生成し、フラグメントパケットＩＤテーブルを参照して、パケットＩＤを有するＩＰパケットに適用するアクションを記載したフローエントリを取得し、アクションをＩＰパケットに適用するので、ＩＰフラグメントが発生し、２つ目以降のＩＰパケットにＴＣＰ／ＵＤＰヘッダが含まれていなくても、フラグメント元のＩＰパケットに適合するフローテーブルのエントリを特定することができる。その結果、すべてのＩＰパケットにアクションを適用することが可能となる。その結果、パケット転送処理の高速化とパケット処理遅延のばらつきの抑制を図り、ＩＰフラグメントが発生せざるを得ないネットワークに対してもＯｐｅｎＦｌｏｗ技術を適用することが可能となる。
【００１７】
（２）また、本発明のＯｐｅｎＦｌｏｗスイッチにおいて、前記フラグメントパケット処理機能では、ＩＰパケットヘッダにおけるｆｌａｇフィールド中のＭＦ（More Fragment）ビットの値に基づいて、ＩＰパケットがフラグメントされたか否かを示す情報を取得することを特徴とする。
【００１８】
このように、ＩＰパケットヘッダにおけるｆｌａｇフィールド中のＭＦビットの値に基づいて、ＩＰパケットがフラグメントされたか否かを示す情報を取得するので、ＩＰフラグメントが発生しても削除されないデータに基づいた判断をすることができる。これにより、処理の簡略化と高速化を図ることが可能となる。
【００１９】
（３）また、本発明のＯｐｅｎＦｌｏｗスイッチにおいて、前記フラグメントパケット処理機能では、ＩＰパケットの受信インタフェース、送信元イーサネット（登録商標）アドレス、宛先イーサネット（登録商標）アドレス、イーサフレーム種別、ＶＬＡＮ  ＩＤ、ＶＬＡＮ優先度コード、送信元ＩＰアドレス、宛先ＩＰアドレス、ＤＳＣＰ値、及びＩＰパケット識別子に基づいて、パケットＩＤの生成を行なうことを特徴とする。
【００２０】
このように、ＩＰパケットの受信ポート、送受信イーサネット（登録商標）アドレス、イーサフレーム種別、ＶＬＡＮ  ＩＤ、ＶＬＡＮ優先度コード、送受信ＩＰアドレス、ＤＳＣＰ値、及びＩＰパケット識別子に基づいて、パケットＩＤの生成を行なうので、フラグメントされたＩＰパケットと、フラグメント元のパケットとの対応関係を一意に特定させることが可能となる。
【００２１】
（４）また、本発明のＯｐｅｎＦｌｏｗスイッチにおいて、前記フラグメントパケットＩＤテーブルは、フラグメント元のＩＰパケット毎に一意な値を格納するパケットＩＤフィールドと、フラグメント元のＩＰパケットに適合するフローテーブルのエントリに対するポインタを格納する参照先エントリフィールドと、を有することを特徴とする。
【００２２】
このように、フラグメントパケットＩＤテーブルは、フラグメント元のＩＰパケット毎に一意な値を格納するパケットＩＤフィールドと、フラグメント元のＩＰパケットに適合するフローテーブルのエントリに対するポインタを格納する参照先エントリフィールドと、を有するので、ＩＰフラグメントが発生し、２つ目以降のＩＰパケットにＴＣＰ／ＵＤＰヘッダが含まれていなくても、フラグメント元のＩＰパケットに適合するフローテーブルのエントリを特定することができる。
【００２３】
（５）また、本発明のＯｐｅｎＦｌｏｗスイッチにおいて、前記フラグメントパケットＩＤテーブル更新機能では、ＩＰパケットのＭＦビットの値および前記フラグメントパケットＩＤテーブルの前記ＩＰパケットに対するエントリの有無に基づいて、前記フラグメントパケットＩＤテーブルのエントリを更新することを特徴とする。
【００２４】
このように、ＩＰパケットのＭＦビットの値およびフラグメントパケットＩＤテーブルのＩＰパケットに対するエントリの有無に基づいて、フラグメントパケットＩＤテーブルのエントリを更新するので、ＩＰフラグメントが発生し、２つ目以降のＩＰパケットにＴＣＰ／ＵＤＰヘッダが含まれていなくても、フラグメント元のＩＰパケットに適合するフローテーブルのエントリを特定することができる。
【００２５】
（６）また、本発明のプログラムは、フラグメントされたＩＰ（Internet Protocol）パケットを処理可能なＯｐｅｎＦｌｏｗスイッチの動作を制御するプログラムであって、フラグメントされたＩＰパケットとフラグメント元のＩＰパケットに適合するフローテーブルのエントリとの対応関係をフラグメントパケットＩＤテーブルで管理する処理と、ＩＰパケットがフラグメントされたか否かを示す情報を取得する処理と、ＩＰパケットのヘッダ情報に基づいてパケットＩＤを生成する処理と、前記フラグメントパケットＩＤテーブルを参照して、前記パケットＩＤを有するＩＰパケットに適用するアクションを記載したフローエントリを取得し、前記アクションをＩＰパケットに適用する処理と、フラグメントされたＩＰパケットのうち、先頭のＩＰパケットを受信した時に、当該エントリを前記フラグメントパケットＩＤテーブルに追加する一方、フラグメントされたＩＰパケットのうち、最後尾のパケットを受信した時に、当該エントリを前記フラグメントパケットＩＤテーブルから削除する処理と、の一連の処理をコンピュータに実行させることを特徴とする。
【００２６】
このように、ＩＰパケットがフラグメントされたか否かを示す情報を取得し、ＩＰパケットのヘッダ情報に基づいてパケットＩＤを生成し、フラグメントパケットＩＤテーブルを参照して、パケットＩＤを有するＩＰパケットに適用するアクションを記載したフローエントリを取得し、アクションをＩＰパケットに適用するので、ＩＰフラグメントが発生し、２つ目以降のＩＰパケットにＴＣＰ／ＵＤＰヘッダが含まれていなくても、フラグメント元のＩＰパケットに適合するフローテーブルのエントリを特定することができる。その結果、すべてのＩＰパケットにアクションを適用することが可能となる。その結果、パケット転送処理の高速化とパケット処理遅延のばらつきの抑制を図り、ＩＰフラグメントが発生せざるを得ないネットワークに対してもＯｐｅｎＦｌｏｗ技術を適用することが可能となる。
【発明の効果】
【００２７】
本発明によれば、ＩＰフラグメントが発生し、２つ目以降のＩＰパケットにＴＣＰ／ＵＤＰヘッダが含まれていなくても、フラグメント元のＩＰパケットに適合するフローテーブルのエントリを特定することができる。その結果、すべてのＩＰパケットにアクションを適用することが可能となる。その結果、パケット転送処理の高速化とパケット処理遅延のばらつきの抑制を図り、ＩＰフラグメントが発生せざるを得ないネットワークに対してもＯｐｅｎＦｌｏｗ技術を適用することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本実施形態に係るＯｐｅｎＦｌｏｗスイッチの概略構成を示す図である。
【図２】本実施形態に係るＯｐｅｎＦｌｏｗスイッチのパケット受信時の動作を示すフローチャートである。
【図３】本発明のハードウェア構成の実施例を示す図である。
【図４】入力信号に対する出力信号の例を示す図である。
【図５】ＯｐｅｎＦｌｏｗの概略を示す図である。
【図６】ＩＰパケットのフラグメント状態を示す図である。
【発明を実施するための形態】
【００２９】
図１は、本実施形態に係るＯｐｅｎＦｌｏｗスイッチの概略構成を示す図である。本実施形態に係るＯｐｅｎＦｌｏｗスイッチは、従来のＯｐｅｎＦｌｏｗスイッチの機能構成、すなわち、パケット受信機能１０１、フローテーブル検索機能１０５、パケット送信機能１０９、フローテーブル７、ＯｐｅｎＦｌｏｗプロトコル処理機能１１に加え、フラグメントパケット処理機能１０３、フラグメントパケットＩＤテーブル更新機能１０７およびフラグメントパケットＩＤテーブル３を新たに備えている。
【００３０】
フラグメントパケット処理機能は１０３、パケットのＩＰヘッダ中のｆｌａｇフィールド内ＭＦ（More Fragment）ビットを読み、処理中のパケットがフラグメントされたパケットか否かを判定する。また、フラグメントされたパケットに対し適用すべきアクションを、フラグメントパケットＩＤテーブル３を参照して取得し、パケットに適用する機能を有する。
【００３１】
フラグメントパケットＩＤテーブル更新機能１０７は、先頭フラグメントパケットおよび最終フラグメントパケットの受信に伴い、フラグメントパケットＩＤテーブル３を更新する。
【００３２】
フラグメントパケットＩＤテーブル３は、パケットのＬ１〜Ｌ３情報、すなわち、受信インタフェース、送信元イーサネット（登録商標）アドレス、宛先イーサネット（登録商標）アドレス、イーサタイプ、ＶＬＡＮ  ＩＤ、ＶＬＡＮ優先度コード、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル、ＤＳＣＰ値、ＩＰヘッダの識別子、あるいはこれらから得られるハッシュ値をキーとするパケットＩＤフィールド５ａと、当該パケットに対してヒットすべきフローエントリへのポインタを保持する参照先エントリフィールド５ｂを保持し、その対応関係を管理する。ここで、パケットＩＤは、フラグメント前のパケット毎に一意に付与される。
【００３３】
図２は、本実施形態に係るＯｐｅｎＦｌｏｗスイッチのパケット受信時の動作を示すフローチャートである。パケットを受信すると（ステップＳ１）、パケットのＬ１〜Ｌ３情報を取得し、パケットＩＤを生成する（ステップＳ２）。そして、当該パケットＩＤをキーとして、フラグメントパケットＩＤテーブルを検索する（ステップＳ４）。一方、パケットを受信した後（ステップＳ１）、パケットＩＰヘッダ中のフラグフィールドのＭＦビットを取得する（ステップＳ３）。そして、条件に応じて分岐する。
【００３４】
（Ａ）ＭＦ＝１（フラグメントが続く）かつ一致エントリが存在する場合、先頭パケットではなく、最後尾のパケットでもない中間のパケットであることを意味し、フラグメントパケットＩＤテーブルの当該エントリから参照先エントリを取得し（ステップＳ５）、参照先エントリのアクションをパケットに適用（ステップＳ６）、パケットを送信する（ステップＳ１５）。ここでは、アクションにＬ４フィールドの書き換え等が指定されていた場合には、それを無視して処理することができる。
【００３５】
（Ｂ）ＭＦ＝１（フラグメントが続く）かつ一致エントリが存在しない場合、先頭パケットであることを意味するので、フローテーブルの一致エントリを検索し取得したアクションをパケットに適用する（ステップＳ７、Ｓ８）。また、フラグメントパケットＩＤテーブルに、パケットＩＤフィールドには受信パケットから生成されたパケットＩＤを、参照先エントリフィールドにはフローテーブルの一致エントリへのポインタを設定した新規エントリを追加する（ステップＳ１３）。その後、パケットを送信する（ステップＳ１５）。
【００３６】
（Ｃ）ＭＦ＝０（フラグメントが続かない）かつ一致エントリが存在する場合、最後尾のパケットであることを意味し、フラグメントパケットＩＤテーブルの当該エントリから参照先エントリを取得し（ステップＳ９）、参照先エントリのアクションをパケットに適用する（ステップＳ１０）。そして、フラグメントパケットＩＤテーブルから当該エントリを削除する（ステップＳ１４）。その後、パケットを送信する（ステップＳ１５）。
【００３７】
（Ｄ）ＭＦ＝０（フラグメントが続かない）かつ一致エントリが存在しない場合、フラグメントがないことを意味し、フローテーブルの一致エントリを検索し取得したアクションをパケットに適用し（ステップＳ１１、ステップＳ１２）、パケットを送信する（ステップＳ１５）。
【００３８】
なお、ステップＳ１においてパケットを受信した際、ＭＦビットだけではなく、ＤＦ（Don't Fragment）ビットを取得することもできる。これにより、「ＤＦ＝１」である場合は、フラグメント禁止の指定がされていることから、フラグメントパケットＩＤテーブルのエントリ存在確認をすることなく、ステップＳ１から直接ステップＳ１１に遷移することが可能となる。これにより、より早く処理を行なうことが可能となる。
【００３９】
図３は、本発明のハードウェア構成の実施例を示す図である。本発明に係るフラグメントパケット処理機能は、ハードウェアとして実装可能である。図３に示すように、受信インタフェース情報と、受信フレーム中のヘッダの各フィールド情報に基づいて、ハッシュ計算を行ない、その結果をフラグメントパケットＩＤテーブルに書き込む。フラグメントＩＤパケットテーブルは、ＳＲＡＭ上の固定サイズテーブルとして構成することができる。そして、デコーダにおいて、受信フレーム中のＭＦビット（フレーム先頭から１６３ビット目、非ＶＬＡＮの場合）と、フラグメントパケットＩＤテーブルのエントリが存在するか否かのフラグと、に基づいて、条件分岐信号を出力することができる。なお、このハードウェア構成に限らず、ソフトウェアとしても構成することが可能である。
【００４０】
図４は、入力信号に対する出力信号の例を示す図である。入力信号は、先頭フラグメント、後続フラグメント、最終フラグメントが、一定の間隔に配置される。これに対して、従来の技術において、ＮＯＲＭＡＬモードの出力は、フラグメントパケットの処理に対応していないため、先頭フラグメントのみが出力され、それ以外は別アクションとなる。また、従来の技術において、フラグメントパケットの再構築を行なっている場合は、全フラグメントをバッファし、まとめて処理した後、バースト的に送出するため、時間軸の後の方でまとまった複数のフラグメントが出力される。これに対し、本発明を適用した場合は、入力パケットが即時処理されるため、パケット間隔に変化が生じない。このように、本発明を適用した場合は、出力されるフラグメントの数とタイミングは、従来の技術とは著しく異なっている。
【００４１】
以上説明したように、本実施形態によれば、フラグメントパケットを再構築しないという特徴により、従来の再構築する場合に必要であったフラグメント元パケット単位のバッファリングが不要となり、パケット処理遅延のばらつきを低減することができる。また、パケットを再構築する処理が不要となることにより、計算負荷を抑えることができる。
【符号の説明】
【００４２】
３  フラグメントパケットＩＤテーブル
５ａ  パケットＩＤフィールド
５ｂ  参照先エントリフィールド
７  フローテーブル
１１  ＯｐｅｎＦｌｏｗプロトコル処理機能
１０１  パケット受信機能
１０３  フラグメントパケット処理機能
１０５  フローテーブル検索機能
１０７  フラグメントパケットＩＤテーブル更新機能
１０９  パケット送信機能
【図１】
2015070434.tif 000004
【図２】
2015070434.tif 000005
【図３】
2015070434.tif 000006
【図４】
2015070434.tif 000007
【図５】
2015070434.tif 000008
【図６】
2015070434.tif 000009