(57)【特許請求の範囲】
【請求項１】
リンク層のプロトコルの処理を行うリンク層処理手段と、
ネットワーク層のプロトコルの処理を行うネットワーク層処理手段と、
トランスポート層のプロトコルの処理を行うトランスポート層処理手段と、
トランスポート層よりも上位のプロトコルの処理を行う上位層処理手段と、
前記リンク層処理手段、前記ネットワーク層処理手段および前記トランスポート層処理手段と相互にデータをやり取りする第１の分割／合成手段と、
前記ネットワーク層処理手段、前記トランスポート層処理手段および前記上位層処理手段と相互にデータをやり取りする第２の分割手段と、を備え、
前記ネットワーク層処理手段および前記トランスポート層処理手段は、並列的に処理を行い、
前記第１の分割／合成手段は、前記リンク層処理手段で処理された受信パケットのネットワークヘッダを前記ネットワーク層処理手段に送信するとともに、トランスポートヘッダおよびデータを前記トランスポート層処理手段に送信し、かつ、前記トランスポート層処理手段および前記ネットワーク層処理手段で並列的に処理されて生成された各データを合成し、合成したデータを前記リンク層処理手段に転送し、
前記第２の分割手段は、前記ネットワーク層処理手段および前記トランスポート層処理手段で並列的に処理されたデータを前記上位層処理手段に転送し、かつ前記上位層処理手段からの送信データに付加されるトランスポートヘッダの生成を指示する信号を前記トランスポート層処理手段に送信するとともに、前記送信データに付加されるネットワークヘッダの生成を指示する信号を前記ネットワーク層処理手段に送信することを特徴とする通信プロトコル処理装置。
【請求項２】
前記リンク層処理手段、前記ネットワーク層処理手段、前記トランスポート層処理手段、および前記上位層処理手段はそれぞれハードウェアで構成されることを特徴とする請求項１に記載の通信プロトコル処理装置。
【請求項３】
リンク層のプロトコルの処理を行うリンク層処理手段と、
ネットワーク層のプロトコルの処理を行うネットワーク層処理手段と、
トランスポート層のプロトコルの処理を行うトランスポート層処理手段と、
トランスポート層よりも上位のプロトコルの処理を行う上位層処理手段と、
前記リンク層処理手段、前記ネットワーク層処理手段および前記トランスポート層処理手段と相互にデータをやり取りする第１の分割／合成手段と、
前記ネットワーク層処理手段、前記トランスポート層処理手段および前記上位層処理手段と相互にデータをやり取りする第２の分割手段と、を備え、
前記リンク層処理手段、前記ネットワーク層処理手段および前記トランスポート層処理手段は、並列的に処理を行い、
前記第１の分割／合成手段は、前記リンク層処理手段で処理された受信パケットのネットワークヘッダを前記ネットワーク層処理手段に送信するとともに、トランスポートヘッダおよびデータを前記トランスポート層処理手段に送信し、かつ、前記トランスポート層処理手段および前記ネットワーク層処理手段で並列的に処理されて生成された各データを合成し、合成したデータを前記リンク層処理手段に転送し、
前記第２の分割手段は、前記ネットワーク層処理手段および前記トランスポート層処理手段で並列的に処理されたデータを前記上位層処理手段に転送し、かつ前記上位層処理手段からの送信データに付加されるトランスポートヘッダの生成を指示する信号を前記トランスポート層処理手段に送信するとともに、前記送信データに付加されるネットワークヘッダの生成を指示する信号を前記ネットワーク層処理手段に送信することを特徴とする通信プロトコル処理装置。
【請求項４】
前記リンク層処理手段、前記ネットワーク層処理手段、前記トランスポート層処理手段、および前記上位層処理手段はそれぞれハードウェアで構成されることを特徴とする請求項３に記載の通信プロトコル処理装置。
【請求項５】
前記トランスポート層処理手段で生成されたセグメントのデータ領域を一時的に格納する半導体記憶素子を備えることを特徴とする請求項１〜４のいずれかに記載の通信プロトコル処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の通信プロトコルを段階的に処理する通信プロトコル処理方法および通信プロトコル処理装置に関する。
【０００２】
【従来の技術】
近年、インターネットプロトコル（ＩＰ）に代表されるＴＣＰ／ＩＰ通信プロトコルは、インターネットの普及に伴って多方面で利用されている。ＴＣＰ／ＩＰは、ワークステーション、パーソナルコンピュータ、携帯端末、ネットワークプリンタ、および情報家電等の各種電気機器に最もよく使われている通信プロトコルである。これらの電気機器にＴＣＰ／ＩＰをインプリメントするには、プロトコルスタックの性能により異なるが、一般的には数１０ＭＩＰＳから数１００ＭＩＰＳのＣＰＵが必要とされている。
【０００３】
この他、ネットワークを制御するプログラムの作業領域として用いられるＲＡＭや、当該プログラムを格納するためのＲＯＭ等を設ける必要がある。また、従来は、ＴＣＰ／ＩＰの処理を主にソフトウェアで行っていたため、この種のソフトウェアをオペレーティングシステム（ＯＳ）や、ブラウザソフト等のアプリケーションプログラムに組み込まなければならず、ＯＳやアプリケーションプログラムの規模が大きくなることから、それに応じてＲＡＭやＲＯＭの容量を増やさなければならない。
【０００４】
また、ＴＣＰ／ＩＰの処理をソフトウェアで行う場合、その処理を高速化するには、動作周波数の高い高性能のＣＰＵが必要になり、消費電力が増えるという問題がある。さらに、ＴＣＰ／ＩＰの処理をソフトウェアにより並列的に実行すると、ＴＣＰ／ＩＰを処理する各プログラムが、タイムシェアリング的に互いに割り込みながらタスクを行うことになり、実効的な速度は向上しない。
【０００５】
【発明が解決しようとする課題】
一方、最近、ＴＣＰ／ＩＰの処理をハードウェアで実現するという試みも提案されている（Ｄｅｓｉｇｎ  Ｗａｖｅ  Ｍａｇａｚｉｎｅ  Ｎｏ．１２，  １９９８）。この文献には、Ｅ−ｍａｉｌ、ＷＥＢ、ＴＣＰ／ＩＰ、ＰＰＰ（Ｐｏｉｎｔ  ｔｏ  Ｐｏｉｎｔ  Ｐｒｏｔｏｃｏｌ）の各処理をハードウェアで実行する技術が開示されており、低速のＣＰＵを用いても、かなりの処理速度が得られ、消費電力を低減できる。
【０００６】
また、ＴＣＰ／ＩＰの処理を含む各種通信プロトコルの処理をワンチップのＬＳＩで行うようにすると、ＴＣＰ／ＩＰの処理を各種電気機器に実装するのが容易になり、新製品の開発負担が少なくなり、製品コストを削減できる。
【０００７】
しかしながら、ＴＣＰ／ＩＰの処理をハードウェアで行う場合も、ソフトウェアで行う場合と同様に、シリアルにプロトコルの処理を行うのが一般的である。すなわち、受信データは、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ、開放型システム間相互接続）で定義された、物理層、リンク層、ネットワーク層、トランスポート層、およびアプリケーション層の順に、一方、送信データは、この順序とは逆に、それぞれシリアルに処理を行っていた。
【０００８】
図７は従来のプロトコル処理の手順を示す概念図である。図示のように、物理層５１に取り込まれた受信データは、リンク層５２、ネットワーク層５３、トランスポート層５４、およびアプリケーション層５５の順序で各プロトコルが処理される。一方、アプリケーション層５５で処理された送信データは、トランスポート層５４、ネットワーク層５３、リンク層５２、および物理層５１の順序で各プロトコルが処理される。
【０００９】
このように、従来は、複数のプロトコルをシリアルに処理していたため、効率的な処理が困難であり、処理速度の向上のためには、動作周波数の高いＣＰＵを用いなければならず、コストアップが避けられなかった。
【００１０】
本発明は、このような点に鑑みてなされたものであり、その目的は、低コストで処理速度の向上が図れる通信プロトコル処理方法および通信プロトコル処理装置を提供することにある。
【００１１】
【課題を解決するための手段】
本発明は、リンク層のプロトコルの処理を行うリンク層処理手段と、ネットワーク層のプロトコルの処理を行うネットワーク層処理手段と、トランスポート層のプロトコルの処理を行うトランスポート層処理手段と、トランスポート層よりも上位のプロトコルの処理を行う上位層処理手段と、前記リンク層処理手段、前記ネットワーク層処理手段および前記トランスポート層処理手段と相互にデータをやり取りする第１の分割／合成手段と、前記ネットワーク層処理手段、前記トランスポート層処理手段および前記上位層処理手段と相互にデータをやり取りする第２の分割手段と、を備え、前記ネットワーク層処理手段および前記トランスポート層処理手段は、並列的に処理を行い、前記第１の分割／合成手段は、前記リンク層処理手段で処理された受信パケットのネットワークヘッダを前記ネットワーク層処理手段に送信するとともに、トランスポートヘッダおよびデータを前記トランスポート層処理手段に送信し、かつ、前記トランスポート層処理手段および前記ネットワーク層処理手段で並列的に処理されて生成された各データを合成し、合成したデータを前記リンク層処理手段に転送し、前記第２の分割手段は、前記ネットワーク層処理手段および前記トランスポート層処理手段で並列的に処理されたデータを前記上位層処理手段に転送し、かつ前記上位層処理手段からの送信データに付加されるトランスポートヘッダの生成を指示する信号を前記トランスポート層処理手段に送信するとともに、前記送信データに付加されるネットワークヘッダの生成を指示する信号を前記ネットワーク層処理手段に送信する。
【００１２】
また、本発明は、リンク層のプロトコルの処理を行うリンク層処理手段と、ネットワーク層のプロトコルの処理を行うネットワーク層処理手段と、トランスポート層のプロトコルの処理を行うトランスポート層処理手段と、トランスポート層よりも上位のプロトコルの処理を行う上位層処理手段と、前記リンク層処理手段、前記ネットワーク層処理手段および前記トランスポート層処理手段と相互にデータをやり取りする第１の分割／合成手段と、前記ネットワーク層処理手段、前記トランスポート層処理手段および前記上位層処理手段と相互にデータをやり取りする第２の分割手段と、を備え、前記リンク層処理手段、前記ネットワーク層処理手段および前記トランスポート層処理手段は、並列的に処理を行い、前記第１の分割／合成手段は、前記リンク層処理手段で処理された受信パケットのネットワークヘッダを前記ネットワーク層処理手段に送信するとともに、トランスポートヘッダおよびデータを前記トランスポート層処理手段に送信し、かつ、前記トランスポート層処理手段および前記ネットワーク層処理手段で並列的に処理されて生成された各データを合成し、合成したデータを前記リンク層処理手段に転送し、前記第２の分割手段は、前記ネットワーク層処理手段および前記トランスポート層処理手段で並列的に処理されたデータを前記上位層処理手段に転送し、かつ前記上位層処理手段からの送信データに付加されるトランスポートヘッダの生成を指示する信号を前記トランスポート層処理手段に送信するとともに、前記送信データに付加されるネットワークヘッダの生成を指示する信号を前記ネットワーク層処理手段に送信する。
【００１３】
本発明では、ネットワーク層の処理とトランスポート層の処理を並列的に行うため、プロトコルの処理に要する時間を短縮できる。
【００１４】
本発明では、受信パケットのプロトコルを処理する際、第１の分割／合成手段により、ネットワーク層のプロトコルとトランスポート層のプロトコルを分割し、分割した各プロトコルを並列的に処理した後、第２の分割手段を通過して上位層に転送されるため、ハードウェアによる並列処理を容易に実現できる。
【００１５】
本発明では、パケットを送信する際、第２の分割手段により、送信データに付加されるネットワークヘッダとトランスポートヘッダの生成処理を同時に行い、両ヘッダを第１の分割／合成手段により合成して送信パケットを生成するため、ハードウェアによる並列処理を容易に実現できる。
【００１６】
本発明では、ネットワーク層処理手段、トランスポート層処理手段、およびリンク層処理手段の処理を並列的に行うため、プロトコルの処理に要する時間をさらに短縮できる。
【００１７】
本発明では、受信パケットのプロトコルを処理する際、第１の分割／合成手段により、ネットワーク層のプロトコル、トランスポート層のプロトコルおよびリンク層のプロトコルを分割し、分割した各プロトコルを並列的に処理した後、第２の分割手段により合成するため、ハードウェアによる並列処理を容易に実現できる。
【００１８】
本発明では、パケットを送信する際、第２の分割手段により、送信データに付加されるネットワークヘッダ、トランスポートヘッダおよびリンクヘッダの生成処理を同時に行い、両ヘッダを第１の分割／合成手段により合成して送信パケットを生成するため、ハードウェアによる並列処理を容易に実現できる。
【００１９】
本発明では、トランスポート層処理手段で生成されたセグメントのデータ領域を半導体記憶素子に記憶するため、データ量の多いパケットでも問題なく処理することができる。また、セグメントのデータ領域を半導体記憶素子に記憶するため、フリップフロップ等に記憶するよりも、ゲート数を削減できる。
【００２０】
【発明の実施の形態】
以下、本発明に係る通信プロトコル処理方法および通信プロトコル処理装置について、図面を参照しながら具体的に説明する。
【００２１】
図１は本発明に係る通信プロトコル処理装置の概略的なブロック図である。図１の通信プロトコル処理装置は、ＯＳＩの参照モデルにおけるアプリケーション層、プレゼンテーション層およびセッション層の処理を行う上位層処理部１と、デマルチプレクサ（第２の分割手段）２と、トランスポート層の処理を行うトランスポート層処理部３と、ネットワーク層の処理を行うネットワーク層処理部４と、マルチプレクサ／デマルチプレクサ（第１の分割／合成手段）５と、リンク層の処理を行うリンク層処理部６と、通信媒体８の制御等の物理層の処理を行う物理層処理部７とを備えている。
【００２２】
図１の通信プロトコル装置は、トランスポート層処理部３とネットワーク層処理部４を並列動作させて、トランスポート層の処理とネットワーク層の処理を並列的に行う点に特徴がある。
【００２３】
リンク層のプロトコルには例えばＰＰＰが用いられ、ネットワーク層のプロトコルには例えばＩＰが用いられ、トランスポート層のプロトコルには例えばＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）が用いられる。
【００２４】
図１の矢印ｙ１はデータの受信方向を示し、矢印ｙ２はデータの送信方向を示している。なお、データはパケット単位で送受信されるものとする。
【００２５】
図２はデータ受信時の処理を示す図である。図示のように、受信されたパケットには、リンク層処理部６で処理されるリンクヘッダＨ２と、ネットワーク層処理部４で処理されるネットワークヘッダＨ３と、トランスポート層処理部３で処理されるトランスポートヘッダＨ４とが付加されている。
【００２６】
受信されたパケットは、まずリンク層処理部６に入力され、リンク層での処理が行われる。具体的には、受信パケットのリンクヘッダＨ２をリンク層のプロトコルに従って処理した後、リンクヘッダＨ２を除去する。
【００２７】
リンク層処理部６での処理が終わった受信パケットのヘッダ領域は、デマルチプレクサ５により２つに分割され、ネットワークヘッダＨ３はネットワーク層処理部４に入力されて処理され、トランスポートヘッダＨ４はトランスポート層処理部３に入力されて処理される。
【００２８】
トランスポート層処理部３とネットワーク層処理部４は並列的に処理を行い、両部での処理が終わると、デマルチプレクサ２に入力されて、受信パケットからネットワークヘッダＨ３とトランスポートヘッダＨ４が除去される。その後、上位層処理部１に入力されてセッション層、プレゼンテーション層およびアプリケーション層の処理が行われる。
【００２９】
上記のような受信処理を行っている間に、トランスポート層で再送処理等を行う必要が生じた場合には、ネットワーク層処理部４とトランスポート層処理部３で互いに通知しあい、受信パケットは下位層（物理層）側に送信される。具体的には、ネットワーク層処理部４とトランスポート層処理部３でそれぞれネットワークヘッダＨ３とトランスポートヘッダＨ４が付加されるとともに、データ領域にエラーメッセージ等が記録される。次に、マルチプレクサ５にて、ネットワーク層処理部４とトランスポート層処理部３の各出力データが合成され、リンク層処理部６を経て送信される。
【００３０】
一方、データの送信処理は図２とは逆の順序で行われる。上位層処理部１から送出されたデータは、デマルチプレクサ２を介してトランスポート層処理部３に転送される。このとき、デマルチプレクサ２は、ネットワークヘッダＨ３の生成を指示するフラグをネットワーク層処理部４に送信する。
【００３１】
トランスポート層処理部３は、トランスポートヘッダＨ４をデータに付加する。また、ネットワーク層処理部４は、上述したフラグが受信されると、ネットワークヘッダＨ３を生成する。このトランスポート層処理部３の処理とネットワーク層処理部４の処理は、並列的に行われる。
【００３２】
トランスポート層処理部３から出力されたセグメントとネットワーク層処理部４で生成されたネットワークヘッダＨ３は、マルチプレクサ５で合成され、送信パケットが生成される。その後、リンク層処理部６にて、送信パケットにリンクヘッダＨ２が付加された後、通信媒体を介して外部に送信される。
【００３３】
このように、本実施形態では、ネットワーク層の処理とトランスポート層の処理を並列的に行うため、通信プロトコルの処理を高速化することができる。また、本実施形態では、アプリケーション層の処理を行う上位層処理部１以外は、すべてハードウェアで実現されるため、ハードウェアの特性を生かした並列処理が可能になり、高価な高性能ＣＰＵ等を用いなくて済む。以下、本発明の具体例を説明する。
【００３４】
（第１の実施形態）
第１の実施形態は、リンク層のプロトコルをＰＰＰ、ネットワーク層のプロトコルをＩＰ／ＩＣＭＰ／ＩＧＭＰ、トランスポート層のプロトコルをＴＣＰ／ＵＤＰにしたものである。
【００３５】
図３は本発明に係る通信プロトコル処理装置の第１の実施形態における概略的なブロック図である。図３では、図１と同じ構成部分には同一符号を付しており、以下では、相違点を中心に説明する。
【００３６】
図３の通信プロトコル処理装置は、リンク層のプロトコル処理を行うＰＰＰモジュール１１と、ネットワーク層のプロトコル処理を行うＩＰモジュール１２と、トランスポート層のプロトコル処理を行うＴＣＰモジュール１３およびＵＤＰモジュール１４と、エラー処理を行うＩＣＭＰモジュール１５およびＩＧＭＰモジュール１６とを有する。
【００３７】
ＴＣＰモジュール１３とＵＤＰモジュール１４は、いずれか一方のみが処理を行う。ＴＣＰは、通信を行う両端システム間の接続確立時に、両端を結ぶ仮想的な通信路を設定して、その後の通信の情報をこの通信路を介して伝送するためのプロトコルである。一方、ＵＤＰは、接続の確立を行わずに、送信する情報に送信先のアドレスを指定し、通信経路の途中でその宛先を見てダイナミックに最適な経路を設定するためのプロトコルである。
【００３８】
ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）は、ＩＰプロトコル内のエラー制御のためのプロトコルである。ＩＧＭＰ（Ｉｎｔｅｒｎｅｔ  Ｇｒｏｕｐ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）は、単一のＩＰ宛先アドレスで識別されるホストグループに、ＩＰデータグラムをマルチキャストするプロトコルである。
【００３９】
図３の各モジュールはハードウェアで構成され、また、ＩＰモジュール１２、ＴＣＰモジュール１３、およびＵＤＰモジュール１４の各処理は、並列的に行われる。
【００４０】
まず、データの受信について説明する。物理層での処理を終えた受信パケットはＰＰＰモジュール１１に入力され、４バイトのＰＰＰヘッダと３バイトのフッタ（ＣＲＣフラグ）が除去されてＩＰデータグラムになる。
【００４１】
ＩＰデータグラムは、デマルチプレクサ５に入力されてヘッダ部分が分割される。この結果、ＩＰヘッダと、ＴＣＰヘッダおよびＴＣＰデータとに分割されるか、あるいは、ＩＰヘッダと、ＵＤＰヘッダおよびＵＤＰデータとに分割される。
【００４２】
これら分割されたＩＰヘッダ等はそれぞれ対応するプロトコル処理モジュールに転送される。
【００４３】
具体的には、ＩＰバージョン４（ＩＰｖ４）を例に取ると、通常、ＩＰヘッダは２０バイトである。デマルチプレクサ５は、ＩＰヘッダ内に４ビットで記述されるヘッダ長の情報に基づいて、オプション領域を含めたＩＰヘッダをＩＰデータグラムから分割して、ＩＰモジュール１２に転送する。
【００４４】
一方、ＴＣＰとＵＤＰに関しては、ＩＰヘッダ内に８ビットで記述されたプロトコル情報をデコードして、ＴＣＰのセグメントかＵＤＰのデータグラムかを判別し、ＴＣＰであればＴＣＰモジュール１３に転送し、ＵＤＰであればＵＤＰモジュール１４に転送する。
【００４５】
ＩＰモジュール１２は、８ビットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）値がゼロであれば、直ちにＩＣＭＰモジュール１５への通知を行う。この通知を受けたＩＣＭＰモジュール１５は、エラーメッセージを生成してＩＰモジュール１２に返す。ＩＰモジュール１２は、エラーメッセージを含むＩＰデータグラムの一部をマルチプレクサに転送する。このとき、ＴＣＰモジュール１３は、ＩＰモジュール１２からのフラグを受け、８ビットのＴＣＰヘッダをマルチプレクサに転送し、これをＩＰモジュール１２で生成された先ほどのＩＰデータグラムの最後に追加し、ＩＰデータグラムを生成し、ＰＰＰモジュール１１に転送する。これらの処理が終了した後、ＴＣＰモジュール１３とＵＤＰモジュール１４は、セグメントを廃棄する。
【００４６】
なお、ＩＰモジュール１２からの処理停止命令は、ＩＰアドレスが自己のアドレスと異なる場合にも発行される。この場合も、ＩＣＭＰモジュール１５のエラーメッセージが発行される。
【００４７】
次に、ＴＣＰモジュール１３が他のホストコンピュータとの間で行う、ＴＣＰプロトコルによるハンドシェイクの遷移例について説明する。ここでは、通常のネゴシエーションの一例を説明する。
【００４８】
上位層処理部１で処理されたデータは、デマルチプレクサ２でデータが選別され、ＩＰ、ＴＣＰまたはＵＤＰの各モジュールに転送される。ＴＣＰモジュール１３と他のホストコンピュータとの間で通信を確立させたい場合、まず他のホストコンピュータにＳＹＮフラグを送る。この場合のＴＣＰセグメントにはデータは含まれておらず、ＴＣＰヘッダとオプション領域のみが含まれている。
【００４９】
ＴＣＰモジュール１３は、ＴＣＰセグメントのヘッダに含まれるＳＹＮフラグをオンし、３２ビットのシーケンスナンバーを付加する。オプション領域には、ＭＳＳ（Ｍｅｓｓａｇｅ  Ｓｕｂｍｉｓｓｉｏｎ  Ｓｅｒｖｉｃｅ）が場合によって記録される。
【００５０】
ここで、上位層のプロトコル処理を行う上位層処理部１とデマルチプレクサ２からは、すでにＴＣＰヘッダの１６ビットのソースポート番号と１６ビットのデスティネーションポート番号も転送されており、これらの情報もＴＣＰセグメントに付加される。この他、１６ビットのウインドウ・サイズ（例えば、４０９６）等の必要な情報も付加される。
【００５１】
同時に、ＩＰモジュール１２では、上位層処理部１とデマルチプレクサ２から３２ビットのソースＩＰアドレス、３２ビットのディスティネーションＩＰアドレス等が転送され、ＩＰヘッダが生成される。
【００５２】
ＴＣＰセグメントが完成すると、マルチプレクサ５に転送される。このとき、ＴＣＰモジュール１３は、ＩＰモジュール１２に対して送信要請フラグを送信する。このフラグを受けて、ＩＰモジュール１２は、ＩＰヘッダを直ちにマルチプレクサに送信する。マルチプレクサ５は、ＴＣＰセグメントとＩＰヘッダとを合成してＩＰデータグラムを生成する。
【００５３】
生成されたＩＰデータグラムは、ＰＰＰモジュール１１に転送されてＰＰＰヘッダとフッタが付加され、ＰＰＰフレームが完成する。
【００５４】
通信相手先のホストコンピュータは、ＴＣＰセグメントのＳＹＮフラグを認識し、送られた３２ビット・シーケンス番号に「１」を加えたものをアクノリッジ・シーケンス番号としてＡＣＫ信号を送り返す。また、ＴＣＰセグメントのヘッダに、ホストコンピュータの３２ビット・シーケンス番号やその他の情報を付加して送信する。
【００５５】
通信相手先のホストコンピュータからの受信データは、デマルチプレクサ５でＩＰヘッダとＴＣＰセグメントに分割され、それぞれＩＰモジュール１２およびＴＣＰモジュール１３で処理され、ＰＰＰモジュール１１とマルチプレクサ５を経て、ＴＣＰモジュール１３に入力されてデコードされ、ＳＹＮフラグとＡＣＫ信号がデコードされる。次に、通信相手先のホストコンピュータが記録した３２ビット・シーケンス番号に「１」を加えたものを、アクノリッジ・シーケンス番号としてＡＣＫ信号をホストコンピュータに送信する。
【００５６】
上述した第１の実施形態においては、データ送信時にＩＰヘッダのアドレスが変更されることはない。このため、ＩＰモジュール１２でいったん生成されたＩＰヘッダは、ＩＰモジュール１２内のレジスタにその情報が保存され、ＴＣＰヘッダからの送信要請フラグを受けたときに、速やかにＩＰヘッダを転送できる状態になっている。
【００５７】
ＩＰモジュール１２内のレジスタは、具体的には、１６０〜４８０個のフリップフロップで構成され、データを高速に取り出せるようになっている。また、図中の各プロトコルモジュール間は、８ビットのパラレル信号でデータのやり取りを行う。
【００５８】
このように、第１の実施形態では、ＩＰモジュール１２、ＴＣＰモジュール１３、およびＵＤＰモジュール１４の各処理を並列的に行うため、通信プロトコルの処理時間を短縮できる。また、これらモジュールをハードウェアで構成するため、ソフトウェアで構成する場合よりも低速動作のＣＰＵを用いることができ、コスト削減が図れる。
【００５９】
（第２の実施形態）
第２の実施形態は、ネットワーク層とトランスポート層の処理を並列的に行うだけでなく、それに加えてリンク層の処理も並列的に行うものである。
【００６０】
図４は本発明に係る通信プロトコル処理装置の第２の実施形態における概略的なブロック図である。図４では、図３と同じ構成部分には同一符号を付しており、以下では、相違点を中心に説明する。
【００６１】
図４の通信プロトコル処理装置は、リンク層のプロトコルであるＰＰＰの処理を行うＰＰＰモジュール１１と、ネットワーク層のプロトコルであるＩＰの処理を行うＩＰモジュール１２と、トランスポート層の処理を行うＴＣＰモジュール１３またはＵＤＰモジュール１４とが並列的に処理を行う点に特徴がある。
【００６２】
また、ＰＰＰモジュール１１には、ＩＰＣＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）の処理を行うＩＰＣＰモジュール１７と、ＬＣＰ（Ｌｉｎｋ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）の処理を行うＬＣＰモジュール１８とが接続されている。
【００６３】
以下、図４の通信プロトコル処理装置の受信動作について説明する。物理層での処理が終わった受信パケットのヘッダ部は、デマルチプレクサ５により、複数に分割される。分割されたＰＰＰヘッダはＰＰＰモジュール１１に、ＴＣＰヘッダはＴＣＰモジュール１３に、ＵＤＰヘッダはＵＤＰモジュール１４に、ＩＰヘッダはＩＰモジュール１２に転送される。
【００６４】
ＰＰＰモジュール１１、ＩＰモジュール１２、ＴＣＰモジュール１３、およびＵＤＰモジュール１４で処理されたデータは、デマルチプレクサ２を通過した後、上位層処理部１に入力されて上位層のプロトコルの処理が行われる。
【００６５】
このように、第２の実施形態では、ＰＰＰモジュール１１、ＴＣＰモジュール１３、ＵＤＰモジュール１４、およびＩＰモジュール１２の処理を並列的に行うため、第１の実施形態よりもさらに処理時間を短縮できる。
【００６６】
（第３の実施形態）
第３の実施形態は、ＴＣＰセグメントを格納するメモリを有する点に特徴がある。
【００６７】
図５は本発明に係る通信プロトコル処理装置の第３の実施形態のブロック図である。図５では、図３と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００６８】
図５の通信プロトコル処理装置は、基本的な構成は図３と同じであるが、ＴＣＰモジュール１３に接続されたメモリ２１を有する点で図３と異なっている。メモリ２１は、ＴＣＰモジュール１３で生成されたＴＣＰセグメントを記憶する。
【００６９】
以下、図５の通信プロトコル処理装置の受信動作を説明する。ＰＰＰモジュール１１での処理が終わったＴＣＰセグメントは、デマルチプレクサ５に入力されて、そのヘッダ部が分割される。分割されたヘッダ部のうち、ＩＰヘッダはＩＰモジュール１２に、ＴＣＰヘッダはＴＣＰモジュール１３にそれぞれ転送される。
【００７０】
ＩＰモジュール１２は、Ｆ／Ｆで構成された１６０個以上のレジスタでＩＰヘッダを迅速に保存するとともに、ＩＰヘッダのデコードを行う。同様に、ＴＣＰモジュール１３は、Ｆ／Ｆで構成された１６０個以上のレジスタでＴＣＰヘッダを一時的に保存する。
【００７１】
一方、ＴＣＰセグメントのデータ領域はメモリ２１に保存される。図５のメモリ２１内のＴＣＰデータバッファ容量は、例えば１ｋバイトである。メモリ２１の容量を増やすのは容易であるため、ＴＣＰセグメントのデータ容量が多くても、メモリ２１に格納することができる。すなわち、本実施形態によれば、ＴＣＰセグメントのデータ容量が大きいパケットも、問題なく処理することができる。
【００７２】
なお、メモリ２１はＴＣＰセグメントのデータ領域を格納するために用いられ、ＩＰヘッダとＴＣＰヘッダはデータ容量が小さいため、各モジュール（ＩＰモジュール１２とＴＣＰモジュール１３）内に保存される。
【００７３】
次に、第３の実施形態におけるデータの送信手順を、ＴＣＰの接続の確立を例に取って説明する。まず、上位層処理部１からの指示により、ＴＣＰモジュール１３はＴＣＰヘッダを生成し、ＩＰモジュール１２はＩＰヘッダを生成する。これらＴＣＰヘッダとＩＰヘッダは、マルチプレクサ／デマルチプレクサにより合成され、パケットが生成される。
【００７４】
生成されたパケットは、リンク層処理部６を経て通信相手先のホストコンピュータに送信され、ＳＹＮフラグやＭＳＳ等が伝達される。ホストコンピュータは、受信したパケットに応答して、ＳＹＮフラグ、ＡＣＫ信号、およびサーバのＭＳＳ等を送信する。これらを受信したクライアントコンピュータは、受信した内容に応じた処理を行い、また、ホストコンピュータにＡＣＫ信号を返す。
【００７５】
以上の処理は、ＩＰヘッダとＴＣＰヘッダのみの通信であり、ＴＣＰセグメントにデータを含める必要はない。したがって、この場合は、メモリ２１にデータを格納する必要はなく、ＴＣＰモジュール１３やＩＰモジュール１２内のレジスタを用いるだけでよいため、高速処理が可能である。一方、ＴＣＰセグメントにデータが含まれている場合には、メモリ２１に格納される。
【００７６】
このように、第３の実施形態では、ＴＣＰセグメントのデータ領域を格納するメモリ２１を設けるため、ＴＣＰモジュール１３内にＴＣＰセグメントのデータ領域を格納する必要がなくなり、データ量の多いパケットも処理することができる。また、メモリ２１にＴＣＰセグメントのデータ領域を格納することにより、フリップフロップ等に格納するよりも、ゲート数を削減できる。
【００７７】
本出願人の実験によれば、従来は、ＴＣＰ／ＩＰの処理を行う場合に、ＴＣＰセグメントにデータが存在しなくても、読み出し／書き込みのメモリ２１アクセス一回当たり、１バイトのデータを処理するのに１２クロック以上が必要であったが、第３の実施形態では、１バイト当たり数クロックで処理を終えることができた。
【００７８】
図５の通信プロトコル処理装置を論理回路で実現し、半導体チップ上に形成したところ、ゲート数は約１００ｋゲートであった。また、このチップに、動作周波数が１００ｋＨｚの主制御用の８ビットＣＰＵと、５１２ｋビットのＵＩプログラム格納用ＲＯＭと、１ｋビットのＲＡＭとを用いて回路基板を製作した。
【００７９】
従来のように、ＴＣＰ／ＩＰ／ＰＰＰプロトコルをシリアルに処理したチップで、９６００ｂｐｓで５５．６ｋｂｐｓのモデムを用いてＥ−ｍａｉｌのバルクデータ（１０〜５０ｋバイト）を処理した。
【００８０】
この場合のＵＩの実質的な処理速度は、モデムの通信速度に対して大差なく、３．７〜４．１ｋｂｐｓであった。また、アプリケーション層とＵＩを除くＴＣＰ／ＩＰ／ＰＰＰプロトコルのみの処理に必要なクロックは、平均で、１２クロック／バイトであった。
【００８１】
一方、本実施形態のように、複数のモジュールを並列に処理したチップでは、全体の処理速度は実質的に８〜１０ｋｂｐｓになり、処理速度が大幅に向上した。特に、ＴＣＰ／ＩＰ／ＰＰＰの処理速度は、平均で約５クロック／バイトになり、処理速度向上に大きく貢献した。
【００８２】
上述した実施形態では、トランスポート層のプロトコルとして、ＴＣＰ／ＩＰを例に取って説明したが、ＴＣＰ／ＩＰ以外のプロトコルでも同様に適用可能であり、例えば、ＷＡＰプロトコルでもよい。また、リンク層処理部６においても、ＰＰＰ以外のプロトコルを処理してもよい。
【００８３】
また、図５では、ＴＣＰモジュール１３とＩＰモジュール１２が並列に処理を行う例を示したが、図４と同様に、これに加えてＰＰＰモジュール１１も並列に処理を行ってもよい。
【００８４】
また、図６は、ＩＰアドレス等の上位層処理部１に必要な各プロトコルヘッダの一部の情報を、メモリモジュール２１を介して転送する例を示す図である。
【００８５】
【発明の効果】
以上詳細に説明したように、本発明によれば、ネットワーク層の処理とトランスポート層の処理を並列的に行うため、プロトコルの処理に要する時間を短縮できる。また、各層のプロトコルの処理をハードウェアで行えば、ハードウェアの特性に合わせた並列処理を行うことができ、高性能で高価格な部品を用いなくても処理速度を向上できる。
【図面の簡単な説明】
【図１】本発明に係る通信プロトコル処理装置の概略的なブロック図。
【図２】データ受信時の処理を示す図。
【図３】本発明に係る通信プロトコル処理装置の第１の実施形態における概略的なブロック図。
【図４】本発明に係る通信プロトコル処理装置の第２の実施形態における概略的なブロック図。
【図５】本発明に係る通信プロトコル処理装置の第３の実施形態のブロック図。
【図６】ＩＰアドレス等の上位層処理部１に必要な各プロトコルヘッダの一部の情報を、メモリモジュール２１を介して転送する例を示す図。
【図７】従来のプロトコル処理の手順を示す概念図。
【符号の説明】
１  上位層処理部
２，５  マルチプレクサ／デマルチプレクサ
３  トランスポート層処理部
４  ネットワーク層処理部
６  リンク層処理部
７  物理層処理部
８  通信媒体
１１  ＰＰＰモジュール
１２  ＩＰモジュール
１３  ＴＣＰモジュール
１４  ＵＤＰモジュール
１５  ＩＣＭＰモジュール
１６  ＩＧＭＰモジュール
【図１】
0003618277.tif 000002
【図２】
0003618277.tif 000003
【図３】
0003618277.tif 000004
【図４】
0003618277.tif 000005
【図５】
0003618277.tif 000006
【図６】
0003618277.tif 000007
【図７】
0003618277.tif 000008