説明

通信経路制御装置及び通信経路制御方法

【課題】パケットの到着順序が送信順序と入れ替わることを低減するように経路を選択することが可能な通信経路制御装置を提供する。
【解決手段】通信経路制御装置100は、隣接装置から受信された第1のパケットの総受信パケット数に対する上記隣接装置の受信割合を上記第1のパケットの宛先と送信元との組合せ毎に計算する受信割合計算部300と、上記第1のパケットの宛先を送信元とし上記第1のパケットの送信元を宛先とする第2のパケットを上記隣接装置に送信する割合である送信割合を上記第1のパケットの上記受信割合に基づいて計算する送信割合計算部400と、上記送信割合に基づいて上記第2のパケットの送信先である隣接装置を選択する経路選択部500と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信経路制御装置及び通信経路制御方法に関し、特に、パケットの到着順序が送信順序と入れ替わることを低減するように経路を選択する通信経路制御装置及び通信経路制御方法に関する。
【背景技術】
【0002】
データを小分けされたパケットに変換して伝送するパケット通信においては、通常マルチパス伝送方式が採用されている。マルチパス環境下においては、ネットワーク上のある装置に処理が集中し、負荷がかかると、その装置を経由するパケットの宛先装置への到着がその装置を経由しない他の経路を伝送されたパケットと比較して遅延してしまうという問題があった。
【0003】
そこで、ネットワークを構成するルータは、受信したパケットを送信する先の隣接装置が複数ある場合には、各装置の負荷が分散されるようにパケットの送信先を選択している。例えば、最も単純な方法としては、ルータがパケットを送信する先の隣接装置の数に応じて送信するパケット数を等分に振分ける方法がある。また、例えば、特許文献1には、ネットワーク上の最初の分岐点において送信順序を制御することにより、各経路における負荷が分散するよう制御している。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】“Dynamic Load Balancing Without Packet Reordering”,ACM SIGCOMM Computer Communication Review,June 2007
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、ネットワーク上において一度分岐させた経路が再び合流することがある。この場合に、例えばルータがパケット数を等分配していると合流点となるルータはパケットが集中するため、やはりパケットの遅延が引き起こされる場合があり、パケットが送信された順序で宛先ホストに到着しないという問題があった。
【0006】
例えば、図15を用いてホストH1からホストH2にデータを伝送する場合を例に説明する。図15に示すネットワークはルータR1〜R7を含んで構成され、それぞれのルータは受信したパケットを送信先の隣接装置の数に応じて等分に分配する。このとき、例えばホストH1から60のパケットがホストH2に向けて送信された場合に、ルータR1は受信した60のパケットをR2及びR3にそれぞれ30ずつ分配する。次に、ルータR2は受信した30のパケットをルータR4及びルータR5にそれぞれ15ずつ分配する。一方ルータR3も受信した30のパケットをルータR5及びルータR6にそれぞれ15ずつ分配する。ここで、ルータR5はルータR1及びルータR2を経由した経路とルータR1及びルータR3を経由した経路の合流点となる。即ち、ルータR4はルータR2から15のパケットを受信し、ルータR6はルータR3から15のパケットを受信するのに対し、ルータR5はルータR2及びルータR3からそれぞれ15のパケットを受信する。
【0007】
このように、ルータR5を経由する経路(例えば、R1−R2−R5−R7、及び、R1−R3−R5−R7)を伝送されたパケットは、ルータR5を経由しない経路(例えば、R1−R2−R4−R7、及び、R1−R3−R6−R7)と比較してルータR5においてパケット処理が集中するため処理遅延が発生し、宛先ホストへの到着が遅延する可能性が高い。そのため、パケットが送信された順序で宛先ホストに到着せずパケットの並び替え処理が必要となる。
【0008】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、パケットの到着順序が送信順序と入れ替わることを低減するように経路を選択することが可能な、新規かつ改良された通信経路制御装置及び通信経路制御方法を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のある観点によれば、隣接装置から受信された第1のパケットの総受信パケット数に対する上記隣接装置の受信割合を上記第1のパケットの宛先と送信元との組合せ毎に計算する受信割合計算部と、上記第1のパケットの宛先を送信元とし上記第1のパケットの送信元を宛先とする第2のパケットを上記隣接装置に送信する割合である送信割合を上記第1のパケットの上記受信割合に基づいて計算する送信割合計算部と、上記送信割合に基づいて上記第2のパケットの送信先である隣接装置を選択する経路選択部と、を有することを特徴とする、通信経路制御装置が提供される。
【0010】
かかる構成によれば、第2のパケット(例えばデータパケット)の送信先は、第1のパケット(例えばACKパケット)の受信割合に基づいて選択される。このため、パケットの経路の合流点においても、送信元装置から同じホップ数である他の装置と処理量が同じになる可能性が非常に高まる。このため、経路選択部は、パケットの到着順序が送信順序と入れ替わることを低減するように経路を選択することが可能となり、パケットが送信された順番で宛先装置に到着する可能性が高まる。
【0011】
また、上記経路選択部が選択した上記第2のパケットの送信先である隣接装置の情報に基づいて、上記隣接装置毎の上記第2のパケットのパケット送信量を計算する送信量記憶部をさらに有し、上記経路選択部は、上記パケット送信量が上記送信割合に近づくように上記第2のパケットの送信先である隣接装置を選択してもよい。
【0012】
上記経路選択部は、上記第1のパケットの送信先の候補となる上記隣接装置の数に応じて隣接装置が受信するパケット数が均等となるように上記第1のパケットの送信先の隣接装置を選択してもよい。
【0013】
また、上記送信割合計算部は、上記送信割合が上記受信割合よりも大きい場合には上記送信割合を減少させ、上記送信割合が上記受信割合よりも小さい場合には上記送信割合を増加させてもよい。
【0014】
また、上記送信割合計算部は、上記送信割合を上記受信割合と同じ値としてもよい。
【0015】
また、上記第1のパケットは、TCPに従った通信におけるACKパケットであり、上記第2のパケットは、TCPに従った通信におけるデータパケットであってもよい。
【0016】
また、上記第1のパケットは、RTCPパケットであり、上記第2のパケットはRTPパケットであってもよい。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、隣接装置から受信したパケットの送信先を制御する通信経路制御装置において、受信割合計算部が、上記隣接装置から受信された第1のパケットの総受信パケット数に対する上記隣接装置の受信割合を上記第1のパケットの宛先と送信元との組合せ毎に計算する受信割合計算ステップと、送信割合計算部が、上記第1のパケットの宛先を送信元とし上記第1のパケットの送信元を宛先とする第2のパケットを上記隣接装置に送信する割合である送信割合を上記第1のパケットの上記受信割合に基づいて計算する送信割合計算ステップと、経路選択部が、上記送信割合に基づいて上記第2のパケットの送信先である隣接装置を選択する経路選択ステップと、を含むことを特徴とする、通信経路制御方法が提供される。
【発明の効果】
【0018】
以上説明したように本発明によれば、パケットの到着順序が送信順序と入れ替わることを低減するようにパケット送信経路を選択することが出来る。
【図面の簡単な説明】
【0019】
【図1】本発明の一実施形態に係る通信経路制御装置を用いたネットワークの初期状態におけるデータパケットの伝送状態の一例を示す説明図である。
【図2】同実施形態に係る通信経路制御装置を用いたネットワークのACKパケットの伝送状態の一例を示す説明図である。
【図3】同実施形態に係る通信経路制御装置を用いたネットワークのデータパケットの伝送状態の一例を示す説明図である。
【図4】同実施形態に係る通信経路制御装置の機能ブロック図である。
【図5】同実施形態に係る通信経路制御装置のルーティングテーブルの一例を示す説明図である。
【図6】同実施形態に係る通信経路制御装置の受信割合情報の一例を示す説明図である。
【図7】同実施形態に係る通信経路制御装置の送信割合情報の一例を示す説明図である。
【図8】同実施形態に係る通信経路制御装置の送信パケット量情報の一例を示す説明図である。
【図9】同実施形態に係る通信経路制御装置のパケット処理の全体の流れを示すフローチャートである。
【図10】同実施形態に係る通信経路制御装置の受信割合計算部の処理の流れを示すフローチャートである。
【図11】同実施形態に係る通信経路制御装置の送信割合計算部の処理の流れを示すフローチャートである。
【図12】同実施形態に係る通信経路制御装置の経路選択部のACKパケットに対する処理の流れを示すフローチャートである。
【図13】同実施形態に係る通信経路制御装置の経路選択部のデータパケットに対する処理の流れを示すフローチャートである。
【図14】同実施形態に係る通信経路制御装置の送信量計算部の処理の流れを示すフローチャートである。
【図15】従来の通信経路制御装置を用いたネットワークの問題点を説明するための説明図である。
【発明を実施するための形態】
【0020】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0021】
<概要>
まず、本発明の一実施形態に係る通信経路制御装置100が実行する制御の理解を容易にするために、通信経路制御装置100を用いたネットワークにおけるパケット伝送の概要について図1〜図3を用いて説明をする。図1は、本発明の一実施形態に係る通信経路制御装置を用いたネットワークの初期状態におけるデータパケットの伝送状態の一例を示す説明図である。また、図2は、同ネットワークのACKパケットの伝送状態の一例を示す説明図である。そして、図3は、同ネットワークのデータパケットの伝送状態の一例を示す説明図である。
【0022】
以下、本実施形態においては、第1のパケットとしてのACKパケットと第2のパケットとしてのデータパケットを用いてTCPに従った通信を例に説明をする。しかし、本実施形態に係る通信経路制御装置を用いて構成されたネットワークにおいて伝送されるパケットはこれに限らない。例えば、ストリーミング通信における第1のパケットとしてのRTCPパケットと第2のパケットとしてのRTPパケットであってもよい。ここで、第1のパケットは、第2のパケットの宛先を送信元とし第2のパケットの送信元を宛先とするパケットである。
【0023】
例えば、図1は、ホストH1からホストH2に対してデータパケットを送信した場合のデータパケットの伝送状態の一例を示している。ここで、ルータR1〜R7は通信経路制御装置100が用いられる。初期状態において通信経路制御装置100は、受信したパケットを送信先となる隣接装置に均等に配分する。従って、ルータR1は60のパケットを受信すると受信したパケットをR2及びR3にそれぞれ30ずつ配分する。次に、ルータR2は受信した30のパケットをルータR4及びルータR5にそれぞれ15ずつ分配する。一方ルータR3も受信した30のパケットをルータR5及びルータR6にそれぞれ15ずつ分配する。ここで、ルータR5はルータR1及びルータR2を経由した経路とルータR1及びルータR3を経由した経路の合流点となる。即ち、ルータR4はルータR2から15のパケットを受信し、ルータR6はルータR3から15のパケットを受信するのに対し、ルータR5はルータR2及びルータR3からそれぞれ15のパケットを受信する。
【0024】
ここでは、上記の従来例と同じようにルータR5において処理が集中するため、ルータR5を経由するパケットの遅延が生じる可能性が高い。そこで、通信経路制御装置100は、ACKパケットの伝送状態に基づいてデータパケットの伝送における経路選択を制御する。次に、図2に示すようにホストH2からホストH1に向けてデータパケットに対するACKパケットが送信される。このとき、各通信経路制御装置100は各送信先となる隣接装置に均等に配分する。具体的には、図2に示すようにACKパケットは配分されて伝送され、H1に到達する。
【0025】
そこで、このACKパケットの伝送状態に基づいてデータパケットの配分を制御した一例が図3に示される。図1と比較してみると分かるように、図3においては例えばルータR2は受信した30のパケットのうちルータR4に対して20のパケットを配分し、ルータR5に対しては10のパケットを配分する。また、ルータR3は受信した30のパケットのうちルータR5に対して10のパケットを配分し、ルータR6に対しては20のパケットを配分する。この場合、ルータR5が受信するパケットは合わせて20であり、ルータR4及びルータR6が受信するパケットも同じく20である。かかるパケット配分方法によれば、例えばルータR5のような経路の合流点における受信パケット数が他の経路上の装置における受信パケット数と等しくなるため、処理遅延を低減することが出来る。
【0026】
以上、本実施形態に係る通信経路制御装置100を用いたネットワークにおけるパケット伝送状態の概要について説明した。次に、このようなパケット伝送を実現するための通信経路制御装置100の構成について説明する。
【0027】
<通信経路制御装置の機能構成>
通信経路制御装置100の機能構成について、図4を用いて説明する。本発明の一実施形態に係る通信経路制御装置100は、通信経路を制御するための装置であり、例えばルータである。通信経路制御装置100は、受信部200、受信割合計算部300、送信割合計算部400、経路選択部500、送信量計算部600、送信部700、及び、記憶部800を主に有する。
【0028】
受信部200は、ネットワークと接続可能であり、ネットワークを介してルータなどの隣接装置からパケットを受信する機能を有する。上述の通り、本実施形態においては、受信部200において受信するパケットは、第1のパケットとしてのACKパケット及び第2のパケットとしてのデータパケットとする。ACKパケット及びデータパケットは、宛先情報及び送信元情報を含む。宛先情報及び送信元情報は、例えば、IPアドレス、ノードID、IPアドレスのプレフィックス、AS(Autonoous System)番号などである。宛先情報及び送信元情報は、宛先又は送信元を識別するための情報であって、宛先又は送信元を識別することが出来れば、宛先情報と送信元情報とが同種のもの同士でなくてもよい。例えば、宛先情報はIPアドレスで示され、送信元情報はノードIDで示されてもよい。受信部200は、この宛先情報及び送信元情報、並びに、パケットを受け渡した隣接装置を識別するためのルータ情報を取得する。そして、受信部200は、受信したパケットがACKパケットであるかデータパケットであるかを判別し、受信したパケットがACKパケットである場合には、ルータ情報、宛先情報、及び、送信元情報を受信割合計算部300に入力する。一方、受信したパケットがデータパケットである場合には、受信部200は、宛先情報、及び、送信元情報を経路選択部500に入力する。
【0029】
受信割合計算部300は、ACKパケットの受信した割合を計算する機能を有する。受信割合計算部300は、受信部200から入力されたルータ情報、宛先情報、及び、送信元情報、並びに、記憶部800の受信割合情報804に基づいて、受信割合を計算する。ここで受信割合とは、ある一定期間に受信したACKパケットのうち、どの隣接装置から受信したACKパケットが何割かという割合をいう。ここである一定期間としたが、受信部200が受信した全てのACKパケットとしてもよい。受信割合計算部300は、受信割合を計算し、記憶部800の受信割合情報804に計算した受信割合を記憶する。また、受信割合は、送信元と宛先との組合せ毎に計算する。
【0030】
送信割合計算部400は、受信したデータパケットをどの隣接装置に何割送信するかの配分を示す送信割合を計算する機能を有する。送信割合計算部400は、受信割合と同様に送信元と宛先との組合せ毎に送信割合を計算する。ここで送信割合計算部400は、受信したデータパケットの宛先を送信元とし、当該データパケットの送信元を宛先とするACKパケットについての受信割合に基づいて送信割合を計算する。例えば、図1の例では、H2からH1に対して送信されたACKパケットについての受信割合に基づいて、H1からH2に対して送信されるデータパケットの送信割合が計算される。また、未だ受信割合に基づいて送信割合が計算されていない場合には、所定の初期値に従って送信されてもよい。例えば、隣接ルータの数で等分するように初期設定されていてもよい。
【0031】
ここで、送信割合計算部400の送信割合の更新方法について具体例を挙げる。ルータ1が隣接ルータ2から受信した送信元Pと宛先Qとの組合せについての受信割合をα1,2とする。そして、ルータ1が隣接ルータ2へ送信する受信割合α1,2に対応する組合せ、即ち送信元Q、宛先Pとなる組合せの送信割合をβ1,2とする。送信割合計算部400は、隣接ルータ2からの受信割合α1,2と比較して隣接ルータ2への送信割合β1,2が大きい場合には、隣接ルータ2への送信割合β1,2を減少させる。そして、送信割合計算部400は、隣接ルータ2からの受信割合α1,2と比較して隣接ルータ2の送信割合β1,2が小さい場合には、隣接ルータ2への送信割合β1,2を増加させる。
【0032】
送信割合計算部400の送信割合の更新方法は、例えば、次の式で表すことが出来る。
β1,2(t+1)=α1,2(t)・・・(数式1)
或いは、次の式で表されるようにしてもよい。
【0033】
【数1】

【0034】
ここで、iはルータ1の隣接ルータを表す。
【0035】
経路選択部500は、受信されたパケットの種類に応じてパケットをどの隣接ルータに送信するかを決定する機能を有する。経路選択部500は、受信されたパケットがACKパケットである場合には、記憶部800のルーティングテーブル802を参照して、ルーティングテーブルに従って送信先の隣接ルータを決定する。一方、受信されたパケットがデータパケットである場合には、経路選択部500は、受信部200から入力された宛先情報及び送信元情報、記憶部800のパケット送信量情報808、並びに、送信割合に基づいて、送信先の隣接ルータを決定する。具体的には、経路選択部500は、受信部200から入力された宛先情報及び送信元情報に該当する組合せについてのパケット送信量を記憶部800から参照する。そして、同じく受信部200から入力された宛先情報及び送信元情報からその組合せについての送信割合を送信割合情報806を参照して取得する。経路選択部500は、パケット送信量が送信割合に近づくように送信先の隣接ルータを決定する。
【0036】
送信量計算部600は、経路選択部500により決定された隣接ルータの識別情報、受信部から入力された宛先情報及び送信元情報に基づいて、隣接ルータ毎、及び、宛先情報と送信元情報との組合せ毎のデータパケットの送信量を計算し、記憶部800のパケット送信量情報808を更新する機能を有する。
【0037】
送信部700は、経路選択部500において決定された送信先の隣接ルータに受信されたパケットを送信する機能を有する。
【0038】
記憶部800は、ルーティングテーブル802、受信割合情報804、送信割合情報806、及び、パケット送信量情報808を主に有する。以下、図1のネットワーク構成におけるルータR2を例にとって、記憶部800に記憶される各情報の一例について、図5〜図8を用いて説明する。
【0039】
図5は、図1におけるルータR2のルーティングテーブル802の一例を示す説明図である。ルーティングテーブル802は、宛先8022、メトリック8024、及びネクストホップノード8026の情報を主に含む。ここで、メトリック8024は、その送信先を選択した場合の宛先ノードまでの最短ホップ数である。
【0040】
図6は、図1におけるルータR2の受信割合情報804の一例を示す説明図である。受信割合情報804は、送信元8042、宛先8044、ルータ8046、及び受信割合8048の情報を主に含む。受信割合情報804を参照すると、送信元8042及び宛先8044の組合せに対する受信したパケットのうち、ルータ8046の欄に記載されている隣接ルータからどの受信割合で受信したかを示す受信割合8048を知ることが出来る。すなわち、H2からH1に向けて送信されたACKパケットは、ルータR2において、ルータR4からそのパケット数の全体量の2/3、ルータR5からそのパケット数の全体量の1/3を受信している。
【0041】
図7は、図1におけるルータR2の送信割合情報806の一例を示す説明図である。送信割合情報804は、送信元8062、宛先8064、ルータ8066、及び送信割合8068を主に含む。送信割合情報806は、データパケットの宛先が送信元であり、データパケットの送信元が宛先であるACKパケットの受信割合情報804に基づいて計算された送信割合に関する情報である。
【0042】
図8は、図1におけるルータR2のパケット送信量情報808の一例を示す説明図である。パケット送信量情報808は、送信元8082、宛先8084、ルータ8086、及び、パケット送信量8088を主に含む。パケット送信量情報808は、ある一定期間における当該ルータがルータ8086に記載のルータに対してある送信元と宛先との組合せのパケットを送信した数量を示す情報である。
【0043】
<通信経路制御装置の動作例>
次に、通信経路制御装置100の動作の一例について、図9〜図14を用いて説明する。図9は、通信経路制御装置100の全体の動作の一例を示すフローチャートである。図10〜図14は、図9のフローチャートのサブフローチャートである。以下、図9の流れに従って全体の動作フローについて説明しながら、図9の各ステップにおいてサブフローがある場合には、適宜サブフローチャートを参照して説明をする。
【0044】
まず、図9を参照すると、通信経路制御装置100は、受信部200において隣接ルータからパケットを受信する(S102)。受信部200は、次に受信したパケットがデータパケットであるかACKパケットであるかを判別し、それと共に、ルータ識別情報、送信元情報、及び、宛先情報を取得する(S104)。
【0045】
そして、受信したパケットがACKパケットであった場合には、通信経路制御装置100は、受信割合計算部300において受信割合計算処理を実行する(S106)。ここで、受信割合計算処理の詳細について図10を用いて説明する。受信割合計算部300は、まず受信部200からルータ識別情報、送信元情報、及び、宛先情報を受け取る。そして、受信割合計算部300は、記憶部800から送信元情報と宛先情報との組合せに対応する受信割合情報を参照し(S304)、参照した受信割合情報に、この時点において受信したパケットの情報を加えた受信割合を計算して記憶部800の受信割合情報804を更新する(S306)。
【0046】
以上説明したステップS106の受信割合計算処理が終わると、次に、通信経路制御装置100は、送信割合計算部400において送信割合計算処理を実行する(S108)。ここで、送信割合計算処理の詳細について図11を用いて説明する。送信割合計算部400は、まず受信部200から送信元情報、及び、宛先情報を受け取る(S402)。そして、送信割合計算部400は、記憶部800から送信割合情報806を参照し(S404)、上記の送信割合の更新方法に従って送信割合を計算し、記憶部800の送信割合情報806を更新する(S406)。
【0047】
以上説明したステップS108の送信割合計算処理が終わると、次に、通信経路制御装置100は、経路選択部500において、ACKパケット経路選択処理を実行する(S110)。ここで、ACKパケット経路選択処理の詳細について図12を用いて説明する。まず経路選択部500は、受信したパケットがACKパケットである場合にはルーティングテーブルを参照し(S502)、ルーティングテーブルに基づいて送信先である隣接ルータを決定する(S504)。ここで、例えば図2のネットワーク構成におけるルータR2の図5に示すルーティングテーブル802の例を参照すると、ルータR2が送信元がH2であり宛先がH1であるACKパケットを受信した場合には、ネクストホップノードとして記述されたR1にACKパケットを送信することが分かる。そして、経路選択部500が送信先である隣接ルータを決定すると、経路選択部500は、送信部700に選択した隣接ルータの情報を伝える(S506)。
【0048】
以上説明したステップS110のACKパケット経路選択処理が終わると、次に、通信経路制御装置100は、送信部700において、受信したパケットを送信する(S112)。ここで、送信部700は、ステップS110のACKパケット経路選択処理において選択された隣接ルータにパケットを送信する。
【0049】
一方、ステップS104において、受信されたパケットがデータパケットであると判別された場合には、通信経路制御装置100は、経路選択部500において、データパケット経路選択処理を実行する(S114)。ここで、データパケット経路選択処理の詳細について図13を用いて説明する。まず経路選択部500は、受信部200から送信元情報、及び、宛先情報を受け取る(S512)。そして、記憶部800から、受け取った送信元情報及び宛先情報の組合せに対応するデータパケットの隣接ルータ毎のパケット送信量と送信割合とを取得する(S514)。次に経路選択部500は、取得したパケット送信量の隣接ルータ毎の送信割合が、取得した送信割合の値に近づくように送信先である隣接ルータを決定する(S516)。例えば、パケット送信量情報806が図8に示す状態であり、そのときの送信割合情報が図7に示す送信割合情報806であったとする。この場合に、経路選択部500は、その時点までの間にR4に送信したパケット数が19でありR5に送信したパケット数が10であることを知ることが出来る。このとき、このパケット数の割合が図7に示す割合に近づくためには、データパケットをR4に送信すればよいことが分かる。このようにして送信先である隣接ルータを決定すると、経路選択部500は、送信部700及び送信量計算部600に決定したルータの識別情報を伝える(S518)。
【0050】
以上説明したステップS114のデータパケット経路選択処理が終わると、次に、通信経路制御装置100は、送信量計算部600においてパケット送信量計算処理を実行する(S116)。ここで、パケット送信量計算処理の詳細について図14を用いて説明する。まず、送信量計算部600は、経路選択部500から選択された送信先の隣接ルータの識別情報を、また、受信部200から送信元情報及び宛先情報を受け取る(S602)。そして、受け取った送信元情報及び宛先情報の組合せに対応するパケット送信量を記憶部800から取得する(S604)。そして、経路選択部500から受け取った隣接ルータの識別情報を用いてパケット送信量情報を更新する。具体的には、先ほど図7〜図8の例を用いて説明した場合について説明すると、経路選択部500は隣接ルータR4を送信先として選択したため、送信元8082がH1、宛先8084がH2、ルータ8086がR4であるデータのパケット送信量8088を「20」に更新する(S606)。
【0051】
以上説明したステップS116のパケット送信量計算処理が終わると、次に、通信経路制御装置100は、送信部700において、受信したパケットを送信する(S112)。ここで、送信部700は、ステップS114のデータパケット経路選択処理において選択された隣接ルータにパケットを送信する。
【0052】
<適用例>
次に、図1〜図3に示したネットワーク構成における具体的なルータの挙動について説明する。上記にて図1〜図3を用いて本実施形態に係る通信経路制御装置100の概要について説明したが、ここでは、同じく図1〜図3を用いて、各時点における通信経路制御装置100の動作とあわせて説明をする。
【0053】
まず、図1〜図3に示されるネットワークは、ルータR1〜ルータR7を含んでおり、ホストH1及びホストH2が接続されている。ルータR1〜ルータR7は、それぞれ、本実施形態に係る通信経路制御装置100である。ホストH1を送信元とし、ホストH2を宛先とするパケットは、ルータR1〜ルータR7のいずれかを経由してホストH2に送信される。また、ホストH2を送信元とし、ホストH1を宛先とするパケットも同様にルータR1〜ルータR7のいずれかを経由してホストH1に送信される。
【0054】
ここでは、ホストH1からホストH2に対してデータパケットを送信する場合について説明する。ACKパケットは、データパケット1つについて1つ返される。ルータR1〜ルータR7は、ACKパケットの受信割合からデータパケットの送信割合を決定するが、ACKパケット及び送信割合の決定前におけるデータパケットについては、ホップ数に基づいた最短経路を採用し、同一ホップ数の経路が複数ある場合には、パケットを送信先となる隣接ルータの数で等分して送信する。例えば、ホストH2からホストH1に対して3つのACKパケットが送信された場合には、R7は、R4,R5,R6にそれぞれ1つずつパケットを送信する。
【0055】
ルータR1〜ルータR7のルーティングテーブルは、既に完成しているものとする。例えば、ルータR2のルーティングテーブルは図5に示される。上述の通り、メトリックは、ホップ数である。そして、各ルータの受信割合は、上述の通りルータRiが隣接ルータRjから受信したH2を送信元H1を宛先とするACKパケットの受信割合は、αi,j(1≦i,j≦7)と記述される。受信割合の初期値は、αi,j=0(1≦i,j≦7)とする。ルータR2について受信割合の初期値は、α2,4=α2,5=0である。
【0056】
同様に、各ルータの送信割合は、ルータRiが隣接ルータRjへ送信する、ホストH1を送信元、ホストH2を宛先とするデータパケットの送信割合はβi,j(1≦i,j≦7)と記述される。上述の通り、初期状態において、経路選択部500は、同一ホップ数の経路が複数ある場合には、パケットを送信先となる隣接ルータの数で等分して送信する。このため、ルータR2について送信割合の初期値は、β2,4=β2,5=0.5である。
【0057】
同様に、各ルータの送信パケット量は、ルータRiが隣接ルータRjに送信する、ホストH1を送信元、ホストH2を宛先とするデータパケットの送信量をxi,j(1≦i,j≦7)とし、その初期値はxi,j=0である。例えば、ルータR2について送信量の初期値はx2,4=x2,5=0である。
【0058】
ルータR2について、図1〜図3に示すように、ホストH1からホストH2に対してデータパケットを送信し、ホストH2からホストH1に対してACKパケットを返す例を説明するために、各パラメータの初期値について説明した。ルータR2は、この他にも、ホストH2からホストH1に対してデータパケットを送信するための送信割合β2,1、ホストH1からホストH2に対してACKパケットを返す際の受信割合α2,1、及び、ホストH2からホストH1に対して送信されるデータパケットについてのパケット送信量x2,1を記憶部800に保持しているが、次に説明する動作はこれらのパラメータを必要としないため、説明を省略する。
【0059】
上述のような初期条件において、ホストH1がホストH2に対してデータパケットを60送信した場合の、ネットワーク中の各リンクを伝送されるパケット数が図1に示される。ここでは、上述の通り、経路選択部500は、ホップ数に基づいた最短経路を採用し、同一ホップ数の経路が複数ある場合には、パケットを送信先となる隣接ルータの数で等分して送信する。そして、60のデータパケットを受信したホストH2は、ホストH1に対してACKパケットを返す。このときのネットワーク中の各リンクを伝送されるACKパケットの数が図2に示される。
【0060】
このときのルータR2における処理を以下に説明する。まず、ルータR2はルータR4からACKパケットを受信したとする。ルータR2の受信部200は、ルータR4から受信したパケットをACKパケットであると判別する。そして、R4から受信したパケットであることを受信割合計算部300に伝える。即ち、受信部200は、R4のルータ識別情報を受信割合計算部300に入力する。また、パケットのIPアドレスなどから送信元情報はH2であり、宛先情報はH1であることがわかるため、この2つの情報を受信割合計算部300、送信割合計算部400、経路選択部500、及び、送信量計算部600に入力する。
【0061】
受信割合計算部300は、このとき、ルータ情報としてR4、送信元情報としてH2、宛先情報としてH1を受信部200から取得する。そして、受信割合計算部300は、記憶部800を参照して、送信元をH2、宛先をH1とする受信割合を取得する。この時点において、受信割合は初期値となっているため、受信割合α2,4=α2,5=0である。受信割合計算部300は、α2,4=α2,5=0の値と、R4から1パケット受信した情報とを用いて、受信割合をα2,4=1、α2,5=0と更新する。
【0062】
送信割合計算部400は、送信元情報としてH2、宛先情報としてH1を受信部200から取得する。そして、記憶部800を参照して、送信元をH2,宛先をH1とする受信割合α2,4=1、α2,5=0と送信元をH1,宛先をH2とする送信割合β2,4=β2,5=0.5とを取得する。そして、送信割合の更新方法に従って送信割合を対応する受信割合に基づいて更新する。ここでは、β2,4=1、β2,5=0と更新される。
【0063】
経路選択部500は、記憶部800の図5に示すルーティングテーブル802を参照する。そして、受信したパケットは宛先がH1であるため、ネクストホップノード8026を参照してR1が送信先の隣接ルータであると決定する。そして決定した送信先の情報を送信部700に入力する。送信部700は、経路選択部500から入力された送信先の情報に従って、R1にパケットを送信する。
【0064】
ルータR2は、受信したパケット毎に上記の処理を繰り返す。その結果、ルータR2は、最終的にルータR4から送信されたパケットを20、ルータR5から送信されたパケットを10の計30のパケットを処理してR1に送信する。従って、受信割合は、α2,4=2/3、α2,5=1/3、送信割合は、β2,4=2/3、β2,5=1/3となる。このときの受信割合及び送信割合の状態を図6及び図7にそれぞれ示す。
【0065】
以上説明したようにACKパケットの受信割合に基づいて、データパケットの送信割合が更新された後、H1からH2に対してデータパケットが送信された場合のネットワーク中の各リンクを伝送されるパケット数が図3に示される。
【0066】
このときルータR2がルータR1から初めて受信したデータパケットに対する処理を以下に説明する。まず、ルータR2の受信部200は、R1から受信したパケットをデータパケットであると判別する。そして、パケットのIPアドレスなどから送信元情報はH1であり、宛先情報はH2であることがわかるため、受信部200は、この2つの情報を経路選択部500、及び、送信量計算部600に入力する。
【0067】
経路選択部500は、送信元情報としてH1、宛先情報としてH2を受信部200から受け取る。そして、記憶部800を参照して送信元がH1、宛先がH2であるパケット送信量x2,4=x2,5=0、及び、送信元がH1、宛先がH2である送信割合β2,4=2/3、β2,5=1/3を取得する。ここで、経路選択部500は、これらの情報に基づいて、パケット送信量が送信割合に近づくように送信先をR4と決定する。経路選択部500は、決定した送信先である隣接ルータR4を送信部700及び送信量計算部600に入力する。送信部700は、入力された送信先の情報に基づいてR4にパケットを送信する。
【0068】
送信量計算部600は、送信元情報H1、宛先情報H2を受信部200から受け取り、経路選択部500からルータ情報R4を受け取る。そして、送信量計算部600は、記憶部800から送信元をH1、宛先をH2とするパケット送信量x2,4=x2,5=0を取得する。そして、経路選択部500から受け取ったルータ情報に基づいて、パケット送信量を更新する。ここでは、送信量計算部600は、パケット送信量をx2,4=1、x2,5=0と更新する。
【0069】
<効果の例>
以上説明したように、本実施形態に係る通信経路制御装置100を用いたネットワークにおいては、データパケットの処理量が、送信元ホストH1からみたときに同一ホップ数になるルータの集合であるR2及びR3、並びに、R4,R5,及びR6のパケット処理量がそれぞれ均等に分散される。このため、例えば図1の例におけるルータR5のように複数の経路の合流地点となるルータにおいても、同一ホップ数における他のルータと処理量がほぼ等しくなるため、一部のルータのパケット処理量が多いために引き起こされるパケット遅延に起因してパケットの到着順序がパケットの送信順序と異なる順序となることを回避することが出来る。
【0070】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【0071】
尚、本明細書において説明した構成は、ネットワークを構成して利用されるもの一般に適用される。例えば、P2P(Peer to Peer)の仮想ネットワークの構造や無線アドホックネットワークに適用することも出来る。
【0072】
また、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的に又は個別的に実行される処理をも含む。また時系列的に処理されるステップでも、場合によっては適宜順序を変更することが可能であることは言うまでもない。
【符号の説明】
【0073】
100 通信経路制御装置
200 受信部
300 受信割合計算部
400 送信割合計算部
500 経路選択部
600 送信量計算部
700 送信部
800 記憶部
802 ルーティングテーブル
804 受信割合情報
806 送信割合情報
808 パケット送信量情報

【特許請求の範囲】
【請求項1】
隣接装置から受信された第1のパケットの総受信パケット数に対する前記隣接装置の受信割合を前記第1のパケットの宛先と送信元との組合せ毎に計算する受信割合計算部と、
前記第1のパケットの宛先を送信元とし前記第1のパケットの送信元を宛先とする第2のパケットを前記隣接装置に送信する割合である送信割合を前記第1のパケットの前記受信割合に基づいて計算する送信割合計算部と、
前記送信割合に基づいて前記第2のパケットの送信先である隣接装置を選択する経路選択部と、
を備えることを特徴とする、通信経路制御装置。
【請求項2】
前記経路選択部が選択した前記第2のパケットの送信先である隣接装置の情報に基づいて、前記隣接装置毎の前記第2のパケットのパケット送信量を計算する送信量記憶部をさらに備え、
前記経路選択部は、前記パケット送信量が前記送信割合に近づくように前記第2のパケットの送信先である隣接装置を選択することを特徴とする、請求項1に記載の通信経路制御装置。
【請求項3】
前記経路選択部は、前記第1のパケットの送信先の候補となる前記隣接装置の数に応じて隣接装置が受信するパケット数が均等となるように前記第1のパケットの送信先の隣接装置を選択することを特徴とする、請求項1又は2のいずれかに記載の通信経路制御装置。
【請求項4】
前記送信割合計算部は、前記送信割合が前記受信割合よりも大きい場合には前記送信割合を減少させ、前記送信割合が前記受信割合よりも小さい場合には前記送信割合を増加させることを特徴とする、請求項1〜3のいずれか1項に記載の通信経路制御装置。
【請求項5】
前記送信割合計算部は、前記送信割合を前記受信割合と同じ値とすることを特徴とする、請求項1〜3のいずれか1項に記載の通信経路制御装置。
【請求項6】
前記第1のパケットは、TCPに従った通信におけるACKパケットであり、前記第2のパケットは、TCPに従った通信におけるデータパケットであることを特徴とする、請求項1〜5のいずれか1項に記載の通信経路制御装置。
【請求項7】
前記第1のパケットは、RTCPパケットであり、前記第2のパケットはRTPパケットであることを特徴とする、請求項1〜5のいずれか1項に記載の通信経路制御装置。
【請求項8】
隣接装置から受信したパケットの送信先を制御する通信経路制御装置において、
受信割合計算部が、前記隣接装置から受信された第1のパケットの総受信パケット数に対する前記隣接装置の受信割合を前記第1のパケットの宛先と送信元との組合せ毎に計算する受信割合計算ステップと、
送信割合計算部が、前記第1のパケットの宛先を送信元とし前記第1のパケットの送信元を宛先とする第2のパケットを前記隣接装置に送信する割合である送信割合を前記第1のパケットの前記受信割合に基づいて計算する送信割合計算ステップと、
経路選択部が、前記送信割合に基づいて前記第2のパケットの送信先である隣接装置を選択する経路選択ステップと、
を含むことを特徴とする、通信経路制御方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2011−109471(P2011−109471A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−263186(P2009−263186)
【出願日】平成21年11月18日(2009.11.18)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成21年度独立行政法人情報通信研究機構「ダイナミックネットワーク技術の研究開発、課題ア スケーラブルネットワーク構造最適化に関する技術」委託研究、産業活力再生特別措置法第30条の適用を受けるもの)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】