(57)【要約】    【課題】      簡単な構成によってネットワーク処理機能用パケットの転送時における処理速度を高速化することができるパケット交換装置を提供する。    【解決手段】  全てのパケットが高速パケット転送部２のポート受信部１３に入力されると、例外パケット送信部１４ａが複雑なパケットとネットワーク処理機能用パケットとを分離する。さらに、例外パケット送信部１４ａは、高機能パケット処理部３へ割込み信号を送信してホストアクセス部２６ａへネットワーク処理機能用パケットを直接配信する。ホストアクセス部２６ａは、ネットワーク処理機能用パケットをホスト処理部２７へ送信して所定のパケット処理を行った後、高速パケット転送部２の例外パケット受信部１５ａへ割込み信号を送信し、パケット処理済みのネットワーク処理機能用パケットを例外パケット受信部１５ａへ直接転送する。  【選択図】      図１２
2006238161.tif 000002
【特許請求の範囲】
【請求項１】
入力したパケット中の一部のパケットについて所定のパケット処理を行う高速パケット転送手段と、前記高速パケット転送手段でパケット処理できない例外パケット及びネットワーク処理機能用パケットについてパケット処理を行う高機能パケット処理手段とを備えたパケット交換装置であって、
前記高速パケット転送手段は、前記例外パケットと前記ネットワーク処理機能用パケットとを分離し、分離されたそれぞれのパケットを前記高機能パケット処理手段の異なるアクセスポイントへ配信する例外パケット送信手段と、前記高機能パケット処理手段の異なるアクセスポイントから、前記例外パケットと前記ネットワーク処理機能用パケットとを個別に受信する例外パケット受信手段とを備えることを特徴とするパケット交換装置。
【請求項２】
前記高機能パケット処理手段は、前記例外パケット送信手段からの割込み信号に基づいて、前記例外パケット送信手段から前記ネットワーク処理機能用パケットを直接受信するホストアクセス手段を備えることを特徴とする請求項１に記載のパケット交換装置。
【請求項３】
前記ホストアクセス手段は、前記例外パケット受信手段への割込み信号に基づいて、前記例外パケット受信手段へ前記ネットワーク処理機能用パケットを直接転送することを特徴とする請求項２に記載のパケット交換装置。
【請求項４】
パケット処理は、ＩＰオプション処理及び／あるいはフラグメント処理を含むことを特徴とする請求項１から請求項３のいずれかに記載のパケット交換装置。
【請求項５】
入力したパケット中の一部のパケットについて所定のパケット処理を行う高速パケット転送手段と、前記高速パケット転送手段でパケット処理できない例外パケットとネットワーク処理機能用パケットについてパケット処理を行う高機能パケット処理手段とを備えたパケット交換装置におけるパケットの処理方法であって、
前記高速パケット転送手段が入力された全てのパケットを受信する手順と、
前記高速パケット転送手段が、受信したパケットから例外パケットとネットワーク処理機能用パケットとを分離する手順と、
前記高速パケット転送手段が、分離された前記例外パケットと前記ネットワーク処理機能用パケットを前記高機能パケット処理手段の異なるアクセスポイントへ配信する手順と、
前記高機能パケット処理手段が、アクセスポイントを経由することなく、前記ネットワーク処理機能用パケットを受信して所定のパケット処理を行う手順と、
前記高機能パケット処理手段が、アクセスポイントを経由することなく、パケット処理の施された前記ネットワーク処理機能用パケットを前記高速パケット転送手段へ転送する手順と、
前記高速パケット転送手段が、転送された前記ネットワーク処理機能用パケットを所定のポートへ出力する手順と、
を含むことを特徴とするパケットの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークプロセッサをベースとしたルータなどのパケット交換装置等に関し、特に、高速パケット転送部と高機能パケット処理部とからなるパケット交換装置、及びそのパケット交換装置内におけるパケットの処理方法に関する。
【背景技術】
【０００２】
ルータなどのパケット交換装置（ネットワーク装置とも云う）は、単純なパケットを高速に転送する高速パケット転送部と、高速パケット転送部が処理できない例外的なパケット（例えば、ＩＰ（Internet Protocol）フラグメント処理やＩＰオプション処理が必要なパケット）の処理を行う高機能パケット処理部とによって構成されている。例えば、Ｉｎｔｅｌ社（登録商標）のネットワークプロセッサ（http://developer.intel.com/design/network/products/npfamily/ixp2400.htm）などもこのような構成になっている（非特許文献１、及び非特許文献２参照）。
【０００３】
高速パケット転送部としては、パケット転送ＬＳＩやコンフィギャラブル・プロセッサなどが利用されている。また、高機能パケット処理部としては、汎用のＣＰＵなどが利用されている。汎用のＣＰＵ上では、Ｌｉｎｕｘ（登録商標）（http://www.linux.or.jp/general/linux.html）などのネットワークＯＳが動作している。これらのＯＳは、ＩＰやＴＣＰ（Transmission Control Protocol）／ＵＤＰ（User Datagram Protocol）などのホスト機能や転送機能などのネットワーク処理機能を有している。このようなネットワーク処理機能によって、ＩＰパケットの転送先を決定するアプリケーションやＲＩＰ（Routing Information Protocol）などのルーティングプロトコルが動作したり、ＦＴＰ（File Transfer Protocol）などのネットワークアプリケーション（例えば、ＩＰ通信などを利用したアプリケーションなど）が動作する。
【非特許文献１】「Intel(R) Internet Exchange Architecture (IXA) Software Building Blocks Developer’s Manual」※Intel(R) IXA Software Development Kit (SDK) 3.51に含まれるドキュメントの１つ
【非特許文献２】http://developer.intel.com/design/network/products/npfamily/sdk_download.htm
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術は、単純なパケットの転送を専用のＬＳＩ（つまり、高速パケット転送部）に任せることで、高速かつ高機能なパケット交換装置を実現することができるが、一般の家庭で使用される安価なスイッチングハブなどでは、パケット転送用のＬＳＩが搭載されているだけであるので、パケットの高速転送は可能であるが、リモート管理などのような高機能な処理を行うことはできない。また、安価で汎用的なブロードバンド用のルータなどは、全てのパケットをＣＰＵで転送しているために、高機能ではあるが高速化を実現することはではない。つまり、パケットの転送に対して高速かつ高機能な処理を行うためには高価なルータなどを用意しなければならない。
【０００５】
また、前記のＩｎｔｅｌ社のネットワークプロセッサについてはサンプルソフトウェアのアーキテクチャを使用しているが、このサンプルソフトウェアでは、単純なパケットはコンフィギャラル・プロセッサ“Microengine”を経由して高速に転送されている。一方、ＣＰＵ“XScale”で処理を行う複雑なパケットとネットワーク処理機能用パケットは、同じ経路でＬｉｎｕｘに渡され、その後、Ｌｉｎｕｘ内の処理スレッド（つまり、タスクやプロセスのようなもの）の内部で、ネットワーク処理機能用パケットが振り分けられてネットワーク処理機能に渡されている。このように、Ｌｉｎｕｘ内の処理スレッドを経由しているために、ネットワーク処理機能用パケットの転送にはかなりの時間がかかってしまう。
【０００６】
本発明はかかる点に鑑みてなされたものであり、簡単な構成によってネットワーク処理機能用パケットの転送時における処理速度を高速化することが可能なパケット交換装置、及びそのパケット交換装置内のパケットの処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のパケット交換装置は、入力したパケット中の一部のパケットについて所定のパケット処理を行う高速パケット転送手段と、前記高速パケット転送手段でパケット処理できない例外パケット及びネットワーク処理機能用パケットについてパケット処理を行う高機能パケット処理手段とを備えたパケット交換装置であって、前記高速パケット転送手段は、前記例外パケットと前記ネットワーク処理機能用パケットとを分離し、分離されたそれぞれのパケットを前記高機能パケット処理手段の異なるアクセスポイントへ配信する例外パケット送信手段と、前記高機能パケット処理手段の異なるアクセスポイントから、前記例外パケットと前記ネットワーク処理機能用パケットとを個別に受信する例外パケット受信手段とを備える構成を採る。
【０００８】
また、本発明のパケットの処理方法は、入力したパケット中の一部のパケットについて所定のパケット処理を行う高速パケット転送手段と、前記高速パケット転送手段でパケット処理できない例外パケットとネットワーク処理機能用パケットについてパケット処理を行う高機能パケット処理手段とを備えたパケット交換装置におけるパケットの処理方法であって、前記高速パケット転送手段が入力された全てのパケットを受信する手順と、前記高速パケット転送手段が、受信したパケットから例外パケットとネットワーク処理機能用パケットとを分離する手順と、前記高速パケット転送手段が、分離された前記例外パケットと前記ネットワーク処理機能用パケットを前記高機能パケット処理手段の異なるアクセスポイントへ配信する手順と、前記高機能パケット処理手段が、アクセスポイントを経由することなく、前記ネットワーク処理機能用パケットを受信して所定のパケット処理を行う手順と、前記高機能パケット処理手段が、アクセスポイントを経由することなく、パケット処理の施された前記ネットワーク処理機能用パケットを前記高速パケット転送手段へ転送する手順と、前記高速パケット転送手段が、転送された前記ネットワーク処理機能用パケットを所定のポートへ出力する手順と、を備える方法を採る。
【発明の効果】
【０００９】
本発明によれば、高速パケット転送部は、高機能パケット処理部へパケットを送信するときに高速パケット転送部で処理できない例外パケットとネットワーク処理機能用パケットとを個別に送信している。このとき、高機能パケット処理部は、高速パケット転送部からの割込み信号（転送指示）に基づいて、他のアクセスポイントを経由することなく、ネットワーク処理機能用パケットを高速パケット転送部から直接受信している。さらに、高速パケット転送部は、高機能パケット処理部からパケットを受信するときに高速パケット転送部で処理できない例外パケットとネットワーク処理機能用パケットとを個別に受信している。このとき、高速パケット転送部は、高機能パケット処理部からの割込み信号（転送指示）に基づいて、他のアクセスポイントを経由することなく、ネットワーク処理機能用パケットを高機能パケット処理部から直接受信している。
【００１０】
このようにして、高速パケット転送部で処理できない例外パケットとネットワーク処理機能用パケットの高機能パケット処理部への転送経路を、高速パケット転送部から転送する段階で分離している。これによって、高機能パケット処理部は、高速パケット転送部からネットワーク処理機能用パケットの転送指示（割込み信号）を受けると、処理スレッドを使用することなく、即座にネットワーク処理機能用パケットを取り込んでネットワーク処理機能に伝達することができる。これによって、高速パケット転送部で処理できない例外パケットの処理経路を変更することなく、ネットワーク処理機能用パケットの転送を高速化することができる。
【発明を実施するための最良の形態】
【００１１】
《発明の概要》
以下の説明において、高速パケット転送部（Microengine）で処理を行うパケットを「単純なパケット」と定義し、高速パケット転送部で処理できず、高機能パケット処理部（XScale）で処理を行うパケットを「複雑なパケット」と定義する。本発明のパケット交換装置は、複雑なパケットとネットワーク処理機能用パケットの高機能パケット処理部への転送経路を、高速パケット転送部から転送する段階で分離することを特徴としている。高機能パケット処理部は、高速パケット転送部からのネットワーク処理機能用パケットの転送指示（つまり、割込み信号）を受信すると、処理スレッドを使用することなく、直ちに、ネットワーク処理機能用パケットを取り込んでネットワーク処理機能に伝達する。したがって、本発明のパケット交換装置によれば、複雑なパケットの処理経路を変更することなく、ネットワーク処理機能用パケットの転送を高速化することができる。
【００１２】
以下、図面を用いて、本発明におけるパケット交換装置の実施の形態の幾つかを詳細に説明する。なお、各実施の形態に用いる図面において、同一の構成要素は同一の符号を付し、かつ重複する説明は可能な限り省略する。また、本発明におけるパケット交換装置の特徴を明確にするために、従来技術と対比しながら本発明におけるパケット交換装置の実施の形態を説明する。
【００１３】
《本発明の基本的な概念》
図１は、本発明におけるパケット交換装置の基本的な概念を説明するための構成図である。図１において、ネットワークプロセッサなどのパケット交換装置１は、単純なパケットＰ１を高速で転送するための処理を行う高速パケット転送部２と、高速パケット転送部２で処理できない複雑なパケットＰ２及びネットワーク処理機能用パケットＰ３の処理を行う高機能パケット処理部３とを備えた構成となっている。高速パケット転送部２は、パケット転送ＬＳＩやコンフィギャラブル・プロセッサなどで実現することができる。なお、コンフィギャラブル・プロセッサとは、命令セットなどをカスタマイズすることができるプロセッサである。
【００１４】
また、高機能パケット処理部３は汎用のＣＰＵによって実現することができる。このとき、ＣＰＵ上ではＬｉｎｕｘやリアルタイムＯＳなどのネットワークＯＳを動作させる。ネットワークＯＳとは、ＴＣＰ／ＩＰなどのネットワーク処理機能を搭載したＯＳである。なお、高機能パケット処理部３は、ＩＰパケットを受け取ることができるＩＰのホスト機能も備えている。
【００１５】
図１のパケット交換装置１において、高速パケット転送部２には入力ポートＩＮと出力ポートＯＵＴが備えられていて、入力ポートＩＮから入力された単純なパケットＰ１は高速パケット転送部２のみを通過して出力ポートＯＵＴに出力される。また、入力ポートＩＮから入力されたフラグメントなどの複雑なパケットＰ２は高速パケット転送部２から高機能パケット処理部３を経由し、ネットワーク処理機能用パケットＰ３は高速パケット転送部２から高機能パケット処理部３のネットワーク処理機能３−１を経由し、再び高速パケット転送部２に戻って出力ポートＯＵＴに出力されている。ここで、本発明のパケット交換装置１では、効率的な経路を選択することによって、ネットワーク処理機能用パケットＰ３における転送速度の高速化を実現している。
【００１６】
図２は、ネットワークプロセッサの基本的な概念を説明するための構成図である。このネットワークプロセッサ１ａも図１のパケット交換装置１とほぼ同様な構成になっており、入力ポートＩＮから入力された単純なパケットＰ１は、Microengine２ａ（高速パケット転送部２に相当）のみを通過して出力ポートＯＵＴに出力される。また、入力ポートＩＮから入力された複雑なパケットＰ２は、Microengine２ａからXScale上で動作するＬｉｎｕｘ３ａ（高機能パケット処理部３に相当）を経由し、ネットワーク処理機能用パケットＰ３は、Microengine２ａからXScale上で動作するＬｉｎｕｘ３ａ（高機能パケット処理部３に相当）のＴＣＰ／ＵＤＰ３ａ−１（ネットワーク処理機能３−１に相当）を経由し、再びMicroengine２ａに戻って出力ポートＯＵＴに出力されている。このように、図１のパケット交換装置１と図２のネットワークプロセッサ１ａは、ほぼ同一の経路によってそれぞれのパケットが転送される。
【００１７】
すなわち、図１のパケット交換装置１または図２のネットワークプロセッサ１ａに示すように、入力ポートＩＮから入ってくるパケット（例えば、ＩＰパケット）は、単純なパケットＰ１、複雑なパケットＰ２、及びネットワーク処理機能用パケットＰ３に分類される。単純なパケットＰ１とは、高速パケット転送部２で処理可能なパケットであって、ヘッダの宛先を見て出力先を決定して送信するといったシンプルな動作で処理することができるパケットである。なお、入力ポートＩＮから入力されたパケットを複数に分割して、それぞれにヘッダを付けて転送するといった処理が必要なパケットは単純なパケットとは呼ばない。
【００１８】
複雑なパケットＰ２とは、高速パケット転送部２で処理できないパケットであって、このパケットを複数に分割してそれぞれにヘッダを付けて転送するといった処理が必要なパケットである。通常のパケットの送受信処理は高速パケット転送部２で行われ、複雑なパケットＰ２の送受信処理は高機能パケット処理部３で行われる。
【００１９】
ネットワーク処理機能用パケットＰ３とは、ネットワークアプリケーションに転送されるパケットのことである。このネットワーク処理機能用パケットＰ３は高機能パケット処理部３の中のネットワーク処理機能３−１を経由してアプリケーションに伝達される。つまり、ネットワーク処理機能用パケットＰ３はネットワーク処理機能３−１宛てのパケットということになる。逆に、ネットワーク処理機能３−１から高速パケット転送部２に宛てたパケットもネットワーク処理機能用パケットＰ３に分類される。
【００２０】
図１に示すような本発明のパケット交換装置１は、Ｉｎｔｅｌ社のネットワークプロセッサ（ＩＸＰ２４００）を使ったパケット交換装置の開発の過程において実現された。ただし、本発明のパケット交換装置１はＩｎｔｅｌ社のネットワークプロセッサに限定されるものではなく、高速パケット転送部２と高機能パケット処理部３を有する構成のパケット処理装置であればどのようなものでもよい。
【００２１】
なお、図１と図２を比較して分るように、Ｉｎｔｅｌ社のネットワークプロセッサ１ａでは、高速パケット転送部２はMicroengine２ａが担当している。高機能パケット処理部３はＣＰＵとしてXScaleが担当している。XScale上で動作するネットワークＯＳはＬｉｎｕｘ３ａである。Ｉｎｔｅｌ社のネットワークプロセッサ１ａの場合も、Microengine２ａやXScaleやＬｉｎｕｘ３ａではなく他のもので代用してもよい。なお、XScaleはＩｎｔｅｌ社が開発したＣＰＵの固有名詞である。また、MicroengineはＩｎｔｅｌ社が呼んでいる呼び方であり一般に通用する用語ではない。さらに、Ｌｉｎｕｘは、Ｗｉｎｄｏｗｓ（登録商標）等と同じでＯＳの固有名詞である。
【００２２】
ここでは、Ｉｎｔｅｌ社のサンプルソフトウェアのアーキテクチャを挙げたが、Ｉｎｔｅｌ社のサンプルソフトウェアでは、単純なパケットＰ１はMicroengineを経由して高速に転送される。複雑なパケットＰ２とネットワーク処理機能用パケットＰ３は、同じ経路でＬｉｎｕｘ３ａに渡される。その後、Ｌｉｎｕｘ３ａ内の処理スレッド（タスクやプロセスのようなもの）内で、ネットワーク処理機能用パケットＰ３が振り分けられてネットワーク処理機能を有するＴＣＰ／ＵＤＰ３ａ−１に渡される。ここでは、処理スレッドを経由しているために、ネットワーク処理機能用パケットＰ３の転送に時間がかかっているが、図１に示す本発明のパケット交換装置１のネットワーク処理機能３−１では、ネットワーク処理機能用パケットＰ３の転送に時間がかかることはない。
【００２３】
《従来のパケット交換装置》
ここで、理解を容易にするために、従来技術と対比しながら本発明におけるパケット交換装置の実施の形態を説明する。図３は、従来のパケット交換装置の詳細な構成を示すブロック図である。図３において、パケット交換装置１１は、高速パケット転送部１２とネットワークＯＳが動作する高機能パケット処理部２１とによって構成されている。また、高速パケット転送部１２と高機能パケット処理部２１の間には、制御バス１８、データバス１９、及び複数の信号ラインが接続されている。
【００２４】
高速パケット転送部１２は、複数の入力ポートＩＮ、複数の出力ポートＯＵＴ、ポート受信部１３、例外パケット送信部１４、例外パケット受信部１５、パケット転送部１６、及びポート送信部１７を備えた構成となっている。また、高機能パケット処理部２１は、パケット受信部２２、パケット送信部２３、パケット振り分け部２４、パケット処理部２５、ホストアクセス部２６、及びホスト処理部２７を備えた構成となっている。
【００２５】
高速パケット転送部１２において、複数の入力ポートＩＮは、単純なパケットＰ１、複雑なパケットＰ２、及びネットワーク処理機能用パケットＰ３などの各種のパケットが入力されるインタフェースであり、複数の出力ポートＯＵＴはこれらのパケットが出力されるインタフェースである。
【００２６】
ポート受信部１３は、入力ポートＩＮから入力されたパケットを受信する要素であり、例外パケット送信部１４は、受信したパケットのヘッダ情報を解析する要素である。つまり、例外パケット送信部１４は、複雑なパケットＰ２とネットワーク処理機能用パケットＰ３を高機能パケット処理部２１へ転送し、単純なパケットＰ１を高速パケット転送部１２の各要素へ転送する。なお、例外パケット送信部１４は、受信したパケットがネットワーク処理機能用パケットＰ３であるか否かを判断するためにホストの情報（つまり、ＩＰアドレス）を保持している。
【００２７】
例外パケット受信部１５は、高機能パケット処理部２１からパケットを受信し、受信したパケットをポート送信部１７へ転送する要素である。パケット転送部１６は、パケットのヘッダ情報に基づいて転送先（すなわち、いずれかの出力ポートＯＵＴ）を決定し、出力ポート情報と共にパケットデータをポート送信部１７へ転送する要素である。なお、パケット転送部１６は一般的なＩＰ転送テーブルを持っている。ポート送信部１７は、パケットを複数の出力ポートＯＵＴへ送信する要素である。
【００２８】
高速パケット転送部１２と高機能パケット処理部２１を接続する制御バス１８は、パケット送信信号（例えば、割込み信号）などを転送するための高速パケット転送部１２と高機能パケット処理部２１との間のインタフェースである。
【００２９】
高速パケット転送部１２と高機能パケット処理部２１を接続するデータバス１９は、パケットデータを転送するための、高速パケット転送部１２と高機能パケット処理部２１との間のインタフェースである。
【００３０】
高機能パケット処理部２１において、パケット受信部２２は、高速パケット転送部１２からのパケットを受信（割込み処理）して、受信したパケットをパケット振り分け部２４へ転送する要素であり、スレッドやタスクとして動作する。パケット送信部２３は、パケット処理部２５から受け取ったパケットを高速パケット転送部１２へ送信する要素であり、スレッドやタスクとして動作する。
【００３１】
パケット振り分け部２４は、パケットのヘッダ情報を解析して、複雑なパケットＰ２をパケット処理部２５へ転送し、ネットワーク処理機能用パケットＰ３をホストアクセス部２６へ転送する要素である。つまり、パケット振り分け部２４は、ネットワーク処理機能用パケットＰ３であるか否かを判断するために、ホストの情報（つまり、ＩＰアドレス）を保持していてスレッドやタスクとして動作する。
【００３２】
パケット処理部２５は、ＩＰフラグメント処理やＩＰオプションヘッダ処理などのような、複雑なパケットＰ２に対する処理を行う要素である。このとき、処理内容については特に限定されない。また、処理を行ったパケットはパケット送信部２３へ転送する。ホストアクセス部２６は、パケット振り分け部２４から受け取ったパケットをホスト処理部２７へ転送すると共に、ホスト処理部２７から受け取ったパケットをパケット送信部２３へ転送する要素である。このホストアクセス部２６は、例えば、Ｌｉｎｕｘにおいてはネットワーク型デバイスドライバの役割を担う。ホスト処理部２７は、ネットワークＯＳ（Ｌｉｎｕｘなど）自身が保有するネットワークホスト処理（例えば、ＩＰ処理やＴＣＰ／ＵＤＰ処理）を行う要素である。
【００３３】
次に、図３に示す従来のパケット交換装置による各種のパケット処理の流れを説明する。図４は、図３に示す従来のパケット交換装置おいて高速パケット転送部が入力ポートからのパケットの受信処理を行う動作を示すフロー図であり、図５は、図４におけるパケットの流れ図である。したがって、図５を参照しながら図４のフローチャートの流れを説明する。
【００３４】
図４において、従来のパケット交換装置の高速パケット転送部１２における入力ポートからのパケット受信処理では、ポート受信部１３が入力ポートＩＮからパケットを受信すると（ステップＳ１）、例外パケット送信部１４がパケットのヘッダを解析する（ステップＳ２）。さらに、例外パケット送信部１４は、そのパケットはホスト宛てか否かを判断する。つまり、例外パケット送信部１４は、そのパケットの宛先がホストアドレスとして登録されているアドレスと一致するか否かを判断する（ステップＳ３）。
【００３５】
ここで、パケットがホスト宛てでなければ（ステップＳ３でＮｏの場合）、例外パケット送信部１４は、そのパケットはＩＰオプション処理が必要か否かを判断する（ステップＳ４）。そのパケットはＩＰオプション処理が必要でなければ（ステップＳ４でＮｏの場合）、例外パケット送信部１４は、そのパケットはＩＰフラグメント処理が必要か否かを判断する（ステップＳ５）。そのパケットはＩＰフラグメント処理が必要でなければ（ステップＳ５でＮｏの場合）、パケット転送部１６がパケットをＩＰ転送テーブルにしたがって転送する（ステップＳ６）。さらに、ポート送信部１７がそのパケットを該当する出力ポートＯＵＴへ出力する（ステップＳ７）。
【００３６】
なお、ステップＳ３でパケットがホスト宛てである場合（ステップＳ３でＹｅｓの場合）、ステップＳ４でパケットはＩＰオプション処理が必要な場合（ステップＳ４でＹｅｓの場合）、及びステップＳ５でパケットはＩＰフラグメント処理が必要な場合（ステップＳ５でＹｅｓの場合）は、例外パケット送信部１４がパケットデータをデータバス１９にセットする（ステップＳ８）。さらに、例外パケット送信部１４はパケット受信部用シグナル（信号Ａ）をデータバス１９にセットする（ステップＳ９）。
【００３７】
図６は、図３に示す従来のパケット交換装置おいて高機能パケット処理部が高速パケット転送部からのパケットの受信処理を行う動作を示すフロー図であり、図７は、図６におけるパケットの流れ図である。したがって、図７を参照しながら図６のフローチャートの流れを説明する。
【００３８】
図６において、従来のパケット交換装置の高機能パケット処理部２１におけるパケット受信処理では、パケット受信部２２はパケット受信用シグナル（信号Ａ）を受信する（ステップＳ１１）。さらに、パケット受信部２２はデータバス１９よりパケットを受信する（ステップＳ１２）。次に、パケット振り分け部２４が受信したパケットのヘッダを解析する（ステップＳ１３）。そして、パケット振り分け部２４は、そのパケットはホスト宛てか否かを判断する。つまり、パケット振り分け部２４は、そのパケットの宛先がホストアドレスとして登録されているアドレスと一致するか否かを判断する（ステップＳ１４）。
【００３９】
ここで、パケットがホスト宛てでなければ（ステップＳ１４でＮｏの場合）、パケット振り分け部２４は、そのパケットはＩＰオプション処理が必要か否かを判断する（ステップＳ１５）。そのパケットはＩＰオプション処理が必要でなければ（ステップＳ１５でＮｏの場合）、パケット振り分け部２４は、そのパケットはＩＰフラグメント処理が必要か否かを判断する（ステップＳ１６）。そのパケットはＩＰフラグメント処理が必要でなければ（ステップＳ１６でＮｏの場合）、パケット振り分け部２４はそのパケットを廃棄する（ステップＳ１７）。
【００４０】
なお、ステップＳ１４でパケットがホスト宛てである場合は（ステップＳ１４でＹｅｓの場合）、ホストアクセス部２６が、パケットをネットワークＯＳのホスト処理部２７へ転送する（ステップＳ１８）。また、ステップＳ１５でパケットにＩＰオプション処理が必要な場合（ステップＳ１５でＹｅｓの場合）、及びステップＳ１６でパケットにＩＰフラグメント処理が必要な場合（ステップＳ１６でＹｅｓの場合）は、パケット処理部２５が、ＩＰオプション処理やＩＰフラグメント処理などの高機能パケット処理を実施する（ステップＳ１９）。次に、パケット送信部２３がパケットデータをデータバス１９にセットする（ステップＳ２０）。さらに、パケット送信部２３は例外パケット受信部用シグナル（信号Ｂ）をデータバス１９にセットする（ステップＳ２１）。
【００４１】
図８は、図３に示す従来のパケット交換装置おいて高機能パケット処理部がホスト処理部からパケットを受信した時の処理を示すフロー図であり、図９は、図８におけるパケットの流れ図である。したがって、図９を参照しながら図８のフローチャートの流れを説明する。
【００４２】
図８において、従来のパケット交換装置の高機能パケット処理部２１におけるパケット受信処理では、ホストアクセス部２６が、ネットワークＯＳのホスト処理部２７からパケットを受信し（ステップＳ３１）、そのパケットをパケット送信部２３へ転送する（ステップＳ３２）。すると、パケット送信部２３はパケットデータをデータバス１９にセットし（ステップＳ３３）、さらに、パケット送信部２３は例外パケット受信部用シグナル（信号Ｂ）をデータバス１９にセットする（ステップＳ３４）。
【００４３】
図１０は、図３に示す従来のパケット交換装置おいて高速パケット転送部が高機能パケット処理部からパケットを受信した時の処理を示すフロー図であり、図１１は、図１０におけるパケットの流れ図である。したがって、図１１を参照しながら図１０のフローチャートの流れを説明する。
【００４４】
図１０において、従来のパケット交換装置の高速パケット転送部１２におけるパケット受信処理では、例外パケット受信部１５が、高機能パケット処理部２１のパケット送信部２３から例外パケット受信用シグナル（信号Ｂ）を受信する（ステップＳ４１）。さらに、例外パケット受信部１５はデータバス１９よりパケットを受信する（ステップＳ４２）。そして、例外パケット受信部１５はそのパケットをポート送信部１７へ転送する（ステップＳ４３）。すると、ポート送信部１７はそのパケットを該当する出力ポートＯＵＴへ出力する（ステップＳ４４）。
【００４５】
しかし、従来のパケット交換装置１１における高速パケット転送部１２の入力ポートＩＮに入力されたネットワーク処理機能用パケットＰ３をホスト処理部２７に転送するためには、かなりの処理時間がかかってしまう。つまり、ネットワーク処理機能用パケットＰ３は、パケット受信部２２→パケット振り分け部２４→ホストアクセス部２６を経由してホスト処理部２７へ転送しなければならないので相当の処理時間がかかってしまう。また、ホスト処理部２７からのパケットを高速パケット転送部１２の出力ポートＯＵＴへ出力するのにも、ホストアクセス部２６→パケット送信部２３を経由しなければならないので、かなりの処理時間を要してしまう。そこで、本発明のパケット交換装置では、アクセスポイントを最適に制御することによってパケットの交換処理時間の短縮化を図っている。
【００４６】
《本発明の実施形態によるパケット交換装置》
図１２は、本発明のパケット交換装置の詳細な構成を示すブロック図である。図１２において、本発明のパケット交換装置１は、高速パケット転送部２とネットワークＯＳが動作する高機能パケット処理部３とによって構成されている。また、高速パケット転送部２と高機能パケット処理部３の間には、制御バス１８、データバス１９、及び複数の信号ラインが接続されている。
【００４７】
高速パケット転送部２は、複数の入力ポートＩＮ、複数の出力ポートＯＵＴ、ポート受信部１３、例外パケット送信部１４ａ、例外パケット受信部１５ａ、パケット転送部１６、及びポート送信部１７を備えた構成となっている。
【００４８】
また、高機能パケット処理部３は、パケット受信部２２、パケット送信部２３、パケット振り分け部２４、パケット処理部２５、ホストアクセス部２６ａ、及びホスト処理部２７を備えた構成となっている。
【００４９】
つまり、図１２に示す本発明のパケット交換装置１が図３に示す従来のパケット交換装置１１と異なるところは図１２において二重枠で囲んだ構成要素であって、例外パケット送信部１４ａ、例外パケット受信部１５ａ、及びホストアクセス部２６ａである。したがって、従来技術と同一の構成要素は同一の符号が付してあり重複する説明は省略する。
【００５０】
例外パケット送信部１４ａは、ネットワーク処理機能用パケットＰ３を複雑なパケットＰ２とは別な方法、例えば、別の割込み信号として通知するなどの方法によって高機能パケット処理部３へ転送する。例外パケット受信部１５ａは、ネットワーク処理機能用パケットＰ３を複雑なパケットＰ２とは別な方法、例えば、別の割込み信号として通知されるなどの方法によって受信する。
【００５１】
ホストアクセス部２６ａは、ネットワーク処理機能用パケットＰ３を例外パケット送信部１４ａから直接受信する。例えば、ホストアクセス部２６ａは、例外パケット送信部１４ａからの割込み信号に対応付けて受信するなどの方法によって直接受信する。また、ホストアクセス部２６ａは、ネットワーク処理機能用パケットＰ３を例外パケット受信部１５ａへ直接送信する。例えば、ホストアクセス部２６ａは、例外パケット受信部１５ａに直接割込み信号を通知するなどの方法によって直接送信する。
【００５２】
次に、図１２に示す本発明のパケット交換装置１が行うパケット処理の概要を説明する。全てのパケットが高速パケット転送部２の受信ポート１３に入力されると、例外パケット送信部１４ａが複雑なパケットとネットワーク処理機能用パケットとを分離する。さらに、例外パケット送信部１４ａは、高機能パケット処理部３へ割込み信号を送信してホストアクセス部２６ａへネットワーク処理機能用パケットを直接配信する。すると、ホストアクセス部２６ａは、ネットワーク処理機能用パケットをホスト処理部２７へ送信して所定のパケット処理を行った後、高速パケット転送部２の例外パケット受信部１５ａへ割込み信号を送信し、パケット処理済みのネットワーク処理機能用パケットを例外パケット受信部１５ａへ直接転送する。そして、転送されたネットワーク処理機能用パケットはポート送信部１７から所定の出力ポートＯＵＴへ配信される。これによって、複雑なパケットの処理経路を変更することなく、ネットワーク処理機能用パケットの転送時における処理速度を高速化することができる。
【００５３】
次に、図１２に示す本発明のパケット交換装置による各種のパケット処理の流れを詳細に説明する。図１３は、図１２に示す本発明のパケット交換装置おいて高速パケット転送部が入力ポートからのパケットの受信処理を行う動作を示すフロー図であり、図１４は、図１３におけるパケットの流れ図である。したがって、図１４を参照しながら図１３のフローチャートの流れを説明する。なお、図１３に示す本発明のパケット交換装置の処理が図４に示す従来のパケット交換装置の処理と異なるステップについては二重枠で囲んである。
【００５４】
図１３において、本発明のパケット交換装置１の高速パケット転送部２における入力ポートＩＮからのパケットの受信処理では、ポート受信部１３が入力ポートＩＮからパケットを受信すると（ステップＳ５１）、例外パケット送信部１４ａがパケットのヘッダを解析する（ステップＳ５２）。さらに、例外パケット送信部１４ａが、そのパケットはホスト宛てか否かを判断する。つまり、例外パケット送信部１４ａは、そのパケットの宛先がホストアドレスとして登録されているアドレスと一致するか否かを判断する（ステップＳ５３）。
【００５５】
ここで、パケットがホスト宛てでなければ（ステップＳ５３でＮｏの場合）、例外パケット送信部１４ａは、そのパケットはＩＰオプション処理が必要か否かを判断する（ステップＳ５４）。そのパケットはＩＰオプション処理が必要でなければ（ステップＳ５４でＮｏの場合）、例外パケット送信部１４ａは、そのパケットはＩＰフラグメント処理が必要か否かを判断する（ステップＳ５５）。そのパケットはＩＰフラグメント処理が必要でなければ（ステップＳ５５でＮｏの場合）、パケット転送部１６がパケットをＩＰ転送テーブルにしたがってポート送信部１７へ転送する（ステップＳ５６）。さらに、ポート送信部１７がそのパケットを該当する出力ポートＯＵＴへ出力する（ステップＳ５７）。
【００５６】
なお、ステップＳ５３でパケットがホスト宛てである場合（ステップＳ５３でＹｅｓの場合）は、例外パケット送信部１４ａはパケットデータをデータバス１９にセットする（ステップＳ５８）。さらに、例外パケット送信部１４ａはホストアクセス部用シグナル（信号Ｃ）をデータバス１９にセットする（ステップＳ５９）。
【００５７】
また、ステップＳ５４でパケットにＩＰオプション処理が必要な場合（ステップＳ５４でＹｅｓの場合）、及びステップＳ５５でパケットにＩＰフラグメント処理が必要な場合（ステップＳ５５でＹｅｓの場合）は、例外パケット送信部１４ａがパケットデータをデータバス１９にセットする（ステップＳ６０）。さらに、例外パケット送信部１４ａはパケット受信部用シグナル（信号Ａ）をデータバス１９にセットする（ステップＳ６１）。
【００５８】
図１５は、図１２に示す本発明のパケット交換装置おいて高機能パケット処理部が高速パケット転送部からのパケットの受信処理を行う動作を示すフロー図であり、図１６は、図１５におけるパケットの流れ図である。したがって、図１６を参照しながら図１５のフローチャートの流れを説明する。
【００５９】
図１５において、本発明のパケット交換装置１の高機能パケット処理部３におけるパケット受信処理では、パケット受信部２２はパケット受信用シグナル（信号Ａ）を受信する（ステップＳ７１）。さらに、パケット受信部２２はデータバス１９よりパケットを受信する（ステップＳ７２）。次に、パケット振り分け部２４が受信したパケットのヘッダを解析する（ステップＳ７３）。
【００６０】
さらに、パケット振り分け部２４は、受信したパケットはＩＰオプション処理が必要か否かを判断する（ステップＳ７４）。そのパケットはＩＰオプション処理が必要でなければ（ステップＳ７４でＮｏの場合）、パケット振り分け部２４は、そのパケットはＩＰフラグメント処理が必要か否かを判断する（ステップＳ７５）。そのパケットはＩＰフラグメント処理が必要でなければ（ステップＳ７５でＮｏの場合）、パケット振り分け部２４はそのパケットを廃棄する（ステップＳ７６）。
【００６１】
なお、ステップＳ７４でパケットはＩＰオプション処理が必要である場合（ステップＳ７４でＹｅｓの場合）、及びステップＳ７５でパケットはＩＰフラグメント処理が必要である場合（ステップＳ７５でＹｅｓの場合）は、パケット処理部２５が、ＩＰオプション処理やＩＰフラグメント処理などの高機能パケット処理を実施する（ステップＳ７７）。次に、パケット送信部２３がパケットデータをデータバス１９にセットする（ステップＳ７８）。さらに、パケット送信部２３は例外パケット受信部用シグナル（信号Ｂ）をデータバス１９にセットする（ステップＳ７９）。つまり、図１５のフローチャートは、図６のフローチャートにおけるステップＳ１４のパケット振り分け部２４の処理とステップＳ１８におけるホストアクセス部２６の処理が省略されている。
【００６２】
図１７は、図１２に示す本発明のパケット交換装置おいて高機能パケット処理部がホスト処理部からパケットを受信した時の処理を示すフロー図であり、図１８は、図１７におけるパケットの流れ図である。したがって、図１８を参照しながら図１７のフローチャートの流れを説明する。なお、図１７に示す本発明のパケット交換装置の処理が図８に示す従来のパケット交換装置の処理と異なるステップについては二重枠で囲んである。
【００６３】
図１７において、本発明のパケット交換装置の高機能パケット処理部３におけるパケット受信処理では、ホストアクセス部２６ａがネットワークＯＳのホスト処理部２７からパケットを受信する（ステップＳ８１）。そして、ホストアクセス部２６ａはパケットデータをデータバス１９にセットし（ステップＳ８２）、さらに、ホストアクセス部２６ａは例外パケット受信部用シグナル（信号Ｄ）をデータバス１９にセットする（ステップＳ８３）。つまり、図１７のフローチャートは、図８のフローチャートにおけるステップＳ３３のパケット送信部２３の処理とステップＳ３４のパケット送信部２３の処理が省略されている。
【００６４】
図１９は、図１２に示す本発明のパケット交換装置おいて高速パケット転送部が高機能パケット処理部からパケットを受信した時の処理を示すフロー図であり、図２０は、図１９におけるパケットの流れ図である。したがって、図２０を参照しながら図１９のフローチャートの流れを説明する。なお、図１９に示す本発明のパケット交換装置の処理が図１０に示す従来のパケット交換装置の処理と異なるステップについては二重枠で囲んである。
【００６５】
図１９において、本発明のパケット交換装置の高速パケット転送部２におけるパケット受信処理では、例外パケット受信部１５ａが、高機能パケット処理部３のパケット送信部２３から例外パケット受信用シグナル（信号Ｂ）を受信する（ステップＳ９１）。さらに、例外パケット受信部１５ａは、例外パケット受信用シグナル（信号Ｄ）を受信する（ステップＳ９２）。
【００６６】
また、例外パケット受信部１５ａは、データバス１９よりパケットを受信する（ステップＳ９３）。そして、例外パケット受信部１５ａはそのパケットをポート送信部１７へ転送する（ステップＳ９４）。すると、ポート送信部１７はそのパケットを該当する出力ポートＯＵＴへ出力する（ステップＳ９５）。
【００６７】
以上説明したように、本発明のパケット交換装置は、複雑なパケットＰ２とネットワーク処理機能用パケットＰ３を高機能パケット処理部３へ転送する経路を、高速パケット転送部２から転送する段階において分離している。また、高機能パケット処理部３は、高速パケット転送部２から転送されたネットワーク処理機能用パケットＰ３の転送指示（つまり、割込み信号）を受信すると、処理スレッドを使用することなく、直接、ネットワーク処理機能用パケットＰ３を取り込んでネットワーク処理機能に伝達する。これによって、複雑なパケットＰ２の処理経路を変更することなく、ネットワーク処理機能用パケットＰ３の転送を高速化することができる。
【産業上の利用可能性】
【００６８】
以上説明したように、本発明のパケット交換装置は、複雑なパケットの転送経路を変更することなく、ネットワーク処理機能用パケットのアクセスポイントを最小限にすることにより、ネットワーク処理機能用パケットの転送速度を高速化している。したがって、本発明のパケット交換装置は高速通信を行う通信システムなどに有効に利用することができる。
【図面の簡単な説明】
【００６９】
【図１】本発明におけるパケット交換装置の基本的な構成を示すブロック図
【図２】ネットワークプロセッサの基本的な構成を示すブロック図
【図３】従来のパケット交換装置の詳細な構成を示すブロック図
【図４】図３に示す従来のパケット交換装置おいて高速パケット転送部が入力ポートからのパケットの受信処理を行う動作を示すフローチャート
【図５】図４のフローチャートにおけるパケットの流れ図
【図６】図３に示す従来のパケット交換装置おいて高機能パケット処理部が高速パケット転送部からのパケットの受信処理を行う動作を示すフローチャート
【図７】図６のフローチャートにおけるパケットの流れ図
【図８】図３に示す従来のパケット交換装置おいて高機能パケット処理部がホスト処理部からパケットを受信した時の処理を示すフローチャート
【図９】図８のフローチャートにおけるパケットの流れ図
【図１０】図３に示す従来のパケット交換装置おいて高速パケット転送部が高機能パケット処理部からパケットを受信した時の処理を示すフローチャート
【図１１】図１０のフローチャートにおけるパケットの流れ図
【図１２】本発明のパケット交換装置の詳細な構成を示すブロック図
【図１３】図１２に示す本発明のパケット交換装置おいて高速パケット転送部が入力ポートからのパケットの受信処理を行う動作を示すフローチャート
【図１４】図１３のフローチャートにおけるパケットの流れ図
【図１５】図１２に示す本発明のパケット交換装置おいて高機能パケット処理部が高速パケット転送部からのパケットの受信処理を行う動作を示すフローチャート
【図１６】図１５のフローチャートにおけるパケットの流れ図
【図１７】図１２に示す本発明のパケット交換装置おいて高機能パケット処理部がホスト処理部からパケットを受信した時の処理を示すフローチャート
【図１８】図１７のフローチャートにおけるパケットの流れ図
【図１９】図１２に示す本発明のパケット交換装置おいて高速パケット転送部が高機能パケット処理部からパケットを受信した時の処理を示すフローチャート
【図２０】図１９のフローチャートにおけるパケットの流れ図
【符号の説明】
【００７０】
１、１１  パケット交換装置
２、１２  高速パケット転送部
３、２１  高機能パケット処理部
３−１  ネットワーク処理機能
１３  ポート受信部
１４、１４ａ  例外パケット送信部
１５、１５ａ  例外パケット受信部
１６  パケット転送部
１７  ポート送信部
１８  制御バス
１９  データバス
２２  パケット受信部
２３  パケット送信部
２４  パケット振り分け部
２５  パケット処理部
２６、２６ａ  ホストアクセス部
２７  ホスト処理部
【図１】
2006238161.tif 000003
【図２】
2006238161.tif 000004
【図３】
2006238161.tif 000005
【図４】
2006238161.tif 000006
【図５】
2006238161.tif 000007
【図６】
2006238161.tif 000008
【図７】
2006238161.tif 000009
【図８】
2006238161.tif 000010
【図９】
2006238161.tif 000011
【図１０】
2006238161.tif 000012
【図１１】
2006238161.tif 000013
【図１２】
2006238161.tif 000014
【図１３】
2006238161.tif 000015
【図１４】
2006238161.tif 000016
【図１５】
2006238161.tif 000017
【図１６】
2006238161.tif 000018
【図１７】
2006238161.tif 000019
【図１８】
2006238161.tif 000020
【図１９】
2006238161.tif 000021
【図２０】
2006238161.tif 000022