説明

ノード間データ応答システム

【課題】送信ノード(マスタ)から受信ノード(スレーブ)に元データをパケット分割して送信し、受信ノードから所定の応答データを送信ノードに返す場合に要する時間を短縮する。
【解決手段】送信ノードが元データを分割する際に、先頭の分割パケットに、応答に必要な情報である応答情報を含められるようにする。一方、受信ノードでは先頭の分割パケットを受信した時点で、全ての分割パケットから元データを復元するまでに、先頭の分割パケットに含まれている応答情報を読み取り、必要な応答処理を送信ノードに対して行う。先頭の分割パケットのエラーチェックを行うことで、通信の信頼性を確保しつつ応答時間の短縮化を図ることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ通信システムにおけるノード間のデータ応答方法に関する。より詳細には、データ通信ネットワークにおいて、あるノードから分割パケットの形態でデータが送信され、該パケットを受信したノードから応答パケットが送信されるような場合に、データ応答の時間短縮を図ることが可能なデータ応答方法に関する。
【背景技術】
【0002】
コンピュータ技術の止むことのない発展およびネットワークシステムの一般化とともに、通信ネットワーク技術の向上を目的とした研究が絶え間なく行われており、様々な技術が開示されている(例えば特許文献1参照)。
【0003】
マスタ−スレーブ方式やトークンバスなどを利用したコンピュータ通信システムにおいては、他のノードからデータを受信したことをきっかけとして、自ノード(すなわち、データを受信したノードのこと)がデータを送信(転送を含む)することがよくある。
このとき、IPフラグメンテーションなどによってデータが分割される場合には、自ノードでは例えば以下のようなステップで処理が行われる。
【0004】
ステップ1:送信元のノードから送信された、分割されたパケット(これを分割パケットと呼ぶ)を順次受信する。
ステップ2:各分割パケットごとにチェックサムを検査することで、データの信頼性を確認する。
ステップ3:全ての分割パケットの受信が完了すると、全体を結合し、元のデータパケット(元データパケット)を復元する。
ステップ4:元データパケットのチェックサムを検査することで、元データパケット全体の信頼性を確認する。
ステップ5:元データパケットのフォーマットを検査し、エラーが無いことを確認する。
ステップ6:元データパケットの内容に基づき、応答を行うべきか否かを判断する。
ステップ7:前記ステップ6において応答が必要と判断した場合、所定のデータを送信する。
ステップ8:元データパケットに含まれるデータのうち、必要な情報を自ノードの記憶手段に保存する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006-236391号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
一つのネットワークに多数のノードが接続されており、各ノードに対して順次何らかの問い合わせ処理を行う場合などには、各ノードの応答時間をできるだけ短くすることが要求される。しかしながら、各ノードの処理速度を上げたり、ネットワークの通信速度を上げたりすることには、かなりのコストが掛かるという問題がある。
【課題を解決するための手段】
【0007】
上記課題を解決するために成された本発明に係るノード間データ応答システムは、
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムにおいて、
前記送信ノードが、
前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように元データのフォーマットを設定するフォーマット設定部を備え、
前記受信ノードが、
該先頭の分割パケットを受信した段階で、該分割パケットに含められている前記応答情報を読み取り、該応答情報に基づき、予め定められた応答データ送信処理を実行するデータ応答部を備える
ことを特徴とする。
【0008】
本発明に係るノード間データ応答システムは、次のような知見に基づいてなされた。即ち、従来のデータ応答方式では、応答を行うべきか否かの判断(上記ステップ6)を実行するまでに、全ての分割パケットを順次受信し(上記ステップ1)、各分割パケットのチェックサムを検査し(上記ステップ2)、元のデータパケットを復元し(上記ステップ3)、元データパケットのチェックサムを検査する(上記ステップ4)という4つのステップを実行しなければならなかった。とりわけ、元データパケットのサイズが大きい場合には、分割パケットの数が多くなり、必然的にステップ1及びステップ2に時間がかかる。
そこで、送信ノードから元データを分割パケットに分割して送信する際に、元データへの応答要否及び応答に必要な情報である応答情報が、先頭の(すなわち、最初に送出される)分割パケットに含められるようにする。受信ノード側では、先頭の分割パケットを受信しただけで、つまり全ての分割データを受信して元データを復元することなく、まず、必要な応答処理を実行する。これによって、応答までに要する時間の大幅な短縮を行うことができる。
なお、一般的に、分割パケットは送信側から送信された順に受信側で受信されるとは限らない。とはいえ、本発明の構成によれば、先頭の分割パケットが最後に受信された場合(この場合は応答時間が短縮されない)以外は、応答に要する時間が短縮される。
【0009】
ネットワークの種類によっては、上りと下りのデータを同時に送信することができない(半二重通信)。この場合には、データ応答部が、全ての分割パケットを受信した後であって、全ての分割パケットから元データを再構築する前に、先頭の分割パケットに含められている前記応答情報に基づき、予め定められた応答データ送信処理を実行するようにすれば良い。
【0010】
また、本発明に係るノード間データ応答システムでは、処理の信頼性を確保するために、データ応答部が応答データ送信処理を行う前に、少なくとも前記先頭分割パケットに含まれる応答情報に誤りが無いか否かを検査する先頭エラー検査部を更に設けるのが望ましい。
【0011】
なお、本発明において「ノード」はサーバ、コンピュータ、ハブ、リンクなどに限定されることはなく、通信機能を備えたあらゆる機器を含む。
また、本発明において「パケット」は、IPパケットに限らず、フレームやセグメント等の、コンピュータ間の通信に使用される、データ送信に用いられるあらゆる単位を包含するものとする。
【発明の効果】
【0012】
本発明に係るデータ応答システムによれば、複数送られてくる分割パケットのうち、最初のものを受信した時点で応答を行うことが可能となる。従って、元データのサイズにかかわりなく、また、受信ノードのCPUの処理能力に大きく依存することなく、迅速に必要な応答処理を行うことが可能となる。よって、システム全体としての処理速度を上昇させることが可能となる。
【図面の簡単な説明】
【0013】
【図1】本発明に係るデータ応答システムの一実施形態を示す模式図。
【図2】本実施形態のおけるマスタ/スレーブ間の伝送フォーマットの模式図。
【図3】分割パケットの例。
【図4】スレーブにおける処理の一例を示すフローチャート(全二重ネットワークの場合)。
【図5】スレーブにおける処理の一例を示すフローチャート(半二重ネットワークの場合)。
【発明を実施するための形態】
【0014】
以下、本発明に係るノード間データ応答システムについて、図面を参照しつつ詳細に説明する。図1は、本発明に係るノードデータ応答システムの一実施形態を示す模式図である。
【0015】
図1におけるノードデータ応答システム1は、Ethernet(登録商標)UDP/IPで通信を行うマスタ・スレーブ型の通信システムを採用している。1台のマスタ2(本発明における送信ノード)にn台のスレーブ4、6、8、…(本発明における受信ノード)を接続して1:nの通信を行う。このとき、
・マスタ2からi番目のスレーブに対して元データを送信する。
・元データを受信したi番目の受信ノードがマスタ2に対して応答データを送信する。
の2つのシーケンスがスレーブの台数分(n)だけ繰り返される。
【0016】
マスタ2には送信ノード用プログラムがインストールされており、マスタ2のCPUがこの送信ノード用プログラムを実行することにより、フォーマット設定部3がソフトウエア的に具現化される。
一方、各スレーブ4、7、8、…には、受信ノード用プログラムがインストールされており、各スレーブのCPUがこの受信ノード用プログラムを実行することにより、データ応答部5、及び先頭エラー検査部6がソフトウエア的に具現化される。
【0017】
データ通信を行う場合、通常、元データが一定のサイズより大きい場合にはそれを所定のサイズに分割し、それぞれが所定のフォーマットを有する複数の分割パケットが作成される。パケットの分割方法は通常、予め定められている通信プロトコルの仕様によって定められている。そこで、本発明においては、フォーマット設定部3が、元データが分割された結果として作成される複数の分割パケットのうち、先頭の分割パケットに元データへの応答に必要な情報である応答情報が含まれるように、元データのフォーマットを設定する(元データの形式を整える)。
応答情報は具体的には、スレーブからマスタに対するデータ送信の要否、応答データの送信先(送信元ノード番号)、要求するデータの内容、等である。
【0018】
ここで、マスタ/スレーブ間の伝送フォーマット(UDPパケット)は図2に示すように規定されるものとする。
すなわち、送信元ポート番号、送信先ポート番号、UDPデータ長、UDPチェックサムから成るUDPヘッダ部と、送信元ノード番号(マスタノード番号)、送信先ノード番号(スレーブノード番号)、コマンド番号、マスタからスレーブへの伝送データ、から成るUDPデータ部から成るUDPパケットである。
本実施形態の場合、送信元ノード番号、送信先ノード番号、コマンド番号が応答情報に相当し、コマンド番号によってデータ送信の要否及び応答データの内容が指示される。
【0019】
本実施例では、元データが図3に示すように、[A]、[B]、[C]の3つの分割パケットに分割されるものとする。それぞれの分割パケットがEthernetヘッダ部、データ部、エラーチェック用のFCS(Frame Check Sequence)部の3領域から構成されるが、このうち、先頭の分割パケットである分割パケット[A]には、フォーマット設定部3の上述した働きの結果、データ部に応答情報として、送信元ノード番号、送信先ノード番号、コマンド番号が含められる。分割パケット[A]のデータ部には伝送データ(即ちデータの本体)も含められている。一方、分割パケット[B]、[C]のデータ部には伝送データのみが含められている。マスタ2がスレーブ4に対して分割パケットを送信する場合には、分割パケット[A]、[B]、[C]の順に、ネットワークNに対して送出する。
【0020】
以下、スレーブ4における処理の例を説明する。まず、ネットワークNが上りと下りのデータを同時に送信することができる、いわゆる全二重通信が可能なネットワークである場合について説明する。
【0021】
[全二重通信ネットワークの場合]
次に、スレーブ4における処理の一例をフローチャートである図4を参照しつつ説明する。分割パケット[A]を受信すると(ステップS11)、先頭エラー検査部6は直ちに、分割パケット[A]に含められているFCSに基づき、チェックサムによる分割パケット[A]のエラー検査を実行する(ステップS11)。このときエラー検査部6は、分割パケット[A]全体のエラー検査を実行しても良いが、応答情報のみを対象としたエラー検査を行ってもよい。後者には処理時間を短縮できるというメリットがある。
【0022】
先頭エラー検査部6の検査の結果、分割パケット[A]が正常であることが確認されると(ステップS12でYes)、データ応答部5は分割パケット[A]に含められている送信元ノード番号、送信先ノード番号、コマンド番号を読み取り(ステップS13)、この応答情報に基づき、必要なデータをマスタ2に対して送信する(ステップS14)。
前記ステップS12において分割パケット[A]にエラーが検出された場合には(ステップS12でNo)、分割パケット[A]を破棄し、処理を終了する。又はマスタ2に対してエラー報告やデータ再送要求を送信することもできる。
【0023】
その後、スレーブ4は、分割パケット[B]、[C]を受信し、それぞれの分割パケットのエラーチェックを実行する(ステップS15)。分割パケット[B]及び[C]が正常であれば、全ての分割パケット[A]、[B]、[C]を結合し、元データを復元する。また、復元された元データのエラーチェックを行う(ステップS16)。エラーが検出されなかった場合には、元データのうち、所定のデータをスレーブ4の記憶領域に保存し(ステップS17)、処理が終了する。
【0024】
なお、図4には示していないが、ステップS15又はS16においてエラーが検出された場合には、処理を終了するとともに、マスタ2に対してエラー報告やデータ再送要求を送信する。
【0025】
スレーブ4から応答データを受信したマスタ2は、対象を次のスレーブ7に移し、該スレーブ7に対しても同様に、分割パケットを、分割パケット[A]、[B]、[C]の順に送出する。スレーブ7も、スレーブ4と同様の処理を行う。
【0026】
以上のように、本実施例に係るノード間データ応答システム1では、分割パケットを全て受信し、各分割パケットのエラーチェックを行い、分割パケットから元データを復元し、元データのエラーチェックを行うという処理を行う前に、マスタに対して応答データを送信する処理が行われる。よって、マスタに対して必要な応答データを送信する処理の短時間化が図られる。
【0027】
[半二重通信ネットワークの場合]
次に、ネットワークNが、上りと下りのデータを同時に送信することが不可能な、いわゆる半二重通信のネットワークである場合の、スレーブ4の処理の例をフローチャートである図5を参照しつつ説明する。半二重通信ネットワークの場合でも、マスタ2の動作は上述した通りである。
【0028】
まず、スレーブ4において、全ての分割パケット[A]、[B]、[C]を受信する(ステップS21)。次に、先頭エラー検査部6が、先頭の分割パケットである分割パケット[A]のみのエラーチェックを行う(ステップS22)。エラーが検出された場合には(ステップS22のNo)全ての分割パケットを破棄し、処理を終了する。同時に、マスタ2に対してエラー報告やデータ再送要求を送信することもできる。
【0029】
分割パケット[A]が正常であった場合(ステップS22でYes)、データ応答部5は分割パケット[A]に含められている送信元ノード番号、送信先ノード番号、コマンド番号を読み取り(ステップS23)、この応答情報に基づき、必要なデータをマスタ2に対して送信する(ステップS24)。
【0030】
次いでスレーブ4は残された分割パケットである分割パケット[B]、[C]のエラーチェックを実行し(ステップS25)、エラーが検出されなかった場合には、全ての分割パケット[A]、[B]、[C]を結合し、元データを復元する。また、復元された元データのエラーチェックを行う(ステップS26)。エラーが検出されなかった場合には、元データのうち、所定のデータをスレーブ4の記憶領域に保存し(ステップS27)、処理が終了する。
【0031】
なお、図5には示していないが、ステップS25又はS26においてエラーが検出された場合には、処理を終了するとともに、マスタ2に対してエラー報告やデータ再送要求を送信する。
【0032】
スレーブ4から応答データを受信したマスタ2は、対象を次のスレーブ7に移し、該スレーブ7に対しても同様に、分割パケットを、分割パケット[A]、[B]、[C]の順に送出する。また、スレーブ7も、スレーブ4と同様の処理を行う。
【0033】
このように、半二重通信ネットワークにおいて、本発明に係るノード間データ応答システム1は、元データを復元する前に、マスタに対して応答データを送信する処理が行われる。よって、マスタに対して必要な応答データを送信する処理の時間短縮化が図られる。
【0034】
なお、上記の例では、ステップS21で全ての分割パケットを受信した後に先頭の分割パケット[A]のエラーチェックを行っていた(ステップS22)が、先頭の分割パケット[A]を受信した段階でそのエラーチェックを実行し、応答情報を取得し、応答データをマスタに対して送信することもできる(ステップS22〜S24)。他の分割パケット[B]及び[C]の受信は背後で実行すれば良い。
【0035】
上記実施例は本発明の一例にすぎず、本発明の趣旨の範囲で適宜変形、修正、追加等を行っても本願請求の範囲に包含されることは当然である。
【0036】
本発明においては、送信ノードと受信ノードがシステム内で予め固定されている必要は必ずしもない。他ノードに対してデータを送信するノードが送信ノードとして機能し、データを受信するノードが受信ノードとして機能する。
【0037】
また、受信ノードから送信ノードに対して応答データを送信する際に、データが所定のサイズよりも大きい場合には、これもパケット分割して送信されるのが一般的である。このような場合には、分割されたパケットのうち、先頭のパケットに、データ本体以外の各種情報を含めるようにするとよい。
この構成では、送信ノードが複数の受信ノードに関して順次同様の元データ送信を行う場合に、ある受信ノードから帰ってきた応答データの先頭のパケットを受信した段階で、次の対象とする受信ノードに対して元データを送信することができる。よって、送信ノードの処理においても、システム全体の処理時間短縮を図ることが可能となる。
【符号の説明】
【0038】
1…ノード間データ応答システム
2…送信ノード
3…フォーマット設定部
4、7、8…受信ノード
5…データ応答部
6…先頭エラー検査部
N…データ通信ネットワーク

【特許請求の範囲】
【請求項1】
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムにおいて、
前記送信ノードが、
前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように元データのフォーマットを設定するフォーマット設定部を備え、
前記受信ノードが、
該先頭の分割パケットを受信した段階で、該分割パケットに含められている前記応答情報を読み取り、該応答情報に基づき、予め定められた応答データ送信処理を実行するデータ応答部を備える
ことを特徴とするノード間データ応答システム。
【請求項2】
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムにおいて、
前記送信ノードが、
前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように元データのフォーマットを設定するフォーマット設定部を備え、
前記受信ノードが、
全ての分割パケットを受信した後であって全ての分割パケットから元データを再構築する前に、先頭の分割パケットに含められている前記応答情報に基づき、予め定められた応答データ送信処理を実行するデータ応答部を備える
ことを特徴とするノード間データ応答システム。
【請求項3】
前記データ応答部が応答データ送信処理を行う前に、少なくとも前記先頭分割パケットに含まれる応答情報に誤りが無いか否かを検査する先頭エラー検査部
を更に備えることを特徴とする請求項1又は2のいずれかに記載のノード間データ応答システム。
【請求項4】
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムに利用するものであって、
送信ノードを、前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように元データのフォーマットを設定するフォーマット設定部
として機能させるためのノード間データ応答システム送信ノード用プログラム。
【請求項5】
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムに利用するものであって、
送信ノードが前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように前記元データを複数の分割パケットに分割するシステムにおいて、
受信ノードを、
該先頭の分割パケットを受信した段階で、該分割パケットに含められている前記応答情報を読み取り、該応答情報に基づき、予め定められた応答データ送信処理を実行する、又は、全ての分割パケットを受信した後であって全ての分割パケットから元データを再構築する前に、先頭の分割パケットに含められている前記応答情報に基づき、予め定められた応答データ送信処理を実行するデータ応答部
として機能させるためのノード間データ応答システム受信ノード用プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate