(57)【要約】【課題】受信パケットに応じて元のデータグラムを効率よく再組み立てすることができるデータグラム再組立装置を提供する。【解決手段】受信したパケットのヘッダの情報に応じてキューを指定するキュー指定手段と、受信したパケットに対して指定されたキュー毎にヘッダのフラグメントオフセットに応じて断片番号を設定するキュー管理手段と、受信したパケットをキュー及び断片番号に対応させてバッファメモリに書き込む書込手段と、バッファメモリに書き込まれた同一キューのパケットのデータを断片番号順に読み出す読出手段と、読み出されたデータを蓄積して元のデータグラムとして出力するデータ蓄積手段と、を備えた。【選択図】図２
2007274056.tif 000002
【特許請求の範囲】
【請求項１】
送信側でデータグラムが複数の断片パケットに分割されてネットワークを介して受信側に伝送される通信システムにおいて、受信側で受信したパケットに応じて元のデータグラムを再組み立てするデータグラム再組立装置であって、
前記複数の断片パケット各々はデータグラム中のデータ位置を示すフラグメントオフセットを有する情報をヘッダに含み、
前記受信したパケットのヘッダの情報を解析するヘッダ解析手段と、
前記ヘッダの情報に応じてキューを指定するキュー指定手段と、
前記受信したパケットに対して前記キュー指定手段によって指定されたキュー毎に前記ヘッダのフラグメントオフセットに応じて断片番号を設定するキュー管理手段と、
前記受信したパケットを前記キュー指定手段によって指定されたキュー及び前記キュー管理手段によって設定された断片番号に対応させてバッファメモリに書き込む書込手段と、
前記バッファメモリに書き込まれた同一キューのパケットのデータを前記断片番号順に読み出す読出手段と、
前記読み出されたデータを蓄積して前記元のデータグラムとして出力するデータ蓄積手段と、を備えたことを特徴とするデータグラム再組立装置。
【請求項２】
少なくとも前記ヘッダ解析手段、前記キュー管理手段、前記書込手段、前記読出手段及びデータ蓄積手段は、前記ネットワークからパケットを受信するフレーム終端手段と共に単一の集積回路によって構成されることを特徴とする請求項１記載のデータグラム再組立装置。
【請求項３】
前記キュー指定手段は、前記ヘッダの情報中のＩＤ、プロトコル番号及び送信元ネットワークアドレスに応じてキューを設定する連想メモリからなることを特徴とする請求項１記載のデータグラム再組立装置。
【請求項４】
前記キュー管理手段は、前記キュー指定手段によって指定されたキュー毎にキューの使用／空き状態を示す情報、及び前記断片番号に対応した前記バッファメモリの蓄積状態情報を含むキュー管理情報を保持することを特徴とする請求項１記載のデータグラム再組立装置。
【請求項５】
前記キュー管理手段は、前記キュー指定手段によってキューが新たに指定されてから所定時間内に１つのデータグラムを構成する全ての断片パケットが得られなかった場合には該当キューに関するキュー管理情報の削除処理を行い、前記キュー指定手段に対して当該キューの指定を削除させることを特徴とする請求項１又は４記載のデータグラム再組立装置。
【請求項６】
前記キュー管理手段は、前記キュー指定手段によってキューが新たに指定されてから所定時間内に１つのデータグラムを構成する全ての断片パケットが得られ、更に前記全ての断片パケットのデータが前記断片番号順に読み出された時点で該当キューに関するキュー管理情報の削除処理を行い、前記キュー指定手段に対して当該キューの指定を削除させることを特徴とする請求項１又は４記載のデータグラム再組立装置。
【請求項７】
前記ヘッダ解析手段は、前記受信したパケットが分割されていない非分割パケットである場合には前記受信したパケットを前記データ蓄積手段にそのまま出力することを特徴とする請求項１記載のデータグラム再組立装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信側でデータグラムが複数の断片パケットに分割されてネットワークを介して受信側に伝送される通信システムにおいて、受信側で受信したパケットに応じて元のデータグラムを再組み立てするデータグラム再組立装置に関する。
【背景技術】
【０００２】
データグラムがネットワークを介して伝送される際に、そのデータグラムのサイズが１パケットとしてのネットワークの送信単位を越えているときには送信側で複数のパケットに分割して伝送される。そのような分割パケットを受信する側においては、受信したパケットに応じて元のデータグラムを再組み立てすることが行われる。
【０００３】
従来のデータグラム再組立装置においては、図１に示すように、伝送されたパケットを受信するフレーム終端部７１と、フレーム終端部７１で受信されたパケットをソフトウエア処理によってバッファメモリ７２に書き込んでパケットを所定の順番にバッファメモリ７２から読み出すマイクロプロセッサ（又はネットワークプロセッサ）７３と、その読み出されたパケットを蓄積して外部に出力するデータ蓄積部７４とが備えられている（例えば、特許文献１及び２参照）。
【特許文献１】特開２００３−２２９９０７号公報
【特許文献２】特開２００４−１３５０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のデータグラム再組立装置においては、分割化されていない小さなデータ量の受信パケットに対してもマイクロプロセッサによってソフトウエア処理が施されるので、単位時間当たりに処理されるべきパケット数が増大すると回線速度の最大スループットの性能を出せなくなるという問題点があった。
【０００５】
そこで、本発明の目的は、単位時間当たりに処理されるべきパケット数が増大しても受信パケットに応じて元のデータグラムを効率よく再組み立てすることができるデータグラム再組立装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明のデータグラム再組立装置は、送信側でデータグラムが複数の断片パケットに分割されてネットワークを介して受信側に伝送される通信システムにおいて、受信側で受信したパケットに応じて元のデータグラムを再組み立てするデータグラム再組立装置であって、前記複数の断片パケット各々はデータグラム中のデータ位置を示すフラグメントオフセットを有する情報をヘッダに含み、前記受信したパケットのヘッダの情報を解析するヘッダ解析手段と、前記ヘッダの情報に応じてキューを指定するキュー指定手段と、前記受信したパケットに対して前記キュー指定手段によって指定されたキュー毎に前記ヘッダのフラグメントオフセットに応じて断片番号を設定するキュー管理手段と、前記受信したパケットを前記キュー指定手段によって指定されたキュー及び前記キュー管理手段によって設定された断片番号に対応させてバッファメモリに書き込む書込手段と、前記バッファメモリに書き込まれた同一キューのパケットのデータを前記断片番号順に読み出す読出手段と、前記読み出されたデータを蓄積して前記元のデータグラムとして出力するデータ蓄積手段と、を備えたことを特徴としている。
【０００７】
本発明によれば、受信したパケットのヘッダの情報に応じてキューを指定し、キュー毎にヘッダのフラグメントオフセットに応じて断片番号を設定し、指定キュー及び設定断片番号に対応させてバッファメモリに書き込み、バッファメモリに書き込まれた同一キューのパケットのデータを断片番号順に読み出すので、単位時間当たりに処理されるべきパケット数が増大しても受信パケットに応じて元のデータグラムを効率よく再組み立てすることができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【０００９】
図２は本発明の実施例としてデータグラム再組立装置を示している。この通信処理装置は、通信処理回路１、マイクロプロセッサ２、バッファメモリ３及び連想メモリ４を備えている。マイクロプロセッサ２、バッファメモリ３及び連想メモリ４は通信処理回路１に接続されている。
【００１０】
通信処理回路１は集積回路からなり、複数のパケットを受け入れて元のデータグラムに再組み立てする。その複数のパケットはデータグラムを分割して得られたパケットであり、ネットワークを通過可能なサイズにされている。マイクロプロセッサ２は通信処理回路１内のマイクロプロセッサインターフェース部２３を介して通信処理回路１内の各部の初期設定を含む制御動作を行う。バッファメモリ３はパケットを一時的に蓄積する。バッファメモリ３のパケットの書込及び読出は通信処理回路１によって制御される。連想メモリ４はキュー（待ち行列）を検索するために使用され、データを指定すると、そのデータが格納されていれば、そのアドレスを参照することができるメモリである。
【００１１】
通信処理回路１は、フレーム終端部１１、ヘッダ解析部１２、書込制御部１３、読出制御部１４、アドレス制御部１５、双方向バッファ１６、データ蓄積部１７、連想メモリインターフェース部１８、キュー管理部１９、キュー検索部２０、キュー更新部２１、キューエージング部２２、及びマイクロプロセッサインターフェース部２３を備えている。
【００１２】
フレーム終端部１１はヘッダ解析部１２に接続され、ＩＰ（インターネットプロトコル）ネットワークの伝送ラインを介して送られてきたフレームデータを受信してフレームデータのパケットを取り出してそれをヘッダ解析部１２に供給する。ヘッダ解析部１２はパケットのヘッダを解析して分割パケットと非分割パケットとを判別する。ヘッダ解析部１２は書込制御部１３及びデータ蓄積部１７に接続され、分割パケットを書込制御部１３に転送し、非分割パケットをデータ蓄積部１７に転送する。更に、ヘッダ解析部１２はキュー管理部１９及びキュー検索部２０に接続されている。ヘッダ解析部１２からキュー検索部２０にはヘッダから取得したＩＤ（識別番号）、プロトコル番号、及び送信元ネットワークアドレスからなる情報が供給され、キュー管理部１９にはヘッダの情報から判定した断片番号とヘッダから取得した断片継続フラグ及びフラグメントオフセットとからなる情報が供給される。
【００１３】
キュー検索部２０は連想メモリインターフェース部１８と接続され、その間においては検索要求信号、検索データ、検索結果信号及び連想メモリアドレスが通信される。また、キュー更新部２１は連想メモリインターフェース部１８と接続され、その間においては更新要求信号、更新アドレス、及び更新データが通信される。
【００１４】
また、キュー管理部１９は書込制御部１３及び読出制御部１４に接続されている。キュー管理部１９と書込制御部１３との間においては書込要求信号、キュー番号、断片番号及び書込完了信号が通信される。キュー管理部１９と読出制御部１４との間においては読出要求信号、キュー番号、断片番号及び読出完了信号が通信される。
【００１５】
双方向バッファ１６とバッファメモリ３とはデータバス５を介して接続されている。アドレス制御部１５とバッファメモリ３とは制御・アドレスバス６を介して接続されている。書込制御部１３は分割パケットを双方向バッファ１６を介してバッファメモリ３に書き込む。読出制御部１４はバッファメモリ３に書き込まれた分割パケットを双方向バッファ１６を介して読み出してパケットを再組み立てする。アドレス制御部１５はバッファメモリ３のパケット書き込み及び読み出しの際のアドレスを制御する。そのために書込制御部１３とアドレス制御部１５とは接続され、書込制御部１３からアドレス制御部１５へはバッファ書込要求信号及びバッファメモリアドレスが供給され、アドレス制御部１５から書込制御部１３へはバッファ書込許可信号が供給される。また、読出制御部１４とアドレス制御部１５とは接続され、読出制御部１４からアドレス制御部１５へはバッファ読出要求信号及びバッファメモリアドレスが供給され、アドレス制御部１５から読出制御部１４へはバッファ読出許可信号が供給される。
【００１６】
読出制御部１４はデータ蓄積部１７に接続されており、組み立てたパケットをデータ蓄積部１７に供給する。データ蓄積部１７は、ヘッダ解析部１２から転送された非分割パケットを内部メモリ（図示せず）に一時蓄積すると共に読出制御部１４から供給されたパケットを内部メモリに一時蓄積し、更に、蓄積したパケットをメモリから順番に読み出して再組み立てされたデータグラムとして後段回路へ出力する。
【００１７】
次に、かかる構成のデータグラム再組立装置の動作について説明する。
【００１８】
ネットワークの送信単位を越えるデータについては、例えば、図３に示すように、分割される。図３の例では、ネットワーク層のＩＰヘッダ５０と元のデータ６０とからなるデータグラムはデータ伝送のパケットとしては送信単位を越えており、元のデータ６０は３つの断片データ（第１断片データ６１〜第３断片データ６３）に分割されてパケット化される。断片データ毎のパケットの先頭にネットワーク層のＩＰヘッダ５１〜５３が配置される。このように形成された分割パケットはネットワークの送信単位内にされている。
【００１９】
ＩＰヘッダは、IETF Standard RFC791やRFC2460にて標準化されており、例えば、ＩＰバージョン４の場合、図４に示すような構造になっている。すなわち、バージョン、ヘッダ長、サービスタイプ、パケット長、ＩＤ、断片継続フラグ、フラグメントオフセット、生存時間、プロトコル番号、ヘッダチェックサム、送信元アドレス及び送信先アドレスを含む。
【００２０】
フレーム終端部１１にて受信されたパケットは、ヘッダ解析部１２に供給される。ヘッダ解析部１２はそのパケットが分割されたパケットであるか否かを判別する。分割されていない非分割パケットはヘッダ解析部１２からデータ蓄積部１７へ送信される。一方、分割されたパケット、すなわち分割パケットである場合には、ヘッダ解析部１２は、複数の分割パケットのうちの何番目のパケットであるかを、ヘッダに含まれる断片継続フラグ及びフラグメントオフセットの情報から判定する。断片継続フラグは、最終の分割パケット（断片パケット）の場合には０を示し、その他のパケットの場合には１を示す。また、フラグメントオフセットはそのパケットの断片データの先頭が、元のデータグラムのデータのどの部分に位置するのかを表す情報である。また、送信分割単位について狭い値の範囲に制限、例えば、データ部の長さで１４００バイトから１４８０バイトになるように装置で制限を設けることにより、フラグメントオフセットの値により断片番号すなわち「何番目のパケットか」が図５にて示されるように一義的に決まるようになる。これにより、断片パケットの断片番号の受信順序が任意の並びであっても、再組立て処理が可能であり、ネットワークで発生し得るパケット順序逆転や重複に対応することが可能である。
【００２１】
ヘッダ解析部１２は、パケットのヘッダに含まれるＩＤ、プロトコル番号、及び送信元アドレスを取得し、キュー検索部２０に出力する。同一のデータグラムから分割されたパケットは同一のＩＤを有しており、それは送信元の装置にてデータグラム毎に割り当てられた数値である。キュー検索部２０では、ヘッダ解析部１２から取得した情報を検索データとして連想メモリインタフェース部１８を介して連想メモリ４に対してルックアップコマンドを発行する。連想メモリ４はルックアップコマンドに応答して検索データに一致したデータが格納されているならば、そのアドレスを出力するルックアップ動作を行う。
【００２２】
連想メモリ４は、ルックアップの結果、検索データに対応したアドレスが存在しない場合には、新規にキューを割り当てて、キュー番号をアドレスとしてその新規の検索データを連想メモリ４に登録する処理を行う。一方、検索データに対応したアドレスが存在する場合には、連想メモリ４は、キュー番号を示すアドレスを出力するので、そのアドレスに応じてキュー管理部１９が管理する各種キュー管理情報の更新が行われる。なお、キュー番号は同一のデータグラムから分割されたパケットであるならば、同一番号となる。
【００２３】
キュー管理部１９は、管理情報として、各キューの使用／空き状態を示す情報、及び各キュー毎に最大分割数分のバッファの蓄積状態情報を備えている。新規ＩＤパケットを受信した際、すなわち、検索データの連想メモリ４ヘの登録の際には、該当キューを使用状態とする。また、フラグメントオフセットの値から断片番号を判断し、該当キューの蓄積状態情報のうちのその断片番号に対応したビットのみ１とし、残りのビットは０とする。
【００２４】
キューエージング部２２では、新規ＩＤパケット受信の際、該当するキュー番号のタイマがセットされて所定時間の時間計測が開始される。このタイマには、該当キューの分割パケットに基づいたデータグラムの再組立て処理を廃棄する時間が所定時間としてセットされる。このタイマがセットされてからその時間計測中には該当キューは維持され、再組立て処理が可能となる。
【００２５】
キュー管理部１９では、新規割り当て又は検索されたキュー番号と、フラグメントオフセットの値による断片番号が書込制御部１３に出力される。書込制御部１３では、キュー番号と断片番号とからバッファメモリ３のアドレスを算出し、アドレス制御部１５に対して書込要求信号とバッファメモリアドレスとを出力する。アドレス制御部１５では、バッファメモリ３のバス調停が行われ、バスの利用権取得後に、書込許可信号を書込制御部１３に出力する。書込許可信号の入力からタイミングを取って、パケットのデータをデータバス５へ出力する動作を行う。
【００２６】
図６は、バッファメモリ３の論理構造例を示している。各キューは、１つの断片パケットを格納できるパケットバッファ１〜ｎを最大分割数分ｎ持っており、そのセットを最大キュー分ｍだけ持っている。なお、最大分割数ｎや最大キューの値ｍは、上位レイヤのアプリケーションに依存するため、本実施例では特に限定しない。以上のようなキュー検索、キュー管理及び書込動作により、１つの断片パケットがバッファメモリ３に格納される。
【００２７】
キュー管理部１９における各キューのバッファの蓄積状態情報は、同一キューの断片パケット受信時に更新される。断片継続フラグが１、すなわち最終断片パケットである際には、該当キューのその断片番号以上の蓄積状態情報をセットする。それにより、該当キューの蓄積状態情報の全ビットがセットされたことか否かを判定することにより、そのデータグラムの全ての断片パケットが揃ったことを判断することができる。
【００２８】
そのデータグラムの断片パケットが揃ったことを判断した後は、キュー管理部１９内の読出要求待ち行列に該当キューを格納し、キュー管理部１９から読出制御部１４へ読出要求信号とキュー番号を通知する。それを受けた読出制御部１４は、１番目の断片パケットから順に、バッファメモリ３から読み出し、データ蓄積部１７に一時蓄積させる。２番目以降の断片パケットは、ネットワーク層のＩＰヘッダを削除してデータ蓄積部１７に一時蓄積していく。最終断片パケットまでデータ蓄積部１７に一時蓄積した後、データ蓄積部１７のメモリから読み出すと、再組立てされたデータグラムを出力することができる。このデータグラム出力は、図３のネットワーク層のＩＰヘッダ５０と元のデータ６０のような形となる。
【００２９】
最終断片パケットの読み出しが完了したときには、読出制御部１４からキュー管理部１９へ読出完了信号が出力される。読出完了信号を受けたキュー管理部１９はキュー削除処理を行い、キューエージング部２２は該当キューのタイマのクリアを行う。
【００３０】
キュー削除処理では、キュー更新部２１から該当キューに対応したアドレスのデータを初期状態とする書込要求を連想メモリインタフェース部１８経由で連想メモリ４に対して行う。キュー管理部１９内の読出要求待ち行列から該当キューを削除する。最後に、キュー管理部１９内のキュー使用／空き状態情報を該当キューについて空き状態にセットする。
【００３１】
キューエージング部２２内のタイマはキューの数分持っており、周期的に減算処理を行っている。上記の所定時間が経過してタイマ値が１から０に変化した際は、所定時間内に該当のキューの最終断片パケットの読み出しが完了しなかったので、そのキューの削除処理が行われる。前述の最終断片パケットの読み出しが完了した場合のキュー削除処理と同様、キュー更新部２１から該当キューに対応したアドレスのデータを初期状態とする書込要求を連想メモリインタフェース部１８経由で連想メモリ４に対して行い、キュー管理部１９上のキュー使用／空き状態情報を該当キューについて空き状態にセットする。
【００３２】
なお、上記した実施例においては、バッファメモリ３及び連想メモリ４は、集積回路からなる通信処理回路１に外部接続されているが、バッファメモリ３及び連想メモリ４の少なくとも一方を通信処理回路１と共に集積回路化しても良い。
【００３３】
以上のように、本発明によれば、単位時間当たりに処理されるべきパケット数が増大しても受信パケットに応じて元のデータグラムを効率よく再組み立てすることができる。また、通信処理回路を集積回路化してハードウエアで実現しているので、再組み立て処理に必要な処理時間のばらつきを抑制することができ、回線速度の論理上の最大スループットの性能を引き出すことができる。
【図面の簡単な説明】
【００３４】
【図１】従来のデータグラム再組立装置を示すブロック図である。
【図２】本発明の実施例を示すブロック図である。
【図３】ネットワークの送信単位を越えるデータの分割を示す図である。
【図４】ヘッダの構造を示す図である。
【図５】断片番号とフラグメントオフセットの下限値及び上限値との関係を示す図である。
【図６】図２の装置中のバッファメモリの論理構造例を示す図である。
【符号の説明】
【００３５】
１  通信処理回路
２，７３  マイクロプロセッサ
３，７２  バッファメモリ
４  連想メモリ
【図１】
2007274056.tif 000003
【図２】
2007274056.tif 000004
【図３】
2007274056.tif 000005
【図４】
2007274056.tif 000006
【図５】
2007274056.tif 000007
【図６】
2007274056.tif 000008