(57)【要約】【課題】  データグラムの再構成を高速かつ容易に行うとともに、受信メモリの使用効率を向上させるようにする。【解決手段】  シフトレジスタ１０２、１０３、１０５、１０６に格納された既に受信したデータグラムの範囲を示す値と、受信したフレームのデリミタとを比較し、比較結果に基づいてシフトレジスタに格納するデリミタを更新し、シフトレジスタに格納されている値と、スタートポイントレジスタ１０７及びエンドポイントレジスタ１１０に格納されている開始アドレス値及び終了アドレス値とを比較部１１１、１１２にて比較し、比較結果に基づいてフラグメントフレームの受信判定を行うようにして、フレームの受信範囲を検出し、データグラムをデリミタどおりに順次バッファに書き込むことができ、データグラムの再構成を高速かつ容易に行うことができるようにする。【選択図】  図１
2006081030.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）し、３つのＩＰフレーム５２０、５３０、５４０に分割してネットワークＣ６０７に送出する。
【０００９】
具体的には、最初にルーターＡ６０２からネットワークＣ６０７送出される１番目のＩＰフレーム５２０は、ＵＤＰヘッダ付のＩＰフレーム長５７６オクテットのフレームであり、ＭＦフラグを‘１’として送出する。このＭＦフラグは、後続のＩＰフラグメントフレームが存在するか否かを示すものであり、ＭＦフラグを‘１’とすることで、さらに後続のＩＰフラグメントフレームが存在することを示す。
【００１０】
２番目のＩＰフレーム５３０は、１番目のＩＰフレーム５２０と同じＩＤが付与されるとともにＩＰフレーム長が同じく最大の５７６オクテットのフレームであり、ＭＦフラグが‘１’で、オフセット値に５７６という値が付与されている。このオフセット値は、単位がオクテットであり、フラグメントされたＩＰフレームが元のＩＰフレームのどこからのデータであるかを示すアドレスとなる。
【００１１】
３番目のＩＰフレーム５４０は、１番目及び２番目のＩＰフレーム５２０、５３０と同じＩＤが付与されＩＰフレーム長が３４８オクテットのフレームであり、ＭＦフラグを‘０’とし、オフセット値に１１５２が付与されている。ＭＦフラグを‘０’とすることで、これより後続のＩＰフラグメントフレームが無いことを示している。
【００１２】
１番目から３番目のＩＰフラグメントフレーム５２０、５３０、５４０は、全て同じＩＤを持っているため、元は同一のＩＰフレームであることが分かる。
このようにしてルーターＡ６０２により３つに断片化されたＩＰフレームは、ネットワークＣ６０７を介してルーターＢ６０３に伝送され、ルーターＢ６０３によりフラグメントされたままの状態でステーションＢ６０４に送られる。ステーションＢ６０４では、フラグメントされたＩＰフレームを受信すると、ＭＦフラグ及びオフセット値を参照して元のＩＰフレームを組み立てる。
【００１３】
ここで、ネットワークの状態（各ネットワークの帯域や伝送路における通信頻度等）によっては、例えば図１０Ｂに示すように最終フラグメント（ＭＦフラグ＝０）のフレーム５４０が先に到着したり、フレーム５２０’と５３０のようにデータグラムの領域が一部重複している場合がある。
【００１４】
したがって、フラグメントされたＩＰフレームを受信して元のＩＰフレームを組み立てる際には、これらのことを考慮してデータグラムを組み立てなければいけない。そのため、図１１（Ａ）に示すように一旦全ての受信フレームを受信メモリ５５０上に展開して、図１１（Ｂ）に示すようにフレーム単位でオフセット値（オフセットアドレス）が昇順になるようにソートを実行する。なお、受信メモリ５５０としては、（フラグメントされる数ＢＬ）×（ＭＴＵ＋ヘッダ長ＢＷ）の記憶容量を有するメモリが必要である。
【００１５】
次に、オフセット値が０となっているデータグラムの先頭からデータグラムを順次転送してゆき、とぎれることなく最終フレームまで組み立てられれば受信完了となる。途中、フラグメントフレームでデータ領域が重複する場合には、重複領域はどちらかのフレームのデータを無視することで一つのデータグラムを作成する。
【００１６】
また、複数のフレームにフラグメント（断片化）されたＩＰフレームを受信して元のＩＰフレームを組み立てるＩＰフラグメント処理技術に関し、装置の簡略化や処理の軽減を図った方法が提案されている（例えば、特許文献１、２参照。）。
【００１７】
【特許文献１】特開平５−３２７７７１号公報
【特許文献２】特開平９−２０４３７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、従来、フラグメントされたＩＰフレームを受信して元のＩＰフレームを組み立てる際には、図１１に示したように一旦全てのフラグメントフレームを受信してから、データグラムの再構成を行うため、受信メモリの使用効率が優れないという問題があった。また、全てのフラグメントフレームを受信した後に、フラグメントフレーム単位でのソートやデータの転送を実行するため、フレームの遅延が生じてしまうという問題があった。
【００１９】
本発明は、上記問題点を解決するためになされたものであり、データグラムの再構成を高速かつ容易に行えるようにするとともに、受信メモリの使用効率を向上させることを目的とする。
【課題を解決するための手段】
【００２０】
本発明のデータ通信装置は、入力される断片化処理されたフレームのヘッダ情報を基に算出したデータグラムの範囲を示すアドレス情報を入力する入力手段と、上記アドレス情報を記憶する記憶手段と、上記入力手段より入力されるアドレス情報と、上記記憶手段に記憶されているアドレス情報とを比較し、比較結果に応じて上記入力手段より入力されるアドレス情報を上記記憶手段に記憶させる第１の比較手段と、上記記憶手段より抽出したアドレス情報と、断片化処理されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第２の比較手段と、上記第２の比較手段による比較結果を基に、断片化処理されたフレームの受信完了判定を行う判定手段とを備えることを特徴とする。
本発明のデータ通信装置は、入力される断片化処理されたフレームのＩＰ層に係るヘッダ情報から抽出したオフセット及びフレーム長より算出したデータグラムのアドレス情報であるデリミタを入力する入力手段と、上記デリミタを保存し、右シフト動作及び左シフト動作が可能な複数のシフトレジスタと、上記シフトレジスタに保存したデリミタを比較し、上記入力したデリミタを上記シフトレジスタに保存する機能を有する第１の比較手段と、断片化処理されたフレームで構成された元のデータグラム情報の内、開始アドレス及び終了アドレスをそれぞれ記録するレジスタと、上記シフトレジスタの一部より抽出したデリミタと、上記レジスタに記録されたデータグラムの開始アドレスとを比較する第２の比較手段と、上記シフトレジスタの一部より抽出したデリミタと、上記レジスタに記録されたデータグラムの終了アドレスとを比較する第３の比較手段と、上記第１の比較手段及び上記第２の比較手段の出力から断片化処理されたフレームの受信終了を判定する判定手段とを備え、元のフレームが構成される条件に断片化処理されたフレームに関するデリミタが至った場合に、フレームの受信終了を通知可能にしたことを特徴とする。
本発明のデータ通信方法は、入力される断片化処理されたフレームのヘッダ情報を基に算出したデータグラムの範囲を示すアドレス情報を入力する入力工程と、上記入力工程にて入力されるアドレス情報と、記憶部に記憶されているアドレス情報とを比較し、比較結果に応じて上記入力工程にて入力されるアドレス情報を上記記憶部に記憶させる第１の比較工程と、上記記憶部より抽出したアドレス情報と、断片化処理されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第２の比較工程と、上記第２の比較工程での比較結果を基に、断片化処理されたフレームの受信完了判定を行う判定工程とを有することを特徴とする。
本発明のプログラムは、入力される断片化処理されたフレームのヘッダ情報を基に算出したデータグラムの範囲を示すアドレス情報を入力する入力ステップと、上記入力ステップにて入力されるアドレス情報と、記憶部に記憶されているアドレス情報とを比較し、比較結果に応じて上記入力ステップにて入力されるアドレス情報を上記記憶部に記憶させる第１の比較ステップと、上記記憶部より抽出したアドレス情報と、断片化処理されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第２の比較ステップと、上記第２の比較ステップでの比較結果を基に、断片化処理されたフレームの受信完了判定を行う判定ステップとをコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、上記プログラムを記録したことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、断片化処理されたフレームを受信する際、受信したフレームが元のフレームのどの範囲に対応するかを規定するアドレス情報を用い、受信したフレームのアドレス情報と、随時記憶更新される既に受信したフレームのアドレス情報とを比較して断片化処理されたフレームの受信判定を行う。これにより、断片化処理されたフレームの受信範囲を検知でき、フレームのデータグラムをアドレス情報に従い順次受信メモリに記憶させることができる。したがって、データグラムを格納する受信メモリの構成が簡便になり、データグラムの再構成を高速かつ容易に行うことができる。また、断片化処理されたフレームの受信に際し、データグラムの保存に要する記憶容量が削減できるので、受信メモリの使用効率を向上させることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態を図面に基づいて説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態による通信装置を適用したＩＰフラグメント受信検出装置の構成例を示すブロック図である。なお、以下の説明では、ＩＰフレームを単に「フレーム」とも称す。
【００２３】
図１において、１０１はＬＳＷデリミタ保存レジスタ群であり、降順側ＬＳＷデリミタ保存シフトレジスタ１０２と昇順側ＬＳＷデリミタ保存シフトレジスタ１０３とを有する。同様に、１０４はＭＳＷデリミタ保存レジスタ群であり、降順側ＭＳＷデリミタ保存シフトレジスタ１０５と昇順側ＭＳＷデリミタ保存シフトレジスタ１０６とを有する。シフトレジスタ１０２、１０３、１０５、１０６は、それぞれが右シフト動作及び左シフト動作（順方向シフト動作及び逆方向シフト動作）が可能なシフトレジスタである。
【００２４】
１０７は、受信したフラグメントフレーム（フラグメント（断片化）処理されたＩＰフレーム）のＩＰヘッダにおけるオフセット値、フレーム長を基に算出した断片フレームの開始アドレス値と終了アドレス値とを入力するデリミタ入力用レジスタである。１０８はデリミタ比較部であり、シフトレジスタ１０２、１０３、１０５、１０６に格納されている値とデリミタ入力用レジスタ１０５に格納されているアドレス値とを比較し、比較結果に応じて当該アドレス値をシフトレジスタ１０２、１０３、１０５、１０６に選択的に転送する。
【００２５】
１０９はスタートポイントレジスタであり、データグラムの開始アドレス値が格納される。１１０はエンドポイントレジスタであり、データグラムの終了アドレス値が格納される。ここで、レジスタ１０９、１１０にそれぞれ格納されるデータグラムの開始アドレス値、終了アドレス値は、フラグメントされたＩＰフレームを組み立てて得られる元のＩＰフレームにおけるデータグラムの開始アドレス値、終了アドレス値である。
【００２６】
１１１はスタートポイント用比較部であり、スタートポイントレジスタ１０７に格納されている開始アドレス値とシフトレジスタ１０２に格納されている値とを比較する。１１２はエンドポイント用比較部であり、エンドポイントレジスタ１１０に格納されている終了アドレス値とシフトレジスタ１０５に格納されている値とを比較する。
【００２７】
１１３は、スタートポイント用比較部１１１及びエンドポイント用比較部１１２での比較結果を受けて、データグラムの受信完了を判定する受信完了判定部である。
【００２８】
図２は、図１に示したＩＰフラグメント受信検出装置を内部に有するデータ受信装置の構成例を示すブロック図である。
【００２９】
図２において、２０１は第１のＩＰフラグメント検出部であり、外部装置等のメディア側のＭＡＣ（不図示）からのフレームＭＡＣ＿ＦＲＡＭＥが入力され、入力されたフレームＭＡＣ＿ＦＲＡＭＥがフラグメントされたフレームであるか否かを検出する。２０２は第２のＩＰフラグメント検出部であり、自装置の送信側（不図示）から折り返されたフレーム、いわゆるループバックフレームＬＢＫ＿ＦＲＡＭＥが入力され、入力されたフレームＬＢＫ＿ＦＲＡＭＥがフラグメントされたフレームであるか否かを検出する。
【００３０】
２０３はフレーム交換部であり、ＩＰフラグメント検出部２０１、２０２及びＩＰフラグメント処理装置を通過したＩＰフレームの３系統のフレーム入力に対して、プロトコル処理部２０４及び２系統のＩＰフラグメント処理装置への合わせて３系統のフレーム出力を有する。
【００３１】
プロトコル処理部２０４は、ＭＡＣ層以上の上位層のプロトコル処理を行うものであり、各層におけるフレームのヘッダ解析を実行してソケットＩＤ及びペイロード領域を、フレームの出力Ｓｏｃｋｅｔ  ＩＤ、ＦＲＡＭＥ  ＯＵＴとしてそれぞれ出力する。プロトコル処理部２０４は、図２に示したように縦属接続されたＭＡＣヘッダ解析部２０５、ＩＰヘッダ解析部２０６、及びＵＤＰ／ＴＣＰヘッダ解析部２０７により構成される。なお、ＭＡＣヘッダ解析部２０５、ＩＰヘッダ解析部２０６、及びＵＤＰ／ＴＣＰヘッダ解析部２０７については、公知のヘッダ解析手段と同様であるので説明は省略する。
【００３２】
２０７はＩＰ層解析部、２０８はフラグメントされたフレーム等を一時蓄積するバッファ、２０９はフラグメント管理部、及び２１０はヘッダ生成出力制御部であり、これら機能部２０７〜２１０によりＩＰフラグメント処理装置が構成される。また、フラグメント管理部２０９は、図１に示したＩＰフラグメント受信検出装置を含み構成される。このＩＰフラグメント処理部は、フレーム交換部２０３から供給されるフレームを蓄積するとともに、フレーム交換部２０３からフラグメントされたフレームが供給された場合にはフレームのデータグラムの再構成を行う。
【００３３】
図２に示したデータ通信装置において、ＩＰフラグメント検出部２０１、２０２に入力されたフレームは、それぞれフラグメントされているか否か検出される。そして、フレームと共にフラグメントの有無を示すフラグメント情報がフレーム交換部２０３に入力される。
【００３４】
フラグメントされていないフレームは、フレーム交換部２０３によりプロトコル処理部２０４に順次入力され、各ヘッダ解析部２０５〜２０７にてプロトコル処理が実行される。
【００３５】
一方、フラグメントされたフレームは、単独では不完全なフレームであり、そのままプロトコル処理部２０４に入力することができない。そのため、フラグメントされたフレームは、フレーム交換部２０３によりＩＰフラグメント処理装置に入力され、ＩＰフラグメント処理装置にて完全なフレームに再構築した後、プロトコル処理部２０４に入力される。
【００３６】
ＩＰフラグメント処理装置の内部では、ＩＰ層解析部２０８において図３に示すＩＰヘッダ３０２等に係るＩＰ層の解析が行われる。図３は、ＩＰヘッダ３０２の詳細なフォーマットを示す図であり、説明の便宜上、ＭＡＣヘッダ３０１及びデータグラム３０３も合わせて図示している。ＩＰヘッダ３０２は、図３に示すようにＶｅｒ．〜ＤｉｓｔｎａｔｉｏｎＩＰの各値で構成される。なお、ＩＰヘッダの各フィールドについては、公知であるので説明は省略する。
【００３７】
ＩＰ層解析部２０８での解析を基に、ＩＰ層以下のペイロード領域はバッファ２０９に蓄積される。また、ＩＰ層解析部２０８は、フラグメントされた領域を示すＩＰヘッダのオフセット（Offset）、フレーム長（IP_Length）の情報を開始アドレス値、終了アドレス値に変換してフラグメント管理部２１０内のＩＰフラグメント受信検出装置に供給する。
【００３８】
バッファ２０９の内部は、図４に示したようなデータ構造になっており、受信開始アドレスをスタートポインタ（Start Pointer）、受信終了アドレスをエンドポインタ（End Pointer）としている。受信開始アドレスは‘０’であり、受信終了アドレスはＴＣＰ層又はＵＤＰ層のヘッダまで解析すればそれぞれのヘッダに記述されているＬｅｎｇｔｈ情報から明らかであり、上位のプロトコルまで解析しないのであればＩＰ層のヘッダに記述されているＭＦフラグ＝０となっているＩＰフラグメントフレームのヘッダにおけるオフセット（Offset）及びフレーム長（IP_Length）から
受信終了アドレス（Datagram Length）＝IP_Length  ＋  Offset
とすることでデータグラムの全長が判明し、そのアドレスをエンドポインタとすることができる。
【００３９】
このようにペイロード情報のみをバッファリングしてゆき、フラグメント管理部２１０内のＩＰフラグメント受信検出装置にて全てのＩＰフラグメントフレームの受信が完了する（詳細な動作は後述する）と、フラグメント管理部２１０はヘッダ生成出力制御装置２１０に受信完了を通知する。
【００４０】
ヘッダ生成出力制御装置２１０は、ＩＰフラグメントしない状態でのＩＰヘッダを作成してペイロードとともにフレーム交換部２０３に出力する。フレーム交換部２０３は、再構成されたＩＰフレームをプロトコル処理部２０４に出力する。したがって、フラグメントされたＩＰフレームがデータ受信装置に入力されても、プロトコル処理部２０４内のＭＡＣヘッダ解析部２０５、ＩＰヘッダ解析部２０６、ＵＤＰ／ＴＣＰヘッダ解析部２０６によるそれぞれのヘッダ解析を処理を停止させることなく１パスのみで終了することができる。
【００４１】
次に、上述したようなデータ受信装置におけるＩＰフラグメント受信検出装置の動作の詳細を図５Ａ〜図５Ｉを参照して説明する。
【００４２】
シフトレジスタ１０２、１０３、１０５、１０６は、初期状態において‘ｎｕｌｌ’が書き込まれている（図５Ａ参照）。
【００４３】
次に、受信フレームのＩＰヘッダより抽出したオフセット値（Offset）及びフレーム長（IP_Length）より、そのフレームのデータグラム中における開始アドレス値、終了アドレス値が判明する。これをデリミタと呼び、｛ａ，ｂ｝（ただしａ＜ｂ）で表す。この情報は一旦デリミタ入力用レジスタ１０７を介して、デリミタ比較部１０８に供給され、デリミタ比較部１０８にてシフトレジスタ１０２、１０３、１０５、１０６に格納されている値と比較される。
【００４４】
初期状態から初めて入力されたデリミタ｛ｉ，ｊ｝は、デリミタ比較部１０８にてシフトレジスタ１０２、１０３、１０５、１０６に格納されている値と比較される。最初は、初期状態で全てのシフトレジスタ１０２、１０３、１０５、１０６には“ｎｕｌｌ”が書き込まれているため、デリミタ比較部１０８出力からシフトレジスタ１０２には｛ｉ｝、シフトレジスタ１０５には｛ｊ｝が書き込まれる（図５Ｂ参照）。
【００４５】
次に、第２のデリミタ｛ｍ，ｎ｝が入力されると、デリミタ比較部１０８にて各々のデリミタの比較が実行される。
まず、第１のデリミタと第２のデリミタにおいて重複する領域が存在しない場合、即ち、ＩＰフラグメントフレームの各々の受信領域が離れる場合には、それぞれの領域がシフトレジスタ内に記述されることになる。
【００４６】
これには２つの状態が考えられる。ひとつめは、第１のデリミタの上位アドレス（ｊ）よりも第２のデリミタの下位アドレス（ｍ）が大きい場合には、第２のデリミタは第１のデリミタの降順方向に新たに書き込まれる。図５Ｃに示す例では、シフトレジスタ１０３、１０６の最上位に新たに｛ｍ，ｎ｝が書き込まれる。
【００４７】
また、第１のデリミタの下位アドレス（ｉ）より第２のデリミタの上位アドレス（ｎ）が小さい場合には、第２のデリミタは第１のデリミタの昇順方向に書き込まれる。図５Ｄに示す例では、第１のデリミタ｛ｉ，ｊ｝はシフトレジスタ１０３、１０６のレジスタに移動し、新たに書き込まれる第２のデリミタ｛ｍ，ｎ｝がシフトレジスタ１０２、１０５のレジスタに書き込まれる。
【００４８】
次に、第１のデリミタと第２のデリミタのアドレスに重複領域が存在する場合について説明する。この場合には、各々のデリミタは１つに統合される。
これには２通り考えられ、１つは第２のデリミタの下位アドレス｛ｍ｝が第１のデリミタ｛ｉ，ｊ｝の間にあり、かつ第２のデリミタの上位アドレス｛ｎ｝が第１のデリミタの上位アドレス｛ｊ｝より上位にある場合である。この場合には、重複領域はｍ〜ｊでこの領域が削除されて｛ｎ｝のみがシフトレジスタ１０５に書き込まれる（図５Ｅ参照）。
【００４９】
２つめは第２のデリミタの上位アドレス｛ｎ｝が第１のデリミタの｛ｉ，ｊ｝の間にあり、かつ第２のデリミタの下位アドレス｛ｍ｝が第１のデリミタの下位アドレス｛ｉ｝より下位にある場合である。１つめの例と同様に、第２のデリミタの下位アドレス｛ｍ｝がシフトレジスタ１０２に書き込まれてデリミタの結合が行われる（図５Ｆ参照）。
【００５０】
最後に、デリミタの結合において第２のデリミタが第１のデリミタを包含する場合、又は逆に第１のデリミタが第２のデリミタを包含している場合においては、包含するデリミタのみが残り、包含されるデリミタは消去される。図５Ｇ、図５Ｈに示した例がこれらに対応し、図５Ｇは第２のデリミタが包含する場合、図５Ｈは第１のデリミタが包合する場合を示している。
【００５１】
このようにして、順次デリミタを与えて入力してゆき、シフトレジスタ１０２に格納されている値とスタートポイントレジスタ１０９に格納されている開始ポインタの値が等しくなれば、スタートポイント用比較部１１１が開始アドレス値からの読み込みが完了したことを示す。また、同様に、シフトレジスタ１０５に格納されている値とエンドポイントレジスタ１１０に格納されている終了ポインタの値が等しくなれば、エンドポイント用比較部１１２が終了アドレス値までの読み込みが終了したことを示す。
【００５２】
スタートポイント用比較部１１１とエンドポイント用比較部１１２の双方が終了したことを示せば、受信完了判定部１１３は、フラグメントされたＩＰフレームの受信完了を示したと判断し受信終了の旨を出力する。
【００５３】
以上、説明したように第１の実施形態によれば、既に受信したフレームのデータグラムの範囲を示すシフトレジスタ１０２、１０３、１０５、１０６に格納された値と、受信したフレームのデリミタとを比較し、比較結果に基づいてシフトレジスタ１０２、１０３、１０５、１０６に格納するデリミタの登録、削除、結合等の操作を行う。そして、シフトレジスタ１０２、１０５に格納されている値と、スタートポイントレジスタ１０７及びエンドポイントレジスタ１１０に格納されている開始アドレス値及び終了アドレス値とを比較し、比較結果に基づいてフラグメントフレームの受信判定を行う。これにより、フラグメントされたフレームの受信範囲を検出し、フレームのデータグラムをデリミタどおりに順次バッファに書き込むことができ、バッファの構成が簡便になるとともに、データグラムの再構成を高速かつ容易に行うことができる。また、フレームを受信しデータグラムを再構成するのに要する記憶容量が削減できるので、バッファの使用効率を向上させることができる。
【００５４】
（第２の実施形態）
次に、第２の実施形態について説明する。
上述した第１の実施形態では、同一のＩＰ識別子（Identifier）を有するフラグメントフレームにおいて解析されたオフセット、フレーム長を基に算出したデリミタからの受信状況しか解析できなかった。実際のネットワークを介したデータ通信においては、フラグメントされる状況下では様々なＩＰ識別子のフレームが流れる。複数のＩＰ識別子のＩＰフラグメントフレームを取り扱うために、複数のＩＰフラグメント受信検出装置を備えることも可能であるが、これらをＩＰ識別子で管理することは困難である。以下に説明する第２の実施形態は、これらの不都合の解消を図ったものである。
【００５５】
図６は、本発明の第２の実施形態による通信装置を適用したＩＰフラグメント受信検出装置の構成例を示すブロック図である。この図６において、図１に示したブロックに対応するブロックには同一の符号を付している。
【００５６】
図１に示した第１の実施形態と異なる点は、デリミタ入力用レジスタ１０７にＩＰ識別子（ＩＤ）入力用レジスタ４０５が備えられていることである。これに伴って、各シフトレジスタ１０２、１０３、１０５、１０６にもＩＤ用のレジスタ４０１、４０２、４０３、４０４が設けられるとともに、各ＩＤにおける開始ポインタ／終了ポインタを格納するスタートポイントレジスタ１０９、エンドポイントレジスタ１１０においてもＩＤ用のレジスタ４１２、４１３がそれぞれ設けられている。
【００５７】
図６に示したＩＰフラグメント受信検出装置では、デリミタとして｛ＩＤ，ａ，ｂ｝の３値を用いる。まず、デリミタとして｛ＩＤ，ａ，ｊ｝が入力されるとシフトレジスタ群に格納されている値の中からＩＤが一致するものを検索する。合致したものがあれば、デリミタ比較部１０８にて比較できるようにシフトレジスタをシフトさせ、スタートポイントレジスタ１０９、エンドポイントレジスタ１１０の開始ポインタ及び終了ポインタも入力されたＩＤに対応するのものを登録させておく。
【００５８】
そして、第１の実施形態と同様にして、デリミタの登録、結合、削除等を行い、シフトレジスタ１０２、１０５に格納されている値と開始ポインタ、終了ポインタとの比較を行うことで受信判定して出力する。これにより、第１の実施形態と同様の動作で、複数のＩＤに対応したＩＰフラグメントフレームの受信判定を行うことができる。
【００５９】
また、第２の実施形態におけるバッファ構造を図７に示す。第２の実施形態では、複数のＩＤに対応可能とするためにバッファを複数のＩＤによって分割してそれぞれの領域を予め確保する点が異なるだけで、各ＩＤに対応する領域内の構造は第１の実施形態と同様である。各領域は、受信開始と共にそのＩＤ用に一区画確保され、受信済みのＩＤから順次解放される。
【００６０】
以上、説明したように第２の実施形態によれば、上述した第１の実施形態により得られる効果に加え、複数のＩＰ識別子を有するフラグメントフレームの受信においても、入力するデリミタにＩＰ識別子（ＩＤ）を加えることで、複数のＩＤにわたるフラグメントフレーム受信判定についても対応することが可能となる。
【００６１】
なお、本発明を応用して、セグメント単位で受信されたＴＣＰデータの再構成においてシーケンスナンバーの差分などによりデリミタを算出することで、同様な受信検知装置が考案されることは言うまでもない。
【００６２】
（本発明の他の実施形態）
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、上記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００６３】
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体は本発明を構成する。また、そのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００６４】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００６５】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００６６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の第１の実施形態におけるＩＰフラグメント受信検出装置の構成例を示すブロック図である。
【図２】図１に示すＩＰフラグメント受信検出装置を有するデータ受信装置の構成例を示すブロック図である。
【図３】ＩＰヘッダのフォーマットを示す図である。
【図４】第１の実施形態におけるバッファでのデータグラムの保存形式を示す模式図である。
【図５Ａ】デリミタ保存シフトレジスタの状態（初期状態）を示す図である。
【図５Ｂ】デリミタ保存シフトレジスタの状態（第１のデリミタ書き込み）を示す図である。
【図５Ｃ】デリミタ保存シフトレジスタの状態（第２のデリミタ書き込み）を示す図である。
【図５Ｄ】デリミタ保存シフトレジスタの状態（第２のデリミタ書き込み）を示す図である。
【図５Ｅ】デリミタ保存シフトレジスタの状態（デリミタ結合）を示す図である。
【図５Ｆ】デリミタ保存シフトレジスタの状態（デリミタ結合）を示す図である。
【図５Ｇ】デリミタ保存シフトレジスタの状態（デリミタ結合）を示す図である。
【図５Ｈ】デリミタ保存シフトレジスタの状態（デリミタ結合）を示す図である。
【図５Ｉ】デリミタ保存シフトレジスタの状態（最終状態）を示す図である。
【図６】本発明の第２の実施形態におけるＩＰフラグメント受信検出装置の構成例を示すブロック図である。
【図７】第２の実施形態におけるバッファでのデータグラムの保存形式を示す模式図である。
【図８】ＩＰフラグメントが生じるネットワーク構成の一例を示す図である。
【図９】ＩＥＥＥ８０２．３フレームのデータフォーマットを説明するための図である。
【図１０Ａ】ＩＰフラグメントを説明するための図である。
【図１０Ｂ】ＩＰフラグメントの他の例を説明するための図である。
【図１１】従来のフラグメントデータ再構成処理を説明するための図である。
【符号の説明】
【００６８】
１０２、１０３、１０５、１０６  シフトレジスタ
１０７  デリミタ入力用レジスタ
１０８  デリミタ比較部
１０９  スタートポイントレジスタ
１１０  エンドポイントレジスタ
１１１  スタートポイント用比較部
１１２  エンドポイント用比較部
１１３  受信完了判定部
【図１】
2006081030.tif 000003
【図２】
2006081030.tif 000004
【図３】
2006081030.tif 000005
【図４】
2006081030.tif 000006
【図５Ａ】
2006081030.tif 000007
【図５Ｂ】
2006081030.tif 000008
【図５Ｃ】
2006081030.tif 000009
【図５Ｄ】
2006081030.tif 000010
【図５Ｅ】
2006081030.tif 000011
【図５Ｆ】
2006081030.tif 000012
【図５Ｇ】
2006081030.tif 000013
【図５Ｈ】
2006081030.tif 000014
【図５Ｉ】
2006081030.tif 000015
【図６】
2006081030.tif 000016
【図７】
2006081030.tif 000017
【図８】
2006081030.tif 000018
【図９】
2006081030.tif 000019
【図１０Ａ】
2006081030.tif 000020
【図１０Ｂ】
2006081030.tif 000021
【図１１】
2006081030.tif 000022