(57)【要約】      （修正有）【課題】半二重伝送の送信ルールに替わって送信権を適切な管理を図る。【解決手段】イーサネット（登録商標）規格によるコンピュータネットワーク上の装置Ａ〜Ｃは、半二重伝送の送信ルール（早いもの勝ち，ランダムな待ち時間）に替わって送信権ａ〜ｃ、即ち送信を行う上での優先度を数値化したパラメータをＩＦＧタイマー１のＩＦＧに加算値として反映させる。また、各装置Ａ〜Ｃは、ＩＦＧの通常値に加算して嵩上げされたＩＦＧ加算値の待ち時間が経過した後に送信を開始する。【選択図】図１
2014179718.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の複数のノード間で行われる通信制御方法であって、
各ノードのパケット送信時におけるインターフレームギャップの通常値に加算値を加えて送信権を管理する第１ステップと、
各ノードが、第１ステップで通常値に加算して嵩上げされた加算値の待ち時間が経過した後に送信を開始する第２ステップと、
を有することを特徴とする通信制御方法。
【請求項２】
前記第１ステップは、前記通常値に加算された加算値を次第に減衰させるステップを有する
ことを特徴とする請求項１記載の通信制御方法。
【請求項３】
前記第１ステップは、特定のノードが連続送信した場合には前記加算値を前記通常値よりも低い値に設定する
ことを特徴とする請求項１記載の通信制御方法。
【請求項４】
前記第１ステップにおいてノード毎に前記加算値の設定値を変更可能なことを特徴とする請求項１または２のいずれか１項に記載の通信制御方法。
【請求項５】
前記第１ステップにおいて各ノードは、送信キューと送信キュー毎に割り当てた前記加算値の重みとの対照表を参照してフレームを送信する送信キューの重みを取得し、
各送信キューの加算値に前記重みを反映させて算出することを特徴とする請求項１記載の通信制御方法。
【請求項６】
各送信キューの加算値の合計が、各ノードに対する通常のＩＦＧ加算値と同等なことを特徴とする請求項５記載の通信制御方法。
【請求項７】
前記第１ステップは、各ノードで送信信号の衝突が発生すれば前記通常値に前記加算値を加算した後にさらにランダムな加算値を加える
ことを特徴とする請求項１または２のいずれか１項に記載の通信制御方法。
【請求項８】
前記第１ステップにおいて各ノードは、ネットワークを監視して送信信号の衝突が起こった場合に自身の衝突統計を更新し、
更新された衝突統計に基づき単位時間当たりの発生回数を算出し、算出結果に応じて前記加算値をプラス方向にオフセットする
ことを特徴とする請求項１記載の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上の複数のノード（ｎｏｄｅ）間で行われる通信制御方法に関し、特にＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）においてインターフレームギャップを制御して通信する方法に関する。
【背景技術】
【０００２】
周知のようにネットワークを構成するノード間で情報をやり取りする複信（Ｄｕｐｌｅｘ）は双方向通信と呼ばれている。この複信を行う場合には伝送方向別に２つの通信線路を使用すると単純であるが、伝送路の節約のために半二重伝送（Ｈａｌｆ  Ｄｕｐｌｅｘ）の方式が用いられることがある。
【０００３】
例えば無線ＬＡＮのうち「ＩＥＥＥ８０２．１１ａ／ｂ／ｇ」はすべて半二重伝送であり、「イーサネット／Ｅｔｈｅｒｎｅｔ（登録商標）」ではネットワークの組み方により全二重伝送（Ｆｕｌｌ  Ｄｕｐｌｅｘ）と半二重伝送のいずれにもなりうる。
【０００４】
半二重伝送は、送信と受信が同一媒体に同居するため、送信と受信とを同時に行うことができず、半複信とも呼ばれ、複数の装置（ノード）が同時に送信を行うことができない。このとき送信権をどの装置に与えるかが問題となるが、イーサーネット（登録商標）では「早い者勝ち」というシンプルな送信ルールで、この問題に対処している。この送信ルールによれば、装置Ａが送信を行っている最中には装置Ｂは送信を開始することができず、装置Ａの送信終了後にインターフレームギャップ（以下、ＩＦＧと略する。）と呼ばれるアイドル時間の経過後に次のフレームの送信が可能となる。これに類似する技術が特許文献１に記載されている。
【０００５】
ここで運悪く、複数の装置が同時に送信を実行してしまった場合には信号の衝突（コリジョン）が発生し、送信したフレームが壊れてしまう。この場合には各装置はランダムな待ち時間を設けてフレームの再送信を実行する。これにより再送のタイミングがずれて、次の送信でコリジョンの発生確率が低減される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２９２１５０
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このような半二重伝送の送信ルールによれば、各装置（あるいは各フレーム）には平等に送信機会が与えられている。しかしながら、各装置・各フレームが持つ重要度が均一でないケースでは送信機会の平等は却ってマイナスとなる。
【０００８】
例えばＣｏＳ（Ｃｌａｓｓ  ｏｆ  Ｓｅｒｖｉｃｅ）によるパケットの優先度制御を行うときにスイッチ内部でスイッチングの優先順位を付けても回線上では平等な扱いとされるため、優先度制御が効果的に機能しなくなってしまう。また、仮に各装置が平等な位置付けであったとしても、クロック等の精度の差異に起因して特定の装置のみが送信を続ける状態に陥り、平等すら実現しないこともあり得る（いわば「フライング」）。
【０００９】
本発明は、上述のような従来技術の問題点を解決するためになされたものであり、半二重伝送の送信ルール（早いもの勝ち等）に替わって送信権を適切に管理することを解決課題としている。
【課題を解決するための手段】
【００１０】
本発明は、ネットワーク上の複数のノード間で行われる通信制御方法であって、各ノードのパケット送信時におけるインターフレームギャップの通常値に加算値を加えて送信権を管理する第１ステップと、各ノードが、第１ステップで通常値に加算して嵩上げされた加算値の待ち時間が経過した後に送信を開始する第２ステップと、を有することを特徴としている。
【００１１】
この発明によれば、ネットワーク上の各ノードの持つ送信権、即ち送信を行う上での優先度を数値化したパラメータをＩＦＧへの加算値として反映させることで送信権を適切に管理する。
【００１２】
前記第１ステップの一態様として、前記通常値に加算された加算値を次第に減衰させるステップを有していてもよく、特定のノードが連続送信した場合には前記加算値を前記通常値よりも低い値に設定してもよく、ノード毎に前記加算値の設定値を変更可能としてもよい。
【００１３】
前記第１ステップの他の態様として、各ノードが送信キューと送信キュー毎に割り当てた前記加算値の重みとの対照表を参照してフレームを送信する送信キューの重みを取得し、各送信キューの加算値に前記重みを反映させて算出することもできる。このとき各送信キューの加算値の合計が各ノードに対する通常のＩＦＧ加算値と同等なことが好ましい。
【００１４】
前記第１ステップのさらに他の態様として、各ノードで送信信号の衝突が発生すれば前記通常値に前記加算値を加算した後にさらにランダムな加算値を加えることができる。また、各ノードが、ネットワークを監視して送信信号の衝突が起こった場合に自身の衝突統計を更新し、更新された衝突統計に基づき単位時間当たりの発生回数を算出し、算出結果に応じて前記加算値をプラス方向にオフセットしてもよい。
【発明の効果】
【００１５】
本発明によれば、半二重伝送の送信ルール（早いもの勝ち等）に替わって送信権が適切に管理され、コリジョンの抑制にも寄与することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の通信制御方法を実現するネットワークの概念図。
【図２】同  フレーム送信時のＩＦＧの推移グラフ。
【図３】同  コリジョン発生時の乱数加算を示すグラフ。
【図４】ＩＦＧ加算値のグローバルオフセットと衝突確率の関数例を示す図。
【発明を実施するための形態】
【００１７】
図１に基づき本発明の通信制御方法を実施するネットワークを説明する。ここでは本発明はイーサネットのコンピュータネットワークに適用されている。
【００１８】
すなわち、装置Ａ〜Ｃはコンピュータにより構成され、それぞれイーサネット規格のＬＡＮで接続され、ネットワーク上のネットワーク機器（ノード）として認識されている。
【００１９】
この各装置Ａ〜Ｃのネットワークインターフェースはデータリンク層で動作するスイッチ（スイッチングハブ，ＬＡＮスイッチなど）をサポートし、あて先のＭＡＣアドレスにフレームを送信する。このフレーム送信はイーサネットの蛇口２にフレームを放り込んで実行され、フレーム送信の優先度は送信キューｑの形式で実現されている。
【００２０】
ここでは各装置Ａ〜Ｃでは、半二重伝送における従来送信ルール（早いもの勝ち，ランダムな待ち時間）に替わって送信権ａ〜ｃ、即ち送信を行う上での優先度を数値化したパラメータがＩＦＧタイマー１のＩＦＧへの加算値として反映され、ＩＦＧ値の増減による調整が施されている。以下、詳細を説明する。
【００２１】
≪基本動作≫
まず、基本的な動作を説明するため、フレームの優先度なし（平等）のケースを説明する。
【００２２】
（１）ＩＦＧ加算
各装置Ａ〜Ｃは、パケット送信時にＩＦＧを通常値（例えばイーサネットの場合は９６ＢＴ）よりも長い値に設定する。ここでは通常値と嵩上げされた値の差を「ＩＦＧ加算値」と呼ぶ。図１の装置Ａを一例に説明すれば、装置Ａはフレームの送信後にＩＦＧタイマー１に記憶されたＩＦＧの通常値にＩＦＧ加算値を加える。
【００２３】
したがって、装置Ａが次にフレームを送信するのは、ＩＦＧの通常値に加えて、ＩＦＧ加算値分の待ち時間が経過した後となる。これにより装置Ｂ，Ｃが送信を控えている場合には装置Ａより先に送信機会が与えられる。この点で送信機会の分散効果が得られ、各装置Ａ〜Ｃ間におけるコリジョンの発生が抑えられる。
【００２４】
（２）ＩＦＧ減衰
ＩＦＧ加算のみでは、やがて各装置Ａ〜ＣにＩＦＧ加算され、均一のＩＦＧ値となるため、送信機会の分散効果が無くなるおそれがある。そこで装置Ａでは通常値に加算されたＩＦＧ加算値を、図２に示すように、装置Ａが次のフレームを送信するまで次第に減衰させ、ＩＦＧの通常値に収束させる。これによりＩＦＧ加算値の減衰期間中は他の装置の送信が有利となり、この点でコリジョンの発生が抑制できる。
【００２５】
（３）ＩＦＧ加算値のマイナスオフセット
前記ＩＦＧ加算と前記ＩＦＧ減衰とによれば、装置Ａ〜Ｃに送信チャンスを分散させる効果が得られる反面、そのうちの１台の装置だけが連続して送信するケースではＩＦＧが常に加算された状態となり、スループットの低下を招いてしまう。
【００２６】
そこで、特定の装置が連続してフレームを送信した場合、例えば装置Ａが最初のフレームを送信し、その後にＩＦＧ加算値が加算されたものの、他の装置Ｂ，Ｃが送信を行わず、装置Ａが次のフレームを送信するときにはＩＦＧ加算値を通常値よりも低い値に変更する。この変更処理をＩＦＧ加算値のマイナスオフセットと呼ぶ。
【００２７】
このマイナスオフセットの数値変更方法としては、連続送信する場合に徐々にオフセットを拡大する方法や２回連続して送信した場合には一気にオフセットを最大に拡大する方法などでよいが、これらの方法には限定されず、他の方法を実装してもよい。
【００２８】
ただし、ＩＦＧ加算値を「０」にすると数値変更された装置のみが送信し続ける状態が生じるため、マイナスオフセットではＩＦＧ加算値を「０」に数値変更してはならない。なお、他の装置が送信を行ったことを図示省略の検出手段（スイッチなど）が検出すればマイナスオフセットを解除し、ＩＦＧ加算値は元の値に復元される（数値変更前の値に戻る）。
【００２９】
（４）装置の優先度
前記ＩＦＧ加算によれば、装置そのものに優先度を設定する際にはＩＦＧ加算値を設定変更することで対応できる。すなわち、装置の優先度を上げるためにはＩＦＧ加算値を小さくすればよく、装置の優先度を下げるためにはＩＦＧ加算値を大きくすればよい。
【００３０】
また、前記ＩＦＧ減衰によれば、ＩＦＧ加算値の減衰レートの調整でも装置の優先度を実現することができる。ここでは優先度を上げるためにはＩＦＧ加算値の減衰レートを上げればよく、優先度を下げるためにはＩＦＧ加算値の減衰レートを下げればよい。
【００３１】
≪フレーム優先度の実現≫
フレームに対する優先度付けの方法としては、一般的に受信ポートによる優先度付けやフレームのタグに記述された「ＣｏＳ」による優先度付けなどが知られている。このとき如何なる方法に基づいて優先度を付けたとしても、実装的には優先度は最終的にはフレームを放り込む送信キューｑの形式で実現される。
【００３２】
ここでは複数の送信キューｑからどのような順序でフレーム送信を行うかではなく、複数の送信キューｑのうちから何らかの取り決めで一つの送信キューｑを選択し、選択された送信キューｑの先頭のフレームを送信しようとするときの処理内容を説明する。
【００３３】
【表１】
2014179718.tif 000003
【００３４】
表１は送信キューｑと、該送信キューｑに割り当てたＩＦＧ加算値の重みとを対照するテーブルを示している。ここでは装置Ａ〜Ｃは前記テーブルを保持しているものとする。
【００３５】
そして、各装置Ａ〜Ｃは、特定の送信キューｑからフレームを送信する際には表１のテーブルを参照して該送信キューｑに応じたＩＦＧ加算値の重みを取得し、取得した重みを実際のＩＦＧ加算値を算出する。このときＩＦＧ加算値の重みの合計値を、装置Ａ〜Ｃに対する通常のＩＦＧ加算値（標準値：この例では３６ＢＴとする。）と等しく（「±０」）する。ここでは各送信キューｑのＩＦＧ加算値には次の計算式を用いる。
・計算式：送信キューｑのＩＦＧ加算値＝（送信キューｑの重み／全送信キューｑの重み）×送信キューｑ数×装置のＩＦＧ加算値（標準値）
【００３６】
【表２】
2014179718.tif 000004
【００３７】
表２は、前記計算式を用いた各送信キューｑのＩＦＧ加算値の計算結果を示し、ここでは送信キューｑは送信キュー１〜７として示されている。
【００３８】
表２の計算値によれば、送信キュー７からフレームを送信する場合にはＩＦＧ加算値は「８ＢＴ」であるから、標準値の「３６ＢＴ」よりも短い待ち時間で送信機会を得ることができる。逆に送信キュー０からフレームを送信する場合にはＩＦＧ加算値は「６４ＢＴ」であるから、標準値の「３６ＢＴ」よりも長い時間を待たされる。
【００３９】
このとき「送信キュー０〜７全体のＩＦＧ加算値＝「装置のＩＦＧ加算値（標準値）×送信キュー数」が成立しているため、当該装置が他の装置よりも優遇／冷遇されることにはならない。なお、当該装置から送信するフレームが特定のキューに偏っている場合には、当該装置の送信が優遇／冷遇さえることになるが、それはフレーム優先度に基づく結果であり、問題ではない。
【００４０】
≪ランダムバックオフ≫
イーサネットでは、コリジョンが起こるとランダムな待ち時間を待ってから再送を開始する。また、コリジョンが起こる度に待ち時間を長くする仕組みもある。
【００４１】
このままではコリジョンからの再送は、機会均等となり、優先度付けが実現しえなくなってしまう。そこで、コリジョンが発生したときにランダムな待ち時間を設けるのではなく、図３に示すように、前述のＩＦＧ加算を行ったうえで、そのＩＦＧ加算値に再送分散のための乱数加算、即ちランダムな加算値をさらに加え、値を散らすようにする。ここではさらに加算されたＩＦＧ加算値が次のフレームを送信するまで次第に減衰し、やがて通常のＩＦＧ値に収束する。
【００４２】
その結果、前記ＩＦＧ減衰よりもさらに再送タイミングを散らして再衝突を防ぎつつ、優先度に基づいた送信機会の重み付け分散を実現する。なお、乱数加算に際しては汎用の乱数発生器を用いればよく、線形合同法のアルゴリズムを使って擬似的に乱数を発生させてもよい。
【００４３】
≪ＩＦＧ加算値のグローバルオフセット≫
前記各ＩＦＧ加算によりコリジョンは起きにくくなるはずであるが、送信ノード（装置）が多くなり、相対的にＩＦＧ加算値が足りなくなるケースが考えられる。例えば、装置ＡのＩＦＧ加算値が減衰する過程で、送信を控えている他の装置Ｂ，Ｃが１回ずつ送信できないと、常にＩＦＧ加算値が「０」となった送信ノードが複数存在することになり、ＩＦＧ加算の仕組みが効力を失うおそれがある。
【００４４】
このようなケースに対応するため、ＩＦＧ加算値のグローバルオフセットを導入する。ここでは各装置Ａ〜Ｃは信号線を監視し、コリジョンが起きた場合に自身のコリジョン統計を更新する。この統計を元に単位時間当たりのコリジョン発生回数を算出し、この算出結果に基づいてＩＦＧ加算値をプラス方向にオフセットする（増加させて埋め合わせる）。
【００４５】
このときコリジョン発生率とプラスオフセットとの関数は任意でよい。また、各装置Ａ〜Ｃが同じ関数でオフセットを取ることがフェアであるが、関数が異なっても、プラスオフセット値がコリジョン発生率の増加関数であれば、コリジョンの発生を抑える方向に働くので、問題はない。好ましくは図４に示すように、プラスオフセットをコリジョン発生率の指数関数とすることがよい（イーサネットの再送もＥｘｐｏｎｅｎｔｉａｌバックオフである。）。
【００４６】
なお、本発明は前記実施形態に限定されるものではなく、各請求項に記載された範囲で変形して実施することができる。例えば前記ランダムバックオフは、必ずしも図３のようにＩＦＧ加算値を減衰させる必要は無く、再送分散のための乱数加算のみでもよい。この場合にも乱数加算によりランダム待ち時間が付与されるため、再送タイミングを散らすことができる。
【符号の説明】
【００４７】
Ａ〜Ｃ…装置（ノード）
ａ〜ｃ…送信権
１…ＩＦＧタイマー
２…蛇口
３…送信キュー
【図１】
2014179718.tif 000005
【図２】
2014179718.tif 000006
【図３】
2014179718.tif 000007
【図４】
2014179718.tif 000008