【文献】
松山 拓紀、ほか,クラウドサーバ向けリアルタイム通信集約プロトコルの評価,平成29年電気学会全国大会講演論文集 [3] エレクトロニクス/情報工学システム/センサ・マイクロマシン,2017年03月05日,pp.11-12
(58)【調査した分野】(Int.Cl.,DB名)
前記集約間隔と前記最大パケットサイズと前記多重度のいずれか一つ以上のパラメータを他のパケット集約装置との間で送受信し、前記他のパケット集約装置のパラメータに基づいてパラメータを決定する調停部と、
をさらに備える、請求項1又は2に記載のパケット集約装置。
前記集約間隔と前記最大パケットサイズと前記多重度と前記帯域幅のいずれか一つ以上のパラメータを他のパケット集約装置との間で送受信し、前記他のパケット集約装置のパラメータに基づいてパラメータを決定する調停部と、
をさらに備える、請求項1又は2に記載のパケット集約装置。
【発明を実施するための形態】
【0007】
以下、各実施形態に係る伝送処理システムと、パケット集約装置と、及び伝送処理プロ
グラムについて、図面を参照して説明する。
【0008】
(実施形態1)
図1は、実施形態1に係る伝送処理システム100の装置構成の一例を示す図である。
図1を用いて、実施形態1に係る伝送処理システム100の装置構成を説明する。
【0009】
伝送処理システム100は、第一通信装置3a、3bと、パケット集約装置4と、第二
通信装置5と、を備える。なお、説明を分かり易くするために、第一通信装置3aと、第
一通信装置3bと、を区別する必要がないときは、第一通信装置3と略記する。
【0010】
第一通信装置3とパケット集約装置4はネットワーク1を介して接続され、第二通信装
置5とパケット集約装置4はネットワーク2を介して接続されており、それぞれ相互に通
信が可能である。
【0011】
図1では、二台の第一通信装置3を図示しているが、これに限らず、複数の第一通信装
置3がネットワーク1を介して接続されても良い。
【0012】
ネットワーク1、及びネットワーク2は、例えばLANなどのローカルな回線であって
も良いし、インターネットや専用回線などの広域な有線通信回線や、3Gなどの広域な無
線通信回線を用いてもよい。
【0013】
パケット集約装置4は第一通信装置3から受信した複数のパケットを一つのパケットに
まとめ(以降、複数のパケットが一つにまとめられたパケットを集約パケットとよぶ)、
時間あたりの通信量を柔軟に変化させながら第二通信装置5に送信する。例えば、集約パ
ケットは、ヘッダと、個々のパケットと、を含み、ヘッダにはパケットの数や、集約パケ
ットの識別番号などの情報を含み。個々のパケットには、第一通信装置3の識別番号や、
パケットサイズ、パケット本体などの情報を含む。
【0014】
また、パケット集約装置4は、第二通信装置5から受信した集約パケットを個々のパケ
ットに分割して、第一通信装置3に送信する。例えば、パケット集約装置4は、集約パケ
ットからヘッダを取り除き、個々のパケットに分割する。
【0015】
第二通信装置5は、パケット集約装置4から受信する集約パケットを個々のパケットに分割し、個々のパケットに対して演算などの必要な処理を行う。さらに、第二通信装置5は、パケット集約装置4から受信した集約パケットに対する応答として、処理した個々のパケットを再度集約して、パケット集約装置4に送信する。
【0016】
図2は、実施形態1に係るパケット集約装置4の機能構成の一例を示す図である。
図2
を用いて、実施形態1に係るパケット集約装置4の機能構成について説明する。パケット
集約装置4は、第一受信部10と、集約用バッファ11と、周期管理部12と、集約部1
3と、第一送信部14と、第二受信部15と、分割部16と、第二送信部17と、通信先
情報取得部18と、通信路情報取得部19と、集約パラメータ決定部20と、を備える。
【0017】
第一受信部10は、第一通信装置3からパケットを受信し、受信したパケットを集約用
バッファ11に格納する。
【0018】
集約用バッファ11は、第一受信部10がパケットを受信した順にパケットを格納する
。集約用バッファ11は、データを順に記録するリスト構造でもよいし、データを循環的
に記録するリングバッファ構造でも良い。
【0019】
周期管理部12は、集約用バッファ11に格納されたパケットを、周期(以降、集約間
隔と呼ぶ)ごとに取り出す。周期管理部12がパケットを取り出す周期間隔や、パケット
の量は、後述する集約パラメータ決定部により決定される。
【0020】
集約部13は、周期管理部12が取り出したパケットを一つのパケットに集約して集約
パケットを生成する。
【0021】
第一送信部14は、集約部13が生成する集約パケットを第二通信装置5へ送信する。
【0022】
第二受信部15は、第一送信部が送信した集約パケットに対する応答である集約パケッ
トを第二通信装置5から受信する。
【0023】
分割部16は、第二受信部15が受信した集約パケットを個々のパケットに分割する。
【0024】
第二送信部17は、分割部16が分割した個々のパケットを、対応する第一通信装置3
にそれぞれ送信する。
【0025】
通信先情報取得部18は、通信先である第二通信装置5の負荷を示す情報である処理負
荷情報を取得する。例えば、通信先情報取得部18は、第二通信装置5における処理負荷
の指標となる受信バッファ溢れの回数を処理負荷情報の一つとして取得する機能を備える
。受信バッファ溢れとは、図示しない第二通信装置5の集約用バッファに許容上限以上の
パケットが送信され、第二通信装置5の集約用バッファにパケットが格納できない状態を
示す。
【0026】
バッファ溢れ回数の取得方法としては、例えば、第二通信装置5側で受信バッファ溢れ
回数をカウントし、集約パケットに受信バッファ溢れ回数の情報を付与してパケット集約
装置4に送信し、第二受信部15が通信先情報取得部18に通知する機能を持たせれば良
い。
【0027】
なお、通信先情報取得部18が取得する情報は必ずしも受信バッファ溢れの回数でなく
とも良く、例えば、図示しない第二通信装置5のCPUの負荷状況、受信バッファの残り
容量、通信の往復時間(ラウンドトリップタイム)など、第二通信装置5の処理負荷の状
況によって変化する値であれば良い。
【0028】
通信路情報取得部19は、ネットワーク2の負荷を示す情報である通信路情報を取得す
る。例えば、通信路情報取得部19は、通信路上でのパケットドロップ回数をカウントす
る機能を備える。ネットワーク2上のルータ等の機器の処理能力の限界の超える数のパケ
ットが到着した場合に、パケットが破棄される(ドロップする)ことがある。つまり、パ
ケットドロップ回数は、パケットドロップ回数が多いと、ネットワーク2に係る負荷が大
きいことを示す指標となる。
【0029】
集約パラメータ決定部20は、通信先情報取得部18と通信路情報取得部19が取得す
る情報から、パケットを集約時の最大パケットサイズと集約間隔を決定する。
【0030】
例えば、集約パケットあたりの最大パケットサイズを小さくすれば、時間あたりに送信
されるデータ量は小さくなる。また、集約間隔が長くなれば時間あたりに送信されるパケ
ットの量は減る。つまり、パケット集約装置4は、通信先の負荷状況や通信路の情報によ
って、時間あたりに送信するデータ量や集約パケット数を柔軟に変化させる。
【0031】
例えば、集約パラメータ決定部20は、受信バッファ溢れの回数が閾値を超える場合に
、最大パケットサイズを設定されていた値より小さくする。一方で、受信バッファ溢れの
回数が閾値未満であれば最大パケットサイズを設定されていた値より大きくする。また、
集約パラメータ決定部20が変更する最大パケットサイズの大きさは、一定値としても良
いし、設定されていた値の10%などとしても良い。
【0032】
集約間隔が一定の場合、以上の方法により時間あたりに到着するデータ量を通信先の負
荷状況によって変化させることができ、処理の輻輳を緩和することができる。
【0033】
また、集約パラメータ決定部20は通信先情報取得部18が取得した情報から、最大パ
ケットサイズではなく、集約間隔を制御しても良い。
【0034】
例えば、受信バッファ溢れの回数が閾値以上であれば集約間隔を長くし、閾値以下であ
れば集約間隔を短くする。集約間隔を長くすれば集約パケットに含まれるパケット数は一
般的には増えるため、ネットワーク2に流れる総パケット数を減らすことができる。これ
により通信先の負荷やルータ、スイッチングハブなどのネットワーク上の機器の負荷を減
らすことが可能となる。
【0035】
また、集約パラメータ決定部20は各パラメータを通信路情報取得部19から得る情報
によって制御しても良い。
【0036】
例えば、通信路情報取得部19に通信路上でのパケットドロップ回数をカウントする機
能を持たせる。パケットドロップ回数をカウントするのに、例えば、確認パケットを利用
する方法を用いても良い。確認パケットは、パケット集約装置4が送信した集約パケット
が第二通信装置5に届いたか否かを確認するために、第二通信装置5がパケット集約装置
4に送信するパケットである。つまり、確認パケットを利用することでパケットがドロッ
プしたか否かを判定することでき、この回数を通信路情報取得部19がカウントすれば良
い。
【0037】
ネットワーク2上のルータ等の機器の処理能力の限界の超える数のパケットが到着した場
合に、パケットドロップが生じることがある。よって、集約パラメータ決定部20は、パ
ケットドロップ回数が閾値以上であれば集約間隔を大きくし、閾値以下であれば集約間隔
を小さくする。
【0038】
先述の通り、集約間隔を長くすればネットワーク2に流れる総パケット数は減るため、
ネットワーク機器の負荷を下げることができる。またパケットドロップの別の要因として
、通信路の品質が低い場合のパケットのデータ化け、すなわちCRC(Cyclic R
edundancy Check)エラーによるものも考えられる。
【0039】
よって、パケットドロップ回数が閾値以上であれば、最大パケットサイズを設定されて
いた値より小さくし、閾値以上であれば最大パケットサイズを設定されていた値より大き
くしても良い。一般に、パケットサイズが小さいほどパケットのドロップ率は下がる。こ
のため最大パケットサイズを小さくしてパケットのドロップ率を下げることで、データの
再送を避け、ネットワークを効率的に利用できる。また、集約パラメータ決定部20が変
更する最大パケットサイズの大きさは、一定値としても良いし、設定されていた値の10
%などとしても良い。
【0040】
次に、
図3〜6を用いて実施形態1に係る集約処理の流れについて説明する。
【0041】
図3は、実施形態1に係るパケット集約装置4がパラメータを決定する際の集約処理の
流れの一例を示す図である。
図3を用いて、パラメータを決定する際の集約処理の流れに
ついて説明する。
【0042】
まず、通信先情報取得部18は、受信バッファ溢れ回数等の第二通信装置5の負荷情報
を取得する(S101)。
【0043】
次に、集約パラメータ決定部20は、通信先情報取得部18が取得した処理負荷情報に
基づいて、処理負荷が閾値を超えているか否か判定する(S102)。集約パラメータ決
定部20は、負荷が閾値を超えている場合(S102、Yes)、集約パケットのパケッ
トサイズの上限を小さくする(S103)。
【0044】
一方、処理負荷が閾値以下の場合(S102、No)、集約パケットのパケットサイズ
の上限を大きくする(S104)。
【0045】
続いて、通信路情報取得部19は、パケットドロップ回数等の通信路情報を取得する(
S105)。
【0046】
集約パラメータ決定部20は、通信路情報取得部19が取得した通信路情報が、閾値を
超える場合(S106、Yes)、集約間隔を長くし(S107)、閾値以下の場合(S
106、No)には集約間隔を短くする(S108)。
【0047】
図3では、S101からS105までで最大パケットサイズを制御し、S105以降の
処理フローでは集約間隔を制御しているが、どちらかのみを制御しても良い。
【0048】
加えて、
図3の最大パケットサイズ制御の流れでは同一の閾値を用いて、負荷が閾値を
超えれば最大パケットサイズを設定されていた値より小さくし、閾値以下の場合には最大
パケットサイズを設定されていた値より大きくしたが、2つの閾値を設け、閾値1以下で
あれば集約間隔を設定されていた値より小さくし、閾値2以上であれば集約間隔を設定さ
れていた値より大きくするのでも良い。同じく集約間隔の制御に関しても2つの閾値を設
けて同様の制御を行っても良い。
【0049】
また、
図3の流れでは第二通信装置5の負荷状況によって最大パケットサイズを制御し
たが、第二通信装置5の負荷状況によって集約間隔を制御しても良い。その場合は負荷が
閾値を超える時には、集約間隔を設定されていた値より長くして一つの集約パケットに含
まれるパケット数を増やし、閾値以下の時には集約間隔を設定されていた値より短くして
、通信のリアルタイム性を上げる。
【0050】
また、負荷が閾値を超えれば最大パケットサイズを設定されていた値より小さくすると
ともに集約間隔を設定されていた値より長くし、閾値以下の場合には最大パケットサイズ
を設定されていた値より大きくするとともに集約間隔を設定されていた値より短くするよ
うに、複数のパラメータを同時に制御してもよい。また、最大パケットサイズの変化幅に
上限、下限を設け、まずは最大パケットサイズを変化させ、最大パケットサイズが上限、
または下限に達して、それ以上変化させられない場合には集約間隔を制御するようにして
も良い。
【0051】
以上のパラメータ決定の処理は一定時間ごとに行っても良いし、前回パラメータ決定後
からの到パケット数が一定値を超えた場合に行っても良いし、通信先負荷もしくは通信路
情報の値が一定値変化した場合に行っても良い。
【0052】
図4は、実施形態1に係るパケット集約装置がパケットを集約する処理の流れの一例を
示す図である。
図4を用いて、パケット集約の流れについて説明する。
【0053】
まず、周期管理部12は、前回の集約実行から、
図3のフローにより決定された集約間
隔分の時間が経過したか否かを判定し、経過していない場合(S110、No)、処理を
S110に戻す。一方、集約間隔分の時間が経過している場合(S110、Yes)、集
約用バッファ11に未送信のパケットが存在するか否かを判定する。
【0054】
未送信のパケットが存在する場合(S111、Yes)、未送信のパケットの内、1つ
のパケットを選択してパケットのサイズを取得し、そのパケットを集約パケットに集約す
ると集約パケットのパケットサイズが
図3の処理フローで決定した最大パケットサイズを
超えるか否かを判定する。最大パケットサイズを超えない場合(S114、No)には、
集約部13は集約パケットに当該パケットを集約し(S114)、処理をS111に戻す
。
【0055】
取り出すパケットは集約用バッファ11にあるパケットのうち最も受信日時が古いパケ
ットを選択しても良いし、パケットの優先度情報がある場合には優先度が高いものから選
択しても良いし、パケットサイズが小さいものから選んでも良いし、複数のクライアント
間のパケット取出し回数が公平になるように選択しても良い。
【0056】
一方で最大パケットサイズを超える場合(S114、Yes)、第一送信部14は第二
通信装置5に集約パケットを送信し(S115)、処理をS110に戻す。
【0057】
また、未送信のパケットがなくなった場合には(S111、No)、集約パケットを送
信し(S115)、処理をS110に戻す。また、集約パケットに一つのパケットも含ま
ない場合には、パケットを送信しなくともよい。
【0058】
図5は、実施形態1に係るパケット集約装置4が第二通信装置5から集約パケットを受
信する際の処理の流れの一例を示した図である。
図5を用いて、第二通信装置5から集約
パケットを受信する際の処理の流れについて説明する。
【0059】
第二受信部15が第二通信装置5から集約パケットを受信する(S120)と、分割部
16は受信した集約パケットを個々のパケットに分割する(S121)。
【0060】
第二送信部17は、分割した個々のパケットから、第一通信装置3に未送信のパケット
の内、1つのパケット取り出して対応する第一通信装置3に送信する(S122)。
【0061】
さらに、未送信のパケットがあるか否かを判定して、未送信のパケットがある場合(S
123、Yes)、処理をS122に戻す。一方で、未送信のパケットがない場合(S1
23、No)、処理を終了させる。
【0062】
図6は、実施形態1に係るパケット集約装置4が第一通信装置3からパケットを受信す
る際の処理の流れの一例を示す図である。
図6を用いて、第一通信装置3からパケットを
受信する際の処理の流れについて説明する。
【0063】
第一受信部10は、パケットを受信する際に、集約用バッファ11に空きがあるか否か
を判定する。集約用バッファ11に空がある場合(S130、Yes)、パケットを受信
し(S131)、受信したパケットを集約用バッファ11に格納し、処理をS130に戻
す。一方で、集約用バッファ11に空きがない場合(S130、No)、処理を再びS1
30に戻す。
【0064】
以上説明したように、実施形態1によれば、パケットの集約間隔や集約パケットの最大
パケットサイズといったパラメータを制御することにより輻輳制御が可能となる。特に、
ルータなどでは機器を通過するパケット数、通信先の端末では受信するパケット数が増え
るほど当該機器の負荷が大きくなる。そこで、1つの集約パケットあたりに含まれるパケ
ット数を増やすことにより、ルータを通過するパケット数や通信先で受け取るパケット数
を減らすことができ、処理負荷の軽減につながる。
【0065】
例えば、ネットワーク2上に存在するルータの処理能力が毎秒100パケットだとする
と、第一通信装置3から集約する前のパケットが毎秒200個のパケットが等間隔で到着
する場合、そのまま200個のパケットを第二通信装置5に送信する場合、ルータの処理
能力を超えてしまい、大きな通信遅延やパケット破棄が発生しうる。
【0066】
一方で、集約間隔を100msとしてパケットの集約を行う場合には、実際に送信する
パケット数は20程度となり、ルータの処理能力の限界を超えなくなる。
【0067】
さらに一方で、集約間隔を長くすると、通信のリアルタイム性は損なわれてしまう。例
えば、集約間隔を200msとすると送信するパケット数は10個になるが、集約による
通信の最大遅延時間は100msから200msに増える。
【0068】
このため、リアルタイム性と輻輳回避を両立するためには、ルータや通信先の処理能力
を超えない範囲で集約間隔を短くする必要がある。
【0069】
実施形態1によれば、通信路上の機器や通信先の負荷情報を参照して、処理限界を超え
ない範囲で集約間隔や集約パケットの最大パケットサイズを動的に制御することができる
。また同様に、第二通信装置5の処理負荷情報を参照して集約間隔や集約パケットの最大
パケットサイズを動的に制御することで、処理の輻輳を防ぐことができる。
【0070】
特に、実際に通信する前の、或いは集約する前のパケット数を減らすことなく、集約パ
ケットに含まれるパケット数を変えることで、ネットワーク機器や通信先の負荷を軽減す
ることが可能となる。
【0071】
(実施形態2)
実施形態1では、集約間隔や最大パケットサイズの値によっては、パケット集約装置4
はネットワーク2の帯域容量以上のデータを送ってしまう可能性がある。その場合には、
回線の混雑を招き、通信時間の大幅な増大を招く可能性がある。
【0072】
時間あたりに送ることができるデータ量が解れば、当該データ量に基づいて集約パラメ
ータを制御し、通信遅延を抑え、通信のリアルタイム性を確保することも可能となる。
【0073】
実施形態2によれば、時間あたりに送信できるデータ量を予測し、当該データ量に基づ
いてパケットの集約間隔、集約パケットの最大パケットサイズ、通信の多重度といった集
約パラメータの決定が可能となる。
【0074】
ここで、多重度について説明する。通信の信頼性、もしくは通信の成功率を増加させる
ために、集約パケットをいくつか複製し、複製した集約パケットをそれぞれ送信する手法
が知られている。以下では、集約パケットを複製することを多重化と称し、複製される集
約パケットの数を多重度と称する。
【0075】
実施形態2では、同一の集約パケットを多重化し、多重化された同一の集約パケットを
複数回連続して送ることにより、通信を高信頼化する構成を前提とする。例えば、通信プ
ロトコルとして広く利用されるUDP(User Datagram Protocol)は、パケット到達確認
の仕組みを有さないため、UDP自体には再送等による通信の高信頼化の仕組みが用意さ
れていない。
【0076】
そこで、同一のパケットを複数回送信することにより、再送によらずとも通信の成功率
を上げることができ、通信を高信頼化することができる。
【0077】
実施形態2では、通信の多重化の仕組みなどを利用して時間あたりに送信できるデータ
量を予測し、各種パラメータを調整する。より具体的には、多重化された集約パケットの
到着間隔から時間あたりに送信できるデータ量を予測する方式などを説明する。
【0078】
なお、説明を分かり易くするために、実施形態1と同一の構成には同一の符号を付し、
重複する説明は適宜省略する。
【0079】
図7は、実施形態2に係るパケット集約装置4の機能構成の一例を示す図である。
図7
を用いて、実施形態2に係るパケット集約装置4の機能構成について説明する。
【0080】
図7に示すパケット集約装置4は、
図2の機能に加えて、多重化検出部200と、帯域
決定部201と、多重化部203と、を備える。
【0081】
多重化部203は集約部13が生成した集約パケットを、集約パラメータ決定部202
が決定した多重度に応じて当該集約パケットを複製(多重化)する機能を有する。例えば
、多重度が2の場合には同じ集約パケットを一つ複製し、第一送信部14に二回渡すこと
で、集約パケットの送信を二回行う。
【0082】
多重化検出部200は、第二通信装置5から集約パケットが到着した際に、当該集約パ
ケットと同一の集約パケットの到着回数をカウントする機能を有する。さらに、多重化検
出部200は集約パケットが初回の到着であれば、当該集約パケットを分割部に渡し、二
回目以降の到着であれば破棄する。
【0083】
帯域決定部201は、ネットワークの帯域幅情報、すなわち、時間あたりに送信するこ
とができるデータ量を決定する機能を備える。当該データ量を決定する方法として、あら
かじめ設定しておいた固定値を帯域幅とする方法や、第二通信装置5から帯域幅情報を受
信して利用する方法などがある。
【0084】
多重化された集約パケットの受信時間情報を用いて帯域予測を行う方法について、
図8
を参照して、説明する。
図8は、実施形態2に係る多重化された集約パケットの受信時間
算出方法の一例を示す図である。
【0085】
帯域決定部201は、受信した集約パケットが初めて受信した集約パケットであれば、
受信時間(
図8のt1)を記録しておく。また、同一の集約パケットの受信が2回目であ
れば、記録しておいた初回の集約パケットの受信時間(
図8のt1)と、2回目のパケッ
トの受信時間(
図8のt2)の差(
図8のT=t2−t1)を求める。
【0086】
さらにパケットのサイズ(X)を取得し、帯域幅Bを、
B=X/T・・・(1)
により求める。これは、帯域幅Bの回線でパケットサイズXのパケットを送るのにかかる
時間Tは、
T=X/B・・・(2)
となる。
【0087】
なお、
図8では、パケット#1の受信完了からパケット#2の受信開始に空き時間があ
る。最初のパケット送信完了直後に次のパケットを送信した場合、かつ、パケットの送信
端末から受信端末まですべて同一の帯域幅のネットワークを経由する場合には、パケット
#1の受信完了直後にパケット#2の受信が開始されるはずである。しかし、経由するネ
ットワークに帯域幅が狭いネットワークがある場合、パケット#1の送信に時間がかかる
。
【0088】
例えば、1KB/秒の帯域幅のネットワークで10KBのデータを送る場合には10秒
時間がかかるが、10KB/秒の帯域幅のネットワークで10KBのデータを送る場合に
は1秒で送信が完了する。
【0089】
ここで、1KB/秒の帯域幅のネットワーク、10KB/秒の帯域幅のネットワークを
この順に経由して10KBのデータを連続して送る場合を考える。またネットワーク間に
はストア&フォワード方式のネットワークスイッチを挟むものとする。
【0090】
このとき、パケットの受信側は10KB/秒のネットワークであり、パケット#1の受
信は1秒で完了する。しかし、1KB/秒のネットワークと10KB/秒のネットワーク
境界にあるルータ等の機器では、一度パケット全体が到着するのを待ってからCRCチェ
ックを行ってパケットを送信する。
【0091】
このルータでのパケット#2の到着待ちに10秒かかるため、受信側でのパケット#2
の受信開始はパケット#1の受信完了から9秒後となる。パケット#2の受信自体は1秒
で完了する。到着間隔T=9秒+1秒=10秒とパケットサイズX=10KBを(1)式
に当てはめると、B=X/T=10KB/10秒=1KB/秒となり、最も帯域幅が狭い
箇所の帯域幅が求められる。
【0092】
ネットワークスイッチの方式がカットスルー方式など、他の方式の場合にはそもそも受
信側での空き時間はほぼ発生しないが、1KB/秒のネットワークを経由するとやはりパ
ケット受信開始から受信完了までは10秒かかるので、同じく(1)式で帯域幅を求めら
れる。
【0093】
初回に到着したパケットと2回目に到着したパケットの時間差を用いて帯域幅を決定し
たが、多重に送信するパケット数が、例えば、3個の場合は1回目に到着したパケットと
3回目に到着したパケットの到着時間差や、2回目に到着したパケットと3回目に到着し
たパケットの到着時間差を用いて帯域幅を求めても良い。
【0094】
また、特定のパケットのみ多重化されている場合や、通信路上でのパケットドロップが
発生した場合には、同一パケットが1回のみ到着する場合もある。これらの場合には、1
回しか到着しないパケットについては帯域幅計算を行わず、2回目に到着したパケットが
ある場合にのみ帯域幅を計算する。
【0095】
集約パラメータ決定部202は、帯域決定部201が決定した帯域幅情報を用いて、パ
ケットの集約間隔、集約パケットの最大パケットサイズ、通信の多重度を決定する機能を
有する。
【0096】
ここで、帯域幅をB、集約間隔をI、最大パケットサイズをS、通信の多重度をMとす
る。このとき時間あたりのパケット集約回数は1/Iとなる。よって、時間あたりの最大
パケット送信量Pは、
P=S×(1/I)×M
となる。時間あたりに送ることができるデータ量はBであるため、B≧P、すなわち、
B≧S×(1/I)×M・・・(3)
である必要がある。なお、帯域幅を使い切るためには、
B=S×(1/I)×M・・・(4)
とすればよい。
【0097】
実施形態2における集約パラメータ決定部20は(3)を満たすように、S、I、Mの
各パラメータを決定する機能を有する。以下では集約パラメータ決定部20のパラメータ
決定方法の機能例をいくつか説明する。
【0098】
集約パラメータ決定部20の最も単純なパラメータ決定方法についてまず説明する。こ
こで(4)式を変形し、
S=B×I/M・・・(5)
とする。例えばI、Mを固定値、Bを帯域決定部201が決定した値とすれば、Sの値が
決定される。またI、Mを固定値とするのではなく、SとMを固定値にして(4)式を満
たすようにIを求めても良いし、SとIを固定値にして(4)式を満たすようにMを決定
する機能を集約パラメータ決定部20に持たせても良い。
【0099】
ただし、この方法ではネットワークの帯域幅と二つの固定値によって、残り一つのパラ
メータが決定される。例えば、ボトルネックが第二通信装置5の処理負荷だった場合には
、最大パケットサイズSや集約時間Iを制御すると輻輳の状況が変わる。
【0100】
ところが、(5)式はI、Mが固定値であり、最大パケットサイズSは第二通信装置5
の処理負荷に依存せず、ネットワークの帯域幅の変化によってのみ変化する。このとき、
第二通信装置5の処理負荷が何らかの要因で上がっている場合に、ネットワークの混雑が
解消し、利用できる帯域幅が広くなったとする。このときには、(5)式ではBが大きく
なり、IとMは固定値であるため、最大パケットサイズSが大きくなってしまう。
【0101】
これは到着する集約パケットに含まれるパケット数が多くなる可能性があることを意味
し、さらに第二通信装置5の負荷が大きくなってしまう可能性がある。すなわち、第二通
信装置5の処理負荷の輻輳やネットワーク上でのパケット破棄を回避するためには、第二
通信装置5やネットワークの負荷状況に応じてパラメータを変化させる必要がある。
【0102】
そこで、集約パラメータ決定部20は通信先情報取得部18が取得した通信先情報、通
信路情報取得部19が取得した通信路情報によってパケットの集約間隔、集約パケットの
最大パケットサイズ、通信の多重度を決定する機能を有しても良い。
【0103】
以下では、集約パラメータ決定部20が第二通信装置5やネットワーク機器の負荷状況
に応じてパラメータを決定する機能について、いくつかの方式を説明する。
【0104】
まず、輻輳を制御する変数Wを導入する方式について説明する。(3)式を変形すると
、B、I、Mは共に正の値のため、
S≦B×I/M・・・(6)
となる。
【0105】
ここで、
S=B×I/M×W・・・(7)
となる変数Wを導入した場合、
B×I/M×W≦B×I/M・・・(8)
より、W≦1であれば、(6)式を満たすこととなる。
【0106】
この値Wを負荷状況、すなわち、通信先情報取得部18が取得した通信先情報や、通信
路情報取得部19が取得した通信路情報によって調節することで、最大パケットサイズS
が負荷状況によって変わることとなる。
【0107】
例えば、TCP/IPの輻輳制御でも用いられる、AIMD(Additive increase/mult
iplicative decrease)などの一般に良く知られた技術を用いて、集約パラメータ決定部
20は通信先情報や通信路情報から変数Wを決定すれば良い。
【0108】
例えば、通信先情報として第二通信装置5の時間あたりのバッファ溢れ発生回数E(t
)、通信路情報として通信路上でのパケットドロップ発生回数D(t)からWを決定する
場合、A(A>0)、B(0<B<1)を定数として、時刻t+1のWの値W(t+1)
は時刻tのWの値、W(t)を用いて、W≦1を満たす範囲で、
W(t+1)=W(t)+A(E(t)<閾値1 かつ D(t)<閾値2の場合)
W(t+1)=W(t)×B(E(t)≧閾値1 もしくは D(t)≧閾値2の場合)
と決定する。
【0109】
さらにこの値を(7)式に代入して最大パケットサイズSを求める。これにより、最大
パケットサイズSは第二通信装置5やネットワーク機器の負荷が大きくなれば小さく、負
荷が小さくなれば大きくなり、輻輳を回避することができる。また、Sを固定の値として
同様の方法で集約間隔Iを求めるようにしても良い。このとき(3)式を変形すると、
I≧S/B×M・・・(9)
となり、
I=S/B×M×W・・・(10)
とすると、W≧1となれば(10)式は(9)式を満たす。
【0110】
ここで第二通信装置の時間あたりのバッファ溢れ発生回数E(t)、通信路情報として
通信路上でのパケットドロップ発生回数D(t)が閾値以上の場合には集約パケットの数
を減らすために、集約間隔を長くする必要がある。すなわち、(9)式よりWの値を大き
くすれば良いので、定数F(F>0)、定数G(G>1)として、
W(t+1)=W(t)−F(E(t)<閾値1 かつ D(t)<閾値2の場合)
W(t+1)=W(t)×G(E(t)≧閾値1 もしくは D(t)≧閾値2の場合)
とWを制御し、(9)式よりIを求めればよい。また、集約度Mを変化させる場合にも同
様の方法を採ればよい。
【0111】
(7)式や(10)式では変更されるパラメータはSもしくはIもしくはMに加えて、
Wのみであった。しかし、輻輳の状況によっては、S、I、Mを独立に制御したい場合が
ある。
【0112】
例えば、ネットワーク品質が問題でパケットドロップが多発する場合にはMを増加させ
ることが有用であり、第二通信装置の処理負荷が問題でバッファ溢れが多発する場合には
、Iを増加させることが有用である。
【0113】
また、ネットワーク機器を通過するパケット数が多すぎて、処理が間に合わずにパケッ
トドロップが多発する場合にはMを減少させることが有用である。
【0114】
さらに、パケットドロップとバッファ溢れが同時に発生した場合にはMとIを同時に変
更したいが、(7)式や(10)式ではそれができない。そこで集約パラメータ決定部2
0が各パラメータを独立に制御する方法についても説明する。
【0115】
まず、
S=B×I/M・・・(11)
とおく。
【0116】
ここで、I(t+1)はI(t)と時間あたりのバッファ溢れ回数E(t)を元に、H
(>0)、J(>1)を定数として、
I(t+1)=I(t)−H(E(t)<閾値1)・・・(12)
I(t+1)=I(t)×J(E(t)≧閾値2)・・・(13)
これにより、時間あたりのバッファ溢れ発生回数E(t)が閾値以上になれば、集約間
隔が長くなり、閾値未満であれば集約間隔が短くなる。
【0117】
一方、通信路の品質によるデータ化けなどによるパケットドロップ回数をP(t)、処
理可能なパケット数を超えたことによるパケットドロップ回数をO(t)とし、時刻t+
1の多重度MとなるM(t+1)はM(t)を用いて、
M(t+1)=M(t)+1(P(t)≧閾値3かつO(t)<閾値4)・・・(14)
M(t+1)=M(t)−1(O(t)≧閾値4かつP(t)<閾値3)・・・(15)
M(t+1)=M(t)(それ以外の場合)・・・(16)
とする。
【0118】
これにより、通信路品質によるパケットドロップが起きた場合には通信成功率を上げる
ために多重度が増え、通信路の機器負荷増大を要因とするパケットドロップが起きた場合
には、通信機器の負荷を下げるために多重度が減るようになる。
【0119】
ただし、多くの場合、通信路の品質によるデータ化けなどによるパケットドロップ回数
と、ネットワーク機器が処理可能なパケット数を超えたことによるパケットドロップ回数
を区別できない場合も多い。
【0120】
その場合にはP(t)とO(t)の合計値のみが解り、その値でM(t)を制御するこ
とになる。ただし、パケットドロップ回数の合計値情報だけだと、M(t)の値を増やせ
ばドロップ率が下がるのか、減らせばドロップ率が下がるのかは判別できない。
【0121】
そこで、パケットドロップ回数が閾値以上であれば、まずはM(t)の値を増やして、
その後パケットドロップ回数が減ればM(t)を増やすように変化させ、パケットドロッ
プ回数が増えた場合にはM(t)を減らすように変化させれば良い。
【0122】
また、I(t)はAIMDを用いて連続値で変化させているが、テーブルを設けて離散
値を取っても良い。例えば、I(t)の取りうる値を、1秒、2秒、4秒のように離散値
のテーブルを用意しておき、I(t)=1秒の時にE(t)≧閾値であれば、I(t+1
)を2秒にする、といった方法である。
【0123】
以上の方法によれば、IとMなど、複数のパラメータを独立して制御できるが、パラメ
ータを変動させられる幅には限界があることが多い。例えば、集約間隔Iは増やすと第二
通信装置5の負荷が下がるが、通信のリアルタイム性は失われる。
【0124】
単純にはパラメータの上限値と下限値を設けてその範囲で制御を行えばよい。しかし調
整可能な範囲で輻輳を回避できない場合も考えられる。
【0125】
例えば、集約間隔Iを上限まで増やしてもなお、輻輳が回避できない場合には、集約パ
ケットに含まれるパケットの数を減らすために、(11)式では従属変数であった最大パ
ケットサイズSを独立変数として制御すれば良い。このために、最大パケットサイズSを
制御するための変数Wを導入し、間接的に最大パケットサイズSを制御することとする。
ここで(7)式と同様に、
S=B×I/M×W・・・(17)
とする。
【0126】
ただし、(7)式と異なり、IやMは変数とする。ここではIが上限に達した場合に、
Wを制御する方法について説明する。W(0)=1(ただし、W(t)の上限は1)とし
、K(K>0)、L(L>1)、N(0<N<1)、R(R>0)を定数として、
I(t+1)=I(t)−K(W(t)=1かつE(t)<閾値1)・・・(18)
I(t+1)=I(t)×L(I(t)<上限値かつE(t)≧閾値2)・・・(19)
W(t+1)=W(t)×N (I(t)=上限値かつE(t)≧閾値6)・・・(20
)
W(t+1)=W(t)+R (W(t)<1かつE(t)<閾値5)・・・(21)
としてI(t+1)とW(t+1)を計算する。
【0127】
ただしWの上限値は1とする。また、Mは(14)‐(16)式を使って制御すればよ
い。これにより、E(t)が閾値以上の場合にはI(t)が上限値に達するまでは(19
)式が適用され、集約間隔を延ばすことにより第二通信装置5の負荷を下げ、上限値に達
した場合には(20)式が適用され、最大パケットサイズSを小さくすることで時間当た
りの第二通信装置5の負荷を下げることができる。
【0128】
逆に、輻輳が解消され、E(t)が閾値未満になった場合にはまず、W(t)の値を初
期値の1に近づくよう(21)式により元に戻し、続いてI(t)が短くなるよう(18
)式を適用する。
【0129】
図9は、実施形態2に係るパケット集約装置4が行う帯域予測とパラメータの決定フロ
ーの一例を示す図である。
図9を用いて、実施形態2に係る帯域予測とパラメータの決定
フローについて説明する。
【0130】
第二受信部15が集約パケットの受信を待ち(S210)、集約パケットを受信すると
、多重化検出部200は当該集約パケットの受信が初回か否かを判断する。初回の場合(
S211、Yes)は到着時間を記録し(S212)、処理をS210に戻す。
【0131】
一方で、当該集約パケットの受信が初回ではない場合(S211、No)、集約パケッ
トの受信が2回目か否かを判定し、2回目でない場合(S213、No)、処理をS21
0に戻す。
【0132】
一方で、集約パケットの受信が2回目の場合(S213、Yes)、S212で記録し
た初回の集約パケット受信時の時間と、現在時間の時間差を計算する(S214)。
【0133】
さらに、集約パケットサイズをS214で計算した時間差で割り、帯域幅を計算する(
S215)。
【0134】
また、
帯域幅B≧最大パケットサイズS×(1/集約間隔I)×多重度M
となるように各パラメータを計算する。この計算方法としては既に説明した方法を用いれ
ば良い。
【0135】
以上説明した実施形態2によれば、ネットワークの帯域幅の範囲内でネットワーク機器
や第二通信装置5の負荷状況に応じて、柔軟に集約パケットの集約間隔、通信の多重度、
最大パケットサイズの調整を行うことができる。
【0136】
特に、通常の輻輳制御は時間あたりに送れるパケット数やデータ量の総量を調整するこ
とで輻輳制御を行うが、実施形態2では、時間あたりの集約パケットに含まれるパケット
やデータの総量を変えることなく、柔軟に複数の集約パラメータを同時に制御しながら輻
輳制御を行うことができる。
【0137】
(実施形態3)
実施形態2では、パケット集約装置4は機器単独でパラメータ決定を行う。一方で、パ
ケット集約装置4が
図10に示す構成のように複数存在するとき、帯域幅の測定結果にば
らつきが生じる場合がある。
図10は、実施形態3に係る伝送処理システムの装置構成の
一例を示す図である。
【0138】
そのとき、例えば、(5)式を用いて最大パケットサイズSを計算すると、パケット集
約装置4の同士間で時間あたりに送信可能なデータ量が変わることとなり、不平等な状態
が発生する。パケット集約装置4の間における通信の平等性を確保するためには、同じ帯
域幅のネットワークであれば各パケット集約装置で計算した帯域幅が同じになるよう、調
停を図る必要がある。
【0139】
そこで、実施形態3では、
図10に示すように複数のパケット集約装置間がネットワー
クで繋がれた環境を想定し、通信の平等性を確保するパケット集約装置について説明する
。
【0140】
図11は、実施形態3に係るパケット集約装置の機能構成の一例を示す図である。
図1
1は、調停部300を備える点で、
図7とは異なる。なお、説明を分かり易くするために
、実施形態1、2と同一の構成には同一の符号を付し、重複する説明は適宜省略する。
【0141】
集約パラメータ決定部20は、実施形態2と同じく、帯域決定部201が決定した帯域
幅情報、通信先情報取得部18が取得した通信先情報、通信路情報取得部19から得た通
信路情報を使って、多重度M、最大パケットサイズS、集約間隔Iと言ったパラメータを
最終的に決定する。
【0142】
実施形態2では、帯域幅情報は帯域決定部201が決定した情報をそのまま利用してい
たが、実施形態3では、集約パラメータ決定部20が帯域決定部201から得た帯域幅情
報を調停部300に渡す。
【0143】
調停部300は、他のパケット集約装置に対して、ネットワーク320を介してその帯
域幅情報を送信する機能を備える。また、調停部300は、ネットワーク320を介して
他のパケット集約装置から各パケット集約装置が計算した帯域幅情報を取得する機能を備
える。
【0144】
調停部300は、他のパケット集約装置から帯域幅情報と、集約パラメータ決定部20
から得た帯域幅情報と、から調停済み帯域幅情報を計算する。調停済み帯域幅情報を計算
する方法としては、算術平均を取っても良いし、帯域幅情報の重みを増やした加重平均や
、中央値を取っても良い。
【0145】
調停部300は、調停済み帯域幅情報を集約パラメータ決定部20に渡す。集約パラメ
ータ決定部20は、帯域決定部201から得た帯域幅情報ではなく、調停済み帯域幅情報
を用いて、多重度M、最大パケットサイズS、集約間隔Iといったパラメータを決定する
機能を備える。
【0146】
計算方法は実施例2で説明した方法を用いて、調停済み帯域幅情報をB’として、
S≦B’×I/M
を満たすように計算すればよい。
【0147】
図12は、実施形態3に係るパケット集約装置が行う帯域予測とパラメータの計算処理
の流れの一例を示す図である。
図12を用いて、実施形態3に係る帯域予測とパラメータ
の計算フローを説明する。
図12は、実施形態2で説明した
図9のフローとは、S310
が加わった点と、S311の処理が変更されている点と、が異なる。S215で帯域決定
部201が帯域幅を計算したのち、調停部300は他のパケット集約装置から受信した帯
域幅情報と帯域決定部201が計算した帯域幅情報を用いて、調停済み帯域幅情報を計算
する(S310)。
【0148】
さらに、集約パラメータ決定部20は、帯域幅ではなく調停済み帯域幅を用いて各パラ
メータを決定する。
図12には明示していないが、S310の段階で調停部300が他の
パケット集約装置に帯域幅情報を送信しても良いし、一定時間ごとに調停部300が他の
パケット集約装置に帯域幅情報を送信しても良い。
【0149】
以上説明した実施形態3によれば、複数のパケット集約装置がある場合に、特定のパケ
ット集約装置ばかりが多くのパケットを送出するような不平等な事態を回避し、通信の平
等性を確保することが可能となる。ここでは、帯域幅情報の平均値をとる方法を説明した
が、集約パラメータ決定部20と調停部300のバリエーションとして、帯域幅情報の代
わりに多重度M、最大パケットサイズS、集約間隔Iといったパラメータを複数のパケッ
ト集約装置で共有し、集約パラメータを直接調停しても良い。
【0150】
(実施形態4)
次に、実施形態1、2、3に係る伝送処理システムを鉄道などの駅で使用される駅務シ
ステムに対応させた実施形態4について、
図13を参照しながら説明する。
【0151】
図13は、実施形態4に係る伝送処理ステムを駅務システムに適応させた構成の一例を
示す図である。
【0152】
なお、説明を分かり易くするために、実施形態1、2、3と同一の構成には同一の符号
を付し、重複する説明は適宜省略する。
【0153】
伝送処理システム100を駅務システム101に適応した場合、
図13に示すように、
例えば、第一通信装置3は改札機50に対応し、第二通信装置5はサーバ51に対応する
。
【0154】
駅務システム101は、改札機50と、パケット集約装置4と、サーバ51と、を備え
る。
【0155】
駅務システム101は、例えば、鉄道などにおける駅の利用者に対して、駅構内への入
出場処理を行うために使用される。
【0156】
改札機50は、利用者により提示される利用媒体を処理する機能を備える。利用媒体は
、例えば、有効期間や利用可能区間等の記録情報が記録される磁気媒体(入場券、普通乗
車券、定期券、回数券、プリペイドカード等)や、無線通信により記録情報を送受信する
無線媒体(ICカード等)、などである。なお、以下の説明においては、利用媒体はIC
カードとして説明する。
【0157】
ICカードは、券売機や改札機など様々な駅務機器と無線でデータの送受信を行うこと
により、種々の処理を受け付けることができるIC(Integrated Circu
it)を有した乗車券である。また、ICカードは、記憶部を有しており、例えば、定期
券、運賃精算のためのSF(Stored Fare)カード、あるいは、運賃精算のた
めの料金後払い方式のカードとしてICカードを使用するための情報を記憶する。例えば
、ICカードは、それぞれ固有の識別番号、利用履歴情報、残額情報、定期券情報、など
を記憶する。
【0158】
改札機50は、利用者により提示されるICカードから、ICカードに記憶されている
、ICカードの識別番号や入出場の状態情報、残額情報、定期券情報などの入出場に必要
な改札処理情報を受信する。改札機50は、例えば、入場時には、識別番号や、入場駅、
入場時間などの情報を改札処理情報としてICカードから受信し、出場時には、識別番号
や、出場駅、出場時間などの情報を改札処理情報としてICカードから受信する。また、
改札機50は、改札処理情報を格納したパケットをパケット集約装置4に送信する。
【0159】
パケット集約装置4は、改札機50より受信した複数のパケットを集約し、サーバ51
に送信する。
【0160】
サーバ51は、パケット集約装置4から受信した集約パケットを個々のパケットに分離
する。サーバ51は、個々のパケット、つまり、改札処理情報に対して演算処理を行う。
【0161】
演算処理は、例えば、入場処理の場合、改札処理情報に含まれる残額が最低運賃を満た
しているか否かの演算処理や、改札処理情報に含まれる識別番号がサーバのネガティブリ
ストに登録されているか否かの演算処理などが行われる。なお、入場処理に関しては、改
札処理情報を受信するだけで、改札処理情報に対して演算処理を行わず、入場ができる処
理を行う構成としても良い。
【0162】
また、演算処理は、例えば、出場処理の場合、入出場駅の情報から運賃を算出する演算
処理や、ICカードから運賃を引き去る演算処理などが行われる。さらに、サーバ51は
、複数の演算処理の結果を複数のパケットを集約し、パケット集約装置4に送信する。
【0163】
パケット集約装置4は、サーバ51から受信した集約パケットを個々のパケットに分離
し、対応する改札機50に送信する。
【0164】
改札機50は、パケット集約装置4から受信したパケットに基づいて、ICカードに改
札制御情報を送信する。例えば、改札機50が有するゲートの開閉処理や、利用者により
提示されているICカードから運賃の引き去り処理結果を書き込むなどの処理行う。
【0165】
以上説明した実施形態4の伝送処理システムを適応した駅務システムによれば、ネット
ワークの混雑状況や通信先の負荷状況によってパケットの集約間隔や最大パケットサイズ
などのパケット集約に関するパラメータを柔軟に変化させることで、パケット通信回数が
急増する通勤ラッシュの時間帯などでも、リアルタイムな制御を可能にする。
【0166】
なお、上記した実施形態1,2,3、4に係る伝送処理システム100は、上記説明し
た駅務システム101への適用に限定されるものではなく、防災システム、水処理システ
ム等の様々な社会インフラシステム、及びビル制御等の様々な産業システムに適用するこ
とができる。また、第一通信装置3は、例えば、プラント、防災システム、交通システム
等の社会インフラシステムのハードウェア、ソフトウェアでも良いし、産業システム、家
電、PC、情報端末等のハードウェア、ソフトウェアでも良い。
【0167】
なお、上記した実施形態1、2、3、4に係る伝送処理システムにおける処理はいくつ
かのソフトウェアによって実行することが可能である。このため、上記処理の手順を実行
するいくつかのプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこれ
らプログラムをパケット集約装置4へインストールして実行するだけで、上記処理を容易
に実現することができる。例えば、パケット集約装置4は、上記プログラムをネットワー
ク経由でダウンロードし、ダウンロードしたプログラムを記憶し、プログラムのインスト
ールを完了することができる。或いは、パケット集約装置4は、上記プログラムを情報記
憶媒体から読み取り、読み取ったプログラムを記憶し、プログラムのインストールを完了
することができる。
【0168】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したも
のであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様
々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、
置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に
含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるもので
ある。