(57)【要約】  【課題】  少ない記憶容量でＩＰフラグメンテーションを可能とすることができる半導体集積回路を提供する。  【解決手段】  このＩＰ受信処理回路３０は、ＩＰ受信処理部３１と、フラグメント管理部３２と、フラグメンテーション情報記録部３３と、第１受信キュー３４と、上位レイヤ転送処理部３５と、第２受信キュー３６とを具備する。フラグメント管理部３２は、ＩＰ受信処理部３１が下位レイヤから受信したＩＰデータグラムがＩＰフラグメントである場合に、フラグメンテーション情報を作成又は更新し、ＩＰフラグメント内のオフセットとフラグメンテーション情報内のオフセットとを比較し、一致しないときに当該ＩＰフラグメントを第１受信キュー３４に書き込み、一致するときに当該ＩＰフラグメントを上位レイヤ転送処理部３５に出力するとともフラグメンテーション情報内のオフセットを更新する。【選択図】  図２
2006033432.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰ（Internet Protocol）処理を行うための半導体集積回路であって、
ＩＰフラグメントの送信元ＩＰアドレス、ＩＤ、及び、上位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、
ＩＰフラグメントを格納するための受信キューと、
ＩＰデータグラム内のデータ部分を前記上位レイヤに送信するための上位レイヤ転送処理部と、
下位レイヤからＩＰデータグラムを受信するためのＩＰ受信処理部と、
前記ＩＰ受信処理部が前記下位レイヤから受信したＩＰデータグラムがＩＰフラグメントである場合に、前記ＩＰ受信処理部が前記下位レイヤから受信したＩＰフラグメントを受け取り、前記ＩＰ受信処理部から受け取ったＩＰフラグメントに基づいて前記フラグメンテーション情報を作成又は更新し、前記ＩＰ受信処理部から受け取ったＩＰフラグメント内のオフセットと前記フラグメンテーション情報内のオフセットとを比較し、前記ＩＰ受信処理部から受け取ったＩＰフラグメント内のオフセットと前記フラグメンテーション情報内のオフセットとが一致しないときに当該ＩＰフラグメントを前記受信キューに書き込み、前記ＩＰ受信処理部から受け取ったＩＰフラグメント内のオフセットと前記フラグメンテーション情報内のオフセットとが一致するときに当該ＩＰフラグメントを前記上位レイヤ転送処理部に出力するとともに前記フラグメンテーション情報内のオフセットを更新し、前記受信キューにＩＰフラグメントが格納されている場合に、前記フラグメンテーション情報内のオフセットと前記受信キューに格納されているＩＰフラグメント内のオフセットとを適宜比較し、前記フラグメンテーション情報内のオフセットと一致するオフセットを有するＩＰフラグメントが存在するときに、当該ＩＰフラグメントを前記上位レイヤ転送処理部に出力するとともに前記フラグメンテーション情報内のオフセットを更新するためのフラグメント管理部と、
を具備する半導体集積回路。
【請求項２】
前記ＩＰ受信処理部が、前記下位レイヤから受信したＩＰデータグラムがＩＰフラグメントでない場合に、当該ＩＰデータグラムを前記上位レイヤ転送処理部に出力する、請求項１記載の半導体集積回路。
【請求項３】
ＩＰフラグメントを格納するための第２の受信キューを更に具備し、
前記ＩＰ受信処理部が、前記下位レイヤから受信したＩＰデータグラムがＩＰフラグメントである場合に、前記下位レイヤから受信したＩＰフラグメント内の送信元ＩＰアドレス及びＩＤと前記フラグメンテーション情報内の送信元ＩＰアドレス及びＩＤとを比較し、前記下位レイヤから受信したＩＰフラグメント内の送信元ＩＰアドレス及びＩＤと前記フラグメンテーション情報内の送信元ＩＰアドレス及びＩＤとが一致しないときに、前記下位レイヤから受信したＩＰフラグメントを前記第２の受信キューに書き込む、請求項１又は２記載の半導体集積回路。
【請求項４】
前記フラグメント管理部が、前記フラグメンテーション情報に係るＩＰフラグメントの処理完了後に、前記第２の受信キューに格納されているＩＰフラグメントの処理を行う、請求項３記載の半導体集積回路。
【請求項５】
前記フラグメンテーション情報記録部が、前記フラグメンテーション情報を書き込んだ時刻、又は、前記フラグメンテーション情報に係るＩＰフラグメントを最後に受信した時刻を更に記録し、
前記フラグメント管理部が、前記時刻より所定の時間を経過した場合に、前記受信キューに格納されているＩＰフラグメント及び前記フラグメンテーション情報記録部に記録されている前記フラグメンテーション情報を破棄する、請求項１〜４のいずれか１項に記載の半導体集積回路。
【請求項６】
ＩＰ（Internet Protocol）処理を行うための半導体集積回路であって、
上位レイヤからデータを受信するための上位レイヤ受信処理部と、
下位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、
データを格納するための送信キューと、
前記上位レイヤにおいて１個のデータを分割して得られたデータを受け取った場合に、前記フラグメンテーション情報を参照することにより、受け取ったデータにＩＰヘッダを付加してＩＰデータグラムを生成し、それ以外のデータを受け取った場合に、前記フラグメンテーション情報を参照することなく、受け取ったデータにＩＰヘッダを付加してＩＰデータグラムを生成し、前記下位レイヤに送信するためのＩＰ送信処理部と、
前記上位レイヤ受信処理部が前記上位レイヤから受信したデータが前記上位レイヤにおいて１個のデータを分割して得られたデータである場合に、前記上位レイヤ受信処理部が前記上位レイヤから受信したデータを受け取り、前記上位レイヤ受信処理部から受け取ったデータに基づいて前記フラグメンテーション情報を作成又は更新し、前記ＩＰ送信処理部がデータの受け取りが可能である場合に前記上位レイヤ受信処理部から受け取ったデータを前記ＩＰ送信処理部に出力し、前記ＩＰ送信処理部がデータの受け取りが可能でない場合に前記上位レイヤ受信処理部から受け取ったデータを前記送信キューに書き込むためのフラグメント管理部と、
を具備する半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Internet Protocol）処理を行うための半導体集積回路に関する。
【背景技術】
【０００２】
現在、インターネット、ＬＡＮ（Local Area Network）等において、ＴＣＰ／ＩＰと呼ばれる通信プロトコルの階層モデルが広く用いられている。図５は、ＴＣＰ／ＩＰ階層モデルの各レイヤとＩＳＯ（International Organization for Standardization）で制定されたＯＳＩ（Open Systems Interconnection）参照モデルの各レイヤとのおおよその対応関係を示す図である。
ＴＣＰ／ＩＰ階層モデルのインターネット層のＩＰ（Internet Protocol）においては、最大６４Ｋバイト（６５，５３６バイト）のＩＰデータグラム（ＩＰヘッダ及びデータ部分を含む）を扱うことができることとなっている。
【０００３】
その一方、インターネット層の下位レイヤであるネットワークインタフェース層においては、６４Ｋバイト（６５，５３６バイト）のＩＰデータグラムを扱えない場合が多い。例えば、ネットワークインタフェース層の一例としてのEthernet（登録商標）では、最大１５００バイト（プリアンブル、ヘッダ、ＦＣＳ（Frame Check Sequence）を除く）までのサイズのＩＰデータグラムしか扱うことができない。
この問題を解決するために、ＩＰにおいて、ＩＰデータグラムの最大サイズをネットワークインタフェース層で扱うことができるサイズに制限することが考えられる。具体的には、ネットワークインタフェース層としてEthernet（登録商標）を用いる場合、ＩＰデータグラムの最大サイズを１５００バイト（ＩＰヘッダ及びデータを含む）に制限することが考えられる。しかしながら、これでは、各々のレイヤがその上位レイヤや下位レイヤに依存しないようにすることを目的とするネットワークの階層化、独立化というＯＳＩ参照モデルやＴＣＰ／ＩＰ階層モデルの基本的な考え方に反することとなる。
【０００４】
そこで、ＩＰにおいて、ネットワークインタフェース層で扱うことができる最大サイズより大きいサイズのＩＰデータグラムをネットワークインタフェース層で扱うことができる最大サイズ以下の複数のＩＰデータグラムに分割することが行われている。このような、大きなＩＰデータグラムを複数のＩＰデータグラムに分割することは、ＩＰフラグメンテーションと呼ばれている。なお、ＩＰフラグメンテーションにおいて、元のＩＰデータグラムを分割して得られた複数のＩＰデータグラムの各々はＩＰフラグメントと呼ばれる。
送信元装置のＩＰにおいてＩＰフラグメンテーションが行われた場合、複数のＩＰフラグメントが送信元装置から送信先装置に送信される。これらの複数のＩＰフラグメントは、送信先装置のＩＰにおいて元のＩＰデータグラムに復元される。
【０００５】
近年においては、ＩＰの処理を行うための半導体集積回路が用いられるようになってきている。
このようなＩＰの処理を行うための半導体集積回路において、先に説明したように、ＩＰデータグラムの最大サイズをネットワークインタフェース層で扱うことができるサイズに制限することとすれば、受信バッファを小さくすることができ、比較的安価とすることができる。しかし、これでは、ネットワークの階層化という基本的な考え方に反することとなる。
一方、ＩＰの処理を行うための半導体集積回路においてＩＰフラグメンテーションを可能とするには、複数のＩＰフラグメントが順不同で到着することがあるため、元のＩＰデータグラムを復元するために最大６４Ｋバイト（６５，５３６バイト）の大容量の受信バッファが必要となり、高価となってしまうという問題があった。
【０００６】
ところで、通信プロトコルを用いたパケットによるデータの送受信をネットワークを介しておこなうコンピュータ同士の通信方式において、ネットワーク受信インターフェイスと、パケット並べ換え手段と、並べ換え済み受信データキューと、パケット処理用制御情報記憶手段を備えたプロトコル処理手段を備え、ネットワーク受信インターフェイスは、外部ネットワークから到着したパケットを受信し、パケット並べ換え手段は、ネットワーク受信インターフェイスからパケットを取り出してパケットの到着順序を並べ換え、並べ換え済み受信データキューは、パケット並べ換え手段により並べ換えられたパケットを蓄え、プロトコル処理手段中のパケット処理用制御情報記憶手段はパケット処理用制御情報を記憶することを特徴とする受信処理方式が知られている（例えば、特許文献１参照）。
【０００７】
しかしながら、特許文献１に掲載された受信処理方式は、受信した複数のパケットを並べ換えるものではあるが、ＩＰパケットの転送先ネットワークアドレスやＴＣＰ制御ブロックの検索回数を削減し、パケットあたりの受信処理オーバーヘッドを削減するものであり、ＩＰフラグメントから元のＩＰデータグラムを復元するためのものではない。
【０００８】
【特許文献１】特開２００１−２９２１７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、上記の点に鑑み、本発明は、少ない記憶容量でＩＰフラグメンテーションを可能とすることができる半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
以上の課題を解決するため、本発明の第１の観点に係る半導体集積回路は、ＩＰ（Internet Protocol）処理を行うための半導体集積回路であって、ＩＰフラグメントの送信元ＩＰアドレス、ＩＤ、及び、上位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、ＩＰフラグメントを格納するための受信キューと、ＩＰデータグラム内のデータ部分を上位レイヤに送信するための上位レイヤ転送処理部と、下位レイヤからＩＰデータグラムを受信するためのＩＰ受信処理部と、ＩＰ受信処理部が下位レイヤから受信したＩＰデータグラムがＩＰフラグメントである場合に、ＩＰ受信処理部が下位レイヤから受信したＩＰフラグメントを受け取り、ＩＰ受信処理部から受け取ったＩＰフラグメントに基づいてフラグメンテーション情報を作成又は更新し、ＩＰ受信処理部から受け取ったＩＰフラグメント内のオフセットとフラグメンテーション情報内のオフセットとを比較し、ＩＰ受信処理部から受け取ったＩＰフラグメント内のオフセットとフラグメンテーション情報内のオフセットとが一致しないときに当該ＩＰフラグメントを受信キューに書き込み、ＩＰ受信処理部から受け取ったＩＰフラグメント内のオフセットとフラグメンテーション情報内のオフセットとが一致するときに当該ＩＰフラグメントを上位レイヤ転送処理部に出力するとともにフラグメンテーション情報内のオフセットを更新し、受信キューにＩＰフラグメントが格納されている場合に、フラグメンテーション情報内のオフセットと受信キューに格納されているＩＰフラグメント内のオフセットとを適宜比較し、フラグメンテーション情報内のオフセットと一致するオフセットを有するＩＰフラグメントが存在するときに、当該ＩＰフラグメントを上位レイヤ転送処理部に出力するとともにフラグメンテーション情報内のオフセットを更新するためのフラグメント管理部とを具備する。
【００１１】
この半導体集積回路において、ＩＰ受信処理部が、下位レイヤから受信したＩＰデータグラムがＩＰフラグメントでない場合に、当該ＩＰデータグラムを上位レイヤ転送処理部に出力することとしても良い。
また、ＩＰフラグメントを格納するための第２の受信キューを更に具備し、ＩＰ受信処理部が、下位レイヤから受信したＩＰデータグラムがＩＰフラグメントである場合に、下位レイヤから受信したＩＰフラグメント内の送信元ＩＰアドレス及びＩＤとフラグメンテーション情報内の送信元ＩＰアドレス及びＩＤとを比較し、下位レイヤから受信したＩＰフラグメント内の送信元ＩＰアドレス及びＩＤとフラグメンテーション情報内の送信元ＩＰアドレス及びＩＤとが一致しないときに、下位レイヤから受信したＩＰフラグメントを第２の受信キューに書き込むこととしても良い。
【００１２】
さらに、フラグメント管理部が、フラグメンテーション情報に係るＩＰフラグメントの処理完了後に、第２の受信キューに格納されているＩＰフラグメントの処理を行うこととしても良い。
また、フラグメンテーション情報記録部が、フラグメンテーション情報を書き込んだ時刻、又は、前記フラグメンテーション情報に係るＩＰフラグメントを最後に受信した時刻を更に記録し、フラグメント管理部が、時刻より所定の時間を経過した場合に、受信キューに格納されているＩＰフラグメント及びフラグメンテーション情報記録部に記録されているフラグメンテーション情報を破棄することとしても良い。
【００１３】
また、本発明の第２の観点に係る半導体集積回路は、ＩＰ（Internet Protocol）処理を行うための半導体集積回路であって、上位レイヤからデータを受信するための上位レイヤ受信処理部と、下位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、データを格納するための送信キューと、上位レイヤにおいて１個のデータを分割して得られたデータを受け取った場合に、フラグメンテーション情報を参照することにより、受け取ったデータにＩＰヘッダを付加してＩＰデータグラムを生成し、それ以外のデータを受け取った場合に、フラグメンテーション情報を参照することなく、受け取ったデータにＩＰヘッダを付加してＩＰデータグラムを生成し、下位レイヤに送信するためのＩＰ送信処理部と、上位レイヤ受信処理部が上位レイヤから受信したデータが上位レイヤにおいて１個のデータを分割して得られたデータである場合に、上位レイヤ受信処理部が上位レイヤから受信したデータを受け取り、上位レイヤ受信処理部から受け取ったデータに基づいてフラグメンテーション情報を作成又は更新し、ＩＰ送信処理部がデータの受け取りが可能である場合に上位レイヤ受信処理部から受け取ったデータをＩＰ送信処理部に出力し、ＩＰ送信処理部がデータの受け取りが可能でない場合に上位レイヤ受信処理部から受け取ったデータを送信キューに書き込むためのフラグメント管理部とを具備する。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
図１は、本発明の一実施形態としてのＩＰ（Internet Protocol）処理回路を用いたコンピュータの概要を示すブロック図である。このコンピュータ１は、ネットワークＮに接続されたネットワークインタフェース回路２と、本発明の一実施形態としてのＩＰ処理回路３と、トランスポート処理回路４と、ＣＰＵ５と、メモリ６と、表示部７と、入力部８と、ＨＤＤ（ハードディスクドライブ）９と、インタフェース回路１０とを具備する。ＩＰ処理回路３は、ＩＰ受信処理回路３０と、ＩＰ送信処理回路４０とを具備する。
【００１５】
本実施形態においては、ネットワークＮは、Ethernet（登録商標）であるものとし、ネットワークインタフェース回路２は、Ethernet（登録商標）フレームの送受信を行うものとする。また、トランスポート処理回路４は、ＴＣＰ／ＩＰ階層モデルのトランスポート層を担うものとする。具体的には、トランスポート処理回路４は、ＴＣＰ（Transmission Control Protocol）、ＵＤＰ（User Datagram Protocol）、及び、ＩＣＭＰ（Internet Control Message Protocol）の処理を行う。
また、ＣＰＵ５、メモリ６、表示部７、入力部８、ＨＤＤ９、及び、インタフェース回路１０は、ＴＣＰ／ＩＰ階層モデルのアプリケーション層を担うものとする。例えば、ＨＤＤ９には、ウェブブラウザプログラム、メールクライアントプログラム等が記録されており、ＣＰＵ５は、メモリ６を作業領域として使用しながら、これらのプログラムを実行する。
【００１６】
図２は、ＩＰ受信処理回路３０の内部構成を示す図である。図２に示すように、ＩＰ受信処理回路３０は、ＩＰ受信処理部３１と、フラグメント管理部３２と、フラグメンテーション情報記録部３３と、第１受信キュー３４と、上位レイヤ転送処理部３５と、第２受信キュー３６とを具備する。ＩＰ受信処理回路３０は、半導体集積回路として構成することができる。
次に、図２を参照しながら、ＩＰ受信処理回路３０の動作について説明する。
【００１７】
ネットワークインタフェース回路２（図１参照）は、ネットワークＮからEthernet（登録商標）フレームを受信すると、Ethernet（登録商標）フレーム内のＩＰデータグラム（ＩＰフラグメントの場合もあり、フラグメンテーションされていないものの場合もある）をＩＰ受信処理回路３０内のＩＰ受信処理部３１に送る。
ＩＰ受信処理部３１は、ネットワークインタフェース回路２からＩＰデータグラムを受け取ると、受け取ったＩＰデータグラムがフラグメンテーションされているか否かをチェックする。図３は、ＩＰデータグラムのフォーマットを示す図である。受け取ったＩＰデータグラムがフラグメンテーションされているか否かは、図３中の送信元ＩＰアドレス、ＩＤフィールド、及び、フラグフィールド内のＭＦ（More Fragment）ビットを調べることによって判断することができる。通常、ＩＤフィールドには、送信元ホストにおいて、ＩＰデータグラム毎に異なった値が埋め込まれる。しかし、１つのＩＰデータグラムをフラグメンテーションして得られた複数のＩＰフラグメントのＩＤフィールドには、同一の値がコピーして埋め込まれる。また、ＭＦビットが１の場合、ＩＰフラグメントがさらに後に続くこととなる。
【００１８】
再び図２を参照すると、ＩＰ受信処理部３１は、ネットワークインタフェース回路２から受け取ったＩＰデータグラムがフラグメンテーションされていないものの場合、当該ＩＰデータグラムを上位レイヤ転送処理部３５に送る。上位レイヤ転送処理部３５は、ＩＰ受信処理部３１から受け取ったＩＰデータグラム内のデータ部分をトランスポート処理回路４（図１参照）に送る。なお、上位レイヤ転送処理部３５が、ＩＰ受信処理部３１から受け取ったＩＰデータグラム内のプロトコル番号フィールドを調べることにより、当該ＩＰデータグラムのデータ部分がＴＣＰのものか、ＵＤＰのものか、ＩＣＭＰのものかを判断し、これに応じてトランスポート処理回路４内の所定の回路に当該ＩＰデータグラムのデータ部分を送るようにしても良い。
【００１９】
一方、ＩＰ受信処理部３１は、ネットワークインタフェース回路２から受け取ったＩＰデータグラムがＩＰフラグメント（フラグメンテーションされているもの）の場合、受け取ったＩＰデータグラムをフラグメント管理部３２に送る。
フラグメント管理部３２は、ＩＰ受信処理部３１からＩＰフラグメントを受け取ると、フラグメンテーションに関する情報をフラグメンテーション情報記録部３３に記録する。ここで、フラグメンテーションに関する情報は、
（Ａ）送信元ＩＰアドレス（図３参照）、
（Ｂ）ＩＤ（図３参照）、
（Ｃ）次に上位層（トランスポート層）に送るべきデータのオフセット
を含む。上記の３つの情報のうち、（Ａ）及び（Ｂ）の値は、ＩＰ受信処理部３１から受け取ったＩＰフラグメント内の値をそのまま用いることができ、ＩＰフラグメントの処理終了まで変化しない。また、上記（Ｃ）は、初期値を「０」とし、後に説明するようにデータを上位層（トランスポート層）に送る毎に更新される。
【００２０】
そして、フラグメント管理部３２は、フラグメンテーション情報記録部３３に記録されている上記（Ｃ）の値と、ＩＰ受信処理部３１から受け取ったＩＰフラグメント内のオフセットフィールド（図３参照）の値を比較し、一致する場合には、フラグメンテーション情報記録部３３に記録されている上記（Ｃ）の値を更新するとともに、当該ＩＰフラグメントを上位レイヤ転送処理部３５に送る。上位レイヤ転送処理部３５は、フラグメント管理部３２から受け取ったＩＰフラグメントのデータ部分をトランスポート処理回路４（図１参照）に送る。
また、フラグメント管理部３２は、フラグメンテーション情報記録部３３に記録されている上記（Ｃ）の値とＩＰ受信処理部３１から受け取ったＩＰフラグメント内のオフセットフィールド（図３参照）の値とが一致しない場合には、当該ＩＰフラグメントを第１受信キュー３４に書き込む。
【００２１】
このように、第１受信キュー３４には、ＩＰフラグメントが適宜蓄積されていくが、フラグメント管理部３２は、フラグメンテーション情報記録部３３に記録されている上記（Ｃ）の値と第１受信キュー３４に蓄積されているＩＰフラグメント内のオフセットフィールドの値を適宜比較し、一致する場合には、フラグメンテーション情報記録部３３に記録されている上記（Ｃ）の値を更新するとともに、当該ＩＰフラグメントを上位レイヤ転送処理部３５に送る。
【００２２】
ところで、第１受信キュー３４にＩＰフラグメントが蓄積されている間に、フラグメンテーションされていないＩＰデータグラムや、フラグメンテーション情報記録部３３に記録されている上記（Ａ）及び（Ｂ）の値と異なる送信元ＩＰアドレス及びＩＤを有するＩＰフラグメントがネットワークインタフェース回路２からＩＰ受信処理部３１に到着することが考えられる。
このとき、ＩＰ受信処理部３１は、ネットワークインタフェース回路２から受け取ったＩＰデータグラムがフラグメンテーションされていないものの場合、当該ＩＰデータグラムを上位レイヤ転送処理部３５に送る。上位レイヤ転送処理部３５は、ＩＰ受信処理部３１から受け取ったＩＰデータグラムのデータ部分をトランスポート処理回路４（図１参照）に送る。
【００２３】
一方、ＩＰ受信処理部３１は、ネットワークインタフェース回路２から受け取ったＩＰデータグラムがＩＰフラグメントの場合、フラグメンテーション情報記録部３３に記録されている上記（Ａ）及び（Ｂ）の値と、ネットワークインタフェース回路２から受け取ったＩＰフラグメント内の送信元ＩＰアドレス及びＩＤフィールド（図３参照）の値とを比較し、一致しない場合には、当該ＩＰフラグメントを第２受信キュー３６に書き込み、一致する場合には、当該ＩＰフラグメントをフラグメント管理部３２に送る。
なお、第２受信キュー３６に蓄積されたＩＰフラグメントは、第１受信キュー３４に蓄積されているＩＰフラグメントを全てトランスポート処理回路４に送り終わった後に処理することとすればよい。
【００２４】
このように、ＩＰ受信処理回路３０によれば、複数のＩＰフラグメント内のデータ部分をトランスポート処理回路４にオフセット（図３参照）の順で送ることができ、トランスポート処理回路４は、ＩＰ受信処理回路３０から受け取った複数のデータを受け取った順序で処理すれば良い。これにより、第１受信キュー３４の記憶領域が少なくても、ＩＰフラグメントの受信が可能となる。
【００２５】
なお、第１受信キュー３４、フラグメンテーション情報記録部３３、及び、第２受信キュー３６を１個のＲＡＭで構成することとしても良い。
また、本実施形態においては、第１受信キュー３４にＩＰフラグメントが蓄積されている間に、フラグメンテーションされていないＩＰデータグラムがＩＰ受信処理部３１に到着した場合に、上位レイヤ転送処理部３５を介してトランスポート処理回路４に送ることとしているが、トランスポート処理回路４が受信順を間違うことを防止するために、このようなＩＰデータグラムを破棄することとしても良い。
【００２６】
また、本実施形態においては、第２受信キュー３６を具備することとし、第１受信キュー３４にＩＰフラグメントが蓄積されている間に、フラグメンテーション情報記録部３３に記録されている上記（Ａ）及び（Ｂ）の値と異なる送信元ＩＰアドレス及びＩＤを有するＩＰフラグメントがネットワークインタフェース回路２からＩＰ受信処理部３１に到着した場合に、第２受信キュー３６に書き込むこととしている。しかし、この場合、第２受信キュー３６内のＩＰフラグメントをトランスポート処理回路４へ送る処理が、第１受信キュー３４に蓄積されているＩＰフラグメントをトランスポート処理回路４へ送る処理の完了後まで遅らされることとなる。
そこで、ＩＰ受信処理回路３０が第２受信キュー３６を具備するのではなく、トランスポート処理回路４が第２受信キュー３６に相当する記録媒体を具備し、ＩＰ受信処理回路３０が、第１受信キュー３４にＩＰフラグメントが蓄積されている間に、フラグメンテーション情報記録部３３に記録されている上記（Ａ）及び（Ｂ）の値と異なる送信元ＩＰアドレス及びＩＤを有するＩＰフラグメントをネットワークインタフェース回路２から受け取った場合に、この記録媒体に送ることとしても良い。これにより、フラグメンテーション情報記録部３３に記録されている上記（Ａ）及び（Ｂ）の値と異なる送信元ＩＰアドレス及びＩＤを有するＩＰフラグメントをトランスポート処理回路４へ送る処理が、第１受信キュー３４に蓄積されているＩＰフラグメントをトランスポート処理回路４へ送る処理の完了後まで遅らされることを防止することができる。
【００２７】
また、第２受信キュー３６を具備せず、第１受信キュー３４にＩＰフラグメントが蓄積されている間に、フラグメンテーション情報記録部３３に記録されている上記（Ａ）及び（Ｂ）の値と異なる送信元ＩＰアドレス及びＩＤを有するＩＰフラグメントがネットワークインタフェース回路２からＩＰ受信処理部３１に到着した場合に、このようなＩＰフラグメントを破棄することとしても良い。
【００２８】
また、フラグメンテーション情報記録部３３に、
（Ｄ）上記（Ａ）〜（Ｃ）を書き込んだ時刻、又は、上記（Ａ）及び（Ｂ）を有する
ＩＰフラグメントを最後に受信した時刻
を更に記録することとし、この時刻より所定の時間を経過した場合に、ＩＰフラグメントの受信を中止し、第１受信キュー３４内に蓄積されているＩＰフラグメント及びフラグメンテーション情報記録部３３に記録されている情報を破棄することとしても良い。
この場合、ＩＰフラグメントの受信を中止したことをトランスポート処理回路４に通知することとしても良い。これにより、トランスポート処理回路４は、ＩＰフラグメントの処理をリセットすることとしても良い。
【００２９】
また、ＩＰフラグメントが継続すること（図３のフラグフィールド内のＭＦフラグにより検出可能）をトランスポート処理回路４に通知することとしても良いし、同時に、オフセット（フラグメンテーション情報記録部３３に記録されている上記（Ｃ）の値）をトランスポート処理回路４に通知することとしても良い。これにより、これらの情報がトランスポート処理回路４において利用可能となる。
【００３０】
また、フラグメンテーションされていないデータも、フラグメンテーションされた先頭のデータも、フラグメンテーションされた先頭以外のデータも、すべて同様に見える形式でトランスポート処理回路４に送ることとしても良い。これにより、トランスポート処理回路４は、フラグメンテーションされているか否かにかかわらず受信データを処理することができる。
【００３１】
また、ＩＰ受信処理回路３０がフラグメント管理部３２、フラグメンテーション情報記録部３３、及び、第１受信キュー３４を具備せず、これらに相当する回路をトランスポート処理回路４が具備することとしても良い。この場合、プロトコル間の処理の切り分けが不明確になり、トランスポート処理回路４の処理が煩雑になるが、バッファ（第１受信キュー３４に相当）の容量については同等で済む。
【００３２】
次に、ＩＰ送信処理回路４０（図１参照）について説明する。図４は、ＩＰ送信処理回路４０の内部構成を示す図である。図４に示すように、ＩＰ送信処理回路４０は、上位レイヤ受信処理部４１と、フラグメント管理部４２と、フラグメンテーション情報記録部４３と、送信キュー４４と、ＩＰ送信処理部４５とを具備する。ＩＰ送信処理回路４０は、半導体集積回路として構成することができる。また、ＩＰ受信処理回路３０及びＩＰ送信処理回路４０を１個の半導体集積回路として構成することができる。
次に、図４を参照しながら、ＩＰ送信処理回路４０の動作について説明する。
【００３３】
上位レイヤ受信処理部４１は、トランスポート処理回路４からＴＣＰ、ＵＤＰ、又は、ＩＣＭＰのデータを受け取る。なお、ここでは、トランスポート処理回路４は、ＩＰフラグメンテーションされるべき大きさ（例えば、ネットワークＮがEthernet（登録商標）の場合、１５００バイトを超える大きさ）のデータは、複数のデータ（以下、「断片」という）に予め分割してからＩＰ送信処理回路４０に送るものとする。また、トランスポート処理回路４は、予め分割した断片をＩＰ送信処理回路４０に送る場合、データとともに、
（ａ）データの最終的な大きさ（最初の断片送信時）
（ｂ）断片がさらに継続するか否か（すべての断片送信時）
をＩＰ送信処理回路４０に送るものとする。なお、データの最終的な大きさに達するまで特定のＩＰ送信口に送信されるデータはすべて特定のＩＰデータグラムの断片であるという仕様であれば、上記（ｂ）は省略可能である。
【００３４】
上位レイヤ受信処理部４１は、トランスポート処理回路４から受け取ったデータが断片でない場合、ＩＰ送信処理部４５に送る。ＩＰ送信処理部４５は、受け取ったデータにＩＰヘッダ（図３参照）を付加してＩＰデータグラムを作成し、ネットワークインタフェース回路２に送る。
【００３５】
一方、上位レイヤ受信処理部４１は、トランスポート処理回路４から受け取ったデータが断片である場合、上記（ａ）及び（ｂ）とともに、フラグメント管理部４２に送る。フラグメント管理部４２は、上位レイヤ受信処理部４１から断片を受け取ると、断片のサイズからオフセット値等を算出してフラグメンテーション情報記録部４３に記録するとともに、断片をＩＰ送信処理部４５に送る。なお、ＩＰ送信処理部４５が処理中（例えば、断片以外のデータの送信処理を行っている場合等）の場合等には、フラグメント管理部４２は、断片を送信キュー４４に蓄積する。
ＩＰ送信処理部４５は、フラグメント管理部４２から断片を受け取ると、フラグメンテーション情報記録部４３に記録されているオフセット値等を参照し、受け取った断片にＩＰヘッダ（図３参照）を付加してＩＰデータグラムを作成し、ネットワークインタフェース回路２に送る。
【００３６】
このように、ＩＰ送信処理回路４０によれば、送信キュー４４の記憶領域が少なくても、ＩＰフラグメントの送信が可能となる。
【００３７】
なお、ＩＰ受信処理回路３０とＩＰ送信処理回路４０とを、１個の半導体集積回路として構成することとしても良い。このとき、フラグメンテーション情報記録部３３、第１受信キュー３４、第２受信キュー３６、フラグメンテーション情報記録部４３、及び、送信キューを１個のＲＡＭで構成することとしても良い。
【産業上の利用可能性】
【００３８】
本発明は、ＩＰ（Internet Protocol）処理を行うための半導体集積回路において利用可能である。この回路は、コンピュータ、ＰＤＡ、携帯電話装置等において利用可能である。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態に係る半導体集積回路を用いた装置の図。
【図２】図１のＩＰ受信処理回路３０の内部構成を示す図。
【図３】ＩＰデータグラムのフォーマットを示す図。
【図４】図１のＩＰ送信処理回路４０の内部構成を示す図。
【図５】ＯＳＩ参照モデルとＴＣＰ／ＩＰ階層モデルとの対応関係を示す図。
【符号の説明】
【００４０】
１  コンピュータ、２  ネットワークインタフェース回路、３  ＩＰ処理回路、４  トランスポート処理回路、５  ＣＰＵ、６  メモリ、７  表示部、８  入力部、９  ＨＤＤ、１０  インタフェース回路、３０  ＩＰ受信処理回路、３１  ＩＰ受信処理部、３２、４２  フラグメント管理部、３３、４３  フラグメンテーション情報記録部、３４  第１受信キュー、３５  上位レイヤ転送処理部、３６  第２受信キュー、４０  ＩＰ送信処理回路、４１  上位レイヤ受信処理部、４４  送信キュー、４５  ＩＰ送信処理部
【図１】
2006033432.tif 000003
【図２】
2006033432.tif 000004
【図３】
2006033432.tif 000005
【図４】
2006033432.tif 000006
【図５】
2006033432.tif 000007