(57)【要約】【課題】  パケット伝送の処理性能の向上を図る。【解決手段】  パケット入力処理部２０−１〜２０−ｎは、受信したパケットに対して、ポインタの生成及びパケットタイプの識別を行って、ポインタとパケットタイプの識別結果とを含む識別データを生成する。メモリアクセス制御部３３は、パケットタイプの識別結果にもとづいて、パケットのヘッダ読み出し量を認識し、ヘッダ読み出し量と、パケットの共有メモリ１１の格納場所を示す読み出しポインタと、を含む第１の読み出しデータを生成して、第１の読み出しデータにより共有メモリ１１からパケットのヘッダ・データを適応的に読み出す。プロトコル処理部４０は、読み出されたヘッダ・データから宛先解析処理を行う。パケット更新部５０は、パケットの旧宛先アドレスを新宛先アドレスに更新し、宛先アドレス更新後のパケットを生成して出力する。【選択図】  図１
2006135574.tif 000002
【特許請求の範囲】
【請求項１】
パケットのスイッチングを行って、パケット伝送を行うパケット伝送装置において、
ポインタに従い、パケットを格納する共有メモリを含むメモリ部と、
入力ポート毎に設けられ、入力ポート毎に受信したパケットに対して、ポインタの生成及びパケットタイプの識別を行って、ポインタとパケットタイプの識別結果とを含む識別データを生成する複数のパケット入力処理部と、
識別データを受信して、優先度の高い識別データを選択する識別データ制御部と、送信情報を受信して、優先度の高い送信情報を選択する送信情報制御部と、選択された識別データから、パケットタイプの識別結果にもとづいて、パケットのヘッダ読み出し量を検出し、前記ヘッダ読み出し量と、パケットの前記共有メモリの格納場所を示す読み出しポインタと、を含む第１の読み出しデータを生成して、前記第１の読み出しデータにより前記共有メモリからパケットのヘッダ・データを適応的に読み出し、または選択された送信情報にもとづいて、読み出しポインタと、パケット全体の読み出し指示とを含む第２の読み出しデータを生成して、前記第２の読み出しデータにより前記共有メモリからパケットを読み出すメモリアクセス制御部と、から構成されるスケジューラ部と、
読み出された前記ヘッダ・データから宛先解析処理を行って、パケットのあらたな宛先である新宛先アドレスを求めた後、読み出しポインタと、新宛先アドレスとを含む送信情報を生成して前記スケジューラ部へ通知するプロトコル処理部と、
送信情報にもとづいて、前記共有メモリから読み出されたパケットの旧宛先アドレスを新宛先アドレスに更新し、宛先アドレス更新後のパケットを生成して出力するパケット更新部と、
を有することを特徴とするパケット伝送装置。
【請求項２】
前記識別データ制御部は、パケットタイプ別に識別データを格納するキューを有し、前記宛先解析処理の優先度の高いパケットタイプのキューに格納されている識別データから先に選択することを特徴とする請求項１記載のパケット伝送装置。
【請求項３】
前記識別データ制御部は、廃棄パケットに対しては前記共有メモリへのアクセスが行われないように、廃棄パケット用のキューを設けて、廃棄パケットのポインタを格納することを特徴とする請求項１記載のパケット伝送装置。
【請求項４】
入力ポートに優先度を設定し、前記識別データ制御部は、優先度の高い入力ポートを通じて前記パケット入力処理部で処理された識別データから先に選択することを特徴とする請求項１記載のパケット伝送装置。
【請求項５】
前記パケット入力処理部は、パケットタイプとして、受信するパケットの情報量と、パケット送信間隔とを識別した結果を含む識別データを生成し、前記識別データ制御部は、前記情報量が大きく、かつ前記パケット送信間隔が連続的な識別データを高優先に選択することを特徴とする請求項１記載のパケット伝送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット伝送装置に関し、特にパケットのスイッチングを行って、パケット伝送を行うパケット伝送装置に関する。
【背景技術】
【０００２】
情報通信ネットワークのマルチメディア化が進むにつれて、異なるネットワーク同士を相互に接続し、ノード同士の通信を可能にするルータの重要性は増してきている。また、ネットワーク上では様々な種類のパケットが流れており、これらのパケットのスイッチ処理を行うルータのさらなる高性能化、高機能化が求められている。
【０００３】
ルータの性能とは、単位時間当たりの処理パケット数を指しており、この処理パケット数が多いほど高性能のルータとされる。また、処理可能なパケットの種類（タイプ）が多いほど高機能と位置付けられる（パケットタイプとしては例えば、Ｌ２（レイヤ２）パケット、ＩＰｖ４パケット、ＩＰｖ６パケットなど）。
【０００４】
図１０は従来のルータの構成を示す図である。ルータ６０は、受信Ｉ／Ｆ部６１、メモリ部６２、プロトコル処理部６３、更新部６４、送信Ｉ／Ｆ部６５から構成される。受信Ｉ／Ｆ部６１は、パケットの受信インタフェース処理を行う。メモリ部６２は、受信したパケットを格納する。
【０００５】
プロトコル処理部６３は、メモリ部６２に格納されているパケットのヘッダ領域（ヘッダ・データ）を読み出して解析し、ルータ６０から次の機器へパケットを送出するための、パケットの新たな宛先を決定する。
【０００６】
更新部６４は、メモリ部６２からパケットを読み出し、そのパケットの旧宛先アドレスを、プロトコル処理部６３で求めた新しい宛先アドレスに更新する。送信Ｉ／Ｆ部６５は、宛先更新後のパケットの送信インタフェース処理を行う。このように、ルータ６０では、受信したパケットのあらたな宛先を求めて、宛先アドレスを更新することで、目的とする送信先へのスイッチ処理を実現する。
【０００７】
従来のルータのパケット処理技術として、パケットヘッダの宛先検索と、パケット送信処理との平行処理を行う技術が提案されている（例えば、特許文献１）。
【特許文献１】特開平１１−２６１６４９号公報（段落番号〔０００７〕〜〔０００９〕，第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のルータ６０のプロトコル処理部６３は、メモリ部６２からパケットのヘッダ・データを読み出し、ヘッダ・データを解析して、あらたな宛先を決定するが、メモリ部６２からヘッダ・データを読み出す際に、従来では固定長でヘッダ・データの読み出しを行っていた。
【０００９】
図１１は従来のルータ６０の問題点を説明するための図である。メモリ部６２内にパケットｐ１〜ｐ３が格納されている。パケットｐ１のヘッダ・データｈ１はａbyte、パケットｐ２のヘッダ・データｈ２はｂbyte、パケットｐ３のヘッダ・データｈ３はｃbyteであり、ヘッダ・データの長さをｃ＜ｂ＜ａとする。
【００１０】
ルータ６０が処理可能なパケットタイプを、パケットｐ１〜ｐ３であるとすれば、従来ではヘッダ・データを固定長で読み出しているため、プロトコル処理部６３は、宛先解析時には常に、メモリ部６２から最大長のａbyteを読み出す必要がある。
【００１１】
すなわち、メモリ部６２からヘッダ・データを読み出す際に、ヘッダ長が異なるパケットｐ１〜ｐ３それぞれに対して、常に固定長のａbyte分のデータを読み出しており、この場合、パケットｐ２、ｐ３では、ペイロード部分まで読み出されることになるので、プロトコル処理部６３では、宛先解析に不要なペイロード部分は廃棄していた。
【００１２】
このように、従来では、固定長でヘッダ・データの読み出しを行っているため、その固定長より短いヘッダに対しては、ペイロードにまたがって無駄なデータ領域までアクセスすることになり、処理性能を低下させ、非効率的であるといった問題があった。
【００１３】
また、処理性能を低下させないためには、各パケットのヘッダ・データ毎に固定長を設定すればよいが、この方式だとパケットタイプに応じて取り扱えるルータの機種が限定されることになり、１台のルータで複数の異なるタイプのパケットを処理できるといった高機能化の妨げになってしまう。
【００１４】
一方、上記の従来技術（特開平１１−２６１６４９号公報）では、受信したパケット全体を格納するパケット用メモリと、パケットのヘッダ・データのみを格納するヘッダ用メモリとを設けて、ヘッダ用メモリから読み出したヘッダ・データの宛先解析を行っているときに、別のパケットをパケット用メモリから読み出して、送信処理を行っている。しかし、ヘッダ・データのみを格納するメモリを別に設けなければならないので、回路規模や消費電力の増大を招くことになる。
【００１５】
本発明はこのような点に鑑みてなされたものであり、宛先解析処理におけるヘッダ・データ読み出し時のメモリアクセス効率を向上させて、パケット伝送の処理性能の向上を図ったパケット伝送装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明では上記課題を解決するために、図１に示すような、パケットのスイッチングを行って、パケット伝送を行うパケット伝送装置１において、ポインタに従い、パケットを格納する共有メモリ１１を含むメモリ部１０と、入力ポートＰin＃１〜Ｐin＃ｎ毎に設けられ、入力ポートＰin＃１〜Ｐin＃ｎ毎に受信したパケットに対して、ポインタの生成及びパケットタイプの識別を行って、ポインタとパケットタイプの識別結果とを含む識別データを生成する複数のパケット入力処理部２０−１〜２０−ｎと、識別データを受信して、優先度の高い識別データを選択する識別データ制御部３１と、送信情報を受信して、優先度の高い送信情報を選択する送信情報制御部３２と、選択された識別データから、パケットタイプの識別結果にもとづいて、パケットのヘッダ読み出し量を検出し、ヘッダ読み出し量と、パケットの共有メモリ１１の格納場所を示す読み出しポインタと、を含む第１の読み出しデータを生成して、第１の読み出しデータにより共有メモリ１１からパケットのヘッダ・データを適応的に読み出し、または選択された送信情報にもとづいて、読み出しポインタと、パケット全体の読み出し指示とを含む第２の読み出しデータを生成して、第２の読み出しデータにより共有メモリ１１からパケットを読み出すメモリアクセス制御部３３と、から構成されるスケジューラ部３０と、読み出されたヘッダ・データから宛先解析処理を行って、パケットのあらたな宛先である新宛先アドレスを求めた後、読み出しポインタと、新宛先アドレスとを含む送信情報を生成してスケジューラ部３０へ通知するプロトコル処理部４０と、送信情報にもとづいて、共有メモリ１１から読み出されたパケットの旧宛先アドレスを新宛先アドレスに更新し、宛先アドレス更新後のパケットを生成して出力するパケット更新部５０と、を有することを特徴とするパケット伝送装置１が提供される。
【００１７】
ここで、メモリ部１０は、ポインタに従い、パケットを格納する共有メモリ１１を含む。パケット入力処理部２０−１〜２０−ｎは、入力ポートＰin＃１〜Ｐin＃ｎ毎に設けられ、入力ポートＰin＃１〜Ｐin＃ｎ毎に受信したパケットに対して、ポインタの生成及びパケットタイプの識別を行って、ポインタとパケットタイプの識別結果とを含む識別データを生成する。識別データ制御部３１は、識別データを受信して、優先度の高い識別データを選択する。送信情報制御部３２は、送信情報を受信して、優先度の高い送信情報を選択する。メモリアクセス制御部３３は、選択された識別データから、パケットタイプの識別結果にもとづいて、パケットのヘッダ読み出し量を認識し、ヘッダ読み出し量と、パケットの共有メモリ１１の格納場所を示す読み出しポインタと、を含む第１の読み出しデータを生成して、第１の読み出しデータにより共有メモリ１１からパケットのヘッダ・データを適応的に読み出し、または選択された送信情報にもとづいて、読み出しポインタと、パケット全体の読み出し指示とを含む第２の読み出しデータを生成して、第２の読み出しデータにより共有メモリ１１からパケットを読み出す。プロトコル処理部４０は、読み出されたヘッダ・データから宛先解析処理を行って、パケットのあらたな宛先である新宛先アドレスを求めた後、読み出しポインタと、新宛先アドレスとを含む送信情報を生成してスケジューラ部３０へ通知する。パケット更新部５０は、送信情報にもとづいて、共有メモリ１１から読み出されたパケットの旧宛先アドレスを新宛先アドレスに更新し、宛先アドレス更新後のパケットを生成して出力する。
【発明の効果】
【００１８】
本発明のパケット伝送装置は、パケットタイプに応じてパケットのヘッダ読み出し量を検出し、共有メモリからパケットのヘッダ・データを適応的に読み出して宛先解析処理を行い、その後に共有メモリからパケット全体を読み出して、旧宛先アドレスを新宛先アドレスに更新し、宛先アドレス更新後のパケットを生成して出力する構成とした。これにより、宛先解析処理におけるヘッダ・データ読み出し時のメモリアクセスを効率よく行うことができ、パケット伝送の処理性能の向上を図ることが可能になる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照して説明する。図１はパケット伝送装置の原理図である。パケット伝送装置１は、メモリ部１０、パケット入力処理部２０−１〜２０−ｎ、スケジューラ部３０、プロトコル処理部４０、パケット更新部５０から構成され、パケットのスイッチングを行って、パケット伝送を行う装置である。
【００２０】
メモリ部１０は、共有メモリ１１とメモリ制御部１２から構成される。共有メモリ１１は、パケットを格納する。メモリ制御部１２は、ポインタ（共有メモリ１１の格納アドレスに該当）にしたがって、共有メモリ１１にアクセスして、共有メモリ１１に対する書き込み／読み出し制御を行う。
【００２１】
パケット入力処理部２０−１〜２０−ｎは、入力ポートＰin＃１〜Ｐin＃ｎ毎に設けられ、入力ポートＰin＃１〜Ｐin＃ｎ毎に受信したパケットに対するポインタを生成して、ポインタにもとづき共有メモリ１１へパケットを書き込む（各々のパケットに対する共有メモリ１１の格納アドレス（ポインタ）をそれぞれ決めて、その格納アドレスの領域にパケットを書き込む）。
【００２２】
また、受信したパケットのパケットタイプの識別を行って（例えば、受信パケットがＩＰｖ４なのかＬ２パケットなのかといった識別を行う）、ポインタとパケットタイプの識別結果とを含む識別データを生成する。
【００２３】
スケジューラ部３０は、識別データ制御部３１、送信情報制御部３２、メモリアクセス制御部３３から構成される。識別データ制御部３１は、パケット入力処理部２０−１〜２０−ｎから通知された識別データを受信して、優先度の高い識別データを選択し出力する。送信情報制御部３２は、プロトコル処理部４０から通知された送信情報を受信して、優先度の高い送信情報を選択し出力する。
【００２４】
メモリアクセス制御部３３は、識別データ制御部３１で選択された識別データから、パケットタイプの識別結果にもとづいて、宛先解析処理の対象となるパケットのヘッダ読み出し量を検出する。
【００２５】
そして、検出したヘッダ読み出し量と、パケットの共有メモリ１１の格納場所を示す読み出しポインタとを含む第１の読み出しデータを生成して、第１の読み出しデータにより共有メモリ１１から宛先解析処理対象のパケットのヘッダ・データを適応的に（各々のパケットタイプのヘッダ長に応じて）ヘッダ・データを読み出す。
【００２６】
また、メモリアクセス制御部３３は、送信情報制御部３２で選択された送信情報にもとづいて、宛先解析処理済みのパケットの共有メモリ１１の格納場所を示す読み出しポインタと、パケット全体の読み出し指示とを含む第２の読み出しデータを生成して、第２の読み出しデータにより共有メモリ１１から宛先解析処理済みのパケットを読み出す。
【００２７】
プロトコル処理部４０は、共有メモリ１１から読み出されたヘッダ・データから宛先解析処理を行って、パケットのあらたな宛先である新宛先アドレスを求めた後、読み出しポインタと、新宛先アドレスとを含む送信情報を生成してスケジューラ部３０へ通知する。
【００２８】
パケット更新部５０は、スケジューラ部３０から出力された送信情報を受信し、送信情報にもとづいて、共有メモリ１１から読み出されたパケット（宛先解析処理済みのパケット）の旧宛先アドレスを新宛先アドレスに更新して、宛先アドレス更新後のパケットを生成し、出力ポートＰout＃１〜Ｐout＃ｎの中の該当出力ポートからスイッチング出力する。
【００２９】
次に図２、図３を用いて動作について詳しく説明する。図２は入力ポートＰin＃１からパケットを受信して、ヘッダ・データが読み出されるまでの動作を示す図である。動作説明に必要な構成要素のみ示す。なお、ＩＰｖ４タイプ（ヘッダ長＝２０byte）のパケットＡに対して、旧宛先アドレスａｄ１を新宛先アドレスａｄ２へ更新する場合について説明する。
【００３０】
〔Ｓ１〕パケット入力処理部２０−１は、入力ポートＰin＃１からパケットＡを受信し、パケットＡの共有メモリ１１の格納先アドレスとして読み出しポインタａを生成する。また、パケットＡのパケットタイプを識別して、ＩＰｖ４パケットと識別する。
【００３１】
〔Ｓ２〕パケット入力処理部２０−１は、読み出しポインタａにもとづきパケットＡを共有メモリ１１に書き込む。
〔Ｓ３〕パケット入力処理部２０−１は、識別データＤ１（“ポインタａ”＋“識別結果＝ＩＰｖ４パケット”）を生成し、スケジューラ部３０の識別データ制御部３１へ送信する。
【００３２】
〔Ｓ４〕識別データ制御部３１は、複数のパケット入力処理部２０−１〜２０−ｎから送信された識別データの中から優先度の高い識別データを選択し、メモリアクセス制御部３３へ出力する。ここでは、識別データＤ１を選択し出力したとする。
【００３３】
〔Ｓ５〕メモリアクセス制御部３３は、識別データＤ１と、送信情報制御部３２から通知された送信情報とを受信して、どちらのデータに関する処理を行うかの調停制御を行う。ここでは、識別データＤ１に関する処理を行うものとする。この場合、識別データＤ１から、パケットタイプがＩＰｖ４なので、ヘッダ読み出し量を２０byteと認識し、第１の読み出しデータに該当する読み出しデータＲ１（“読み出しポインタａ”＋“ヘッダ読み出し量２０byte”）を生成する。
【００３４】
〔Ｓ６〕メモリアクセス制御部３３は、読み出しデータＲ１を共有メモリ１１へ送信し、ヘッダ・データＨ１（２０byte）の読み出しを行う。
〔Ｓ７〕共有メモリ１１からパケットＡのヘッダ・データＨ１（２０byte）が読み出され、ヘッダ・データＨ１と読み出しポインタａの情報（プロトコル宛データＤ２と呼ぶ）が、プロトコル処理部４０へ送信される。
【００３５】
図３はヘッダ・データＨ１から宛先解析処理が行われて、パケット更新されるまでの動作を示す図である。動作説明に必要な構成要素のみ示す。
〔Ｓ９〕プロトコル処理部４０は、プロトコル宛データＤ２を受け取ると、プロトコル宛データＤ２に含まれるヘッダ・データＨ１から宛先解析処理を行って、新宛先アドレスａｄ２を求める。そして、送信情報Ｄ３（“読み出しポインタａ”＋新宛先アドレスａｄ２）を生成し、送信情報制御部３２へ通知する。
【００３６】
〔Ｓ１０〕送信情報制御部３２は、格納している送信情報の中から優先度の高い送信情報を選択し、メモリアクセス制御部３３及びパケット更新部５０へ出力する。ここでは、送信情報Ｄ３を選択し出力したとする（送信情報制御部３２は、内部に優先度毎に設けられたキューを有し、優先度の高いキューに格納された送信情報から先に出力する）。
【００３７】
〔Ｓ１１〕メモリアクセス制御部３３は、識別データと、送信情報制御部３２から通知された送信情報Ｄ３とを受信して、どちらのデータに関する処理を行うかの調停制御を行う。ここでは、送信情報Ｄ３に関する処理を行うものとする。この場合、第２の読み出しデータに該当する読み出しデータＲ２（“読み出しポインタａ”＋“パケット全体の読み出し指示”）を生成し出力する。
【００３８】
〔Ｓ１２〕メモリアクセス制御部３３は、読み出しデータＲ２を共有メモリ１１へ送信し、パケットＡの読み出しを行う。
〔Ｓ１３〕パケット更新部５０は、共有メモリ１１から読み出されたパケットＡと読み出しポインタａの情報を受信し、さらに送信情報Ｄ３（“読み出しポインタａ”＋新宛先アドレスａｄ２）を受信する。読み出しポインタａにより更新処理対象のパケットＡを認識し、パケットＡのヘッダに含まれる旧宛先アドレスａｄ１を新宛先アドレスａｄ２に更新してあらたなパケットＡ１を生成する。
【００３９】
〔Ｓ１４〕パケット更新部５０は、新宛先アドレスａｄ２に対応する出力ポート（出力ポートＰout＃３とする）からアドレス更新後のパケットＡ１を送出する。
次に各パケットタイプのヘッダについて説明する。図４はパケットヘッダのフォーマットを示す図である。Ｌ２パケットは、ＭＡＣヘッダの１４byteを持つ。ＩＰｖ４パケットは、ＭＡＣヘッダ（１４byte）＋ＩＰｖ４ヘッダ（２０byte）＝３４byteとなる。ＩＰｖ６パケットは、ＭＡＣヘッダ（１４byte）＋ＩＰｖ６ヘッダ（４０byte）＝５４byteとなる。また、制御パケットはＭＡＣヘッダの１４byteを持つ。
【００４０】
図５〜７はパケットヘッダの詳細フォーマットである。図５はＭＡＣヘッダ、図６はＩＰｖ４ヘッダ、図７はＩＰｖ６ヘッダのフォーマットである。なお、ＭＡＣヘッダのプリアンブル（７byte）とＳＦＤ（１byte）は宛先解決処理に不要なので図中省いてある（ヘッダ内の各フィールドの説明は省略する）。
【００４１】
パケット入力処理部２０−１〜２０−ｎでは、入力ポートＰin＃１〜Ｐin＃ｎ毎に受信したパケットから、パケットタイプを識別する。メモリアクセス制御部３３では識別データにもとづき、パケットタイプがＬ２パケットならヘッダ・読み出し量が１４byte、パケットタイプがＩＰｖ４ならヘッダ・読み出し量が３４byte、ＩＰｖ６ならヘッダ・読み出し量が５４byte、制御パケットならヘッダ・読み出し量が１４byteと検出する。
【００４２】
なお、ヘッダに含まれるオプションフィールドや拡張フィールドについては図中省略したが、これらのフィールドが使われているパケットを受信した場合には、パケット入力処理部２０−１〜２０−ｎでは、パケットタイプの他に、これらのフィールドの長さを識別し、その識別結果はメモリアクセス制御部３３へ通知される。そして、メモリアクセス制御部３３では、パケットタイプによる通常のヘッダ長とオプションフィールド（または拡張フィールド）長とからヘッダ読み出し量を検出することになる。
【００４３】
また、上記ではパケット入力処理部２０−１〜２０−ｎでパケットタイプを識別して、メモリアクセス制御部３３でヘッダ読み出し量を検出する構成としたが、パケット入力処理部２０−１〜２０−ｎがヘッダ内のヘッダ長フィールドを識別して、その識別結果をメモリアクセス制御部３３へ通知する構成にしてもよい。
【００４４】
次にパケット伝送装置１のメモリアクセス効果について説明する。図８はメモリリードの様子を示す図である。従来では、宛先解析処理時にメモリからヘッダ・データを読み出す場合は、固定的に読み出しを行っていた。
【００４５】
例えば、従来のメモリ読み出し２ａのように、取り扱うパケットがＬ２パケットとＩＰｖ４パケットの場合には、Ｌ２ヘッダは１４byte、ＩＰｖ４パケットは３４byteであるから、最大長の３４byteの読み出しを行っていた。したがって、Ｌ２パケットに対しても３４byteの読み出しが行われることになり、ペイロードにまたがった無駄な領域までアクセスしていた。
【００４６】
一方、パケット伝送装置１では、受信パケットに対応したヘッダ読み出し量を決定してヘッダ・データの読み出しを行う。例えば、メモリ読み出し２ｂのように、Ｌ２ヘッダに対しては１４byteのヘッダ・データの読み出しが行われ、ＩＰｖ４パケットに対しては３４byteのヘッダ・データの読み出しが行われる。これにより、無駄なデータ読み出しがなくなり、メモリアクセスの効率化を図ることが可能になる。
【００４７】
次に具体的な数値を用いて説明する。宛先解析処理対象のパケットを、Ｌ２パケット、ＩＰｖ４パケット、ＩＰｖ６パケット、制御パケットとする。これらパケットのヘッダ長は図４で示した通りである。
【００４８】
ここで、図４で示した４種類のパケットを扱う装置において、例えば、パケット長＝６４byteのＬ２パケットの更新処理を行う場合を考える。従来では、ヘッダ読み出し量が固定長であるから、４種類のパケットに対して、最大長が５４byteの固定ヘッダ読み出しをＬ２パケットに対しても行って、宛先解析処理を行うことになる。
【００４９】
その後に６４byteのＬ２パケットを読み出して宛先アドレスを更新する。したがって、従来では、１つのＬ２パケットを処理するのに、ヘッダ（５４byte）＋パケット長（６４byte）＝１１８byteの読み出しが必要になる。
【００５０】
一方、パケット伝送装置１では、Ｌ２パケットに対応する１４byteのヘッダ読み出しを行って、宛先解析処理を行い、その後に６４byteのＬ２パケットを読み出して宛先アドレスを更新する。したがって、パケット伝送装置１では、１つのＬ２パケットを処理するのに、ヘッダ（１４byte）＋パケット長（６４byte）＝７８byteの読み出しが必要になる。
【００５１】
これは例えば、１００Mbps処理可能な共有メモリで見ると、従来の場合では１００Mbps／（１１８byte×８bit）≒１０５９３２パケットとなり、パケット伝送装置１の場合では、１００Mbps／（７８byte×８bit）≒１６０２５６パケットとなり、約１．６倍の処理速度の向上が見込まれることになる。
【００５２】
次にスケジューラ部３０内の識別データ制御部３１について説明する。図９は識別データ制御部３１の構成を示す図である。識別データ制御部３１は、パケットタイプ別に識別データを格納するキューを有する。
【００５３】
図の例では、制御パケット識別データキューＱ１、ＩＰｖ４パケット識別データキューＱ２、ＩＰｖ６パケット識別データキューＱ３、Ｌ２パケット識別データキューＱ４、廃棄パケット識別データキューＱ５を含んでいる。
【００５４】
これらのキューは該当パケットの識別データを格納する（例えば、制御パケット識別データキューＱ１は、パケット入力処理部でパケットタイプが制御パケットと識別された識別データを格納する）。
【００５５】
そして、識別データ制御部３１は、宛先解析処理の優先度の高いパケットタイプのキューに格納されている識別データから先に選択して、メモリアクセス制御部３３へ出力する。例えば、パケット使用頻度（優先度）を、制御パケット＞ＩＰｖ４パケット＞Ｌ２パケット＞ＩＰｖ６パケットとすれば、制御パケット識別データキューＱ１に格納されている識別データを最初に選択して出力し、ＩＰｖ６パケット識別データキューＱ３に格納されている識別データについては選択優先度が最も低いものとなる。
【００５６】
その後、メモリアクセス制御部３３では、選択された識別データから読み出しデータＲ１を生成し、共有メモリ１１からヘッダ・データの読み出しを行うことになる。なお、キューの選択制御にはラウンドロビン等を用いる。
【００５７】
一方、廃棄パケット識別データキューＱ５は、パケット入力処理部でパケットタイプが廃棄パケットと識別された識別データを格納する。廃棄パケット識別データキューＱ５により、廃棄パケットのポインタが格納されることで、メモリアクセス制御部３３へは出力されない。これにより、廃棄パケットは共有メモリ１１から読み出されないので、無駄なメモリアクセスを省くことが可能になる。
【００５８】
なお、上記では識別データ制御部３１内にキューを設けて優先制御を行ったが、パケット入力処理部２０−１〜２０−ｎから送信された複数の識別データを受信した際に、例えば、到着順にこれらの識別データを多重化して、順次メモリアクセス制御部３３へ出力し、メモリアクセス制御部３３内において優先制御を行ってもよい。
【００５９】
または、入力ポートＰin＃１〜Ｐin＃ｎに優先度を設定してもよい。この場合、識別データ制御部３１は、優先度の高い入力ポートを通じてパケット入力処理部で処理された識別データから先に選択して、メモリアクセス制御部３３へ出力する。
【００６０】
例えば、入力ポートＰin＃１には画像データ（情報量大、連続的）が入力し、入力ポートＰin＃２には音声データ（情報量小、連続的）が入力し、入力ポートＰin＃３にはコンピュータデータ（情報量小、断続的）が入力するようにした場合は、優先順位をＰin＃１＞Ｐin＃２＞Ｐin＃３として、識別データ制御部３１は、優先度の高い入力ポートＰin＃１を通じてパケット入力処理部で処理された識別データから先に選択するようにする。
【００６１】
次にパケット入力処理部２０−１〜２０−ｎで行われるパケットタイプ識別動作について説明する。上述したパケットタイプの識別処理では、受信パケットが制御パケットか、またはＩＰｖ４パケットか否かといった処理を行ったが、このような処理だけでなく、受信パケットの情報量と、パケット送信間隔とを識別することもできる。
【００６２】
例えば、パケット入力処理部２０−１が、入力ポートＰin＃１を通じて入力されるパケットに対して、情報量が大であり、連続的に受信する場合には、その旨を含む識別データを生成する。そして、識別データ制御部３１は、情報量が大きく、かつパケット送信間隔が連続的な識別データを高優先に選択して、メモリアクセス制御部３３へ出力する。
【００６３】
または、パケット入力処理部２０−１が、入力ポートＰin＃１を通じて入力されるパケットに対して、情報量が小であり、断続的に受信する場合には、その旨を含む識別データを生成する。そして、識別データ制御部３１は、情報量が小さく、かつパケット送信間隔が断続的な識別データを低優先に選択して、メモリアクセス制御部３３へ出力する。このような構成によって優先制御を行ってもよい。
【００６４】
以上説明したように、従来では、パケットタイプが不明のため、ヘッダ読み出し量はどのようなパケットに対しても常に固定量を共有メモリから読み出す必要があったが、パケット伝送装置１では、パケット入力処理部２０−１〜２０−ｎで受信パケットのパケットタイプを識別することにより、プロトコル処理部４０で宛先検索に必要なヘッダ・データ量をパケット別に判定できる。そのため、スケジューラ部３０は、宛先検索に必要なデータ量のみを共有メモリ１１から読み出すことができる。
【００６５】
従来では、複数のパケットタイプを混在して受信する装置では、共有メモリへのアクセスがボトルネックの１つの要因となっていたが、パケット伝送装置１の制御を行うことにより、処理性能を上げることができる。また、１台のパケット伝送装置１で複数タイプのパケットを処理できるので高機能化を実現できる。
【００６６】
さらに、従来と比べて、プロトコル処理部４０宛てのヘッダ読み出し量を抑えることになるので、無駄に読み出していた処理時間を他の処理にまわすことができ、処理性能を向上させることが可能になる。
【００６７】
（付記１）  パケットのスイッチングを行って、パケット伝送を行うパケット伝送装置において、
ポインタに従い、パケットを格納する共有メモリを含むメモリ部と、
入力ポート毎に設けられ、入力ポート毎に受信したパケットに対して、ポインタの生成及びパケットタイプの識別を行って、ポインタとパケットタイプの識別結果とを含む識別データを生成する複数のパケット入力処理部と、
識別データを受信して、優先度の高い識別データを選択する識別データ制御部と、送信情報を受信して、優先度の高い送信情報を選択する送信情報制御部と、選択された識別データから、パケットタイプの識別結果にもとづいて、パケットのヘッダ読み出し量を検出し、前記ヘッダ読み出し量と、パケットの前記共有メモリの格納場所を示す読み出しポインタと、を含む第１の読み出しデータを生成して、前記第１の読み出しデータにより前記共有メモリからパケットのヘッダ・データを適応的に読み出し、または選択された送信情報にもとづいて、読み出しポインタと、パケット全体の読み出し指示とを含む第２の読み出しデータを生成して、前記第２の読み出しデータにより前記共有メモリからパケットを読み出すメモリアクセス制御部と、から構成されるスケジューラ部と、
読み出された前記ヘッダ・データから宛先解析処理を行って、パケットのあらたな宛先である新宛先アドレスを求めた後、読み出しポインタと、新宛先アドレスとを含む送信情報を生成して前記スケジューラ部へ通知するプロトコル処理部と、
送信情報にもとづいて、前記共有メモリから読み出されたパケットの旧宛先アドレスを新宛先アドレスに更新し、宛先アドレス更新後のパケットを生成して出力するパケット更新部と、
を有することを特徴とするパケット伝送装置。
【００６８】
（付記２）  前記識別データ制御部は、パケットタイプ別に識別データを格納するキューを有し、前記宛先解析処理の優先度の高いパケットタイプのキューに格納されている識別データから先に選択することを特徴とする付記１記載のパケット伝送装置。
【００６９】
（付記３）  前記識別データ制御部は、廃棄パケットに対しては前記共有メモリへのアクセスが行われないように、廃棄パケット用のキューを設けて、廃棄パケットのポインタを格納することを特徴とする付記１記載のパケット伝送装置。
【００７０】
（付記４）  入力ポートに優先度を設定し、前記識別データ制御部は、優先度の高い入力ポートを通じて前記パケット入力処理部で処理された識別データから先に選択することを特徴とする付記１記載のパケット伝送装置。
【００７１】
（付記５）  前記パケット入力処理部は、パケットタイプとして、受信するパケットの情報量と、パケット送信間隔とを識別した結果を含む識別データを生成し、前記識別データ制御部は、前記情報量が大きく、かつ前記パケット送信間隔が連続的な識別データを高優先に選択することを特徴とする付記１記載のパケット伝送装置。
【００７２】
（付記６）  パケットのスイッチングを行って、パケット伝送を行うパケット伝送方法において、
ポインタに従い、パケットを共有メモリに格納し、
入力ポート毎に受信したパケットに対して、ポインタの生成及びパケットタイプの識別を行って、ポインタとパケットタイプの識別結果とを含む識別データを生成し、
前記識別データによるパケットタイプの識別結果にもとづいて、パケットのヘッダ読み出し量を検出し、前記ヘッダ読み出し量と、パケットの前記共有メモリの格納場所を示す読み出しポインタと、を含む第１の読み出しデータを生成して、前記第１の読み出しデータにより前記共有メモリからパケットのヘッダ・データを適応的に読み出し、
読み出された前記ヘッダ・データから宛先解析処理を行って、パケットのあらたな宛先である新宛先アドレスを求めた後、読み出しポインタと、新宛先アドレスとを含む送信情報を生成し、
前記送信情報にもとづいて、読み出しポインタと、パケット全体の読み出し指示とを含む第２の読み出しデータを生成して、前記第２の読み出しデータにより前記共有メモリからパケットを読み出し、
前記共有メモリから読み出されたパケットの旧宛先アドレスを新宛先アドレスに更新し、宛先アドレス更新後のパケットを生成して出力することを特徴とするパケット伝送方法。
【００７３】
（付記７）  パケットタイプ別に識別データを格納するキューを有し、前記宛先解析処理の優先度の高いパケットタイプのキューに格納されている識別データから先に選択し、選択された前記識別データから前記第１の読み出しデータを生成することを特徴とする付記６記載のパケット伝送方法。
【００７４】
（付記８）  廃棄パケットに対しては前記共有メモリへのアクセスが行われないように、廃棄パケット用のキューを設けて、廃棄パケットのポインタを格納することを特徴とする付記６記載のパケット伝送方法。
【００７５】
（付記９）  入力ポートに優先度を設定し、優先度の高い入力ポートを通じて処理された識別データから先に選択し、選択された前記識別データから前記第１の読み出しデータを生成することを特徴とする付記６記載のパケット伝送方法。
【００７６】
（付記１０）  パケットタイプとして、受信するパケットの情報量と、パケット送信間隔とを識別した結果を含む識別データを生成し、前記情報量が大きく、かつ前記パケット送信間隔が連続的な識別データを高優先に選択し、前記情報量が小さく、かつ前記パケット送信間隔が断続的な識別データを低優先に選択し、選択された前記識別データから前記第１の読み出しデータを生成することを特徴とする付記６記載のパケット伝送方法。
【図面の簡単な説明】
【００７７】
【図１】パケット伝送装置の原理図である。
【図２】入力ポートからパケットを受信して、ヘッダ・データが読み出されるまでの動作を示す図である。
【図３】ヘッダ・データから宛先解析処理が行われて、パケット更新されるまでの動作を示す図である。
【図４】パケットヘッダのフォーマットを示す図である。
【図５】パケットヘッダの詳細フォーマットである。
【図６】パケットヘッダの詳細フォーマットである。
【図７】パケットヘッダの詳細フォーマットである。
【図８】メモリリードの様子を示す図である。
【図９】識別データ制御部の構成を示す図である。
【図１０】従来のルータの構成を示す図である。
【図１１】従来のルータの問題点を説明するための図である。
【符号の説明】
【００７８】
１  パケット伝送装置
１０  メモリ部
１１  共有メモリ
１２  メモリ制御部
２０−１〜２０−ｎ  パケット入力処理部
３０  スケジューラ部
３１  識別データ制御部
３２  送信情報制御部
３３  メモリアクセス制御部
４０  プロトコル処理部
５０  パケット更新部
Ｐin＃１〜Ｐin＃ｎ  入力ポート
Ｐout＃１〜Ｐout＃ｎ  出力ポート
【図１】
2006135574.tif 000003
【図２】
2006135574.tif 000004
【図３】
2006135574.tif 000005
【図４】
2006135574.tif 000006
【図５】
2006135574.tif 000007
【図６】
2006135574.tif 000008
【図７】
2006135574.tif 000009
【図８】
2006135574.tif 000010
【図９】
2006135574.tif 000011
【図１０】
2006135574.tif 000012
【図１１】
2006135574.tif 000013