(57)【要約】【課題】本発明は、パケットデータの順序性の保障が可能なパケット制御装置を提供する。【解決手段】パケット制御装置１は、分割パケットデータと非分割パケットデータとをこの順で入力処理し、分割パケットデータに特定の処理を行う場合の処理動作を制御するものであり、分割パケットデータが処理中であるか否かを検出する検出手段１６ａ―１と、処理中である場合に非分割パケットデータの出力を待機させ、処理されたパケットデータと非分割パケットデータとを入力順に出力する処理動作を制御する出力制御手段１６ｂ−１を含む。【選択図】図１
2010087975.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御するパケット制御装置であって、
前記分割パケットデータが処理中であるか否かを検出する検出手段と、
前記検出手段にて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理されたパケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御手段と、
を含むことを特徴とするパケット制御装置。
【請求項２】
請求項１に記載のパケット制御装置において、
前記非分割パケットデータを一時記憶する非分割パケットデータ一時記憶手段を前記出力制御手段に併設し、
前記出力制御手段は、
前記処理中である場合に、前記非分割パケットデータ一時記憶手段の前記非分割パケットデータの出力を停止制御する制御信号を前記非分割パケットデータ一時記憶手段に出力することを特徴とするパケット制御装置。
【請求項３】
請求項１に記載のパケット制御装置において、
前記特定の処理を行う複数の処理部を前記出力制御手段に併設し、
前記検出手段は、各々の前記処理部について前記処理中であるか否かをそれぞれ検出し、
前記出力制御手段は、
一の前記処理部にて前記分割パケットデータが処理中である場合に、前記他の処理部内に前記非分割パケットデータを滞留させる制御を行うことを特徴とするパケット制御装置。
【請求項４】
請求項１に記載のパケット制御装置において、
前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理を含み、
前記検出手段は、前記分割パケットデータが統合処理中であるか否かを検出し、
前記出力制御手段は、前記統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことを特徴とするパケット制御装置。
【請求項５】
請求項１に記載のパケット制御装置において、
前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理と、この統合された前記元データを再分割する再分割処理と、を含み、
前記検出手段は、前記分割パケットデータが統合処理中又は再分割処理中であるか否かを検出し、
前記出力制御手段は、前記統合処理中又は前記再分割処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことを特徴とするパケット制御装置。
【請求項６】
請求項４に記載のパケット制御装置において、
前記特定の処理は、複数の前記統合処理を含み、
前記検出手段は、各々の前記統合処理について統合処理中であるか否かをそれぞれ検出し、
前記出力制御手段は、いずれか一つの前記統合処理が前記統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことを特徴とするパケット制御装置。
【請求項７】
少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御するパケット制御方法であって、
前記分割パケットデータが処理中であるか否かを検出する検出ステップと、
前記検出ステップにて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御ステップと、
を含むことを特徴とするパケット制御方法。
【請求項８】
請求項７に記載のパケット制御方法において、
前記出力制御ステップでは、
前記非分割パケットデータを非分割パケットデータ一時記憶手段に一時記憶させ、前記処理中である場合に、前記非分割パケットデータ一時記憶手段の前記非分割パケットデータの出力を停止制御することを特徴とするパケット制御方法。
【請求項９】
請求項７に記載のパケット制御方法において、
前記検出ステップでは、前記特定の処理を行う複数の処理部について前記処理中であるか否かをそれぞれ検出し、
前記出力制御ステップでは、一の前記処理部にて前記分割パケットデータが処理中である場合に、前記他の処理部内に前記非分割パケットデータを滞留させる制御を行うことを特徴とするパケット制御方法。
【請求項１０】
請求項７に記載のパケット制御方法において、
前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理を含み、
前記出力制御ステップでは、統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことを特徴とするパケット制御方法。
【請求項１１】
請求項７に記載のパケット制御方法において、
前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理と、この統合された前記元データを再分割する再分割処理と、を含み、
前記出力制御ステップでは、統合処理中又は再分割処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことを特徴とするパケット制御方法。  
【請求項１２】
請求項１０に記載のパケット制御方法において、
前記特定の処理は、複数の前記統合処理を含み、
前記出力制御ステップでは、いずれか一つの前記統合処理が統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことを特徴とするパケット制御方法。
【請求項１３】
少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御するパケット制御装置が備えたコンピュータに諸機能を実現させることが可能なパケット制御プログラムであって、
前記分割パケットデータが処理中であるか否かを検出する検出機能と、
前記検出機能にて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御機能と、  
を前記コンピュータに実現させることを特徴とするパケット制御プログラム。
【請求項１４】
請求項１３に記載のパケット制御プログラムにおいて、
前記出力制御機能では、
前記非分割パケットデータを非分割パケットデータ一時記憶手段に一時記憶させ、前記処理中である場合に、前記非分割パケットデータ一時記憶手段の前記非分割パケットデータの出力を停止制御する機能を前記コンピュータに実現させることを特徴とするパケット制御プログラム。
【請求項１５】
請求項１３に記載のパケット制御プログラムにおいて、
前記検出機能では、
前記特定の処理を行う複数の処理部について前記処理中であるか否かをそれぞれ検出する機能を前記コンピュータに実現させ、
前記出力制御機能では、
一の前記処理部にて前記分割パケットデータが処理中である場合に、前記他の処理部内に前記非分割パケットデータを滞留させる制御を行う機能を前記コンピュータに実現させることを特徴とするパケット制御プログラム。
【請求項１６】
請求項１３に記載のパケット制御プログラムにおいて、
前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理を含み、
前記出力制御機能では、  
統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行う機能を前記コンピュータに実現させることを特徴とするパケット制御プログラム。
【請求項１７】
請求項１３に記載のパケット制御プログラムにおいて、
前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理と、この統合された前記元データを再分割する再分割処理と、を含み、
前記出力制御機能では、
統合処理中又は再分割処理中である場合に前記非分割パケットデータの出力を待機させる制御を行う機能を前記コンピュータに実現させることを特徴とするパケット制御プログラム。
【請求項１８】
請求項１６に記載のパケット制御プログラムにおいて、
前記特定の処理は、複数の前記統合処理を含み、  
前記出力制御機能では、
いずれか一つの前記統合処理が統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行う機能を前記コンピュータに実現させることを特徴とするパケット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット制御装置、パケット制御方法、及びパケット制御プログラムに関し、特にＩＰパケット制御に関する。
【背景技術】
【０００２】
ネットワーク例えばイーサネット（登録商標）などに通信接続されたホストコンピュータは、６４ｋｂｙｔｅまでのＩＰパケットデータを送信することが可能となっている。
ただし、物理ネットワークにおいては、フレーム最大転送単位（以下、ＭＴＵ）が決められている。ＭＴＵは、イーサネット毎に規定されている。
このため、ホストコンピュータは、ＩＰパケットデータを、設定されているＭＴＵサイズ以下を満足するパケットサイズとなるように複数に分割し、分割パケットデータとしてて送信する必要がある。
【０００３】
例えば、ホストコンピュータと、このホストコンピュータとイーサネットを介して通信可能に形成されたルータ装置とからなる通信システムを想定する。このような通信システムにおいて、ホストコンピュータがルータ装置に対して連続して送信した２つのＩＰパケットデータが、フラグメント有りの「分割パケットデータ（フラグメントパケット）」とフラグメント無しの「非分割パケットデータ（ＭＴＵ以下のパケット）」の順であるとする。
【０００４】
この場合、ルータ装置は、「分割パケットデータ」、「非分割パケットデータ」の順に受信する。ルータ装置は、最初に受信された複数の「分割パケットデータ」の最終パケット受信後にデフラグメント処理（統合処理）を行う。  
さらに、ルータ装置は、ＩＰパケットデータを再生成（統合処理）後に、送信先ネットワークのＭＴＵサイズに再分割処理して送信することになる。
【０００５】
このような、ＩＰパケットデータを受信しデフラグメント処理を行うルータ装置などに含まれるパケット制御装置の関連技術として、例えば以下に示す特許文献１、特許文献２、特許文献３などが挙げられる。
【０００６】
例えば、特許文献１の装置では、再構成処理部が、受信されたパケットが送信元のネットワークでフラグメント処理が施されたＩＰパケットであるかどうかを判断し、フラグメント処理されたＩＰパケットが揃うと、もとの１つのＩＰパケットデータに再構築するリアセンブル処理（デフラグメント処理又は統合処理）を行うこと（特許文献１の段落番号００３３、００３４など）、が開示されている。
【０００７】
同様に、特許文献２では、通信制御装置が、１つの元データが複数に分割された分割データにヘッダ情報が付加されたパケットを受信して、この情報に基づき分割前の元データを復元（デフラグメント処理又は統合処理）すること（特許文献２の段落番号００３５など）、が開示されている。    
【０００８】
また、特許文献３では、ヘッダ解析部が、受信したパケットが分割されたパケットであるか否かを判別し、分割されていない非分割パケットはデータ蓄積部へ送信されること（特許文献３の段落番号００２０など）、が開示されている。  
一方、分割パケットについては、通信処理回路が、最終断片パケット（分割パケット）までデータ蓄積部にて一時蓄積した後、データ蓄積部のメモリから読み出し、再組立（統合処理）されたデータグラムを出力すること（特許文献３の段落番号００２０、００２８など）、が開示されている。
【０００９】
具体的には、図８に示すように、特許文献３の装置２０００における通信処理回路２００１では、フレーム終端部２０１１にて受信されたパケットは、ヘッダ解析部２０１２に供給される。ヘッダ解析部２０１２はそのパケットが分割されたパケットであるか否かを判別する。分割されていない非分割パケットはヘッダ解析部２０１２からデータ蓄積部２０１７へ送信される。
一方、分割されたパケット、すなわち分割パケットである場合には、ヘッダ解析部２０１２は、複数の分割パケットのうちの何番目のパケットであるかを、ヘッダに含まれる断片継続フラグ及びフラグメントオフセットの情報から判定する。
断片継続フラグは、最終の分割パケット（断片パケット）の場合には０を示し、その他のパケットの場合には１を示す。また、フラグメントオフセットはそのパケットの断片データの先頭が、元のデータグラムのデータのどの部分に位置するのかを表す情報である。また、送信分割単位について狭い値の範囲に制限、例えば、データ部の長さで１４００バイトから１４８０バイトになるように装置で制限を設けることにより、フラグメントオフセットの値により断片番号すなわち「何番目のパケットか」が一義的に決まるようになる。
これにより、断片パケットの断片番号の受信順序が任意の並びであっても、再組立て処理が可能であり、ネットワークで発生し得るパケット順序逆転や重複に対応することが可能である。
【００１０】
データグラムの断片パケットが揃ったことを判断した後は、キュー管理部２０１９内の読出要求待ち行列に該当キューを格納し、キュー管理部２０１９から読出制御部２０１４へ読出要求信号とキュー番号を通知する。
それを受けた読出制御部２０１４は、１番目の断片パケットから順に、バッファメモリ２００３から読み出し、データ蓄積部２０１７に一時蓄積させる。２番目以降の断片パケットは、ネットワーク層のＩＰヘッダを削除してデータ蓄積部２０１７に一時蓄積していく。最終断片パケットまでデータ蓄積部１７に一時蓄積した後、データ蓄積部２０１７のメモリから読み出すと、再組立てされたデータグラムを出力することができる。
【特許文献１】特開２００５−０１２６９号公報
【特許文献２】特開２００６−０５０５０３号公報
【特許文献３】特開２００７−２７４０５６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、関連技術の装置でのＩＰパケット処理においては、次のような課題がある。
【００１２】
すなわち、ホストコンピュータが、分割パケットデータ、非分割パケットデータをこの順で連続送信した場合、ルータ装置において、後から受信した非分割パケットデータを分割パケットデータより先に送信してしまう、という課題があった。
【００１３】
具体的には、「非分割パケットデータ」は完結パケットであり受信後のデフラグメント処理が必要ないため、先に受信した「分割パケットデータ」がデフラグメント処理を行っている最中に、後から受信した「非分割パケットデータ」が先に受信した「分割パケットデータ」を追い越してルータ装置から送信されてしまう。
このため、順序が逆になったＩＰパケットデータを受信している他の宛先ホストコンピュータでは、データの順番制御が保障されず、正常にデータを識別できないという不都合があった。  
【００１４】
この点について、図８に示す特許文献３を用いて説明すると、分割パケットについては、通信処理回路２００１が、ヘッダ解析部２０１２、書込制御部２０１３、双方向バッッファ２０１６、バッファメモリ２００３、読出制御部２０１４、キュー管理部２０１９によって最終の分割パケットまでデータ蓄積部２０１７にて一時蓄積した後、データ蓄積部２０１７のメモリから読み出し、再組立（統合処理）されたデータグラムを出力する。
そして、特許文献３では、このような分割パケットの再組立（統合処理）を行っている最中に、ヘッダ解析部２０１２から非分割パケットがデータ蓄積部２０１７へ送信され、再組立（統合処理）されたデータグラムを出力する前に、非分割パケットが先に出力されてしまう、という課題があった。
【００１５】
このように、特許文献３では、各分割パケットについては、受信順序が任意の並びであっても、再組立て処理が可能であり、ネットワークで発生し得るパケット順序逆転や重複に対応することが可能であるが、分割パケットと非分割パケットとの間でのパケット順序逆転などについては何ら考慮されていなかった。
【００１６】
本発明の目的は、上述の関連技術の課題を解決することにあり、分割パケットデータ、非分割パケットデータをこの順で連続受信した場合でも、パケットデータの順序逆転を防止し得、パケットデータの順序性の保障が可能なパケット制御装置、パケット制御方法、及びパケット制御プログラムを提供することにある。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、本発明のパケット制御装置は、少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御するパケット制御装置であって、前記分割パケットデータが処理中であるか否かを検出する検出手段と、前記検出手段にて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御手段と、を含むことを特徴としている。
【００１８】
本発明のパケット制御方法は、少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御するパケット制御方法であって、前記分割パケットデータが処理中であるか否かを検出する検出ステップと、前記検出ステップにて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御ステップと、を含むことを特徴としている。
【００１９】
本発明のパケット制御プログラムは、少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御するパケット制御装置が備えたコンピュータに諸機能を実現させることが可能なパケット制御プログラムであって、前記分割パケットデータが処理中であるか否かを検出する検出機能と、前記検出機能にて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御機能と、を前記コンピュータに実現させることを特徴としている。
【発明の効果】
【００２０】
本発明によれば、非分割パケットデータの出力制御を行う事で、先に入力した分割パケットデータの処理中に後から入力した非分割パケットデータが追い越すことなく、入力した順序に従って出力でき、パケットデータの順序性を保障することができるという、関連技術にない優れたパケット制御装置、パケット制御方法、及びパケット制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２１】
〔パケット制御装置の基本的構成〕
先ず、パケット制御装置の基本的構成について説明する。本発明のパケット制御装置（例えば図１に示す符号１など）は、少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御するものである。
【００２２】
このパケット制御装置は、前記分割パケットデータが処理中であるか否かを検出する検出手段（例えば図１に示す符号１６ａ―１など）と、前記検出手段にて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御手段（例えば図１に示す符号１６ｂ―１など）と、を含む構成としている。
【００２３】
このような構成のパケット制御装置では、非分割パケットデータの出力制御を行う事で、先に入力した分割パケットデータの処理中に後から入力した非分割パケットデータが追い越すことなく、入力した順序に従って出力でき、パケットデータの順序性を保障することができる。
【００２４】
例えば、２つのイーサネットを中継するルータ機能部において、ホストコンピュータから連続して受信したＩＰパケットデータをデフラグメント処理の有無によらず、ルータ機能部が受信した順番で送信先イーサネットに送信可能とする。
【００２５】
本発明においては、ルータ機能部内で先に受信されたＩＰパケットデータがデフラグメント処理を行っているか否かを検出し、また後発で受信されたフラグメント無しパケットデータを格納する専用バッファを用意する事により、デフラグメント中のフラグメント無しパケットの送信を管理し、データの順番制御を保障する。  
【００２６】
以下、このような本発明の「パケット制御装置」のさらに具体的な実施の形態の一例について、図面を参照して具体的に説明する。
【００２７】
〔第１の実施の形態〕
（パケット制御装置の全体構成）
先ず、本実施の形態のパケット制御装置の具体的構成について、全体構成から説明し、続いて各部の詳細構成について説明することとする。図１は、本発明における第１実施の形態のパケット制御装置の全体の概略構成の一例を示すブロック図である。
図１に、本発明のＩＰパケット処理部の構成図を示す。
【００２８】
図１に示すように、本実施の形態のパケット制御装置１は、プログラム制御により動作するものであり、受信検出部１２と、ＦＩＤ検出機能部１４と、Ｎ個のデフラグメント処理部（１）１６＜１６−１＞〜デフラグメント処理部（Ｎ）１６＜１６−Ｎ＞と、フラグメント処理部１８と、送信処理部１９と、パケットバッファ２０（非分割パケットデータ一時記憶手段）と、を含んで構成される。
【００２９】
また、パケット制御装置１の１つのデフラグメント処理部（１）１６−１には、デフラグメント処理（統合処理）が実行されているか否かを検出する検出部１６ａ―１と、この検出部１６ａ―１にてデフラグメント処理が実行されていると検出された場合に、制御信号をパケットバッファ２０に出力することでパケットバッファ２０内の非分割パケットデータが送信処理部１９に出力するのを停止制御する出力制御部１６ｂ―１とを備えている。
【００３０】
デフラグメント処理部は、Ｎ個構成される。
このため、他のデフラグメント処理部（Ｎ）１６−Ｎについても、前記同様にそれぞれ、検出部１６ａ―Ｎと、出力制御部１６ｂ―Ｎとが構成されている。
【００３１】
また、フラグメント処理部１８には、フラグメント処理（再分割処理）が実行されているか否かを検出する検出部１８ａと、この検出部１８ａにてフラグメント処理が実行されていると検出された場合に、制御信号をパケットバッファ２０に出力することでパケットバッファ２０内の非分割パケットデータが送信処理部１９に出力するのを停止制御する出力制御部１８ｂとを備えている。
【００３２】
ホストから送信されたＩＰパケットデータをイーサネットを経由して受信した受信検出部１２は、パケットデータのフラグメント有無を検出し「フラグメント有り」のＩＰパケットデータはＦＩＤ検出機能部１４へ、「フラグメント無し」のＩＰパケットデータはパケットバッファ２０に転送する。
【００３３】
ＦＩＤ検出機能部１４では、ＩＰパケットデータ内のフラグメントＩＤ（以下、ＦＩＤ）の確認を行う。
ＦＩＤ検出機能部１４は、ＩＰパケットデータのＦＩＤが新規の場合、未使用のデフラグメント処理部を選択しＩＰパケットデータを転送する。
ＦＩＤ検出機能部１４は、ＦＩＤが２回目以降（継続中）の場合、前回のＩＰパケットデータを格納したデフラグメント処理部を選択してデータを転送する。
【００３４】
デフラグメント処理部（１）１６−１〜（Ｎ）１６−Ｎは、格納されたＩＰパケットデータのフラグメントオフセット情報から、フラグメントされたＩＰパケットデータが全て受信された事を確認し、デフラグメント処理を行う。
検出部１６ａ―１、・・・、検出部１６ａ―Ｎは、デフラグメント処理（統合処理）が実行されているか否かを検出する。
出力制御部１６ｂ―１、・・・、出力制御部１６ｂ―Ｎは、検出部１６ａ―１、・・・、検出部１６ａ―Ｎにてそれぞれデフラグメント処理が実行されていると検出された場合に、各制御信号をパケットバッファ２０に各々出力することでパケットバッファ２０内の非分割パケットデータが送信処理部１９に出力するのを停止制御する。
【００３５】
フラグメント処理部１８では、デフラグメント処理部（１）１６−１〜（Ｎ）１６−Ｎで統合されたＩＰパケットデータを送信側イーサネットのＭＴＵサイズに従ったパケットに分割し、送信処理部１９に転送している。  
検出部１８ａは、フラグメント処理（再分割処理）が実行されているか否かを検出する。
出力制御部１８ｂは、この検出部１８ａにてフラグメント処理が実行されていると検出された場合に、制御信号をパケットバッファ２０に出力することでパケットバッファ２０内の非分割パケットデータが送信処理部１９に出力するのを停止制御する。
【００３６】
受信検出部１２で「フラグメント無し」と判断されたＩＰパケットデータは、パケットバッファ２０に格納される。
【００３７】
先行して受信されたフラグメントパケットがデフラグ処理を行っている場合、各処理部からパケットバッファ２０に対して先に受信したＩＰパケットデータが、デフラグ処理中である事を制御信号を用いて通知する事により、デフラグ中のＩＰパケットデータが送信処理部１９に進むまでパケットバッファ２０で待たせる。
【００３８】
パケット制御装置１は、プログラム制御により動作するものであり、ネットワーク関連の通信機能を有していれば、デスクトップ、ラップトップコンピュータ、その他無線・有線通信機能を有する情報機器、情報家電機器（テレビ・携帯音楽プレーヤ・ゲーム機）、またはこれに類するコンピュータなどいかなるコンピュータでもよく、移動式・固定式を問わない。
【００３９】
パケット制御装置１のハードウエア構成は、種々の情報等を表示するための表示部（スクリーン）、この表示部の表示画面上（の各種入力欄等）にデータを操作入力するための操作入力部（例えばキーボード・マウス・各種ボタン・表示操作部＜画面上のボタン＞・タッチパネル等）、各種信号・データを送受信するための送受信部ないしは通信部（モデムなど）、各種プログラム・各種データを記憶しておく記憶部（例えばメモリ、ハードディスク等）、これらの制御を司る制御部（例えばＣＰＵ、ＭＰＵ、ＤＳＰ等）などを有することができる。    
【００４０】
ここで、本実施の形態の検出部１６ａ―１、・・・、検出部１６ａ―Ｎ、検出部１８ａにより、本発明にいう「検出手段」を構成することができる。また、本実施の形態の出力制御部１６ｂ―１、・・・、出力制御部１６ｂ―Ｎ、出力制御部１８ｂにより、本発明にいう「出力制御手段」を構成することができる。さらに、本実施の形態のパケットバッファ２０により、本発明にいう「非分割パケットデータ一時記憶手段」を構成することができる。  
さらにまた、本実施の形態のデフラグメント処理部（１）１６−１、・・・、デフラグメント処理部（Ｎ）１６−Ｎ、フラグメント処理部１８により、本発明にいう「処理部」を構成することもできる。
【００４１】
ここで、前記「検出手段」は、パケット制御装置が、少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う処理動作を制御するに際し、前記分割パケットデータが前記処理中であるか否かを検出することができる。
また、前記「出力制御手段」は、前記検出手段にて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御することができる。
【００４２】
さらに、前記「非分割パケットデータ一時記憶手段」は、前記非分割パケットデータを一時記憶することができる。また、前記「非分割パケットデータ一時記憶手段」は、出力制御手段に併設することもできる。この場合、前記出力制御手段は、前記処理中である場合に、前記非分割パケットデータ一時記憶手段の前記非分割パケットデータの出力を停止制御する制御信号を出力することができる。
【００４３】
また、特定の処理を行う複数の処理部を有する場合、前記検出手段は、各々の前記処理部について前記処理中であるか否かをそれぞれ検出することができる。この場合、前記出力制御手段は、一の前記処理部にて前記分割パケットデータが処理中である場合に、前記他の処理部内に前記非分割パケットデータを滞留させる制御を行うことができる。なお、複数の処理部は出力制御手段に併設することもできる。
【００４４】
さらに、前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理を含むことができる。この場合、前記検出手段は、前記分割パケットデータが統合処理中であるか否かを検出することができる。また、前記出力制御手段は、前記統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことができる。
【００４５】
また、前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理と、この統合された前記元データを再分割する再分割処理と、を含むことができる。この場合、前記検出手段は、前記分割パケットデータが統合処理中及び／又は再分割処理中であるか否かを検出することができる。また、前記出力制御手段は、前記統合処理中又は前記再分割処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことができる。
【００４６】
さらに、前記特定の処理は、複数の前記統合処理を含むことができる。この場合、前記検出手段は、各々の前記統合処理について前記統合処理中であるか否かをそれぞれ検出することができる。また、前記出力制御手段は、いずれか一つの前記統合処理が前記統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことができる。
【００４７】
上述のような構成からなるパケット制御装置１は、概略つぎのように動作する。
先ず、受信検出部１２にてフラグメント有りの分割パケットデータが検出された場合には、分割パケットデータはＦＩＤ検出機能部１４に入力される。
【００４８】
次に、ＦＩＤ検出機能部１４は、分割パケットデータ内のフラグメントＩＤ（ＦＩＤ）の確認を行い、ＦＩＤが新規の場合、未使用のデフラグメント処理部１６に向けて分割パケットデータの転送処理を行い、ＦＩＤが２回目以降（継続中）の場合、前回の分割パケットデータを格納したデフラグメント処理部１６に向けて分割パケットデータの転送処理を行う。
【００４９】
続いて、デフラグメント処理部１６は、格納された分割パケットデータのフラグメントオフセット情報から、各々フラグメントされた各分割パケットデータが全て受信され、格納されたこと確認した後、デフラグメント処理（統合処理）を行い、統合パケットデータを生成する。
【００５０】
フラグメント処理部１８では、デフラグメント処理部１６で統合された統合パケットデータを送信側イーサネットのＭＴＵサイズに従ったパケットに再分割する再分割処理を行い、複数の各再分割パケットデータを各々生成し、それぞれ送信処理部１９に転送する。
【００５１】
一方、受信検出部１２にて「フラグメント無し」と判断された非分割パケットデータは、パケットバッファ２０に一時格納される。
この際、デフラグメント処理部１６が分割パケットデータに対してデフラグメント処理を実行していることを検出部１６ａが検出した場合には、出力制御部１６ｂが、制御信号をパケットバッファ２０に出力することでパケットバッファ２０内の非分割パケットデータが送信処理部１９に出力するのを停止制御する。
【００５２】
また、フラグメント処理部１８が分割パケットデータを統合した統合パケットデータに対してフラグメント処理（再分割処理）を実行していることを検出部１８ａが検出した場合には、出力制御部１８ｂが、制御信号をパケットバッファ２０に出力することでパケットバッファ２０内の非分割パケットデータが送信処理部１９に出力するのを停止制御する。
【００５３】
これにより、ホストからのフラグメント有りのパケットと、フラグメント無しのパケットが連続して受信された場合、ホストの送信制御（パケット間のギャップ、等）に依存せず、ルータ機能部のパケット制御機能によって先に受信したパケットの送信順番を保障する事が容易に可能となる。
【００５４】
（処理手順について）
（全体処理）
次に、上述のような構成を有するパケット制御装置における各部の処理は、方法としても実現可能であり、パケット制御方法としての各種の処理手順について、図２及び図３を参照しつつ説明する。図２は、図１の通信制御装置における処理手順の一例を示すフローチャートである。
【００５５】
本実施の形態に係るパケット制御方法は、少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御する処理をパケット制御装置が備えたコンピュータが行うものを対象とするものである。  
【００５６】
このパケット制御方法は、基本的構成として、パケット制御装置が備えたコンピュータが、前記分割パケットデータが処理中であるか否かを検出する検出ステップ（例えば図２に示すステップＳ１０７など）と、前記検出ステップにて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御ステップ（例えば図２に示すステップＳ１０８など）とを含むことができる。
【００５７】
さらに、このパケット制御方法は、前記出力制御ステップでは、前記非分割パケットデータを非分割パケットデータ一時記憶手段に一時記憶させ、前記処理中である場合に、前記非分割パケットデータ一時記憶手段の前記非分割パケットデータの出力を停止制御することができる。
【００５８】
また、このパケット制御方法は、前記検出ステップでは、前記特定の処理を行う複数の処理部について前記処理中であるか否かをそれぞれ検出することができる。この場合、前記出力制御ステップでは、一の前記処理部にて前記分割パケットデータが処理中である場合に、前記他の処理部内に前記非分割パケットデータを滞留させる制御を行うことができる。
【００５９】
さらに、このパケット制御方法は、前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理を含むことができる。この場合、前記出力制御ステップでは、統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことができる。
【００６０】
また、このパケット制御方法は、前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理と、この統合された前記元データを再分割する再分割処理とを含むことができる。この場合、前記出力制御ステップでは、統合処理中及び／又は再分割処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことができる。
【００６１】
さらに、このパケット制御方法は、前記特定の処理は、複数の前記統合処理を含むことができる。この場合、前記出力制御ステップでは、いずれか一つの前記統合処理が統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行うことができる。
【００６２】
以下、これを詳述する。
【００６３】
（各処理動作の説明）
図３に本実施の形態のパケット処理タイミングを示す。
【００６４】
イーサネットに接続されたホストは、６４ｋｂｙｔｅまでのＩＰパケットデータを送信する事が可能となっている。
但し、フレーム最大単位（以下、ＭＴＵ）はイーサネット毎に規定されており、ホストは、ＭＴＵサイズ以下を満足するＩＰパケットデータに分割して送信しなくてはならない。
【００６５】
例えば、図３のパケットＡは、イーサネットのＭＴＵサイズ以上のデータを示し、パケットBは、ＭＴＵ以下を示している。
ホストがこのサイズの異なる２種類のパケットを連続して送信する場合、パケットAは、３つのＩＰパケットデータ（パケットＡ（１）、パケットA（２）、パケットA（３））に分割されて送信され、その後にパケットBが送信される事になる。
【００６６】
ルータ機能部は、２つのイーサネットを中継する機能を持っているが、受信側と送信側でＭＴＵサイズが異なる場合、受信したフラグメントデータを統合（デフラグメント）し、再度送信側のＭＴＵサイズでパケットデータをフラグメント処理する必要がある。
【００６７】
図１に本発明のＩＰパケット処理機能部の構成を、図２に本発明のフローチャートを示す。  
【００６８】
先ず、図３で示したパケットA（１）＜第１の分割パケットデータ＞は、受信検出部１２で受信される（ステップＳ１０１）＜パケット受信（パケット入力）ステップないしはパケット受信機能＞。    
【００６９】
受信検出部１２は、パケットＡ（１）受信時にＩＰパケットヘッダの「Ｆｌａｇフィールド」に示される「Mビット情報」によりフラグメントの有無を判定する（ステップＳ１０２）。＜フラグメント有無判定ステップないしはフラグメント有無判定機能＞
【００７０】
ステップＳ１０２にてフラグメント有りと判定された「パケットA（1）」は、ＦＩＤ検出機能部１４にて、ＦＩＤ（フラグメント識別情報）の確認が行われる（ステップＳ１０３）＜フラグメント識別情報確認ステップないしはフラグメント識別情報確認機能＞。
ＦＩＤ検出機能部１４は、ＦＩＤ（フラグメント識別情報）によってアサインされた例えばデフラグメント処理部（１）１６＜１６−１＞に「パケットA（1）」を転送し、そのデフラグメント処理部（１）１６＜１６−１＞に「パケットA（1）」を格納する。
【００７１】
デフラグメント処理部（１）１６＜１６−１＞は、格納した「パケットA（１）」がフラグメントパケットを継続中である事を「Mビット情報」から判断し、継続パケットの受信待ちとなる。
【００７２】
すなわち、すべての分割パケットデータが受信され、デフラグメント処理部（１）１６＜１６−１＞に格納されたか否かの判定処理を行う（ステップＳ１０４）＜分割パケット受信完了判定ステップないしは分割パケット受信完了判定機能＞。
【００７３】
このステップＳ１０４において、全ての分割パケットデータが受信完了していないものと判定された場合には、ステップＳ１０１に戻り、以上の処理を繰り返す。
このようにして、受信検出部１２とＦＩＤ検出機能部１４は、連続して「パケットA（２）」「パケットA（３）」を受信し、ＦＩＤ検出機能部１４は、「パケットA（１）」と同じ（１）１６＜１６−１＞に「パケットA（２）」「パケットA（３）」を格納する。
【００７４】
一方、このステップＳ１０４において、全ての分割パケットデータが受信完了したものと判定された場合には、ステップＳ１０５に進む。
【００７５】
デフラグメント処理部（１）１６＜１６−１＞は、「Mビット情報」から、「パケットＡ（３）」が最終ＩＰパケットデータである事を認識し、ＩＰパケットデータ（各分割パケットデータ）のデフラグメント処理を行い「パケットA」を再生成する処理（統合処理）を行う（ステップＳ１０５）＜デフラグメント処理（統合処理）ステップないしはデフラグメント処理（統合処理）機能＞。  
【００７６】
一方、ホストコンピュータから「パケットA（３）」に続いて送信された「パケットB」（非分割パケットデータ）は、受信検出部１２で「フラグメント無し」と判断される。
【００７７】
「パケットB」（非分割パケットデータ）は、受信検出部１２よりパケットバッファ２０に転送される。
この際、先行して受信した「パケットＡ（３）」が最終ＩＰパケットデータと判断され、デフラグメント処理に移行するステータスとなっている。このため、後発のパケットＢがパケットＡを追い越して送信されないよう、デフラグメント処理部（１）１６−１〜（Ｎ）１６−Ｎよりパケットバッファ２０の送信停止を制御する。
【００７８】
すなわち、デフラグメント処理部（１）１６＜１６−１＞が、デフラグメント処理中であるか否かを検出する（ステップＳ１０７）＜デフラグメント処理検出ステップないしはデフラグメント処理検出機能＞。
【００７９】
そして、ステップＳ１０７にて、デフラグメント処理中であると判定された場合には、「パケットB」（非分割パケットデータ）が送信処理部１９に送信されないように、送信待機処理を行い（ステップＳ１０８）＜デフラグメント処理中出力制御ステップないしはデフラグメント処理中出力制御機能＞、ステップＳ１０７を繰り返す。
【００８０】
一方、ステップＳ１０７にて、デフラグメント処理中でないと判定された場合には、ＩＰパケットデータ（各分割パケットデータ）は、統合され、再分割され、送信処理部１９に送信されたものと判断し、「パケットB」（非分割パケットデータ）を送信処理部１９に送信する。
【００８１】
ここで、さらに、フラグメント処理部１８が、フラグメント処理中であるか否かを検出する＜フラグメント処理検出ステップないしはフラグメント処理検出機能＞ようにしてもよい。
この場合、フラグメント処理中であると判定された場合には、「パケットB」（非分割パケットデータ）が送信処理部１９に送信されないように、送信待機処理を行い＜フラグメント処理中出力制御ステップないしはフラグメント処理中出力制御機能＞、フラグメント処理検出ステップを繰り返す。
【００８２】
一方、フラグメント処理検出ステップにて、フラグメント処理中でないと判定された場合には、ＩＰパケットデータ（各分割パケットデータ）は、統合され、再分割され、送信処理部１９に送信されたものと判断し、「パケットB」（非分割パケットデータ）を送信処理部１９に送信する。
【００８３】
イーサネット通信においては、通信中のデータ誤り、データ破棄が許容されている。もしフラグメントされたＩＰパケットデータが途中で破棄されたばあい、デフラグメント処理部でのデフラグ処理は行われない事になる。
【００８４】
このため、本実施の形態においては、パケットＢ受信時に、デフラグメントパケットの全てが受信され、デフラグメント処理に移行している事でパケットBの送信を制御している。  
【００８５】
また、再生成されたパケットＡは、フラグメント処理部１８で送信側イーサネットのＭＴＵサイズに分割される（ステップＳ１０６）＜フラグメント処理（再分割処理）ステップないしはフラグメント処理（再分割処理）機能＞。このため、パケットＢは、パケットＡのフラグメント完了まで待つ必要があり、フラグメント処理部１８からもパケットバッファ２０の送信停止制御を行っている。
【００８６】
図３において、パケットＢの内部転送時間（Ｔ２）は、パケットＡの内部処理時間（Ｔ１）より短くなっているが、デフラグメント処理部、フラグメント処理部によるパケットBの送信制御（Ｔ３）により、パケットBは、パケットAの後に送信される（ステップＳ１０８）。
【００８７】
本制御により、ホストからのフラグメント有りのパケットと、フラグメント無しのパケットが連続して受信された場合、ホストの送信制御（パケット間のギャップ、等）に依存せず、ルータ機能部のパケット制御機能によって先に受信したパケットの送信順番を保障する事が容易に可能となる。  
【００８８】
ここで、以上のステップＳ１０７のデフラグメント処理検出ステップと、フラグメント処理検出ステップとにより、本発明にいう「検出ステップ」を構成できる。また、以上のステップＳ１０８のデフラグメント処理中出力制御ステップと、フラグメント処理中出力制御ステップとにより、本発明にいう「出力制御ステップ」を構成できる。  
【００８９】
以上のように本実施の形態によれば、非分割パケットデータの出力制御を行う事で、先に入力した分割パケットデータの処理中に後から入力した非分割パケットデータが追い越すことなく、入力した順序に従って出力でき、データの順序性を保障することができる。
【００９０】
すなわち、第一の効果は、フラグメント無しパケットの送信制御を行う事で、先に受信したＩＰパケットデータのデフラグメント処理中に後から受信したＩＰパケットデータが追い越すことなく、受信した順序に従って送信できる事である。これにより、データの順序性を保障する事が可能である。
【００９１】
第二の効果は、上記処理をルータ機能部で実現しているため、ホストの動作（デバイスの世代による差分、処理能力による差分）に依存せずに対応できる事である。
【００９２】
第三の効果は、デフラグメント処理のステータスで管理する事で、フラグメントされたＩＰパケットデータがイーサネット上の破棄によってデフラグメントが正常終了しない場合には、後から受信したＩＰパケットデータに対する停止制御がされない事である。
【００９３】
第四の効果は、本機能をハードウェアで構成しているため、容易に実現が可能な事である。  
【００９４】
ここで、本実施の形態による効果を、図５〜図７の比較例と対比して説明する。
【００９５】
図５に関連技術のＩＰパケット処理を行うパケット制御装置のブロック図を示す。図５のパケット制御装置１０００では、受信検出部１０１２で「フラグメント無し」と判断されたＩＰパケットデータ（非分割パケットデータ）は、デフラグメント処理が必要ないため、受信検出部１０１２から送信処理部１０１９に転送され、送信側イーサネットに出力される。
また、分割パケットデータについては、デフラグメント処理部１０１６−１〜１０１６Ｎのいずれかの処理部にてデフラグメント処理がなされ、さらにフラグメント処理部１０１８によりフラグメント処理がなされ送信処理部１０１９に送られる。
【００９６】
図６に関連技術のパケット制御装置におけるフローチャートを示す。前記実施の形態におけるステップＳ１０１〜ステップＳ１０６、ステップＳ１０９と同様にステップＳ１１０１〜ステップＳ１１０８を行う。
ただし、非分割パケットデータを待機させる処理がないため、非分割パケットデータは、分割パケットデータよりも後に受信したにもかかわらず、分割パケットデータよりも先に送信処理部１０１９に到達し、送信されてしまうという不都合がある。
【００９７】
図７に関連技術のパケット処理タイミング図を示す。デフラグメント処理の時、ホストコンピュータから「パケットA（３）」に続いて送信された「パケットB」は、受信検出部１０１２で「フラグメント無し」と判断され送信処理部１０１９に転送される。
先行して受信した「パケットＡ（３）」が最終ＩＰパケットデータと判断され、デフラグメント処理に時間が必要とした場合、後発のパケットＢがパケットＡを追い越して送信されてしまう、という不都合がある。
【００９８】
これに対して本実施の形態によれば、検出部によりデフラグメント処理中であるか否かを検出しつつ、出力制御部により非分割パケットデータをパケットバッファを用いて出力制御することで、先に入力した分割パケットデータの処理中に後から入力した非分割パケットデータが追い越すことなく、入力した順序に従って出力でき、データの順序性を保障することができる。
【００９９】
[その他の各種変形例]
また、本発明にかかる装置及び方法は、そのいくつかの特定の実施の形態に従って説明してきたが、本発明の主旨および範囲から逸脱することなく本発明の本文に記述した実施の形態に対して種々の変形が可能である。
【０１００】
例えば、パケットバッファを用意せず、全てのＩＰパケットデータを無条件でデフラグメント処理部に転送し、デフラグメント処理部間で「デフラグメント処理中」情報を共有し、デフラグメント処理の必要としないパケットをデフラグメント処理部内で滞留させ、送信管理を行う事で同様の制御を行う事が可能となる。
【０１０１】
具体的には、図４に示すように、パケット制御装置１００として、前記実施の形態と同様に、受信検出部１１２と、ＦＩＤ検出機能部１１４と、Ｎ個のデフラグメント処理部（１）１１６＜１１６−１＞〜デフラグメント処理部（Ｎ）１１６＜１１６−Ｎ＞と、フラグメント処理部１１８と、送信処理部１１９とを構成する。
【０１０２】
また、各デフラグメント処理部１１６、フラグメント処理部１１８には、前記実施の形態と同様に、検出部１１６ａ―１、・・・、検出部１１６ａ―Ｎ、検出部１１８ａ、出力制御部１１６ｂ―１、・・・、出力制御部１１６ｂ―Ｎ、出力制御部１１８ｂを構成することができる。
【０１０３】
そして、各デフラグメント処理部１１６間、あるいは各デフラグメント処理部１１６とフラグメント処理部１１８との間では、相互に情報の授受が可能になっている。このため、各検出部１１６ａ―１、・・・、検出部１１６ａ―Ｎ、検出部１１８ａの間、各出力制御部１１６ｂ―１、・・・、出力制御部１１６ｂ―Ｎ、出力制御部１１８ｂの間においても相互に情報の授受が可能になっている。
【０１０４】
この授受される情報としては、例えば、（各検出部１１６ａ―１、・・・、検出部１１６ａ―Ｎ、検出部１１８ａからの）現在処理中であるか否かに関する処理状況を示す検出情報、（各出力制御部１１６ｂ―１、・・・、出力制御部１１６ｂ―Ｎ、出力制御部１１８ｂからの）制御信号などが挙げられる。  
【０１０５】
ここで、各出力制御部１１６ｂ―１、・・・、出力制御部１１６ｂ―Ｎ、出力制御部１１８ｂにより、「出力制御手段」を構成することができる。
【０１０６】
これにより、前記出力制御手段は、一の前記処理部にて前記分割パケットデータが処理中である場合に、前記他の処理部内に前記非分割パケットデータを滞留させる制御を行うことができる。
例えば、一例として、デフラグメント処理部（１）１１６＜１１６−１＞には、複数の前記分割パケットデータが格納される。一方、デフラグメント処理部（２）１１６＜１１６−２＞には、非分割パケットデータが格納される。
【０１０７】
デフラグメント処理部（１）１１６＜１１６−１＞にてデフラグメント処理中（統合処理中）である場合には、デフラグメント処理部（２）１１６＜１１６−２＞には、非分割パケットデータが滞留し続ける。
【０１０８】
デフラグメント処理部（１）１１６＜１１６−１＞にてデフラグメント処理が終了すると、統合パケットデータがフラグメント処理部１１８に転送される。
【０１０９】
フラグメント処理部１１８にてフラグメント処理中（再分割処理中）である場合には、デフラグメント処理部（２）１１６＜１１６−２＞には、非分割パケットデータが滞留し続ける。
【０１１０】
フラグメント処理部１１８にてフラグメント処理が終了すると、複数の再分割パケットデータが送信処理部１１９に転送される。
【０１１１】
その後、デフラグメント処理部（２）１１６＜１１６−２＞は、非分割パケットデータをフラグメント処理部１１８に転送する。フラグメント処理部１１８では、処理の必要がないため、非分割パケットデータを送信処理部１１９に転送する。
【０１１２】
その他の構成およびその他のステップないしは機能並びにその作用効果については、前述した実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム化し、コンピュータに実行させてもよい。
【０１１３】
ここで、図１及び図４に示すブロック図における一部の各ブロックは、コンピュータが適宜なメモリに格納された各種プログラムを実行することにより、該プログラムにより機能化された状態を示すソフトウエアモジュール構成であってもよい。
【０１１４】
すなわち、物理的構成は例えば一又は複数のＣＰＵ（或いは一又は複数のＣＰＵと一又は複数のメモリ）等ではあるが、各部（回路・手段）によるソフトウエア構成は、プログラムの制御によってＣＰＵが発揮する複数の機能を、それぞれ複数の部（手段）による構成要素として表現したものである。
【０１１５】
ＣＰＵがプログラムによって実行されている動的状態（プログラムを構成する各手順を実行している状態）を機能表現した場合、ＣＰＵ内に各部（手段）が構成されることになる。プログラムが実行されていない静的状態にあっては、各手段の構成を実現するプログラム全体（或いは各手段の構成に含まれるプログラム各部）は、メモリなどの記憶領域に記憶されている。
【０１１６】
以上に示した各部（手段）の説明は、プログラムにより機能化されたコンピュータをプログラムの機能と共に説明したものと解釈することも出来るし、また、固有のハードウエアにより恒久的に機能化された複数の電子回路ブロックからなる装置を説明したものとも解釈することが出来ることは、当然である。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現でき、いずれかに限定されるものではない。  
【０１１７】
また、各部は、通信可能な専用のコンピュータからなる装置としてそれぞれ構成し、これらの各装置によりシステムを構成してもよい。逆に、各部を単一の装置として構成したシステムであってもよい。  
【０１１８】
またさらに、上記構成部材の数、位置、形状等は上記実施の形態に限定されず、本発明を実施する上で好適な数、位置、形状等にすることができる。すなわち、上記実施の形態では、デフラグメント処理部がＮ個、フラグメント処理部が１個、パケットバッファが１個の場合を示したが、本発明は、これらの個数を制限するものではない。
【０１１９】
デフラグメント処理部がＮ個、パケットバッファが１個の場合であってもよい。さらに、デフラグメント処理部がＮ個、フラグメント処理部がＭ個、パケットバッファがＬ個の場合であってもよい。この場合、フラグメント処理部においても非分割パケットデータを滞留させることができる。
【０１２０】
また、デフラグメント処理部の数、フラグメント処理部の数だけ、出力制御部を設ける場合に限らず、各処理部と通信接続された一つの出力制御部により、各処理部を制御する場合であってもよい。
【０１２１】
さらに、受信検出部１２にて受信し検出する構成としたが、受信部とフラグメント有無
検出部とを別々の構成としてもよい。また、受信検出部１２にて受信し、送信処理部１９にて送信する構成としたが、パケット制御装置として、パケット入力部とパケット出力部を構成し、受信、送信などの通信部（受信部、送信部）をパケット入力部とパケット出力部の外部に構成する場合であってもよい。
【０１２２】
また、上述のようなパケット制御装置が搭載される電子機器としては、ルータ装置、その他の各種転送制御装置や通信装置などが挙げられる。
【０１２３】
さらに、上述の実施の形態では、ネットワークとしてイーサネットを例に説明したが、ネットワークとしてはイーサネットに限らず、各種ＩＥＥＥ８０２ネットワーク、ＦＤＤＩ、ＰＰＰ、ＶＰＮ、ＡＴＭ、ＤＴＭ、トークンリング、フレームリレー、ＧＰＲＳ、ＥＶＤＯ、ＨＳＰＡ、ＨＤＬＣ、ＳＬＩＰ、Ｌ２ＴＰ、ＩＳＤＮ、ＳＭＤＳ、アークネット、Ｗｉ―Ｆｉ、ＷｉＭＡＸなどであってもよい。
【０１２４】
さらに、ＩＰパケットは、ＩＰｖ４用に限らず、ＩＰｖ６用でもよい。
【０１２５】
（プログラム）
また、前述した実施形態の機能を実現する本発明のプログラムは、前述した各実施の形態における各種ブロック図などに示された処理部（処理手段）、機能などに対応したプログラムや、フローチャートなどに示された処理手順、処理手段、機能などに対応したプログラムや、各種データ構造を利用するプログラムなどにおいて各々処理される各処理プログラム、本明細書で全般的に記述される方法（ステップ）、説明された処理、データの全体もしくは各部を含む。
【０１２６】
具体的には、本発明の一実施形態におけるプログラムは、少なくとも分割パケットデータと非分割パケットデータとをこの順で入力処理し、前記分割パケットデータに特定の処理を行う場合の処理動作を制御するパケット制御装置が備えたコンピュータに諸機能を実現させることが可能なものである。
このパケット制御プログラムは、前記分割パケットデータが処理中であるか否かを検出する検出機能と、前記検出機能にて前記処理中であると検出された場合に、前記非分割パケットデータの出力を待機させ、処理された前記パケットデータと前記非分割パケットデータとを入力順に出力する処理動作を制御する出力制御機能と、を前記コンピュータに実現させることができる。
【０１２７】
また、このパケット制御プログラムは、前記出力制御機能では、前記非分割パケットデータを非分割パケットデータ一時記憶手段に一時記憶させ、前記処理中である場合に、前記非分割パケットデータ一時記憶手段の前記非分割パケットデータの出力を停止制御する機能を前記コンピュータに実現させることができる。
【０１２８】
さらに、このパケット制御プログラムは、前記検出機能では、前記特定の処理を行う複数の処理部について前記処理中であるか否かをそれぞれ検出する機能を前記コンピュータに実現させ、前記出力制御機能では、一の前記処理部にて前記分割パケットデータが処理中である場合に、前記他の処理部内に前記非分割パケットデータを滞留させる制御を行う機能を前記コンピュータに実現させることができる。
【０１２９】
またさらに、このパケット制御プログラムは、前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理を含み、前記出力制御機能では、統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行う機能を前記コンピュータに実現させることができる。
【０１３０】
さらにまた、このパケット制御プログラムは、前記特定の処理は、前記分割パケットデータを分割される前の元データに統合する統合処理と、この統合された前記元データを再分割する再分割処理と、を含み、前記出力制御機能では、統合処理中又は再分割処理中である場合に前記非分割パケットデータの出力を待機させる制御を行う機能を前記コンピュータに実現させることができる。
【０１３１】
また、このパケット制御プログラムは、前記特定の処理は、複数の前記統合処理を含み、前記出力制御機能では、いずれか一つの前記統合処理が統合処理中である場合に前記非分割パケットデータの出力を待機させる制御を行う機能を前記コンピュータに実現させることができる。
【０１３２】
プログラムは、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムは、高水準プロシージャ型またはオブジェクト
指向プログラミング言語で、あるいは必要に応じてアセンブリまたはマシン言語で実装することができる。いずれの場合も、言語はコンパイラ型またはインタープリタ型言語であってもよい。
上述のパケット制御プログラムを、一般のパソコンや携帯型情報端末などで動作可能なアプリケーションソフトに組み込んだものも含む。
【０１３３】
プログラムを供給する手法としては、電気通信回線（有線、無線を問わない）によってコンピュータと通信可能に接続された外部の機器から前記電気通信回線を通じて提供することも可能である。例えば、コンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、プログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるサーバも、本発明の範囲に含まれるものである。
【０１３４】
本発明のプログラムによれば、当該制御プログラムを格納するＲＯＭ等の記憶媒体から、当該制御プログラムをコンピュータ（ＣＰＵ）に読み込んで実行させれば、或いは、当該制御プログラムを、通信手段を介してコンピュータにダウンロードさせた後に実行させれば、上述した本発明に係る装置を比較的簡単に実現できる。発明の思想の具現化例として装置のソフトウェアとなる場合には、かかるソフトウェアを記憶した記憶媒体上においても当然に存在し、利用される。
【０１３５】
また、プログラムは、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。プログラムの供給方法として通信回線を利用して行なう場合であれば通信回線が伝送媒体となって本発明が利用されることになる。むろん、プログラムの発明として特定することもできる。さらに、装置における従属請求項は、方法，プログラムにおいて従属請求項に対応した構成にすることも可能である。
【０１３６】
（情報記録媒体）
また、上述のプログラム（パケット制御プログラムを含む）を、情報記録媒体に記録した構成であってもよい。情報記録媒体には、上述のプログラムを含むアプリケーションプログラムが格納されており、コンピュータが当該情報記録媒体からアプリケーションプログラムを読み出し、当該アプリケーションプログラムをハードディスクにインストールすることが可能である。これにより、上述のプログラムは、磁気記録媒体、光記録媒体あるいはＲＯＭなどの情報記録媒体に記録してプログラムを提供することができる。そのようなプログラムが記録された情報記録媒体を、コンピュータにおいて使用することは、好都合な情報処理装置を構成する。
【０１３７】
プログラムを供給するための情報記録媒体としては、例えばＲＯＭ、ＲＡＭ、フラッシュメモリやＳＲＡＭ等の半導体メモリ並びに集積回路、あるいはそれらを含むＵＳＢメモリやメモリカード、光ディスク、光磁気ディスク、磁気記録媒体等を用いてよく、さらに、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ―Ｒ、ＣＤ―ＲＷ、ＦＤ、ＤＶＤＲＯＭ、ＨＤＤＶＤ（ＨＤＤＶＤ−Ｒ−ＳＬ＜1層＞、 ＨＤＤＶＤ−Ｒ−ＤＬ＜２層＞、ＨＤＤＶＤ−ＲＷ−ＳＬ、ＨＤＤＶＤ−ＲＷ−ＤＬ、ＨＤＤＶＤ−ＲＡＭ−ＳＬ）、ＤＶＤ±Ｒ−ＳＬ、ＤＶＤ±Ｒ−ＤＬ、ＤＶＤ±ＲＷ−ＳＬ、ＤＶＤ±ＲＷ−ＤＬ、ＤＶＤ−ＲＡＭ、Ｂｌｕ−Ｒａｙ  Ｄｉｓｋ＜登録商標＞（ＢＤ−ＲーＳＬ、ＢＤ−Ｒ−ＤＬ、ＢＤ−ＲＥ−ＳＬ、ＢＤ−ＲＥ−ＤＬ）、ＭＯ、ＺＩＰ、磁気カード、磁気テープ、ＳＤカード、メモリスティック、不揮発性メモリカード、ＩＣカード、等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置、等に記録して構成して用いてよい。  
【０１３８】
さらに「情報記録媒体」は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの（伝送媒体ないしは伝送波）、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。
【０１３９】
また、コンピュータ上で稼働しているＯＳ、端末（例えば携帯電話など）上のＲＴＯＳ等が処理の一部又は全部を行う場合にも、上記実施の形態と同等の機能を実現できると共に、同等の効果を得ることができる。
【０１４０】
さらに、プログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。この場合、本発明の構成は、プログラムの各構成要素（各種の手段、ステップ及びデータ）と、前記プログラム（各種の手段、ステップ及びデータ）を暗号化する暗号化手段と、を含んでよい。
【０１４１】
また、上記実施の形態におけるパケット制御装置において、パケット制御装置と他の通信装置（例えばホストなど）との間の通信構造は、クライアントサーバーシステムに限らず、サーバを介さずに端末同士がネットワークを組み、相互にデータを送受信するピアツーピア（Ｐｅｅｒ  Ｔｏ  Ｐｅｅｒ）通信によるシステムであってもよい。
また、上述の実施の形態のパケット制御装置を制御システムとして構成してもよい。この「システム」を、他の「システム」と統合したシステムとして、これら全体を本発明の「システム」として構成することも一向に構わない。「システム」には、ＯＳや周辺機器等のハードウェアを含むことができる。
【０１４２】
その場合における「システム」とは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない。このような場合、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４３】
さらに、上述のプログラムなどが搭載される情報処理装置としては、サーバは、例えばパーソナルコンピュータに限らず、各種サーバー、ＥＷＳ（エンジニアリングワークステーション）、中型コンピュータ、メインフレームなどが挙げられる。情報端末は、以上の例に加えて、携帯型情報端末、各種モバイル端末、ＰＤＡ、携帯電話機、ウエアラブル情報端末、種々の（携帯型などの）テレビ・ＤＶＤレコーダ・各種音響機器及びそのリモコン、各種情報通信機能を搭載した家電機器、ネットワーク機能を有するゲーム機器等からも利用できる構成としても構わない。あるいは、これらの端末に表示されるアプリケーションとして改良されたものも本発明の範囲に含めることができる。
【０１４４】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１４５】
さらに、本明細書において、フローチャートに示されるステップは、記載された手順に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。また、実装では、プログラム手順（ステップ）が実行される順序を変更することができる。さらに、実装の必要に応じて、本明細書で説明した特定の手順（ステップ）を、組み合わされた手順（ステップ）として実装、除去、追加、または再配置することができる。
【０１４６】
さらに、装置の各手段、各機能、各ステップの手順の機能などのプログラムの機能を、専用のハードウエア（例えば専用の半導体回路等）によりその機能を達成してもよく、プログラムの全機能のうち一部の機能をハードウエアで処理し、全機能のうちさらに他の機能をソフトウエアで処理するようにしてもよい。専用のハードウエアの場合、各部を集積回路例えばＬＳＩにて形成されてもよい。これらは個別に１チップ化されても良いし、一部または全部を含むように１チップ化されても良い。また、ＬＳＩには、他の機能ブロックが含まれていても良い。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０１４７】
また、パケット制御装置と他の通信装置（例えば送信側ホストコンピュータや受信側ホストコンピュータ）との間の通信構造に際し、「通信」では、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであってもよい。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであってもよい。
【０１４８】
そして、この通信には通信網が含まれる。通信網を構成するネットワークとしては、例えば携帯電話回線網（基地局及び交換システムを含む）、公衆電話回線網、ＩＰ電話網、ＩＳＤＮ回線網などこれに類する各種回線網、インターネット（乃ち、ＴＣＰ・ＩＰプロトコルを用いた通信態様）やイントラネット、ＬＡＮ＜イーサネット（登録商標）、やギガビットイーサネット（登録商標）などを含む＞、ＷＡＮ、ファイバチャネルネットワークなどの光ファイバー通信網、電力線通信網、ブロードバンド対応可能な各種専用回線網などいずれの構成でもよい。
さらに、ネットワークは、ＴＣＰ・ＩＰプロトコルの他、種々の通信プロトコルを用いたネットワークあるいはソフトウエア的に構築された仮想ネットワークやこれに類するあらゆるネットワークを含むネットワークなどいかなる通信プロトコルであってもよい。
また、ネットワークは、有線に限らず、無線（衛星通信、各種高周波通信手段等を含む）ネットワーク（例えば、簡易電話システムや携帯電話のようなシングルキャリア通信システム、Ｗ―ＣＤＭＡやＩＥＥＥ８０２．１１ｂに準拠した無線ＬＡＮのようなスペクトラム拡散通信システム、ＩＥＥＥ８０２．１１ａやＨｉｐｅｒＬＡＮ／２のようなマルチキャリア通信システム、などを含むネットワーク）であっても構わず、これらの組み合わせを利用してもよく、他のネットワークと接続されたシステムであってもよい。さらに、ネットワークは、ポイントツーポイント、ポイントツーマルチポイント、マルチポイントツーマルチポイントなど如何なる形態でもよい。
【０１４９】
また、パケット制御装置と他の通信装置（例えば送信側ホストコンピュータや受信側ホストコンピュータ）との間の通信構造に際し、いずれか一方又は双方に形成されるインタフェースの種類は、例えばパラレルインタフェース、ＵＳＢインタフェース、ＩＥＥＥ１３９４、ＬＡＮやＷＡＮ等のネットワークやその他これに類するもの、もしくは今後開発される如何なるインタフェースであっても構わない。
【０１５０】
さらに、非分割パケットを待機させるパケット制御手法は、必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解できる。このため、方法にかかる発明も、必ずしも実体のある装置に限らず、その方法としても有効であることに相違はない。この場合、方法を実現するための一例としてパケット制御装置、通信装置なども含めることができる。
【０１５１】
ところで、このような装置は、単独で存在する場合もあるし、ある機器（例えばパケット制御装置が通信装置や電子機器の機能として組み込まれているなど）に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。発明の思想の具現化例として装置のソフトウェアとなる場合には、かかるソフトウェアを記憶した記憶媒体上においても当然に存在し、利用されるといわざるをえない。
【０１５２】
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合であってもよく、一部を記憶媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。本発明をソフトウェアで実現する場合、ハードウェアやオペレーティングシステムを利用する構成とすることも可能であるし、これらと切り離して実現することもできる。
【０１５３】
また、発明の範囲は、図示例に限定されないものとする。
さらに、上記各実施の形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。つまり、上述の各実施の形態同士、あるいはそれらのいずれかと各変形例のいずれかとの組み合わせによる例をも含む。この場合において、本実施形態において特に記載しなくとも、各実施の形態及びそれらの変形例に開示した各構成から自明な作用効果については、当然のことながら実施の形態の作用効果として含めることができる。逆に、本実施の形態に記載されたすべての作用効果を奏することのできる構成が、本発明の本質的特徴部分の必須構成要件であるとは限らない。また、実施の形態に示される全構成要件から幾つかの構成要件が削除された構成による実施の形態並びにその構成に基づく技術的範囲も発明になりうる。
【０１５４】
そして、各実施の形態及びそれらの変形例を含むこれまでの記述は、本発明の理解を容易にするために、本発明の多様な実施の形態のうちの一例の開示、すなわち、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、例証するものであり、制限するものではなく、適宜変形及び／又は変更が可能である。本発明は、その技術思想、またはその主要な特徴に基づいて、様々な形で実施することができ、各実施の形態及びその変形例によって本発明の技術的範囲が限定的に解釈されてはならないものである。
従って、上記に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物を含む趣旨である。
【産業上の利用可能性】
【０１５５】
本発明は、コンピュータ全般に適用可能であり、より詳細には、イーサネット通信ネットワークにおけるルータ機能部のＩＰパケット送受信処理、といった用途に適用できる。
【図面の簡単な説明】
【０１５６】
【図１】本発明の第１の実施の形態によるパケット制御装置の全体構成の一例を示すブロック図である。
【図２】本発明の第１の実施の形態によるパケット制御装置における処理手順の一例を示すフローチャートである。
【図３】図１のパケット制御装置におけるパケット処理のタイミングを説明するための説明図である。
【図４】本発明の第２の実施の形態によるパケット制御装置の全体構成の一例を示すブロック図である。
【図５】関連技術のパケット制御装置の全体構成の一例を示すブロック図である。
【図６】関連技術のパケット制御装置における処理手順の一例を示すフローチャートである。
【図７】関連技術のパケット制御装置におけるパケット処理のタイミングを説明するための説明図である。
【図８】関連技術のパケット制御装置の全体構成の一例を示すブロック図である。
【符号の説明】
【０１５７】
１  パケット制御装置
１２  受信検出部  
１４  ＦＩＤ検出機能部
１６−１〜１６−Ｎ  デフラグメント処理部（１）〜（Ｎ）
１６ａ−１〜１６ａ−Ｎ  検出部（検出手段）
１６ｂ−１〜１６ｂ−Ｎ  出力制御部（出力制御手段）
１８  フラグメント処理部
１８ａ  検出部（検出手段）
１８ｂ  出力制御部（出力制御手段）
１９  送信処理部
２０  パケットバッファ（非分割パケットデータ一時記憶手段）
【図１】
2010087975.tif 000003
【図２】
2010087975.tif 000004
【図３】
2010087975.tif 000005
【図４】
2010087975.tif 000006
【図５】
2010087975.tif 000007
【図６】
2010087975.tif 000008
【図７】
2010087975.tif 000009
【図８】
2010087975.tif 000010