端末間の通信を高速化する通信装置および通信システム
【課題】TCPを用いた通信では、送信帯域がRTTと廃棄率に大きく左右されるため、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、契約帯域を大幅に下回る送信帯域しか得られない、という課題があった。
【解決手段】装置からネットワークを介して他の装置に送信されるパケットに関する帯域をインターバル毎に管理し、管理される第一のインターバルの再送帯域又は廃棄帯域と、第一のインターバルよりも前のインターバルである第二のインターバルにおける制御帯域とに基づいて、前記制御帯域を変更する帯域制御部と、制御帯域に従って、パケットをネットワークに送出する送信部と、を有することにより、通信速度に対するRTT(Round Trip Time)及びパケット廃棄率の影響を抑制し、通信の高速化を実現する。
【解決手段】装置からネットワークを介して他の装置に送信されるパケットに関する帯域をインターバル毎に管理し、管理される第一のインターバルの再送帯域又は廃棄帯域と、第一のインターバルよりも前のインターバルである第二のインターバルにおける制御帯域とに基づいて、前記制御帯域を変更する帯域制御部と、制御帯域に従って、パケットをネットワークに送出する送信部と、を有することにより、通信速度に対するRTT(Round Trip Time)及びパケット廃棄率の影響を抑制し、通信の高速化を実現する。
【発明の詳細な説明】
【技術分野】
【0001】
(参照による取り込み)
本出願は、2009年9月16日に出願された日本特許出願第2009−214015号の優先権を主張し、その内容を参照することにより本出願に取り込む。
【0002】
本発明は、通信装置および通信システムに関し、特に、帯域制御を行うネットワークに接続される装置に関する。
【背景技術】
【0003】
グローバル拠点間の通信網として、IP−VPN技術等を用いたWAN(Wide Area Network)を用いることが、一般的になっている。
【0004】
ある拠点にある端末が、別の海外の拠点にある端末と通信する場合は、自拠点LANと国内WANを接続する回線と、国内WANと海外WANを接続する回線と、海外WANと別拠点LANを接続する回線と、を経由して通信が行われる。これらの回線は、契約帯域によって、使用可能な帯域幅が制限されている。
【0005】
端末間の通信では、TCPを用いるのが一般的である。TCP通信では、送信端末が送ったデータに対して、受信端末が受信済みデータ量を送信端末にフィードバック通知する。送信端末は、フィードバック通知される受信済みデータ量が増加しなくなると、廃棄検出と判定する。
【0006】
さらに、送信端末は、ウィンドウサイズ(受信したことを受信端末から通知されなくても送信可能なデータサイズ)と呼ばれるパラメータを管理しており、RTT(Round Trip Time)や廃棄検出の有無に応じて、ウィンドウサイズを変化させる。
【0007】
RTT増加時や廃棄検出時にネットワークが混雑していると判定して、ウィンドウサイズを減少させることで、送信帯域を間接的に減少させて、ネットワークの混雑を回避する。また、RTT減少時や廃棄が無い時にネットワークが空いていると判定して、ウィンドウサイズを増加させることで、送信帯域を間接的に増加させて、ネットワークの回線帯域を有効利用する。以上のように、TCPを用いた通信では、送信帯域がRTTと廃棄率に大きく左右される。
【0008】
TCPを用いた通信と同様の技術として、ATMのABRを用いた通信もある。本通信では、受信端末から送信端末へ、RTTや廃棄以外に、受信帯域がフィードバック通知される。
【0009】
RTTと廃棄検出以外に、コネクション数を用いて帯域を直接制御する技術もある。(特許文献1)
【先行技術文献】
【特許文献】
【0010】
【特許文献1】WO05/00666号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
TCPを用いた通信では、送信帯域がRTTと廃棄率に大きく左右されるため、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、契約帯域を大幅に下回る送信帯域しか得られない。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本願発明のネットワークに接続される装置の一態様では、装置からネットワークを介して他の装置に送信されるパケットに関する帯域をインターバル毎に管理し、管理される第一のインターバルの再送帯域又は廃棄帯域と、第一のインターバルよりも前のインターバルである第二のインターバルにおける制御帯域とに基づいて、前記制御帯域を変更する帯域制御部と、制御帯域に従って、パケットをネットワークに送出する送信部と、を有することにより、通信速度に対するRTT(Round Trip Time)及びパケット廃棄率の影響を抑制し、通信の高速化を実現する、態様とする。
【発明の効果】
【0013】
上述の本発明の態様により、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する。
本発明の他の目的、特徴及び利点は添付図面に関する以下の本発明の実施例の記載から明らかになるであろう。
【図面の簡単な説明】
【0014】
【図1】再送帯域に基づいて帯域制御する装置100のブロック図。
【図2】TX経路・シェーパテーブル106のフォーマット図。
【図3】シェーパ毎の送信・再送帯域テーブル114のフォーマット図。
【図4】シェーパ毎の送信・再送帯域テーブル114を更新するフローチャート図。
【図5】受信履歴テーブル114のフォーマットと、受信済箇所と未受信箇所とSEQ番号の関係を示した図。
【図6A】受信履歴テーブル114を更新するフローチャート図。
【図6B】受信履歴テーブル114を更新するフローチャート図。
【図7】送信側装置と受信側装置で、データパケットと、受信済・未受信箇所通知パケットが送受信されるシーケンスの一例を示した図。
【図8】再送帯域に基づいて帯域制御する装置をソフトウェアにて実現する装置800のブロック図。
【図9】廃棄帯域に基づいて帯域制御する装置900のブロック図。
【図10】RX経路・シェーパテーブル903のフォーマット図。
【図11】シェーパ毎の送信・廃棄帯域テーブル902のフォーマット図。
【図12】再送中コネクション数を計測し、再送中コネクション数に基づいて帯域制御する装置1200のブロック図。
【図13】コネクション有無テーブル1202のフォーマット図。
【図14】コネクション数加算判定部1201が、コネクション有無テーブル1202記載の値を用いて行う処理のフローチャート図。
【図15】シェーパ毎の送信・再送中コネクション数テーブル1203のフォーマット図。
【図16A】通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置1600のブロック図。
【図16B】通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置1600のブロック図。
【図16C】通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置1600のブロック図。
【図17】シェーパ毎の受信側総帯域・コネクション数テーブル1601のフォーマット図。
【図18】フィードバック通知先テーブル1604のフォーマット図。
【図19】RX総帯域・コネクション数テーブル1606のフォーマット図。
【図20】RX総帯域・コネクション数テーブル1606を更新するフローチャート図。
【図21】帯域制御の説明図。
【図22】送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、パケット送信中のコネクション数と、1コネクションあたりの契約帯域と、に基づいて帯域制御する装置2200のブロック図。
【図23】帯域制御の説明図。
【図24】送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット送信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置から通知された他装置のパケット送信中のコネクション数と、に基づいて帯域制御する装置2400のブロック図。
【図25】通信経路毎の自装置と他装置の送信中コネクション数テーブル2401のフォーマット図。
【図26】帯域制御の説明図。
【図27A】受信側端末から送信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット受信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置のパケット受信中のコネクション数と、に基づいて帯域制御する装置2700のブロック図。
【図27B】受信側端末から送信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット受信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置のパケット受信中のコネクション数と、に基づいて帯域制御する装置2700のブロック図。
【図27C】受信側端末から送信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット受信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置のパケット受信中のコネクション数と、に基づいて帯域制御する装置2700のブロック図。
【図28】通信経路毎の自装置と他装置の受信中コネクション数テーブル2701のフォーマット図。
【図29】帯域制御の説明図。
【図30】LANとWANの接続部に設置され、通信経路上の経由回線の契約帯域・データ送信中コネクション数・データ受信中コネクション数を一括計測し、計測結果を、同一LANに接続した他の装置に一方的に通知し、他のWANに接続した他の装置との間では相互通知しあう装置3000のブロック図。
【図31】帯域制御の説明図。
【図32】装置2400/2700を複数個、スイッチHUBに接続して1つの装置3200にした説明図。
【図33】代表装置と他の装置との間で、帯域制御に用いるコネクション数の情報を通知しあうシステム図。
【図34】帯域制御に用いるコネクション数の情報を、ループ状に通知しあうシステム図。
【図35】装置が入出力するパケットデータのフォーマット図。
【発明を実施するための形態】
【0015】
本発明を実施するための代表的な形態は、下記のとおりである。
まず、受信側端末に接続した装置が、送信側端末に接続した装置に対して廃棄箇所を全てフィードバック通知する手段と、送信側端末に接続した装置がフィードバック通知された廃棄箇所を再送する手段と、送信側端末に接続した装置が再送帯域・廃棄帯域に基づいて送信帯域を制御する手段を備える態様とした。この態様により、TCPを用いた通信では、送信帯域がRTTと廃棄率に大きく左右されるため、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、契約帯域を大幅に下回る送信帯域しか得られない、という課題を解決する。本態様により、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する効果がある。本態様の詳細は、実施例1ないし3を中心に後述する。
【0016】
別の態様として、送信側端末に接続した装置が、廃棄箇所を再送中のコネクション数をリアルタイムに計測する手段を備え、再送コネクション数に基づいて送信帯域を制御する手段を備える態様とする。この態様により、RTTと廃棄検出以外に、コネクション数を用いて帯域を直接制御する技術では、実際のコネクションの通信状況をリアルタイムに反映させるのが難しく、廃棄検出時に何割のコネクションに廃棄が生じているのかが分からないため、帯域をどの程度、削減すればよいのか分からない、という課題を解決する。本態様により把握される、再送コネクション数に基づいて帯域制御する手段により、廃棄検出時に何割のコネクションに廃棄が生じているのかが分かり、帯域をどの程度、削減すればよいのか明確になる効果がある。本態様の詳細は、実施例4を中心に後述する。
【0017】
更に、別の態様として、端末に接続した装置が、経由回線(自拠点LANと国内WANを接続する回線、国内WANと海外WANを接続する回線、海外WANと別拠点LANを接続する回線、など)の契約帯域・コネクション数、などのリアルタイムな使用状況に基づいて、帯域制御する手段を備える、態様とする。この態様により、TCPを用いた通信では、RTTと廃棄検出に基づいて、送信端末と受信端末の間の通信環境を予測しながら通信を行うだけで、通信環境を直接反映する手段がないため、通信環境によって、得られる通信品質にばらつきがある、という課題を解決する。本態様により把握される回線の使用状況に基づいて、帯域制御する手段により、通信環境にかかわらず、一定の通信品質が得られる効果がある。詳細は、実施例5ないし12で説明する。
【0018】
また、別の態様として、通信相手から通知されたデータ受信中のコネクション数に基づいて送信帯域を制御する手段を設ける態様とする。詳細は、実施例5を中心に詳述する(実施例5)。別の態様として、通信経路上の経由回線の契約帯域・データ送信中コネクション数・1コネクションあたり帯域に基づいて帯域制御する手段を設ける態様とする。詳細は、実施例6で説明する。別の態様として、複数装置間の相互通知により集約した通信経路上の経由回線の契約帯域・データ送信中コネクション数・1コネクションあたり帯域に基づいて帯域制御する手段を設ける態様とする。詳細は、実施例7で説明する。別の態様として、複数装置間の相互通知により集約した通信経路上の経由回線の契約帯域・データ受信中コネクション数・1コネクションあたり帯域に基づいて帯域制御する手段を設ける態様とする。詳細は、実施例8で説明する。他の本発明の態様は、以下に述べる種々の実施例で説明される。
【0019】
以下、本発明の態様を詳細に説明するべく、帯域制御を行う装置やパケット処理を行う装置の構成や、当該装置がネットワークを介して接続されることにより構成されるシステムの詳細について実施例を用いて述べる。また、複数の通信端末の間に複数設置される装置が、通信を高速化するために、通信端末が別の通信端末と通信を行う際の帯域制御、再送制御処理を中心に、以下の実施例を用いて述べる。
【実施例1】
【0020】
図1、図2、図3、図4、図5、図6、図7を用いて、再送帯域に基づいて帯域制御する装置100の実施例を示す。
【0021】
図1には、装置100のブロック図をあらわす。装置100は、端末101が送信するデータを受け取り、他の装置100′へむけてパケットを送信するTX部102と、他の装置100′からのパケットを受信して、端末101へデータを出力するRX部103から構成される。
【0022】
TX部102は、送信パケット蓄積部104と、出力先判定部105と、TX経路・シェーパテーブル106と、TXパケット再送部107と、振分部108と、シェーパ109と、受信・未受信箇所通知パケット向けバッファ110と、タイマ値格納部111と、インターバル値格納部112と、送信帯域制御部113と、シェーパ毎の送信・再送帯域テーブル114と、トークン更新部115と、送信パケット出力制御部116、とから構成される。
【0023】
RX部103は、RXパケット再送部117と、受信履歴更新部118と、受信履歴テーブル119と、他の装置100′から受信したデータパケットを受信履歴更新部118へ、受信・未受信箇所通知パケットをTX側パケット再送部107に振り分けるRX側振分部120と、受信パケット蓄積部121と、受信パケット出力制御部122、とから構成される。
【0024】
端末101が送信するデータパケットは、送信パケット蓄積部104に蓄積され、出力先判定部105と振分部108へ入力される。
【0025】
送信データ蓄積部104に蓄積されたデータパケットは、装置101′から受信した受信箇所通知パケットを、RX側振分部120経由でTXパケット再送部107が受信したときに消去され、未受信箇所通知パケットをTXパケット再送部107が受信したときに読み出され、再送される。
【0026】
図35には、装置が入出力するパケットデータのフォーマットを表す。
【0027】
パケットデータは、Len3500と、Proto3501と、SIP3502と、DIP3503と、Sport3504と、Dport3505と、SSEQ3506と、DSEQ3507と、Flag3508と、Others3509と、Payload3510と、DMAC3511と、SMAC3512と、Type3513とを含む。
【0028】
Len3500は、IP層のパケット長を格納する。Proto3501は、トランスポート層のプロトコルを識別するための識別番号を格納する。SIP3502は、送信元アドレス、すなわち、送信側の端末のアドレスである送信元IPアドレスを格納する。DIP3503は、宛先アドレス、すなわち、受信側の端末のアドレスである宛先IPアドレスを格納する。Sport3504は、TCPの送信元ポートを格納する。Dport3505は、TCPの宛先ポートを格納する。SSEQ3506は、送信元シーケンス番号を格納する。DSEQ3507は、宛先シーケンス番号を格納する。Flag3508はTCPフラグ番号を格納する。Others3509は、その他のIP/TCPヘッダデータを格納する。Payload3510は、パケットヘッダ以外のデータを格納する。DMAC3511は、物理層の宛先MACアドレスを格納する。SMAC3512は、物理層の送信元MACアドレスを格納する。Type3513は、パケットデータのタイプを表す。なお、MACとは、Media Access Control Frameのことをあらわし、物理層を流れるパケットのことをMACフレームと呼ぶ。
【0029】
図2に、TX経路・シェーパテーブル106のフォーマットを示す。TX経路・シェーパテーブル106は、TX経路(送信元IP/サブネット、宛先IP/サブネット、送信元ポート、宛先ポート)、シェーパを格納するエントリ複数個から構成される。
【0030】
シェーパ判定部105は、TX経路・シェーパテーブル106から、パケットヘッダと一致する経路を持つエントリを読み出し、エントリ記載のシェーパを振分部108に通知する。
【0031】
振分部108は、通知に基づいて、入力パケットを、シェーパA(109A)、シェーパB(109B)、シェーパC(109C)、のいずれかに振り分ける。更に、パケットヘッダ記載のパケット長をビット値に変換し、シェーパと送信/再送ビットを対応付けて、送信帯域制御部113に通知する。
【0032】
送信帯域制御部113は、振分部108から通知されたシェーパと送信/再送ビットに基づき、シェーパ毎の送信・再送帯域テーブル114を更新し、更新結果に基づいてシェーパ毎の制御帯域を決定する。更に、トークン更新部115に、制御帯域に応じたトークン加算値を通知する。
【0033】
図3に、シェーパ毎の送信・再送帯域テーブル114のフォーマットを示す。シェーパ毎に、基準時間と、制御帯域(基準時間前)と、制御帯域(基準時間後)と、基準時間以前の統計データ(送信帯域、再送帯域)と、基準時間以降の統計データ(送信ビット積算値、再送ビット積算値)と、を格納するエントリ複数個から構成される。
【0034】
図1の送信帯域制御部113は、振分部108から通知されたシェーパと一致するエントリの基準時間以降の統計データ(送信ビット積算値、再送ビット積算値)に、通知された送信・再送ビットを加算する。
【0035】
更に、送信帯域制御部113は図4に示すフローチャートに従い、シェーパ毎の送信・再送帯域テーブル114を更新する。
【0036】
送信帯域制御部113はシェーパ毎の送信・再送帯域テーブル114の各エントリを読み出し(ステップ401)、タイマ値111と基準時間の差がインターバル値112よりも大きいか、または、再送ビット積算値が0よりも大きいか、の判定を行い、判定条件を満たすまで繰り返す(ステップ402)。判定条件を満たしたら、送信帯域=送信ビット積算値/インターバル+送信帯域×(インターバル−タイマ値+基準時間)/インターバル、再送帯域=再送ビット積算値/インターバル+再送帯域×(インターバル−タイマ値+基準時間)/インターバル、基準時間=タイマ値、送信ビット積算値=0、再送ビット積算値=0となるようにエントリを更新する(ステップ403)。更に、更新済み再送帯域が0よりも大きいか否かを判定する(ステップ405)。大きいと判定した場合は、制御帯域(基準時間後)が制御帯域(基準時間前)よりも小さくなるように(例えば、制御帯域(基準時間後)=制御帯域(基準時間前)−再送帯域)、再送帯域に基づいて制御帯域(基準時間後)を変更する(ステップ406)。小さいと判定した場合は、制御帯域(基準時間後)が制御帯域(基準時間後)よりも大きくなるように制御帯域を変更する(ステップ407)。
【0037】
送信帯域制御部113は、上記の変更済み制御帯域(基準時間後)に基づいて計算した加算トークンをトークン制御部115に通知する。
【0038】
トークン制御部115は、トークンバケツアルゴリズムに基づいて、送信帯域制御部113から通知された加算トークンを、周期的にトークンバケツに加算する。更に、トークン積算値が一定量を上回る場合に、出力可能として、送信パケット出力制御部116に通知する。
【0039】
送信パケット出力制御部116は、パケットが蓄積されていて、出力可能なバッファからパケットを読み出して出力する。シェーパA(109A)、シェーパB(109B)、シェーパC(109C)、のいずれかから出力した場合は、シェーパと出力パケット長をトークン制御部115に通知する。トークン制御部115は、通知されたシェーパのトークンバケツから、通知パケット長に相当するトークンを減算する。
【0040】
装置100′が装置100から受信したデータパケットは、RX側振分部120′によって、受信履歴更新部118′に入力される。
【0041】
受信履歴更新部118′は、受信したデータパケットと、受信履歴テーブル119′の内容に基づいて、図6のフローチャートに示す処理を行う。
【0042】
図5には、受信履歴テーブル114′のフォーマットと、受信済箇所510と未受信箇所520とSEQ番号0、8、9、12、14との関係を表す。
【0043】
受信履歴テーブル114′は、送信元IPと、宛先IPと、送信元ポートと、宛先ポートと、受信済箇所の最後尾SEQと、未受信箇所のSEQと、廃棄検出時間と、から構成される。SEQは、受信データの先頭からのバイト数を表す。
【0044】
受信履歴更新部118′は、受信パケットヘッダ記載値と一致するエントリを、受信履歴記録テーブル119′から読み出す(ステップ601)。受信パケットが含むデータの最後尾SEQが、エントリ記載の受信済箇所の最後尾SEQよりも大きいか否かを判定する(ステップ602)。大きい場合は、受信パケットが含むデータの先頭SEQが、エントリ記載の受信済箇所の最後尾SEQと一致するか否かを判定する(ステップ603)。一致する場合は、エントリに未受信箇所のSEQが記載されていないか否かを判定する(ステップ604)。記載されていない場合は、受信済み箇所の最後尾SEQ=受信パケットが含むデータの後尾SEQ、のように、エントリを更新し、受信パケットを受信パケット出力制御部122′へと出力する。更に、受信パケットが含むデータのSEQ範囲を受信箇所とする通知パケットを、バッファ110′へと出力する(ステップ605)。
【0045】
図6のステップ604において、否と判定された場合は、受信済み箇所の最後尾SEQ=受信パケットが含むデータの後尾SEQ、のように、エントリを更新し、受信パケットを受信パケット蓄積部121′へと書き込む。更に受信パケットが含むデータのSEQ範囲を受信箇所とする通知パケットを、バッファ110′へと出力する(ステップ606)。
【0046】
図6のステップ603において、否と判定された場合は、エントリの未受信箇所のSEQに受信パケットのSEQ範囲を追記し、受信済み箇所の最後尾SEQ=受信パケットの後尾SEQ、となるようにエントリを更新して、受信パケットを受信パケット蓄積部121へと書き込む。更に、受信済箇所の最後尾SEQ〜受信パケットの先頭SEQを未受信箇所とし、受信パケットのSEQ範囲を受信箇所とする通知パケットをバッファ110′へ出力する(ステップ607)。
【0047】
図6のステップ602において、否と判定された場合は、受信パケットが含むデータのSEQ範囲が、エントリ記載の未受信箇所の最初のSEQ範囲と一致するか否かを判定する(ステップ608)。
【0048】
図6のステップ608において、一致すると判定された場合は、未受信箇所のSEQから、受信パケットのSEQ範囲を削除するように、エントリの更新を行い、受信パケットとエントリをRXパケット再送部117′へ出力する。更に、受信パケットが含むデータのSEQ範囲を受信箇所とする通知パケットを、受信・未受信箇所通知パケット向けバッファ110′へと出力する(ステップ609)。
【0049】
図6のステップ608において、否と判定された場合は、未受信箇所のSEQから、受信パケットのSEQ範囲を削除するように、エントリの更新を行い、受信パケットを受信パケット蓄積部121′へと書き込む。更に、受信パケットのSEQ範囲より前の未受信SEQ範囲を未受信箇所とし、受信パケットのSEQ範囲を受信箇所とする通知パケットを、バッファ110′へ出力する(ステップ610)。
【0050】
RXパケット再送部117′は、受信履歴更新部118′から受け取った受信パケットとエントリに基づいて、受信パケットに連続して後続するパケットを受信パケット蓄積部121′から読み出して、受信パケットと、読み出したパケットを受信パケット出力制御部122′に出力する。
【0051】
図7には、送信側装置と受信側装置で、データパケットと、受信済・未受信箇所通知パケットが送受信されるシーケンスの一例を示す。
【0052】
実線がデータパケット、破線が通知パケットを表す。実線の出発点近くに記載されている値が、データパケットのSEQ範囲、破線の出発点近くに記載されている値が、受信済・未受信箇所のSEQ範囲を表す。実線の出発点近くに記載されている値の、更に左側には、送信側の送信帯域の遷移を示す。
【0053】
以上により、再送帯域に基づいて帯域制御する装置が実現される。これにより、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する効果が得られる。
【実施例2】
【0054】
図8を用いて、再送帯域に基づいて帯域制御する装置をソフトウェアにて実現する装置800の実施例を示す。
【0055】
図8には、装置800のブロック図をあらわす。装置800は、演算部823と記憶部824から構成される。
【0056】
図1における、TX部102、RX部103、シェーパ判定部105、TXパケット再送部107、振分部108、送信帯域制御部113、トークン制御部115、送信パケット出力制御部116、RXパケット再送部117、受信履歴更新部118、RX側振分部120、受信パケット出力制御部122、はモジュール化されて、TXモジュール802、RXモジュール803、シェーパ判定モジュール805、TXパケット再送モジュール807、振分モジュール808、送信帯域制御モジュール813、トークン制御モジュール815、送信パケット出力制御モジュール816、RXパケット再送モジュール817、受信履歴更新モジュール818、RX側振分モジュール820、受信パケット出力制御モジュール822として、演算部823にて動作する。
【0057】
また、図1における、送信データ蓄積メモリ104、TX経路・シェーパテーブル106、シェーパ109、受信・未受信箇所通知パケット向けバッファ110、タイマ値格納部111、インターバル値格納部112、シェーパ毎の送信・再送帯域テーブル114、受信履歴テーブル119、受信パケット蓄積部121、は全て、記憶部824におかれる。
【0058】
以上により、ソフトウェア実装した装置により再送帯域に基づいて帯域制御する装置が実現される。これにより、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する効果が得られる。なお、各モジュールは、装置900の不揮発性記憶媒体に格納されるプログラムを読み出すことにより構成される。
【実施例3】
【0059】
図9、図10、図11を用いて、廃棄帯域に基づいて帯域制御する装置900の実施例を示す。
【0060】
図9には、装置900のブロック図をあらわす。本装置900は、実施例1に記載の装置100をベースにして、シェーパ毎の送信・再送帯域テーブル114を、シェーパ毎の送信・廃棄帯域の記録テーブル902に置き換え、廃棄ビット通知部901と、RX経路・シェーパテーブル903を、新たに追加することで、構成される。
【0061】
図10には、RX経路・シェーパテーブル903のフォーマットを表す。RX経路(送信元IP/サブネット、宛先IP/サブネット、送信元ポート、宛先ポート)と、シェーパ、を格納するエントリ複数個から構成される。RX経路は、経路・シェーパテーブル106の送信元IP/サブネットと宛先IP/サブネットを交換し、送信元ポートと宛先ポートを交換した値となっている。
【0062】
図11には、シェーパ毎の送信・廃棄帯域テーブル902のフォーマットを表す。シェーパ毎に、基準時間と、制御帯域(基準時間前)と、制御帯域(基準時間後)と、基準時間以前の統計データ(送信帯域、廃棄帯域)と、基準時間以降の統計データ(送信ビット積算値、廃棄ビット積算値)とを格納するエントリ複数個から構成される。
【0063】
廃棄ビット通知部901は、未受信箇所通知パケットを受信すると、記載されている未受信箇所の総ビット長を求めて、廃棄ビット長とする。更に、パケットヘッダ記載値とRX経路が一致するエントリを、RX経路・シェーパテーブル903から読み出して、エントリ記載のシェーパと、求めた廃棄ビット長を、送信帯域制御部113へと通知する。
【0064】
送信帯域制御部113は、図4に記載のシェーパ毎の送信・再送帯域テーブル114の更新方法と同様の手順で、シェーパ毎の送信域・廃棄帯域テーブル902を更新する。更に、上記の変更済み制御帯域(基準時間後)に基づいて計算した加算トークンをトークン制御部115に通知する。
【0065】
以上により、廃棄帯域に基づいて帯域制御する装置が実現される。これにより、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する効果が得られる。
【実施例4】
【0066】
図12、図13、図14、図15を用いて、再送中コネクション数を計測し、再送中コネクション数に基づいて帯域制御する装置1200の実施例を示す。
【0067】
図12には、装置1200のブロック図をあらわす。本装置1200は、実施例1に記載の装置100をベースにして、コネクション数加算判定部1201と、コネクション有無テーブル1202と、シェーパ毎の送信・再送中コネクション数テーブル1203と、を追加することで構成できる。
【0068】
図13には、コネクション有無テーブル1202のフォーマットを表す。送信元IP、宛先IP、送信元ポート、宛先ポート、再送中(Yes=1, No=0)、基準時間、を格納するエントリ複数個から構成される。
【0069】
図14には、コネクション数加算判定部1201が、コネクション有無テーブル1202記載の値を用いて行う処理のフローチャート図を示す。
【0070】
コネクション数加算判定部1201は、パケットヘッダ記載値と一致するエントリを、コネクション有無テーブル1202から読み出し(ステップ1401)、パケットヘッダ記載値と一致するエントリが有るか、無いかを判定する(ステップ1402)。無い場合は、新規エントリを、送信元IP=パケットの送信元IP、宛先IP=パケットの宛先IP、送信元ポート=パケットの宛先ポート、宛先ポート=パケットの宛先ポート、基準時間=タイマ値、として作成する。更に、シェーパ判定部の指定シェーパのコネクション数に1を加算するように送信帯域制御部113に通知する(ステップ1405)。ステップ1402において、一致するエントリが有る場合は、タイマ値111と基準時間の差がインターバル値112よりも大きいか、または、エントリ記載の再送=0かつ入力されたパケットが再送パケットであるか否かを判定し、いずれも満たさない場合は、ループする(ステップ1403)。いずれかを満たした場合は、タイマ値111と基準時間の差がインターバル値112よりも大きい場合に、基準時間=タイマ値、へとエントリを更新し、再送パケットの場合に、再送中=1、通常パケットの場合に、再送中=0、へとエントリを更新する。更に、通常パケットの場合は、シェーパ判定部の指定シェーパの送信コネクション数に1を加算するように、再送パケットの場合は、シェーパ判定部の指定シェーパの再送コネクション数に1を加算するように、送信帯域制御部113に通知する(ステップ1404)。
【0071】
図15には、シェーパ毎の送信・再送中コネクション数テーブル1203のフォーマットを表す。シェーパ毎に、基準時間と、基準時間以前の統計データ(送信中コネクション数、再送中コネクション数)と、基準時間以降の統計データ(送信中コネクション数積算値、再送中コネクション数積算値)とを格納するエントリから構成される。
【0072】
送信帯域制御部113は、図4に記載のシェーパ毎の送信・再送帯域の記録テーブル114と同様の手順で、シェーパ毎の送信・再送中コネクション数テーブル1203を更新する。
【0073】
送信帯域制御部113は、シェーパ毎の送信・再送中コネクション数テーブル1203を見ることで、廃棄検出時の帯域削減量を判定する。
【0074】
以上により、廃棄検出時に何割のコネクションに廃棄が生じているのかが分かり、帯域の削減幅を最適化される効果がある。
【実施例5】
【0075】
図16、図17、図18、図19、図20、図21を用いて、通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置1600の実施例を示す。
【0076】
図16には、装置1600のブロック図をあらわす。本装置1600は、実施例4に記載の装置1200をベースにして、RX経路・シェーパテーブル903をTX部102に追加し、通信相手の受信帯域とデータ受信中のコネクション数を記録するシェーパ毎の受信側総帯域・コネクション数テーブル1601と、受信側総帯域・コネクション数通知部1602と、フィードバック通知パケット生成部1603と、フィードバック通知先テーブル1604とを、TX部102へ新たに追加し、コネクション数加算判定部1201と、コネクション有無テーブル1202とをRX部103に追加し、RX情報通知部1605と、受信帯域とパケット受信中のコネクション数を記録するRX総帯域・コネクション数テーブル1606と、を新たにRX部103に追加することで、構成される。
【0077】
図17には、シェーパ毎の受信側総帯域・コネクション数テーブル1601のフォーマットを表す。
【0078】
シェーパ毎の受信側総帯域・コネクション数テーブル1601は、シェーパ毎に、通信相手側で計測された総受信帯域とパケット受信中の総コネクション数を格納するエントリ複数個から構成される。
【0079】
図18には、フィードバック通知先テーブル1604のフォーマットを表す。
【0080】
フィードバック通知先テーブル1604は、フィードバック通知の対象が端末である場合は宛先IPアドレスを格納し、フィードバック通知の対象が拠点である場合は宛先IPアドレスと共にサブネットも格納するエントリ複数個から構成される。
【0081】
図19には、RX総帯域・コネクション数テーブル1606のフォーマットを表す。
【0082】
RX総帯域・コネクション数テーブル1606は、基準時間と、基準時間以前の統計データ(RX総帯域、RX総コネクション数)と、基準時間以降の統計データ(RX総ビット積算値、RX総コネクション数積算値)と、を格納する。
【0083】
RX情報通知部1605は、コネクション数加算判定部1201からのコネクション数加算通知と、RX側振分部120から入力されるデータパケットのヘッダ記載のパケット長を用いて、RX総帯域・コネクション数テーブル1606の、基準時間以降の統計データ(RX総ビット積算値、RX総コネクション数積算値)を加算する。コネクション数加算通知がくると、RX総コネクション数積算値を1加算し、パケット長はビット長に変換して、RX総ビット積算値に加算する。
【0084】
更に、RX情報通知部1605は図20に示すフローチャートを用いて、RX総帯域・コネクション数テーブル1606の更新を行う。
【0085】
RX情報通知部1605はタイマ値111と基準時間の差が、インターバル値112よりも大きくなるか否かの判定を、満たすまで繰り返し実行する(ステップ2001)。満たしたら、基準時間以前のRX総帯域=基準時間以降のRX総ビット積算値/(タイマ値−基準時間)、基準時間以前のRX総コネクション数=基準時間以降のRX総コネクション数積算値、基準時間=タイマ値、基準時間以降のRX総ビット積算値帯域=0、基準時間以降のRX総コネクション数積算値=0、となるように、テーブルを更新する(ステップ2002)。
【0086】
更新した基準時間以前のRX総帯域・総コネクション数は、フィードバック通知パケット生成部1603へと出力される。
【0087】
フィードバック通知パケット生成部1603は、通知されたRX総帯域・総コネクション数を含む通知パケットを、フィードバック通知先テーブル1604に記載された全ての宛先に対して生成し、出力する。
【0088】
逆に、装置1600が、RX総帯域・総コネクション数を含む通知パケットを、通信相手から受け取ると、RX側振分部120を経由して、受信側総帯域・コネクション数通知部1602へと出力する。
【0089】
受信側総帯域・コネクション数通知部1602は、パケットヘッダ記載値と一致するエントリを、RX経路・シェーパテーブル903から読み出し、エントリ記載のシェーパと対応づけて、通知パケット記載の受信側総帯域・総コネクション数を、送信帯域制御部113へと通知する。
【0090】
送信帯域制御部113は、通知されたシェーパの受信側総帯域・総コネクション数を、シェーパ毎の受信側総帯域・総コネクション数テーブル1601へと記載する。
【0091】
送信帯域制御部113は、シェーパ毎の受信側総帯域・総コネクション数テーブル1601に記載の受信側総帯域・総コネクション数と、シェーパ毎の送信・再送中コネクション数テーブル1203に記載の送信コネクション数と、を用いて、例えば、図21に示すように帯域を制御する。
【0092】
図21において、送信端末2101から受信端末2103へ向かってデータ送信中の通信コネクション数が2、送信端末2102から受信端末2103へ向かってデータ送信中の通信コネクション数が1、だったとする。受信端末2103に接続されている装置1600Cにおいて計測されたRX総帯域が12、RX総コネクション数が3だったとすると、装置1600Cから、送信端末2101/2102に接続されている装置1600A/Bに向けて、RX総帯域:12・RX総コネクション数:3の情報がフィードバック通知される。装置1600Aは、フィードバック通知されたRX総帯域:12・RX総コネクション数:3の情報から、1コネクションあたりの帯域を4と求め、装置1600Aのシェーパ毎の送信・再送中コネクション数テーブル1203Aに記載の送信コネクション数:2に基づき、送信帯域を4×2=8へと調整する。装置1600Bは、フィードバック通知されたRX総帯域:12・RX総コネクション数:3の情報から、1コネクションあたりの帯域を4と求め、装置1600Bのシェーパ毎の送信・再送中コネクション数テーブル1203Aに記載の送信中コネクション数:1に基づき、送信帯域を4×1=4へと調整する。
【0093】
以上記載の、通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置により、端末間で公平な帯域割り当てが実現され、端末によらず、一定の通信品質が実現される。
【実施例6】
【0094】
図22、図23を用いて、送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、パケット送信中のコネクション数と、1コネクションあたりの契約帯域と、に基づいて帯域制御する装置2200の実施例を示す。
【0095】
図22には、装置2200のブロック図をあらわす。本装置2200は、実施例4の装置1200をベースにして、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202と、シェーパ出力パケットの通信経路毎の経由回線テーブル2203と、を新たに追加することで、構成される。
【0096】
図23には、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202と、シェーパ出力パケットの通信経路毎の経由回テーブル2203のフォーマットを示す。更に、契約帯域10.0の回線X,契約帯域8.0の回線Y,契約帯域3.0の回線Zがあり、装置2200のシェーパAの出力パケットの通信経路に回線Xと回線Yがあり、シェーパBの出力パケットの通信経路に回線Xと回線Zがあるケースにおいて、装置2200の送信帯域制御部113の帯域制御方法の一例を示す。
【0097】
回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202は、回線毎に契約帯域(全体帯域、割当済帯域、未割当帯域)、送信中コネクション数(全体数、割当済数、未割当数)、1コネクションあたりの未割当帯域を格納するエントリを、複数備える。
【0098】
シェーパ出力パケットの通信経路毎の経路回線テーブル2203は、通信経路毎に経由回線と制御帯域とを格納するエントリを複数個備える。本実施例では、シェーパ出力パケットの通信経路が、常に一通りであるものとする。
【0099】
送信帯域制御部113は、シェーパ出力パケットの通信経路毎の経由回線テーブル2203と、シェーパ毎の送信・再送中コネクション数テーブル1203に記載の、経由回線と送信中コネクション数を用いて、回線毎のデータ送信中のコネクション数を計算し、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202の送信中コネクション数(全体数、割当済数、未割当数)を初期化し、1コネクションあたりの未割当帯域を計算する。
【0100】
送信帯域制御部113は、回線Zの1コネクションあたりの未割当帯域が1.5と最小であることと、回線ZがシェーパBの出力パケットの通信経路Bに含まれており、シェーパBの送信中コネクション数が2であることを用いて、シェーパBの制御帯域を1.5×2=3.0と計算し、通信経路毎の経由回線テーブル2203の、通信経路Bの制御帯域を3.0に更新する。
【0101】
更に、送信帯域制御部113は、回線X・ZはシェーパBの出力パケットの通信経路Bの経由回線なので、通信経路Bの送信中コネクション数2と制御帯域3.0を、回線毎の契約帯域・送信中コネクション数・コネクションあたり帯域テーブル2202の回線XとZの割当済契約帯域・割当済送信中コネクション数として記載し、1コネクションあたりの未割当帯域を再計算する。
【0102】
送信帯域制御部113は、再計算後の回線Xの1コネクションあたりの未割当帯域が7.0で最小であることと、回線XがシェーパAの出力パケットの通信経路Aに含まれており、シェーパAの送信中コネクション数が1であることを用いて、シェーパAの制御帯域を、7.0×1=7.0と計算し、通信経路毎の経由回線テーブル2203の、通信経路Aの制御帯域を7.0に更新する。
【0103】
以上記載の方法により得られた、通信経路毎の経由回線テーブル2203の、通信経路毎の制御帯域を用いて、帯域制御を行う。
【0104】
以上記載の帯域制御を行うことで、ユーザの通信環境に応じて、契約帯域を最大限使い切るような帯域制御が可能となる。
【実施例7】
【0105】
図24、図25、図26を用いて、送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット送信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置から通知された他装置のパケット送信中のコネクション数と、に基づいて帯域制御する装置2400の実施例を示す。
【0106】
図24には、装置2400のブロック図をあらわす。本装置2400は、実施例6の装置2200をベースに、相互通知パケット生成部2402と、相互通知先テーブル2403を追加し、シェーパ毎の送信・再送中コネクション数テーブル1203の代わりに、シェーパ出力パケットの通信経路毎の自装置と他装置の送信中コネクション数テーブル2401を備える。本実施例では、シェーパ出力パケットの通信経路が、常に一通りであるものとする。相互通知先テーブル2403のフォーマットは、フィードバック通知先テーブル1604と同じである。
【0107】
図25には、通信経路毎の自装置と他装置の送信中コネクション数テーブル2401のフォーマットを表す。
【0108】
通信経路毎の自装置と他装置の送信中コネクション数テーブル2401は、通信経路毎に、基準時間と、基準時間以前の統計データ(自装置のデータ送信中コネクション数、他装置のデータ送信中ネクション数)と、基準時間以後の統計データ(自装置のデータ送信中コネクション数積算値、他装置のデータ送信中コネクション数積算値)と、を格納するエントリを複数備える。
【0109】
送信帯域制御部113は、コネクション数加算判定部1201からの送信コネクション数加算通知と、RX側振分部120からの、他装置の送信中コネクション数の通知パケットを受け取り、基準時間以降の統計データ値の加算を行う。更に、タイマ値111と基準時刻の差がインターバル値112より大きくなったタイミングで、シェーパ毎の送信・再送中コネクション数テーブル1203と同様に、基準時間以降のシェーパ出力パケットの通信経路毎の自装置と他装置の送信中コネクション数の更新を行う。
【0110】
更に、送信帯域制御部113は、自装置の送信中コネクション数を、相互通知パケット生成部2402へと通知する。相互通知パケット生成部2402は、相互通知先テーブル2403記載の全宛先に対して、自装置の送信中コネクション数を通知するパケットを生成する。
【0111】
図26には、契約帯域10の回線X、契約帯域8の回線Y、契約帯域3の回線Zがあり、装置2400のシェーパAの出力パケットの通信経路上の経由回線として回線Xと回線Yがあり、シェーパBの出力パケットの通信経路上の経由回線として回線Xと回線Zがあるケースで、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202と、シェーパ出力パケットの通信経路毎の経由回線テーブル2203を用いて、送信帯域制御部113が帯域を制御する方法の一例を示す。
【0112】
送信帯域制御部113は、シェーパ出力パケットの通信経路毎の経由回線テーブル2203と、通信経路毎の自装置と他装置の送信中コネクション数テーブル2401に記載の、通信経路毎の経由回線と、自装置の送信中コネクション数と、他装置の送信中コネクション数を用いて、回線毎の送信中コネクション数を計算し、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202のコネクション数(全体数、割当済数、未割当数)を初期化し、1コネクションあたりの未割当帯域を計算する。(ステップ2601)
【0113】
装置2400は、回線Zの1コネクションあたりの未割当帯域が1.0で最小であることと、回線Zを含む通信経路Bの自装置のデータ送信中コネクション数が2であることを用いて、通信経路Bに向けてパケットを出力するシェーパBの制御帯域を、1.0×2=2.0とする。(ステップ2602)
【0114】
更に、回線X・Zは通信経路Bの経由回線なので、テーブル2401記載の通信経路Bのデータ送信中コネクション数の総和3に対する制御帯域3.0を、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202の回線XとZの割当済帯域・割当済コネクション数として記載し、1コネクションあたりの未割当帯域を再計算する。(ステップ2603)
【0115】
装置2400は、再計算後の回線Xの1コネクションあたりの未割当帯域が3.5で最小であることと、回線Xを含む通信経路Aの自装置のデータ送信中コネクション数が1であることを用いて、通信経路Aに向けてパケットを出力するシェーパAの制御帯域を、3.5×1=3.5とする。(ステップ2604)
【0116】
上記のように、送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット送信中のコネクション数と、1コネクションあたりの契約帯域、に加えて、他装置から通知された他装置のパケット送信中のコネクション数と、に基づいて帯域制御することで、通信環境をより反映させた帯域制御が可能となる。
【実施例8】
【0117】
図27、図28、図29を用いて、受信側端末から送信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット受信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置のパケット受信中のコネクション数と、に基づいて帯域制御する装置2700の実施例を示す。
【0118】
図27には、装置2700のブロック図をあらわす。本装置2700は、実施例7の装置2400をベースに、TX部102に、フィードバック通知パケット生成部1603と、フィードバック通知先テーブル1604を追加する。また、RX部103に、コネクション数加算判定部1201と、コネクション有無テーブル1202と、RX経路・シェーパテーブル903と、タイマ値格納部111と、インターバル値格納部112と、を追加することで、TX部102と同様に、通信経路毎に、データ受信中のコネクション数の加算指定ができるようにする。更に、TX部102のシェーパ出力パケットの通信経路毎の自装置と他装置の送信中コネクション数テーブル2401と、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202と、シェーパ出力パケットの通信経路毎の経由回線テーブル2203と同様に、RX部103にも、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701と、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702と、RX向け通信経路毎の経由回線テーブル2703と、を備える。更に、これらのテーブルの値を更新して、更新値を通知パケット生成部に通知する受信情報通知部2704を備える。本実施例では、シェーパ出力パケットの通信経路が、常に一通りであるものとする。
【0119】
図28には、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701のフォーマットを示す。
【0120】
通信経路毎の自装置と他装置の受信中コネクション数テーブル2701は、通信経路毎に、基準時間と、基準時間以前の統計データ(自装置のデータ受信中コネクション数、他装置のデータ受信中コネクション数)と、基準時間以後の統計データ(自装置のデータ受信中コネクション数積算値、他装置のデータ受信中コネクション数積算値)と、を格納するエントリを複数備える。
【0121】
受信情報通知部2704は、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701に対して、コネクション数加算判定部1201からの自装置の受信中コネクション数の加算指定と、RX側振分部120から受け取る通知パケット記載の、他装置の受信中コネクション数を用いて、基準時間以降の統計データを加算する。基準時間以前の統計データは、シェーパ出力パケットの通信経路毎の自装置と他装置の送信中コネクション数テーブル2401と同様に、タイマ値格納部111と基準時間の差が、インターバル値格納部112を超過したタイミングで更新する。
【0122】
図29には、契約帯域10の回線X,契約帯域8の回線Y,契約帯域3の回線Zがあり、通信経路Aに回線Xと回線Yがあり、通信経路Bに回線Xと回線Zがあるケースにおいて、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701と、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702と、通信経路毎の経由回線テーブル2703を用いて、装置2700が、通信相手に接続している装置1600Cと装置1600Dに、総制御帯域・総受信コネクション数をフィードバック通知する方法の1例を示す。
【0123】
装置2700の受信情報通知部2704は、通信経路毎の経由回線テーブル2703に記載の通信経路毎の経由回線と、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701に記載の自装置の受信中コネクション数と他装置の受信中コネクション数を用いて、回線毎のデータ受信中コネクション数を計算し、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702の受信中コネクション数(全体数、割当済数、未割当数)を初期化し、1コネクションあたりの未割当帯域を計算する。(ステップ2901)
【0124】
装置2700は、回線Zの1コネクションあたりの未割当帯域が1.0で最小であることと、回線Zを含む通信経路Bのデータ受信中コネクション数の総和が3であることを用いて、通信経路Bの総制御帯域を、1.0×3=3.0とする。(ステップ2902)
【0125】
更に、回線X・Zは通信経路Bの経由回線なので、通信経路Bのデータ受信中コネクション数の総和3と総制御帯域3.0を、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702の回線XとZの割当済契約帯域・割当済受信中コネクション数として追加し、1コネクションあたりの未割当帯域を再計算する。(ステップ2903)
【0126】
装置2700は、再計算後の回線Xの1コネクションあたりの未割当帯域が3.5で最小であることと、回線Xを含む通信経路Aの受信コネクション数の総和が2であることを用いて、通信経路Aの総制御帯域を、3.5×2=7.0とする。(ステップ2904)
【0127】
得られた通信経路毎の総制御帯域と総受信コネクション数は、フィードバック通知パケット生成部1603へと通知され、フィードバック通知先テーブル1604記載の全宛先向けに通知パケットが作成される。更に、実施例5を適用したデータ送信側装置1600C/Dへとフィードバック通知される。
【0128】
送信側装置1600C/Dは、受け取ったフィードバック通知パケット記載の、総制御帯域と総受信コネクション数に基づいて、送信帯域を制御する。
【0129】
装置2700が接続している端末をサーバ端末、装置1600C/Dが接続している端末をクライアント端末とすれば、クライアント端末に接続している装置は、フィードバック通知や相互通知を行う必要がなくなる。クライアント端末に接続している装置の状態にかかわらず、コネクション数の情報の共有が可能となる。
【0130】
上記のように、他装置から通知された送信中コネクション数の情報に加えて、他装置から通知された受信中コネクション数の情報も加えて帯域制御を行うことで、通信環境をより反映させた帯域制御が可能となる。
【実施例9】
【0131】
図30、図31を用いて、LANとWANの接続部に設置され、通信経路上の経由回線の契約帯域・データ送信中コネクション数・データ受信中コネクション数を一括計測し、計測結果を、同一LANに接続した他の装置に一方的に通知し、他のWANに接続した他の装置との間では相互通知しあう装置3000の実施例を示す。
【0132】
図30には、装置3000のブロック図をあらわす。本装置3000は、実施例8の装置2700をベースに、再送機能や帯域制御機能に関するブロックを削除し、TX部をOutbound部3004に、RX部をInbound部3003に変更し、受信情報通知部2704の代わりにWAN⇒LAN方向のコネクション数の計測を行うインバウンド情報管理部3001と、送信帯域制御部113の代わりにLAN⇒WAN方向のコネクション数の計測を行うアウトバウンド情報管理部3002と、通信経路毎の自装置と他装置の送信中コネクション数テーブル2401の代わりに通信経路毎の自装置と他装置のOutboundコネクション数テーブル3008と、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701の代わりに通信経路毎の自装置と他装置のInboundコネクション数テーブル3005と、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202の代わりに回線毎の契約帯域・Outboundコネクション数・1コネクションあたり帯域テーブル3007と、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702の代わりに回線毎の契約帯域・Inboundコネクション数・1コネクションあたり帯域テーブル3006と、を備える。
【0133】
アウトバウンド情報管理部3002は、送信帯域制御部113と同様な方法で、回線毎の契約帯域・Outboundコネクション数・1コネクションあたり帯域テーブル3007と、通信経路毎の自装置と他装置のOutboundコネクション数テーブル3008を更新し、自装置のOutboundコネクション数を相互通知パケット生成部に通知する。
【0134】
インバウンド情報管理部3001は、受信情報通知部2704と同様な方法で、回線毎の契約帯域・Inboundコネクション数・1コネクションあたり帯域テーブル3006と、通信経路毎の自装置と他装置のInboundコネクション数テーブル3005を更新し、自装置のInboundコネクション数を相互通知パケット生成部に通知するとともに、自装置の総制御帯域と総Inboundコネクション数をフィードバック通知パケット生成部へ通知する。
【0135】
相互通知パケット生成部2402は、WAN側にもLAN側にも通知パケットを出力する。フィードバック通知パケット生成部1603は、WAN側にのみ通知パケットを出力する。
【0136】
図31には、装置間の統計情報の通知方向を表す。
【0137】
統計情報収集装置3000は、通信経路Aと通信経路Bのインバウンドコネクション数を、実施例7を適用した装置2400X/Yに一方的に通知する。装置2400X/Yは、装置3000からの通知パケット記載のコネクション数から、自装置の送信中コネクション数を引くことで、他装置の送信中コネクション数を得て、帯域制御を行う。
【0138】
また、統計情報収集装置3000は、他のLANとWANの接続部に設置された別の統計情報収集装置3000′との間で、各通信経路のInboundコネクション数とOutboundコネクション数の情報を相互に通知しあう。
【0139】
更に、統計情報収集装置3000は、端末と接続中の実施例5を適用した装置1600Eに対して、Inboundコネクション数とInbound総制御帯域を通知する。
【0140】
上記の統計情報収集装置を用いることで、拠点内の装置が多い場合に、通知回数を削減しつつ、装置から通知された送信中コネクション数と受信中コネクション数の情報に基づく帯域制御が実現され、通信環境をより反映させた帯域制御が可能となる。
【実施例10】
【0141】
図32に、実施例7や実施例8に記載した装置2400/2700を複数個、スイッチHUBに接続して1つの装置3200にした実施例を示す。
【0142】
コネクション数の情報を管理するテーブルを複数の装置で共有することができるので、コストを削減することができる。
【実施例11】
【0143】
図33には、実施例7や実施例8に記載した装置2400/2700を複数設置し、代表装置と他の装置との間で、帯域制御に用いるコネクション数の情報を通知しあうシステムの実施例を示す。
【0144】
代表装置に集中した情報を、各装置に再配信するので、メッシュ状に通知しあうよりも、通知回数を削減できる。
【実施例12】
【0145】
図34には、実施例7や実施例8に記載した装置2400/2700を複数設置し、帯域制御に用いるコネクション数の情報を、ループ状に通知しあうシステムの実施例を示す。
【0146】
メッシュ状に通知しあうよりも、通知回数を削減できる。
【0147】
上述した種々の実施例で明らかにされたように、ある通信端末が別の通信端末と通信を行う際に、複数の通信端末の間に2つ以上設置された装置が、通信の帯域制御や再送制御を肩代わりすることで、通信を高速化することができる。
上記記載は実施例についてなされたが、本発明はそれに限らず、本発明の精神と添付の請求の範囲の範囲内で種々の変更および修正をすることができることは当業者に明らかである。
【符号の説明】
【0148】
100 装置
101 端末
800 装置
900 装置
1200 装置
1600 装置
2200 装置
2400 装置
2700 装置
3000 装置
【技術分野】
【0001】
(参照による取り込み)
本出願は、2009年9月16日に出願された日本特許出願第2009−214015号の優先権を主張し、その内容を参照することにより本出願に取り込む。
【0002】
本発明は、通信装置および通信システムに関し、特に、帯域制御を行うネットワークに接続される装置に関する。
【背景技術】
【0003】
グローバル拠点間の通信網として、IP−VPN技術等を用いたWAN(Wide Area Network)を用いることが、一般的になっている。
【0004】
ある拠点にある端末が、別の海外の拠点にある端末と通信する場合は、自拠点LANと国内WANを接続する回線と、国内WANと海外WANを接続する回線と、海外WANと別拠点LANを接続する回線と、を経由して通信が行われる。これらの回線は、契約帯域によって、使用可能な帯域幅が制限されている。
【0005】
端末間の通信では、TCPを用いるのが一般的である。TCP通信では、送信端末が送ったデータに対して、受信端末が受信済みデータ量を送信端末にフィードバック通知する。送信端末は、フィードバック通知される受信済みデータ量が増加しなくなると、廃棄検出と判定する。
【0006】
さらに、送信端末は、ウィンドウサイズ(受信したことを受信端末から通知されなくても送信可能なデータサイズ)と呼ばれるパラメータを管理しており、RTT(Round Trip Time)や廃棄検出の有無に応じて、ウィンドウサイズを変化させる。
【0007】
RTT増加時や廃棄検出時にネットワークが混雑していると判定して、ウィンドウサイズを減少させることで、送信帯域を間接的に減少させて、ネットワークの混雑を回避する。また、RTT減少時や廃棄が無い時にネットワークが空いていると判定して、ウィンドウサイズを増加させることで、送信帯域を間接的に増加させて、ネットワークの回線帯域を有効利用する。以上のように、TCPを用いた通信では、送信帯域がRTTと廃棄率に大きく左右される。
【0008】
TCPを用いた通信と同様の技術として、ATMのABRを用いた通信もある。本通信では、受信端末から送信端末へ、RTTや廃棄以外に、受信帯域がフィードバック通知される。
【0009】
RTTと廃棄検出以外に、コネクション数を用いて帯域を直接制御する技術もある。(特許文献1)
【先行技術文献】
【特許文献】
【0010】
【特許文献1】WO05/00666号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
TCPを用いた通信では、送信帯域がRTTと廃棄率に大きく左右されるため、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、契約帯域を大幅に下回る送信帯域しか得られない。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本願発明のネットワークに接続される装置の一態様では、装置からネットワークを介して他の装置に送信されるパケットに関する帯域をインターバル毎に管理し、管理される第一のインターバルの再送帯域又は廃棄帯域と、第一のインターバルよりも前のインターバルである第二のインターバルにおける制御帯域とに基づいて、前記制御帯域を変更する帯域制御部と、制御帯域に従って、パケットをネットワークに送出する送信部と、を有することにより、通信速度に対するRTT(Round Trip Time)及びパケット廃棄率の影響を抑制し、通信の高速化を実現する、態様とする。
【発明の効果】
【0013】
上述の本発明の態様により、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する。
本発明の他の目的、特徴及び利点は添付図面に関する以下の本発明の実施例の記載から明らかになるであろう。
【図面の簡単な説明】
【0014】
【図1】再送帯域に基づいて帯域制御する装置100のブロック図。
【図2】TX経路・シェーパテーブル106のフォーマット図。
【図3】シェーパ毎の送信・再送帯域テーブル114のフォーマット図。
【図4】シェーパ毎の送信・再送帯域テーブル114を更新するフローチャート図。
【図5】受信履歴テーブル114のフォーマットと、受信済箇所と未受信箇所とSEQ番号の関係を示した図。
【図6A】受信履歴テーブル114を更新するフローチャート図。
【図6B】受信履歴テーブル114を更新するフローチャート図。
【図7】送信側装置と受信側装置で、データパケットと、受信済・未受信箇所通知パケットが送受信されるシーケンスの一例を示した図。
【図8】再送帯域に基づいて帯域制御する装置をソフトウェアにて実現する装置800のブロック図。
【図9】廃棄帯域に基づいて帯域制御する装置900のブロック図。
【図10】RX経路・シェーパテーブル903のフォーマット図。
【図11】シェーパ毎の送信・廃棄帯域テーブル902のフォーマット図。
【図12】再送中コネクション数を計測し、再送中コネクション数に基づいて帯域制御する装置1200のブロック図。
【図13】コネクション有無テーブル1202のフォーマット図。
【図14】コネクション数加算判定部1201が、コネクション有無テーブル1202記載の値を用いて行う処理のフローチャート図。
【図15】シェーパ毎の送信・再送中コネクション数テーブル1203のフォーマット図。
【図16A】通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置1600のブロック図。
【図16B】通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置1600のブロック図。
【図16C】通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置1600のブロック図。
【図17】シェーパ毎の受信側総帯域・コネクション数テーブル1601のフォーマット図。
【図18】フィードバック通知先テーブル1604のフォーマット図。
【図19】RX総帯域・コネクション数テーブル1606のフォーマット図。
【図20】RX総帯域・コネクション数テーブル1606を更新するフローチャート図。
【図21】帯域制御の説明図。
【図22】送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、パケット送信中のコネクション数と、1コネクションあたりの契約帯域と、に基づいて帯域制御する装置2200のブロック図。
【図23】帯域制御の説明図。
【図24】送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット送信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置から通知された他装置のパケット送信中のコネクション数と、に基づいて帯域制御する装置2400のブロック図。
【図25】通信経路毎の自装置と他装置の送信中コネクション数テーブル2401のフォーマット図。
【図26】帯域制御の説明図。
【図27A】受信側端末から送信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット受信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置のパケット受信中のコネクション数と、に基づいて帯域制御する装置2700のブロック図。
【図27B】受信側端末から送信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット受信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置のパケット受信中のコネクション数と、に基づいて帯域制御する装置2700のブロック図。
【図27C】受信側端末から送信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット受信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置のパケット受信中のコネクション数と、に基づいて帯域制御する装置2700のブロック図。
【図28】通信経路毎の自装置と他装置の受信中コネクション数テーブル2701のフォーマット図。
【図29】帯域制御の説明図。
【図30】LANとWANの接続部に設置され、通信経路上の経由回線の契約帯域・データ送信中コネクション数・データ受信中コネクション数を一括計測し、計測結果を、同一LANに接続した他の装置に一方的に通知し、他のWANに接続した他の装置との間では相互通知しあう装置3000のブロック図。
【図31】帯域制御の説明図。
【図32】装置2400/2700を複数個、スイッチHUBに接続して1つの装置3200にした説明図。
【図33】代表装置と他の装置との間で、帯域制御に用いるコネクション数の情報を通知しあうシステム図。
【図34】帯域制御に用いるコネクション数の情報を、ループ状に通知しあうシステム図。
【図35】装置が入出力するパケットデータのフォーマット図。
【発明を実施するための形態】
【0015】
本発明を実施するための代表的な形態は、下記のとおりである。
まず、受信側端末に接続した装置が、送信側端末に接続した装置に対して廃棄箇所を全てフィードバック通知する手段と、送信側端末に接続した装置がフィードバック通知された廃棄箇所を再送する手段と、送信側端末に接続した装置が再送帯域・廃棄帯域に基づいて送信帯域を制御する手段を備える態様とした。この態様により、TCPを用いた通信では、送信帯域がRTTと廃棄率に大きく左右されるため、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、契約帯域を大幅に下回る送信帯域しか得られない、という課題を解決する。本態様により、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する効果がある。本態様の詳細は、実施例1ないし3を中心に後述する。
【0016】
別の態様として、送信側端末に接続した装置が、廃棄箇所を再送中のコネクション数をリアルタイムに計測する手段を備え、再送コネクション数に基づいて送信帯域を制御する手段を備える態様とする。この態様により、RTTと廃棄検出以外に、コネクション数を用いて帯域を直接制御する技術では、実際のコネクションの通信状況をリアルタイムに反映させるのが難しく、廃棄検出時に何割のコネクションに廃棄が生じているのかが分からないため、帯域をどの程度、削減すればよいのか分からない、という課題を解決する。本態様により把握される、再送コネクション数に基づいて帯域制御する手段により、廃棄検出時に何割のコネクションに廃棄が生じているのかが分かり、帯域をどの程度、削減すればよいのか明確になる効果がある。本態様の詳細は、実施例4を中心に後述する。
【0017】
更に、別の態様として、端末に接続した装置が、経由回線(自拠点LANと国内WANを接続する回線、国内WANと海外WANを接続する回線、海外WANと別拠点LANを接続する回線、など)の契約帯域・コネクション数、などのリアルタイムな使用状況に基づいて、帯域制御する手段を備える、態様とする。この態様により、TCPを用いた通信では、RTTと廃棄検出に基づいて、送信端末と受信端末の間の通信環境を予測しながら通信を行うだけで、通信環境を直接反映する手段がないため、通信環境によって、得られる通信品質にばらつきがある、という課題を解決する。本態様により把握される回線の使用状況に基づいて、帯域制御する手段により、通信環境にかかわらず、一定の通信品質が得られる効果がある。詳細は、実施例5ないし12で説明する。
【0018】
また、別の態様として、通信相手から通知されたデータ受信中のコネクション数に基づいて送信帯域を制御する手段を設ける態様とする。詳細は、実施例5を中心に詳述する(実施例5)。別の態様として、通信経路上の経由回線の契約帯域・データ送信中コネクション数・1コネクションあたり帯域に基づいて帯域制御する手段を設ける態様とする。詳細は、実施例6で説明する。別の態様として、複数装置間の相互通知により集約した通信経路上の経由回線の契約帯域・データ送信中コネクション数・1コネクションあたり帯域に基づいて帯域制御する手段を設ける態様とする。詳細は、実施例7で説明する。別の態様として、複数装置間の相互通知により集約した通信経路上の経由回線の契約帯域・データ受信中コネクション数・1コネクションあたり帯域に基づいて帯域制御する手段を設ける態様とする。詳細は、実施例8で説明する。他の本発明の態様は、以下に述べる種々の実施例で説明される。
【0019】
以下、本発明の態様を詳細に説明するべく、帯域制御を行う装置やパケット処理を行う装置の構成や、当該装置がネットワークを介して接続されることにより構成されるシステムの詳細について実施例を用いて述べる。また、複数の通信端末の間に複数設置される装置が、通信を高速化するために、通信端末が別の通信端末と通信を行う際の帯域制御、再送制御処理を中心に、以下の実施例を用いて述べる。
【実施例1】
【0020】
図1、図2、図3、図4、図5、図6、図7を用いて、再送帯域に基づいて帯域制御する装置100の実施例を示す。
【0021】
図1には、装置100のブロック図をあらわす。装置100は、端末101が送信するデータを受け取り、他の装置100′へむけてパケットを送信するTX部102と、他の装置100′からのパケットを受信して、端末101へデータを出力するRX部103から構成される。
【0022】
TX部102は、送信パケット蓄積部104と、出力先判定部105と、TX経路・シェーパテーブル106と、TXパケット再送部107と、振分部108と、シェーパ109と、受信・未受信箇所通知パケット向けバッファ110と、タイマ値格納部111と、インターバル値格納部112と、送信帯域制御部113と、シェーパ毎の送信・再送帯域テーブル114と、トークン更新部115と、送信パケット出力制御部116、とから構成される。
【0023】
RX部103は、RXパケット再送部117と、受信履歴更新部118と、受信履歴テーブル119と、他の装置100′から受信したデータパケットを受信履歴更新部118へ、受信・未受信箇所通知パケットをTX側パケット再送部107に振り分けるRX側振分部120と、受信パケット蓄積部121と、受信パケット出力制御部122、とから構成される。
【0024】
端末101が送信するデータパケットは、送信パケット蓄積部104に蓄積され、出力先判定部105と振分部108へ入力される。
【0025】
送信データ蓄積部104に蓄積されたデータパケットは、装置101′から受信した受信箇所通知パケットを、RX側振分部120経由でTXパケット再送部107が受信したときに消去され、未受信箇所通知パケットをTXパケット再送部107が受信したときに読み出され、再送される。
【0026】
図35には、装置が入出力するパケットデータのフォーマットを表す。
【0027】
パケットデータは、Len3500と、Proto3501と、SIP3502と、DIP3503と、Sport3504と、Dport3505と、SSEQ3506と、DSEQ3507と、Flag3508と、Others3509と、Payload3510と、DMAC3511と、SMAC3512と、Type3513とを含む。
【0028】
Len3500は、IP層のパケット長を格納する。Proto3501は、トランスポート層のプロトコルを識別するための識別番号を格納する。SIP3502は、送信元アドレス、すなわち、送信側の端末のアドレスである送信元IPアドレスを格納する。DIP3503は、宛先アドレス、すなわち、受信側の端末のアドレスである宛先IPアドレスを格納する。Sport3504は、TCPの送信元ポートを格納する。Dport3505は、TCPの宛先ポートを格納する。SSEQ3506は、送信元シーケンス番号を格納する。DSEQ3507は、宛先シーケンス番号を格納する。Flag3508はTCPフラグ番号を格納する。Others3509は、その他のIP/TCPヘッダデータを格納する。Payload3510は、パケットヘッダ以外のデータを格納する。DMAC3511は、物理層の宛先MACアドレスを格納する。SMAC3512は、物理層の送信元MACアドレスを格納する。Type3513は、パケットデータのタイプを表す。なお、MACとは、Media Access Control Frameのことをあらわし、物理層を流れるパケットのことをMACフレームと呼ぶ。
【0029】
図2に、TX経路・シェーパテーブル106のフォーマットを示す。TX経路・シェーパテーブル106は、TX経路(送信元IP/サブネット、宛先IP/サブネット、送信元ポート、宛先ポート)、シェーパを格納するエントリ複数個から構成される。
【0030】
シェーパ判定部105は、TX経路・シェーパテーブル106から、パケットヘッダと一致する経路を持つエントリを読み出し、エントリ記載のシェーパを振分部108に通知する。
【0031】
振分部108は、通知に基づいて、入力パケットを、シェーパA(109A)、シェーパB(109B)、シェーパC(109C)、のいずれかに振り分ける。更に、パケットヘッダ記載のパケット長をビット値に変換し、シェーパと送信/再送ビットを対応付けて、送信帯域制御部113に通知する。
【0032】
送信帯域制御部113は、振分部108から通知されたシェーパと送信/再送ビットに基づき、シェーパ毎の送信・再送帯域テーブル114を更新し、更新結果に基づいてシェーパ毎の制御帯域を決定する。更に、トークン更新部115に、制御帯域に応じたトークン加算値を通知する。
【0033】
図3に、シェーパ毎の送信・再送帯域テーブル114のフォーマットを示す。シェーパ毎に、基準時間と、制御帯域(基準時間前)と、制御帯域(基準時間後)と、基準時間以前の統計データ(送信帯域、再送帯域)と、基準時間以降の統計データ(送信ビット積算値、再送ビット積算値)と、を格納するエントリ複数個から構成される。
【0034】
図1の送信帯域制御部113は、振分部108から通知されたシェーパと一致するエントリの基準時間以降の統計データ(送信ビット積算値、再送ビット積算値)に、通知された送信・再送ビットを加算する。
【0035】
更に、送信帯域制御部113は図4に示すフローチャートに従い、シェーパ毎の送信・再送帯域テーブル114を更新する。
【0036】
送信帯域制御部113はシェーパ毎の送信・再送帯域テーブル114の各エントリを読み出し(ステップ401)、タイマ値111と基準時間の差がインターバル値112よりも大きいか、または、再送ビット積算値が0よりも大きいか、の判定を行い、判定条件を満たすまで繰り返す(ステップ402)。判定条件を満たしたら、送信帯域=送信ビット積算値/インターバル+送信帯域×(インターバル−タイマ値+基準時間)/インターバル、再送帯域=再送ビット積算値/インターバル+再送帯域×(インターバル−タイマ値+基準時間)/インターバル、基準時間=タイマ値、送信ビット積算値=0、再送ビット積算値=0となるようにエントリを更新する(ステップ403)。更に、更新済み再送帯域が0よりも大きいか否かを判定する(ステップ405)。大きいと判定した場合は、制御帯域(基準時間後)が制御帯域(基準時間前)よりも小さくなるように(例えば、制御帯域(基準時間後)=制御帯域(基準時間前)−再送帯域)、再送帯域に基づいて制御帯域(基準時間後)を変更する(ステップ406)。小さいと判定した場合は、制御帯域(基準時間後)が制御帯域(基準時間後)よりも大きくなるように制御帯域を変更する(ステップ407)。
【0037】
送信帯域制御部113は、上記の変更済み制御帯域(基準時間後)に基づいて計算した加算トークンをトークン制御部115に通知する。
【0038】
トークン制御部115は、トークンバケツアルゴリズムに基づいて、送信帯域制御部113から通知された加算トークンを、周期的にトークンバケツに加算する。更に、トークン積算値が一定量を上回る場合に、出力可能として、送信パケット出力制御部116に通知する。
【0039】
送信パケット出力制御部116は、パケットが蓄積されていて、出力可能なバッファからパケットを読み出して出力する。シェーパA(109A)、シェーパB(109B)、シェーパC(109C)、のいずれかから出力した場合は、シェーパと出力パケット長をトークン制御部115に通知する。トークン制御部115は、通知されたシェーパのトークンバケツから、通知パケット長に相当するトークンを減算する。
【0040】
装置100′が装置100から受信したデータパケットは、RX側振分部120′によって、受信履歴更新部118′に入力される。
【0041】
受信履歴更新部118′は、受信したデータパケットと、受信履歴テーブル119′の内容に基づいて、図6のフローチャートに示す処理を行う。
【0042】
図5には、受信履歴テーブル114′のフォーマットと、受信済箇所510と未受信箇所520とSEQ番号0、8、9、12、14との関係を表す。
【0043】
受信履歴テーブル114′は、送信元IPと、宛先IPと、送信元ポートと、宛先ポートと、受信済箇所の最後尾SEQと、未受信箇所のSEQと、廃棄検出時間と、から構成される。SEQは、受信データの先頭からのバイト数を表す。
【0044】
受信履歴更新部118′は、受信パケットヘッダ記載値と一致するエントリを、受信履歴記録テーブル119′から読み出す(ステップ601)。受信パケットが含むデータの最後尾SEQが、エントリ記載の受信済箇所の最後尾SEQよりも大きいか否かを判定する(ステップ602)。大きい場合は、受信パケットが含むデータの先頭SEQが、エントリ記載の受信済箇所の最後尾SEQと一致するか否かを判定する(ステップ603)。一致する場合は、エントリに未受信箇所のSEQが記載されていないか否かを判定する(ステップ604)。記載されていない場合は、受信済み箇所の最後尾SEQ=受信パケットが含むデータの後尾SEQ、のように、エントリを更新し、受信パケットを受信パケット出力制御部122′へと出力する。更に、受信パケットが含むデータのSEQ範囲を受信箇所とする通知パケットを、バッファ110′へと出力する(ステップ605)。
【0045】
図6のステップ604において、否と判定された場合は、受信済み箇所の最後尾SEQ=受信パケットが含むデータの後尾SEQ、のように、エントリを更新し、受信パケットを受信パケット蓄積部121′へと書き込む。更に受信パケットが含むデータのSEQ範囲を受信箇所とする通知パケットを、バッファ110′へと出力する(ステップ606)。
【0046】
図6のステップ603において、否と判定された場合は、エントリの未受信箇所のSEQに受信パケットのSEQ範囲を追記し、受信済み箇所の最後尾SEQ=受信パケットの後尾SEQ、となるようにエントリを更新して、受信パケットを受信パケット蓄積部121へと書き込む。更に、受信済箇所の最後尾SEQ〜受信パケットの先頭SEQを未受信箇所とし、受信パケットのSEQ範囲を受信箇所とする通知パケットをバッファ110′へ出力する(ステップ607)。
【0047】
図6のステップ602において、否と判定された場合は、受信パケットが含むデータのSEQ範囲が、エントリ記載の未受信箇所の最初のSEQ範囲と一致するか否かを判定する(ステップ608)。
【0048】
図6のステップ608において、一致すると判定された場合は、未受信箇所のSEQから、受信パケットのSEQ範囲を削除するように、エントリの更新を行い、受信パケットとエントリをRXパケット再送部117′へ出力する。更に、受信パケットが含むデータのSEQ範囲を受信箇所とする通知パケットを、受信・未受信箇所通知パケット向けバッファ110′へと出力する(ステップ609)。
【0049】
図6のステップ608において、否と判定された場合は、未受信箇所のSEQから、受信パケットのSEQ範囲を削除するように、エントリの更新を行い、受信パケットを受信パケット蓄積部121′へと書き込む。更に、受信パケットのSEQ範囲より前の未受信SEQ範囲を未受信箇所とし、受信パケットのSEQ範囲を受信箇所とする通知パケットを、バッファ110′へ出力する(ステップ610)。
【0050】
RXパケット再送部117′は、受信履歴更新部118′から受け取った受信パケットとエントリに基づいて、受信パケットに連続して後続するパケットを受信パケット蓄積部121′から読み出して、受信パケットと、読み出したパケットを受信パケット出力制御部122′に出力する。
【0051】
図7には、送信側装置と受信側装置で、データパケットと、受信済・未受信箇所通知パケットが送受信されるシーケンスの一例を示す。
【0052】
実線がデータパケット、破線が通知パケットを表す。実線の出発点近くに記載されている値が、データパケットのSEQ範囲、破線の出発点近くに記載されている値が、受信済・未受信箇所のSEQ範囲を表す。実線の出発点近くに記載されている値の、更に左側には、送信側の送信帯域の遷移を示す。
【0053】
以上により、再送帯域に基づいて帯域制御する装置が実現される。これにより、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する効果が得られる。
【実施例2】
【0054】
図8を用いて、再送帯域に基づいて帯域制御する装置をソフトウェアにて実現する装置800の実施例を示す。
【0055】
図8には、装置800のブロック図をあらわす。装置800は、演算部823と記憶部824から構成される。
【0056】
図1における、TX部102、RX部103、シェーパ判定部105、TXパケット再送部107、振分部108、送信帯域制御部113、トークン制御部115、送信パケット出力制御部116、RXパケット再送部117、受信履歴更新部118、RX側振分部120、受信パケット出力制御部122、はモジュール化されて、TXモジュール802、RXモジュール803、シェーパ判定モジュール805、TXパケット再送モジュール807、振分モジュール808、送信帯域制御モジュール813、トークン制御モジュール815、送信パケット出力制御モジュール816、RXパケット再送モジュール817、受信履歴更新モジュール818、RX側振分モジュール820、受信パケット出力制御モジュール822として、演算部823にて動作する。
【0057】
また、図1における、送信データ蓄積メモリ104、TX経路・シェーパテーブル106、シェーパ109、受信・未受信箇所通知パケット向けバッファ110、タイマ値格納部111、インターバル値格納部112、シェーパ毎の送信・再送帯域テーブル114、受信履歴テーブル119、受信パケット蓄積部121、は全て、記憶部824におかれる。
【0058】
以上により、ソフトウェア実装した装置により再送帯域に基づいて帯域制御する装置が実現される。これにより、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する効果が得られる。なお、各モジュールは、装置900の不揮発性記憶媒体に格納されるプログラムを読み出すことにより構成される。
【実施例3】
【0059】
図9、図10、図11を用いて、廃棄帯域に基づいて帯域制御する装置900の実施例を示す。
【0060】
図9には、装置900のブロック図をあらわす。本装置900は、実施例1に記載の装置100をベースにして、シェーパ毎の送信・再送帯域テーブル114を、シェーパ毎の送信・廃棄帯域の記録テーブル902に置き換え、廃棄ビット通知部901と、RX経路・シェーパテーブル903を、新たに追加することで、構成される。
【0061】
図10には、RX経路・シェーパテーブル903のフォーマットを表す。RX経路(送信元IP/サブネット、宛先IP/サブネット、送信元ポート、宛先ポート)と、シェーパ、を格納するエントリ複数個から構成される。RX経路は、経路・シェーパテーブル106の送信元IP/サブネットと宛先IP/サブネットを交換し、送信元ポートと宛先ポートを交換した値となっている。
【0062】
図11には、シェーパ毎の送信・廃棄帯域テーブル902のフォーマットを表す。シェーパ毎に、基準時間と、制御帯域(基準時間前)と、制御帯域(基準時間後)と、基準時間以前の統計データ(送信帯域、廃棄帯域)と、基準時間以降の統計データ(送信ビット積算値、廃棄ビット積算値)とを格納するエントリ複数個から構成される。
【0063】
廃棄ビット通知部901は、未受信箇所通知パケットを受信すると、記載されている未受信箇所の総ビット長を求めて、廃棄ビット長とする。更に、パケットヘッダ記載値とRX経路が一致するエントリを、RX経路・シェーパテーブル903から読み出して、エントリ記載のシェーパと、求めた廃棄ビット長を、送信帯域制御部113へと通知する。
【0064】
送信帯域制御部113は、図4に記載のシェーパ毎の送信・再送帯域テーブル114の更新方法と同様の手順で、シェーパ毎の送信域・廃棄帯域テーブル902を更新する。更に、上記の変更済み制御帯域(基準時間後)に基づいて計算した加算トークンをトークン制御部115に通知する。
【0065】
以上により、廃棄帯域に基づいて帯域制御する装置が実現される。これにより、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が改善する効果が得られる。
【実施例4】
【0066】
図12、図13、図14、図15を用いて、再送中コネクション数を計測し、再送中コネクション数に基づいて帯域制御する装置1200の実施例を示す。
【0067】
図12には、装置1200のブロック図をあらわす。本装置1200は、実施例1に記載の装置100をベースにして、コネクション数加算判定部1201と、コネクション有無テーブル1202と、シェーパ毎の送信・再送中コネクション数テーブル1203と、を追加することで構成できる。
【0068】
図13には、コネクション有無テーブル1202のフォーマットを表す。送信元IP、宛先IP、送信元ポート、宛先ポート、再送中(Yes=1, No=0)、基準時間、を格納するエントリ複数個から構成される。
【0069】
図14には、コネクション数加算判定部1201が、コネクション有無テーブル1202記載の値を用いて行う処理のフローチャート図を示す。
【0070】
コネクション数加算判定部1201は、パケットヘッダ記載値と一致するエントリを、コネクション有無テーブル1202から読み出し(ステップ1401)、パケットヘッダ記載値と一致するエントリが有るか、無いかを判定する(ステップ1402)。無い場合は、新規エントリを、送信元IP=パケットの送信元IP、宛先IP=パケットの宛先IP、送信元ポート=パケットの宛先ポート、宛先ポート=パケットの宛先ポート、基準時間=タイマ値、として作成する。更に、シェーパ判定部の指定シェーパのコネクション数に1を加算するように送信帯域制御部113に通知する(ステップ1405)。ステップ1402において、一致するエントリが有る場合は、タイマ値111と基準時間の差がインターバル値112よりも大きいか、または、エントリ記載の再送=0かつ入力されたパケットが再送パケットであるか否かを判定し、いずれも満たさない場合は、ループする(ステップ1403)。いずれかを満たした場合は、タイマ値111と基準時間の差がインターバル値112よりも大きい場合に、基準時間=タイマ値、へとエントリを更新し、再送パケットの場合に、再送中=1、通常パケットの場合に、再送中=0、へとエントリを更新する。更に、通常パケットの場合は、シェーパ判定部の指定シェーパの送信コネクション数に1を加算するように、再送パケットの場合は、シェーパ判定部の指定シェーパの再送コネクション数に1を加算するように、送信帯域制御部113に通知する(ステップ1404)。
【0071】
図15には、シェーパ毎の送信・再送中コネクション数テーブル1203のフォーマットを表す。シェーパ毎に、基準時間と、基準時間以前の統計データ(送信中コネクション数、再送中コネクション数)と、基準時間以降の統計データ(送信中コネクション数積算値、再送中コネクション数積算値)とを格納するエントリから構成される。
【0072】
送信帯域制御部113は、図4に記載のシェーパ毎の送信・再送帯域の記録テーブル114と同様の手順で、シェーパ毎の送信・再送中コネクション数テーブル1203を更新する。
【0073】
送信帯域制御部113は、シェーパ毎の送信・再送中コネクション数テーブル1203を見ることで、廃棄検出時の帯域削減量を判定する。
【0074】
以上により、廃棄検出時に何割のコネクションに廃棄が生じているのかが分かり、帯域の削減幅を最適化される効果がある。
【実施例5】
【0075】
図16、図17、図18、図19、図20、図21を用いて、通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置1600の実施例を示す。
【0076】
図16には、装置1600のブロック図をあらわす。本装置1600は、実施例4に記載の装置1200をベースにして、RX経路・シェーパテーブル903をTX部102に追加し、通信相手の受信帯域とデータ受信中のコネクション数を記録するシェーパ毎の受信側総帯域・コネクション数テーブル1601と、受信側総帯域・コネクション数通知部1602と、フィードバック通知パケット生成部1603と、フィードバック通知先テーブル1604とを、TX部102へ新たに追加し、コネクション数加算判定部1201と、コネクション有無テーブル1202とをRX部103に追加し、RX情報通知部1605と、受信帯域とパケット受信中のコネクション数を記録するRX総帯域・コネクション数テーブル1606と、を新たにRX部103に追加することで、構成される。
【0077】
図17には、シェーパ毎の受信側総帯域・コネクション数テーブル1601のフォーマットを表す。
【0078】
シェーパ毎の受信側総帯域・コネクション数テーブル1601は、シェーパ毎に、通信相手側で計測された総受信帯域とパケット受信中の総コネクション数を格納するエントリ複数個から構成される。
【0079】
図18には、フィードバック通知先テーブル1604のフォーマットを表す。
【0080】
フィードバック通知先テーブル1604は、フィードバック通知の対象が端末である場合は宛先IPアドレスを格納し、フィードバック通知の対象が拠点である場合は宛先IPアドレスと共にサブネットも格納するエントリ複数個から構成される。
【0081】
図19には、RX総帯域・コネクション数テーブル1606のフォーマットを表す。
【0082】
RX総帯域・コネクション数テーブル1606は、基準時間と、基準時間以前の統計データ(RX総帯域、RX総コネクション数)と、基準時間以降の統計データ(RX総ビット積算値、RX総コネクション数積算値)と、を格納する。
【0083】
RX情報通知部1605は、コネクション数加算判定部1201からのコネクション数加算通知と、RX側振分部120から入力されるデータパケットのヘッダ記載のパケット長を用いて、RX総帯域・コネクション数テーブル1606の、基準時間以降の統計データ(RX総ビット積算値、RX総コネクション数積算値)を加算する。コネクション数加算通知がくると、RX総コネクション数積算値を1加算し、パケット長はビット長に変換して、RX総ビット積算値に加算する。
【0084】
更に、RX情報通知部1605は図20に示すフローチャートを用いて、RX総帯域・コネクション数テーブル1606の更新を行う。
【0085】
RX情報通知部1605はタイマ値111と基準時間の差が、インターバル値112よりも大きくなるか否かの判定を、満たすまで繰り返し実行する(ステップ2001)。満たしたら、基準時間以前のRX総帯域=基準時間以降のRX総ビット積算値/(タイマ値−基準時間)、基準時間以前のRX総コネクション数=基準時間以降のRX総コネクション数積算値、基準時間=タイマ値、基準時間以降のRX総ビット積算値帯域=0、基準時間以降のRX総コネクション数積算値=0、となるように、テーブルを更新する(ステップ2002)。
【0086】
更新した基準時間以前のRX総帯域・総コネクション数は、フィードバック通知パケット生成部1603へと出力される。
【0087】
フィードバック通知パケット生成部1603は、通知されたRX総帯域・総コネクション数を含む通知パケットを、フィードバック通知先テーブル1604に記載された全ての宛先に対して生成し、出力する。
【0088】
逆に、装置1600が、RX総帯域・総コネクション数を含む通知パケットを、通信相手から受け取ると、RX側振分部120を経由して、受信側総帯域・コネクション数通知部1602へと出力する。
【0089】
受信側総帯域・コネクション数通知部1602は、パケットヘッダ記載値と一致するエントリを、RX経路・シェーパテーブル903から読み出し、エントリ記載のシェーパと対応づけて、通知パケット記載の受信側総帯域・総コネクション数を、送信帯域制御部113へと通知する。
【0090】
送信帯域制御部113は、通知されたシェーパの受信側総帯域・総コネクション数を、シェーパ毎の受信側総帯域・総コネクション数テーブル1601へと記載する。
【0091】
送信帯域制御部113は、シェーパ毎の受信側総帯域・総コネクション数テーブル1601に記載の受信側総帯域・総コネクション数と、シェーパ毎の送信・再送中コネクション数テーブル1203に記載の送信コネクション数と、を用いて、例えば、図21に示すように帯域を制御する。
【0092】
図21において、送信端末2101から受信端末2103へ向かってデータ送信中の通信コネクション数が2、送信端末2102から受信端末2103へ向かってデータ送信中の通信コネクション数が1、だったとする。受信端末2103に接続されている装置1600Cにおいて計測されたRX総帯域が12、RX総コネクション数が3だったとすると、装置1600Cから、送信端末2101/2102に接続されている装置1600A/Bに向けて、RX総帯域:12・RX総コネクション数:3の情報がフィードバック通知される。装置1600Aは、フィードバック通知されたRX総帯域:12・RX総コネクション数:3の情報から、1コネクションあたりの帯域を4と求め、装置1600Aのシェーパ毎の送信・再送中コネクション数テーブル1203Aに記載の送信コネクション数:2に基づき、送信帯域を4×2=8へと調整する。装置1600Bは、フィードバック通知されたRX総帯域:12・RX総コネクション数:3の情報から、1コネクションあたりの帯域を4と求め、装置1600Bのシェーパ毎の送信・再送中コネクション数テーブル1203Aに記載の送信中コネクション数:1に基づき、送信帯域を4×1=4へと調整する。
【0093】
以上記載の、通信相手から通知されたパケット受信中の総コネクション数に基づいて帯域制御する装置により、端末間で公平な帯域割り当てが実現され、端末によらず、一定の通信品質が実現される。
【実施例6】
【0094】
図22、図23を用いて、送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、パケット送信中のコネクション数と、1コネクションあたりの契約帯域と、に基づいて帯域制御する装置2200の実施例を示す。
【0095】
図22には、装置2200のブロック図をあらわす。本装置2200は、実施例4の装置1200をベースにして、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202と、シェーパ出力パケットの通信経路毎の経由回線テーブル2203と、を新たに追加することで、構成される。
【0096】
図23には、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202と、シェーパ出力パケットの通信経路毎の経由回テーブル2203のフォーマットを示す。更に、契約帯域10.0の回線X,契約帯域8.0の回線Y,契約帯域3.0の回線Zがあり、装置2200のシェーパAの出力パケットの通信経路に回線Xと回線Yがあり、シェーパBの出力パケットの通信経路に回線Xと回線Zがあるケースにおいて、装置2200の送信帯域制御部113の帯域制御方法の一例を示す。
【0097】
回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202は、回線毎に契約帯域(全体帯域、割当済帯域、未割当帯域)、送信中コネクション数(全体数、割当済数、未割当数)、1コネクションあたりの未割当帯域を格納するエントリを、複数備える。
【0098】
シェーパ出力パケットの通信経路毎の経路回線テーブル2203は、通信経路毎に経由回線と制御帯域とを格納するエントリを複数個備える。本実施例では、シェーパ出力パケットの通信経路が、常に一通りであるものとする。
【0099】
送信帯域制御部113は、シェーパ出力パケットの通信経路毎の経由回線テーブル2203と、シェーパ毎の送信・再送中コネクション数テーブル1203に記載の、経由回線と送信中コネクション数を用いて、回線毎のデータ送信中のコネクション数を計算し、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202の送信中コネクション数(全体数、割当済数、未割当数)を初期化し、1コネクションあたりの未割当帯域を計算する。
【0100】
送信帯域制御部113は、回線Zの1コネクションあたりの未割当帯域が1.5と最小であることと、回線ZがシェーパBの出力パケットの通信経路Bに含まれており、シェーパBの送信中コネクション数が2であることを用いて、シェーパBの制御帯域を1.5×2=3.0と計算し、通信経路毎の経由回線テーブル2203の、通信経路Bの制御帯域を3.0に更新する。
【0101】
更に、送信帯域制御部113は、回線X・ZはシェーパBの出力パケットの通信経路Bの経由回線なので、通信経路Bの送信中コネクション数2と制御帯域3.0を、回線毎の契約帯域・送信中コネクション数・コネクションあたり帯域テーブル2202の回線XとZの割当済契約帯域・割当済送信中コネクション数として記載し、1コネクションあたりの未割当帯域を再計算する。
【0102】
送信帯域制御部113は、再計算後の回線Xの1コネクションあたりの未割当帯域が7.0で最小であることと、回線XがシェーパAの出力パケットの通信経路Aに含まれており、シェーパAの送信中コネクション数が1であることを用いて、シェーパAの制御帯域を、7.0×1=7.0と計算し、通信経路毎の経由回線テーブル2203の、通信経路Aの制御帯域を7.0に更新する。
【0103】
以上記載の方法により得られた、通信経路毎の経由回線テーブル2203の、通信経路毎の制御帯域を用いて、帯域制御を行う。
【0104】
以上記載の帯域制御を行うことで、ユーザの通信環境に応じて、契約帯域を最大限使い切るような帯域制御が可能となる。
【実施例7】
【0105】
図24、図25、図26を用いて、送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット送信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置から通知された他装置のパケット送信中のコネクション数と、に基づいて帯域制御する装置2400の実施例を示す。
【0106】
図24には、装置2400のブロック図をあらわす。本装置2400は、実施例6の装置2200をベースに、相互通知パケット生成部2402と、相互通知先テーブル2403を追加し、シェーパ毎の送信・再送中コネクション数テーブル1203の代わりに、シェーパ出力パケットの通信経路毎の自装置と他装置の送信中コネクション数テーブル2401を備える。本実施例では、シェーパ出力パケットの通信経路が、常に一通りであるものとする。相互通知先テーブル2403のフォーマットは、フィードバック通知先テーブル1604と同じである。
【0107】
図25には、通信経路毎の自装置と他装置の送信中コネクション数テーブル2401のフォーマットを表す。
【0108】
通信経路毎の自装置と他装置の送信中コネクション数テーブル2401は、通信経路毎に、基準時間と、基準時間以前の統計データ(自装置のデータ送信中コネクション数、他装置のデータ送信中ネクション数)と、基準時間以後の統計データ(自装置のデータ送信中コネクション数積算値、他装置のデータ送信中コネクション数積算値)と、を格納するエントリを複数備える。
【0109】
送信帯域制御部113は、コネクション数加算判定部1201からの送信コネクション数加算通知と、RX側振分部120からの、他装置の送信中コネクション数の通知パケットを受け取り、基準時間以降の統計データ値の加算を行う。更に、タイマ値111と基準時刻の差がインターバル値112より大きくなったタイミングで、シェーパ毎の送信・再送中コネクション数テーブル1203と同様に、基準時間以降のシェーパ出力パケットの通信経路毎の自装置と他装置の送信中コネクション数の更新を行う。
【0110】
更に、送信帯域制御部113は、自装置の送信中コネクション数を、相互通知パケット生成部2402へと通知する。相互通知パケット生成部2402は、相互通知先テーブル2403記載の全宛先に対して、自装置の送信中コネクション数を通知するパケットを生成する。
【0111】
図26には、契約帯域10の回線X、契約帯域8の回線Y、契約帯域3の回線Zがあり、装置2400のシェーパAの出力パケットの通信経路上の経由回線として回線Xと回線Yがあり、シェーパBの出力パケットの通信経路上の経由回線として回線Xと回線Zがあるケースで、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202と、シェーパ出力パケットの通信経路毎の経由回線テーブル2203を用いて、送信帯域制御部113が帯域を制御する方法の一例を示す。
【0112】
送信帯域制御部113は、シェーパ出力パケットの通信経路毎の経由回線テーブル2203と、通信経路毎の自装置と他装置の送信中コネクション数テーブル2401に記載の、通信経路毎の経由回線と、自装置の送信中コネクション数と、他装置の送信中コネクション数を用いて、回線毎の送信中コネクション数を計算し、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202のコネクション数(全体数、割当済数、未割当数)を初期化し、1コネクションあたりの未割当帯域を計算する。(ステップ2601)
【0113】
装置2400は、回線Zの1コネクションあたりの未割当帯域が1.0で最小であることと、回線Zを含む通信経路Bの自装置のデータ送信中コネクション数が2であることを用いて、通信経路Bに向けてパケットを出力するシェーパBの制御帯域を、1.0×2=2.0とする。(ステップ2602)
【0114】
更に、回線X・Zは通信経路Bの経由回線なので、テーブル2401記載の通信経路Bのデータ送信中コネクション数の総和3に対する制御帯域3.0を、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202の回線XとZの割当済帯域・割当済コネクション数として記載し、1コネクションあたりの未割当帯域を再計算する。(ステップ2603)
【0115】
装置2400は、再計算後の回線Xの1コネクションあたりの未割当帯域が3.5で最小であることと、回線Xを含む通信経路Aの自装置のデータ送信中コネクション数が1であることを用いて、通信経路Aに向けてパケットを出力するシェーパAの制御帯域を、3.5×1=3.5とする。(ステップ2604)
【0116】
上記のように、送信側端末から受信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット送信中のコネクション数と、1コネクションあたりの契約帯域、に加えて、他装置から通知された他装置のパケット送信中のコネクション数と、に基づいて帯域制御することで、通信環境をより反映させた帯域制御が可能となる。
【実施例8】
【0117】
図27、図28、図29を用いて、受信側端末から送信側端末に至る通信経路上の経由回線の契約帯域と、自装置のパケット受信中のコネクション数と、1コネクションあたりの契約帯域に加えて、他装置のパケット受信中のコネクション数と、に基づいて帯域制御する装置2700の実施例を示す。
【0118】
図27には、装置2700のブロック図をあらわす。本装置2700は、実施例7の装置2400をベースに、TX部102に、フィードバック通知パケット生成部1603と、フィードバック通知先テーブル1604を追加する。また、RX部103に、コネクション数加算判定部1201と、コネクション有無テーブル1202と、RX経路・シェーパテーブル903と、タイマ値格納部111と、インターバル値格納部112と、を追加することで、TX部102と同様に、通信経路毎に、データ受信中のコネクション数の加算指定ができるようにする。更に、TX部102のシェーパ出力パケットの通信経路毎の自装置と他装置の送信中コネクション数テーブル2401と、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202と、シェーパ出力パケットの通信経路毎の経由回線テーブル2203と同様に、RX部103にも、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701と、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702と、RX向け通信経路毎の経由回線テーブル2703と、を備える。更に、これらのテーブルの値を更新して、更新値を通知パケット生成部に通知する受信情報通知部2704を備える。本実施例では、シェーパ出力パケットの通信経路が、常に一通りであるものとする。
【0119】
図28には、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701のフォーマットを示す。
【0120】
通信経路毎の自装置と他装置の受信中コネクション数テーブル2701は、通信経路毎に、基準時間と、基準時間以前の統計データ(自装置のデータ受信中コネクション数、他装置のデータ受信中コネクション数)と、基準時間以後の統計データ(自装置のデータ受信中コネクション数積算値、他装置のデータ受信中コネクション数積算値)と、を格納するエントリを複数備える。
【0121】
受信情報通知部2704は、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701に対して、コネクション数加算判定部1201からの自装置の受信中コネクション数の加算指定と、RX側振分部120から受け取る通知パケット記載の、他装置の受信中コネクション数を用いて、基準時間以降の統計データを加算する。基準時間以前の統計データは、シェーパ出力パケットの通信経路毎の自装置と他装置の送信中コネクション数テーブル2401と同様に、タイマ値格納部111と基準時間の差が、インターバル値格納部112を超過したタイミングで更新する。
【0122】
図29には、契約帯域10の回線X,契約帯域8の回線Y,契約帯域3の回線Zがあり、通信経路Aに回線Xと回線Yがあり、通信経路Bに回線Xと回線Zがあるケースにおいて、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701と、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702と、通信経路毎の経由回線テーブル2703を用いて、装置2700が、通信相手に接続している装置1600Cと装置1600Dに、総制御帯域・総受信コネクション数をフィードバック通知する方法の1例を示す。
【0123】
装置2700の受信情報通知部2704は、通信経路毎の経由回線テーブル2703に記載の通信経路毎の経由回線と、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701に記載の自装置の受信中コネクション数と他装置の受信中コネクション数を用いて、回線毎のデータ受信中コネクション数を計算し、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702の受信中コネクション数(全体数、割当済数、未割当数)を初期化し、1コネクションあたりの未割当帯域を計算する。(ステップ2901)
【0124】
装置2700は、回線Zの1コネクションあたりの未割当帯域が1.0で最小であることと、回線Zを含む通信経路Bのデータ受信中コネクション数の総和が3であることを用いて、通信経路Bの総制御帯域を、1.0×3=3.0とする。(ステップ2902)
【0125】
更に、回線X・Zは通信経路Bの経由回線なので、通信経路Bのデータ受信中コネクション数の総和3と総制御帯域3.0を、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702の回線XとZの割当済契約帯域・割当済受信中コネクション数として追加し、1コネクションあたりの未割当帯域を再計算する。(ステップ2903)
【0126】
装置2700は、再計算後の回線Xの1コネクションあたりの未割当帯域が3.5で最小であることと、回線Xを含む通信経路Aの受信コネクション数の総和が2であることを用いて、通信経路Aの総制御帯域を、3.5×2=7.0とする。(ステップ2904)
【0127】
得られた通信経路毎の総制御帯域と総受信コネクション数は、フィードバック通知パケット生成部1603へと通知され、フィードバック通知先テーブル1604記載の全宛先向けに通知パケットが作成される。更に、実施例5を適用したデータ送信側装置1600C/Dへとフィードバック通知される。
【0128】
送信側装置1600C/Dは、受け取ったフィードバック通知パケット記載の、総制御帯域と総受信コネクション数に基づいて、送信帯域を制御する。
【0129】
装置2700が接続している端末をサーバ端末、装置1600C/Dが接続している端末をクライアント端末とすれば、クライアント端末に接続している装置は、フィードバック通知や相互通知を行う必要がなくなる。クライアント端末に接続している装置の状態にかかわらず、コネクション数の情報の共有が可能となる。
【0130】
上記のように、他装置から通知された送信中コネクション数の情報に加えて、他装置から通知された受信中コネクション数の情報も加えて帯域制御を行うことで、通信環境をより反映させた帯域制御が可能となる。
【実施例9】
【0131】
図30、図31を用いて、LANとWANの接続部に設置され、通信経路上の経由回線の契約帯域・データ送信中コネクション数・データ受信中コネクション数を一括計測し、計測結果を、同一LANに接続した他の装置に一方的に通知し、他のWANに接続した他の装置との間では相互通知しあう装置3000の実施例を示す。
【0132】
図30には、装置3000のブロック図をあらわす。本装置3000は、実施例8の装置2700をベースに、再送機能や帯域制御機能に関するブロックを削除し、TX部をOutbound部3004に、RX部をInbound部3003に変更し、受信情報通知部2704の代わりにWAN⇒LAN方向のコネクション数の計測を行うインバウンド情報管理部3001と、送信帯域制御部113の代わりにLAN⇒WAN方向のコネクション数の計測を行うアウトバウンド情報管理部3002と、通信経路毎の自装置と他装置の送信中コネクション数テーブル2401の代わりに通信経路毎の自装置と他装置のOutboundコネクション数テーブル3008と、通信経路毎の自装置と他装置の受信中コネクション数テーブル2701の代わりに通信経路毎の自装置と他装置のInboundコネクション数テーブル3005と、回線毎の契約帯域・送信中コネクション数・1コネクションあたり帯域テーブル2202の代わりに回線毎の契約帯域・Outboundコネクション数・1コネクションあたり帯域テーブル3007と、回線毎の契約帯域・受信中コネクション数・1コネクションあたり帯域テーブル2702の代わりに回線毎の契約帯域・Inboundコネクション数・1コネクションあたり帯域テーブル3006と、を備える。
【0133】
アウトバウンド情報管理部3002は、送信帯域制御部113と同様な方法で、回線毎の契約帯域・Outboundコネクション数・1コネクションあたり帯域テーブル3007と、通信経路毎の自装置と他装置のOutboundコネクション数テーブル3008を更新し、自装置のOutboundコネクション数を相互通知パケット生成部に通知する。
【0134】
インバウンド情報管理部3001は、受信情報通知部2704と同様な方法で、回線毎の契約帯域・Inboundコネクション数・1コネクションあたり帯域テーブル3006と、通信経路毎の自装置と他装置のInboundコネクション数テーブル3005を更新し、自装置のInboundコネクション数を相互通知パケット生成部に通知するとともに、自装置の総制御帯域と総Inboundコネクション数をフィードバック通知パケット生成部へ通知する。
【0135】
相互通知パケット生成部2402は、WAN側にもLAN側にも通知パケットを出力する。フィードバック通知パケット生成部1603は、WAN側にのみ通知パケットを出力する。
【0136】
図31には、装置間の統計情報の通知方向を表す。
【0137】
統計情報収集装置3000は、通信経路Aと通信経路Bのインバウンドコネクション数を、実施例7を適用した装置2400X/Yに一方的に通知する。装置2400X/Yは、装置3000からの通知パケット記載のコネクション数から、自装置の送信中コネクション数を引くことで、他装置の送信中コネクション数を得て、帯域制御を行う。
【0138】
また、統計情報収集装置3000は、他のLANとWANの接続部に設置された別の統計情報収集装置3000′との間で、各通信経路のInboundコネクション数とOutboundコネクション数の情報を相互に通知しあう。
【0139】
更に、統計情報収集装置3000は、端末と接続中の実施例5を適用した装置1600Eに対して、Inboundコネクション数とInbound総制御帯域を通知する。
【0140】
上記の統計情報収集装置を用いることで、拠点内の装置が多い場合に、通知回数を削減しつつ、装置から通知された送信中コネクション数と受信中コネクション数の情報に基づく帯域制御が実現され、通信環境をより反映させた帯域制御が可能となる。
【実施例10】
【0141】
図32に、実施例7や実施例8に記載した装置2400/2700を複数個、スイッチHUBに接続して1つの装置3200にした実施例を示す。
【0142】
コネクション数の情報を管理するテーブルを複数の装置で共有することができるので、コストを削減することができる。
【実施例11】
【0143】
図33には、実施例7や実施例8に記載した装置2400/2700を複数設置し、代表装置と他の装置との間で、帯域制御に用いるコネクション数の情報を通知しあうシステムの実施例を示す。
【0144】
代表装置に集中した情報を、各装置に再配信するので、メッシュ状に通知しあうよりも、通知回数を削減できる。
【実施例12】
【0145】
図34には、実施例7や実施例8に記載した装置2400/2700を複数設置し、帯域制御に用いるコネクション数の情報を、ループ状に通知しあうシステムの実施例を示す。
【0146】
メッシュ状に通知しあうよりも、通知回数を削減できる。
【0147】
上述した種々の実施例で明らかにされたように、ある通信端末が別の通信端末と通信を行う際に、複数の通信端末の間に2つ以上設置された装置が、通信の帯域制御や再送制御を肩代わりすることで、通信を高速化することができる。
上記記載は実施例についてなされたが、本発明はそれに限らず、本発明の精神と添付の請求の範囲の範囲内で種々の変更および修正をすることができることは当業者に明らかである。
【符号の説明】
【0148】
100 装置
101 端末
800 装置
900 装置
1200 装置
1600 装置
2200 装置
2400 装置
2700 装置
3000 装置
【特許請求の範囲】
【請求項1】
ネットワークに接続される装置であって、
前記装置から前記ネットワークを介して他の装置に送信されるパケットに関する帯域をインターバル毎に管理し、前記管理される第一のインターバルの再送帯域又は廃棄帯域と、第一のインターバルよりも前のインターバルである第二のインターバルにおける制御帯域とに基づいて、前記制御帯域を変更する帯域制御部と、
前記制御帯域に従って、パケットを前記ネットワークに送出する送信部と、を有することにより、
通信速度に対するRTT(Round Trip Time)及びパケット廃棄率の影響を抑制し、通信の高速化を実現すること、を特徴とする装置。
【請求項2】
請求項1記載の装置であって、
前記帯域制御部は、
前記第一のインターバルにおいて、パケットの再送が発生した場合、前記第一のインターバルの前記再送帯域又は前記廃棄帯域と、前記第二のインターバルにおける前記制御帯域に基づいて、前記制御帯域を前記過去のインターバルにおける前記制御帯域よりも減少させる、ことを特徴とする装置。
【請求項3】
請求項1記載の装置であって、
前記帯域制御部は、送信されたパケットの通信状況を取得し、前記取得した通信状況に基づいて前記制御帯域を変更する、ことを特徴とする装置。
【請求項4】
請求項3記載の装置であって、
前記通信状況は、前記送信されたパケットが前記他の装置で受信されたか否かを示す受信情報を含み、
前記帯域制御部は、前記受信情報に基づいてパケットが受信されなかったことを判別し、該判別の結果に基づいて、前記制御帯域を変更する、ことを特徴とする装置。
【請求項5】
請求項1記載の装置であって、
前記帯域制御部は、前記他の装置から、前記送信されたパケットの受信に関する受信状況通知を受領し、前記受信状況通知から前記他の装置に送信されたパケットのネットワーク上における廃棄状況を検出し、
前記廃棄状況に基づいて求められる前記廃棄帯域に基づいて、前記制御帯域を変更する、ことを特徴とする装置。
【請求項6】
請求項1ないし5記載の装置であって、
一以上の情報処理装置に接続され、
前記送信部は、前記情報処理装置が送信する情報を含むパケットを前記制御帯域に従って送信する、ことを特徴とする装置。
【請求項7】
請求項5記載の装置であって、
前記廃棄帯域は、前記廃棄状況から廃棄箇所を集計することにより得られる、ことを特徴とする装置。
【請求項8】
請求項1記載の装置であって、
前記帯域制御部は、さらに前記ネットワークから受信されるパケットのコネクション数に基づいて、前記制御帯域を変更する、ことを特徴とする装置。
【請求項9】
請求項1記載の装置であって、
前記帯域制御部は、前記パケットの再送が発生中のコネクション数を測定し、再送発生中のコネクション数に基づいて、前記制御帯域を変更する、ことを特徴とする装置。
【請求項1】
ネットワークに接続される装置であって、
前記装置から前記ネットワークを介して他の装置に送信されるパケットに関する帯域をインターバル毎に管理し、前記管理される第一のインターバルの再送帯域又は廃棄帯域と、第一のインターバルよりも前のインターバルである第二のインターバルにおける制御帯域とに基づいて、前記制御帯域を変更する帯域制御部と、
前記制御帯域に従って、パケットを前記ネットワークに送出する送信部と、を有することにより、
通信速度に対するRTT(Round Trip Time)及びパケット廃棄率の影響を抑制し、通信の高速化を実現すること、を特徴とする装置。
【請求項2】
請求項1記載の装置であって、
前記帯域制御部は、
前記第一のインターバルにおいて、パケットの再送が発生した場合、前記第一のインターバルの前記再送帯域又は前記廃棄帯域と、前記第二のインターバルにおける前記制御帯域に基づいて、前記制御帯域を前記過去のインターバルにおける前記制御帯域よりも減少させる、ことを特徴とする装置。
【請求項3】
請求項1記載の装置であって、
前記帯域制御部は、送信されたパケットの通信状況を取得し、前記取得した通信状況に基づいて前記制御帯域を変更する、ことを特徴とする装置。
【請求項4】
請求項3記載の装置であって、
前記通信状況は、前記送信されたパケットが前記他の装置で受信されたか否かを示す受信情報を含み、
前記帯域制御部は、前記受信情報に基づいてパケットが受信されなかったことを判別し、該判別の結果に基づいて、前記制御帯域を変更する、ことを特徴とする装置。
【請求項5】
請求項1記載の装置であって、
前記帯域制御部は、前記他の装置から、前記送信されたパケットの受信に関する受信状況通知を受領し、前記受信状況通知から前記他の装置に送信されたパケットのネットワーク上における廃棄状況を検出し、
前記廃棄状況に基づいて求められる前記廃棄帯域に基づいて、前記制御帯域を変更する、ことを特徴とする装置。
【請求項6】
請求項1ないし5記載の装置であって、
一以上の情報処理装置に接続され、
前記送信部は、前記情報処理装置が送信する情報を含むパケットを前記制御帯域に従って送信する、ことを特徴とする装置。
【請求項7】
請求項5記載の装置であって、
前記廃棄帯域は、前記廃棄状況から廃棄箇所を集計することにより得られる、ことを特徴とする装置。
【請求項8】
請求項1記載の装置であって、
前記帯域制御部は、さらに前記ネットワークから受信されるパケットのコネクション数に基づいて、前記制御帯域を変更する、ことを特徴とする装置。
【請求項9】
請求項1記載の装置であって、
前記帯域制御部は、前記パケットの再送が発生中のコネクション数を測定し、再送発生中のコネクション数に基づいて、前記制御帯域を変更する、ことを特徴とする装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16A】
【図16B】
【図16C】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27A】
【図27B】
【図27C】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16A】
【図16B】
【図16C】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27A】
【図27B】
【図27C】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【公開番号】特開2013−62886(P2013−62886A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2013−710(P2013−710)
【出願日】平成25年1月7日(2013.1.7)
【分割の表示】特願2011−531859(P2011−531859)の分割
【原出願日】平成22年8月19日(2010.8.19)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願日】平成25年1月7日(2013.1.7)
【分割の表示】特願2011−531859(P2011−531859)の分割
【原出願日】平成22年8月19日(2010.8.19)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]