(57)【要約】【課題】パケットデータの処理を高速かつ柔軟に行うことが可能なパケット処理装置を提供する。【解決手段】パケット分割装置２１は受信パケットのヘッダ情報を抽出し、その情報に基づいてルーティング処理を行って送信パケット用にヘッダ情報を編集し、分割処理実施の判定で分割未実施と判定すると、パケット送信装置４に転送し、分割実施と判定すると、送信パケットからヘッダを抽出して分割送信パケット用として生成し、新たなパケットデータ記憶領域３２１〜３２ｎにヘッダデータを格納し、パケット情報記憶領域３１１〜３１ｍに送信時に必要となる情報を計算して格納する。パケット送信装置４はパケットデータ記憶領域３２１〜３２ｎに格納されたデータを、パケット情報記憶領域３１１〜３１ｍの情報を基に送信パケットとして装置外部へ送信伝送媒体１０２を介して送信する。【選択図】      図１
2004320392.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットを分割して複数の送信パケットを生成し、それらの送信パケットを送信するパケット処理装置であって、分割前の送信パケットのヘッダを基に分割パケット用に新たなヘッダを生成する生成手段と、前記分割前のパケットのペイロードに対して指定した分割開始位置から有効サイズまでを分割パケットのペイロードとして前記生成手段で生成されたヘッダに続けて転送する手段とを有することを特徴とするパケット処理装置。
【請求項２】
前記パケットを格納しかつ相互にポインタにて接続可能なリスト構成の複数のパケットデータ記憶領域を含み、前記複数のパケットデータ記憶領域に跨るデータを連続したパケットデータとして処理可能としたことを特徴とする請求項１記載のパケット処理装置。
【請求項３】
第２番目以降の分割送信パケットにおいて、分割前送信パケットのペイロードの開始位置を指定し、分割パケット用に生成したヘッダに続いて送信することを特徴とする請求項１または請求項２記載のパケット処理装置。
【請求項４】
前記複数の分割パケット用に生成したヘッダが格納されたパケットデータ記憶領域各々は、その先頭領域に予め設定された記憶容量の予約エリアを含むことを特徴とする請求項２または請求項３記載のパケット処理装置。
【請求項５】
前記受信したパケットに対して複数のヘッダが多重された場合に前記予約エリアに送信ヘッダの伸張及び挿入のいずれかの部分を格納することを特徴とする請求項４記載のパケット処理装置。
【請求項６】
受信したパケットを分割して複数の送信パケットを生成し、それらの送信パケットを送信するパケット処理装置のパケットデータ管理方法であって、前記パケット処理装置側に、分割前の送信パケットのヘッダを基に分割パケット用に新たなヘッダを生成するステップと、その生成されたヘッダに続けて前記分割前のパケットのペイロードに対して指定した分割開始位置から有効サイズまでを分割パケットのペイロードとして転送させるためのステップとを有することを特徴とするパケットデータ管理方法。
【請求項７】
前記パケットを格納しかつ相互にポインタにて接続可能なリスト構成の複数のパケットデータ記憶領域に跨るデータを連続したパケットデータとして処理可能としたことを特徴とする請求項６記載のパケットデータ管理方法。
【請求項８】
第２番目以降の分割送信パケットにおいて、分割前送信パケットのペイロードの開始位置を指定し、分割パケット用に生成したヘッダに続いて送信することを特徴とする請求項６または請求項７記載のパケットデータ管理方法。
【請求項９】
前記複数の分割パケット用に生成したヘッダが格納されたパケットデータ記憶領域各々は、その先頭領域に予め設定された記憶容量の予約エリアを含むことを特徴とする請求項７または請求項８記載のパケットデータ管理方法。
【請求項１０】
前記受信したパケットに対して複数のヘッダが多重された場合に前記予約エリアに送信ヘッダの伸張及び挿入のいずれかの部分を格納することを特徴とする請求項９記載のパケットデータ管理方法。
【請求項１１】
受信したパケットを分割して複数の送信パケットを生成し、それらの送信パケットを送信するパケット処理装置のパケットデータ管理方法のプログラムであって、コンピュータに、分割前の送信パケットのヘッダを基に分割パケット用に新たなヘッダを生成する処理と、その生成されたヘッダに続けて前記分割前のパケットのペイロードに対して指定した分割開始位置から有効サイズまでを分割パケットのペイロードとして転送させるための処理とを実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパケット処理装置及びそれに用いるパケットデータ管理方法並びにそのプログラムに関し、特にパケット処理装置におけるパケットデータの管理方法に関する。
【０００２】
【従来の技術】
従来、パケットバッファ管理装置や管理方式としては、例えば、パケットデータが長く、多くのメモリバッファを使用しているパケットから優先的に送信することで、メモリバッファの枯渇を防ぎ、効率的なメモリバッファの利用を図る方法がある（例えば、特許文献１参照）。
【０００３】
しかしながら、一般的に、ルータ装置内でのベストエフォート転送においては、受信パケットの順序性を保障することが望ましく、上記の方法はルータ装置に必ずしも適しているとはいえない。
【０００４】
また、この方法では、固定長のメモリエリアにパケットデータを分割して格納し、ヘッダを格納した固定長のメモリエリアのみをパケット編集装置に転送し、ヘッダを編集している。
【０００５】
しかしながら、編集処理によってヘッダが伸張した場合においては、ヘッダを格納した固定長のメモリエリアに予め空きエリアを用意する、もしくは、ヘッダ以降のペイロードを後退させることによって、空きエリアを確保するといったように伸張したヘッダデータを格納するエリアを確保する手段が備えられていない。また、ヘッダの伸張によって、ヘッダのサイズが１つのメモリエリアで収まらない場合の回避手段も備えられていない。
【０００６】
上記の方法は、多様なヘッダが多重化されるようなパケットに対して柔軟に対応することができず、またＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットのフラグメント処理に対しても対応していない。
【０００７】
【特許文献１】
特開２０００−３１６０２４号公報（第９，１０頁、図１）
【０００８】
【発明が解決しようとする課題】
上記のように、従来の方法では、ヘッダの伸張等がなく、ヘッダのサイズが固定の場合には効率的にパケットバッファを利用する方法が採られているが、近年、ルータ装置では多種多様なヘッダのパケットを取り扱う場合が増えてきており、パケットバッファを効率的に使用しつつ、ヘッダの伸張にも柔軟に対応することが必要とされている。加えて、ヘッダの挿入、伸張によって発生するパケットのフラグメント処理も高速に処理する方法も必要である。
【０００９】
一般的に、分割送信パケットを生成する場合には、分割送信パケットのヘッダを生成し、バッファに格納した後、さらに分割送信パケットのペイロード分を分割前パケットのペイロードからヘッダの格納されているバッファに複製する方法が考えられるが、この方法では複製に時間がかかるため、送信パケットの生成に遅延が発生するという問題がある。
【００１０】
そこで、本発明の目的は上記の問題点を解消し、パケットデータの処理を高速かつ柔軟に行うことができるパケット処理装置及びそれに用いるパケットデータ管理方法並びにそのプログラムを提供することにある。
【００１１】
【課題を解決するための手段】
本発明によるパケット処理装置は、受信したパケットを分割して複数の送信パケットを生成し、それらの送信パケットを送信するパケット処理装置であって、分割前の送信パケットのヘッダを基に分割パケット用に新たなヘッダを生成する生成手段と、前記分割前のパケットのペイロードに対して指定した分割開始位置から有効サイズまでを分割パケットのペイロードとして前記生成手段で生成されたヘッダに続けて転送する手段とを備えている。
【００１２】
本発明によるパケットデータ管理方法は、受信したパケットを分割して複数の送信パケットを生成し、それらの送信パケットを送信するパケット処理装置のパケットデータ管理方法であって、前記パケット処理装置側に、分割前の送信パケットのヘッダを基に分割パケット用に新たなヘッダを生成するステップと、その生成されたヘッダに続けて前記分割前のパケットのペイロードに対して指定した分割開始位置から有効サイズまでを分割パケットのペイロードとして転送させるためのステップとを備えている。
【００１３】
本発明によるパケットデータ管理方法のプログラムは、受信したパケットを分割して複数の送信パケットを生成し、それらの送信パケットを送信するパケット処理装置のパケットデータ管理方法のプログラムであって、コンピュータに、分割前の送信パケットのヘッダを基に分割パケット用に新たなヘッダを生成する処理と、その生成されたヘッダに続けて前記分割前のパケットのペイロードに対して指定した分割開始位置から有効サイズまでを分割パケットのペイロードとして転送させるための処理とを実行させている。
【００１４】
すなわち、本発明のパケット処理装置は、受信したパケットを分割して複数の送信パケットを生成し、それらの送信パケットを送信する装置において、分割前のパケットのヘッダを基に分割パケット用に新たなヘッダを生成するだけで、分割前のパケットのペイロードに対して指定した分割開始位置から有効サイズまでを分割パケットのペイロードとし、生成したヘッダに続けて転送することで、分割パケットのペイロードとなるべき分割前のパケットのペイロード内のデータ部分を生成したヘッダの後続に複製する必要なく、分割パケットを高速かつ効率的に処理可能なパケットデータ管理手段を備えることを特徴とする。
【００１５】
これによって、本発明のパケット処理装置では、パケットデータ記憶領域各々がポインタで相互に接続可能なリスト構成となっているため、複数のパケットデータ記憶領域に跨るデータを１つのパケットデータ記憶領域に複製して連続データとしなくとも、連続したパケットデータとして処理可能となり、パケットデータの処理を高速かつ柔軟に行うことが可能となる。
【００１６】
また、本発明のパケット処理装置では、上記の効果によって、第２番目以降の分割送信パケットにおいて、分割前送信パケットのペイロードの開始位置を指定し、ヘッダに続いて送信することで、ペイロードの複製処理が不必要となり、分割パケットの高速生成が可能となる。
【００１７】
さらに、本発明のパケット処理装置では、ヘッダの格納されたパケットデータ記憶領域の先頭に予約エリアを設け、受信パケットのヘッダの編集によって、送信パケットのヘッダが伸張した場合にも、予約エリアに送信ヘッダの伸張、挿入分を格納することで、ペイロードの再書込み処理が不必要となるため、高速なパケット編集処理が実現可能となる。
【００１８】
さらにまた、本発明のパケット処理装置では、予約エリアを設けることで、現在の多種多様なヘッダの組合せによる伸張にも柔軟に対応可能となり、装置として扱うヘッダの最大伸張サイズを予約エリアサイズとして設定することによって、メモリサイズを必要最小限に抑え、安価な装置の実現が可能となる。
【００１９】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例によるパケット処理装置の構成を示すブロック図である。図１において、本発明の一実施例によるパケット処理装置はパケット受信装置１と、パケット処理装置２と、パケット記憶装置３と、パケット送信装置４とから構成されている。
【００２０】
パケット受信装置１はパケットを装置外から受信し、パケット処理装置２はパケットデータを処理し、パケット記憶装置３はパケットを格納し、パケット送信装置４はパケットを装置外へ送信する。
【００２１】
パケット受信装置１は受信伝送媒体１０１を介して装置外部から転送されるパケットを受信し、パケットデータ記憶装置３２のパケットデータ記憶領域３２１〜３２ｎに格納する機能を備えている。
【００２２】
パケット記憶装置３はパケットデータ記憶装置３２とパケット情報記憶装置３１とを備えている。パケットデータ記憶装置３２は複数の固定長のパケットデータ記憶領域３２１〜３２ｎからなり、パケットデータ記憶領域３２１〜３２ｎ各々にパケットデータが格納される。また、パケットデータ記憶領域３２１〜３２ｎ各々は相互にポインタにて接続可能なリスト構成となっている。
【００２３】
パケット情報記憶装置３１は複数の固定長のパケット情報記憶領域３１１〜３１ｍからなり、パケット情報記憶領域３１１〜３１ｍ各々にパケットデータ記憶領域３２１〜３２ｎに格納したパケットに関するパケット制御情報とパケットデータ記憶領域３２１〜３２ｎの管理情報とが格納される。
【００２４】
例えば、１つのパケットデータ記憶領域３２１に対して１つのパケット情報記憶領域３１１が用意され、それらは１対１に対応しており、パケットデータ記憶領域３２１〜３２ｎのアドレスとパケット情報記憶領域３１１〜３１ｍのアドレスとからは互いのアドレスを一意に求めることが可能であり、パケット情報記憶領域３１１〜３１ｍのアドレスからパケットデータ記憶領域３２１〜３２ｎのアドレスを求めることで、パケットデータ記憶領域３２１〜３２ｎ内のデータが参照可能となる。
【００２５】
図２は図１のパケット情報記憶領域３１１〜３１ｍのフォーマットを示す図であり、図３はＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダのフォーマットを示す図である。
【００２６】
図２において、パケット情報記憶領域３１１〜３１ｍに格納される情報には、「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」、「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」、「Ｌｅｎｇｔｈ」、「Ｏｆｆｓｅｔ」、「Ｖａｌｉｄ  Ｓｉｚｅ」、「Ｎｅｘｔ  Ｏｆｆｓｅｔ」がある。
【００２７】
「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」は他のパケット情報記憶領域へリストする場合、そのアドレスが格納される。リストされない場合には「０」が格納される。
【００２８】
「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」は該当パケットデータ記憶領域をリスト先として指定しているパケットデータ記憶領域の数となる。但し、ヘッダが格納されているリストの先頭のパケットデータ記憶装置の場合には「１」を加算した値となる。初期値は「１」であり、リストされていない場合にも「１」となる。パケット送信装置４にてパケットデータが送信されると、「１」減算され、「０」になると、対応するパケットデータ記憶領域と共に開放される。
【００２９】
「Ｌｅｎｇｔｈ」はパケットデータ記憶領域に格納されたパケットのデータサイズを示す。複数にリストしている場合には全パケットデータ記憶領域内のデータの合計値を示す。「Ｏｆｆｓｅｔ」はパケットデータ記憶領域の先頭からのパケットデータの開始位置を示す。「Ｖａｌｉｄ  Ｓｉｚｅ」はパケットデータ記憶領域の先頭からのパケットデータの有効サイズを示す。「Ｎｅｘｔ  Ｏｆｆｓｅｔ」はパケットデータ記憶領域の先頭からの分割送信パケットのペイロードデータ開始位置を示す。
【００３０】
複数のパケットデータ記憶領域３２１〜３２ｎに格納されたデータは各々対応するパケット情報記憶領域３１１〜３１ｍのアドレスを基にリスト構成とすることによって、連続して参照可能となる。また、アドレスの指定によって、任意のパケット情報記憶領域３１１〜３１ｍに対してリストの作成が可能となるので、柔軟なリスト構成が可能である。
【００３１】
例えば、図１０を参照すると、パケットデータ記憶領域３２１からパケットのサイズが大きく、単一のパケットデータ記憶領域３２１だけではパケットが納まらない場合には、新たなパケットデータ記憶領域３２２に余ったデータを格納する。パケットデータ記憶領域３２１に対応するパケット情報記憶領域３１１の「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」にパケット情報記憶領域３１２のアドレスを格納し、リスト構成とすることで、パケットデータ記憶領域３２１からパケットデータ記憶領域３２２へと続けてデータを参照することができる。
【００３２】
パケットデータ記憶領域３２１〜３２ｎ及びパケット情報記憶領域３１１〜３１ｍのサイズは装置に適したサイズとすればよい。しかしながら、パケットデータ記憶領域３２１〜３２ｎのサイズは１６００バイト〜２０００バイト程度の範囲に設定するのが最も望ましい。
【００３３】
近年、伝送媒体としてイーサネット（Ｒ）が広く一般に普及しており、装置が取り扱うＩＰパケットのサイズは最大でもイーサネット（Ｒ）のＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）サイズである１５００バイトとなっている。
【００３４】
ヘッダの多重化によってパケットが伸張し、１５００バイトを超える場合が発生しても、単一のパケットデータ記憶領域３２１〜３２ｎにパケットデータを格納することができ、パケットデータ記憶領域３２１〜３２ｎを効率的に利用することができるためである。その結果、メモリの使用サイズを減少させることができ、安価な装置の実現が可能である。
【００３５】
分割が発生するのは、ヘッダの多重化によって「１５００バイト」のＭＴＵサイズを超えたパケットを２つに分割する場合がほとんどであるが、本実施例では２つ以上に分割する場合にも対応可能である。
【００３６】
パケット処理装置２はパケット分割装置２１及びパケット分割装置２１で実行するプログラム（コンピュータで実行可能なプログラム）を格納する記録媒体２２を備えている。パケット分割装置２１は受信パケットのヘッダ情報を抽出し、その情報に基づいてルーティング処理を行い、送信パケット用にヘッダ情報を編集する機能を備えている。
【００３７】
また、パケット分割装置２１はさらに分割処理実施の判定を行い、分割未実施と判定した場合にパケット送信装置４に転送し、分割実施と判定した場合に送信パケットからヘッダを抽出し、分割送信パケット用としてヘッダを生成し、新たなパケットデータ記憶領域３２１〜３２ｎにヘッダデータを格納する機能と、パケット情報記憶領域３１１〜３１ｍに送信時に必要となる情報を計算して格納する機能とを備えている。
【００３８】
パケット送信装置４はパケットデータ記憶領域３２１〜３２ｎに格納されたデータを、パケット情報記憶領域３１１〜３１ｍの情報を基に送信パケットとして装置外部へ送信伝送媒体１０２を介して送信する機能を備えている。
【００３９】
特に、パケット送信装置４は複数のパケットデータ記憶領域３２１，３２２に格納されているデータであっても、パケット情報記憶領域３１１，３１２のデータを基に一つの連続した送信パケットとなるように整形して送信する機能を備えている。
【００４０】
パケットデータ記憶領域３２１〜３２ｎのデータの送信を完了すると、対応するパケット情報記憶領域３１１〜３１ｍとともに、それらの領域を開放し、次パケットの受信に使用する。
【００４１】
装置の動作順序としては、パケット受信装置１で受信されたパケットはパケット記憶装置３のパケットデータ記憶装置３２１へ格納される。受信パケットはパケット分割装置２１にてパケットデータ記憶装置３２１に格納されている受信パケットのヘッダ情報を抽出し、その情報に基づいて、ルーティング処理を行い、送信パケット用にヘッダ情報を編集し、分割処理実施の可否を判定する。
【００４２】
分割実施と判定した場合、送信パケットからヘッダ情報を抽出し、第１番目の分割送信パケットのヘッダフィールドを書換える。さらに、第２番目以降の分割送信パケット用のヘッダを生成し、新たなパケットデータ記憶領域３２２〜３２ｎに格納する。さらにまた、パケット送信装置４にて送信時に必要となる情報を計算し、パケット情報記憶領域３１２〜３１ｍに格納するとともに、パケット情報記憶領域３１１にリストする。
【００４３】
パケット送信装置４は別々のパケットデータ記憶領域３２１に格納されている第１番目の分割送信パケットを送信した後、パケットデータ記憶領域３２２〜３２ｎに格納された第２番目以降の分割送信パケットのヘッダとパケットデータ記憶領域３２１に格納されているペイロードとを、各々のパケット情報記憶領域３１１〜３１ｍのデータを基に一つの連続した送信パケットとなるように整形し、装置外部へと送信する。
【００４４】
図４は図１のパケット分割装置２１の動作を示すフローチャートであり、図５は本発明の一実施例におけるＩＰパケットの分割例を示す図であり、図６（ａ），（ｂ）は図１のパケットデータ記憶領域３２１及びパケット情報記憶領域３１１へのデータの格納状態を示す図であり、図７（ａ），（ｂ）は図１のパケットデータ記憶領域３２１，３２２及びパケット情報記憶領域３１１，３１２へのデータの格納状態を示す図である。
【００４５】
これら図１〜図７を参照して本発明の一実施例によるパケット処理装置の動作について説明する。尚、図４に示す処理動作はパケット分割装置２１が記録媒体２２のプログラム（コンピュータで実行可能なプログラム）を実行することで実現される。
【００４６】
受信伝送媒体１０１、送信伝送媒体１０２のＭＴＵは、伝送媒体によって様々であるが、以下の説明では受信伝送媒体１０１のＭＴＵを１５００バイト、送信伝送媒体１０２のＭＴＵを１５００バイトとする。１５００バイトのＩＰパケットを受信し、ＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ４）カプセル化による送信パケットの伸張によって、送信伝送媒体１０２のＭＴＵサイズを超えるため、２分割して送信するものとする。また、本実施例では、パケットデータ記憶領域３２１〜３２ｎ各々のサイズをそれぞれ２０００バイトとする。
【００４７】
図３において、ＩＰヘッダの識別子（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）はＩＰパケットを分割した際に、他の分割されたパケットと識別するために、各分割送信パケットに同じ値を入れる。
【００４８】
ＩＰヘッダのフラグ（Ｆｒａｇｓ）のＭＦ（Ｍｏｒｅ  Ｆｒａｇｍｅｎｔｓ）ビットは後続のフラグメントが存在することを示し、ＤＦ（Ｄｏｎ’ｔ  Ｆｒａｇｍｅｎｔ）ビットはフラグメントの可否を示す。
【００４９】
ＩＰヘッダのフラグメントオフセット（Ｆｒａｇｍｅｎｔ  Ｏｆｆｓｅｔ）は分割送信パケットのペイロードが分割前送信ＩＰパケットのペイロードのどの位置からのデータであるかを８バイト単位で示す。
【００５０】
図６及び図７を参照すると、パケット受信装置１は受信伝送媒体１０１を介して、図５に示す受信パケットを受信すると、パケットデータ記憶装置３２内のパケットデータ記憶領域３２１〜３２ｎのうちのを１つ確保する。ここでは、パケットデータ記憶領域３２１を確保するものとする。
【００５１】
パケットデータ記憶領域３２１には領域の先頭から２５０バイトの予約エリアを設けておき、その予約エリア以降からパケットデータを書込む。パケットデータ記憶領域３２１に対応するパケット情報記憶領域３１１には「Ｎｅｘｔ  Ａｄｄｒｅｓｓ＝０」、「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ＝１」、「Ｌｅｎｇｔｈ＝１５１４」、「Ｏｆｆｓｅｔ＝２５０」が格納される。
【００５２】
予約エリアを設けることで、パケット処理装置２におけるヘッダの編集によって、ヘッダの伸張もしくは挿入が発生した場合、伸張もしくは挿入した分は予約エリアに書込むだけでよく、ペイロードはそのままで、後退させて書込み直す必要がなくなるため、パケット編集処理の高速化を実現することができる。
【００５３】
それに比べ、ペイロードも含めて全てのデータをパケットデータ記憶領域３２１〜３２ｎの先頭から書込んだ場合、伸張もしくは挿入するサイズ分だけ、全てのデータをずらして書込み直さなければならなくなる。
【００５４】
予約エリアのサイズは装置に適したサイズとすることができる。例えば、カプセル化、ＰＰＰｏＥ［Ｐｏｉｎｔ  ｔｏ  Ｐｏｉｎｔ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（Ｒ）］、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＭＰＬＳ（Ｍｕｌｔｉ  Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）等によるＬ３（Ｌａｙｅｒ  ３）、Ｌ２（Ｌａｙｅｒ  ２）ヘッダの伸張もしくは挿入に対して十分大きなサイズを確保しておけば、どのようにヘッダが伸張もしくは挿入されても柔軟に対応することが可能となる。但し、少なくとも装置として最もヘッダサイズが伸張した場合のサイズは確保しておかなくてはならない。
【００５５】
また、伸張もしくは挿入されるヘッダ種別を限定しているような場合には、予約エリアのサイズを必要最小限に設定することによって、メモリの使用サイズを減少させることができるため、安価な装置の実現が可能である。
【００５６】
パケット分割装置２１は受信パケットデータがパケットデータ記憶領域３２１に格納されると（図４ステップＳ１）、受信パケットのヘッダを抽出し、そのヘッダ情報の内容に基づいてルーティング処理を行う（図４ステップＳ２）。
【００５７】
パケット分割装置２１はその結果にしたがって受信ヘッダを編集し（図４ステップＳ３）、次の送信先を記入した送信ヘッダとして生成するか、もしくはカプセルＩＰヘッダのように新たに送信ヘッダが生成する。
【００５８】
本実施例ではＩＰヘッダのカプセル化によって、カプセルＩＰヘッダが生成され、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）ヘッダと受信パケットのＩＰヘッダとの間に挿入される。送信パケットのサイズはカプセルＩＰヘッダ分の「２０バイト」を伸張されるので、カプセルＩＰヘッダのパケット長フィールドは「２０」が加算され、「１５２０バイト」となる。
【００５９】
パケット分割装置２１は送信ヘッダのパケット長とフラグ（ＤＦビット）とから分割処理の可否を判断する（図４ステップＳ４）。すなわち、パケット分割装置２１はパケット長と送信伝送媒体１０２のＭＴＵサイズとを比較し、ＭＴＵサイズを超えていない、またはフラグ（ＤＦビット）＝１の場合、分割未実施と判断し（図４ステップＳ５）、パケット送信装置４に転送する（図４ステップＳ６）。
【００６０】
パケット分割装置２１は上記の場合以外であれば分割実施と判断し（図４ステップＳ５）、第１番目の分割送信パケット用としてカプセルＩＰヘッダのパケット長、識別子、フラグ（ＭＦビット）、フラグメントオフセット、チェックサムの各フィールドを書換える（図４ステップＳ７）。パケット長にはＭＴＵサイズである「１５００バイト」、識別子には装置で割り当てられた値、ＭＦビットには「１」、フラグメントオフセットには「０」をそれぞれ格納し、最後に、再計算したチェックサムの値を格納する。
【００６１】
パケットデータ記憶領域３２１に対応するパケット情報記憶領域３１１の「Ｌｅｎｇｔｈ」にはデータリンク層のヘッダサイズも含めた分割送信パケットのサイズである「１５１４バイト」を格納する（図４ステップＳ８）。この「Ｌｅｎｇｔｈ」で指定されたサイズまでが第１番目の分割送信パケットのデータとなり、これ以降のデータが第２番目の分割送信パケットのペイロードとなる。
【００６２】
パケットデータ記憶領域３２１において、ＭＡＣヘッダ及び追加となるカプセルＩＰヘッダは受信パケットのＩＰヘッダ以前のＭＡＣヘッダエリア及び予約エリアに上書きするので、「Ｏｆｆｓｅｔ」は「２３０バイト」となる。
【００６３】
上記のように、本実施例では、ヘッダフィールド及びパケット情報記憶領域３１１のデータの書換えが完了した時点で（図４ステップＳ９）、送信パケットがパケット送信装置４に転送される（図４ステップＳ１０）。
【００６４】
第２番目の分割送信パケットの生成において、パケット分割装置２１はパケットデータ記憶領域３２１に格納されている第１番目の分割送信パケットデータの先頭からカプセルＩＰヘッダまでを読出し（図４ステップＳ１１，Ｓ１２）、パケット長、フラグ（ＭＦビット）、フラグメントオフセット、チェックサムのフィールドを書換えて、新たに確保したパケットデータ記憶領域３２２の「２５０バイト」目から格納し、第２番目の分割送信パケット用のヘッダとする（図４ステップＳ１３）。
【００６５】
パケット長はルーティング処理後のパケット長から第１番目の分割送信パケットのパケット長を引いたサイズにヘッダサイズを加えた値となる。本実施例では、１５２０−１５００＋２０＝４０バイトとなる。ＭＦビットには「０」、フラグメントオフセットには「１８５」をそれぞれ格納し、最後に、再計算したチェックサムの値を格納する。
【００６６】
パケットデータ記憶領域３２２に対応するパケット情報記憶領域３１２の「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」には第１番目の分割送信パケットのパケット情報記憶領域３１１を示すアドレスを格納し、リスト構成とする。本実施例では「Ｎｅｘｔ  Ａｄｄｒｅｓｓ＝ｘ」となる。
【００６７】
パケット情報記憶領域３１２のアドレスからパケットデータ記憶領域３２２のアドレスは一意に定まるので、パケット情報記憶領域３１１のアドレス「ｘ」から、第２番目の分割送信パケットのペイロードが格納されたパケットデータ記憶領域３２１のアドレス「Ｘ」を得ることができる。
【００６８】
「Ｌｅｎｇｔｈ」にはデータリンク層のヘッダサイズも含めた分割送信パケットのサイズである「５４バイト」を格納する。パケットデータ記憶領域３２２の有効データの開始位置を「Ｏｆｆｓｅｔ」に格納し、パケットデータ記憶領域３２２の先頭からの有効サイズを「Ｖａｌｉｄ  Ｓｉｚｅ」に格納する。パケットデータ記憶領域３２１における第２番目の分割送信パケットのペイロード開始位置を「Ｎｅｘｔ  Ｏｆｆｓｅｔ」に格納する。
【００６９】
本実施例では「Ｏｆｆｓｅｔ＝２５０」、「Ｖａｌｉｄ  Ｓｉｚｅ＝２８４」、「Ｎｅｘｔ  Ｏｆｆｓｅｔ＝１７４４」となる。さらに、本実施例ではパケット情報記憶領域３１１の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」に「１」を加算し、「２」とする。
【００７０】
上記のように、本実施例では、ヘッダフィールド及びパケット情報記憶領域３１２のデータの書換えが完了した時点で（図４ステップＳ１４，Ｓ１５）、送信パケットがパケット送信装置４に転送される（図４ステップＳ６）。尚、上記の説明では分割数が「２」であるので、第２番目の分割送信パケットをパケット送信装置４に転送して処理を終了しているが、分割数が「３」以上の場合には上記の処理が繰返し行われる（図４ステップＳ１２〜Ｓ１６）。
【００７１】
パケット送信装置４は第１番目の分割送信パケットを受信すると、パケット情報記憶領域３１１の情報を読出し、「Ｏｆｆｓｅｔ」から「Ｌｅｎｇｔｈ」で指定されたサイズまで転送し、送信完了となる。このパケットデータ記憶領域３２１は第２番目の分割送信パケットのペイロードを含んでおり、対応するパケット情報記憶領域３１１はヘッダを格納しているパケットデータ記憶領域３２２に対応するパケット情報記憶領域３１２から参照されているため、送信完了に伴って、「２」となっている「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」の値から「１」を減算するが、「０」とはならないため、その領域を開放せずにおく。
【００７２】
続いて、パケット送信装置４は第２番目の分割送信パケットを受信すると、まずヘッダの格納されたパケットデータ記憶領域３２２に対応するパケット情報記憶領域３１２を参照し、パケットデータ記憶領域３２２の「Ｏｆｆｓｅｔ」の位置から「Ｖａｌｉｄ  Ｓｉｚｅ」で指定された位置までヘッダデータを送信する。
【００７３】
次に、パケット送信装置４は「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」で指定されている第１番目の分割送信パケットのパケット情報記憶領域３１１のアドレス「ｘ」から、第２番目の分割送信パケットのペイロードが格納されたパケットデータ記憶領域３２１のアドレス「Ｘ」を得る。得られたパケットデータ記憶領域３２１の「Ｎｅｘｔ  Ｏｆｆｓｅｔ」からペイロード部の送信を開始する。ヘッダとペイロードとの合計送信サイズがパケット情報記憶領域３１２の「Ｌｅｎｇｔｈ」に達した時点で、送信完了となる。
【００７４】
最後に、パケット情報記憶領域３１２，３１１の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」から「１」を減算すると、「０」となるので、パケット情報記憶領域３１２，３１１及びパケットデータ記憶領域３２２，３２１を開放する。
【００７５】
上記のように、本実施例では、分割前送信パケットのペイロードに対して、第２番目の分割送信パケットのペイロードの開始位置を指定し、ヘッダに続いて送信することで、ペイロードの複製処理が不必要となり、高速処理を実現することができる。
【００７６】
このように、本実施例では、パケットデータ記憶領域３２１〜３２ｎのリスト構成が可能なため、複数のパケットデータ記憶領域３２１〜３２ｎに跨るデータも連続したパケットデータとして処理可能となり、１つのパケットデータ記憶領域に複製して連続データとする必要がないため、パケットデータの処理を高速かつ柔軟に行うことができる。
【００７７】
また、本実施例では、この効果によって、第２番目以降の分割送信パケットにおいて、分割前送信パケットのペイロードの開始位置を指定し、ヘッダに続いて送信することで、ペイロードの複製処理が不必要となり、分割パケットを高速に生成することができる。
【００７８】
さらに、本実施例では、ヘッダの格納されたパケットデータ記憶領域３２１〜３２ｎ各々の先頭に予約エリアを設け、受信パケットのヘッダの編集によって、送信パケットのヘッダが伸張した場合にも、予約エリアに送信ヘッダの伸張もしくは挿入された分を格納することで、ペイロードの再書込み処理が不必要となるため、高速なパケット編集処理を実現することができる。
【００７９】
さらにまた、本実施例では、ヘッダの格納されたパケットデータ記憶領域３２１〜３２ｎ各々の先頭に予約エリアを設けることで、現在の多種多様なヘッダの組合せによる伸張にも柔軟に対応可能となり、装置として扱うヘッダの最大伸張サイズを予約エリアサイズとして設定することによって、メモリサイズを必要最小限に抑えることができ、安価な装置を実現することができる。
【００８０】
図８は本発明の一実施例におけるＩＰパケットの他の分割例を示す図であり、図９（ａ）〜（ｃ）は図１のパケットデータ記憶領域３２１〜３２３及びパケット情報記憶領域３１１〜３１３へのデータの格納状態を示す図である。これら図８及び図９を参照して本発明の一実施例によるパケット処理装置の３分割以上の場合の動作について説明する。
【００８１】
この分割例では受信伝送媒体１０１のＭＴＵが「１５００バイト」、送信伝送媒体１０２のＭＴＵが「６００バイト」であるとし、図８に示すように、「１５００バイト」のＩＰパケットを受信し、送信伝送媒体１０２のＭＴＵのサイズである「６００バイト」の制限によって３分割して送信するものとする。また、この分割例ではパケットデータ記憶領域３２１〜３２ｎ各々のサイズを「２０００バイト」、予約エリアを「２５０バイト」とする。
【００８２】
図９を参照すると、パケット受信装置１はパケットを受信すると、確保したパケットデータ記憶領域３２１の予約エリア以降からパケットデータを書込み、対応するパケット情報記憶領域３１１に「Ｎｅｘｔ  Ａｄｄｒｅｓｓ＝０」、「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ＝１」、「Ｌｅｎｇｔｈ＝１５１４」、「Ｏｆｆｓｅｔ＝２５０」をそれぞれ格納する。
【００８３】
パケット分割装置２１は受信パケットのヘッダを抽出し、そのヘッダ情報の内容に基づいてルーティング処理を行う。また、パケット分割装置２１はその結果にしたがって、送信ヘッダとして受信ヘッダを編集し、分割前の送信パケットを生成する。
【００８４】
パケット分割装置２１は分割前送信パケットのパケット長とフラグ（ＤＦビット）とから分割処理の可否を判定するが、フラグ（ＤＦビット）を「０」とすると、分割前送信パケットのパケット長が「１５００バイト」であり、送信伝送媒体１０２のＭＴＵサイズを超えているので、分割実施と判定する。
【００８５】
パケット分割装置２１は第１番目の分割送信パケットのＩＰヘッダとして、分割前送信パケットのＩＰヘッダのパケット長、識別子、フラグ（ＭＦビット）、フラグメントオフセット、チェックサムの各フィールドを書換える。ペイロードサイズが８の倍数で、ＩＰヘッダを加えたサイズがＭＴＵサイズ以下であるようにすると、ペイロードは「５７６バイト」となるので、パケット長は「５９６バイト」となる。識別子は装置で割り当てられた値、ＭＦビットは「１」、フラグメントオフセットは「０」となり、最後に、チェックサムが再計算されて格納される。
【００８６】
パケット情報記憶領域３１１の「Ｌｅｎｇｔｈ」にはパケット長にＭＡＣヘッダサイズを加えたサイズである「６１０バイト」を格納する。この「Ｌｅｎｇｔｈ」で指定されたサイズまでが第１番目の分割送信パケットのデータとなり、これ以降のデータが第２番目、第３番目の分割送信パケットのペイロードとなる。受信パケットから分割送信パケットへのヘッダ編集において、ヘッダサイズの変更はないため、「Ｏｆｆｓｅｔ」は「２５０バイト」のままである。
【００８７】
パケット分割装置２１はヘッダフィールド及びパケット情報記憶領域３１１のデータの書換えが完了した時点で、その送信パケットをパケット送信装置４に転送する。
【００８８】
パケット分割装置２１は第２番目の分割送信パケットの生成において、パケットデータ記憶領域３２１に格納されている第１番目の分割送信パケットのデータの先頭からＩＰヘッダまでを読出し、ＩＰヘッダのパケット長、識別子、フラグ（ＭＦビット）、フラグメントオフセット、チェックサムの各フィールドを書換えて、新たに確保したパケットデータ記憶領域３２２の「２５０バイト」目から格納し、第２番目の分割送信パケットのヘッダとする。
【００８９】
パケット長は分割前送信パケットのペイロードから第１番目の分割送信パケットのペイロードを引いたサイズにヘッダサイズを加えた値となるが、まだＭＴＵサイズを超えているため、第１番目の分割送信パケットと同様に、ペイロードのサイズを「５７６バイト」とすると、パケット長は「５９６バイト」となる。識別子は第１番目の分割送信パケットと同値、ＭＦビットは「１」、フラグメントオフセットは「７２」となり、最後に、チェックサムが再計算されて格納される。
【００９０】
パケット分割装置２１はパケットデータ記憶領域３２２に対応するパケット情報記憶領域３１２の「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」に第１番目の分割送信パケットのパケット情報記憶領域３１１のアドレス「ｘ」を格納し、リスト構成とする。「Ｌｅｎｇｔｈ」にはパケット長にＭＡＣヘッダサイズを加えたサイズである「６１０バイト」が格納される。
【００９１】
また、パケット分割装置２１はパケット情報記憶領域３１２の「Ｏｆｆｓｅｔ＝２５０」、「Ｖａｌｉｄ  Ｓｉｚｅ＝２８４」、「Ｎｅｘｔ  Ｏｆｆｓｅｔ＝２５０（Ｏｆｆｓｅｔ）＋１４（ＭＡＣヘッダ）＋２０（ＩＰヘッダ）＋５７６（第１番目の分割送信パケットのペイロード）＝８６０」を格納する。さらに、パケット分割装置２１はパケット情報記憶領域３１１の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」に「１」を加算し、「２」とする。
【００９２】
上記のように、本実施例では、ヘッダフィールド及びパケット情報記憶領域３１２のデータの書換えが完了した時点で、その送信パケットがパケット送信装置４に転送される。
【００９３】
第３番目の分割送信パケットの生成においても、パケット分割装置２１は上述した第２番目の分割送信パケットと同様に、パケットデータ記憶領域３２１に格納されている第１番目の分割送信パケットのデータの先頭からＩＰヘッダまでを読出し、ＩＰヘッダのパケット長、識別子、フラグ（ＭＦビット）、フラグメントオフセット、チェックサムの各フィールドを書換えて、新たに確保したパケットデータ記憶領域３２３の「２５０バイト」目から格納し、第３番目の分割送信パケットのヘッダとする。
【００９４】
パケット長は分割前送信パケットのペイロードから第１番目、第２番目の分割送信パケットのペイロードを引いたサイズにヘッダサイズを加えた値となり、ＭＴＵサイズ以下となるため、ペイロードのサイズは「３２８バイト」となり、パケット長は「３４８バイト」となる。識別子は第１番目の分割送信パケットと同値、ＭＦビットは「０」、フラグメントオフセットは「１４４」となり、最後に、チェックサムが再計算されて格納される。
【００９５】
パケット分割装置２１はパケットデータ記憶領域３２３に対応するパケット情報記憶領域３１３の「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」に第１番目の分割送信パケットのパケット情報記憶領域３１１のアドレス「ｘ」を格納し、リスト構成とする。パケット分割装置２１は「Ｌｅｎｇｔｈ」にはパケット長にＭＡＣヘッダサイズを加えたサイズである「３６２バイト」を格納する。
【００９６】
また、パケット分割装置２１はパケット情報記憶領域３１３の「Ｏｆｆｓｅｔ＝２５０」、「Ｖａｌｉｄ  Ｓｉｚｅ＝２８４」、「Ｎｅｘｔ  Ｏｆｆｓｅｔ＝８６０（第２番目の分割送信パケットのＮｅｘｔ  Ｏｆｆｓｅｔ）＋５７６（第２番目の分割送信パケットのペイロード）＝１４３６」を格納する。さらに、パケット分割装置２１はパケット情報記憶領域３１１の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」に「１」を加算し、「３」とする。
【００９７】
上記のように、本実施例では、ヘッダフィールド及びパケット情報記憶領域３１３のデータの書換えが完了した時点で、その送信パケットがパケット送信装置４に転送される。
【００９８】
パケット送信装置４は第１番目の分割送信パケットを受信すると、パケット情報記憶領域３１１の情報を読出し、「Ｏｆｆｓｅｔ」から「Ｌｅｎｇｔｈ」で指定されたサイズまで転送し、送信完了となる。このパケットデータ記憶領域３２１は第２番目、第３番目の分割送信パケットのペイロードを含んでおり、パケット情報記憶領域３１１はヘッダを格納しているパケットデータ記憶領域３２２，３２３に対応するパケット情報記憶領域３１２，３１３から参照され、「３」となっている「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」の値を送信完了に伴い、「１」を減算して「２」となる。この場合には、「０」にならないため、領域を開放せずにおく。
【００９９】
続いて、パケット送信装置４は第２番目の分割送信パケットを受信すると、まずヘッダの格納されたパケットデータ記憶領域３２２に対応するパケット情報記憶領域３１２の「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」、「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」、「Ｌｅｎｇｔｈ」、「Ｏｆｆｓｅｔ」、「Ｖａｌｉｄ  Ｓｉｚｅ」、「Ｎｅｘｔ  Ｏｆｆｓｅｔ」を読込む。パケット送信装置４はパケットデータ記憶領域３２２の「Ｏｆｆｓｅｔ」の位置から「Ｖａｌｉｄ  Ｓｉｚｅ」の位置までのヘッダデータを送信する。
【０１００】
第２番目の分割送信パケットのペイロードが格納されたパケットデータ記憶領域３２１のアドレス「Ｘ」は「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」で指定されているパケット情報記憶領域３１１のアドレス「ｘ」から得られる。パケット送信装置４はパケットデータ記憶領域３２１の「Ｎｅｘｔ  Ｏｆｆｓｅｔ」からペイロード部の送信を開始する。ヘッダとペイロードとの合計送信サイズが「Ｌｅｎｇｔｈ」に達した時点で、送信完了となる。
【０１０１】
最後に、パケット情報記憶領域３１２，３１１の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」からそれぞれ「１」を減算する。パケット情報記憶領域３１２の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」は「０」となるので、対応するパケットデータ記憶領域３２２とともに開放される。パケット情報記憶領域３１１の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」は「１」となり、ヘッダを格納しているパケット情報記憶領域３１３からまだ参照されているため、開放せずにおく。
【０１０２】
続いて、パケット送信装置４は第３番目の分割送信パケットを受信すると、第２番目の分割送信パケットと全く同様に、送信処理を行う。すなわち、パケット送信装置４はまずヘッダの格納されたパケットデータ記憶領域３２３に対応するパケット情報記憶領域３１３の「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」、「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」、「Ｌｅｎｇｔｈ」、「Ｏｆｆｓｅｔ」、「Ｖａｌｉｄ  Ｓｉｚｅ」、「Ｎｅｘｔ  Ｏｆｆｓｅｔ」を読込む。
【０１０３】
パケット送信装置４はパケットデータ記憶領域３２３の「Ｏｆｆｓｅｔ」の位置から「Ｖａｌｉｄ  Ｓｉｚｅ」の位置までのヘッダデータを送信する。第３番目の分割送信パケットのペイロードが格納されたパケットデータ記憶領域３２１のアドレス「Ｘ」は「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」で指定されているパケット情報記憶領域３１１のアドレス「ｘ」から得られる。パケット送信装置４はパケットデータ記憶領域３２１の「Ｎｅｘｔ  Ｏｆｆｓｅｔ」からペイロード部の送信を開始する。この送信はヘッダとペイロードとの合計送信サイズが「Ｌｅｎｇｔｈ」に達した時点で完了となる。
【０１０４】
最後に、パケット送信装置４はパケット情報記憶領域３１３，３１１の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」からそれぞれ「１」を減算する。パケット情報記憶領域３１３，３１１の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」はともに「０」となるので、パケット送信装置４はそれらに対応するパケットデータ記憶領域３２３，３２１とともに開放する。
【０１０５】
上記のように、本実施例では、３つ以上の複数の分割前送信パケットに分割した場合にも、パケット情報記憶領域３１１〜３１ｍをリスト構成にし、各々の分割送信パケットのペイロードの送信開始位置（Ｎｅｘｔ  Ｏｆｆｓｅｔ）とサイズ（Ｌｅｎｇｔｈ）とを指定することで、分割前の送信パケットのペイロードを複数の任意のデータサイズに区切って送信することができる。
【０１０６】
さらに、上記のように、本実施例ではパケットの分割処理の場合について説明したが、本発明はこれに限定されるものではない。本発明のパケットデータ管理方法を用いることで、その他のパケットデータ処理、例えば、複数のマルチキャストパケットを生成する場合やフラグメントパケットの再構築処理においても、上記と同様に実現することができる。
【０１０７】
マルチキャストパケット生成の場合、マルチキャストパケットはヘッダ部が異なり、ペイロード部が共通であるので、パケットの分割処理の場合と同様に、パケット処理装置２によって受信パケットから第２番目以降のマルチキャストパケットのヘッダデータを生成し、受信パケットのヘッダ編集によって得られた第１番目のマルチキャストパケットとは別のパケットデータ記憶領域に格納する。対応する第２番目以降のマルチキャストパケットのパケット情報記憶領域を第１番目のマルチキャストパケットのパケット情報記憶領域に対してリスト構成とし、「Ｎｅｘｔ  Ａｄｄｒｅｓｓ」に第１番目のマルチキャストパケットのパケット情報記憶領域のアドレスを格納する。
【０１０８】
ここで、「Ｎｅｘｔ  Ｏｆｆｓｅｔ」に第１番目のマルチキャストパケットのペイロード開始位置を指定することによって、それぞれヘッダ部が異なり、共通のペイロード部を持つ複数のパケットを生成することが可能となる。「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」には「１」、「Ｌｅｎｇｔｈ」にはヘッダとペイロードとの合計サイズ、「Ｏｆｆｓｅｔ」にはヘッダデータ開始位置、「ＶａｌｉｄＳｉｚｅ」には対応するパケットデータ記憶領域の先頭からのヘッダデータの有効サイズをそれぞれ格納する。第１番目のマルチキャストパケットのパケット情報記憶領域の「Ｒｅｆｅｒｅｎｃｅ  Ｃｏｕｎｔ」にはリストされているパケット情報記憶領域の数だけ加算する。
【０１０９】
第２番目以降のマルチキャストパケットはパケット送信装置４によって、「Ｏｆｆｓｅｔ」の位置から「Ｖａｌｉｄ  Ｓｉｚｅ」で指定された位置までヘッダデータを送信された後、ペイロードの格納されたパケットデータ記憶領域の「Ｎｅｘｔ  Ｏｆｆｓｅｔ」で指定された位置からデータを送信され、ヘッダとペイロードとの合計送信サイズが「Ｌｅｎｇｔｈ」に達した時点で完了となる。
【０１１０】
上記のように、マルチキャストパケット生成の場合においても、第２番目以降のマルチキャストパケットはヘッダの生成のみで、ペイロードは共通のパケットデータ記憶領域内のペイロード開始位置からのデータとすることで、ペイロードをヘッダの格納されたパケットデータ記憶領域へ複製する処理が不必要となるため、複数のマルチキャストパケットを高速に生成することができる。
【０１１１】
【発明の効果】
以上説明したように本発明は、上記のような構成及び動作とすることで、パケットデータの処理を高速かつ柔軟に行うことができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施例によるパケット処理装置の構成を示すブロック図である。
【図２】図１のパケット情報記憶領域のフォーマットを示す図である。
【図３】ＩＰヘッダのフォーマットを示す図である。
【図４】図１のパケット分割装置の動作を示すフローチャートである。
【図５】本発明の一実施例におけるＩＰパケットの分割例を示す図である。
【図６】（ａ），（ｂ）は図１のパケットデータ記憶領域及びパケット情報記憶領域へのデータの格納状態を示す図である。
【図７】（ａ），（ｂ）は図１のパケットデータ記憶領域及びパケット情報記憶領域へのデータの格納状態を示す図である。
【図８】本発明の一実施例におけるＩＰパケットの他の分割例を示す図である。
【図９】（ａ）〜（ｃ）は図１のパケットデータ記憶領域及びパケット情報記憶領域へのデータの格納状態を示す図である。
【図１０】（ａ），（ｂ）は図１のパケットデータ記憶領域及びパケット情報記憶領域へのデータの格納状態を示す図である。
【符号の説明】
１  パケット受信装置
２  パケット処理装置
３  パケット記憶装置
４  パケット送信装置
２１  パケット分割装置
２２  記録媒体
３１  パケット情報記憶装置
３２  パケットデータ記憶装置
１０１  受信伝送媒体
１０２  送信伝送媒体
３１１〜３１ｍ  パケット情報記憶領域
３２１〜３２ｎ  パケットデータ記憶領域
【図１】
2004320392.tif 000003
【図２】
2004320392.tif 000004
【図３】
2004320392.tif 000005
【図４】
2004320392.tif 000006
【図５】
2004320392.tif 000007
【図６】
2004320392.tif 000008
【図７】
2004320392.tif 000009
【図８】
2004320392.tif 000010
【図９】
2004320392.tif 000011
【図１０】
2004320392.tif 000012