説明

ネットワーク受信装置

【課題】受信データ中に即時処理の必要なデータが含まれていた場合であっても,LRO受信処理の利点であるスループットを落とすことなく,即時処理が必要なデータを敏速に処理することができるネットワーク受信装置を提供する。
【解決手段】ネットワーク上の任意の通信における所望の受信データサイズ,および当該通信の識別情報を所定のテーブルに登録するテーブル登録手段と,少なくともトランスポート層よりも下位に位置するデータ受信手段であって,テーブルを参照し,テーブルに登録された識別情報ごとの通信について,受信したデータサイズを計数し,計数された受信データサイズが登録されたデータサイズに達するまで当該受信したデータを上位層に送らないデータ受信手段と,を備えるネットワーク受信装置。

【発明の詳細な説明】
【技術分野】
【0001】
本願発明はネットワーク受信装置,特に,効率的な受信が可能な装置に関するものである。
【背景技術】
【0002】
TCP送受信性能を改善する取り組みとして,ハードウェアによりTCPセグメンテーション処理(結合処理)を行う発明や,LANコントローラドライバに近い層でセグメンテーション処理を行うLARGE RECEIVE OFFLOAD(LRO)などのソフト的な取り組みが存在する。
【0003】
特に受信処理に関するLROは,特許文献1にて開示のあるように,TCPセグメンテーション処理を本来のTCP/IPスタックから分離することで,TCPスタックの処理に要するCPU負荷(オーバーヘッド)を下げ,最終的に得られるスループットを向上させるという目的を達成する手段として効果的である。
【0004】
しかしこのようなLROは,下位層で後続データを待ち続け,データが続く限りセグメンテーションを行うことを動作原理としているため,スループットの効果向上に伴い,即時性が損なわれていくという問題があった。例えば,印刷データを受信する場合,データサイズの大きい印刷データ本体はスループットが重視されるためLROが有効に働く。一方,印刷データとともにデータサイズの小さいコマンドデータを受信した場合,LROの受信ではセグメンテーション単位で受信データを上位層に送るため,このコマンドの処理は即座に行われないことがある。もしコマンドが印刷中止の指示であれば,大幅に動作が遅れることがあり,その場合には甚大な被害を招くこととなってしまう。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願公開第2007/0014245号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
以上の問題に鑑み,本願発明では,受信データ中に即時処理の必要なデータが含まれていた場合であっても,LRO受信処理の利点であるスループットを極力落とすことなく,即時処理が必要なデータを敏速に処理することができるネットワーク受信装置を提供する。
【課題を解決するための手段】
【0007】
本願発明にかかる第1の形態は, セッションごとの所望受信データサイズを認定する手段と,トランスポート層よりも下位に位置するデータ受信手段であって,セッションごとの通信について,実際に受信したデータのサイズが,認定された所望受信データサイズから所定のデータサイズ分を減じたサイズに到達するまで当該実際に受信したデータを上位層に送らないデータ受信手段と,を備えることを特徴とするネットワーク受信装置である。
【0008】
さらに好ましくは,所定のデータサイズは,0であることを特徴とする。
【0009】
本願発明にかかる第2の形態は, セッションごとの所望受信データサイズを認定する手段と,トランスポート層よりも下位に位置するデータ受信手段であって,セッションごとの通信について,実際に受信したデータのサイズが,認定された所望受信データサイズに到達せず,かつ,所定の条件が満たされない間は,当該実際に受信したデータを上位層に送らないデータ受信手段と,を備えることを特徴とするネットワーク受信装置である。
【0010】
本願発明にかかる第3の形態は, コンピュータを,セッションごとの所望受信データサイズを認定する手段と,トランスポート層よりも下位に位置するデータ受信手段であって,セッションごとの通信について,実際に受信したデータのサイズが,認定された所望受信データサイズから所定のデータサイズ分を減じたサイズに到達するまで当該実際に受信したデータを上位層に送らないデータ受信手段と,して機能させることを特徴とするプログラムである。
【0011】
さらに好ましくは,所定のデータサイズは,0であることを特徴とする。
【0012】
本願発明にかかる第4の形態は, コンピュータを,セッションごとの所望受信データサイズを認定する手段と,トランスポート層よりも下位に位置するデータ受信手段であって,セッションごとの通信について,実際に受信したデータのサイズが,認定された所望受信データサイズに到達せず,かつ,所定の条件が満たされない間は,当該実際に受信したデータを上位層に送らないデータ受信手段と,して機能させることを特徴とするプログラムである。
【発明の効果】
【0013】
本願発明では,セッションごとに必要な受信データサイズを保持するテーブルを設け,データ受信手段は,当該テーブルに登録されているデータサイズに基づいて上位層に受信データを送る。このため,即時処理の必要なデータは即時に,スループットの必要なデータはまとまったサイズが溜まってからというように,必要な受信データサイズに応じて柔軟に受信処理を行うことができる。この結果,LRO受信処理の利点であるスループットを極力落とすことなく,即時処理が必要なデータを敏速に処理することができるという効果を奏する。
【発明を実施するための形態】
【0014】
以下では図面を参照し本願発明に係る実施例を説明する。
[実施例1]
[ブロック図]
【0015】
図1は,本願発明にかかるネットワーク受信装置101のブロック図である。この図は,ネットワーク受信装置101のプロトコルスタックを中心に示したものである。なお,これより説明する処理は,ソフトウェアおよびハードウェアのいずれを用いても実現することが可能である。
【0016】
TCP/IPアプリケーション102は,TCP/IPプロトコルを使用するアプリケーションであり,FTP,HTTPおよびTELNETなどが一般的には有名である。なお,本願発明で使用するTCP/IPアプリケーション102は,これら従前のプロトコルも含めどのようなものであってもよい。なお,TCP/IPアプリケーション102は,後述するTCP111に,自身が受信を希望するデータサイズを通知する。
【0017】
テーブル登録手段103は,ネットワーク受信装置101が備えるRAM(図示せず)などの記憶領域に,ネットワーク受信装置101が使用するセッション情報をテーブルとして登録する手段である。具体的には図3に示すテーブル情報であり,ソースIPアドレス,宛先IPアドレス,ソースポート番号,宛先ポート番号およびセッションごとのデータサイズが登録されている。ソースIPアドレスは送信装置側のIPアドレスであり,宛先IPアドレスは,ネットワーク受信装置101自身のIPアドレスである。
【0018】
データサイズは,本願発明のポイントとなる項目であり,各セッションにおいて,TCP/IPアプリケーション102が所望する受信データサイズを示したものである。ここに登録されるデータサイズは,後に説明するデータ受信手段105が実際に受信したデータ数を減じたサイズとなっている。すなわち,常に最新の残り受信データサイズが反映されている。
【0019】
ネットワークI/F107,LANコントローラドライバ108,データリンク109,IP110およびTCP111は,一般的なネットワーク機器におけるものと同様であるため説明を省略する。図に示す通り,受信データはネットワークI/F107を通じてプロトコルスタックを順に進み,最終的にTCP/IPアプリケーション102に送られる。
【0020】
データ受信手段105は,LANコントローラドライバ108とデータリンク109の間に位置する手段である。本願発明において,データ受信手段105はいわゆるLRO処理を実行するエンジン部分であるため,プロトコルスタック上ではデータリンク109の直下に位置している。なお,データ受信手段105が位置する階層は,上記したものだけでなく,少なくともトランスポート層(図ではTCP111)よりも下位であればよい。
これは,本願発明が,TCP111が用いるセッション情報を用いて受信データを管理するためである。
【0021】
データ受信手段105は,LANコントローラドライバ108より送られた受信データを上位層であるデータリンクに109に送るかどうかを判定する手段である。具体的には,受信したデータのサイズがTCP/IP111が所望したサイズに達しているかどうかを,テーブル104を参照して判定する。所望したサイズに達していなければ,実際に受信したデータをバッファ106に保存するとともに,テーブルに登録されているデータサイズから実際に受信したデータサイズを減じたサイズにテーブル104のデータサイズを更新する。一方,受信したデータサイズがTCP/IP111が所望したサイズに達した場合は,データがバッファ106に登録されているなら,ここから読み出し,受信したデータと結合したうえでデータリンク109に送る。
【0022】
図3では,所望データサイズが32KByteと2Byteの2つのセッションが例示されている。1回の受信データサイズにも依るが,通常は,最大が1500Byte程度となるため所望データサイズが32KByteであるセッションNo.1は,受信データが32KByteに達するまで,バッファ106への保存とテーブル104の更新が繰り返された後データリンク109に送られ,2ByteのセッションNo.2は,受信が完了するとデータは即座にデータリンク109に送られる。
【0023】
[フロー]
図2はネットワーク受信装置101の動作フローである。図に示す通り,ネットワーク受信装置101はテーブル登録タスクとデータ受信タスクの2つのタスクから構成されている。なお,それぞれのタスクは前述した各手段が実行する。具体的には,テーブル登録タスクはテーブル登録手段103が,データ受信タスクはデータ受信手段105が実行する。
【0024】
まずはテーブル登録タスクについて説明する。ステップ201にて,TCP/IPアプリケーション102にてデータ受信要求が発生したかどうかを判定する。発生していなければ,発生するまで判定し続け,発生していれば処理がステップ202に進む。ステップ202にて,発生したデータ受信要求からに含まれる所望データサイズを認定する。例えば,所望の受信データが印刷データなら32KByteであったり,コマンドデータなら2Byteという具合である。ステップ203にて,受信要求の発生したセッションを認定する。具体的には,ソースIPアドレス,宛先IPアドレス,ソースポート番号および宛先ポート番号である。ステップ204にて,認定した所望データサイズとセッション情報をセットにして,テーブル104に登録する。
【0025】
次いでデータ受信タスクについて説明する。ステップ251にて,データ受信があるかどうかを判定し,データを受信していなければデータ受信を検出し続け,受信していれば処理がステップ252に進む。ステップ252にて,受信データのセッションを認定する。これは上述したようにソースIPアドレスなどの情報である。ステップ253にて,受信したデータのサイズを認定する。ステップ254にて,テーブル104を参照し,認定されたセッション情報の所望データサイズ分を受信したかどうかを判定する。所望データサイズに達していなければ,ステップ255にて,受信したデータをバッファ106に保存し,ステップ256にて,受信したデータサイズを減じたデータサイズにテーブル104を更新する。一方,ステップ254にて所望データサイズ分の受信をしていれば,受信データを上位層,本実施例ではデータリンク109に送る。もちろん,バッファに106に保存されている受信データがあれば,これを読み出し,受信したデータと結合したうえで送る。なお,図示していないが,この時点でテーブルに登録されているセッション情報を削除してもよい。
[その他の実施形態]
【0026】
先の実施例では,テーブル登録手段103がTCP111に存在したが,TCP/IPアプリケーション102の側に存在してもよい。この場合,通常のTCP/IPアプリケーション102にテーブル登録手段103を組み込めばよい。
【0027】
また,テーブル登録手段103がテーブル104に登録するデータサイズは,必ずしもTCP111が所望するデータサイズと同じである必要はない。ネットワーク通信では,様々な要因により,データのロスト(欠落)が発生することがある。もし,テーブルのデータサイズが,TCP111の所望するデータサイズと同じであるならば,受信データの欠落が発生した場合,一向に上位層に受信データが送られないという事態が発生する。このような事態を回避するため,予め,TCP111の所望データサイズから所定のデータサイズ分(たとえば1パケット分1500Byte)を減じたサイズをテーブル104に登録しておき,登録されたデータサイズ分のデータが受信されたら上位層に送るというようにしてもよい。一方,ネットワークの通信品質が高く,ロストの危険性が皆無と想定されるなら,減じるサイズを0(ゼロ)として,テーブル104に登録すればよい。
【0028】
さらに,データのロストに備えるための別の手段として,テーブルに登録されたデータサイズに達していない場合でも,一定時間の経過など,所定の条件が満たされた場合に,上位層に受信データを送るようにしてもよい。図4は,受信データサイズと所定の条件のそれぞれのケースにおいて,データ受信手段105が,受信データを上位層に送るかどうかを示す表である。図からわかるとおり,「受信データサイズがテーブルに登録されたサイズに達する」,または「所定の条件」の少なくとも一方が満たされれば,受信データを上位層に送る。言い換えると,いずれも満たされない場合に限り,受信データを上位層に送らない。
[まとめ]
【0029】
本願発明では,セッションごとに必要な受信データサイズを保持するテーブルを設け,データ受信手段は,当該テーブルに登録されているデータサイズに基づいて上位層に受信データを送る。このため,即時処理の必要なデータは即時に,スループットの必要なデータはまとまったサイズが溜まってからというように,必要な受信データサイズに応じて柔軟に受信処理を行うことができる。この結果,LRO受信処理の利点であるスループットを極力落とすことなく,即時処理が必要なデータを敏速に処理することができるという効果を奏する。

【図面の簡単な説明】
【0030】
【図1】ネットワーク受信装置のブロック図
【図2】ネットワーク受信装置の動作フロー
【図3】テーブル例
【図4】データ受信手段の挙動
【符号の説明】
【0031】
103 テーブル登録手段
105 データ受信手段

【特許請求の範囲】
【請求項1】
セッションごとの所望受信データサイズを認定する手段と,
トランスポート層よりも下位に位置するデータ受信手段であって,前記セッションごとの通信について,実際に受信したデータのサイズが,認定された前記所望受信データサイズから所定のデータサイズ分を減じたサイズに到達するまで当該実際に受信したデータを上位層に送らないデータ受信手段と,
を備えることを特徴とするネットワーク受信装置。
【請求項2】
前記所定のデータサイズは,0であることを特徴とする請求項1に記載のネットワーク受信装置。
【請求項3】
セッションごとの所望受信データサイズを認定する手段と,
トランスポート層よりも下位に位置するデータ受信手段であって,前記セッションごとの通信について,実際に受信したデータのサイズが,認定された前記所望受信データサイズに到達せず,かつ,所定の条件が満たされない間は,当該実際に受信したデータを上位層に送らないデータ受信手段と,
を備えることを特徴とするネットワーク受信装置。
【請求項4】
コンピュータを,
セッションごとの所望受信データサイズを認定する手段と,
トランスポート層よりも下位に位置するデータ受信手段であって,前記セッションごとの通信について,実際に受信したデータのサイズが,認定された前記所望受信データサイズから所定のデータサイズ分を減じたサイズに到達するまで当該実際に受信したデータを上位層に送らないデータ受信手段と,
して機能させることを特徴とするプログラム。
【請求項5】
前記所定のデータサイズは,0であることを特徴とする請求項4に記載のプログラム。
【請求項6】
コンピュータを,
セッションごとの所望受信データサイズを認定する手段と,
トランスポート層よりも下位に位置するデータ受信手段であって,前記セッションごとの通信について,実際に受信したデータのサイズが,認定された前記所望受信データサイズに到達せず,かつ,所定の条件が満たされない間は,当該実際に受信したデータを上位層に送らないデータ受信手段と,
して機能させることを特徴とするプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−204950(P2012−204950A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−65769(P2011−65769)
【出願日】平成23年3月24日(2011.3.24)
【出願人】(500112146)サイレックス・テクノロジー株式会社 (74)
【Fターム(参考)】