JP2006033432A - 半導体集積回路 - Google Patents
半導体集積回路 Download PDFInfo
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【解決手段】 このIP受信処理回路30は、IP受信処理部31と、フラグメント管理部32と、フラグメンテーション情報記録部33と、第1受信キュー34と、上位レイヤ転送処理部35と、第2受信キュー36とを具備する。フラグメント管理部32は、IP受信処理部31が下位レイヤから受信したIPデータグラムがIPフラグメントである場合に、フラグメンテーション情報を作成又は更新し、IPフラグメント内のオフセットとフラグメンテーション情報内のオフセットとを比較し、一致しないときに当該IPフラグメントを第1受信キュー34に書き込み、一致するときに当該IPフラグメントを上位レイヤ転送処理部35に出力するとともフラグメンテーション情報内のオフセットを更新する。
【選択図】 図2
Description
TCP/IP階層モデルのインターネット層のIP(Internet Protocol)においては、最大64Kバイト(65,536バイト)のIPデータグラム(IPヘッダ及びデータ部分を含む)を扱うことができることとなっている。
この問題を解決するために、IPにおいて、IPデータグラムの最大サイズをネットワークインタフェース層で扱うことができるサイズに制限することが考えられる。具体的には、ネットワークインタフェース層としてEthernet(登録商標)を用いる場合、IPデータグラムの最大サイズを1500バイト(IPヘッダ及びデータを含む)に制限することが考えられる。しかしながら、これでは、各々のレイヤがその上位レイヤや下位レイヤに依存しないようにすることを目的とするネットワークの階層化、独立化というOSI参照モデルやTCP/IP階層モデルの基本的な考え方に反することとなる。
送信元装置のIPにおいてIPフラグメンテーションが行われた場合、複数のIPフラグメントが送信元装置から送信先装置に送信される。これらの複数のIPフラグメントは、送信先装置のIPにおいて元のIPデータグラムに復元される。
このようなIPの処理を行うための半導体集積回路において、先に説明したように、IPデータグラムの最大サイズをネットワークインタフェース層で扱うことができるサイズに制限することとすれば、受信バッファを小さくすることができ、比較的安価とすることができる。しかし、これでは、ネットワークの階層化という基本的な考え方に反することとなる。
一方、IPの処理を行うための半導体集積回路においてIPフラグメンテーションを可能とするには、複数のIPフラグメントが順不同で到着することがあるため、元のIPデータグラムを復元するために最大64Kバイト(65,536バイト)の大容量の受信バッファが必要となり、高価となってしまうという問題があった。
また、IPフラグメントを格納するための第2の受信キューを更に具備し、IP受信処理部が、下位レイヤから受信したIPデータグラムがIPフラグメントである場合に、下位レイヤから受信したIPフラグメント内の送信元IPアドレス及びIDとフラグメンテーション情報内の送信元IPアドレス及びIDとを比較し、下位レイヤから受信したIPフラグメント内の送信元IPアドレス及びIDとフラグメンテーション情報内の送信元IPアドレス及びIDとが一致しないときに、下位レイヤから受信したIPフラグメントを第2の受信キューに書き込むこととしても良い。
また、フラグメンテーション情報記録部が、フラグメンテーション情報を書き込んだ時刻、又は、前記フラグメンテーション情報に係る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とを具備する。
また、CPU5、メモリ6、表示部7、入力部8、HDD9、及び、インタフェース回路10は、TCP/IP階層モデルのアプリケーション層を担うものとする。例えば、HDD9には、ウェブブラウザプログラム、メールクライアントプログラム等が記録されており、CPU5は、メモリ6を作業領域として使用しながら、これらのプログラムを実行する。
次に、図2を参照しながら、IP受信処理回路30の動作について説明する。
IP受信処理部31は、ネットワークインタフェース回路2からIPデータグラムを受け取ると、受け取ったIPデータグラムがフラグメンテーションされているか否かをチェックする。図3は、IPデータグラムのフォーマットを示す図である。受け取ったIPデータグラムがフラグメンテーションされているか否かは、図3中の送信元IPアドレス、IDフィールド、及び、フラグフィールド内のMF(More Fragment)ビットを調べることによって判断することができる。通常、IDフィールドには、送信元ホストにおいて、IPデータグラム毎に異なった値が埋め込まれる。しかし、1つのIPデータグラムをフラグメンテーションして得られた複数のIPフラグメントのIDフィールドには、同一の値がコピーして埋め込まれる。また、MFビットが1の場合、IPフラグメントがさらに後に続くこととなる。
フラグメント管理部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参照)の値とが一致しない場合には、当該IPフラグメントを第1受信キュー34に書き込む。
このとき、IP受信処理部31は、ネットワークインタフェース回路2から受け取ったIPデータグラムがフラグメンテーションされていないものの場合、当該IPデータグラムを上位レイヤ転送処理部35に送る。上位レイヤ転送処理部35は、IP受信処理部31から受け取ったIPデータグラムのデータ部分をトランスポート処理回路4(図1参照)に送る。
なお、第2受信キュー36に蓄積されたIPフラグメントは、第1受信キュー34に蓄積されているIPフラグメントを全てトランスポート処理回路4に送り終わった後に処理することとすればよい。
また、本実施形態においては、第1受信キュー34にIPフラグメントが蓄積されている間に、フラグメンテーションされていないIPデータグラムがIP受信処理部31に到着した場合に、上位レイヤ転送処理部35を介してトランスポート処理回路4に送ることとしているが、トランスポート処理回路4が受信順を間違うことを防止するために、このようなIPデータグラムを破棄することとしても良い。
そこで、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へ送る処理の完了後まで遅らされることを防止することができる。
(D)上記(A)〜(C)を書き込んだ時刻、又は、上記(A)及び(B)を有する
IPフラグメントを最後に受信した時刻
を更に記録することとし、この時刻より所定の時間を経過した場合に、IPフラグメントの受信を中止し、第1受信キュー34内に蓄積されているIPフラグメント及びフラグメンテーション情報記録部33に記録されている情報を破棄することとしても良い。
この場合、IPフラグメントの受信を中止したことをトランスポート処理回路4に通知することとしても良い。これにより、トランスポート処理回路4は、IPフラグメントの処理をリセットすることとしても良い。
次に、図4を参照しながら、IP送信処理回路40の動作について説明する。
(a)データの最終的な大きさ(最初の断片送信時)
(b)断片がさらに継続するか否か(すべての断片送信時)
をIP送信処理回路40に送るものとする。なお、データの最終的な大きさに達するまで特定のIP送信口に送信されるデータはすべて特定のIPデータグラムの断片であるという仕様であれば、上記(b)は省略可能である。
IP送信処理部45は、フラグメント管理部42から断片を受け取ると、フラグメンテーション情報記録部43に記録されているオフセット値等を参照し、受け取った断片にIPヘッダ(図3参照)を付加してIPデータグラムを作成し、ネットワークインタフェース回路2に送る。
Claims (6)
- 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データグラムを前記上位レイヤ転送処理部に出力する、請求項1記載の半導体集積回路。
- IPフラグメントを格納するための第2の受信キューを更に具備し、
前記IP受信処理部が、前記下位レイヤから受信したIPデータグラムがIPフラグメントである場合に、前記下位レイヤから受信したIPフラグメント内の送信元IPアドレス及びIDと前記フラグメンテーション情報内の送信元IPアドレス及びIDとを比較し、前記下位レイヤから受信したIPフラグメント内の送信元IPアドレス及びIDと前記フラグメンテーション情報内の送信元IPアドレス及びIDとが一致しないときに、前記下位レイヤから受信したIPフラグメントを前記第2の受信キューに書き込む、請求項1又は2記載の半導体集積回路。 - 前記フラグメント管理部が、前記フラグメンテーション情報に係るIPフラグメントの処理完了後に、前記第2の受信キューに格納されているIPフラグメントの処理を行う、請求項3記載の半導体集積回路。
- 前記フラグメンテーション情報記録部が、前記フラグメンテーション情報を書き込んだ時刻、又は、前記フラグメンテーション情報に係るIPフラグメントを最後に受信した時刻を更に記録し、
前記フラグメント管理部が、前記時刻より所定の時間を経過した場合に、前記受信キューに格納されているIPフラグメント及び前記フラグメンテーション情報記録部に記録されている前記フラグメンテーション情報を破棄する、請求項1〜4のいずれか1項に記載の半導体集積回路。 - IP(Internet Protocol)処理を行うための半導体集積回路であって、
上位レイヤからデータを受信するための上位レイヤ受信処理部と、
下位レイヤに次に送るべきデータのオフセットを含むフラグメンテーション情報を記録するためのフラグメンテーション情報記録部と、
データを格納するための送信キューと、
前記上位レイヤにおいて1個のデータを分割して得られたデータを受け取った場合に、前記フラグメンテーション情報を参照することにより、受け取ったデータにIPヘッダを付加してIPデータグラムを生成し、それ以外のデータを受け取った場合に、前記フラグメンテーション情報を参照することなく、受け取ったデータにIPヘッダを付加してIPデータグラムを生成し、前記下位レイヤに送信するためのIP送信処理部と、
前記上位レイヤ受信処理部が前記上位レイヤから受信したデータが前記上位レイヤにおいて1個のデータを分割して得られたデータである場合に、前記上位レイヤ受信処理部が前記上位レイヤから受信したデータを受け取り、前記上位レイヤ受信処理部から受け取ったデータに基づいて前記フラグメンテーション情報を作成又は更新し、前記IP送信処理部がデータの受け取りが可能である場合に前記上位レイヤ受信処理部から受け取ったデータを前記IP送信処理部に出力し、前記IP送信処理部がデータの受け取りが可能でない場合に前記上位レイヤ受信処理部から受け取ったデータを前記送信キューに書き込むためのフラグメント管理部と、
を具備する半導体集積回路。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013115576A (ja) * | 2011-11-28 | 2013-06-10 | Fujitsu Ltd | 受信データ処理方法、通信装置、及びプログラム |
-
2004
- 2004-07-16 JP JP2004209579A patent/JP4321390B2/ja not_active Expired - Fee Related
Cited By (1)
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 |