(57)【要約】【課題】  データ通信におけるプロトコル処理を高速に行えるようにする。【解決手段】  上位層のプロトコル処理を行うプロトコル処理部１０５の前段に、入力されたＩＰフレームが断片化処理されているか否かを検出するＩＰフラグメント検出部１０１、１０２、及び断片化処理されたＩＰフレームを再構成するＩＰフラグメント処理部１０４を設け、上位層のプロトコル処理を行う前に、ＩＰフレームがフラグメント処理されているか否かを検出し、フラグメント処理されたＩＰフレームを１つのＩＰフレームに再構成するようにして、上位層のプロトコル処理を停止させることなく一括で行い、ボトルネックを発生させることなく高速にプロトコル処理を行うことができるようにする。【選択図】  図１
2006081029.tif 000002
【特許請求の範囲】
【請求項１】
入力されたＩＰフレームが断片化処理されているか否かを検出する検出手段と、
メディアアクセスコントロール層より上位のプロトコル処理であって、上記ＩＰフレームに係るプロトコル処理を行うプロトコル処理手段と、
上記断片化処理されているＩＰフレームを１つのＩＰフレームに再構成するフラグメント処理手段と、
上記検出手段での検出結果を基に、上記入力されたＩＰフレームを上記プロトコル処理手段又は上記フラグメント処理手段に選択的に出力するフレーム交換手段とを備えることを特徴とするデータ通信装置。
【請求項２】
上記フラグメント処理手段は、断片化処理されているＩＰフレームを蓄積する第１のバッファと、断片化処理されていないＩＰフレームを蓄積する第２のバッファとを有することを特徴とする請求項１記載のデータ通信装置。
【請求項３】
上記フレーム交換手段は、上記入力されたＩＰフレームが断片化処理されている場合には、当該ＩＰフレームを上記フラグメント処理手段に出力し、上記入力されたＩＰフレームが断片化処理されていない場合には、当該ＩＰフレームを上記プロトコル処理手段に出力することを特徴とする請求項１又は２記載のデータ通信装置。
【請求項４】
上記フレーム交換手段は、複数のＩＰフレームを同時に入出力可能であり、ある１入力系統から入力されたＩＰフレームを上記プロトコル処理手段に対して出力している場合には、他の入力系統から入力されたＩＰフレームを上記フラグメント処理手段に出力することを特徴とする請求項１又は２記載のデータ通信装置。
【請求項５】
上記フラグメント処理手段より出力されたＩＰフレームを、上記フレーム交換手段を介して上記プロトコル処理手段に供給することを特徴とする請求項１〜４の何れか１項に記載のデータ通信装置。
【請求項６】
上記検出手段として、外部から入力されたＩＰフレームが断片化処理されているか否かを検出する第１の検出手段と、自装置内での折り返しにより入力されたＩＰフレームが断片化処理されているか否かを検出する第２の検出手段とを有することを特徴とする請求項１〜５の何れか１項に記載のデータ通信装置。
【請求項７】
イーサフレームが入力されるフレーム入力端子と、
上記フレーム入力端子から入力されるイーサフレームが断片化処理されたことを検出する検出手段と、
断片化されたイーサフレームを１つのイーサフレームに再構築するフラグメント処理手段と、
メディアアクセス層以上の上位のプロトコル処理を行うプロトコル処理手段と、
上記検出手段からの検知信号を受けて、上記入力されたイーサフレームを上記フラグメント処理手段又は上記プロトコル処理手段にスイッチするフレーム交換手段とを備えることを特徴とするデータ通信装置。
【請求項８】
物理メディアからのフレームが入力される第１のフレーム入力端子と、
自装置内部でのループバックによるフレームが入力される第２のフレーム入力端子と、
上記第１のフレーム入力端子から入力されるフレームが断片化処理されたことを検出する第１の検出手段と、
上記第２のフレーム入力端子から入力されるフレームが断片化処理されたことを検出する第２の検出手段と、
フレーム単位で入出力を切り替え可能なフレーム交換手段と、
上記第１及び第２の検出手段により断片化処理されたことが検出された場合に上記フレーム交換手段を介してフレームが入力されるフラグメント処理手段と、
上記フラグメント処理手段により断片化が解決され再構築されたフレーム出力を入力する再構成フレーム入力手段と、
上記第１及び第２の検出手段により断片化処理されたことが検出されていないフレーム及び上記再構成フレーム入力手段より入力されたフレームが入力されるとともに、ヘッダ解析手段を有するプロトコル処理手段とを備えることを特徴とするデータ通信装置。
【請求項９】
入力されたＩＰフレームが断片化処理されているか否かを検出する検出工程と、
メディアアクセスコントロール層より上位のプロトコル処理であって、上記ＩＰフレームに係るプロトコル処理を行うプロトコル処理工程と、
上記検出工程にて、上記入力されたＩＰフレームが断片化処理されていると検出された場合に、上記プロトコル処理を行う前に、断片化処理されているＩＰフレームを１つのＩＰフレームに再構成するフラグメント処理工程とを有することを特徴とするデータ通信方法。
【請求項１０】
入力されたＩＰフレームが断片化処理されているか否かを検出する検出ステップと、
メディアアクセスコントロール層より上位のプロトコル処理であって、上記ＩＰフレームに係るプロトコル処理を行うプロトコル処理ステップと、
上記検出ステップにて、上記入力されたＩＰフレームが断片化処理されていると検出された場合に、上記プロトコル処理を行う前に、断片化処理されているＩＰフレームを１つのＩＰフレームに再構成するフラグメント処理ステップとをコンピュータに実行させるためのプログラム。
【請求項１１】
請求項１０記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信装置及びデータ通信方法に関し、特に、データ通信における受信データの処理技術に関する。
【背景技術】
【０００２】
ＩＥＥＥ８０２．３規格に準拠したネットワークシステムにおいては、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）やＵＤＰ／ＩＰ（User Datagram Protocol/Internet Protocol）等の通信プロトコルが用いられている。これらのプロトコルの下位層は、ＬＬＣ（Logical Link Control、ＩＥＥＥ８０２．１）やＭＡＣ（メディアアクセスコントロール）層、ＰＨＹ（フィジカルレイヤ）層などから構成されている。
【０００３】
ＩＥＥＥ８０２．３規格におけるＩＰ層（IP Layer）では、１フレーム（パケット）あたりのデータを６５５３５オクテット（１オクテット〔octet〕＝８ビット）まで定義できる仕様となっている。有限のネットワーク帯域をネットワークに接続されたステーション間で公平にシェアして使用するためには、ネットワークにて伝送される１フレームのサイズを制限して特定のステーションによる帯域圧迫の影響を避けることが一般的である。
【０００４】
そこでＩＰ層においては、伝送可能な最大フレームサイズをＭＴＵ（Maximum Transfer Unit）として定義する。一般に、１０Ｍ〜１Ｇｂｐｓのイーサネット（登録商標）であればＭＴＵ＝１５００オクテット、電話回線によるダイアルアップ接続の場合であれば５７６オクテットに設定されることが多い。また、１Ｇｂｐｓ〜１０Ｇｂｐｓのイーサネット（登録商標）ではＭＴＵを大きく設定して広帯域である優位性を引き出すことがある。
【０００５】
ＩＥＥＥ８０２．３規格に準拠したネットワークシステムでのデータ通信について、図８及び図９を参照し説明する。
図９（Ａ）は、ＩＥＥＥ８０２．３フレームのデータフォーマットを示す図である。このフレームにおいて、ＭＴＵが定義している長さとは、ＩＰヘッダ５０１とＵＤＰヘッダ５０２とデータグラム５０３との長さ（総和）である。フレームとして伝送媒体に出力される際には、これらの前にＭＡＣヘッダ５０４が付与され、さらにその前にキャリア検出用のプリアンブル５０５とＳＦＤ（フレーム開始検出用のスタートフレームデリミタ）５０６が付与され、最後にＦＣＳ（Frame Check Sequence）５０７の４オクテットが付与される。
【０００６】
ここで、図８に示すように、ネットワークＡ４０５に属するステーションＡ４０１と、ネットワークＢ４０６に属するステーションＢ４０４とがネットワークＣ４０７を介して接続されたデータ通信システム、より詳しくは、ネットワークＡ４０５に属するステーションＡ（HostＡ）４０１がルーターＡ（RouterＡ）４０２を介してネットワークＣ４０７に接続されるとともに、ネットワークＢ４０６に属するステーションＢ（HostＢ）４０４がルーターＢ（RouterＢ）４０３を介してネットワークＣ４０７に接続されたデータ通信システムがあるとする。
【０００７】
また、ネットワークＡ４０５及びネットワークＢ４０６のＭＴＵが１５００オクテット、ネットワークＣ４０７のＭＴＵが５７６オクテットとする。この場合には、ステーションＡ４０１およびステーションＢ４０４は、それぞれが属するネットワークのＭＴＵが１５００オクテットであるため、１５００オクテットのＵＤＰ／ＩＰデータグラムを発行している。
【０００８】
図８に示したデータ通信システムにおいて、ステーションＡ４０１が、ステーションＢ４０４に対して１５００オクテットのＩＰフレーム（ＵＤＰ／ＩＰデータグラム）を送出した場合、ＭＴＵ＝５７６オクテットのネットワークＣ４０７が経路上にあるため、ルーターＡ４０２は、図９（Ｂ）に示すように、１５００オクテットのＩＰフレーム５１０を断片化（フラグメント：Fragment）し、３つのＩＰフレーム５２０、５３０、５４０に分割してネットワークＣ４０７に送出する。
【０００９】
具体的には、最初にルーターＡ４０２からネットワークＣ４０７送出される１番目のＩＰフレーム５２０は、ＵＤＰヘッダ付のＩＰフレーム長５７６オクテットのフレームであり、ＭＦフラグを‘１’として送出する。このＭＦフラグは、後続のＩＰフラグメントフレームが存在するか否かを示すものであり、ＭＦフラグを‘１’とすることで、さらに後続のＩＰフラグメントフレームが存在することを示す。
【００１０】
２番目のＩＰフレーム５３０は、１番目のＩＰフレーム５２０と同じＩＤが付与されるとともにＩＰフレーム長が同じく最大の５７６オクテットのフレームであり、ＭＦフラグが‘１’で、オフセット値に５７６という値が付与されている。このオフセット値は、単位がオクテットであり、フラグメントされたＩＰフレームが元のＩＰフレームのどこからのデータであるかを示すアドレスとなる。
【００１１】
３番目のＩＰフレーム５４０は、１番目及び２番目のＩＰフレーム５２０、５３０と同じＩＤが付与されＩＰフレーム長が３４８オクテットのフレームであり、ＭＦフラグを‘０’とし、オフセット値に１１５２が付与されている。ＭＦフラグを‘０’とすることで、これより後続のＩＰフラグメントフレームが無いことを示している。
【００１２】
１番目から３番目のＩＰフラグメントフレーム５２０、５３０、５４０は、全て同じＩＤを持っているため、元は同一のＩＰフレームであることが分かる。
このようにしてルーターＡ４０２により３つに断片化されたＩＰフレームは、ネットワークＣ４０７を介してルーターＢ４０３に伝送され、ルーターＢ４０３によりフラグメントされたままの状態でステーションＢ４０４に送られる。ステーションＢ４０４では、フラグメントされたＩＰフレームを受信すると、ＭＦフラグ及びオフセット値を参照して元のＩＰフレームを組み立てる。
【００１３】
また、上述にように複数のフレームにフラグメント（断片化）されたＩＰフレームを受信して元のＩＰフレームを組み立てるＩＰフラグメント処理技術に関し、処理の軽減を図った方法が提案されている（例えば、特許文献１、２参照。）。
【００１４】
【特許文献１】特許第３３６２７１５号公報
【特許文献２】特開平５−３２７７７１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来、フラグメントされたＩＰフレームを受信した場合には、受信したＩＰフレームについてＩＰヘッダの再処理を行うために、下位層プロトコルを再度解析させることが必要になる。また、ＩＰ層のプロトコル処理で一旦処理を停止してフラグメントを解決した後に後段（上位層）のプロトコル処理を行うため、フラグメントされた全てのＩＰフレームが集積されるまで、上位層のプロトコル処理が待たされる。そのため、フラグメントされたＩＰフレームを受信して元のＩＰフレームを組み立てる処理に多大な時間を要するとともに、受信したＩＰフレームに係るプロトコル処理を行うプロトコル処理装置の使用効率が低下する等の問題があった。
【００１６】
本発明は、上記問題点を解決するためになされたものであり、データ通信におけるプロトコル処理を高速に行えるようにすることを目的とする。また、プロトコル処理を止めることなく帯域の有効利用が図れるようにすることを目的とする。
【課題を解決するための手段】
【００１７】
本発明のデータ通信装置は、入力されたＩＰフレームが断片化処理されているか否かを検出する検出手段と、メディアアクセスコントロール層より上位のプロトコル処理であって、上記ＩＰフレームに係るプロトコル処理を行うプロトコル処理手段と、上記断片化処理されているＩＰフレームを１つのＩＰフレームに再構成するフラグメント処理手段と、上記検出手段での検出結果を基に、上記入力されたＩＰフレームを上記プロトコル処理手段又は上記フラグメント処理手段に選択的に出力するフレーム交換手段とを備えることを特徴とする。
本発明のデータ通信装置は、イーサフレームが入力されるフレーム入力端子と、上記フレーム入力端子から入力されるイーサフレームが断片化処理されたことを検出する検出手段と、断片化されたイーサフレームを１つのイーサフレームに再構築するフラグメント処理手段と、メディアアクセス層以上の上位のプロトコル処理を行うプロトコル処理手段と、上記検出手段からの検知信号を受けて、上記入力されたイーサフレームを上記フラグメント処理手段又は上記プロトコル処理手段にスイッチするフレーム交換手段とを備えることを特徴とする。
本発明のデータ通信装置は、物理メディアからのフレームが入力される第１のフレーム入力端子と、自装置内部でのループバックによるフレームが入力される第２のフレーム入力端子と、上記第１のフレーム入力端子から入力されるフレームが断片化処理されたことを検出する第１の検出手段と、上記第２のフレーム入力端子から入力されるフレームが断片化処理されたことを検出する第２の検出手段と、フレーム単位で入出力を切り替え可能なフレーム交換手段と、上記第１及び第２の検出手段により断片化処理されたことが検出された場合に上記フレーム交換手段を介してフレームが入力されるフラグメント処理手段と、上記フラグメント処理手段により断片化が解決され再構築されたフレーム出力を入力する再構成フレーム入力手段と、上記第１及び第２の検出手段により断片化処理されたことが検出されていないフレーム及び上記再構成フレーム入力手段より入力されたフレームが入力されるとともに、ヘッダ解析手段を有するプロトコル処理手段とを備えることを特徴とする。
本発明のデータ通信方法は、入力されたＩＰフレームが断片化処理されているか否かを検出する検出工程と、メディアアクセスコントロール層より上位のプロトコル処理であって、上記ＩＰフレームに係るプロトコル処理を行うプロトコル処理工程と、上記検出工程にて、上記入力されたＩＰフレームが断片化処理されていると検出された場合に、上記プロトコル処理を行う前に、断片化処理されているＩＰフレームを１つのＩＰフレームに再構成するフラグメント処理工程とを有することを特徴とする。
本発明のプログラムは、入力されたＩＰフレームが断片化処理されているか否かを検出する検出ステップと、メディアアクセスコントロール層より上位のプロトコル処理であって、上記ＩＰフレームに係るプロトコル処理を行うプロトコル処理ステップと、上記検出ステップにて、上記入力されたＩＰフレームが断片化処理されていると検出された場合に、上記プロトコル処理を行う前に、断片化処理されているＩＰフレームを１つのＩＰフレームに再構成するフラグメント処理ステップとをコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、上記プログラムを記録したことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、入力されたＩＰフレームに係る上位層のプロトコル処理を行う前に、当該ＩＰフレームが断片化処理されているか否かを検出し、断片化処理されている場合には、断片化処理されたＩＰフレームを纏めて１つのＩＰフレームに再構成することができ、処理を停止させることなく上位層のプロトコル処理を一括で行うことができる。したがって、上位層のプロトコル処理を実行するための構成が簡便になり、かつ帯域の有効利用が図れるとともに、ボトルネックを発生させることなく高速にプロトコル処理を行うことができる。
また、入力されたＩＰフレームを止めることなく、プロトコル処理手段又はフラグメント処理手段に出力することで、帯域を有効に利用することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を図面に基づいて説明する。
【００２０】
図１は、本発明の実施形態によるデータ通信装置を適用したＩＰ（Internet Protocol）フラグメント処理装置の構成例を示すブロック図である。
図１において、１０１は第１のＩＰフラグメント検出部、１０２は第２のＩＰフラグメント検出部、１０３はフレーム交換部、１０４はＩＰフラグメント処理部、１０５はプロトコル処理部である。
【００２１】
第１のＩＰフラグメント検出部１０１は、外部装置等のメディア側のＭＡＣ（不図示）からのＩＰフレーム（以下、単に「フレーム」とも称す。）ＭＡＣ＿ＦＲＡＭＥが入力され、入力されたフレームＭＡＣ＿ＦＲＡＭＥがＩＰフラグメント処理（断片化処理）されたフレームであるか否かを検出する。また、第２のＩＰフラグメント検出部１０２は、自装置の送信側（不図示）から折り返された（ステーション内で折り返された）フレーム、いわゆるループバックフレームＬＢＫ＿ＦＲＡＭＥが入力され、入力されたフレームＬＢＫ＿ＦＲＡＭＥがＩＰフラグメント処理されたフレームであるか否かを検出する。
【００２２】
フレーム交換部１０３は、ＩＰフラグメント検出部１０１、１０２を介してフレームＭＡＣ＿ＦＲＡＭＥ及びフレームＬＢＫ＿ＦＲＡＭＥが入力されるとともに、ＩＰフラグメント処理部１０４からフラグメント解決されたフレームＰＢＣ＿ＬＢＫが入力される。また、フレーム交換部１０３は、これらフレームＭＡＣ＿ＦＲＡＭＥ、ＬＢＫ＿ＦＲＡＭＥ、ＰＢＣ＿ＬＢＫの入力の有無、及びＩＰフラグメント検出部１０１、１０２による検出結果に基づいて、入力されたフレームをＩＰフラグメント処理部１０４又はプロトコル処理部１０５に選択的に出力する。なお、フラグメント解決されたフレームＰＢＣ＿ＬＢＫとは、フラグメントされた複数のフレーム、より詳しくはそれらのデータグラムを再構成して作成された１つのフレームである。
【００２３】
ＩＰフラグメント処理部１０４は、フレーム交換部１０３からフレームＭＡＣ＿ＰＢ、ＬＢＫ＿ＰＢとして入力されるフレームＭＡＣ＿ＦＲＡＭＥ、ＬＢＫ＿ＦＲＡＭＥを蓄積するとともに、必要に応じてフレームＭＡＣ＿ＦＲＡＭＥ、ＬＢＫ＿ＦＲＡＭＥのデータグラムの再構成を行う。このＩＰフラグメント処理部１０４の詳細については後述する。
【００２４】
プロトコル処理部１０５は、ＭＡＣ層（メディアアクセス層）以上の上位層のプロトコル処理を行うものであり、各層におけるフレームのヘッダ解析を実行してソケットＩＤ及びペイロード領域を、フレームの出力Ｓｏｃｋｅｔ  ＩＤ、ＦＲＡＭＥ  ＯＵＴとしてそれぞれ出力する。プロトコル処理部１０５は、図１に示したように縦属接続されたＭＡＣヘッダ解析部１０６、ＩＰヘッダ解析部１０７、及びＵＤＰ／ＴＣＰヘッダ解析部１０８により構成される。なお、ＭＡＣヘッダ解析部１０６、ＩＰヘッダ解析部１０７、及びＵＤＰ／ＴＣＰヘッダ解析部１０８については、従来公知のヘッダ解析手段と同様であるので説明は省略する。
【００２５】
次に、ＩＰフラグメント処理装置の動作について説明する。
ＩＰフラグメント処理装置において、外部装置等のメディア側からＩＰフレームである図９（Ａ）に示したイーサネット（登録商標）フレーム（ＩＥＥＥ８０２．３準拠）がフレーム入力端子を介して入力されることで当該フレームを受信すると、まず物理層に係る処理を行うＰＨＹ部（不図示）にてプリアンブルとＳＦＤとが除去される。プリアンブルとＳＦＤとが除去されたフレームＭＡＣ＿ＦＲＡＭＥは、第１のＩＰフラグメント検出部１０１に入力される。
【００２６】
第１のＩＰフラグメント検出部１０１では、フレームＭＡＣ＿ＦＲＡＭＥについてＩＰフラグメントの検出を行い、フラグメントの有無を示すフラグメント情報がフレームと共にフレーム交換部１０３に入力される。フレーム交換部１０３は、基本的な動作としてフレームＭＡＣ＿ＦＲＡＭＥがフラグメントされていない場合には、プロトコル処理部１０５内のＭＡＣヘッダ解析部１０５にフレームを出力し、フラグメントされている場合にはＩＰフラグメント処理部１０４にフレームを出力する動作を行う。
【００２７】
一方、自装置内で折り返されるループバックフレームＬＢＫ＿ＦＲＡＭＥは、フレームＭＡＣ＿ＦＲＡＭＥと同じフォーマットで第２のＩＰフラグメント検出部１０２に入力される。第２のＩＰフラグメント検出部１０２では、第１のＩＰフラグメント検出部１０１と同様に、フレームＬＢＫ＿ＦＲＡＭＥについてＩＰフラグメントの検出を行い、フラグメント情報とフレームとがフレーム交換部１０３に入力される。
【００２８】
フレーム交換部１０３は、ループバック系のフレームＬＢＫ＿ＦＲＡＭＥについても、フラグメントされていない場合には、プロトコル処理部１０５内のＭＡＣヘッダ解析部１０５にフレームを出力し、フラグメントされている場合にはＩＰフラグメント処理部１０４にフレームを出力する。
【００２９】
ここで、フレーム交換部１０３の詳細な基本動作を、図２〜図４を参照し説明する。
図２〜図４に示すフレーム交換部１０３は、３入力−３出力のスイッチ装置であり、入力として、不図示のＰＨＹ部−ＭＡＣ部からのフレームが入力される第１の入力ＭＡＣ＿ＦＲＡＭＥ、装置内ループバックフレームが入力される第２の入力ＬＢＫ＿ＦＲＡＭＥ、及びＩＰフラグメント処理部１０４から送出されるフレームが入力される第３の入力ＰＢＣ＿ＬＢＫの３系統を有する。一方、出力は、プロトコル処理部１０５内のＭＡＣヘッダ解析部１０６への第１の出力ＬＳＷ＿ＦＲＡＭＥ、第１の入力ＭＡＣ＿ＦＲＡＭＥからのフレームを出力する第２の出力ＭＡＣ＿ＰＢ、第２の入力ＬＢＫ＿ＦＲＡＭＥからのフレームを出力する第３の出力ＬＢＫ＿ＰＢの３系統を有する。
【００３０】
図２（Ａ）〜（Ｃ）は、３系統の入力の内１系統のみ入力され、かつ入力されたフレームが非フラグメントフレームであった場合のフレーム交換部１０３の動作を示している。この場合には、入力されたフレームは、図示したように常に第１の出力ＬＳＷ＿ＦＲＡＭＥに出力され、後段のＭＡＣヘッダ解析部１０６に供給される。
【００３１】
図３（Ａ）、（Ｂ）は、入力されたフレームがＩＰフラグメントされている場合、つまり当該フレームがＩＰフラグメント処理されているとＩＰフラグメント検出部１０１、１０２にて判断された場合のフレーム交換部１０３の動作を示している。第１の入力ＭＡＣ＿ＦＲＡＭＥからのＩＰフラグメントされているフレームは、第２の出力ＭＡＣ＿ＰＢに出力され、後段のＩＰフラグメント処理部１０４に供給される。同様に、第２の入力ＬＢＫ＿ＦＲＡＭＥからのＩＰフラグメントされているフレームは、第３の出力ＬＢＫ＿ＰＢに出力され、後段のＩＰフラグメント処理部１０４に供給される。
【００３２】
すなわち、ＭＡＣ部からのフレームも装置内ループバックによる折り返しフレームも、ＩＰフラグメントされている場合にはＩＰフラグメント処理部１０４へ出力される。そして、ＩＰフラグメントされた一連のフラグメントフレームがＩＰフラグメント処理部１０４に供給されてフラグメント解決された後（データグラムの再構成後）、再度第３の入力ＰＢＣ＿ＬＢＫから１つの大きなフレームとして入力される。
【００３３】
なお、第３の入力ＰＢＣ＿ＬＢＫからはＩＰフラグメントされていないフレームしか入力されないので図示していない。つまり、第３の入力ＰＢＣ＿ＬＢＫから入力されるフレームは、再度ＩＰフラグメント処理部１０４へ出力されることはない。
【００３４】
図４（Ａ）〜（Ｃ）は、ある１系統の入力によりプロトコル処理部１０５内のＭＡＣヘッダ解析部１０６への第１の出力ＬＳＷ＿ＦＲＡＭＥが使用されているときに、他の系統からフレームの入力があった場合のフレーム交換部１０３の動作を示している。
【００３５】
図４（Ａ）に示すように、第１の入力ＭＡＣ＿ＦＲＡＭＥにより第１の出力ＬＳＷ＿ＦＲＡＭＥを使用中に、第２の入力ＬＢＫ＿ＦＲＡＭＥから入力されたフレームは、ＩＰフラグメントされているか否かにかかわらず、第３の出力ＬＢＫ＿ＰＢに出力され、後段のＩＰフラグメント処理部１０４に供給される。同様に、図４（Ｂ）に示すように、第２の入力ＬＢＫ＿ＦＲＡＭＥにより第１の出力ＬＳＷ＿ＦＲＡＭＥを使用中に、第１の入力ＭＡＣ＿ＦＲＡＭＥから入力されたフレームは、ＩＰフラグメントされているか否かにかかわらず、第２の出力ＭＡＣ＿ＰＢに出力され、後段のＩＰフラグメント処理部１０４に供給される。
【００３６】
また、図４（Ｃ）に示すように、第３の入力ＰＢＣ＿ＬＢＫにより第１の出力ＬＳＷ＿ＦＲＡＭＥが使用されているときは、第１の入力ＭＡＣ＿ＦＲＡＭＥ、第２の入力ＬＢＫ＿ＦＲＡＭＥから入力されたフレームは、ＩＰフラグメントされているか否かにかかわらず、第２の出力ＭＡＣ＿ＰＢ、第３の出力ＬＢＫ＿ＰＢに出力される。
【００３７】
このように、プロトコル処理部１０５内のＭＡＣヘッダ解析部１０６への第１の出力ＬＳＷ＿ＦＲＡＭＥが他の出力で占められている場合には、ＩＰフラグメントの有無にかかわらず入力されるフレームをＩＰフラグメント処理部１０４へ出力することにより、データストリームを止めることなく処理を続行することができる。
【００３８】
以上のようにして、フレーム交換部１０３よりプロトコル処理部１０５に供給されたフレームは、各層のヘッダ解析部１０６〜１０８において各種情報の交換を行い、ヘッダ部の解析が実行される。そして、プロトコル処理部１０５内のＵＤＰ／ＴＣＰヘッダ解析部１０８からソケットＩＤ及びペイロード領域が、フレームの出力Ｓｏｃｋｅｔ  ＩＤ、ＦＲＡＭＥ  ＯＵＴとして出力される。一方、フレーム交換部１０３よりＩＰフラグメント処理部１０４に供給されたフレームは、ＩＰフラグメント処理部１０４にて適宜処理が施されて再びフレーム交換部１０３に供給される。
【００３９】
次に、ＩＰフラグメント処理部１０４について詳細に説明する。
図５は、ＩＰフラグメント処理部１０４の構成例を示すブロック図である。
図５において、２０１はヘッダチェックサム検証部、２０２はＩＰ層解析部、２０３はバッファ管理部、２０４はフラグメント管理部、２０５はフラグメントフレーム用バッファ、２０６は非フラグメントフレーム用バッファ、２０７はヘッダ生成出力制御部である。このＩＰフラグメント処理部１０４は、最大で同時に２系統からのフレーム入力が想定され、出力されるフレームは１系統のみである。
【００４０】
ＩＰフラグメント処理部１０４にフレームが入力されると、ヘッダチェックサム検証部２０１は、図６に示すＩＰヘッダ３０２のヘッダ長を確認し、ＩＰヘッダチェックサムの検証を行う。検証の結果、ＩＰヘッダチェックサムが正しい場合には、ヘッダチェックサム検証部２０１は、フレームを次段のＩＰ層解析部２０２に出力する。このとき、ＭＡＣ層のヘッダはフレームの先頭に記述されているが、ヘッダチェックサム検証部２０１では何ら処理を行わずそのまま出力する。
【００４１】
図６は、ＩＰヘッダ３０２の詳細なフォーマットを示す図であり、説明の便宜上、ＭＡＣヘッダ３０１及びデータグラム３０３も合わせて図示している。ＩＰヘッダ３０２は、図６に示すようにＶｅｒ．〜ＤｉｓｔｎａｔｉｏｎＩＰの各値で構成される。なお、ＩＰヘッダの各フィールドについては、公知であるので説明は省略する。
【００４２】
図５に戻り、ＩＰ層解析部２０２は、入力されたフレームにおけるＩＰフラグメントの有無を判別し、当該フレームをバッファに蓄積するために必要な情報をＩＰヘッダから解析する。ＩＰ層解析部２０２において、入力されたフレームがＩＰフラグメントされていた場合には、ＩＰ識別子（Identifier）、フラグメント（Fragment）、及びオフセット（Offset）などのＩＰヘッダの情報を基に、どのＩＰ識別子に属するどこのデータグラムか判別することができる。
【００４３】
バッファ管理部２０３は、ＩＰフラグメントされているフレームを蓄積するフラグメントフレーム用バッファ２０５、及びＩＰフラグメントされていないフレームを蓄積する非フラグメントフレーム用バッファ２０６に対するフレームデータの書き込み及び読み出し制御を行う。また、バッファ管理部２０３は、フラグメントフレーム用バッファ２０５にＩＰフラグメントされているフレームを蓄積する際、オフセット値等を参照してフラグメントデータ再構成処理を行い、断片化されているデータグラムを１つのデータグラムに再構成する。
【００４４】
図７は、フラグメントデータ再構成処理を説明するための模式図であり、１ＩＰフラグメント単位におけるデータ構造を示している。再構成処理では、フラグメントフレーム用バッファ２０５に、ＩＰフラグメントの先頭ポインタ（スタートポインター）からフレームが書き込まれ、受信したＩＰフレームのオフセット情報（オフセット値）に従って各フレーム情報を基にフレーム内のデータを書き込んでゆく。なお、ＩＰフラグメントされていない場合には、１フレーム単位で非フラグメントフレーム用バッファ２０６に書き込まれ、１フレーム単位で読み出されて出力されるので、図７に示したものとは異なりフレーム単位の構造となる。
【００４５】
図５に戻り、フラグメント管理部２０４は、フラグメントされたＩＰフレームのＩＰヘッダに含まれる識別子であるＩＰ識別子（Identifier）、オフセット（Offset）、及びフレーム長（IP_Length）などからフラグメントされたデータが全て揃ったか否かを判別する。この結果、フラグメント管理部２０４は、フラグメントされたＩＰフレームの全てが揃ったと判断した場合には、フラグメント受信が完了したことをヘッダ生成出力制御部２０７に通知する。
【００４６】
ヘッダ生成出力制御部２０７は、上記通知を受けフレームが出力できる状態であると、フレームの送出要求をバッファ管理部２０３に対して出力する。バッファ管理部２０３は、ヘッダ生成出力制御部２０７からの送出要求を受けると、ＩＰヘッダを除くデータグラム部をフラグメントフレーム用バッファ２０５から読み出してヘッダ生成出力制御部２０７に送出する。ヘッダ生成出力制御部２０７は、新たに作成したＩＰヘッダをバッファ管理部２０３から供給されるフレームの前半に付加してフレーム出力する。
【００４７】
以上、説明したように本実施形態によれば、上位層のプロトコル処理を行うプロトコル処理１０５の前段に、入力されたＩＰフレームがフラグメント処理されたフレームであるか否かを検出するＩＰフラグメント検出部１０１、１０２、及びフラグメント処理されたＩＰフレームのデータグラムを再構成しフラグメント解決するＩＰフラグメント処理部１０４を設け、上位層のプロトコル処理を行う前に、ＩＰフレームがフラグメント処理されているか否かを検出し、フラグメント処理されたＩＰフレームを１つのＩＰフレームに再構成する。これにより、上位層のプロトコル処理を実行するための構成が簡便になるとともに、フラグメント処理されたＩＰフレームが入力されても、上位層のプロトコル処理を停止させることなく一括で行うことができる。したがって、ボトルネックを発生させることなく高速にプロトコル処理を行うことができるとともに、帯域の有効利用を図ることができる。
【００４８】
（本発明の他の実施形態）
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、上記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００４９】
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体は本発明を構成する。また、そのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００５０】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００５１】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００５２】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態におけるＩＰフラグメント処理装置の構成例を示すブロック図である。
【図２】本実施形態におけるフレーム交換部の動作例を説明するための図である。
【図３】本実施形態におけるフレーム交換部の他の動作例を説明するための図である。
【図４】本実施形態におけるフレーム交換部のその他の動作例を説明するための図である。
【図５】本実施形態におけるＩＰフラグメント処理部の構成例を示すブロック図である。
【図６】ＩＰヘッダのフォーマットを示す図である。
【図７】本実施形態におけるフラグメントデータ再構成処理を説明するための図である。
【図８】ＩＰフラグメントが生じるネットワーク構成の一例を示す図である。
【図９】ＩＥＥＥ８０２．３フレームのデータフォーマット及びＩＰフラグメントを説明するための図である。
【符号の説明】
【００５４】
１０１、１０２  ＩＰフラグメント検出部
１０３  フレーム交換部
１０４  ＩＰフラグメント処理部
１０５  プロトコル処理部
１０６  ＭＡＣヘッダ解析部
１０７  ＩＰヘッダ解析部
１０８  ＵＤＰ／ＴＣＰヘッダ解析部
【図１】
2006081029.tif 000003
【図２】
2006081029.tif 000004
【図３】
2006081029.tif 000005
【図４】
2006081029.tif 000006
【図５】
2006081029.tif 000007
【図６】
2006081029.tif 000008
【図７】
2006081029.tif 000009
【図８】
2006081029.tif 000010
【図９】
2006081029.tif 000011