JP5074872B2 - プロトコル処理装置及び制御方法 - Google Patents

プロトコル処理装置及び制御方法 Download PDF

Info

Publication number
JP5074872B2
JP5074872B2 JP2007248185A JP2007248185A JP5074872B2 JP 5074872 B2 JP5074872 B2 JP 5074872B2 JP 2007248185 A JP2007248185 A JP 2007248185A JP 2007248185 A JP2007248185 A JP 2007248185A JP 5074872 B2 JP5074872 B2 JP 5074872B2
Authority
JP
Japan
Prior art keywords
timer
processor
packet
transmission
transfer
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.)
Expired - Fee Related
Application number
JP2007248185A
Other languages
English (en)
Other versions
JP2009080584A5 (ja
JP2009080584A (ja
Inventor
大介 白石
和彦 森村
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007248185A priority Critical patent/JP5074872B2/ja
Priority to US12/209,700 priority patent/US8341453B2/en
Publication of JP2009080584A publication Critical patent/JP2009080584A/ja
Publication of JP2009080584A5 publication Critical patent/JP2009080584A5/ja
Application granted granted Critical
Publication of JP5074872B2 publication Critical patent/JP5074872B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Description

本発明は、ネットワーク通信の分野に属し、より詳細にはプロセッサからパケット送受信処理をオフロードするプロトコル処理装置及び制御方法に関する。
ギガビットイーサネット(登録商標)などの普及により汎用PCのみならず、組込み機器においてもプロトコル処理を高速に実行できることが要求されている。ところで、ギガビットイーサネット(登録商標)のFull-wireの速度を達成するためには動作周波数3GHz程度のプロセッサが必要になると言われている。これは、今日の組込み機器が一般的に搭載するプロセッサ能力を遥かに超えている。そこで、TOE(TCP/IPオフロードエンジン)といったプロトコル処理に特化した補助的デバイスをシステムに付加し、広帯域なネットワーク通信を実現することが一般化しつつある。
さて、TCP/IPのプロトコル処理において重要となるのは、プロトコル処理と密接な関係を持つタイマ処理である(特許文献1)。従来のプロトコル処理装置においては、ソフトウェアタイマによる実装がよく用いられている。ソフトウェアタイマは、書き換え可能な記憶装置にタイマ値を記憶させ、一定間隔でプロセッサなどが記憶装置上のタイマ値をアップ、またはダウンカウントする。そして、タイマ値の規定値への到達をタイマ満了と見なし、タイマ満了時の処理を開始する手法である。ソフトウェアタイマは記憶装置の容量に比例して容易にタイマ数を増やすことが可能であるが、記憶装置上の全てのタイマ値を一定間隔でアップ、またはダウンカウントするため、プロセッサの負荷が増大する。
また、常時計時しているフリーランカウンタと記憶装置上のタイマ値を比較することでもソフトウェアタイマが実現できる。このソフトウェアタイマでは、設定時のフリーランカウンタ値に規定値を加算した値をタイマ値として、一定間隔でフリーランカウンタとタイマ値を比較し、一致した場合にタイマが満了したと見なす手法である。この場合も、個別にタイマ値を更新する必要は無いものの、一定間隔で全てのタイマのタイマ値を読み出してフリーランカウンタと比較する必要があるため、タイマ数の増加がプロセッサ負荷の増大につながる。
さらに、TCP/IPのプロトコル処理においては、持続タイマ、遅延ACKタイマ、再送タイマ、キープアライブタイマ、2MSLタイマなど様々なタイマがコネクション毎に必要である。その結果、数十から数百のコネクションを処理する場合、その数倍のタイマが必要となるため、タイマを管理するためのプロセッサの負荷増大は計り知れないものとなる。
上述したソフトウェアタイマの欠点を補うために、ハードウェアタイマ(タイマコントローラ)を用いる場合がある。これは、メモリ領域とは別にタイムカウント専用のレジスタを有し、タイマのアップカウント、またはダウンカウントを専用ハードウェアにより実現する手法である。この専用ハードウェアは、タイマ値が規定値に到達すると割り込み信号を出力してプロセッサにタイマの満了を通知する。プロセッサはこの割り込み信号を受信すると通常の処理を一時中断し、レジスタや変数などを退避させた後に対応する割り込み処理を開始する。プロセッサはタイマ値のアップカウント、またはダウンカウントを行う必要がなくなるため、ソフトウェアタイマと比較してプロセッサの負荷を抑えることが可能になっている。すなわち、この手法によれば、記憶装置に対するトラヒックの増加や、プロセッサに対する処理負荷の増大を押さえることが可能である。
タイマを使用した具体的なプロトコル処理として、以下のような処理が存在する。
パケット送信後に再送タイマを起動し、再送タイマが満了した場合、送信したパケットがネットワーク途中で喪失したと判断し、パケットの再送信を行う。再送タイマが満了する前にACKパケットが到着した場合、再送タイマを停止する。一方、この再送タイマが満了になる以前にACK応答パケットを受信しなければ、それ以前に受信したACK応答パケットのシーケンス番号に戻ってTCPパケットが再度送信される。
パケットを受信すると遅延ACKタイマを起動し、異なるパケットを受信した場合は遅延ACKタイマを停止する。遅延ACKタイマが満了した場合は、パケット送信元へACKパケットを送信する。遅延ACKタイマはパケットを受信した場合にセットされ、ACK応答パケットを送出する時間を待機するのに用いられる。この待機により、複数のパケットに対してACK応答パケットを一つにまとめることができ、ACK応答パケットによるトラヒックとACKカウント処理を削減する効果が得られる。
持続タイマは通信相手先が0サイズの受信ウィンドウを公告してきた場合にセットされる。この場合、通信相手先は何も受信出来ない状態であるので自局側はパケットを送信出来ない状態が継続されることになる。このとき、相手先の受信ウィンドウの状態を調べるために、ペイロードが1バイトサイズのプロービングパケットと呼ばれるパケットを相手先に送信し、通信相手先のACKパケットの到着を待つ。このプロービングパケットの送出タイミングを決定するために持続タイマは用いられる。
これらのタイマは接続時や、コネクションクローズ時に使用されるタイマとは異なり、TCPのコネクションが確立されている期間にわたって何度も使用される。そのため、割り込みを使用したタイマの場合、データ転送と並行してこれらのタイマに起因した割り込み処理が幾度も行われることになる。
以上述べたタイマ以外にもコネクション確立タイマ、キープアライブタイマ、FIN_WAIT_2タイマ、2MSLタイマなどがコネクションの確立時や切断時に使用されている。さらにTCP/IP通信を実現するためにこれらのタイマ値を基に多くのタイマ変数が用いられている。従って、通信システムにおけるタイマ処理のためには充分な記憶領域の確保と、タイマ処理能力をもったプロセッサを用いる必要がある。
パケット送受信処理がプロセッサからオフロードされているプロトコル処理装置においては、パケット送受信処理はプロセッサからの要求によって開始され、パケット送受信処理の完了は割り込み信号によってプロセッサへ通知される。パケット送受信処理完了が通知されたプロセッサは、完了したパケット送受信処理の内容に応じてタイマの起動・停止を行っている。割り込み処理に関しては、割り込みディスクリプタテーブルによってタイプ別に割り込みを処理することが可能な割り込みコントローラが特許文献2に記載されている。
特開昭59−17757号公報 特開2005−202964号公報
以上述べたように上記従来例に見られるプロトコル処理装置では、TCP/IPでは持続タイマ、遅延ACKタイマ、再送タイマ、キープアライブタイマ、2MSLタイマなどのタイマセットがコネクション毎に必要である。数十から数百のコネクションを使用する場合、コネクションの数だけタイマセットが用いられるので、プロセッサのタイマ管理に関する負荷が大きくなってしまうという課題があった。
また、タイマセットの中でも遅延ACKタイマ、再送タイマ、持続タイマはパケットの送受信中に、頻繁にタイマの更新を行う必要がある場合があり、タイマ管理負荷の増大の一つの要因となっている。更に、ハードウェアタイマを用いた場合でも割り込み処理によるタイマの起動・停止がプロセッサの負荷となっている。複数コネクションが並列に動作し、タイマの起動・停止が頻発した場合、プロセッサの負荷が大きくなり、他処理に割り当て可能なプロセッサのリソースが減少してしまう。
本発明は、上記の課題に鑑みてなされたものであり、その目的は、プロトコル処理に含まれるタイマに関わる処理をプロセッサからオフロードし、プロセッサの負荷を軽減するプロトコル処理装置を提供することにある。
上記の目的を達成するための本発明の一態様によるプロトコル処理装置は以下の構成を備える。すなわち、
プロセッサによるデータ通信のプロトコル処理をオフロードするプロトコル処理装置であって、
前記プロセッサからの、パケット送受信においてパケットデータを格納するためのメモリアドレスを含む転送情報とパケット送受信に関わるタイマ制御のためのタイマ情報とを含む送受信要求を保持する保持手段と、
前記保持手段に保持された送受信要求に含まれる転送情報にしたがって、メモリとデータリンク層との間のデータ送を実行する転送手段と、を備え、
前記転送手段は、前記データ転送が完了した後に、前記送受信要求に含まれるタイマ情報にしたがってタイマを制御し、前記タイマの満了時には当該タイマの種別に基づいて前記プロセッサに割り込み処理を実行させるか否かを判定し、プロセッサに割り込みを実行させると判定された場合は、割り込み信号を前記プロセッサへ出力する。
また、上記の目的を達成するための本発明の他の態様によるプロトコル処理装置は以下の構成を備える。すなわち、
プロセッサによるデータ通信のプロトコル処理をオフロードするプロトコル処理装置であって、
前記プロセッサからの送受信要求に応じて、メモリとデータリンク層との間のデータの転送処理を実行する第1の転送手段と、
タイマ値とともに、コネクション識別子とタイマの種別を含むネットワークタイマ情報をレジスタに保持することにより、前記送受信要求の処理に関連したタイマを起動するタイマ手段と、
前記タイマ手段で起動したタイマの計数を管理し、タイマ満了となったタイマに対応するレジスタに保持されている前記ネットワークタイマ情報に基づいて送信すべきパケットを決定し、該パケットを送信するべくメモリとデータリンク層との間のデータの転送処理を実行する第2の転送手段とを備える。
本発明によれば、プロトコル処理に含まれるタイマに関わる処理をプロセッサからオフロードするので、プロセッサの負荷を軽減するプロトコル処理装置が提供される。
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。
[第1実施形態]
図1は、第1実施形態に係るプロトコル処理装置を含むシステムの構成例を説明する図である。
図1において、101はプロセッサであり、アプリケーションやOS、デバイスドライバなどの一般的なソフトウェアを実行する。102はデータ転送部であり、プロセッサからのパケット送受信要求を受けて主記憶部105とMAC/PHY106の間でパケットの送受信処理を行う。103はタイマであり、再送タイマ、遅延ACKタイマ、持続タイマとして使用される。タイマ103は複数の時間を同時に計測することが可能である。タイマ103の各計測には、
・再送タイマ、遅延ACKタイマ、持続タイマのいずれとして動作しているかを示すタイマ種別と、
・タイムアウト値と、
・タイマが使用されるコネクションを識別するためのコネクション識別子とが設定される。タイマ103は、起動されると、設定されたタイムアウト値を計測し、タイマ満了時に割り込み信号をアサートする。
104は割り込みコントローラであり、タイマ103やMAC/PHY106、データ転送部102から出力される割り込み信号をプロセッサ101へ通知する。105は主記憶部であり、プロセッサ101が実行するプログラムとその作業領域のほか、データ転送部102が利用するデータ、作業領域およびプロセッサ101とデータ転送部102との通信用領域などが置かれる。106はネットワークのMAC(データリンク層)やPHY(物理層)であり、ネットワークから図示されないスイッチ、ハブ、ルータ等を介して他のネットワーク機器と接続される。107はバスであり、プロセッサ101、データ転送部102、タイマ103、割り込みコントローラ104、主記憶部105、MAC/PHY106を接続する。
続いて、図1に示したプロトコル処理装置の動作について説明する。なお、プロトコル処理装置のタイマ103としては、再送タイマ、遅延ACKタイマ、持続タイマなどが存在するが、本実施形態においては再送タイマを用いて説明を行う。図2は、第1実施形態によるデータ通信処理を示すフローチャートである。
まず、パケット送信時の動作について説明する。プロセッサ101上で動作するユーザアプリケーションプログラムからTCPによるストリーム送信が要求されると、プロセッサ101は主記憶部105上にあるストリームデータからパケットを生成する(図2のステップS101)。パケット生成後、プロセッサ101はデータ転送部102に対するパケット送受信要求を主記憶部105へ書き込む(ステップS102)。
本実施形態のパケット送受信要求は、図3の(a)で示すように、転送情報とタイマ情報とで構成される。転送情報は、
・データ転送部102にパケット送信処理を行わせるか、パケット受信処理を行わせるかを示す要求処理、
・パケット送信処理要求時には送信するパケットの主記憶部105上における先頭アドレスを、パケット受信処理要求時には受信するパケットを格納する主記憶部105上における先頭アドレスを示す転送先/転送元アドレス、
・転送するデータ量を示す転送サイズ、
を有する。また、タイマ情報は、
・パケット送受信処理を行うコネクションを識別するためのコネクション識別子と、
・パケット送受信処理後に操作するタイマの種別を示すタイマ種別と、
・タイムアウト値とタイマに対して起動・停止を行うかを示すタイマ操作と、
・パケット送受信処理後に複数タイマを操作する場合に次のタイマ情報のアドレスを示す次タイマ情報アドレスとを有する。
本実施形態においてはタイマ103にタイムアウト値を設定する例を示しているが、タイマ種別によってタイムアウト値を固定できる場合のタイマ情報のデータ構成例は、タイムアウト値が不要となるので、図3の(d)のようになる。例えば、ストリーム送信が要求されるコネクションの識別子が0であり、送信すべきパケットの先頭アドレスが0x1000_0000、転送サイズが1024バイトであったとする。この場合、プロセッサ101は図3の(b)に示すパケット送受信要求(送信要求)を主記憶部105へ書き込む。こうして、主記憶部105は、プロセッサ101からの、パケット送受信のための転送情報と、タイマ制御(タイマ操作)のためのタイマ情報とを含むパケット送受信要求を保持する保持部として機能する。
パケット送受信要求を主記憶部105へ書き込んだ後、プロセッサ101はパケット送受信要求の主記憶部105上の先頭アドレスをデータ転送部102へ通知する(ステップS103)。
データ転送部102は通知されたアドレスを用いて、主記憶部105からパケット送受信要求を読み出す(ステップS111)。そして、データ転送部102は、読み出したパケット送受信要求から、当該要求が送信要求か受信要求かを判定する(ステップS112)。ここでは、送信要求であるので、データ転送部102は、読み出したパケット送受信要求に従って転送先/転送元アドレスで指定されたアドレスから転送サイズで指定されたデータ量のデータを読み出し、MAC/PHY106へ転送する(ステップS113)。こうして、データ転送部102は、主記憶部105に保持された送受信要求に含まれる転送情報にしたがって、メモリとデータリンク層との間のデータの転送処理を実行する。MAC/PHY106へパケットを転送した後、データ転送部102は、パケット送受信要求に含まれているタイマ情報に基づいてコネクション識別子とタイマ種別、タイムアウト値をタイマ103に設定し、時間計測を起動する(ステップS115)。すなわち、本実施形態のデータ転送部102は、データの転送処理が完了した後に、当該送受信要求に含まれているタイマ情報にしたがってタイマを操作するタイマ制御部としても機能するものである。図3の(b)に示される送受信要求の場合、タイマ種別=再送タイマ、タイマ操作=起動であるので、再送タイマが起動される。
タイマ103は設定されたタイマの計数を開始する(ステップS121)。そして、タイムアウト値まで時間を計測すると、タイマ満了の割り込みを出力する(ステップS122、S123)。
タイマ103から出力された割り込み信号は、割り込みコントローラ104経由で、プロセッサ101に通知される。割り込みを通知されたプロセッサ101は、タイマ103から当該満了した時間計測に関して設定されているコネクション識別子とタイマ種別を読み出す。すなわち、タイムアップを通知したタイマから、そのタイマに設定されたコネクション識別子とタイマ種別をプロセッサ101が読み出す。そして、読み出したコネクション識別子により処理を行うコネクションを特定し、タイマ種別により行う割り込み処理を特定する(ステップS104)。例えば、上記の例では、タイマ種別が再送タイマとなっているので、プロセッサ101は、コネクション識別子で示されるコネクションに対して、パケットの再転送処理を開始する。
次に、パケット受信時の動作について説明する。MAC/PHY106がネットワークからパケットを受信すると、割り込み信号をアサートし、割り込みコントローラ104がプロセッサ101へ通知する。割り込みを通知されたプロセッサ101は、受信されたパケットが格納されるMAC/PHY106のバッファからIPヘッダ及びTCPヘッダを読み出す。プロセッサ101はIPヘッダ内の送信元/受信先IPアドレスからコネクション識別子を判断する。また、TCPヘッダ内のACKフラグが立ち、かつ、確認応答番号がその時点で最後に送信したデータのシーケンス番号+1であった場合、プロセッサ101は、図3の(c)に示すパケット送受信要求(受信要求)を主記憶部105へ書き込む。パケット送受信要求を主記憶部105へ書き込んだ後、プロセッサ101はパケット送受信要求の主記憶部105上の先頭アドレスをデータ転送部102へ通知する。なお、以上のプロセッサ101の動作についてはフローチャートによる図示は省略した。
データ転送部102は、通知された先頭アドレスからパケット送受信要求を読み出す(ステップS111)。そして、読み出したパケット送受信要求(ここでは受信要求)に従ってMAC/PHY106のバッファから転送サイズで指定されたサイズ分のデータを読み出し、主記憶部105上の転送先/転送元アドレスで指定されたアドレスへ書き込む。この処理は、図2のステップS112、S114に示されている。図3の(c)において、タイマ操作=停止となっているので、主記憶部105への書き込みが終了した後、データ転送部102はタイマ情報のコネクション識別子とタイマ種別から特定されるタイマ103の時間計測を停止する(ステップS116)。このように、受信処理においても、主記憶部105が、プロセッサ101からの、パケット送受信のための転送情報と、タイマ制御のためのタイマ情報とを含む送受信要求を保持する。そして、データ転送部102は、主記憶部105に保持された送受信要求に含まれる転送情報にしたがって、データリンク層のバッファから主記憶部105へのデータの転送処理を実行する。そして、データ転送部102は、データの転送処理が完了した後に、送受信要求に含まれるタイマ情報にしたがってタイマを制御(操作)する(上記の例では、特定のタイマの停止を行う)タイマ制御部としても機能する。
1つのパケット送受信要求において複数のタイマを起動・停止する場合は、タイマ情報内の次タイマ情報には次タイマ情報の開始アドレスが格納され、操作すべきタイマがリスト化される。データ転送部102は、ステップS115またはステップS116において、パケット送受信処理終了後、リスト化されたタイマ情報を手繰り、順にタイマ操作を行う。
以上のように、第1実施形態によれば、プロトコル処理と密接な関係を持つタイマの起動・停止の操作がプロセッサからオフロードされることにより、プロセッサの負荷を軽減することが可能となる。そして、プロセッサのリソースを他プロトコル処理に割り当てることが可能になるため、プロトコル処理の高速化が可能になる。
[第2実施形態]
図4は、第2実施形態に係るプロトコル処理装置を含むシステムの構成例を示す図である。
図4において、送信処理用プロセッサ201はTCP/IP送信処理用のプロセッサであり、受信処理用プロセッサ208はTCP/IP受信処理用のプロセッサである。202はデータ転送部であり、送信処理用プロセッサ201、受信処理用プロセッサ208からのパケット送受信要求を受けて主記憶部205とMAC/PHY206間でパケットの転送を行う。210はパケット送受信要求格納部であり、データ転送部202がパケット送受信処理中であるために、送信処理用プロセッサ201や受信処理用プロセッサ208からのパケット送受信要求を受け取れない場合のためにパケット送受信要求を格納する。より具体的には、主記憶部205上の、パケットの送受信要求が格納されている先頭アドレスがパケット送受信要求格納部210に格納される。なお、送信処理用プロセッサ201がデータ転送部202の状態をチェックし、パケット送受信要求を受け取れないと判定した場合に、パケット送受信要求の格納アドレスをパケット送受信要求格納部210に格納するように構成しても良い。
203はタイマであり、再送タイマ、遅延ACKタイマ、持続タイマ等として使用される。タイマ203は複数の時間を同時に計測することが可能である。タイマ203の各計測には、
・再送タイマ、遅延ACKタイマ、持続タイマのいずれとして動作しているかを示すタイマ種別と、
・タイムアウト値と、
・タイマが使用されるコネクションを識別するためのコネクション識別子と、
・満了時の割り込み通知先を示すタイマ満了時通知先とが設定される。
第2実施形態では、起動されたタイマ203は設定されたタイムアウト値を計測する。そして、タイマ203は、タイマ満了時には送信処理用割り込みコントローラ204や受信処理用割り込みコントローラ209との協働により、設定された割り込み通知先へ割り込み信号をアサートする。
204、209はそれぞれ送信処理用割り込みコントローラ、受信処理用割り込みコントローラであり、タイマ203の割り込み信号や、MAC/PHY206からの割り込み信号を送信処理用プロセッサ201や受信処理用プロセッサ208へ通知する。205は主記憶部であり、送信処理用プロセッサ201及び受信処理用プロセッサ208が実行するプログラムとその作業領域が配置される。更に、主記憶部205には、データ転送部202の利用するデータや作業領域、送信処理用プロセッサ201及び受信処理用プロセッサ208とデータ転送部202との間の通信用領域などが置かれる。206はネットワークのMAC(データリンク層)やPHY(物理層)であり、ネットワークから図示されないスイッチ、ハブ、ルータ等を介して他のネットワーク機器と接続される。207はバスであり、上述した各部を接続する。
続いて、第2実施形態におけるプロトコル処理装置の動作について説明する。プロトコル処理装置が実行するプロトコル処理において再送タイマ、遅延ACKタイマ、持続タイマなどのタイマが存在するが、本実施形態においては再送タイマを用いて説明する。なお、第2実施形態におけるプロトコル処理装置の動作を示すフローチャートとして、図2を流用する。
送信処理用プロセッサ201上で動作するユーザアプリケーションプログラムからTCPによるストリーム送信が要求されると、送信処理用プロセッサ201は主記憶部205上にあるストリームデータからパケットを生成する(ステップS101)。パケット生成後、送信処理用プロセッサ201は主記憶部205上にデータ転送部202に対するパケット送受信要求を書き込む(ステップS102)。
パケット送受信要求は図5の(a)に示すように、
・データ転送部202にパケット送信処理を行わせるか、パケット受信処理を行わせるかを示す要求処理と、
・パケット送信処理要求時には送信するパケットの主記憶部205上の先頭アドレスを示し、パケット受信処理要求時には受信するパケットを格納する主記憶部205上の先頭アドレスを示す転送先/転送元アドレスと、
・転送するデータ量を示す転送サイズ、
の各情報(転送情報)に加えて、
・パケット送受信処理を行うコネクションを識別するためのコネクション識別子と、
・パケット送受信処理後に操作するタイマの種別を示すタイマ種別と、
・タイマのタイムアウト値と、
・タイマに対して起動・停止を行うかを示すタイマ操作とタイマ満了時の割り込み通知先を示すタイマ満了時通知先と、
・パケット送受信処理後に複数タイマを操作する場合に次のタイマ情報のアドレスを示す次タイマ情報アドレスと、
を含むタイマ情報で構成される。
なお、本実施形態において、タイマ203にタイムアウト値を設定しているが、タイマ種別によってタイムアウト値を固定する場合のタイマ情報は図5の(d)のようになる。例えば、ストリーム送信が要求されるコネクションの識別子が0であり、送信すべきパケットの先頭アドレスが0x1000_0000、転送サイズが1024バイトであったとする。この場合、送信処理用プロセッサ201は図5の(b)にあるパケット送受信要求を主記憶部205へ書き込む。すなわち、主記憶部205は、送信処理用プロセッサ201から、パケット送受信のための転送情報と、タイマ操作のためのタイマ情報とを含む送受信要求を保持する保持部として機能する。
続いて、送信処理用プロセッサ201はパケット送受信要求の先頭アドレスをデータ転送部202に通知する(ステップS103)。第2実施形態では、データ転送部202は、まず、パケット送受信要求格納部210に格納し、データ転送部202がパケット送受信要求格納部210に格納されたアドレスを読み出す、という構成を有する。パケット送受信要求格納部210は、主記憶部205に保持された送受信要求の格納アドレスを登録する登録部として機能する。
データ転送部202は、パケット送受信要求格納部210にアドレスが格納されている場合、パケット送受信要求格納部210へ最初に格納されたアドレスを読み出す。すなわち、パケット送受信要求格納部210に存在するアドレスのうち、最も最初に格納されたアドレスから順に読み出される。そして、データ転送部202は、そのアドレスにしたがって主記憶部205からパケット送受信要求を読み出す(ステップS111)。なお、読み出されたアドレスは、パケット送受信要求格納部210から消去される。消去されるタイミングとしては、パケット送受信要求格納部210からアドレスを読み出した後から次にパケット送受信要求格納部210からアドレスが読み出されるまでの間であればよい。本実施形態では、読み出しと同時に消去が行われる。第1実施形態では、プロセッサからデータ転送部へ直接に先頭アドレスが通知されたが、第2実施形態では、パケット送受信要求格納部210を介してプロセッサからデータ転送部へ先頭アドレスが通知される。そして、データ転送部202は、読み出したパケット送受信要求に従って、転送先/転送元アドレスで指定されたアドレスから転送サイズで指定されたデータ量のデータを読み出し、MAC/PHY206へ転送する(ステップS112、S113)。MAC/PHY206へパケットを転送した後、データ転送部202は、タイマ情報に基づいてコネクション識別子とタイマ種別、タイムアウト値、タイマ満了時通知先をタイマ203に設定し、時間計測を起動する(ステップS115)。このように、データ転送部202は、登録部としてのパケット送受信要求格納部210に登録された格納アドレスにしたがって主記憶部205から送受信要求を読み出し、データの転送処理及びタイマ操作を実行する。
タイマ203は設定されたタイムアウト値までの時間を計測すると、タイマ満了時通知先に指定されたプロセッサ(ここでは送信処理用プロセッサ201)に送信処理用割り込みコントローラ204経由で割り込みを通知する(ステップS121〜S122)。すなわち、上述したように、タイマ情報はタイマ満了時の通知先のプロセッサを示す通知先情報を含む。そして、タイマ203は、タイマの満了時に、対応するタイマ情報に含まれている通知先情報が示すプロセッサに対して当該満了の通知(割り込み通知)を行う。割り込みを通知された送信処理用プロセッサ201は、タイマ203から満了した時間計測に設定されたコネクション識別子とタイマ種別を読み出す。そして、送信処理用プロセッサ201は、読み出したコネクション識別子により処理を行うコネクションを、タイマ種別により行う処理を特定し、実行する(ステップS104)。図5の(b)に示されるパケット送受信要求が処理された場合、送信処理用プロセッサ201はコネクション識別子0で示されるコネクションに対して、パケットの再転送処理を開始する。
次に、データの受信処理について説明する。MAC/PHY206がネットワークからパケットを受信すると、割り込み信号をアサートする。受信処理用割り込みコントローラ209は、この割り込み信号を受信処理用プロセッサ208へ通知する。割り込みを通知された受信処理用プロセッサ208は、受信されたパケットが格納されるMAC/PHY206のバッファからIPヘッダ及びTCPヘッダを読み出す。受信処理用プロセッサ208はIPヘッダ内の送信元/受信先IPアドレスからコネクション識別子を判断する。また、受信処理用プロセッサ208は、TCPヘッダ内のACKフラグが立ち、かつ、確認応答番号がその時点で最後に送信したデータのシーケンス番号+1であった場合、図5の(c)にあるパケット送受信要求を主記憶部205へ書き込む。
パケット送受信要求を主記憶部205へ書き込んだ後、受信処理用プロセッサ208はパケット送受信要求の主記憶部205上の先頭アドレスをパケット送受信要求格納部210へ格納する。
データ転送部202は、パケット送受信要求格納部210にアドレスが格納されている場合、パケット送受信要求格納部210へ最初に格納されたアドレスを用いて、主記憶部205からパケット送受信要求を読み出す(ステップS111)。そして、読み出したパケット送受信要求に従って、MAC/PHY206のバッファから転送サイズで指定されたサイズ分のデータを読み出し、主記憶部205上の転送先/転送元アドレスで指定されたアドレスへ書き込む(ステップS112,S114)。主記憶部205への書き込みが終了した後、データ転送部202は、タイマ203のうちタイマ情報のコネクション識別子とタイマ種別で特定される時間計測を停止する(ステップS116)。
以上のように、第2実施形態によれば、プロトコル処理を複数プロセッサで実行している場合においても、プロトコル処理と密接な関係を持つタイマの起動・停止の操作をプロセッサからオフロードするので、プロセッサの負荷を軽減することが可能となる。そして、プロセッサリソースを他プロトコル処理に割り当てることで、プロトコル処理の高速化が可能になる。なお、上記第2実施形態では、送信処理用プロセッサと受信処理用プロセッサを分けたが、送信処理が可能な複数のプロセッサを備えた構成であってもよいし、受信処理が可能な複数のプロセッサを備えた構成であってもよいことは明らかである。また、送受信が可能な複数のプロセッサを備えた構成であってもよいことも明らかである。
また、第2実施形態のプロトコル処理装置は、プロセッサからのパケット送受信処理要求を一時的に格納するパケット送受信要求格納部210を有する。これにより、複数プロセッサの同時動作やプロトコル処理高速化によりパケット送受信要求が頻発した場合であっても、プロセッサの待ち時間を減少することが可能になる。
以上説明したように、第1、第2実施形態によれば、プロトコル処理と関係を持つタイマの起動・停止をプロセッサからオフロードすることにより、プロセッサの負荷を軽減することが可能となる。そして、プロセッサリソースを他プロトコル処理に割り当てることで、プロトコル処理の高速化も可能になる。
また、プロセッサからのパケット送受信処理要求を一時的に格納する手段を持つことにより、複数プロセッサの同時動作やプロトコル処理高速化によりパケット送受信要求が頻発した場合であっても、プロセッサの待ち時間を減少することが可能になる。
[第3実施形態]
図6は、第3実施形態によるネットワークタイマ装置を含むプロトコル処理装置の構成例を示すブロック図である。
図6において301はソフトウェアを実行するプロセッサである。302は送受信時のデータ移動などを行うデータ転送部である。303はネットワーク処理に必要な時間を計測するタイマである。304はデータ転送終了やタイマ満了通知などをプロセッサに通知する割り込みコントローラである。305はプロセッサの制御情報、データ、送受信データなどを保管する主記憶部である。306はネットワークと接続するためのデータリンク層および物理層のデバイス(以下、MAC/PHY)である。
次に、第3実施形態によるプロトコル処理装置を説明する。第1、第2実施形態では、タイマの起動・停止の操作がプロセッサからオフロードされたが、第3実施形態ではタイマのタイムアップに伴う割り込み処理の一部がプロセッサからオフロードされる。
第3実施形態のプロトコル処理装置の動作について図7のフローチャートを参照して説明する。プロセッサ301上で動作するユーザアプリケーションプログラムからTCPによるストリーム送信が要求されると、プロセッサ301は主記憶部305上にあるストリームデータからパケットを生成する(ステップS201)。パケット生成後、プロセッサ301はデータ転送部302に対するパケット送受信要求を主記憶部305へ書き込む(ステップS302)。ここで、パケット送受信要求は、例えば、
・データ転送部302にパケット送信処理を行わせるか、パケット受信処理を行わせるかを示す要求処理と、
・パケット送信処理要求時には送信するパケットの主記憶部305上の先頭アドレス、パケット受信処理要求時には受信するパケットを格納する主記憶部305上の先頭アドレスを示す転送先/転送元アドレスと、
・転送するデータ量を示す転送サイズとを含む転送情報を有する。第3実施形態のパケット送受信要求は、第1、第2実施形態とは異なり、図3に示したような「タイマ情報」は持っていない。
パケット送受信要求を主記憶部305へ書き込んだ後、プロセッサ301はパケット送受信要求の主記憶部305上の先頭アドレスをデータ転送部302へ通知する(ステップS203)。
データ転送部302は、通知されたアドレスを用いて、主記憶部305からパケット送受信要求を読み出す(ステップS221)。そして、データ転送部302は、読み出したパケット送受信要求から、当該要求が送信要求か受信要求かを判定する(ステップS222)。送信要求の場合、データ転送部302は、読み出したパケット送受信要求に従って転送先/転送元アドレスで指定されたアドレスから転送サイズで指定されたデータ量のデータを読み出し、MAC/PHY306へ転送する(ステップS223)。受信要求の場合、データ転送部302は、MAC/PHY306のバッファから転送サイズで指定されたサイズ分のデータを読み出し、主記憶部305上の転送先/転送元アドレスで指定されたアドレスへ書き込む(ステップS222、S224)。このようにデータ転送部302は、プロセッサ301からの送受信要求に応じて、メモリとデータリンク層との間のデータの転送処理を実行する第1の転送部として機能する。
プロセッサ301は、タイマ303のタイマレジスタを設定し、当該プロトコル処理に必要なタイマを起動する。
第3実施形態のタイマ303は、ネットワーク処理に特化したネットワークタイマ装置である。タイマ303は、内部に複数のタイマレジスタを持ち、それぞれのタイマレジスタには、カウントするタイマ値とともに、通信先を特定するためのコネクション識別子とタイマ種別を含むネットワークタイマ情報が登録される。プロセッサ301が、タイマ値とともにネットワークタイマ情報をレジスタに登録すると、タイマ303はタイマ動作を開始する。なお、本実施形態の場合、タイマの起動(Setup)、中断(Abandon)などのタイマ操作情報を有している。したがって、ステップS204において、送受信処理に関連したタイマの起動や中断を示すタイマ操作情報により、プロセッサ301は、タイマの起動や中断を制御できる。
図8は、第3実施形態のタイマ303のタイマレジスタに登録される情報を示す図である。複数のタイマが起動される場合は、複数のタイマのそれぞれに対してタイマレジスタが設けられる。図8において、有効フラグフィールド501には有効フラグが格納される。この有効フラグの有効状態は計時中であることを示し、有効フラグの無効状態は計時停止状態或いは計時終了状態を示す。タイマ値フィールド502には計時するティック値が書き込まれる。本実施形態のタイマ303は、あるイベントを受けてからイベントを起すまでの時間、即ち経過時間を取り扱っている。
コネクション識別子フィールド503にはコネクション識別子が格納される。タイマ303はネットワーク処理に特化しているタイマであるため、タイマに連動してコネクション識別子の情報を他モジュールの制御のために使用する。なお、コネクションとは通信相手先を特定するための情報であり、TCP/IPでは自IPアドレス、相手IPアドレス、自ポート番号、相手ポート番号の4つの情報を示し、コネクション識別子からコネクションを特定することが出来る。タイマ種別フィールド504は、それぞれのコネクションで使用されるタイマの種別を特定する情報が格納される。従来例でも説明したようにTCP/IPではコネクション毎に複数のタイマが用いられている。例えば、コネクション確立タイマ、再送タイマ、遅延ACKタイマ、持続タイマ、TIME_WAITタイマ、FIN_WAITタイマ、FIN_WAIT2タイマなど様々なタイプのタイマが使用される。タイマ種別フィールド504には、これらのいずれのタイマであるかを示すタイマ種別が格納されている。いずれかのタイマが満了になると、タイマ303はコネクション識別子とタイマ種別をデータ転送部302へ出力し、タイマレジスタのフラグを無効にする。
中断(Abandon)タイマ操作を受け付けた場合は計時の即時中断を意味し、コネクション識別子とタイマ種別によって特定されたタイマレジスタの有効フラグを無効状態にすることで計時を中断する。
タイマ303は、上記のようにしてプロセッサからの指示により設定されたタイマの計数を開始する(ステップS211)。そして、タイマの計数が満了になった場合(ステップS212)、対応するタイマレジスタに登録されているネットワークタイマ情報(コネクション識別子とタイマ種別)がデータ転送部302に送出される(ステップS213)。
コネクション識別子とタイマ種別を受け取ったデータ転送部302は、受け取った情報を基に、データ転送処理を実行したり、プロセッサ301への割り込み要求を行ったりする(ステップS225、S226)。このように、データ転送部302は、起動されたタイマを管理する。そして、データ転送部302は、タイマ満了となったタイマに対応するネットワークタイマ情報に基づいて送信すべきパケットを決定し、これを送信するべくメモリとデータリンク層との間のデータの転送処理を実行する第2の転送部として機能する。
例えば、ステップS226においてデータ転送部302がデータ転送を行う場合は、コネクション識別子とタイマ種別からディスクリプタアドレスを特定する。ディスクリプタとはデータ転送を行うために必要な情報であり、事前に主記憶部305などに記憶されている。ディスクリプタには、例えば、データの送信の手順(送信するべきアドレス範囲や送信先など)が記述されている。データ転送に先だってデータ転送部302は、主記憶部305から特定されたディスクリプタを読み込み、読み込んだディスクリプタに従ってデータ転送を行う。すなわち、主記憶部305上などにタイマ種別あるいはネットワークタイマ情報に対応したディスクリプタを予め用意しておく。そして、データ転送部302は、タイマの満了時にタイマが出力したコネクション識別子とタイマ種別に対応するディスクリプタを主記憶部305から読み出し、読み出したディスクリプタによりデータ転送処理を実行する。このようにすることで、データ転送部302は、タイマ満了に伴って自動的にデータ転送を開始することが出来る。また、タイマ種別によっては、後述するように、従来どおりにプロセッサに割り込み要求をかけることが望ましい場合もある。その場合は、データ転送部302が割り込み出力と共にタイマ303からの出力であることをプロセッサ301に通知するようにする(ステップS226)。すなわち、データ転送部302は、タイマ種別に基づいてプロセッサ301に割り込み要求をするか否かを判定する機能を有する。
次にコンピュータ間の通信として広く使われているTCP/IPで用いられるネットワークタイマを上記構成のプロトコル処理装置で実現した場合の動作について説明する。
図9は一般的なTCP/IP通信を行っている通信機器間のパケットの送受信状態をシーケンス図で表したものである。図中、srcとあるのはコネクションを能動的に確立しようとするアクティブ側の通信装置(以下、src側)を示す。また、dstとあるのはsrc側からのコネクション確立要求に応えて通信を行うパッシブ側の通信装置(以下、dst側)であることを示す。TCP/IPでは3wayHandshakeと呼ばれている仕組みによってコネクションを確立している。まず、src側がTCPパケット中のsynフラグを立てたパケットをdst側に送信すると共にコネクション確立タイマを起動する。送信したパケットのsrc側のIPアドレスとポート番号、dst側のIPアドレスとポート番号の4つの変数はコネクション識別子に対応している。このコネクション識別子はユニークな番号であり、同じ識別子が別の4変数の組に割り当てられることはないので、コネクション識別子からsrc側とdst側のIPアドレス、ポート番号を求めることも容易である。また、コネクション識別子にコネクションの通信状態を示す変数を対応させている。
このコネクション確立タイマはコネクションを確立する時に1度使用するタイマでその後に使用することはない。また、このコネクション確立タイマが満了時に行われる処理も、コネクション確立のために用意した変数領域を解放する程度の処理である。このため、コネクション確立タイマの自動化に伴うメリットは少ない。よって、データ転送部302は、タイマ303より送信されたタイマレジスタからタイマ種別がコネクション確立タイマであることを検知すると、割り込みコントローラ304へプロセッサ301に対する割り込み要求であることを通知する。
一方、コネクション確立タイマが満了にならずにdst側からSYN+ACKの2つのフラグがついたTCPパケットをsrc側が受け取ると、TCPのステートはSYN_SENTと呼ばれる状態に移行する。そして、src側がSYN+ACKに対するACKパケットを送出したところでsrc側はEstablished、即ちコネクションが確立したことを表す。dst側はsrc側のACKパケットを受け取ったところでコネクションが確立したことを知る。コネクションが確立されるとどちら側からパケットを送信しても問題ないが、図9ではsrc側がパケットを送信した場合を示している。
TCP/IPでは常にデータの送信を確認しながら通信を行うため、プロセッサ301は、パケット送信と同時に再送タイマを起動する。プロセッサ301は、再送タイマを起動するためにタイマ303に対してタイマレジスタにタイマ値とコネクション識別子、タイマ種別(=再送タイマ)を登録し、タイマレジスタの有効フラグを立てる。送信したパケットに対するACKパケットがdst側から返ってきた場合、受信確認できたものと見なされ再送タイマは停止される。即ち、当該再送タイマのタイマレジスタのフラグが無効となる。これは、上述した中断(Abandon)の操作情報を用いることで実現できる。パケットの送信が再開されると共に再送タイマは再び起動される。このときのタイマ値は、プロセッサ301により再設定されることになる。実際のTCP/IPでは通信状況などから再送タイマの値を動的に変化させる場合があるが、本実施形態においてはその動きは省略する。このように再送タイマはパケットを送信する毎に起動され、ACKパケットを受け取る毎に停止される。
src側でACKパケットを受信しないと再送タイマが満了となる。タイマ303は、満了になった再送タイマのコネクション識別子とタイマ種別(この場合は再送タイマ)をデータ転送部302に通知する。この場合、すでに送信した送信データについてACKを受けていないことから、データ転送部302は、当該送信データを保持したままである。したがって、データ転送部302は、当該データ転送に使用したディスクリプタを再利用してACKポイントからのパケット再送信を開始する(ステップS226)。
一方、dst側ではパケットを受信する度にTCP/IP通信装置では遅延ACKタイマが起動される。遅延ACKタイマは受信パケット毎にACKパケットを送信すると通信トラヒックが増大してしまうために、ある程度受信パケットをまとめたACKパケットを送信するようにACKパケットの送信を抑圧する為のタイマである。遅延ACKタイマの満了にともなって、dst側からsrc側に通信確認パケットであるACKパケットが送信される。このACKパケットは現時点での通信状況を相手側に通知するためのパケットであるため、データ送信要求が別にある場合は除き、ペイロードを持たないことが多い。そこで主記憶部305上に予めACKパケットを作成しておき、データ転送部302は、ステップS226において、コネクション識別子の情報(IPアドレス、ポート番号、シーケンス番号など)と合成してACKパケットを生成する。そして、データ転送部302は、生成したACKパケットをMAC/PHY306に転送する。このようにすることで遅延ACKタイマの満了に伴って、プロセッサ301を介さずに、自動的にACKパケットが送信されることになる。こうして、上記第2の転送部としてのデータ転送部302は、ネットワークタイマ情報に含まれるタイマの種別がTCP/IP通信におけるACKタイマを示す場合、自端末が受信したシーケンス番号を相手端末に通知するACKパケットを送出する。
次に持続タイマについて説明する。送信側の通信能力と比較して受信側の通信能力が低く受信側の通信の為のメモリを使い切った場合や、アプリケーションのデータ処理が受信バッファが蓄積するスピードに追いつかない場合に、受信Windowが‘0’であることを送信側に通知することがある。これは‘0’window公告と呼ばれるもので送信先の受信バッファが無くなったため公告された側は送信を停止する。
しかし、永久に止めておくわけにもいけないので、ある持続タイマが満了となる間隔をもってプロービングパケットと呼ばれる探査用のパケットをdst側に送信する。プロービングパケットを送りつけることによってdst側はACKパケットを送出し、受信Windowの最新値を送信側に通知する。プロービングパケットは事前に用意することが出来るパケットで受信側の性能が送信側と比較して劣っている場合に良く生成されるパケットであるため自動化することで他のコネクションに対して影響を与えずにプロービングパケットを送信することが出来る。すなわち、タイマ満了したタイマのタイマ種別が持続タイマであった場合は、データ転送部302はプロービングパケットを自動的にdst側に送信する。
以上、第3実施形態のプロトコル処理装置における再送タイマ、遅延ACKタイマ、持続タイマの動作に対してタイマ満了時の処理について説明した。他のTCPタイマ、TIME_WAIT、FIN_WAIT、FIN_WAIT2などのタイマはコネクション確立タイマと同様にコネクションのクローズ時に一度起動されるだけの場合が多い。そのため、頻繁にコネクションをオープン、クローズするシステムでない限りは割り込みによるプロセッサの処理で満足な処理速度を得ることが出来る。
以上説明したように、第3実施形態によれば、コネクション型通信において使用されるタイマに、コネクション識別子とタイマ種別からなるネットワークタイマ情報が付加される。このため、タイマ満了の通知を受けたデータ転送部がネットワークタイマ情報からディスクリプタを読み込みに行き、データ転送を実行することが出来る。そのため大幅にプロセッサ負荷を削減することができ、削減したプロセッサリソースをプロトコル処理に回すことで処理能力の向上を見込むことができる。
なお、第3実施形態に示したタイマ満了時の処理手順を第1実施形態または第2実施形態に適用可能であることはいうまでもない。
以上において、本発明が特定の実施形態に関して図示され、かつ、説明されたが、さらに他の修正および改善が可能であることは言うまでもない。
本発明は前述の実施形態に示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
第1実施形態に係るシステム構成を示す図である。 第1実施形態によるプロトコル処理を説明するフローチャートである。 第1実施形態に係るパケット送受信要求を示す図である。 第2実施形態に係るシステム構成を示す図である。 第2実施形態に係るパケット送受信要求を示す図である。 第3実施形態に係るシステム構成を示す図である。 第3実施形態によるプロトコル処理を説明するフローチャートである。 第3実施形態に係るタイマレジスタの構成例を示す図である。 第3実施形態に係るシーケンス図の例である。

Claims (13)

  1. プロセッサによるデータ通信のプロトコル処理をオフロードするプロトコル処理装置であって、
    前記プロセッサからの、パケット送受信においてパケットデータを格納するためのメモリアドレスを含む転送情報とパケット送受信に関わるタイマ制御のためのタイマ情報とを含む送受信要求を保持する保持手段と、
    前記保持手段に保持された送受信要求に含まれる転送情報にしたがって、メモリとデータリンク層との間のデータ送を実行する転送手段と、を備え、
    前記転送手段は、前記データ転送が完了した後に、前記送受信要求に含まれるタイマ情報にしたがってタイマを制御し、前記タイマの満了時には当該タイマの種別に基づいて前記プロセッサに割り込み処理を実行させるか否かを判定し、前記プロセッサに割り込みを実行させると判定された場合は、割り込み信号を前記プロセッサへ出力することを特徴とするプロトコル処理装置。
  2. 前記タイマ情報が、タイムアウト値と、送受信のコネクション識別子と、タイマの種別と、タイマの起動を示す場合、
    前記転送手段は、前記タイマ情報にしたがってタイマを起動し、前記タイムアウト値による当該タイマのタイマ満了時に、前記コネクション識別子と前記タイマの種別を前記プロセッサに通知することを特徴とする請求項1に記載のプロトコル処理装置。
  3. 前記タイマ情報が、送受信のコネクション識別子と、タイマの種別と、タイマの停止を示す場合、
    前記転送手段は、前記コネクション識別子と前記タイマの種別によって特定されるタイマを停止することを特徴とする請求項1に記載のプロトコル処理装置。
  4. 前記タイマ情報は、更にタイマ満了時の通知先のプロセッサを示す通知先情報を含み、
    前記転送手段は、前記タイマ情報にしたがって起動したタイマの満了時に、前記通知先情報によって示されるプロセッサに対して前記コネクション識別子と前記タイマの種別を通知することを特徴とする請求項2に記載のプロトコル処理装置。
  5. 前記タイマの種別は、再送タイマ、遅延ACKタイマ、持続タイマのいずれかであることを特徴とする請求項2乃至4のいずれか1項に記載のプロトコル処理装置。
  6. 前記送受信要求の前記保持手段における格納アドレスを登録する登録手段を更に備え、
    前記転送手段は、前記登録手段に登録された格納アドレスにしたがって前記保持手段から送受信要求を読み出し、読み出した送受信要求にしたがって、データ転送及びタイマ制御を実行することを特徴とする請求項1に記載のプロトコル処理装置。
  7. プロセッサによるデータ通信のプロトコル処理をオフロードするプロトコル処理装置であって、
    前記プロセッサからの送受信要求に応じて、メモリとデータリンク層との間のデータ転送を実行する第1の転送手段と、
    タイマ値とともに、コネクション識別子とタイマの種別を含むネットワークタイマ情報をレジスタに保持することにより、前記送受信要求の処理に関連したタイマを起動するタイマ手段と、
    前記タイマ手段で起動したタイマの計数を管理し、タイマ満了となったタイマに対応するレジスタに保持されている前記ネットワークタイマ情報に基づいて送信すべきパケットを決定し、該パケットを送信するべくメモリとデータリンク層との間のデータ転送を実行する第2の転送手段とを備え
    前記第2の転送手段は、前記タイマの種別に基づいて前記プロセッサに割り込み処理を実行させるか否かを判定し、前記プロセッサに割り込みを実行させると判定された場合は、割り込み信号を前記プロセッサへ出力することを特徴とするプロトコル処理装置。
  8. 前記第2の転送手段は、ネットワークタイマ情報に対応するディスクリプタを登録したメモリを有し、タイマ満了となったタイマのネットワークタイマ情報に対応するディスクリプタを前記メモリから読み出し、読み出したディスクリプタにしたがってデータ転送を行うことを特徴とする請求項7に記載のプロトコル処理装置。
  9. 前記第2の転送手段は、前記タイマの種別がTCP/IP通信におけるACKタイマを示す場合、自端末が受信したシーケンス番号を相手端末に通知するACKパケットを送出させることを特徴とする請求項7に記載のプロトコル処理装置。
  10. 前記第2の転送手段は、前記タイマの種別がTCP/IP通信における持続タイマを示す場合、プロービングパケットを構成するパケットを送出させることを特徴とする請求項7に記載のプロトコル処理装置。
  11. 前記第2の転送手段は、送信すべきデータの格納アドレスと転送サイズが記述された送信要求のアドレスを、前記ネットワークタイマ情報に基づいて特定し、特定されたアドレスに格納された送信要求にしたがってパケットを送信するべく、メモリとデータリンク層との間のデータ転送を実行することを特徴とする請求項7に記載のプロトコル処理装置。
  12. プロセッサによるデータ通信のプロトコル処理をオフロードするプロトコル処理装置の制御方法であって、
    保持手段が、前記プロセッサからの、パケット送受信においてパケットデータを格納するためのメモリアドレスを含む転送情報とパケット送受信に関わるタイマ制御のためのタイマ情報とを含む送受信要求を保持する保持工程と、
    転送手段が、前記保持工程で保持された送受信要求に含まれる転送情報にしたがって、メモリとデータリンク層との間のデータ送を実行する転送工程と、を有し、
    前記転送工程では、前記データ転が完了した後に、前記送受信要求に含まれるタイマ情報にしたがってタイマを制御し、前記タイマの満了時には当該タイマの種別に基づいて前記プロセッサに割り込み処理を実行させるか否かを判定し、プロセッサに割り込みを実行させると判定された場合は、割り込み信号を前記プロセッサへ出力ることを特徴とするプロトコル処理装置の制御方法。
  13. プロセッサによるデータ通信のプロトコル処理をオフロードするプロトコル処理装置の制御方法であって、
    第1の転送手段が、前記プロセッサからの送受信要求に応じて、メモリとデータリンク層との間のデータ転送を実行する第1の転送工程と、
    タイマ制御手段が、タイマ値とともに、コネクション識別子とタイマの種別を含むネットワークタイマ情報をレジスタに保持することにより、前記送受信要求の処理に関連したタイマを起動するタイマ制御工程と、
    第2の転送手段が、前記タイマ制御工程で起動したタイマの計数を管理し、タイマ満了となったタイマに対応するレジスタに保持されている前記ネットワークタイマ情報に基づいて送信すべきパケットを決定し、該パケットを送信するべくメモリとデータリンク層との間のデータ転送を実行する第2の転送工程とを備え
    前記第2の転送工程では、前記タイマの種別に基づいて前記プロセッサに割り込み処理を実行させるか否かを判定し、前記プロセッサに割り込みを実行させると判定された場合は、割り込み信号を前記プロセッサへ出力することを特徴とするプロトコル処理装置の制御方法。
JP2007248185A 2007-09-25 2007-09-25 プロトコル処理装置及び制御方法 Expired - Fee Related JP5074872B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007248185A JP5074872B2 (ja) 2007-09-25 2007-09-25 プロトコル処理装置及び制御方法
US12/209,700 US8341453B2 (en) 2007-09-25 2008-09-12 Transmission apparatus that transmits data according to a protocol, and method for measuring time in the transmission apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007248185A JP5074872B2 (ja) 2007-09-25 2007-09-25 プロトコル処理装置及び制御方法

Publications (3)

Publication Number Publication Date
JP2009080584A JP2009080584A (ja) 2009-04-16
JP2009080584A5 JP2009080584A5 (ja) 2010-10-07
JP5074872B2 true JP5074872B2 (ja) 2012-11-14

Family

ID=40472996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007248185A Expired - Fee Related JP5074872B2 (ja) 2007-09-25 2007-09-25 プロトコル処理装置及び制御方法

Country Status (2)

Country Link
US (1) US8341453B2 (ja)
JP (1) JP5074872B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9723048B2 (en) * 2008-10-29 2017-08-01 Oracle International Corporation System and method for providing timer affinity through notifications within a session-based server deployment
JP2010226455A (ja) * 2009-03-24 2010-10-07 Sony Corp ネットワーク通信装置
CN101888288A (zh) * 2009-05-13 2010-11-17 艾威梯科技(北京)有限公司 解决全双工数据传输时ack互锁延时的方法和系统
EP2284708B1 (en) * 2009-08-03 2016-01-06 C.R.F. Società Consortile per Azioni Microprogammable device code tracing
US20110090795A1 (en) * 2009-09-11 2011-04-21 Victor On Kwok Li Differentiation among occurrences of packet reordering, congestive packet loss, or random packet loss in communication networks
US20110173354A1 (en) * 2010-01-08 2011-07-14 Hall Kenwood H Hardware Based Connection State Machine With Built In Timers
CN110225051A (zh) * 2011-05-03 2019-09-10 诺基亚技术有限公司 用于保持活动信号发送的方法和设备
JP6335430B2 (ja) * 2013-03-21 2018-05-30 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム
US9465406B1 (en) * 2013-10-30 2016-10-11 Qlogic, Corporation Timers and methods thereof for computing devices
JP6175389B2 (ja) * 2014-03-13 2017-08-02 株式会社東芝 通信装置、情報処理装置、通信方法および通信プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5917757A (ja) 1982-07-21 1984-01-30 Nec Corp デ−タ伝送制御方式
JPH07108000B2 (ja) * 1986-08-08 1995-11-15 富士通株式会社 4相位相復調器
JPS6374351A (ja) * 1986-09-18 1988-04-04 Canon Inc デ−タ通信装置
JP2993728B2 (ja) * 1990-02-23 1999-12-27 株式会社日立製作所 プロトコル高速処理装置
JP3358254B2 (ja) * 1993-10-28 2002-12-16 株式会社日立製作所 通信制御装置および通信制御用回路装置
SE511881C2 (sv) * 1997-08-08 1999-12-13 Ericsson Telefon Ab L M Förfarande och arrangemang för överföring av paketinformation i ett digitalt telekommunikationssystem
US6125404A (en) * 1998-04-17 2000-09-26 Motorola, Inc. Data processing system having a protocol timer for autonomously providing time based interrupts
JP2001014227A (ja) * 1999-06-30 2001-01-19 Nec Corp タイムアウト時間更新方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体
FR2806244B1 (fr) * 2000-03-13 2003-05-30 Mitsubishi Electric Inf Tech Procede de transmission entre une station de base d'un reseau d'acces et un controleur de reseau d'acces d'un systeme de telecommunications
US7058085B2 (en) * 2001-03-14 2006-06-06 Nortel Networks Limited Method and apparatus for transmitting data over a network within a specified time limit
EP1355479B1 (en) * 2002-04-15 2005-08-10 Agilent Technologies, Inc. - a Delaware corporation - An apparatus and method for processing information from a telecommunications network
US7082486B2 (en) 2004-01-14 2006-07-25 International Business Machines Corporation Method and apparatus for counting interrupts by type
US7382744B2 (en) * 2005-01-27 2008-06-03 Qualcomm Incorporated Systems and methods for optimizing the allocation of resources to serve different types of data flows in a wireless communication system
KR100996069B1 (ko) * 2006-11-27 2010-11-22 삼성전자주식회사 이동통신 시스템에서 라디오 링크 제어 계층의 데이터 전송 방법 및 장치
US7855975B2 (en) * 2007-05-30 2010-12-21 Sap Ag Response time estimation for intermittently-available nodes
US7904755B2 (en) * 2008-05-30 2011-03-08 Infineon Technologies Ag Embedded software testing using a single output

Also Published As

Publication number Publication date
US8341453B2 (en) 2012-12-25
US20090083570A1 (en) 2009-03-26
JP2009080584A (ja) 2009-04-16

Similar Documents

Publication Publication Date Title
JP5074872B2 (ja) プロトコル処理装置及び制御方法
US11876880B2 (en) TCP processing for devices
US8489761B2 (en) Onload network protocol stacks
JP4504977B2 (ja) オフロードユニットを使用したtcp接続のためのデータ処理
US7962628B2 (en) Apparatus and method for supporting connection establishment in an offload of network protocol processing
US8583831B2 (en) Thin client discovery
US7480238B2 (en) Dynamic packet training
US9100332B2 (en) Data transmitting device, data communicating device, and computer readable medium
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US8670724B2 (en) Wireless communication terminal, control method therefor, and information storage medium
US20070297334A1 (en) Method and system for network protocol offloading
WO2017028399A1 (zh) 通信数据传输方法及系统
US9288287B2 (en) Accelerated sockets
US11968260B2 (en) Network interface card, message sending and receiving method, and storage apparatus
US20070291782A1 (en) Acknowledgement filtering
US20220232072A1 (en) Controlling packet delivery based on application level information
US8040540B2 (en) Communication information processing system
US20040267960A1 (en) Force master capability during multicast transfers
US7213074B2 (en) Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
US9619005B2 (en) Apparatus and method for saving power of USB device
US7672239B1 (en) System and method for conducting fast offloading of a connection onto a network interface card
US20230280812A1 (en) Power management device, power management system, power management method, and power management program
JP2016012801A (ja) 通信装置、通信システム及び通信装置制御方法
US20060031474A1 (en) Maintaining reachability measures
JP2017163346A (ja) 通信装置、方法、及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100825

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120329

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: 20120727

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: 20120824

R151 Written notification of patent or utility model registration

Ref document number: 5074872

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees