JP2006033432A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2006033432A
JP2006033432A JP2004209579A JP2004209579A JP2006033432A JP 2006033432 A JP2006033432 A JP 2006033432A JP 2004209579 A JP2004209579 A JP 2004209579A JP 2004209579 A JP2004209579 A JP 2004209579A JP 2006033432 A JP2006033432 A JP 2006033432A
Authority
JP
Japan
Prior art keywords
fragment
processing unit
received
fragmentation information
reception
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004209579A
Other languages
English (en)
Other versions
JP4321390B2 (ja
Inventor
Yoshihiro Tate
義宏 舘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004209579A priority Critical patent/JP4321390B2/ja
Publication of JP2006033432A publication Critical patent/JP2006033432A/ja
Application granted granted Critical
Publication of JP4321390B2 publication Critical patent/JP4321390B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 少ない記憶容量でIPフラグメンテーションを可能とすることができる半導体集積回路を提供する。
【解決手段】 このIP受信処理回路30は、IP受信処理部31と、フラグメント管理部32と、フラグメンテーション情報記録部33と、第1受信キュー34と、上位レイヤ転送処理部35と、第2受信キュー36とを具備する。フラグメント管理部32は、IP受信処理部31が下位レイヤから受信したIPデータグラムがIPフラグメントである場合に、フラグメンテーション情報を作成又は更新し、IPフラグメント内のオフセットとフラグメンテーション情報内のオフセットとを比較し、一致しないときに当該IPフラグメントを第1受信キュー34に書き込み、一致するときに当該IPフラグメントを上位レイヤ転送処理部35に出力するとともフラグメンテーション情報内のオフセットを更新する。
【選択図】 図2

Description

本発明は、IP(Internet Protocol)処理を行うための半導体集積回路に関する。
現在、インターネット、LAN(Local Area Network)等において、TCP/IPと呼ばれる通信プロトコルの階層モデルが広く用いられている。図5は、TCP/IP階層モデルの各レイヤとISO(International Organization for Standardization)で制定されたOSI(Open Systems Interconnection)参照モデルの各レイヤとのおおよその対応関係を示す図である。
TCP/IP階層モデルのインターネット層のIP(Internet Protocol)においては、最大64Kバイト(65,536バイト)のIPデータグラム(IPヘッダ及びデータ部分を含む)を扱うことができることとなっている。
その一方、インターネット層の下位レイヤであるネットワークインタフェース層においては、64Kバイト(65,536バイト)のIPデータグラムを扱えない場合が多い。例えば、ネットワークインタフェース層の一例としてのEthernet(登録商標)では、最大1500バイト(プリアンブル、ヘッダ、FCS(Frame Check Sequence)を除く)までのサイズのIPデータグラムしか扱うことができない。
この問題を解決するために、IPにおいて、IPデータグラムの最大サイズをネットワークインタフェース層で扱うことができるサイズに制限することが考えられる。具体的には、ネットワークインタフェース層としてEthernet(登録商標)を用いる場合、IPデータグラムの最大サイズを1500バイト(IPヘッダ及びデータを含む)に制限することが考えられる。しかしながら、これでは、各々のレイヤがその上位レイヤや下位レイヤに依存しないようにすることを目的とするネットワークの階層化、独立化というOSI参照モデルやTCP/IP階層モデルの基本的な考え方に反することとなる。
そこで、IPにおいて、ネットワークインタフェース層で扱うことができる最大サイズより大きいサイズのIPデータグラムをネットワークインタフェース層で扱うことができる最大サイズ以下の複数のIPデータグラムに分割することが行われている。このような、大きなIPデータグラムを複数のIPデータグラムに分割することは、IPフラグメンテーションと呼ばれている。なお、IPフラグメンテーションにおいて、元のIPデータグラムを分割して得られた複数のIPデータグラムの各々はIPフラグメントと呼ばれる。
送信元装置のIPにおいてIPフラグメンテーションが行われた場合、複数のIPフラグメントが送信元装置から送信先装置に送信される。これらの複数のIPフラグメントは、送信先装置のIPにおいて元のIPデータグラムに復元される。
近年においては、IPの処理を行うための半導体集積回路が用いられるようになってきている。
このようなIPの処理を行うための半導体集積回路において、先に説明したように、IPデータグラムの最大サイズをネットワークインタフェース層で扱うことができるサイズに制限することとすれば、受信バッファを小さくすることができ、比較的安価とすることができる。しかし、これでは、ネットワークの階層化という基本的な考え方に反することとなる。
一方、IPの処理を行うための半導体集積回路においてIPフラグメンテーションを可能とするには、複数のIPフラグメントが順不同で到着することがあるため、元のIPデータグラムを復元するために最大64Kバイト(65,536バイト)の大容量の受信バッファが必要となり、高価となってしまうという問題があった。
ところで、通信プロトコルを用いたパケットによるデータの送受信をネットワークを介しておこなうコンピュータ同士の通信方式において、ネットワーク受信インターフェイスと、パケット並べ換え手段と、並べ換え済み受信データキューと、パケット処理用制御情報記憶手段を備えたプロトコル処理手段を備え、ネットワーク受信インターフェイスは、外部ネットワークから到着したパケットを受信し、パケット並べ換え手段は、ネットワーク受信インターフェイスからパケットを取り出してパケットの到着順序を並べ換え、並べ換え済み受信データキューは、パケット並べ換え手段により並べ換えられたパケットを蓄え、プロトコル処理手段中のパケット処理用制御情報記憶手段はパケット処理用制御情報を記憶することを特徴とする受信処理方式が知られている(例えば、特許文献1参照)。
しかしながら、特許文献1に掲載された受信処理方式は、受信した複数のパケットを並べ換えるものではあるが、IPパケットの転送先ネットワークアドレスやTCP制御ブロックの検索回数を削減し、パケットあたりの受信処理オーバーヘッドを削減するものであり、IPフラグメントから元のIPデータグラムを復元するためのものではない。
特開2001−292170号公報
そこで、上記の点に鑑み、本発明は、少ない記憶容量でIPフラグメンテーションを可能とすることができる半導体集積回路を提供することを目的とする。
以上の課題を解決するため、本発明の第1の観点に係る半導体集積回路は、IP(Internet Protocol)処理を行うための半導体集積回路であって、IPフラグメントの送信元IPアドレス、ID、及び、上位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、IPフラグメントを格納するための受信キューと、IPデータグラム内のデータ部分を上位レイヤに送信するための上位レイヤ転送処理部と、下位レイヤからIPデータグラムを受信するためのIP受信処理部と、IP受信処理部が下位レイヤから受信したIPデータグラムがIPフラグメントである場合に、IP受信処理部が下位レイヤから受信したIPフラグメントを受け取り、IP受信処理部から受け取ったIPフラグメントに基づいてフラグメンテーション情報を作成又は更新し、IP受信処理部から受け取ったIPフラグメント内のオフセットとフラグメンテーション情報内のオフセットとを比較し、IP受信処理部から受け取ったIPフラグメント内のオフセットとフラグメンテーション情報内のオフセットとが一致しないときに当該IPフラグメントを受信キューに書き込み、IP受信処理部から受け取ったIPフラグメント内のオフセットとフラグメンテーション情報内のオフセットとが一致するときに当該IPフラグメントを上位レイヤ転送処理部に出力するとともにフラグメンテーション情報内のオフセットを更新し、受信キューにIPフラグメントが格納されている場合に、フラグメンテーション情報内のオフセットと受信キューに格納されているIPフラグメント内のオフセットとを適宜比較し、フラグメンテーション情報内のオフセットと一致するオフセットを有するIPフラグメントが存在するときに、当該IPフラグメントを上位レイヤ転送処理部に出力するとともにフラグメンテーション情報内のオフセットを更新するためのフラグメント管理部とを具備する。
この半導体集積回路において、IP受信処理部が、下位レイヤから受信したIPデータグラムがIPフラグメントでない場合に、当該IPデータグラムを上位レイヤ転送処理部に出力することとしても良い。
また、IPフラグメントを格納するための第2の受信キューを更に具備し、IP受信処理部が、下位レイヤから受信したIPデータグラムがIPフラグメントである場合に、下位レイヤから受信したIPフラグメント内の送信元IPアドレス及びIDとフラグメンテーション情報内の送信元IPアドレス及びIDとを比較し、下位レイヤから受信したIPフラグメント内の送信元IPアドレス及びIDとフラグメンテーション情報内の送信元IPアドレス及びIDとが一致しないときに、下位レイヤから受信したIPフラグメントを第2の受信キューに書き込むこととしても良い。
さらに、フラグメント管理部が、フラグメンテーション情報に係るIPフラグメントの処理完了後に、第2の受信キューに格納されているIPフラグメントの処理を行うこととしても良い。
また、フラグメンテーション情報記録部が、フラグメンテーション情報を書き込んだ時刻、又は、前記フラグメンテーション情報に係るIPフラグメントを最後に受信した時刻を更に記録し、フラグメント管理部が、時刻より所定の時間を経過した場合に、受信キューに格納されているIPフラグメント及びフラグメンテーション情報記録部に記録されているフラグメンテーション情報を破棄することとしても良い。
また、本発明の第2の観点に係る半導体集積回路は、IP(Internet Protocol)処理を行うための半導体集積回路であって、上位レイヤからデータを受信するための上位レイヤ受信処理部と、下位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、データを格納するための送信キューと、上位レイヤにおいて1個のデータを分割して得られたデータを受け取った場合に、フラグメンテーション情報を参照することにより、受け取ったデータにIPヘッダを付加してIPデータグラムを生成し、それ以外のデータを受け取った場合に、フラグメンテーション情報を参照することなく、受け取ったデータにIPヘッダを付加してIPデータグラムを生成し、下位レイヤに送信するためのIP送信処理部と、上位レイヤ受信処理部が上位レイヤから受信したデータが上位レイヤにおいて1個のデータを分割して得られたデータである場合に、上位レイヤ受信処理部が上位レイヤから受信したデータを受け取り、上位レイヤ受信処理部から受け取ったデータに基づいてフラグメンテーション情報を作成又は更新し、IP送信処理部がデータの受け取りが可能である場合に上位レイヤ受信処理部から受け取ったデータをIP送信処理部に出力し、IP送信処理部がデータの受け取りが可能でない場合に上位レイヤ受信処理部から受け取ったデータを送信キューに書き込むためのフラグメント管理部とを具備する。
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
図1は、本発明の一実施形態としてのIP(Internet Protocol)処理回路を用いたコンピュータの概要を示すブロック図である。このコンピュータ1は、ネットワークNに接続されたネットワークインタフェース回路2と、本発明の一実施形態としてのIP処理回路3と、トランスポート処理回路4と、CPU5と、メモリ6と、表示部7と、入力部8と、HDD(ハードディスクドライブ)9と、インタフェース回路10とを具備する。IP処理回路3は、IP受信処理回路30と、IP送信処理回路40とを具備する。
本実施形態においては、ネットワークNは、Ethernet(登録商標)であるものとし、ネットワークインタフェース回路2は、Ethernet(登録商標)フレームの送受信を行うものとする。また、トランスポート処理回路4は、TCP/IP階層モデルのトランスポート層を担うものとする。具体的には、トランスポート処理回路4は、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、及び、ICMP(Internet Control Message Protocol)の処理を行う。
また、CPU5、メモリ6、表示部7、入力部8、HDD9、及び、インタフェース回路10は、TCP/IP階層モデルのアプリケーション層を担うものとする。例えば、HDD9には、ウェブブラウザプログラム、メールクライアントプログラム等が記録されており、CPU5は、メモリ6を作業領域として使用しながら、これらのプログラムを実行する。
図2は、IP受信処理回路30の内部構成を示す図である。図2に示すように、IP受信処理回路30は、IP受信処理部31と、フラグメント管理部32と、フラグメンテーション情報記録部33と、第1受信キュー34と、上位レイヤ転送処理部35と、第2受信キュー36とを具備する。IP受信処理回路30は、半導体集積回路として構成することができる。
次に、図2を参照しながら、IP受信処理回路30の動作について説明する。
ネットワークインタフェース回路2(図1参照)は、ネットワークNからEthernet(登録商標)フレームを受信すると、Ethernet(登録商標)フレーム内のIPデータグラム(IPフラグメントの場合もあり、フラグメンテーションされていないものの場合もある)をIP受信処理回路30内のIP受信処理部31に送る。
IP受信処理部31は、ネットワークインタフェース回路2からIPデータグラムを受け取ると、受け取ったIPデータグラムがフラグメンテーションされているか否かをチェックする。図3は、IPデータグラムのフォーマットを示す図である。受け取ったIPデータグラムがフラグメンテーションされているか否かは、図3中の送信元IPアドレス、IDフィールド、及び、フラグフィールド内のMF(More Fragment)ビットを調べることによって判断することができる。通常、IDフィールドには、送信元ホストにおいて、IPデータグラム毎に異なった値が埋め込まれる。しかし、1つのIPデータグラムをフラグメンテーションして得られた複数のIPフラグメントのIDフィールドには、同一の値がコピーして埋め込まれる。また、MFビットが1の場合、IPフラグメントがさらに後に続くこととなる。
再び図2を参照すると、IP受信処理部31は、ネットワークインタフェース回路2から受け取ったIPデータグラムがフラグメンテーションされていないものの場合、当該IPデータグラムを上位レイヤ転送処理部35に送る。上位レイヤ転送処理部35は、IP受信処理部31から受け取ったIPデータグラム内のデータ部分をトランスポート処理回路4(図1参照)に送る。なお、上位レイヤ転送処理部35が、IP受信処理部31から受け取ったIPデータグラム内のプロトコル番号フィールドを調べることにより、当該IPデータグラムのデータ部分がTCPのものか、UDPのものか、ICMPのものかを判断し、これに応じてトランスポート処理回路4内の所定の回路に当該IPデータグラムのデータ部分を送るようにしても良い。
一方、IP受信処理部31は、ネットワークインタフェース回路2から受け取ったIPデータグラムがIPフラグメント(フラグメンテーションされているもの)の場合、受け取ったIPデータグラムをフラグメント管理部32に送る。
フラグメント管理部32は、IP受信処理部31からIPフラグメントを受け取ると、フラグメンテーションに関する情報をフラグメンテーション情報記録部33に記録する。ここで、フラグメンテーションに関する情報は、
(A)送信元IPアドレス(図3参照)、
(B)ID(図3参照)、
(C)次に上位層(トランスポート層)に送るべきデータのオフセット
を含む。上記の3つの情報のうち、(A)及び(B)の値は、IP受信処理部31から受け取ったIPフラグメント内の値をそのまま用いることができ、IPフラグメントの処理終了まで変化しない。また、上記(C)は、初期値を「0」とし、後に説明するようにデータを上位層(トランスポート層)に送る毎に更新される。
そして、フラグメント管理部32は、フラグメンテーション情報記録部33に記録されている上記(C)の値と、IP受信処理部31から受け取ったIPフラグメント内のオフセットフィールド(図3参照)の値を比較し、一致する場合には、フラグメンテーション情報記録部33に記録されている上記(C)の値を更新するとともに、当該IPフラグメントを上位レイヤ転送処理部35に送る。上位レイヤ転送処理部35は、フラグメント管理部32から受け取ったIPフラグメントのデータ部分をトランスポート処理回路4(図1参照)に送る。
また、フラグメント管理部32は、フラグメンテーション情報記録部33に記録されている上記(C)の値とIP受信処理部31から受け取ったIPフラグメント内のオフセットフィールド(図3参照)の値とが一致しない場合には、当該IPフラグメントを第1受信キュー34に書き込む。
このように、第1受信キュー34には、IPフラグメントが適宜蓄積されていくが、フラグメント管理部32は、フラグメンテーション情報記録部33に記録されている上記(C)の値と第1受信キュー34に蓄積されているIPフラグメント内のオフセットフィールドの値を適宜比較し、一致する場合には、フラグメンテーション情報記録部33に記録されている上記(C)の値を更新するとともに、当該IPフラグメントを上位レイヤ転送処理部35に送る。
ところで、第1受信キュー34にIPフラグメントが蓄積されている間に、フラグメンテーションされていないIPデータグラムや、フラグメンテーション情報記録部33に記録されている上記(A)及び(B)の値と異なる送信元IPアドレス及びIDを有するIPフラグメントがネットワークインタフェース回路2からIP受信処理部31に到着することが考えられる。
このとき、IP受信処理部31は、ネットワークインタフェース回路2から受け取ったIPデータグラムがフラグメンテーションされていないものの場合、当該IPデータグラムを上位レイヤ転送処理部35に送る。上位レイヤ転送処理部35は、IP受信処理部31から受け取ったIPデータグラムのデータ部分をトランスポート処理回路4(図1参照)に送る。
一方、IP受信処理部31は、ネットワークインタフェース回路2から受け取ったIPデータグラムがIPフラグメントの場合、フラグメンテーション情報記録部33に記録されている上記(A)及び(B)の値と、ネットワークインタフェース回路2から受け取ったIPフラグメント内の送信元IPアドレス及びIDフィールド(図3参照)の値とを比較し、一致しない場合には、当該IPフラグメントを第2受信キュー36に書き込み、一致する場合には、当該IPフラグメントをフラグメント管理部32に送る。
なお、第2受信キュー36に蓄積されたIPフラグメントは、第1受信キュー34に蓄積されているIPフラグメントを全てトランスポート処理回路4に送り終わった後に処理することとすればよい。
このように、IP受信処理回路30によれば、複数のIPフラグメント内のデータ部分をトランスポート処理回路4にオフセット(図3参照)の順で送ることができ、トランスポート処理回路4は、IP受信処理回路30から受け取った複数のデータを受け取った順序で処理すれば良い。これにより、第1受信キュー34の記憶領域が少なくても、IPフラグメントの受信が可能となる。
なお、第1受信キュー34、フラグメンテーション情報記録部33、及び、第2受信キュー36を1個のRAMで構成することとしても良い。
また、本実施形態においては、第1受信キュー34にIPフラグメントが蓄積されている間に、フラグメンテーションされていないIPデータグラムがIP受信処理部31に到着した場合に、上位レイヤ転送処理部35を介してトランスポート処理回路4に送ることとしているが、トランスポート処理回路4が受信順を間違うことを防止するために、このようなIPデータグラムを破棄することとしても良い。
また、本実施形態においては、第2受信キュー36を具備することとし、第1受信キュー34にIPフラグメントが蓄積されている間に、フラグメンテーション情報記録部33に記録されている上記(A)及び(B)の値と異なる送信元IPアドレス及びIDを有するIPフラグメントがネットワークインタフェース回路2からIP受信処理部31に到着した場合に、第2受信キュー36に書き込むこととしている。しかし、この場合、第2受信キュー36内のIPフラグメントをトランスポート処理回路4へ送る処理が、第1受信キュー34に蓄積されているIPフラグメントをトランスポート処理回路4へ送る処理の完了後まで遅らされることとなる。
そこで、IP受信処理回路30が第2受信キュー36を具備するのではなく、トランスポート処理回路4が第2受信キュー36に相当する記録媒体を具備し、IP受信処理回路30が、第1受信キュー34にIPフラグメントが蓄積されている間に、フラグメンテーション情報記録部33に記録されている上記(A)及び(B)の値と異なる送信元IPアドレス及びIDを有するIPフラグメントをネットワークインタフェース回路2から受け取った場合に、この記録媒体に送ることとしても良い。これにより、フラグメンテーション情報記録部33に記録されている上記(A)及び(B)の値と異なる送信元IPアドレス及びIDを有するIPフラグメントをトランスポート処理回路4へ送る処理が、第1受信キュー34に蓄積されているIPフラグメントをトランスポート処理回路4へ送る処理の完了後まで遅らされることを防止することができる。
また、第2受信キュー36を具備せず、第1受信キュー34にIPフラグメントが蓄積されている間に、フラグメンテーション情報記録部33に記録されている上記(A)及び(B)の値と異なる送信元IPアドレス及びIDを有するIPフラグメントがネットワークインタフェース回路2からIP受信処理部31に到着した場合に、このようなIPフラグメントを破棄することとしても良い。
また、フラグメンテーション情報記録部33に、
(D)上記(A)〜(C)を書き込んだ時刻、又は、上記(A)及び(B)を有する
IPフラグメントを最後に受信した時刻
を更に記録することとし、この時刻より所定の時間を経過した場合に、IPフラグメントの受信を中止し、第1受信キュー34内に蓄積されているIPフラグメント及びフラグメンテーション情報記録部33に記録されている情報を破棄することとしても良い。
この場合、IPフラグメントの受信を中止したことをトランスポート処理回路4に通知することとしても良い。これにより、トランスポート処理回路4は、IPフラグメントの処理をリセットすることとしても良い。
また、IPフラグメントが継続すること(図3のフラグフィールド内のMFフラグにより検出可能)をトランスポート処理回路4に通知することとしても良いし、同時に、オフセット(フラグメンテーション情報記録部33に記録されている上記(C)の値)をトランスポート処理回路4に通知することとしても良い。これにより、これらの情報がトランスポート処理回路4において利用可能となる。
また、フラグメンテーションされていないデータも、フラグメンテーションされた先頭のデータも、フラグメンテーションされた先頭以外のデータも、すべて同様に見える形式でトランスポート処理回路4に送ることとしても良い。これにより、トランスポート処理回路4は、フラグメンテーションされているか否かにかかわらず受信データを処理することができる。
また、IP受信処理回路30がフラグメント管理部32、フラグメンテーション情報記録部33、及び、第1受信キュー34を具備せず、これらに相当する回路をトランスポート処理回路4が具備することとしても良い。この場合、プロトコル間の処理の切り分けが不明確になり、トランスポート処理回路4の処理が煩雑になるが、バッファ(第1受信キュー34に相当)の容量については同等で済む。
次に、IP送信処理回路40(図1参照)について説明する。図4は、IP送信処理回路40の内部構成を示す図である。図4に示すように、IP送信処理回路40は、上位レイヤ受信処理部41と、フラグメント管理部42と、フラグメンテーション情報記録部43と、送信キュー44と、IP送信処理部45とを具備する。IP送信処理回路40は、半導体集積回路として構成することができる。また、IP受信処理回路30及びIP送信処理回路40を1個の半導体集積回路として構成することができる。
次に、図4を参照しながら、IP送信処理回路40の動作について説明する。
上位レイヤ受信処理部41は、トランスポート処理回路4からTCP、UDP、又は、ICMPのデータを受け取る。なお、ここでは、トランスポート処理回路4は、IPフラグメンテーションされるべき大きさ(例えば、ネットワークNがEthernet(登録商標)の場合、1500バイトを超える大きさ)のデータは、複数のデータ(以下、「断片」という)に予め分割してからIP送信処理回路40に送るものとする。また、トランスポート処理回路4は、予め分割した断片をIP送信処理回路40に送る場合、データとともに、
(a)データの最終的な大きさ(最初の断片送信時)
(b)断片がさらに継続するか否か(すべての断片送信時)
をIP送信処理回路40に送るものとする。なお、データの最終的な大きさに達するまで特定のIP送信口に送信されるデータはすべて特定のIPデータグラムの断片であるという仕様であれば、上記(b)は省略可能である。
上位レイヤ受信処理部41は、トランスポート処理回路4から受け取ったデータが断片でない場合、IP送信処理部45に送る。IP送信処理部45は、受け取ったデータにIPヘッダ(図3参照)を付加してIPデータグラムを作成し、ネットワークインタフェース回路2に送る。
一方、上位レイヤ受信処理部41は、トランスポート処理回路4から受け取ったデータが断片である場合、上記(a)及び(b)とともに、フラグメント管理部42に送る。フラグメント管理部42は、上位レイヤ受信処理部41から断片を受け取ると、断片のサイズからオフセット値等を算出してフラグメンテーション情報記録部43に記録するとともに、断片をIP送信処理部45に送る。なお、IP送信処理部45が処理中(例えば、断片以外のデータの送信処理を行っている場合等)の場合等には、フラグメント管理部42は、断片を送信キュー44に蓄積する。
IP送信処理部45は、フラグメント管理部42から断片を受け取ると、フラグメンテーション情報記録部43に記録されているオフセット値等を参照し、受け取った断片にIPヘッダ(図3参照)を付加してIPデータグラムを作成し、ネットワークインタフェース回路2に送る。
このように、IP送信処理回路40によれば、送信キュー44の記憶領域が少なくても、IPフラグメントの送信が可能となる。
なお、IP受信処理回路30とIP送信処理回路40とを、1個の半導体集積回路として構成することとしても良い。このとき、フラグメンテーション情報記録部33、第1受信キュー34、第2受信キュー36、フラグメンテーション情報記録部43、及び、送信キューを1個のRAMで構成することとしても良い。
本発明は、IP(Internet Protocol)処理を行うための半導体集積回路において利用可能である。この回路は、コンピュータ、PDA、携帯電話装置等において利用可能である。
本発明の一実施形態に係る半導体集積回路を用いた装置の図。 図1のIP受信処理回路30の内部構成を示す図。 IPデータグラムのフォーマットを示す図。 図1のIP送信処理回路40の内部構成を示す図。 OSI参照モデルとTCP/IP階層モデルとの対応関係を示す図。
符号の説明
1 コンピュータ、2 ネットワークインタフェース回路、3 IP処理回路、4 トランスポート処理回路、5 CPU、6 メモリ、7 表示部、8 入力部、9 HDD、10 インタフェース回路、30 IP受信処理回路、31 IP受信処理部、32、42 フラグメント管理部、33、43 フラグメンテーション情報記録部、34 第1受信キュー、35 上位レイヤ転送処理部、36 第2受信キュー、40 IP送信処理回路、41 上位レイヤ受信処理部、44 送信キュー、45 IP送信処理部

Claims (6)

  1. IP(Internet Protocol)処理を行うための半導体集積回路であって、
    IPフラグメントの送信元IPアドレス、ID、及び、上位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、
    IPフラグメントを格納するための受信キューと、
    IPデータグラム内のデータ部分を前記上位レイヤに送信するための上位レイヤ転送処理部と、
    下位レイヤからIPデータグラムを受信するためのIP受信処理部と、
    前記IP受信処理部が前記下位レイヤから受信したIPデータグラムがIPフラグメントである場合に、前記IP受信処理部が前記下位レイヤから受信したIPフラグメントを受け取り、前記IP受信処理部から受け取ったIPフラグメントに基づいて前記フラグメンテーション情報を作成又は更新し、前記IP受信処理部から受け取ったIPフラグメント内のオフセットと前記フラグメンテーション情報内のオフセットとを比較し、前記IP受信処理部から受け取ったIPフラグメント内のオフセットと前記フラグメンテーション情報内のオフセットとが一致しないときに当該IPフラグメントを前記受信キューに書き込み、前記IP受信処理部から受け取ったIPフラグメント内のオフセットと前記フラグメンテーション情報内のオフセットとが一致するときに当該IPフラグメントを前記上位レイヤ転送処理部に出力するとともに前記フラグメンテーション情報内のオフセットを更新し、前記受信キューにIPフラグメントが格納されている場合に、前記フラグメンテーション情報内のオフセットと前記受信キューに格納されているIPフラグメント内のオフセットとを適宜比較し、前記フラグメンテーション情報内のオフセットと一致するオフセットを有するIPフラグメントが存在するときに、当該IPフラグメントを前記上位レイヤ転送処理部に出力するとともに前記フラグメンテーション情報内のオフセットを更新するためのフラグメント管理部と、
    を具備する半導体集積回路。
  2. 前記IP受信処理部が、前記下位レイヤから受信したIPデータグラムがIPフラグメントでない場合に、当該IPデータグラムを前記上位レイヤ転送処理部に出力する、請求項1記載の半導体集積回路。
  3. IPフラグメントを格納するための第2の受信キューを更に具備し、
    前記IP受信処理部が、前記下位レイヤから受信したIPデータグラムがIPフラグメントである場合に、前記下位レイヤから受信したIPフラグメント内の送信元IPアドレス及びIDと前記フラグメンテーション情報内の送信元IPアドレス及びIDとを比較し、前記下位レイヤから受信したIPフラグメント内の送信元IPアドレス及びIDと前記フラグメンテーション情報内の送信元IPアドレス及びIDとが一致しないときに、前記下位レイヤから受信したIPフラグメントを前記第2の受信キューに書き込む、請求項1又は2記載の半導体集積回路。
  4. 前記フラグメント管理部が、前記フラグメンテーション情報に係るIPフラグメントの処理完了後に、前記第2の受信キューに格納されているIPフラグメントの処理を行う、請求項3記載の半導体集積回路。
  5. 前記フラグメンテーション情報記録部が、前記フラグメンテーション情報を書き込んだ時刻、又は、前記フラグメンテーション情報に係るIPフラグメントを最後に受信した時刻を更に記録し、
    前記フラグメント管理部が、前記時刻より所定の時間を経過した場合に、前記受信キューに格納されているIPフラグメント及び前記フラグメンテーション情報記録部に記録されている前記フラグメンテーション情報を破棄する、請求項1〜4のいずれか1項に記載の半導体集積回路。
  6. IP(Internet Protocol)処理を行うための半導体集積回路であって、
    上位レイヤからデータを受信するための上位レイヤ受信処理部と、
    下位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、
    データを格納するための送信キューと、
    前記上位レイヤにおいて1個のデータを分割して得られたデータを受け取った場合に、前記フラグメンテーション情報を参照することにより、受け取ったデータにIPヘッダを付加してIPデータグラムを生成し、それ以外のデータを受け取った場合に、前記フラグメンテーション情報を参照することなく、受け取ったデータにIPヘッダを付加してIPデータグラムを生成し、前記下位レイヤに送信するためのIP送信処理部と、
    前記上位レイヤ受信処理部が前記上位レイヤから受信したデータが前記上位レイヤにおいて1個のデータを分割して得られたデータである場合に、前記上位レイヤ受信処理部が前記上位レイヤから受信したデータを受け取り、前記上位レイヤ受信処理部から受け取ったデータに基づいて前記フラグメンテーション情報を作成又は更新し、前記IP送信処理部がデータの受け取りが可能である場合に前記上位レイヤ受信処理部から受け取ったデータを前記IP送信処理部に出力し、前記IP送信処理部がデータの受け取りが可能でない場合に前記上位レイヤ受信処理部から受け取ったデータを前記送信キューに書き込むためのフラグメント管理部と、
    を具備する半導体集積回路。
JP2004209579A 2004-07-16 2004-07-16 半導体集積回路 Expired - Fee Related JP4321390B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004209579A JP4321390B2 (ja) 2004-07-16 2004-07-16 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004209579A JP4321390B2 (ja) 2004-07-16 2004-07-16 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2006033432A true JP2006033432A (ja) 2006-02-02
JP4321390B2 JP4321390B2 (ja) 2009-08-26

Family

ID=35899245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004209579A Expired - Fee Related JP4321390B2 (ja) 2004-07-16 2004-07-16 半導体集積回路

Country Status (1)

Country Link
JP (1) JP4321390B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013115576A (ja) * 2011-11-28 2013-06-10 Fujitsu Ltd 受信データ処理方法、通信装置、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013115576A (ja) * 2011-11-28 2013-06-10 Fujitsu Ltd 受信データ処理方法、通信装置、及びプログラム

Also Published As

Publication number Publication date
JP4321390B2 (ja) 2009-08-26

Similar Documents

Publication Publication Date Title
US20200328973A1 (en) Packet coalescing
TWI332150B (en) Processing data for a tcp connection using an offload unit
US9003053B2 (en) Message acceleration
US7420931B2 (en) Using TCP/IP offload to accelerate packet filtering
US7596144B2 (en) System-on-a-chip (SoC) device with integrated support for ethernet, TCP, iSCSI, RDMA, and network application acceleration
US7924881B2 (en) Datagram identifier management
EP1732285B1 (en) Apparatus and methods for a high performance hardware network protocol processing engine
US20060265517A1 (en) Tcp/ip reception process circuit and semiconductor integrated cirtuit having the same
WO2011083670A1 (ja) パケット整列装置、受信装置、及びパケット整列方法
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
US20070291782A1 (en) Acknowledgement filtering
US7969977B2 (en) Processing apparatus and method for processing IP packets
Gomez et al. Tcp usage guidance in the internet of things (iot)
JP2006332927A (ja) Tcp/ip受信処理回路及びそれを具備する半導体集積回路
EP2201740B1 (en) High speed packet processing in a wireless network
US8572289B1 (en) System, method and computer program product for stateless offloading of upper level network protocol operations
JP4321390B2 (ja) 半導体集積回路
TWI505675B (zh) 網路交換器與資料更新方法
US20040223506A1 (en) Packet communication device sending delayed acknowledgement through network
TWI825293B (zh) 應用在網路裝置中的電路
Gomez et al. RFC 9006: TCP Usage Guidance in the Internet of Things (IoT)
JP2006042288A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070628

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090512

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090525

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees